Introducing… the Lo-tech XT-CFv2!

What is it?

The XT-CTv2 is an 8-bit ISA card that works like a hard-card – a self contained, bootable hard disk for any PC with an ISA slot, right back to the original IBM PC 5150.

It’s powered directly from the ISA slot and uses fast and cheap Compact Flash cards for storage, accessible through the custom-made ISA slot bracket, making file exchange between machines easy and without the need to open the machine.

My project goals were to build a board fast enough for Trixter’s incredible 8088-Corruption to play 30fps video on a PC/XT without re-buffering pauses, and to replace the by now themselves ageing IDE disks with smaller, cheaper and more portable compact flash (or microdrive) media.

Why Compact-Flash?

Basically, because it’s easy. Compact-flash cards can be made to behave like IDE hard drives so making possible the use of the well established XTIDE Universal BIOS, and they also support 8-bit transfers – ideal for this application. And besides, whilst compact-flash has been around for years, it’s still the media of choice for professional photography and embedded applications, so hopefully will last a while longer yet.

How was it Developed?

As a development of the Dangerous Prototypes XT/IDE design, the board is based on a programmable logic (CPLD) chip, so the logic making it work is literally drawn out in software and then programmed into the CPLD chip – and this can be done over-and-over.

So with an electrically sound board, thanks to the work by Dangerous Prototypes, a novice like me is free to try and re-try ideas, and hopefully eventually come up a working design.

With countless hours researching, pondering, testing and tweaking – and the kind help of many vcforum members – slowly the logic and BIOS modifications have come together. XTIDE Universal BIOS project lead Tomi is very kindly adding code specific to this board under adapter type ‘Lo-tech XT-CF’.

How Fast?

The primary goal was speed. There are several ways to transfer data in the PC, and this board offers three alternatives. For best compatibility, it defaults to 8-bit port-mapped IO that, in a PC/XT, does about 150KB/s.

Once DOS is running, 16-bit memory-mapped IO can be enabled with a simple utility, providing 240-300KB/s – similar to the fastest 8-bit controllers in the 1980s. And for PC/AT systems, that can be improved further with reduced wait-states (to about 1MB/s, in a 12MHz 80286).

With port-mapped and memory-mapped modes, the XT-CFv2 can be used in the PC/XTs ‘slot 8′, a slot usually seen as wasted because not many cards work in it, and can also co-exist with MFM or RLL drives if required.

But the XT-CFv2’s stand-out feature is its DMA mode – although there’s nothing unusal about an 8-bit disk controller using DMA, this works differently. Instead of using IRQs and single byte transfer mode, with the XT-CFv2 the CPU actively controls the transfer by repeatedly instructing the XT-CFv2 to call the DMA controller to transfer 16 bytes at a time (as much as can be done before needing to pause to allow the DMA controller to refresh system RAM). The result is file system throughput way beyond what a 4.77MHz 8088 can achieve on its own; up to 530KB/s. As far I can tell, this makes it the fastest ever PC/XT disk controller – and by some margin

Separately, I’m organising a batch of about 20 assembled boards as a kind of public Beta over the next few weeks; watch this space! After that, feedback depending hopefully things will move on to a run of about 100 boards.

I’ve been running a prototype XT-CFv2 board for a few weeks, and I am impressed by its thoughtful design and flawless execution. It just works. No hassles, no fussing with it. One less thing to worry about in a vintage computer. Well done, James.

This is really neat – It is getting harder and harder to replace failing harddrives in my old machines. Will this be usable in an old 386 with AMI BIOS ? Or do you have to use a modified BIOS ? How do you go about defining the drive geometry in the host computer ?

Hi, yes it will work in a 386, but a 16-bit ISA IDE controller will probably be faster if there’s not already one in the machine. My card uses the ‘XTIDE Universal BIOS’ so auto-detects drive parameters and has no capacity limits (that could bother DOS, anyway). Thanks!

I like this projcct very much. Depending on the Price I would need three(3!) of them just as I know now. I´m just wondering what´s about the 32 MB limit of 8-bit machines with DOS 3.2? Does the BIOS crack this limit?
I just tried a lot with old Amstrad IDE controllers and some versions of IDE to cf Adapters, it did not work. And I do not know how long my old MFM drive keeps spinning.

Hi, the v2 has been superceded by the XT-CFv3 board which is currently being tested. In the mean time there is the ISA CompactFlash Board, which is available right now

As for BIOS limits, the XTIDE Universal BIOS will support up to the max 8GB possible with later versions of DOS (4x 2GB partitions); for DOS 3.2 there is a 32MB per partition limit as you mention. This was increased in DOS 3.31 and 4 I believe.