Den bootloader du har lavet, hvordan har du lavet den? Hvad indeholder den?
1: Du kan ikke:
Bruge operationer der gør ting med filer.
Bruge malloc/realloc/free/new/delete.
Bruge time/date funktioner.
2: Jeg troede du havde lavet en bootloader?
Det letteste er så vidt jeg ved at putte en applikation ned på boot sektoren på en diskette og så putte den i komputeren når den booter.
3: BorlandC 3.1, eller TurboC der er gratis.
En PC kan operere i flere forskellige modes, i gamle dage kørte de i 16bit real mode, som er den letteste mode at køre i. Der er kun 640 kbytes memory, og der er ingen "memory protection" så du kan skrive/læse hvor som helst. De gamle Borland kompilere lavede netop kode der kørte i denne mode.
Held og lykke med projectet.
2: Du har jo lige skrevet at du selv har lavet en?
Hvorfor laver du ikke videre på den, så den kan hvad du vil... Jeg synes i hvert fald personligt at det er meget federe at vide, at man selv har lavet de ting, som man bruger i sine programmer...
Du kan bare INT 0x13 i Assembler til at loade din kernel med...
Load_Kernel:
mov ah, 0 ; int 0x13 Metode Reset Drev
int 0x13 ; Reset!
or ah, ah ; Tjek for fejl
jnz Load_Kernel ; Hvis der er fejl, så gentager vi bare
mov ah, 0x02 ; int 0x13 Metode "Læs fra drev"
mov al, 0x02 ; Sectorer der skal læses (1 sector = 512
; Byte / 2 Sectorer = 1 KB)
; Dette skal så være = størrelsen af LOADER.bin
mov ch, 0 ; Offset Disk Cylinder (1 Cylinder = 18
; Sectorer - TROR jeg :D)
mov cl, 0x02 ; Offset Disk Sector (Starter ved 1 - Din
; boot-loader ligger ved nummer 1, så
; LOADER.bin ligger i 2
mov dh, 0 ; Offset Disk Head
int 0x13 ; Load!
or ah, ah ; Tjek for fejl
jnz Load_Kernel
Ved ikke om det er til noget hjælp...
- Mads