It's generally believed that the IBM/Xebec Fixed Disk adapters were hardware limited to only four different drive geometries - of which, only the last revision of the card was user configurable (without modification).
However, page 37 of the first version ROM source code states:
"TO DYNAMICALLY DEFINE A SET OF PARAMETERS BUILD A TABLE OF VALUES AND PLACE THE CORRESPONDING VECTOR lNTO INTERRUPT 41. NOTE: THE DEFAULT TABLE IS VECTORED IN FOR AN INTERRUPT 19H (BOOTSTRAP)"
In other words the drive geometries were in fact dynamic using tables referenced via INT 41H
(similar how INT 1EH
was used for floppy disk controllers).
Obviously this was forward thinking, but had some clear shortcomings. The default drive tables in adapter ROM table is vectored to INT 41H
at INT 19H
(boostrap) time rather than at ROM initialization, so this would prevent the BIOS or another option ROM from being able to switch it out during POST. However it seem plausible that this could be done before any significant reads or writes occurred via a boot floppy disk or a modified MBR on the hard drive (similar to later drive overlay software).
Presumably there would be some electronic/adapter ROM limitations as to the range of parameters possible and if the custom MBR were to be overwritten on your drive, your data could be in peril. Of course, WD and others worked past this with their own ROM-based dynamic formatters, and replacing the slower IBM controllers to support a larger drive was accepted so this eventually became an obsolete issue.
My question is, was modifying the INT 41H
table to enable the IBM/Xebec controllers to support additional drive geometries ever done and were there software titles at the time to do it?
C800:018B
(not during init, but actual IPL). So even if you re-vectored INT 19 or INT 41 after FD BIOS init, once the FD BIOS's INT 19 is eventually called to boot the HD, it's just going to revert it back to it's own. Unless you take over INT 19, then jump past that part of the FD BIOS's INT 19 that resets INT 41 back... but that's a bit hacky!