sagar474
Full Member level 5
- Joined
- Oct 18, 2009
- Messages
- 285
- Helped
- 5
- Reputation
- 10
- Reaction score
- 5
- Trophy points
- 1,318
- Location
- India,kakinada
- Activity points
- 3,123
I have written the following code, this is my first boot sector program code.
and it works fine, but now how can i load other files and kernel. if I use CD/DVD.
please help
thank you
and it works fine, but now how can i load other files and kernel. if I use CD/DVD.
Code:
BITS 16
jmp start ;jump to actual executing code
;------------------------------message set to display on the screen--------------
wellcome_msg db 'wellcome to Sagar cool new operating system',13,10,0,
reboot_msg db 'Your system is going to reboot now....',0,
reboot_key db 'Press any key to reboot',13,10,0,
;------------------------------Main Boot loading process starts hear---------------
start:
mov ax, 07C0h ; Set data segment to where we're loaded
mov ds, ax ;
mov ax,9000h ;initialize the stack
mov ss,ax ;
mov sp,100h ;
mov si,wellcome_msg ;source index register (SI) points to the wellcome_message offset
call print ;call the print subroutine.
mov si,reboot_key ; SI points to the off set of the string with label reboot_key
call print ;call the print subroutine.
call getkey
mov si,reboot_msg ;SI points to offset of the string with label reboot_msg
call print ;call the print subroutine.
call reboot ;reboots the system.
jmp $ ; jump hear ie., infinite loop
;------------------------sub rotine---------------------------------------------
;----------------------to print string ------------------------------------------
print: ;print subroutine
mov ah,0eh; ;loads ah with 0eh function for print char in BIOS int 10h
repet: ;
lodsb ;al<-----[si] and si=si+1
cmp al,0 ;compare al and 0
je done ;if al=0 then jump to lable don
int 10h; ;call BIOS interrupt 10h video services
jmp repet ;unconditional jump to label repit:
done:
ret ;return to main program.
;-------------------------------------------------------------------------------------
;------------------------key board input------------------------------------------------
getkey:
mov ah,0 ;function for keyboard char input stors ASCII value in al
int 16h ;BIOS keyboard interrupt
ret
;-------------------------------------------------------------------------------------
;---------------------------reboot-----------------------------------------------------
reboot:
db 0EAh ; machine language to jump to FFFF:0000 (reboot)
dw 0000h
dw 0FFFFh
; no ret required; we're rebooting! (Hey, I just saved a byte :)
;--------------------------------------------------------------------------------------
times 510-($-$$) db 0 ; Pad remainder of boot sector with 0s
dw 0xAA55 ; The standard PC boot signature
please help
thank you