First post, by BurnedPinguin
- Rank
- Newbie
After seeing many people use things like networking cards and similar in order to add XTIDE BIOSes to their computers that either lack IDE BIOSes or that have buggy IDE BIOSes, I was inspired to see if I can make a floppy diskette which would steal a little bit of conventional memory (around 8k), and copy an XTIDE BIOS there, and then boot it. After numerous attempts and in different ways, I created the XUBDisk.
The XUBDisk is a set of diskettes (360k, 720k, 1.2MB, 1.44MB) that when booted, load the XTIDE Universal BIOS which enumerates hard drives on controllers located on ports 300h (for XTIDE cards), and 1F0h+170h (for regular IDE controllers), and then boots the first located hard drive.
This is achieved by copying the XTIDE BIOS to the last 8k of conventional memory (for 640k, segment 9E00h), and then initialising it (which makes the XTIDE BIOS hook int19h), and then calling int19h. You can then remove the XUBDisk from your floppy drive and the XTIDE BIOS will remain in memory for the entire session of the computer, as the XTIDE BIOS is copied to memory.
MS-DOS will report 8k of conventional memory less than your system actually has, because the counter your system BIOS provides is decremented by 8k, and that counter is what MS-DOS reads.
The XUBDisk is useful for any instance where you need the XTIDE Universal BIOS but do not have a card to hold it in the form of an option ROM. For example, if you have an XT class machine with a dumb IDE controller, your system BIOS does not have the necessary IDE routines for it, and you can use XUBDisk every time you boot your computer in order to give it the necessary IDE routines. Or, XUBDisk can work as a form of dynamic drive overlay (DDO), in the case where your system BIOS provides IDE services but they are buggy (size limitations, LBA limitations), so you can use the XUBDisk every time you use that kind of system as well to be able to use bigger hard drives and get LBA support in MS-DOS.
XTIDE Universal BIOS licensed under GNU/GPL 2.0.
XUB Loading Bootsector (own creation) licensed under GNU/GPL 2.0. (source included for all three variants, 9 sector per track floppies, 15 sector per track floppies, 18 sector per track floppies.)
It's obviously difficult to prove with screenshots, but here's the 86Box emulator showing XUBDisk with the hard drives disabled in the system BIOS. As you can see in the first shot, the floppy disk activity light is on and reading, and then XTIDE BIOS comes up, and boots MS-DOS from the hard drive. You can also see that XTIDE Universal BIOS is loaded into segment 9E00h, which is not usually a segment reserved for option ROMs, but it is the last 8k of the 640k of conventional memory on my system.