Zelaron Gaming Forum

Zelaron Gaming Forum (http://zelaron.com/forum/index.php)
-   Tech Help (http://zelaron.com/forum/forumdisplay.php?f=329)
-   -   bootinit? (http://zelaron.com/forum/showthread.php?t=34749)

Demosthenes 2004-11-27 10:42 PM

bootinit?
 
Code:

; This is a comment
[ORG 0x7C00];This just tells the program where it is in the memory. Not important
[BITS 16];Not important too.

jmp start        ; Jump over BIOS parameter block

start:;The label for the start of the actual program

push cs;Put cs onto the stack
pop ds;Take it out and put it into ds


mov si,Print_loading    ;Print loading message
call printstring  ;Call is like jump, but it goes back. Like a function


      ;The complicated bit: Loads the next program
mov ah,02h              ;When ah=, int13 reads a disk sector
mov al,4            ;Al is how many sectors to read
mov ch,0            ;The track to read from
mov cl,2            ;Sector Id
mov dh,0            ;Head
mov dl,0            ;Drive (0 is floppy)
mov bx,0x1000          ;Es and Bx put together are where to load the program too (see jmp 0x1000:0x00)
mov es,bx
mov bx,0x00
int 13h    ;Int 13 is all functions for disks

mov si,putdot          ;Print a ".".
call printstring

jmp 0x1000:0x00        ;Run Bootinit from stack.

printstring:          ;Print string routine.
mov ah,0eh          ;Mov ah into 0, so int 10 prints
stringloop:          ;The following code loads each seperate charcter so it can be printed
lodsb           
cmp al,00          ;If al =0, then the string has all been loaded
je endstring
int 10h    ;When int 10 is called, and ah=, it prints
jmp stringloop
endstring:
ret            ;Ret returns


putdot        db '.',0
Print_loading db 13,10,'Loading Easy OS v0.01a...',0
times 425 db 0;wastes 425 bytes on purpose, so the sector is full (The program must be 512 bytes long)

I was looking at someone elses code, and right above printstring there is a jmp 0x1000:0x00. Why is it jumping there?

Here's the site: http://www.groovyweb.uklinux.net/index.php...your%20own%20os

Demosthenes 2004-11-28 09:26 AM

Quote:

Originally Posted by mjordan2nd
Code:

; This is a comment
[ORG 0x7C00];This just tells the program where it is in the memory. Not important
[BITS 16];Not important too.

jmp start        ; Jump over BIOS parameter block

start:;The label for the start of the actual program

push cs;Put cs onto the stack
pop ds;Take it out and put it into ds


mov si,Print_loading    ;Print loading message
call printstring  ;Call is like jump, but it goes back. Like a function


      ;The complicated bit: Loads the next program
mov ah,02h              ;When ah=, int13 reads a disk sector
mov al,4            ;Al is how many sectors to read
mov ch,0            ;The track to read from
mov cl,2            ;Sector Id
mov dh,0            ;Head
mov dl,0            ;Drive (0 is floppy)
mov bx,0x1000          ;Es and Bx put together are where to load the program too (see jmp 0x1000:0x00)
mov es,bx
mov bx,0x00
int 13h    ;Int 13 is all functions for disks

mov si,putdot          ;Print a ".".
call printstring

jmp 0x1000:0x00        ;Run Bootinit from stack.

printstring:          ;Print string routine.
mov ah,0eh          ;Mov ah into 0, so int 10 prints
stringloop:          ;The following code loads each seperate charcter so it can be printed
lodsb           
cmp al,00          ;If al =0, then the string has all been loaded
je endstring
int 10h    ;When int 10 is called, and ah=, it prints
jmp stringloop
endstring:
ret            ;Ret returns


putdot        db '.',0
Print_loading db 13,10,'Loading Easy OS v0.01a...',0
times 425 db 0;wastes 425 bytes on purpose, so the sector is full (The program must be 512 bytes long)

I was looking at someone elses code, and right above printstring there is a jmp 0x1000:0x00. Why is it jumping there?

Here's the site: http://www.groovyweb.uklinux.net/index.php...your%20own%20os

Never mind, I feel dumb for even asking. I got it figured out now.


All times are GMT -6. The time now is 11:24 PM.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
This site is best seen with your eyes open.