So, habe schon die ersten sachen gemacht. Ein kleiner Bootstrap und ein noch kleinerer Kernel. Hier der Code:
boot.asm:
org 7C00h
xor ax,ax
mov ds,ax
mov es,ax
mov si,Msg
call WriteMsg
mov ax,1000h
mov es,ax ;Segment = 1000h
xor bx,bx ;Offset = Null
mov ah,02h ;lade Sektor(e)
mov al,01h ;erstmal einen
mov cl,02h ;zweiter Sektor
xor ch,ch ;Spur Null
xor dl,dl ;Disk0 = Floppy0
xor dh,dh ;Seite Null
int 13h
;Segmentregister setzen
mov ax,1000h
mov ds,ax
mov es,ax
db 0EAh ;jmp
dw 0000h ;Offset
dw 1000h ;Segment
WriteMsg:
lodsb
or al,al
jz WriteMsgBack
mov ah,0Eh
int 10h
jmp WriteMsg
WriteMsgBack:
ret
Msg db "LOST wird geladen...",00h
times 510-($-$$) db 0
dw 0AA55h
kernel.asm:
org 0
mov si,Msg
call WriteMsg
jmp $
WriteMsg:
lodsb
or al,al
jz WriteMsgBack
mov ah,0Eh
int 10h
jmp WriteMsg
WriteMsgBack:
ret
Msg db 13,10,13,10,"LOST:>",00h
Wie man sieht, noch sehr klein. Aber wir können es ja erweitern.
bitmaster