Próbuję napisać bootloader dla systemu Hobby i sprawić, by działał świetnie. Nic specjalnego, po prostu drukuje wiersz tekstu:Niestandardowe problemy z bootloaderem
BITS 16
ORG 0
start: jmp main
OEM db "Test OS "
BytesPerSector: DW 512
SectorsPerCluster: DB 1
ReservedSectors: DW 1
NumberOfFATs: DB 2
RootEntries: DW 224
TotalSectors: DW 2880
Media: DB 0xf8
SectorsPerFAT: DW 9
SectorsPerTrack: DW 18
HeadsPerCylinder: DW 2
HiddenSectors: DD 0
TotalSectorsBig: DD 0
DriveNumber: DB 0
Unused: DB 0
ExtBootSignature: DB 0x29
SerialNumber: DD 0xa0a1a2a3
VolumeLabel: DB "HOBBY OS "
FileSystem: DB "FAT12 "
main:
;Adjust code Seg.
cli
mov ax, 0x07c0
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
;Set up Stack
mov ax, 0x0000
mov ss, ax
mov sp, 0xFFFF
sti
mov si, msg
call print
print:
.charLoop:
lodsb
or al,al
jz .done
mov ah, 0x0E
int 0x10
.done
ret
msg db "Hello World",13,10,0
Im kompilacji z
nasm -f bin loader.asm -o loader.bin
dd if=loader.bin of=floppy.img bs=512 count=1 seek=0
Czytałem, że pierwsze 446 bajtów kod inicjujący i bajty 447 - 509 jest tablica partycji . Próbowałem następnie przy użyciu:
dd if=loader.bin of=floppy.img bs=446 count=1 seek=0
próbować zapobiec tablicę partycji przed zastąpieniem ale nadal nie cygaro.
Im przy użyciu komputera Mac z OSX i Testowanie OS z VirtualBox
mogę uruchomić floppy.img w VBox i kod działa poprawnie, ale gdy próbuję zainstalować bootloader na FAT 16 sformatowany dysk, OSX nie może wydawać się czytać obrazu dysku, tak jakby stał się niesformatowany.
Dokładny komunikat z narzędzia dyskowego to Unable to attach image "floppy.img."(No Mountable File Systems)
Mimo że sformatowałem dysk w systemie plików FAT16.
Niestety, ponieważ jest to mój pierwszy wpis, nie mogę podać Ci obrazu.
Byłbym wdzięczny za każdą pomoc. Struktura dysku naprawdę nie jest moją mocną stroną.
Dziękuję bardzo. Nigdy bym nie zgadł –