Programowanie > Asembler

Bootsector FAT12 dyskietka 1,44 MiB

(1/1)

akasei:
Napisałem sektor rozruchowy dla nośnika jakim jest dyskietka 3,5" wykorzystując system plików FAT12.

Poniżej zamieszczam pliki do pobrania obrazu dyskietki z w pełni działającym egzemplarzem oraz przykładowym plikiem, który zostanie załadowany przez sektor rozruchowy.

Obraz dystkietki:
http://wataha.net/system/boot/obraz%20dyskietki%20z%20sektorem%20rozruchowym%20fat12.img
Sektor rozruchowy FAT12:
http://wataha.net/system/boot/sektor%20rozruchowy%20fat12.bin
Plik GRUB:
http://wataha.net/system/boot/GRUB

Plik "obraz dyskietki z sektorem rozruchowym fat12.img" możemy uruchomić w oprogramowaniu Bochs, VirtualBox lub Qemu. Jest to czysty system plików + załadowany 'sektor rozruchowy.bin' + skopiowany plik 'GRUB'

Sektor rozruchowy ładuje plik znajdujący się w głównym katalogu systemu plików o nazwie GRUB (nazwa nie jest przypadkowa). Maksymalna dozwolona wielkość pliku GRUB to 475,5 KiB, uzależnione od miejsca w które sektor rozruchowy załaduje plik do pamięci (0x0000:0x9000).

Jestem całkowicie pewien, że ponad 475 KiB w pełni wystarczy na napisanie własnego oprogramowania do skonfigurowania GDT, włączenia linii A20, przełączenia procesora w tryb chroniony oraz załadowanie jądra w miejsce 1 MiB+

PS: Nie działa prawidłowo przycisk URL z panelu pisania postów.

Poprawka 0x1 (1 Maja 2013):
Błąd w sektorze rozruchowym uniemożliwiał załadowanie pliku GRUB większego niż 512 Bajtów. Procedura zapisująca odczytany sektor w 0x0900:0x0000 nie zwiększała segmentu o 200h po umieszczeniu pierwszej partii danych w pamięci. Wynikiem był załadowany ostatni tylko sektor pliku GRUB pod adres 0x0900:0x0000. Naprawione.

Adnotacja 0x01 (2 Maja 2013):
Postęp prac nad plikiem rozruchowym GRUB:
- odblokowanie linii a20
- konfiguracja globalnej tablicy deskryptorów (base: 0, limit: 4 GiB, DPL: 0 [kod/dane])
- przełączenie procesora w tryb chroniony
- wyświetlenie informacji o przebiegu prac w trybie rzeczywistym i chronionym[/list]

Adnotacja 0x02 (7 Maja 2013):
Postęp prac nad plikiem rozruchowym GRUB:
- konfiguracja tablicy deskryptorów przerwań (otrzymane wsparcie w poszukiwaniu błędu przez "mangado" IRC: freenode.net kanał: #osdev.pl)
- konfiguracja przerwań sprzętowych (stacja dyskietek)
- przeadresowanie przerwań sprzętowych IRQ0-15 do tablicy deskryptorów w miejsce 0x20h - 0x2Fpozostało:- sterownik stacji dyskietek
- operacja wyszukania i załadowania pliku KERNEL (jądra) do obszaru 1 MiB+

mangado:

--- Cytat: akasei w Maj 02, 2013, 15:26:01 ---pozostało:
- sterownik stacji dyskietek
- operacja wyszukania i załadowania pliku KERNEL (jądra) do obszaru 1 MiB+

--- Koniec cytatu ---

ee to tylko ster do fdd w trybie chronionym... :P
i tylko FAT12... no ten chyba będzie prosty bo jajko pewnie będzie w katalogu głównym...

A w jajeczku będzie do zrobienia stronicowanie, managior pamięci, obsługa klawierki, myyyszki, obsługa dysków twardych.
Aaaa, jeszcze kłania się APIC! :D

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej