Last updated on 1 April 2025 by Suffocation
If an IDE hard drive is to be connected to an old XT computer, or if a larger hard drive is needed for the 386, can a BIOS be „simply“ rewritten or the computer replaced with a newer one. Since both are usually not an option, fortunately there is the XT-IDE project.
Now the XT computer can be supplied with new hard drives, or AT computers can recognise larger hard drive capacities. The XT-IDE software is written into a ROM, as the name suggests, and this can be loaded onto a network card, a specially designed card, or even a newly built IDE controller.
This post describes the use of the XT-IDE BIOS and refers to some card solutions in other posts.
Links to the project
Views

Facts
- Does not replace the actual BIOS but only replaces the IDE controller functionality.
- Can overwrite the actual BIOS code (disable HDD in BIOS).
- There are pre-made BIOS versions that can be burned onto a ROM, or a custom version can be created by adapting the Makefile.
- The BIOS can be programmed onto EE/UE PROMs such as 27C64, 27C256, 28C64, 28C512…
- The BIOS requires hardware such as an expansion card, IDE controller, or a network card with a ROM socket.
- Depending on the ROM type and the combination of plug-in cards, the EEROM can be programmed on the card or must be programmed and erased externally.
Hardware Projects
Glitchwork rev 4
Monotech XT-CF-Mini
https://github.com/monotech/monotech_xt-cf-mini
XT- CF-Lite
https://github.com/skiselev/xt-cf-lite-v4
ISA ROMs
Two versions, one programmable with a switch for 8kB and 32kB EEPROMs, the other only suitable for 27C256 EPROMs.
https://www.vogons.org/viewtopic.php?t=82499
Reconstructed
I've replicated some of the projects, see below under related projects.
ROM on the network card
It is also possible to flash the XT-IDE BIOS onto a ROM and insert it into the free ROM slot of a network card. It must be noted that the ROM needs to be enabled via jumper or configuration tool, the correct size specified, and the boot memory address defined. Network cards also mostly work with UV-erasable ROMs like the 27C64. These can then only be programmed by an external EPROM programmer. It's possible there is a functional EEPROM replacement from WINBOND for this, in which case you can save yourself the trouble of illuminating it for erasure.
Programming
Build XT-IDE BIOS
The XT-IDE sources are quick to build yourself, you only need a few programs and your own computer becomes a BIOS assembler. The whole thing is described at the following link:
https://xtideuniversalbios.org/wiki/BuildInstructions
Essentially, the following tools must be installed. After that, check if they are also in the environment variables and restart once.
- TortoiseSVN (or any SVN client)
- MinGW (only mingw32-make.exe is needed)
- NASM
- UPX (optional)
- Strawberry Perl (optional)
Fetch the sources via SVN. To do this, right-click with the mouse in a chosen target directory and select SVN Checkout.

Enter the following URL and check out:
https://www.xtideuniversalbios.org/svn/xtideuniversalbios/trunk

Open the command line and navigate to the directory. Then, run the mingw32-make command and everything should build.

The binaries for the biosrom can then be found in the build directory.
Build custom XT-IDE BIOS
For this, the following two variables must be set in the makefile (makefile in the XTIDE BIOS folder).
DEFINES_CUSTOM =
BIOS_SIZE_CUSTOM = ?
Additionally, I've added the DEFINES_COMMON_CUSTOM constant because I've removed the power management. My configuration variant looks like this:
DEFINES_COMMON_CUSTOM= MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_EBIOS MODULE_SERIAL MODULE_SERIAL_FLOPPY NO_ATAID_VALIDATION CLD_NEEDED EXTRA_LOOP_UNROLLING_SMALL MODULE_BOOT_MENU MODULE_8BIT_IDE_ADVANCED MODULE_COMPATIBLE_TABLES EXTRA_LOOP_UNROLLING_LARGE
DEFINES_CUSTOM = $(DEFINES_COMMON_CUSTOM) USE_386 MODULE_ADVANCED_ATA MODULE_W
#27C256
BIOS_SIZE_CUSTOM = 32768
The BIOS can then be built with the following command:
mingw32-make custom
The binaries for the biosrom can then be found in the build directory.
Configuration tool build
The configuration tool xtidecfg.com was already obtained with the last SVN checkout. It is located in the directory XTIDE_Universal_BIOS_Configurator_v2. Change into the directory and execute make.
mingw32-make xt
The file xtidecfg.com can be found in the build directory. There are further options for building the tool:
| Everything | clear, release | Bolt release |
| at | – | AT Version |
| xtplus | – | Extended instruction set for 80188/80186/V20/V30 |
| next | – | XT version instruction set on 8088/8087/V30 |
| Clean | – | Tidy everything up for a new build |
| Release | next | UPX Compression |
| xt_unused | next | Optimised, don't use, remove code |
Installation
Before the boot ROM is burned, the ROM should be configured using the tool. For this, a computer is needed, preferably the one that will later use the ROM. The program xtidecfg.com is then called up there.






(*) Autoconfig only works on the original computer on which you want to use the XTIDE ROM; otherwise, settings such as the IDE controller address must be configured manually.
Afterwards, take the file and burn it onto the ROM. If an EEPROM was used and it is supported by the software, it can also be programmed directly via the inserted card.

On the next boot with the ROM plugged in, XTIDE should appear after the board's own BIOS initialisation.

Problems
XTIDE is not found on boot
- This is usually due to an address conflict, either with the ROM or because the wrong HDD controller address was specified. Even if the controller isn't found, XTIDE simply won't be displayed. Check all addresses again, and also check the jumpers on the ROM and controller boards. C800 and D800 have proven to be good values for the ROM address.
- Incorrect ROM used, some EPROMs and EEPROMs are not compatible. Cards can also only support the specified EPROM types. For example, I replaced a 27C256 with a 28C256, but it didn't work because the pinout deviates in two places. A 27C257 must be used here ;).
- When it comes to the ROM on the network card, ensure that it is active, that the size and address are set correctly.
Controller not found
Should the XTIDE be displayed unexpectedly, but the error "Controller not found" appears, then the address/type of the IDE controller is incorrect; check this again in the tool and re-flash the ROM.
Checksum Error
XTIDECONF did not run, this calculates the checksums and sets them. Run the tool and re-flash the ROM.
The ROM cannot be flashed via XTIDECFG
Incorrect ROM version, for example, the AT28C64-B can be flashed but the AT28C64 cannot. If you try to flash the AT28C64, the version on it will no longer work afterwards and the EPROM programmer must be used.
Miscellaneous
—
Conclusion
A great project. I initially had a few problems with the XT-IDE not being found or the BIOS not being configured correctly. But once you know how it's done and you've found and solved the pitfalls, it's very simple. Unfortunately, I only found these minor details in a few YouTube videos, or only saw the necessary details afterwards. But what's the point of complaining, it worked and if you use the right (E/EE/UE) PROMs, it all works. Pay attention to which ROM type is required for the projects. This is important for everything to work.
Related Posts
- Retro Project – ISA Boot EEPROM Card
- Retro Project – Mini ISA ROM Card
- Retro Project – XT-CF-Lite Version 4.1
Sources
https://github.com/glitchwrks/xt_ide
https://users.glitchwrks.com/~glitch/2017/11/23/xt-ide-rev4
https://www.minuszerodegrees.net/xtide/XT-IDE%20-%20Basics.htm
https://www.minuszerodegrees.net/xtide/rev_4/XT-IDE%20Rev%204%20-%20general.htm
https://www.retrospace.net/infoseiten/readm.php?id=66
https://users.glitchwrks.com/~glitch/2017/11/23/xt-ide-rev4
https://www.lo-tech.co.uk/wiki/XTIDE_Universal_BIOS
Log
| Date | Description |
|---|---|
| 15.07.2024 | Plates ordered with XT ROM from DocWilde Retronics |
| 23.07.2024 | Components soldered |
| 22.02.2025 | Information added about the BIOS build |
| 23.02.2025 | Introduction written |
| 30.03.2025 | The XT is being simulated in PCem and screenshots have been made. Possibly include screenshots of actual hardware as well. |