Modern Graphics Via DisplayLink For Your ISA-Era PC

The monitors used on older computers are now becoming difficult to find, as we doubt anything for MDA, CGA, Hercules, or EGA has been manufactured in decades. Even VGA, though there are plenty of surplus flat panels to be found, is not as ubiquitous as it once was. Where does that leave the retrocomputing enthusiast with an ISA PC and no screen? Perhaps [Ian Hanschen] has the answer with the PicoGraph, an ISA-to-USB-to-Displaylink adapter.

In hardware terms, it’s using a PicoMEM, a more general-purpose ISA card for emulating cards with a Pi Pico. The Pico hosts a USB DisplayLink adapter, which can connect to the screen of your choice. The software on the PicoMEM does the heavy lifting and provides MDA, Herc, EGA, and VGA support, as well as support for one of the 1990s Cirrus Logic SVGA chipsets. And yes, it appears to work with DOOM.

The practice of using 2020s microcontrollers to lend functionality to retrocomputers has revolutionised the art. We’ve seen many, with one of the more recent being a minimap add-on for an 8-bit Sinclair Spectrum.

13 thoughts on “Modern Graphics Via DisplayLink For Your ISA-Era PC

  1. PicoMem and the projects that stem from it are great, but my problem is usually the opposite one: I have an amazing ISA card and want to use it, but I have nothing to plug it into. Okay, I have some old AMD K6 boards that have ISA slots, but ideally I’d have a box with six ISA slots in it and a USB port allowing me to control them from any modern computer. A RaspberryPi Pico seems like a good basis for such a contraption what with all its GPIOs (I will need one for every signal in an ISA port!).

    1. I’m not sure how doable that would be, at least in a ‘generic’ sense rather than one that requires a specialized driver for each ISA device being puppeted over USB.

      ISA is not exactly a bandwidth problem anymore; but it makes the sort of assumptions that normally involve being pretty closely tied to the CPU: it can do DMA, memory mapped IO, device gets an IRQ line, etc.

      What you might be able to do generically would be have the virtualized ISA bus in a VM talking to your USB interface, so that you can hide the translation from what you are doing from the guest OS and give its drivers what they expect from ISA devices; but otherwise you’d be looking at a nontrivial change per driver to accommodate

        1. If that can be done then how can it be impossible to have an OS kernel that would do the same thing, a virtual ISA bus with virtual interrupts living right in the kernel and let driver modules for ISA devices talk to that. No VM required.

          Talking the Linux kernel devs into letting all that into mainline… just so you can run some extremely outdated hardware.. sounds unlikely.

          But.. could it exist as something one can add in?

    1. Um, the host, PicoMEM, isn’t open hardware (yet), either, as far as I understand.
      By contrast, the “arch rival” PicoGUS is, I think. ;)
      So there’s little to be won by making a homebrew version at the moment, maybe.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

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