clns wrote:
Octo you maintain that the BIOS looks at the BPB under a microscope.
No, I maintain that different BIOSes each look at the BPB differently, so writing a BPB that doesn't exactly match Windows may result in failure on some BIOSes. The further your BPB is from Windows, the fewer BIOSes will accept it.
BenLunt wrote:
You are probably correct, however, this just proves that most manufacturers thought "If it works for Windows, that's all that matters". Unfortunately. My idea is that a BIOS should not care, nor have any idea what the OS is that it is helping to load. Therefore, it should not only work if it works for Windows.
Consumer hardware is almost exclusively tested with Windows. If you can come up with the correct algorithms to generate a BPB the same way Windows does, then you don't need to use Windows to generate your BPB. Anything else - even if it's valid in any other context - may be rejected.
BenLunt wrote:
As for a Heads value of 255, this won't emulate as a floppy, so that is out of the question.
Of course it will. As a test, I formatted an unpartitioned flash drive as FAT16, booted it up on the nearest convenient PC, and the BIOS set DL to 0x00 and indicated the geometry as 15/255/63. For comparison, the same flash drive with a partition table instead of a BPB boots up with the BIOS setting DL to 0x80 and the same geometry.
BenLunt wrote:
It looks to me that a majority of the BIOS/Firmware, especially now-a-days, will only emulate to a hard drive. Probably only the first few USB bootable capable BIOS/Firmware machines emulated a 1.44Meg floppy. Just my observation.
None of them emulate a 1.44MB floppy disk. The only similarity to a floppy disk is the value in DL. Several of our wiki pages refer to it as "superfloppy" to differentiate it from a real floppy disk. (The BIOS from the previous tests explicitly names its two modes "USB HDD" and "USB ZIP" - no floppy disks involved here at all.)