Code: Select all
[ORG 0x7C00]
main:
mov ax,0x0000
mov ds,ax
mov si,waitmsg
call print_string
call load_kernel
mov si,procexited
call print_string
jmp 0x7E00
;procedures
print_string:
mov ah,0x0E
mov bh,0x00
mov bl,0x07
.next_char
lodsb ;(1)[si] loaded into al (2)si incremented by 1
cmp al,0
jz .done
int 0x10
jmp .next_char
.done
ret
load_kernel:
mov si,prochit
call print_string
xor ax,ax
mov es,ax
mov bx,0x7E00
mov dh,0x00
mov dl,0x01
mov ch,0x01
mov cl,0x02
mov bx,0x0000
mov ah,0x02
mov al,0x01
int 0x13
ret
;data
waitmsg db "Loading Kernel. Please Wait . . .",0xD,0xA,0
prochit db "Now In Kernel Loading Procedure . . .",0xD,0xA,0
procexited db "Now Returned From Kernel Loading Procedure . . .",0xD,0xA,0
;pad
times 510-($-$$) db 0
;make drive bootable
dw 0xAA55
;No longer in bootloader
;Now in sector 2
;begin kernel code
kernel:
mov ax,0x0000
mov ds,ax
mov si,loaded
call print_string
jmp $
;data
loaded db "The kernel is loaded and executing.",0xD,0xA,0
;pad
times 512-($-kernel) db 0
Code: Select all
Loading Kernel. Please Wait . . .
Now In Kernel Loading Procedure . . .
Now Returned From Kernel Loading Procedure . . .
All help is appreciated,
Brodeur235