Retro – XT-IDE (BIOS)

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

XT-IDE Universal BIOS

Views

XT-IDE (BIOS) – Emulated on PCem


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

https://www.minuszerodegrees.net/xtide/variations/XT-IDE%20and%20XT-CF%20variations.htm#xt_cf_lite_v4.1

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.

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:

Everythingclear, releaseBolt release
atAT Version
xtplusExtended instruction set for 80188/80186/V20/V30
nextXT version instruction set on 8088/8087/V30
CleanTidy everything up for a new build
ReleasenextUPX Compression
xt_unusednextOptimised, don't use, remove code
XTIDE Universal BIOS Configurator v2 – Make Options

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.

xtidecfg.com – Flashing the EEPROM via Software

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

XT-IDE (BIOS) – After the motherboard BIOS comes the XT-IDE BIOS (simulated here with PCem)

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

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

PCem

Log

DateDescription
15.07.2024Plates ordered with XT ROM from DocWilde Retronics
23.07.2024Components soldered
22.02.2025Information added about the BIOS build
23.02.2025Introduction written
30.03.2025The XT is being simulated in PCem and screenshots have been made. Possibly include screenshots of actual hardware as well.
Logbook

Leave a Reply

Your email address will not be published. Required fields are marked *