skiselev/8088_bios

Question about floppy2.inc

jinshin opened this issue · 2 comments

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

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.

Thank you for explanation!