Add modern monitor output to a vintage ISA-bus PC without sourcing period-correct video cards
Emulate VGA, EGA, Hercules, or Cirrus SVGA graphics adapters on a retrocomputing or FPGA project
Use the passive register viewer to watch VGA register states and POST codes on an ISA bus without interfering with the bus
| ianhan/picograph | carlox33/the-simpsons-hit-and-run-android | hofill/rocei_cli | |
|---|---|---|---|
| Stars | 23 | 23 | 23 |
| Language | C | C | C |
| Setup difficulty | hard | hard | moderate |
| Complexity | 5/5 | 4/5 | 3/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a PicoMEM 1.4 board, a USB 2.0 DisplayLink adapter in the DL-1x0 or DL-1x5 family, and an ISA-slot PC to connect everything to.
PicoGraph is a custom video card for old PCs that use the ISA expansion slot, the connector standard found in IBM-compatible computers from the 1980s and early 1990s. Instead of a traditional circuit board filled with dedicated video chips, it uses a Raspberry Pi Pico 2, a small and inexpensive microcontroller, mounted on a companion board called PicoMEM 1.4. Custom firmware running on the Pico makes the hardware behave like several classic PC graphics adapters. The project started as a debugging tool for FPGA work, used to watch and log the I/O and memory signals flowing on an ISA bus. It grew into what the author describes as the first Pico-based ISA video card. To produce an actual display, PicoGraph connects a USB DisplayLink adapter, a type of USB dongle that drives a monitor over USB. The firmware handles communication between the ISA bus signals and the DisplayLink device. The emulated graphics standards include IBM VGA, IBM EGA, Hercules/MDA text and graphics mode, strict MDA, and the Cirrus Logic CL-GD5429, a popular SVGA chip from the early 1990s. Each targets a specific era and capability level of old PC video hardware. A passive register viewer mode shows VGA register states, POST codes, and palette data without interfering with the bus, and a sample module demonstrates how to set up I/O and memory access traps. The DisplayLink support is built on a heavily modified version of the libdlo library, adapted first for TinyUSB (a USB stack for microcontrollers) and later extended with run-length encoding. Supported adapters are USB 2.0 DisplayLink devices in the DL-1x0 and DL-1x5 families. The project is licensed under GPL version 2, with some individual files also available under BSD or MIT licenses.
A custom video card for 1980s-era ISA-bus PCs built with a Raspberry Pi Pico 2 that emulates VGA, EGA, Hercules, and SVGA graphics adapters using a USB DisplayLink dongle for monitor output.
Mainly C. The stack also includes C, Raspberry Pi Pico, DisplayLink.
GPL v2, free to use, modify, and distribute, but modified versions must also be released under GPL v2, some individual files are additionally available under BSD or MIT.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.