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?