Brian Palmer wrote:
That spec is dated 1996. Which is about ~15 years too
late.
Yea, so that's 9 years ago. Any computer newer than 9 years old should
support it no?
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.
Were any of them newer than 1996? If it is only computers older than
1996 that we have to worry about, I don't think that is much of a concern.
Anyhow, just changing the value to 0xff would not have any better
effect, as it would still be looking to DL even on computers that do not
set it, so how is that any better of a fix?