• Please review our updated Terms and Rules here

8 bit IDE (XTA) Replacement Project

Since it's relevant to both projects (solid-state emulation of IDE-XT drives and making a new interface for existing IDE-XT drives), I'll say here that one thing I didn't mention in my video is that the cross-compatibility between brands in not universal. The Western Digital interface card will work with both WD and Seagate drives, but I couldn't get the Seagate interface card to work with my WD drive, even after experimenting with the jumper settings on it.

Also many years ago I was unable to get a MiniScribe IDE-XT drive to work with the built-in Western Digital interface in the CompuAdd 810, although I think that's just because I didn't low-level format it, and back then I didn't know that you could do so on any kind of IDE drives! FDISK did recognize the drive, but every attempt to format it using the normal DOS FORMAT command failed.
 
This is a good project, I have several XT class machines from Olivetti where a flash based XTA drive replacement would be nice. So I hope that the device will be small enough to fit in the space of a 3,5 or even 2.5 inch drive (Conner CP-2022XT in Olivetti Quaderno). My devices always have 20 MB drives (CHS 612 / 4 / 17) what is very limited capacity, Maybe it would be possible to switch different drive images.
 
The Western Digital interface card will work with both WD and Seagate drives, but I couldn't get the Seagate interface card to work with my WD drive, even after experimenting with the jumper settings on it.

That is a great datapoint. I have not tried my WD drive on the ST05X card because I guessed it would not work. I thought from your video that you probably had not tried it. I could not get the ST351 A/X drive to work with the ST05X with the 20/30 MB jumper settings either. On one setting the drive was making horrible repeated seek sounds.

The issue might be something as simple as drive parameters. I think Seagate probably gathered up all possible compatibility needs in the ST351 A/X. It does have a confusing array of jumper settings - with two versions of the drive just to complicate things. There is quite a bit of info about it in Tandy faxback documents.
 
This is a good project, I have several XT class machines from Olivetti where a flash based XTA drive replacement would be nice. So I hope that the device will be small enough to fit in the space of a 3,5 or even 2.5 inch drive (Conner CP-2022XT in Olivetti Quaderno). My devices always have 20 MB drives (CHS 612 / 4 / 17) what is very limited capacity, Maybe it would be possible to switch different drive images.

I was not really aware that there were 2.5" XTA drives. I think I might be able to squeeze 2.5" and 3.5" connectors onto a 2.5" x 3.5" board. Will have to see what that means for mounting. For the 3.5" version, I had planned to attach the circuit board to a common sheet metal 2.5" to 3.5" adapter. Maybe that still works, and 2.5" is mounted with velcro or something.

It looks like Connor only had 20MB 2.5" XTA drives but they did have 20 and 40MB 3.5" XTA drives. I think there is a decent chance the Quaderno would support 40MB.

If someone is able, I would very much like to know what each of these Connor drives report from their size configuration register. Even with a non-working drive, you will likely be able to read the register using DOS debug.
Code:
C:\> debug
-i 322
FF            <-- this value

I have looked a little into the Olivetti's. The PC1 looks interesting - seems a board could be screwed to that little rail in the drive bay area. I probably need to get one for reference to support that machine properly. The combination of their apparent value and shipping to Australia is a bit daunting. But Tandy 1K's shipped from the US are occasionally palatable to me, so we'll see.

Regarding larger drive sizes, I know that 40MB runs out very quickly. I have been thinking a bit about large drive support. It would be possible to patch the BIOS to support larger drive sizes. That would be a lot of BIOS'es to patch and burning/replacing them is getting to be a very advanced option.

I think it could maybe also be done with some kind of modification to the DOS boot sector to patch the drive parameters before anything else happened during boot. It would not be trivial, but I think what would work well is some tool that adds an extended DOS partition and patches the boot sector after standard setup of the initial 40MB partition. Definitely something to experiment with later.
 
On needing more drive space, I think maybe what would work better would be a second SD card on the drive replacement and a device driver that gave access to it.
 
If that seagate drive is making repeated seeking sounds it may have the test jumper enabled.
 
Small data point: If I use the WDXT BIOS with the Xebec (XT MFM) emulation in PCem, it all seems to work fine except for the drive parameters being wrong. You can fudge your way around this in PCem by creating a drive image with lots of cylinders, heads and tracks.

The ST05X BIOS however does not work. The BIOS does detect the drive OK but fdisk reports "Error reading fixed disk.". I will have to get into the PCem source code and investigate. There is apparently some specific behavior that the ST05X BIOS is looking for.
 
I started looking into modifying PCem to work with the ST05X BIOS and could not find any Windows compile instructions. Not even the compiler used, which is no fun for me. In the process I came across 86Box which was branched from PCem some time ago. Within that I found an XTA emulation of the WDXT-150. That was taken from VARCem which is itself a branch from 86Box.

VARCem doesn't seem to be all that well known. For the purposes here, it has an XTA emulation for the the WDTX-150, and an Amstrad PC running a Seagate BIOS. I compared that Amstrad BIOS to the ST05X bios and it looks to be very similar. I have not run VARCem yet but it looks like we have a complete-enough XTA reference. VARCem comes with a ready to use Visual Studio solution too which makes me a fan. Thanks to waltje and other contributors. https://github.com/VARCem/VARCem

I then decided to try harder to find a PS/2 emulator which implements IBM's 8 bit IDE drives. I came across IBMulator (https://github.com/barotto/IBMulator). This is a PS/1 emulator. It has an emulation of the drives of interest. Somehow related to this I found the PS/1 technical reference manual which documents the drives. See this page: https://ps1stuff.wordpress.com/downl...for-type-2011/ . I was not expecting the PS/1 tech ref to document the drives since they are not documented in the earlier PS/2 Model 25/30 technical reference manuals.

The IBM 8 bit IDE drives are definitely different to XTA. The general principles of operation are quite similar but the register locations, command IDs, command data, status registers, etc. are all different. I think it will be easiest to make separate solid state implementations with separate firmwares.
 
I have looked a little into the Olivetti's. The PC1 looks interesting - seems a board could be screwed to that little rail in the drive bay area.
The Prodest PC-1 is really neat, I have also one. But harddisk was always in a "sidecar" box which was connected through ISA to it's righ side. So it has no internal XTA interface. See mainboard picture at https://www.old-computers.com/museum...t=1&c=182&st=1

Olivetti candidates are:
- PC1 with "sidecar" extension
- Quaderno (2,5 inch drive)
- PCS86
- ETV 2700
- M111
- M15 Plus
- M200
Except of Quaderno they have 3,5 inch HDD mount, except of M200, PCS86 and maybe PC1 they are limited to 20MB drive (612/4/17).

Getting bigger drives working is maybe possible with some of the diskmanagers, like Ontrack. They install a proprietary bootsector which extends the capability of the BIOS to autodetect bigger harddisks, but no Idea if that also works with XTA drives. But usually one finds only "branded" versions of the Ontrack manager in Internet, I was not able to find a universal version yet. These are looking if they find a harddisk of a special brand (like maxtor, seagate, ... edition of Ontrack) and they function only if they find a harddisk of their brand. So if you can, you may support device name branding, matching to the Ontrack diskmanager branding.
 
The Prodest PC-1 is really neat, I have also one. But harddisk was always in a "sidecar" box which was connected through ISA to it's righ side. So it has no internal XTA interface.

That is a bummer. Seems there is a HD version though, correct?

Getting bigger drives working is maybe possible with some of the diskmanagers, like Ontrack. They install a proprietary bootsector which extends the capability of the BIOS to autodetect bigger harddisks, but no Idea if that also works with XTA drives. But usually one finds only "branded" versions of the Ontrack manager in Internet, I was not able to find a universal version yet. These are looking if they find a harddisk of a special brand (like maxtor, seagate, ... edition of Ontrack) and they function only if they find a harddisk of their brand. So if you can, you may support device name branding, matching to the Ontrack diskmanager branding.

Thanks for that info. It is essentially what I was originally thinking could be done. Looks like there is a generic version available: https://www.philscomputerlab.com/ontrack-disk-manager.html. It seems possible, although quite challenging to modify Ontrack to work for this case. I they were to release source code, that would be easier. It would also be possible to create a new solution. That would be a lot of work - I think you need the boot sector mod, a partitioning solution, as well as a device driver to be able to access the drive when booting from a floppy. It is an option that could be added later with firmware and software updates.

I think I will also add the second SD slot so there is also an option to support that later with a firmware update and driver.
 
That is a bummer. Seems there is a HD version though, correct?

Hard to get... Super rare. See here a PC1 with the small expansion box. https://www.seasip.info/VintagePC/prodestpc1.html Only the big one has space for harddisk.

The good news is that it's easy to make an isa slot expander at the right side connector of the PC1 and using an XT-IDE instead of that expansiom box. But it*s not possible to plug in the XT-IDE directly as the slot is too deep, you would need an XT-IDE with extra long contacts.
 
Last edited:
I am wondering if it is possible to move the XTA interface solution posts into another thread. There does seem to be two conversations woven together.

I am not sure how much of a demand for an interface solution.

I don't see the need for an XTA interface card for me. If I need harddisk solution for XT I use XT-IDE. But replacing broken XTA drives is a real problem.
 
I believe there are at least two "versions" of 8-bit IDE-like drives. There are the MFM derived devices and the later devices that utilise ATA 8-bit transfer mode, and possibly a third type IIRC.
 
I believe there are at least two "versions" of 8-bit IDE-like drives. There are the MFM derived devices and the later devices that utilise ATA 8-bit transfer mode, and possibly a third type IIRC.

The second type is defined in the ATA spec and was to be configurable using a command. However, since it was an optional feature, few disk manufacturers implemented it. To the best of my knowledge, the only place it survives is in CF cards, where it's mandated by the CF standard.
 
I believe there are at least two "versions" of 8-bit IDE-like drives. There are the MFM derived devices and the later devices that utilise ATA 8-bit transfer mode, and possibly a third type IIRC.

The devices derived from XT MFM would be what folks are calling XTA. XT-IDE seems more appropriate to me but the name is very much in use already so I'm happy to go with XTA. The IDE used in IBM PS/2 Model 25/30's and early PS/1's would count as a third one. It needs a name! I did do a bit of analysis and I think it probably is quite practical to implement both XTA and the IBM implementation within the same hardware. Maybe use the 12v line on the IBM edge connector as a method to detect the installed system.
 
The IDE used in IBM PS/2 Model 25/30's and early PS/1's would count as a third one. It needs a name!
It's an 8-bit variant of the Direct Bus Attachment (DBA) ESDI interface used by most of the original PS/2 models. These use a card edge connector which supplies power as well as data.
 
It's an 8-bit variant of the Direct Bus Attachment (DBA) ESDI interface used by most of the original PS/2 models. These use a card edge connector which supplies power as well as data.

I did some research and I have not yet found an IBM document that describes the drives with the direct-attached microchannel interface as "DBA/Direct Bus Attachment". However I did find an IBM doc that hints that they probably did (http://bitsavers.org/pdf/ibm/pc/ps2/...tems_Dec92.pdf). That doc also suggests IBM liked to refer to ATA as "AT-DBA". So I am happy to call the the 8 bit IBM proprietary interface "8 bit DBA" or something like that.

I have not yet confirmed whether the protocols between the microchannel DBA and 8 bit DBA drives are similar. I can't find any documentation on the microchannel variant other than the connector pinout. It is quite possible that they are very similar. The 8 bit variant is certainly set up for a 16 bit version - all the ports are at even addresses so swapping the 8 bit data register for a 16 bit one would be trivial. The 8 bit register layout is very different to ATA. Actually, I just noticed that the Model 70 tech ref manual lists the port range for the fixed disk controller at being only 8 bytes wide - too small for ATA and just the right size for a 16 bit variant of the 8 bit DBA.I am going to see if I can disassemble the Model 70 BIOS now to see what it is doing.

I think the use of ESDI to describe these drives is not appropriate - or is confusing at least. It would be akin to describing ATA drives as "ATA MFM" because ATA mirrors the IBM AT MFM controller card. None of the direct-bus-attached interfaces (XTA, ATA, microchannel DBA, 8 bit DBA) look anything at all like MFM or ESDI drive interfaces. (MFM and ESDI do share obvious similarities.) I do think it is possible/likely that the DBA drives do integrate the registers/protocols of the IBM PS/2 microchannel ESDI controller card(s?). But those protocols are something else entirely from the interface on an ESDI hard drive. It is especially confusing when folks refer to the drives just as "ESDI", which makes about as much sense as referring to to ATA drives as "MFM" or "ST-506".
 
Last edited:
I have not yet confirmed whether the protocols between the microchannel DBA and 8 bit DBA drives are similar. ... I am going to see if I can disassemble the Model 70 BIOS now to see what it is doing.

I have found the fixed disk code in the Model 70 BIOS and it is consistent with description of the IBM PS/2 ESDI adapter documented here: http://www.mcamafia.de/pdf/ibm_esdi_trm.pdf . That is, the MCA DBA drives do appear to implement the behaviour of the IBM PS/2 ESDI adapter.

Since I wrote my previous posts above, I discovered that ESDI (the one with the two cables and a specification) was a bit smarter than I realized. It does have a method to send/receive commands to the drive. For a moment I thought perhaps the IBM PS/2 ESDI adapter just passes commands through to the ESDI drive. In which case, it would in fact be reasonable to say that the MCA DBA drives do implement ESDI drive protocols. However, upon further investigation, I don't see any similarities at all between ESDI drive commands and the commands/registers used by the PS/2 ESDI adapter/MCA DBA drives. So I am still of the opinion that referring to the MCA DBA drives as ESDI is thoroughly confusing.

As to whether the IBM 8 bit DBA drives are an 8 bit variant of the MCA DBA drives - well no, not really. There some vague similarities: both have a bidirectional data register (8 bit for the 8 bit drives and 16 bit for the MCA drives), and a few 8 bit control/status registers. One of the write control registers even has the same 3 bits defined in the same way. But the rest of the control/status registers are quite different. The command set is different also.

It looks like a replacement for the MCA DBA drives would also be useful as the only other option seems to be a MCA SCSI controller. And I guess some systems are a bit limited on MCA slots. I can't say I am all that interested in designing an MCA device myself - it all seems extremely complicated.
 
Sure, in many of the traditional (2 cable) PC ESDI controllers, the behavior mirrors ATA, right down to the IDENTIFY command--something not supported in ST506-type controllers. It's not hard to see where the notion of IDE came from--certainly not from the ST506-interface drives.
 
Back
Top