skiselev / 8088_bios

BIOS for Intel 8088 based computers
GNU General Public License v3.0
513 stars 61 forks source link

Question about floppy2.inc #52

Closed jinshin closed 10 months ago

jinshin commented 10 months ago

Hi! Sorry, not a bug but a question: Why is the last line in floppy2.inc commented? https://github.com/skiselev/8088_bios/blob/dfff4fddc8ea73c8ac27435238449fb09b9ef252/src/floppy2.inc#L568C1-L575C15

skiselev commented 10 months ago

It's a great question. For compatibility reasons, the interrupt vector and some other entry points locations are fixed in the BIOS. INT 1Eh vector happens to be 0F000h:0EFC7h, while the next interrupt vector - INT 17h is at 0F000h:0EFD2h. So the difference between two is 11 bytes... That gives only 11 bytes for the Disk Base Table, that INT 1Eh vector is pointing to.

The default Disk Base Table info copied from that of 2.88 MB drive, since it has the largest number of sectors. The floppy code doesn't really care for the last two bytes of the Disk Base Table, they are there for compatibility purposes. (If I recall correctly, some later AT or third-party BIOSes have these extra 2 bytes, and some utilities might rely on them.

jinshin commented 10 months ago

Thank you for explanation!