2003-07-14 10:54:51

by Koala GNU

[permalink] [raw]
Subject: boot process on i386

Hi all,

I am looking at the boot code in bootsect.S and I have some doubt. I
tried to search the answers to my questions on marc.theaimsgroup.com and
on google bu I haven't found them.

Problably these are newbie question but I'll appreciate if someone of
you help me.

1) In the bootsect code the first thing that is done is to copy the boot
sector to 0x90000 and move the program count to 0x9000, go.
Why it is necessary move the code there? is It not possible continue the
process from 0x7C00?

2) Another step is to move the parameters table from 0x78:0 to
0x9000:0x4000-12. WHat are
the info contained in this table? Can you send me a link to a site that
specify these info?
Withouth these info I am not able to understand these three line of code

movb $36, 0x4(%di) # patch sector count
movw %di, %fs:(%bx)
movw %es, %fs:2(%bx)

Thanks in advance for your help