• Please review our updated Terms and Rules here

XUBDisk - floppy disk XTIDE Universal BIOS booter

BurnedPinguin

New Member
Joined
Feb 11, 2021
Messages
2
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. (modifié)

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.
 

Attachments

  • xubdisk.zip
    38.1 KB · Views: 6
  • image (5).png
    image (5).png
    17.9 KB · Views: 17
  • image (6).png
    image (6).png
    19.8 KB · Views: 17
  • image (7).png
    image (7).png
    20.1 KB · Views: 17
New! XUBDisk version 1.1, it can now boot on XT systems.

TESTING WANTED: users of (various) XTIDE cards or XT systems with BIOS-less controllers, please report if it works for you, and if it does, with which IDE controller card you used it.
(I cannot figure out how to edit previous posts, so I will have to attach the new version to this reply instead of the initial post.)
 

Attachments

  • xubdisk.zip
    36.7 KB · Views: 4
Tested it with 86Box as a 386DX-25 system and standard IDE controller and it worked. Is there a way that this can be fabricated for hard drive boot sectors? I have a Zenith Data Systems Z-Note 325Lc that lacks a working floppy drive (currently dead and I don't have a spare or a USB floppy drive to write diskettes) and has a 504MB limit (but the system ironically detects the full drive space as 1441MB (1.44GB HDD).
 
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. (modifié)

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.

It's worth noting that projects like the one you described can be a valuable way to overcome hardware limitations or compatibility issues in older systems. By creating custom boot disks or modifying system configurations, enthusiasts and developers have been able to extend the lifespan and functionality of legacy hardware.
 
Back
Top