johnsa wrote:El-Torito CD-ROM booting for example would emulate a 1.44Mb floppy when booting from CD.
Um, yes and no. El-Torito booting CAN emulate a 1.44Mb floppy when told to. It can also emulate a 1.2MB floppy or a 2.88MB floppy, a HDD or even provide no emulation at all.
In the case of floppy emulation, the BIOS will provide 00h for the drive number, and a REAL floppy would be 01h. In this way, booting from an El-Torito emulated floppy lets you still access a real floppy drive.
When using HDD emulation, the BIOS will provide a number of 80h. All other HDDs are increased by one, so what would normally be 80h is now 81h.
In the case of no emulation, the BIOS drive numbers are not changed at all. This is the only mode where using Int 13 Extensions to access data on the CD will be done in normal CD-sized sectors of 2048 bytes. No emulation booting also has some other nice advantages, such as the BIOS being able to load up to 0xFFFF sectors, and being able to specify the segment to load to. I wouldn't be surprised if there's many BIOS bugs to be found there, though.
In any case, with El-Torito booting, you can attempt to use Int 13 Function 48 to get the drive capabilities, and use that information to determine if you are really running from a CD or not. However, there are a lot of buggy BIOSes out there that do strange things like hang or return false information when you mix El-Torito and Int 13 Func. 48.