• Please review our updated Terms and Rules here

8 bit IDE (XTA) Replacement Project

What is hard about fitting a 8-bit XT-IDE card? XT class desktop systems have plenty of isa expansion slots.

XTA would be cool for my Zenith 180 PC series laptops though.
 
What is hard about fitting a 8-bit XT-IDE card? XT class desktop systems have plenty of isa expansion slots.

XTA would be cool for my Zenith 180 PC series laptops though.
My Tandy 1110HD only has this 8 bit interface. No expansion slots. If my drive fails, the PC no longer will have a usable HD. These pre ATA devices are getting quite old - replacements rarely work.
 
I have a Commodore PC20-III with three ISA slots:
- VGA card, needed so I can use my KVM switch
- PC-in-Atom card
- network card
- XTIDE card
Wow, one too many. You see my problem? So I would love to see a XTA-HDD replacement.
 
@acadiel

imho xta does only support up to 40 MB.

After spending some time on the interface I only see one solution for connecting cf-cards on xta bus:

- interface has to handle xta bus commands and datas
- interface has to handle ide bus commands and datas
- interface has to interpret commands and datas from xta bus to ide bus and vice versa
- and all very time critical

Might be the reason that up to now no solution exist.
A simpler solution may be possible if you drop the requirement to be compatible with the xta protocol and xta BIOS. The xta bus has two address bits (A0 and A1) that allow to select 4 8-bit registers, while the ide bus has three address bits (A0,A1,A2, for 8 registers) plus the CS1 signal to select two "alternate registers".
With some shuffling of the pins you can connect an IDE drive to an XTA interface, however only four registers will visible, depending on how you fix the missing A2 and CS1 signal.

So I am thinking that it may be possible to the following:
- use one of the xta registers (say, A0=0, A1=0) to select wich ide registers expose throug the other three xta registers
- create a custom version of the xt-ide unversal bios to support a cf-card in 8 bit mode

In this way the interface has to implement only the register remapping logic, and don't need to interpret nor translate protocols. The XUB variant takes care of setting the register remapping before accessing an IDE register.

I don't know how crazy or realistic this solution is, I am only speculating out loud here. If it works, it may be useful for scenarios where you can add an option rom or reflash the onboard xta bios but you don't have a free slot for an xt-ide card.
 
There would be another solution, but in any case has the "xta2ide" interface does need to fully implement the xta protocol.

The xta2ide interface would probably be built with a raspberry or teensy development board, which do have a SD-Card on board.

This SD-card can be used to store all of the 512 bytes sectors as individual files, and the interface takes over the "xta FAT" mapping. So no ide protocol development needed.

But the SD-card is then not easily readable with other systems.
 
CRD has a HeadStart Explorer which was designed for a MiniScribe IDE-XT drive in a plastic caddy, and plenty of other oddities like a custom GUI in ROM and "expanded 16-color" CGA graphics. Maybe he can dump the ROM for you.

 

A while ago I analysed both of these BIOS hoping to find latent hard drive code but found none. I'm super happy to have the 1100hd image. Hopefully I will get a chance to look at it soon.

@CallinElvis - Do you need me to dump the 1000RLX/B BIOS for you? It only supports the 20MB/40MB XTA drives. I think the 1000TL/3 was the same, but I don't have one of those.

I would like to have this one available for analysis if it is not too much trouble.

imho xta does only support up to 40 MB.

I concur. I have analyzed a bunch of XTA BIOSes and none support higher than ~40MB. And some don't even support that.
 
Another capture of a HDD Seagate 351A/X drive with WDXT-150 controller card on an XT system.

The same int13 function 2 capture as above, but on the xta bus . DMA transfer is used, signals for this are not triggered in this capture.

Good stuff Callin. I am planning to use the oscilloscope when it comes time to capture the DMA signals. I don't know why but I find the ISA bus DMA specifications to be a little unclear. Especially when looking at different transfer modes. I'll just copy what already works :)
 
I analyzed the BIOS HD parameter tables for the Tandy 1100 HD and the PrairieTek/AGC laptop and got the following. It looks like the 2.5" 20MB XTA Connor drives reports drive type 0. On both BIOSes this uses 615 (267 hex) cylinders, 4 heads and 17 sectors per track. I just checked and this also matches the translation parameters reported online.


Tandy 1100HD
CylHSize (bytes)
267421,411,840
177826,112,000
132615,980,544
13225,326,848

PrairieTek XTA ROM, dumped from an old 'AGC' (Taiwanese branded) laptop
CylHSpTSize (bytes) 17 SpTSize (bytes)
26741121,411,84021,411,840
2674221,411,8402,519,040
2674321,411,8403,778,560
2672210,705,9201,259,520
26747421,411,840146,104,320
 
I have a ST351A/X with a WDXT-150 controller, due to some failures can only operate at 20 MB. Parameters are 0 - 613 cyl. 1 - 17 sect. 0 - 3 heads, in total 41752 sectors.
I don't know why cylinders and heads count from 0 to max, and sectors from 1 to max.

I have written a int13 function program to check the main functions individually. Program is enclosed. Helpful when analyzing the xta signals.

To low level format the xta HDD I find in the WDXT-150 BIOS ( start with debug g=c800:0b94 ) and also in the Schneider Euro PC II Bios ( start with debug g=f000:a000 ) the Super BIOS WD low level formatter.
But could not format the ST351A/X HDD with this Super BIOS formatter, instead the fdisk does work.
 

Attachments

  • INT13CHK.zip
    8.9 KB · Views: 5
I have enclosed the fully capture of the reading of 1 sector ( MBR ) , including DMA transfer. Things are getting clearer.
 

Attachments

  • xtambrcapture.zip
    1 MB · Views: 3
I don't know why cylinders and heads count from 0 to max, and sectors from 1 to max.
It's a matter of addressing. The same convention is reflected in floppy disks (but not always). Usually, when a floppy or hard drive is formatted (low-level), the track sectors are numbered from 1, although any number may be used (e.g. 1128). The cylinder reflects an absolute position encoded in the drive hardware, independent of the formatting, as does the head.
 
Descriptions of the XTA bus functions are rare, so try to understand the commands used by investigating the capture sequence.

This is what I found how int 13 read sector function does work.

Are there any information available showing the XTA commands in detail ?
 

Attachments

  • xta read sector.pdf
    84.1 KB · Views: 7
Descriptions of the XTA bus functions are rare, so try to understand the commands used by investigating the capture sequence.

This is what I found how int 13 read sector function does work.

Are there any information available showing the XTA commands in detail ?

To the PC, XTA look basically the same as an XT MFM controller. I use the WD1002S-WX2 manual for reference.
 
Now the capture of int 13 read sector with DMA transfer in full length and commented.

A little step further.
 

Attachments

  • XTA_int_13_read_sector_capture.pdf
    488 KB · Views: 8
The boot sequence itself consist of a few of command sequences, which all have to be interpreted by the controller.

Enclosed 1 example of the execute controller diagnostic sequence. In total there are 19 different command sequences which have to be handled.
 

Attachments

  • execute controller diagnostic.pdf
    109.6 KB · Views: 5
Interesting project! I would love to see such a thing hooked up to my Schneider EuroPC as a replacement for the XTIDE...but what would I do with the free slot then :)
 
Back
Top