First post, by RJDog
I am intending to make some more useful posts on my blog surrounding retro PC builds other than just the current "hey look what I built". One of the posts I want to do is about the technical inner workings of Dynamic Disk Overlay utilities, however before I do, I want to make sure I know what I'm talking about first (funny that, eh?). I really can't find any good resources online by searching that describes the technical inner workings of DDO software. I'm speaking specifically about OnTrack, but I assume the fundamentals are the same with EZ-Drive.
What I know:
- DDO software overwrites the disk's MBR (sector 1) so that it is loaded on system boot (assuming the system is booted from the drive that has the DDO software in the MBR)
- The existing MBR is moved to sector 2; this boot code is executed after the DDO software is loaded, as if it were on sector 1
- The DDO software itself is actually kept in the first ~9kB of the disk before any other partitions are placed, and the DDO boot loader code finds and executes the DDO software there
- When an operating system install takes place (i.e. DOS, Windows 95, etc.) and attempt to install their bootloader onto the MBR, the DDO software somehow redirects this to write to sector 2 instead of sector 1.
- For OnTrack 9, at least, the partition table is kept in the usual spot on the real MBR on sector 1, in LBA format. This means that LBA-capable motherboards that natively support the drive size in question can actually read the partitions as usual, and is perfectly usable transplanted into a new machine without reformating
The blanks that I am not sure on that I'm hoping you guys can help me out:
- The DDO software overwrites the BIOS code in RAM to support (presumably) LBA-style disk access. This sounds like it is very vendor and version specific for the BIOS firmware... does the DDO software know what location(s) in RAM to hook into for each and every BIOS vendor and version of the BIOS firmware? Sounds almost unmanageable from the development standpoint, but I'm not quite sure how it would work otherwise.
- Kind of related, does the DDO software hook into Int 13h, or just use BIOS's normal means for Int 13h and just hook into the code for disk access as above?
- I know most DDO software can/will go in and set some fake (or maybe real) CHS values in the BIOS... I guess this is kind of the same question again, but I suppose the DDO software must know where/address/how to modify these values for each and every BIOS vendor and version of the BIOS firmware?
And, of course, if you have any additional knowledge that you want to share, by all means!