VOGONS


First post, by BurnedPinguin

User metadata
Rank Newbie
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.

Last edited by BurnedPinguin on 2024-02-03, 22:55. Edited 1 time in total.

Reply 1 of 13, by Nexxen

User metadata
Rank l33t
Rank
l33t

I will definitely try it!
Good job!!!

PC#1 Pentium 233 MMX - 98SE
PC#2 PIII-1Ghz - 98SE/W2K

"One hates the specialty unobtainium parts, the other laughs in greed listing them under a ridiculous price" - kotel studios

Reply 2 of 13, by darry

User metadata
Rank l33t++
Rank
l33t++

Nice and thank you for sharing.

It is good to have an easy to use option for doing this.

[1] describes a similar way to do it manually in quite a few steps and [2] allows loading and running most any option ROM, including XTIDE, from DOS.

[1]
https://web.archive.org/web/20210815130317/ht … ROM=#post643159

[2]
https://github.com/rvalles/optromloader

Reply 3 of 13, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie
darry wrote on 2024-01-10, 11:10:
Nice and thank you for sharing. […]
Show full quote

Nice and thank you for sharing.

It is good to have an easy to use option for doing this.

[1] describes a similar way to do it manually in quite a few steps and [2] allows loading and running most any option ROM, including XTIDE, from DOS.

[1]
https://web.archive.org/web/20210815130317/ht … ROM=#post643159

[2]
https://github.com/rvalles/optromloader

This project initially started with me making my own DOS program to load the XUB from a DOS boot disk, and that did work, however, XUB couldn't actually boot the hard drives, it always hung on booting C. I couldn't figure out why that was, and I went the roundabout way, which turned out to be much faster as it's just a boot sector (the entire code is just 65 bytes long) that copies 16 sectors from the disk into memory.

Also, my diskette could very easily be modified to boot other option ROMs, just change the size you need to steal from conventional memory in the appropriate boot sector code for your diskette type, maybe change the interrupts that get invoked depending on what your option ROM hooks, put the option ROM in place of the XUB ROM in my diskette, and it should work. But I cannot guarantee other option ROMs will work as perfectly as XUB does because I have not tested.

Reply 4 of 13, by darry

User metadata
Rank l33t++
Rank
l33t++
BurnedPinguin wrote on 2024-01-10, 11:22:
darry wrote on 2024-01-10, 11:10:
Nice and thank you for sharing. […]
Show full quote

Nice and thank you for sharing.

It is good to have an easy to use option for doing this.

[1] describes a similar way to do it manually in quite a few steps and [2] allows loading and running most any option ROM, including XTIDE, from DOS.

[1]
https://web.archive.org/web/20210815130317/ht … ROM=#post643159

[2]
https://github.com/rvalles/optromloader

This project initially started with me making my own DOS program to load the XUB from a DOS boot disk, and that did work, however, XUB couldn't actually boot the hard drives, it always hung on booting C. I couldn't figure out why that was, and I went the roundabout way, which turned out to be much faster as it's just a boot sector (the entire code is just 65 bytes long) that copies 16 sectors from the disk into memory.

Also, my diskette could very easily be modified to boot other option ROMs, just change the size you need to steal from conventional memory in the appropriate boot sector code for your diskette type, maybe change the interrupts that get invoked depending on what your option ROM hooks, put the option ROM in place of the XUB ROM in my diskette, and it should work. But I cannot guarantee other option ROMs will work as perfectly as XUB does because I have not tested.

Thank you once again for your work and for the added context . Next time I need to test XUB, I will give XUBDisk a spin .

Reply 5 of 13, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie

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.

The latest ZIP has been attached to the starting POST.

Reply 6 of 13, by elsdrag00n

User metadata
Rank Newbie
Rank
Newbie

I'm really excited to try this today. I've been trying to get a CF card reader working in an old 286 Saumsung laptop that has no room for an XTIDE card. Crossing my fingers.... I'm going in!

PROGRESS!

Update: My previous issue was that I could install DOS to the CF cards I was trying, but I could never copy data, boot from, or run executables from the CF card. I could browse it with dir commands but that was it. My BIOS didn't have any way to input custom HDD parameters.

Using the 1.44mb floppy image you provided, it can detect different flash cards correctly by name. Then I'm able to hotswap the A: to a bootable dos disk, boot from that, and then head to my new C: and run programs off the CF card! YES!

Update 2: Finally got a CF card to format correctly and boot without any additional floppy disk shenanigans. Thank you *so much* for this!

The laptop is a Samsung S3600, a 286 12mhz. I'm using the Startech CF card reader from Amazon and a 64mb CF card. It's replacing a OEM 40mb mech drive.

Reply 7 of 13, by Xundi

User metadata
Rank Newbie
Rank
Newbie

Thank you very much for this project.
I was able to successfully use the 1.1 version on a 386 "Olivetti PCS 11" machine which has an Acer M5105 I/O controller integrated. (Motherboard: Olivetti
BA013)
The board's BIOS has very limited HDD support, and I wasn't able to get it recognize any CF card.
With this floppy, I can use my CF cards with the integrated controller. (For this machine, I used an IDE cable with PIN 28 - CS removed)

Reply 8 of 13, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie

I appreciate everyone trying out the project and reporting their results.

elsdrag00n wrote on 2024-05-22, 16:48:
I'm really excited to try this today. I've been trying to get a CF card reader working in an old 286 Saumsung laptop that has n […]
Show full quote

I'm really excited to try this today. I've been trying to get a CF card reader working in an old 286 Saumsung laptop that has no room for an XTIDE card. Crossing my fingers.... I'm going in!

PROGRESS!

Update: My previous issue was that I could install DOS to the CF cards I was trying, but I could never copy data, boot from, or run executables from the CF card. I could browse it with dir commands but that was it. My BIOS didn't have any way to input custom HDD parameters.

Using the 1.44mb floppy image you provided, it can detect different flash cards correctly by name. Then I'm able to hotswap the A: to a bootable dos disk, boot from that, and then head to my new C: and run programs off the CF card! YES!

Update 2: Finally got a CF card to format correctly and boot without any additional floppy disk shenanigans. Thank you *so much* for this!

The laptop is a Samsung S3600, a 286 12mhz. I'm using the Startech CF card reader from Amazon and a 64mb CF card. It's replacing a OEM 40mb mech drive.

If you're quick enough, once the actual XTIDE BIOS starts, you can freely swap out the diskette for another one, and tell XTIDE to boot from drive A. This is because XTIDE gets loaded in memory, and once it launches, no further reading from floppy is done by XUBDisk.

Reply 9 of 13, by Gammitin

User metadata
Rank Newbie
Rank
Newbie
BurnedPinguin wrote on 2024-01-10, 10:28:
After seeing many people use things like networking cards and similar in order to add XTIDE BIOSes to their computers that eithe […]
Show full quote

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.

Hi BurnedPinguin, first thank you so much for creating this, it's an amazing piece of work. I'm currently testing and having excellent results:
Pentium III
486
386
286 👍
A game changer for laptops!
https://x.com/Gammitin/status/187385493526120 … BbZx5vYZog&s=19

Reply 10 of 13, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie
Gammitin wrote on 2025-01-08, 15:31:
Hi BurnedPinguin, first thank you so much for creating this, it's an amazing piece of work. I'm currently testing and having exc […]
Show full quote

Hi BurnedPinguin, first thank you so much for creating this, it's an amazing piece of work. I'm currently testing and having excellent results:
Pentium III
486
386
286 👍
A game changer for laptops!
https://x.com/Gammitin/status/187385493526120 … BbZx5vYZog&s=19

Absolutely, thank you for testing and spreading the word! Concerns and feedback welcome here

Reply 11 of 13, by centurion2024

User metadata
Rank Newbie
Rank
Newbie

Hello, anyway possible to get a update of this file and also for 386 or 386L firmware?

There where instruction to make you own boot disk, but unfortunally it did't work.

Thank you a lot.

BurnedPinguin wrote on 2024-01-10, 10:28:
After seeing many people use things like networking cards and similar in order to add XTIDE BIOSes to their computers that eithe […]
Show full quote

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.

Reply 12 of 13, by BurnedPinguin

User metadata
Rank Newbie
Rank
Newbie

The disk images I provide should be copied sector by sector to a floppy disk. There's no filesystem, and I did not even add a valid BPB so this might confuse some fancier disk writing software. Try rawrite for example.

It may theoretically be possible to hex edit my diskettes and replace the XTIDE BIOS with some other option rom that's the same size (8k), but I cannot guarantee anything since option roms are not intended to be loaded this way and could have peculiarities that would not allow them to work from this kind of environment.

I chose not to have a version with the 386L firmware, because it is larger and would use up more conventional memory. The disk should still work with most IDE controllers, and also probably all XTIDE cards. Since the 386L firmware is larger, it would require small alterations to the code (int10h ah=2, which is what I use, can only read one track at a time, and floppy types with smaller sectors per track, you need to call it multiple times to read the same amount of data). The 386L firmware does have some extra features but I think they are not too necessary. I don't however see a need for the 386 firmware at all, I can't even find the difference between them (if someone knows this please let me know).

Reply 13 of 13, by Kekkula

User metadata
Rank Member
Rank
Member

Thanks for the great software 👍
However I'm having an issue...
I installed 10gb hard drive that I had laying around to my fujitsu lifebook 735dx.
It's p133mmx with 80mb memory.
I found out quickly that machine has 8.4gb bios limit.
First I let the machine auto detect drive as a 8.4gb drive, but after creating partitions both dos 6.22 and windows 98 installation would hang on boot. Windows xp installation started without problems.
Next I tried to limit drive size with seatools but it wouldn't save settings to drive.
Then i installed ontrack ddo and it worked. Dos 6.22 would boot just fine, next I installed windows 98 on top of dos, it installed fine however it was now on 2gb fat16 partition. So I converted it to fat32 but I couldn't expand the drive. Probably because of ontrack.
Next I made this xt-ide boot disk and cleared the drive and started over 😀
Windows 98 installed ok, but I'm having issue that drive starts to transfer files but after a while stops for several seconds and then continues, this didn't happen on ontrack installation also there is error in the device manager.
I'm not going to use machine as a windows machine it's just convenient to transfer files from usb in windows... and it allows large drives.