• Please review our updated Terms and Rules here

Compact Flash with true 8-bit XT IDE Interface

Great Hierophant

Veteran Member
Joined
Mar 22, 2006
Messages
1,928
Location
Massachusetts, USA
You can find the original 8-bit IDE interface in a Tandy 1000 TL/2, TL/3, RL, RLX in one form and in the IBM PS/2 Model 25 & 30 (including the 286s for some bizarre reason) in another form. It uses I/O 320-327. From another site, http://www.electronicspoint.com/compact-flash-8-bit-mode-t66828.html, I read this :

The CF spec requires that all compliant cards support 8-bit transfers in True-IDE mode. In the ATA-2 spec, you simply use the Set Features command (0xEF), and use feature 0x01, which is "Enable 8-bit data transfer". ATA-3 and up seems to have removed it entirely.

So it seems like CF cards should work in these machines, right? Of course, this assumes that the CF card retains that setting when the power is off or it is removed from an IDE adapter. Additionally, XT IDE drives seemingly only came in 20 and 40MB varieties, while CF cards come in 16, 32 & 64MB versions.
 
Last edited:
The old XTA "8 bit IDE" interface is very different from that of the ATA "16 bit IDE" one. Different ports, bits in the ports, etc.--XTA pretty much conforms to the conventions of the original 5160 MFM controller, while the CF card is strictly ATA--conforming in general to the 5170 MFM controller. Yes, there's an 8-bit transfer mode (and James uses it on his XTCFV2 card), but the registers and port conventions stay ATA.
 
You can find the original 8-bit IDE interface in a Tandy 1000 TL/2, TL/3, RL, RLX in one form and in the IBM PS/2 Model 25 & 30 (including the 286s for some bizarre reason) in another form. It uses I/O 320-327.

The IBM PS/1 model 2011 also uses the same HDD interface. I know it is a 8 bit interface but I couldn't find any info. Are you sure it is 8-bit IDE? I tried to decode some data with the Openbench Logic Sniffer some time ago with no results...
 
...this assumes that the CF card retains that setting when the power is off or it is removed from an IDE adapter...

Unfortunately in true-IDE mode the cards always power-up in 16-bit IO mode (so a set-features command is required before gathering device ID).
 
The IBM PS/1 model 2011 also uses the same HDD interface. I know it is a 8 bit interface but I couldn't find any info. Are you sure it is 8-bit IDE? I tried to decode some data with the Openbench Logic Sniffer some time ago with no results...

Interestingly, I have a scan of the IBM PS/2 Model 25's Technical Reference and the information about the hard drive interface is extremely sketchy. Scott Mueller identifies these systems as possessing the XT Attachment Interface, a.k.a. XTA, and the pinouts given do match up with what an XTA interface could or should provide. The 44-pin interface provides power as well.

Chuck(G) says that the interface is essentially the IBM Fixed Disk Adapter, although it seems to use 8 ports, while the IBM card only uses 4. Are there more registers in XTA?

In order to use a CF card, which has ATA registers with an interface that provides XTA registers, you need some kind of translating hardware in between the interface and drive. Or perhaps a BIOS extension would work, using 320-32F as an alias for 1F0-1F7 and sending the appropriate commands on bootup to put the CF card into 8-bit mode. This would require overriding the built-in BIOS functions, if that is possible.
 
The main issue is that ATA uses 3 address lines, vs 2 for XTA. So the problem is how to control that 3rd line. And as stated a BIOS would be needed - so really, a PCB to provide the electrical connections for the CF card and somewhere to store the BIOS.

Come to think of it, something does come to mind.... :D
 
The main issue is that ATA uses 3 address lines, vs 2 for XTA. So the problem is how to control that 3rd line. And as stated a BIOS would be needed - so really, a PCB to provide the electrical connections for the CF card and somewhere to store the BIOS.

Come to think of it, something does come to mind.... :D

IBM's implementation uses A2 in addition to A0 and A1. In the pure implementation, used in the Tandys, A2 is not used. So you would need to wire A2 to pin 36 on the header. There are harder hacks. However, can a BIOS extension override the pre-existing Int 13 functions? As far a BIOS storage, an Ethernet card comes to mind.
 
If the native BIOS adheres to the IBM PCs method of instantiating extension BIOS support, any extension can override the native INT 13n routines. After all, INT 13 is just a vector in low RAM.

So why not use James' XT-CFV2 card?
 
To avoid using a slot, but since you are going to need a BIOS extension anyway, you must take up a slot since none of these machines have one spare socket, nevermind two (all these systems are 16-bit and need two ROMs).
 
An easier and cheaper solution:

http://cgi.ebay.com/170899233210

Yes, a CF card would use less power and take up less space, but as long as ST-351A/X drives remain readily and inexpensively available, they are the most practical solution for anyone needing an IDE-XT-compatible drive, at least for a desktop machine -- there were some laptops which used 2.5-inch IDE-XT drives, in which case finding a replacement is far more difficult.
 
I can see someone buying these and turning around to sell them for five times the price paid X( However, when the market dries out, there can be an alternative solution that is cheaper than XT-IDE. I see no reason why the existing Universal XT IDE BIOS cannot be used if its primary IDE ports changed and the command to put the CF card into 8-bit mode is added.

An easier and cheaper solution:

http://cgi.ebay.com/170899233210

Yes, a CF card would use less power and take up less space, but as long as ST-351A/X drives remain readily and inexpensively available, they are the most practical solution for anyone needing an IDE-XT-compatible drive, at least for a desktop machine -- there were some laptops which used 2.5-inch IDE-XT drives, in which case finding a replacement is far more difficult.
 
Last edited:
Then you've got the IBM Model 25, which doesn't even have a molex connector

My PS/2 30-286 used a Seagate ST-125L, which according to any hard drive database I've looked in, doesn't exist -- I can find the regular ST-506 MFM version (the ST-125), but not the ST-125L. It uses a single card-edge connector for both the power and data. These must have been proprietary drives that Seagate made specifically for IBM.
 
...there can be an alternative solution that is cheaper than XT-IDE. I see no reason why the existing Universal XT IDE BIOS cannot be used if its primary IDE ports changed and the command to put the CF card into 8-bit mode is added.

Can you expand on this; I'm not clear what it is you're suggesting.
 
Can you expand on this; I'm not clear what it is you're suggesting.

The Universal XT IDE BIOS, as I understand it, provides an AT-style Int 13 for hard drives. The AT IDE ports are at 1F0-1F7 for the primary, 170-177 for secondary, 1E8-1EF for tertiary and 168-16F for quaternary. (There is also the control for slave drives at 3F6/376/3EE/36E, but who needs two drives anyway when one can be up to 8GB!) The first change needed in the BIOS would be to set 320-327 as primary ports. The second change would be to add commands to put the CF-card into 8-bit transfer mode.
 
Does the Universal XT IDE BIOS support 8bit transfers using one half of a 16 bit IDE port? If so, there would be a great solution for PS/1 model 2011 and PS/2 model 25 machines that have 8 bit XTA interface and few (or none) ISA slots
 
The first change needed in the BIOS would be to set 320-327 as primary ports. The second change would be to add commands to put the CF-card into 8-bit transfer mode.

The port is configurable and the 8-bit transfer feature-set will hopefully be included, for my XT-CF range of adapters soon.

Does the Universal XT IDE BIOS support 8bit transfers using one half of a 16 bit IDE port? If so, there would be a great solution for PS/1 model 2011 and PS/2 model 25 machines that have 8 bit XTA interface and few (or none) ISA slots

The issue is that DA2 - which is absolutely required to make an ATA device work - is missing; you'd need to be prepared to jumper onto A2 somewhere on the system board and make up a suitable cable with the link to the XTA interface for that line replaced. Also I can't see in the CompactFlash specification what should be done with the upper 8-bits of the data bus when they're not used (i.e. should they be left floating or be grounded; they'd be grounded if connected to an XTA interface).

BUT, what this does highlight is the possibility of using an ordinary 16-bit IDE card in XT class hardware, with it's BIOS replaced by some future XTIDE derived BIOS and with the note that it will only work with ATA-2 or CompactFlash media. It looks to me that this will work. The downside is that somewhere to put the BIOS will be needed (and some way to program it).

On the other hand, my board does all this already and makes the CF card easy to access without opening the machine.
 
The port is configurable and the 8-bit transfer feature-set will hopefully be included, for my XT-CF range of adapters soon.

The issue is that DA2 - which is absolutely required to make an ATA device work - is missing; you'd need to be prepared to jumper onto A2 somewhere on the system board and make up a suitable cable with the link to the XTA interface for that line replaced. Also I can't see in the CompactFlash specification what should be done with the upper 8-bits of the data bus when they're not used (i.e. should they be left floating or be grounded; they'd be grounded if connected to an XTA interface).

The issue of Address line 2 is not as weighty as it may seem. According to the IBM Model 25 Tech Reference, A2 is provided on the 44-pin connector. That may be an error, which if so can be easily verified by looking at the planar. For the Tandy machines, a line can be soldered from an ISA slot to the appropriate pin to give the full eight address lines.

I would say that the Universal XT-IDE BIOS would be truly universal if it supports transfers at 320-324 derived from the IBM Fixed Disk Drive Controller.
 
Oh, there is also the issue of 3F7, the Digital Input Register, which I believe the existing interfaces on the Tandy and PS/1 & PS/2s do not provide.

Found in the XTIDE Universal BIOS Controller manual:
Base (cmd block) address [default=300h for XT builds, 1F0h (Primary IDE) and 170h (Secondary IDE) for AT builds]
Command block (base port) address where the IDE Controller is located. JR-IDE/ISA does not use this setting.

So if the JR-IDE doesn't use it, is it really necessary?
 
Back
Top