ISASTM Runs Vintage Cards Over USB

The ISA bus is a relic of the distant past, and no longer supported by the PC mainstream. Outside of retro fanatics and likely some long-term industrial users, it’s all but forgotten. That hasn’t stopped [Manawyrm] from hacking away, however, and he’s developed a nifty adapter for the modern era.

Still in its early stages of development, the ISASTM is a ISA-over-USB adapter that allows a modern computer to work with older expansion cards. Running on an STM32H743, and using the microcontroller’s native USB1 interface, the ISASTM card is able to be slotted into a backplane in order to address multiple cards with one adapter. [Manawyrm] demonstrates the hardware by running Monkey Island 1 in the PCem emulator, with sound provided by an AdLib ISA soundcard.

There are some throughput issues, which [Manawyrm] aims to solve by switching to USB2 and making some tweaks and improvements to the code. Regardless, it’s an impressive tool that we imagine could have some use in keeping some legacy hardware alive, too. Incidentally, it’s been a long while since we’ve seen a solid ISA hack around these parts. Video after the break.

[Thanks to tsys for the tip!]

 

22 thoughts on “ISASTM Runs Vintage Cards Over USB

  1. There are actually commercial USB to ISA adapters out there. My Agilent interferometer uses a 2 port one. Simila to these guys:

    http://arstech.com/install/ecom-prodshow/usb2isar.html

    $150 which is really not that bad since it has full software support for windows, linux and even macos. But youre still going to have to figure out drivers for the card themselves, I think thats what stopped us from using them at one of the places I worked.

      1. I dont have one, we had some at a place I worked at, I think they were trying to get them to work with Kuper motion control cards we used. Thats was like 8-9 years ago.

        Looks like you can download the software from them.

    1. “$150 which is really not that bad”

      Not that bad is always relative.

      For a shop with a business need to keep some piece of hardware working while upgrading to modern, currently available computers $150 is nothing.

      For someone who just might occasionally run into some old piece of ISA hardware in a thrift shop and want to play with it for fun well, it’s pretty easy to ask “should I spend $150 so that I can play with junk?” and talk oneself out of it. I know I’ve done so many times.

      I’ll be pretty excited if something like this becomes available for under $50.

      If nothing else I’d like to see if my old AWE64 really sounded as good as I remember it and maybe compare it to some more modern soundcards.

  2. Oi! So many level shifters and that CPU is so powerful it could run DOS via QEmu on Linux and skip the host completely! He would have been better off using some IRQ enabled IO expanders and a sub 50MHz MCU. The project is overpowered but still very cool.

    1. Nothing wrong with overpowered. Maybe if you are going into production and it pushes the cost up.

      Me, I would have used something with a network adapter rather than USB to have a ISA gateway.

    2. At some point you have to make a trade-off, better to do it early in the project and start with a more powerful MCU then being later stuck in a corner and micro-optimizing stuff. Plus, for the average hacker, it’s about the same price as a “sub 50MHz MCU: and I’ve lost count of the number of projects that could not proceed on the same platform because the flash space was too small or something similar.

  3. It’s really neat, I think. 😎
    If I had something to complain, I’d argue that this is more like a PC/XT bus (or PC bus).
    True ISA was 16-Bit with clock speed limited to ca. 8MHz and derived from the PC/AT bus (based on 80286 front side bus).
    However, “8-Bit ISA” might also be a valid/tolerable description, if timings and other technical aspects of full ISA apply. IMHO. :)

    1. No, the ISA bus was defined by IBM in the documentation for the original IBM PC, and was based on the signals produced by the 8088. 16 bit ISA was an extension of the standard (IIRC made by 3rd party manufacturers first with 8086 based clones, then part of the 80286 PC AT standard).

      1. Okay, then Wikipedia also needs an update likely. No one’s perfects, after all. 😅
        It claims:”Industry Standard Architecture (ISA) is the 16-bit internal bus of IBM PC/AT and similar computers based on the Intel 80286 and its immediate successors during the 1980s. The bus was (largely) backward compatible with the 8-bit bus of the 8088-based IBM PC, including the IBM PC/XT as well as IBM PC compatibles.”
        https://en.wikipedia.org/wiki/Industry_Standard_Architecture

        1. I’m working from memory here, which isn’t a good thing, but it seems like 16 bit ISA cards were supposed to assert a signal that they could accept 16 bit transfers in response to seeing some given address on the bus, otherwise the motherboard/CPU was supposed to only do 8 bit transfers.

          And checking http://www.key2control.com/isabus.pdf , if it’s right at all, suggests I might be remembering “/MEMCS16”. The wikipedia article suggests the determination was supposed to be made purely on the basis of A17-A23, but honestly I can’t see why all the address pins couldn’t be used.

          This makes sense because it’s more or less how IEEE-696 (the 16 bit version of S-100) worked.

          1. @ericklscot: Your memory is working corectly. I would addm that it is /MEMCS16 or more likely /IOCS16 depending on the area, where you are mapping your peripheral board.
            By the way, as far as I know from my PC104 experiences a 16-bit access has nothing to do with A17-A23. These signals are connected by a fact, that they are placed on the 16-bit part of the ISA connector (and an intended memory map).

  4. But…. The “good old” ISA bus is still available on lot’s of PC’s. It’s just been “re branded” as LPC, and converted to a serial format, in a similar way that other buses in PC’s have become serial, such as ATA -> SATA. All those low speed wires would be a waste of PCB area.
    https://en.wikipedia.org/wiki/Low_Pin_Count

    PC’s also have other low speed buses for management such as SMBUS (Which is very much like I2C, with some extra timing constraints to prevent infinite time bus hangups. I’m not sure if SMBUS is easily accessible from the outside, but LPC is apparently used to communicate with the “Trusted Platform Module”, which often (sometimes?) has a connector in the PC.

    1. Pins 5 & 6 on a standard PCIe slot are SMBUS Clock and Data, respectively They’re on mPCIe and M.2 slots as well.. Some motherboards actually break them out to a header as well, but not many.

      On boards that don’t have the pins broken out to a dedicated header, I’ve seen some people access the SMBUS of a system by soldering wires to EEPROMs or other chips that are on the bus. Sticking a breakout board in a PCIe slot is a much cleaner solution.

    1. And add an interface so you can use the modem with Voip?

      I once converted an ISA 2400 band modem to serial.by removing the UART (it was a separate IC) and wiring in RS232 DRIVERS and receivers. I had a Mac Plus. All later modems were serial.

      There may be some exotic or specialty bow d’s that this would be worth the effort.

  5. I’ve been interested in such things for a while… running old plug-in cards on modern PCs. Occasionally a card will offer a function that has not been replicated by something modern.

    I found a couple of USB/ISA adapters out there (as mentioned in the first comment/reply), but I came up short when it came to PCI adapters.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.