[ros-dev] Freeldr problems resolved

Brian Palmer brianp at sginet.com
Sun Apr 10 13:52:38 CEST 2005


That spec is dated 1996. Which is about ~15 years too late.

Actually, most everything will work on hardware that does not support this
standard, and pretty much everything that has come out of Microsoft since
the beginning. You see, not only is the boot drive value in the BPB of the
boot sector reliable, but if it is incorrect no Microsoft OS will be able to
boot. That is why the boot drive value exists in the BPB.

When I was writing that boot code I reviewed all the boot sector code I
could find on the internet. A lot of the "amateur" boot sector code used DL
as the boot drive. But in every instance of commercial boot sector code that
I can remember they have never touched DL. At the time I thought that was
kind of odd, so I added that code so that both (DL and the BPB boot drive
value) could be used. I would bet that if I could go back to when they
implemented the boot strap mechanism and look at the code, that the only
thing it did was load sector 0 to 0000:7C00 and jmp there. I doubt that any
register contents are guaranteed. I said I had seen BIOSes that did not pass
the boot drive in DL. I can't remember which exact brand they were, but they
were not no-name computers. They were name brand computers like HP or Dell.

In any case, I'm glad you were able to figure out why it wasn't booting.
But, I still don't agree with the fact that you removed functionality to fix
a corrupt data structure in your boot sector.

-Brian

-----Original Message-----
From: ros-dev-bounces at reactos.com [mailto:ros-dev-bounces at reactos.com] On
Behalf Of Michael B. Trausch
Sent: Sunday, April 10, 2005 11:15 AM
To: ReactOS Development List
Subject: Re: [ros-dev] Freeldr problems resolved

-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

Phillip Susi wrote:
>
> Hrm... I thought it was a standard left over from the PC/AT days at
> least that the bios would pass the device number in to the boot loader. 
>

According to the "BIOS Boot Specification," Version 1.01:

"When the boot handler is called, the BIOS passes a pointer to the PnP
Installation Check Structure in ES:DI. This is so that once the boot
handler has successfully loaded the device?s boot sector into memory at
address 0000:7C00h, execution control can be transferred with the
following register contents:

	ES:DI = Pointer to PnP Installation Check Structure
	DL = Drive number used for the INT 13h (00h, 80h, etc.)"

So the code follows the specification.  The specification is available
online at:

http://www.phoenix.com/NR/rdonlyres/56E38DE2-3E6F-4743-835F-B4A53726ABED/0/s
pecsbbs101.pdf

This is a specification by Compaq Computer Corp., Phoenix Technologies
Ltd., and Intel Corp.

If the hardware doesn't support this standard, odds are that nearly
nothing will work on it.

- --
Michael B. Trausch                               <fd0man at gmail.com>
Website: http://fd0man.chadeux.net/     Jabber: mtrausch at jabber.com
Phone: +1-(678)-522-7934              FAX (US Only): 1-866-806-4647
===================================================================
Do you have PGP or GPG?  Key at pgp.mit.edu, Please Encrypt E-Mail!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFCWV7/PXInbkqM7nwRA+nsAJ9AKvwV3RbtoIAnqvKklwdYjecuyACfW6vc
BmgV5JayOoIaIzZ6ZrqOFxQ=
=uk2N
-----END PGP SIGNATURE-----
_______________________________________________
Ros-dev mailing list
Ros-dev at reactos.com
http://reactos.com:8080/mailman/listinfo/ros-dev



More information about the Ros-dev mailing list