From Idea to Reality – CPLD based XT/IDE Controller

ATA (IDE) in most forms is a 16-bit protocol, so an IDE (or ATA/SATA) disk won’t work in an old 8-bit machine like an IBM PC/XT.  8-bit IDE cards did exist ‘back in the day’, but these worked with special 8-bit disks, and sourcing these together now will be prohibitively expensive – if you can find them in working condition that is.

Enter then Andrew Lynch’s now ubiqutous XT/IDE project – a home-assembly 8-bit ISA card that enables any current IDE (or, by means of a simple adapter, compact flash, SD-card or SATA disk) to be used in an 8-bit micro.  And there’s a selection of ROM images available too, so all but the earliest 5150 can boot up directly from a modern storage device.

Original XT-IDE Controller (photo: hackaday.com)

The card uses a 28C64 EEPROM for the BIOS and discrete 74LS series logic chips to divide the 16-bit data from the disk into two 8-bit bytes for the old XT bus.  And, it could be built at home with just some basic soldering skills.  But stock of  these boards is long gone now.

Dangerous Prototypes XT/IDE board v1

Ian at Dangerous Prototypes spotted more potential in the project.  By using a ‘CPLD’, many or maybe even all the 74LS chips could be eliminated, instead the circuit design being implemented in software and literally uploaded into the CPLD through JTAG.  In this way, the board could be made smaller and less expensive – and changes to the logic design, for example the ‘chuck-mod‘ to improve read speed, could be made without redesigning the board or cutting traces.

Ians designs use mostly surface-mount components, which opens up potential for a production run of the boards, and SMT components are generally cheaper than through-hole parts – but many home assemblers will be put off.  Actually assembling them isn’t too bad, with some basic equipment.

So the Dangerous Prototypes XT/IDE board v1 (DPv1) was born, but after a false start with incorrect cut dimensions, the design sat on the shelf for a year.  When I spotted a link on vintage-computer wiki, I just had to get involved.

Dangerous Prototypes XT/IDE board v1a

Ian’s first design used a 5V CPLD, but this part was discontinued (along with many 5V parts) as designers move to faster, cheaper and cooler 3.3V logic.  Could the old PCs we need this to work with interface with 3.3V logic?  No-one knew.

With a PC/XT in my workshop and an oscilloscope I’d inhereted some years before still waiting for it’s first project, this seemed like a great chance to learn how to use that and hopefully get this moving.  By adding some test points to an original XT/IDE board, the signals in the PC/XT could easily be analysed – and some were already near 3.3V it transpired.  In any case, 3.3V logic levels have been designed to be compatible with 5V TTL.

After some discussion with Ian, he thought it was worth a shot.  As it happens, much later it transpired that ATA-6 disks (c.2001 and newer) themselves use 3.3V singalling too.

So the board was revised with the 3.3V ‘XL’ CPLD – the Dangerous Prototypes XT/IDE board v1a (DPv1a) – basically by adding a tiny regulator.  A few were made, Dangerous Prototypes forum member Pietja and I assembling and testing them.  Pietja quickly found some missing traces in the design, which were corrected with jumper wires – my prototype board being a shameful mess compared to Pietja’s:

XT-IDE V1a Prototypes

But either way, the boards worked!  A couple of drive compatibility problems were resolved by changing the cable-select termination (actually, a minor deviaton from the ATA spec inherited from the original XT/IDE board) and with that fixed, we just couldn’t break it – every computer and drive we tried worked.  Pietja produced CPLD code for both the original circuit design and the ‘chuck-mod’ version, which with the appropriate BIOS all worked just fine.

Performance wise of course it’s identical to the original board, throughput in a PC/XT with the Chuck-Mod being about 115KB/s write and 230KB/s read.  It easily out-performs the original ST506 and indeed later RLL drives like the ST-251.

Dangerous Prototypes XT/IDE board v1b

So with the board proven, the missing traces in the V1a design were corrected and a small run of V1b boards produced.

Although still with the CSEL problem, this is easy to correct at assembly by jumpering pin 28 to pin 30 on the underside of the header.  With that change, the board is reasonably cheap, easy to assemble and works perfectly.

Assembled XT-IDE V1b Board

I have a few of these available to buy right now – see the bottom of the page.

Dangerous Prototypes XT/IDE board v2

But Ian wasn’t happy with that – it still needed four 74LS series ICs as the CPLD didn’t have enough pins to accomodate the entire design.  By using a 100-pin CPLD, all the 74 series chips could be eliminated.  So the Dangerous Prototypes XT/IDE board v2 (DPv2):

Dangerous Prototypes XT-IDE v2 Board

With so few components it’s cheap to make – by far the most expensive part being the 28C64 EEPROM.

After a bit of CPLD development, Pietja again came up with the goods and produced a working port of the original XT/IDE circuit logic for the board.  With it, his board came to life with no problems found in initial testing.

So we now have,

I’ve put some parts lists up on the wiki here and some notes on SMT soldering.

Whilst this was all happening, the creators of the original XT/IDE board have produced a Version 2, which adds some very cool capabailities based around booting from disk images via a serial lead, but it seems the boards made have now all been sold.  It was also quite expensive to make, especially with the high-speed serial UART.

Assembled DPv1b Boards Available Now!

I have a few assembled and tested a few DPV1 boards and am making these available for purchase right now:

  • CLPD has been programmed with the ‘Chuck-mod’ design
  • M28C64 EEPROM included, programmed with ‘Chuck-mod’ XTIDE BIOS 2.0-beta

Please see the vintage-computer forums for sale section – I’m making available two v1b boards and my original prototype v1a too.  All three are fully tested, although the prototype is physically fragile.  Proceeds will be fed straight back into the development of the compact flash board I’m currently working on.

Note: The Keystone 9202 ISA bracket is not included, since stock in the UK is non-existant.  These can be obtained from DigiKey in the US.

Coming Soon: XT/IDE – The Future

Social tagging:

4 Responses to From Idea to Reality – CPLD based XT/IDE Controller

  1. Ole juul says:

    Compliments on the blog. It looks great and the writing is good. That soldering video was worth watching. I’ve never tried SMT, so that was a good introduction too. I’ll check back here.

  2. Hey your project is really cool, and I am happy to have stumbled upon it.

    I never envisioned that someone would be messing with this stuff 15 years after I published my original code & schematic.

    It may come as a surprise to folks but I never had any interest whatsoever adapting IDE drives to the PC/XT.

    Actually my first prototype was built on a XT wire-wrap card stuffed into a 386 machine.

    It wasn’t until later I even tried it in an 8088 system, and that was only because I stumbled across an embedded board called a “wildcard 88” and just wanted to see if it would work. If I recall correctly that w88 achieved a miserable 20kb/sec.

    My target was an embedded 80c188-based data logger I designed including my own multi-tasking kernel, and I needed a hard drive to hold weeks on end worth of HVAC sensor readings.

    My system was used to determine cooling efficiency improvements for 3rd party add on equipment to large chiller systems.

    The little 8-bit IDE adapter was just one tiny piece of the puzzle.

    • james says:

      Hi, thanks for posting this; it’s very interesting to hear a bit of history behind it. There’s plenty more life left in the project too… watch this space 🙂

  3. Israel Gino says:

    Hi James.
    How are you?
    I have four IBM PCs, Two 5150 and two 5160 and one IBM PC 5170. I love them all. Would be so nice if I get plug one IDE Hard Disk into my IBM PC. Could you please sell to me one board? Can be the v1 no problem. Or do you know from who I can buy one of these?
    Thank you for your attention.

Leave a Reply