Hi. > 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 but I haven't found them. I know nothing about the former site, so can't comment thereon. > Probably these are newbie question but I'll appreciate if someone > of you help me. I'll do what I can. > 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? Following moving the boot code there, the next step is to load the kernel image, either from 0x10000 (64k) or from 1M upwards, this being dependent on various factors. However, the boot sector holds several flags whose values are important AFTER the kernel image has been loaded, so is moved out the way first. > 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? > Without 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) That area of memory contains parameters configured by the BIOS of the machine in question. I would suspect it's the parameters for the floppy drives, and the code that follows is presumably that used to determine how many sectors per track the floppy in /dev/fd0 actually has. > Thanks in advance for your help No problem. Best wishes from Riley. --- * Nothing as pretty as a smile, nothing as ugly as a frown. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.500 / Virus Database: 298 - Release Date: 10-Jul-2003
Hi, Riley,
thanks for your reply.
I noticed the native boot code for floppy is not supported any more. In
fact in the current code display a message and reboot the machine after
the press of a key.
But I am interested on how the old native boot code worked.
Do you know if there is a particular reason why the boot sector is moved
to 0x9000:0 (excuse me if I repeat the question, but I need help on this)?
I hope someone else can point me a site where is reported the format of
the floppy parameter table at address 0x0:0x78.
Thanks in advance and excuse me for this other post.
Riley Williams wrote:
>Hi.
>
> > 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 but I haven't found them.
>
>I know nothing about the former site, so can't comment thereon.
>
> > Probably these are newbie question but I'll appreciate if someone
> > of you help me.
>
>I'll do what I can.
>
> > 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?
>
>Following moving the boot code there, the next step is to load the
>kernel image, either from 0x10000 (64k) or from 1M upwards, this
>being dependent on various factors. However, the boot sector holds
>several flags whose values are important AFTER the kernel image has
>been loaded, so is moved out the way first.
>
> > 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?
> > Without 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)
>
>That area of memory contains parameters configured by the BIOS of
>the machine in question. I would suspect it's the parameters for
>the floppy drives, and the code that follows is presumably that
>used to determine how many sectors per track the floppy in /dev/fd0
>actually has.
>
> > Thanks in advance for your help
>
>No problem.
>
>Best wishes from Riley.
>---
> * Nothing as pretty as a smile, nothing as ugly as a frown.
>
>---
>Outgoing mail is certified Virus Free.
>Checked by AVG anti-virus system (http://www.grisoft.com).
>Version: 6.0.500 / Virus Database: 298 - Release Date: 10-Jul-2003
>
>-
>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>Please read the FAQ at http://www.tux.org/lkml/
>
>
>
On Tue, 15 Jul 2003 11:17:46 +0200 Koala GNU <koala.gnu@tiscalinet.it> wrote: | Hi, Riley, | | thanks for your reply. | | I noticed the native boot code for floppy is not supported any more. In | fact in the current code display a message and reboot the machine after | the press of a key. | | But I am interested on how the old native boot code worked. | | Do you know if there is a particular reason why the boot sector is moved | to 0x9000:0 (excuse me if I repeat the question, but I need help on this)? Why do you need to know? IIRC, it's because the code being loaded also (usually) is written as a boot loader also, and boot loaders often assume that they are loaded at 0:7c00. (disclaimer: it's been a few years since I worked on boot loaders.) | I hope someone else can point me a site where is reported the format of | the floppy parameter table at address 0x0:0x78. http://www.delorie.com/djgpp/doc/rbinter/id/55/24.html (for one) -- ~Randy | http://developer.osdl.org/rddunlap/ | http://www.xenotime.net/linux/ |
How It Works: DOS Floppy Disk Boot Sector http://www.ata-atapi.com/hiwdos.htm#T8 > -----Original Message----- > From: linux-kernel-owner@vger.kernel.org > [mailto:linux-kernel-owner@vger.kernel.org] On Behalf Of Koala GNU > Sent: Tuesday, July 15, 2003 2:18 AM > To: Riley Williams; linux-kernel > Subject: Re: Linux boot code > > > Hi, Riley, > > thanks for your reply. > > I noticed the native boot code for floppy is not supported > any more. In > fact in the current code display a message and reboot the > machine after > the press of a key. > > But I am interested on how the old native boot code worked. > > Do you know if there is a particular reason why the boot > sector is moved > to 0x9000:0 (excuse me if I repeat the question, but I need > help on this)? > > I hope someone else can point me a site where is reported the > format of > the floppy parameter table at address 0x0:0x78. > > Thanks in advance and excuse me for this other post. > > Riley Williams wrote: > > >Hi. > > > > > 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 but I haven't found them. > > > >I know nothing about the former site, so can't comment thereon. > > > > > Probably these are newbie question but I'll appreciate if someone > > > of you help me. > > > >I'll do what I can. > > > > > 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? > > > >Following moving the boot code there, the next step is to load the > >kernel image, either from 0x10000 (64k) or from 1M upwards, this > >being dependent on various factors. However, the boot sector holds > >several flags whose values are important AFTER the kernel image has > >been loaded, so is moved out the way first. > > > > > 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? > > > Without 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) > > > >That area of memory contains parameters configured by the BIOS of > >the machine in question. I would suspect it's the parameters for > >the floppy drives, and the code that follows is presumably that > >used to determine how many sectors per track the floppy in /dev/fd0 > >actually has. > > > > > Thanks in advance for your help > > > >No problem. > > > >Best wishes from Riley. > >--- > > * Nothing as pretty as a smile, nothing as ugly as a frown. > > > >--- > >Outgoing mail is certified Virus Free. > >Checked by AVG anti-virus system (http://www.grisoft.com). > >Version: 6.0.500 / Virus Database: 298 - Release Date: 10-Jul-2003 > > > >- > >To unsubscribe from this list: send the line "unsubscribe > linux-kernel" in > >the body of a message to majordomo@vger.kernel.org > >More majordomo info at http://vger.kernel.org/majordomo-info.html > >Please read the FAQ at http://www.tux.org/lkml/ > > > > > > > > > - > To unsubscribe from this list: send the line "unsubscribe > linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ >