Forum Nevar.pl

Programowanie => Asembler => Wątek zaczęty przez: akasei w Maj 02, 2013, 15:26:01

Tytuł: Bootsector FAT12 dyskietka 1,44 MiB
Wiadomość wysłana przez: akasei w Maj 02, 2013, 15:26:01
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:
[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:
pozostało:(http://wataha.net/images/grub2.png)
Tytuł: Odp: Bootsector FAT12 dyskietka 1,44 MiB
Wiadomość wysłana przez: mangado w Maj 12, 2013, 10:14:58
pozostało:
- sterownik stacji dyskietek
- operacja wyszukania i załadowania pliku KERNEL (jądra) do obszaru 1 MiB+

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