• Please review our updated Terms and Rules here

Iomega internal ATAPI drives on XT-IDE

CarlosTex

Experienced Member
Joined
Mar 26, 2013
Messages
272
Hey there fellas,

i really like to use Zip drives. I think its a decent method of moving data between an old PC and modern. ZIP media has more than enough available space to move loads of stuff around. It's specially useful when you use an XT-IDE card with an hard drive instead of a CF card.

I use a Parallel port Iomega 250 Zip drive on my 12MHz XT clone, and since my other retro machine also has a Zip drive its very convenient to help move data around. However an internal ATAPI would have a few advantages. First it would eliminate the obvious space an external drive occupies and also no need for an external power supply that also takes space. Third and most important the ATAPI drive is faster.

What we need is someone who can disassemble the Iomega ASPIATAP.SYS driver and make it so that it can talk to the XT-IDE card. I think this would be enough just to make it work via the DOS prompt when using GUEST.EXE with a V20 or PalmZIP for an 8088. Then maybe later if the XT-IDE BIOSes could support them too it would be great! Imagine booting from a ZIP drive on your vintage XT, or even using it as a poor man's hard drive. It would probably still be faster than the old MFM hard drives of the day. :D

My knowledge of assembly is non-existant however. So if anyone is interested it would be deeply appreciated. Just throwing the idea out there. :cool:
 
I also think this will be usefull,
but had tried with a IOMEGA internal IDE (not ATAPI) on XT-IDE with no luck!
I think this was 16-bit only!
maybe with Lo-tech 8-bit IDE Adapter ;)
 
It should be possible but the driver would need to be recoded to work with the different ports used (SHL 1 and 300h base usually).
 
It should be possible but the driver would need to be recoded to work with the different ports used (SHL 1 and 300h base usually).

Yes that's what i was hoping to. For someone well versed in assembly to disassemble the ASPIATAP.SYS driver from the Iomega package and make it work with the XT-IDE ports.

Then if later some XT-IDE BIOS support for the ZIP drives would be included that would be pretty awesome too.
 
It should be possible but the driver would need to be recoded to work with the different ports used (SHL 1 and 300h base usually).

I have spent most of today hacking away at this driver (downloaded from here) in an attempt to make it work with XT-CF devices. Note, this won't work with XT-IDE cards, only XT-CF cards. If it works at all, that is. Since I have no way to test it, I would actually be surprised if it does anything useful.

The driver uses 186+ instructions and so it needs at least a V20 or V30 processor. It also contains some 386+ instructions, even CPUID which is a 486/Pentium instruction. It's also written in a HLL (I'm guessing C) because there are some braindead stuff in there that only a compiler would do. Which probably explains why the driver is so large.

Anyway, I've attached a zip file with the original driver, my hack and the disassembly database file (for the free version of IDA) in case someone wants to tinker with it.

View attachment ASPIATAP.zip
 
Fantastic Krille! Can you see from the code if it is using 8-bit PIO?
 
Fantastic Krille! Can you see from the code if it is using 8-bit PIO?

I haven't really analyzed it that much but it might be able to do both 8-bit and 16-bit PIO since 'rep insb', 'rep insw', 'rep outsb' and 'rep outsw' can all be found in the driver.
 
How do you use the paralleport ZIP drive on your XT clone? The official DOS driver for IOmega is not working on XT, as far as I know.


AFAIK Iomega drivers need PUSHA, POPA instructions. So it won't work on an 8088/8086. However it will work on a V20/V30.
 
Note, this won't work with XT-IDE cards, only XT-CF cards.

Hmmm, so if it works with XT-CF why not XT-IDE? I mean if it works with a Lo-tech Compact Flash adapter i don't see a reason why it wouldn't work with a Lo-tech 8bit IDE adapter. I'm using a Lo-tech 8bit IDE adapter ATM and i'm using a CF card with it. The Lo-tech 8 bit IDE card uses the same ATA register mapping as the Lo-tech XT-CF cards.

Anyway thanks Krille for putting the effort into this! I will test this and get back. It would be really cool if in the future XT-IDE Universal BIOS can detect ATAPI devices.
 
Hmmm, so if it works with XT-CF why not XT-IDE? I mean if it works with a Lo-tech Compact Flash adapter i don't see a reason why it wouldn't work with a Lo-tech 8bit IDE adapter. I'm using a Lo-tech 8bit IDE adapter ATM and i'm using a CF card with it. The Lo-tech 8 bit IDE card uses the same ATA register mapping as the Lo-tech XT-CF cards.

There's quite a bit of confusion about this, in part because of the difficulties of coming up with good descriptive names for new boards but also because a lot of people use the XT-IDE name for any and all cards that can provide harddrive-like storage to an XT-class computer.

The definition I'm using is from the point of view of XTIDE Universal BIOS. So with 'XT-IDE' I mean the "original" cards (both revisions 1 and 2) created by Hargle, lynchaj et al on this forum and also the SMT versions from Dangerous Prototypes. The Lo-tech boards are all of the 'XT-CF' class regardless if they actually require CF-media or not.

Anyway thanks Krille for putting the effort into this! I will test this and get back. It would be really cool if in the future XT-IDE Universal BIOS can detect ATAPI devices.

Support for ATAPI devices is on the wishlist but for it to be useful we would need to implement not only ATAPI but also El Torito and/or ARMD. That's a lot of coding. To be honest, it's probably not going to happen.
 
Right now, the best approach is to get an 8-bit SCSI adapter and the SCSI version of your favorite Iomega disk mangler. I've used a Trantor T130B and Zip and Jaz drives on a (v30 equipped) PC XT clone with success. Zip drives in SCSI should still be fairly common, as Apple used quite a few of them on the Performas.
 
So with 'XT-IDE' I mean the "original" cards (both revisions 1 and 2) created by Hargle, lynchaj et al on this forum and also the SMT versions from Dangerous Prototypes. The Lo-tech boards are all of the 'XT-CF' class regardless if they actually require CF-media or not.

Awesome thanks! Yes there's generally a lot of confusion with the naming of the various boards available. I have no experience whatsoever outside of the Lo-tech boards, and to be honest i don't think i'll ever need to explore anything outside Lo-tech designs. Personally, i think the CPLD designs are the way of the future. I've been building and selling some Lo-tech designs and some through hole 74 series logic is now at end of life.

Tomorrow i'll have an internal 250 ATAPI Iomega Zip in my hands to test.


Right now, the best approach is to get an 8-bit SCSI adapter and the SCSI version of your favorite Iomega disk mangler. I've used a Trantor T130B and Zip and Jaz drives on a (v30 equipped) PC XT clone with success. Zip drives in SCSI should still be fairly common, as Apple used quite a few of them on the Performas.

I thought about SCSI, but all my other drives are 250MB capable so i would like to keep using 250MB disks. There's no such thing as an internal 250MB SCSI drive.
 
Awesome thanks! Yes there's generally a lot of confusion with the naming of the various boards available. I have no experience whatsoever outside of the Lo-tech boards, and to be honest i don't think i'll ever need to explore anything outside Lo-tech designs. Personally, i think the CPLD designs are the way of the future. I've been building and selling some Lo-tech designs and some through hole 74 series logic is now at end of life.

It's probably accurate to say "5 volt logic is at the end of life". Some 3 volt (including 3.3V and lower) designs claim "5V tolerance", but that's not quite the same as native 5 volt logic. I have no idea how long Atmel intends to keep manufacturing 5V CPLDs, but it's probably accurate to say that the family is sunsetting.

If you can find one of the Winstation gizmos that convert the ZIP 250 ATAPI to SCSI, that might fit the bill for the Iomega 250 internal SCSI deficiency.
 
It's probably accurate to say "5 volt logic is at the end of life". Some 3 volt (including 3.3V and lower) designs claim "5V tolerance", but that's not quite the same as native 5 volt logic. I have no idea how long Atmel intends to keep manufacturing 5V CPLDs, but it's probably accurate to say that the family is sunsetting.

CPLD brings the component count to a level that having a voltage regulator to bring 5 volts down from the ISA bus to 3.3V is not going to make much difference as far as price. A small nuisance IMO.

If you can find one of the Winstation gizmos that convert the ZIP 250 ATAPI to SCSI, that might fit the bill for the Iomega 250 internal SCSI deficiency.

Never heard of them. I know of those Acard 2270U SCSI Bridge things, but these cost way too much on eBay. If Krille's driver works then that will be the way to go. Iomega 250 ATAPI's are plentiful and cheap.

Not that this is extraordinary, its just another option to transfer data between an XT and a modern computer, much better than floppies IMO. This is also not something i really need, since i use XT-CF and can do networking, but i'm always looking into ways of pimping my XT clone.
 
41BMbCoE-nL.jpg


The Winstation thing. The ATAPI driver looks like nothing more than a version of ATASPI. In fact, someone else's ATASPI driver may well be more suited to adaptation than the Iomega thing. You'll still need the ASPI client drivers to make things work.
 
I tried an ATAPI 250 Iomega today with my Lo-tech 8 bit IDE adapter rev 2. Results:

WP_20160604_005.jpg

WP_20160604_006.jpg

WP_20160604_007.jpg

Bravo Krille! Thank you very much for putting the time and effort into this!
 
That is awesome! V20 CPU?

Yes, like Krille says the driver uses 186 instructions so it won't work on an 8088. This is pretty awesome i agree!

I haven't tried with the Lo-tech Compact Flash adapter rev3 yet, but i'm guessing it works too.

Krille left the disassembled binary in the packed file so if anyone wants to take a look at it to make it work with 8088/8086...

I can also confirm that it is faster than the parallel port version, although even with the 8 bit transfers this was kind of expected.
 
Back
Top