Sunday, April 27, 2014

The Original 8-bit XT IDE Interface

Back in the late 1980s, Western Digital had a good idea.  Its idea was to simplify hard drive interfaces and make them much more reliable by incorporating all the drive interface electronics on the hard drive.  Instead of having two ribbon cables connect a mostly dumb hard drive to a complex controller board, as was the case for the IBM XT and AT drive controller boards, all that would be required was one cable.  This cable would bring only the pins of the AT/16-bit IDE bus (essentially the data bus lines and a few address lines and some drive select signals) that the drive needed and could be implemented with simple glue logic.

This was a great idea and eventually became predominant in the industry for reasonable cost hard drives.  Reliability and data transmission speeds markedly increased.  The older ST-506 interface was already long in the tooth, and its successor, the ESDI, still used separate cables for data and control and still had too many functions on an interface card to implement on a PC motherboard.  SCSI was, and still is, a high cost, high end solution with its own headaches.

However, consumer based PCs of the late 1980s were increasingly feeling the pressure to add hard drives, or least the option to install one, into the PC.  When Western Digital and others were finalizing the AT Attachment (ATA) Standard, they also introduced a less functional version of the standard called the XT Attachment (XTA) Standard.  This has also been called 8-bit IDE and XT-IDE, but care must be had to distinguish it from the modern XT-IDE devices.  Hereafter, I will refer to it as XTA.  The chief differences between the two standards are as follows :

AT Attachment XT Attachment
Data Path 16-bit Wide 8-bit Wide
Number of Drives Supported 2 1
I/O Addresses Used 1F0-1F7, 170-177 320-323, 324-327
Hard Drive Capacities 20MB-504MB 20MB-40MB
ROM Addresses Integrated into BIOS C8000-C9FFF
Interrupt IRQ14, IRQ15 IRQ5, IRQ2
DMA None 3

The XTA interface was intended to replace the IBM PC/XT Fixed Disk Drive Adapter, which worked on I/O 320-323, IRQ5 and DMA3.  The ATA interface was intended to replace the IBM PC AT Fixed Disk and Diskette Drive Adapter, which used I/O 1F0-1F7 and IRQ14.

Several very interesting systems from the late 1980s and early 1990s had the XT-Attachment interface.  This includes the 286 based Tandy 1000 TL/2, TL/3, RLX, RLX-B, IBM PS/2 Model 25-286 and Model 30-286, and the IBM PS/1 Model 2011.  Also, the 8086 based Tandy 1000RL & RL-HD and the IBM PS.2 Model 25 and Model 30 also had this interface.

The IBM version of the XTA interface derivatives somewhat from the standard.  It uses a 44-pin cable and supplies power to the drive on some of the pins instead of a separate Molex connector.  In its 286 machines, which have or can be equipped with 16-bit ISA slots, IRQ14 will be used instead of IRQ5.  Their hard drive BIOSes may be integrated into the main BIOS.  

With the Tandy XTA interface, you are typically restricted to only a few hard drives, including the Seagate ST-325-X (20MB) and ST-351-A/X & ST-352-A/X (40MB), the Miniscribe M8225XT (20MB) and M8450XT (40MB) and the Western Digital WD95028-X-11R (20MB), WD95038-X-11R (30MB) and WD93044-X-11R (40MB).  The best drives from Seagate offer a 28ms seek time, the other drives can have a 40ms seek.  Conner Peripherals, Epson and Areal and Prairietek also made XTA drives.

The best of the bunch must be the Seagate ST351A/X.  As its name implies, the drive can work with an ATA or XTA interface.  Thus it can be connected to a modern IDE port without difficulty, although its storage capacity is still tiny compared to what is available today.  On the standard IBM drives table, it would be type 18.  Tandy sold the WD93028, WD93044 and ST-325-X.  The WD drives have a low-level format utility and require head parking when being moved.  The ST drives do not and can auto-park their heads.

One word of caution cannot be emphasized enough when dealing with these drives.  Do NOT use a low-level formatting program unless that program is specific to your manufacturer and drive.  DOS formats at a high level, and you should use that.  While the Seagate drives use 17 sectors per cylinder, the WD and MS drives use 27 or 28.  

As you can see above, the XTA interfaces has many drawbacks and disadvantages to the ATA interface.  For modern devices, the most important limitation is the I/O ports used.  Modern Parallel ATA hard drives, Disk On Modules and Compact Flash cards only support the ATA interface and the eight register addresses it uses.  While CF and DOMs support an 8-bit transfer mode, they must be programmed into this mode on bootup.  

Three difficulties present themselves in trying to get modern hard drive devices to work with the XTA interface.  First, the data, control and status information would need to be translated from the ATA interface of the device to the XTA interface of the system.  Second, the device would need to support and be put into 8-bit transfer mode on startup.  Third, the BIOS would need to be instructed on the correct geometry for the modern device.  While #1 and 3 can be fixed with a ROM BIOS extension, #2 is not an easy fix because the XTA connector presents I/O at 320, not 1F0.  In theory, someone could design an adapter that could do all three.  

No comments: