Arduino VGA, The Old Fashioned Way

Making a microcontroller speak to a VGA monitor has been a consistent project in our sphere for years, doing the job for which an IBM PC of yore required a plug-in ISA card. Couldn’t a microcontroller talk to a VGA card too? Of course it can, and [0xmarcin] is here to show how it can be done with an Arduino Mega.

The project builds on the work of another similar one which couldn’t be made to work, and the Trident card used couldn’t be driven in 8-bit ISA mode. The web of PC backwards compatibility saves the day though, because many 16-bit ISA cards also supported the original 8-bit slots from the earliest PCs. The Arduino is fast enough to support the ISA bus speed, but the card also needs the PC’s clock line to operate, and it only supports three modes:  80 x 25, 16 colour text, 320 x 200, 256 colour graphics, and 640 x 480, 16 colour graphics.

Looking at this project, it serves as a reminder of the march of technology. Perhaps fifteen years or more ago we’d have been able to lay our hands on any number of ISA cards to try it for ourselves, but now eight years after we called the end of the standard, we’d be hard placed to find one even at our hackerspace. Perhaps your best bet if you want one is a piece of over-the-top emulation.

An 8-bit ISA card with VGA, HDMI and composite video connectors

Upgraded Graphics Gremlin Adds HDMI Video To Vintage PCs

Although new VGA-equipped monitors can still be bought, the old standard is definitely on its way out by now, being replaced by high-speed digital interfaces like HDMI and DisplayPort. It therefore makes sense to prepare for a VGA-less future, as [Yeo Kheng Meng] is doing. He designed an 8-bit ISA display card with an HDMI output that enables even the very first generation of PCs to talk to a modern monitor.

The design is based on the Graphics Gremlin by [Tube Time], which is an 8-bit ISA display card that aims to be software compatible with the obsolete MDA and CGA display formats while outputting a clean VGA signal. [Yeo Kheng Meng] modified the board by adding a TFP410 HDMI bus driver and replacing the rarely-used 9-pin RGBI connector with an HDMI version. He also updated the HDL code for the Lattice FPGA, which forms the heart of the graphics card, to account for the new digital output. While he was at it, he also added a few features he was missing in the original product, such as the option to select the color displayed in MDA mode and the ability to output both HDMI and composite video at the same time.

The video below shows the updated card in action in an IBM 5155 Portable PC. The HDMI port connects to a modern monitor, while the composite video output is routed to the 5155’s internal CRT as well as a small color monitor on top. The IBM thereby joins a small list of retro computers that have received an HDMI upgrade — the Amiga 500 and PlayStation 2 being other examples. HDMI might be a lot more complex to work with than VGA, but luckily there are open-source implementations that do much of the work for you.

Continue reading “Upgraded Graphics Gremlin Adds HDMI Video To Vintage PCs”

A green PCB with an ISA card slot and various connectors and components. The text "DISAPPOINTMENT LPC to ISA Adapter" is printed in the bottom left of the board.

ISA Over TPM To Your PC

Sometimes you really want to use your legacy SoundBlaster instead of emulating it for classic games. While modern PCs don’t have ISA slots, [TheRasteri] is fixing this shortcoming with his dISAppointment board. (via Adafruit)

ISA was the standard card bus for PCs during the golden age of DOS gaming, and many of these games will still run on modern x86 hardware. Unfortunately, they run into hiccups with regards to sound since they were designed to specifically support ISA-based sound cards. [TheRasteri] found he could access the ISA bus lurking in modern computers through the Low Pin Count (LPC) bus which is exposed on the TPM port in many modern motherboards.

Testing the card with DOOM, he gets music and sound effects with no emulation required. Open Source files and a more detailed video are on the way, so stay tuned if you’re hankering for more ISA goodness on your modern rigs.

We’re no strangers to ISA here. We’ve covered the basics of the ISA bus as well as plugging ISA cards into USB and how you can emulate vintage ISA cards with a Raspberry Pi and FPGA.

Continue reading “ISA Over TPM To Your PC”

Home-Built CPU Runs With Home-Built Toolchain

A few years ago [Takaya Saeki] and fellow students of the University of Tokyo, were given a very limited instruction during their ‘CPU exercise’ class, along the lines of:

Take this ray-tracing program written in OCaml and run it on your CPU implemented on an FPGA

Splitting into groups to cover the CPU, FPU, simulator tool, and compiler toolchain, the students started with designing a RISC ISA, then designed a CPU around that. You can follow along with the retrospective writeup of the class, then dive into the GitHub pages for each of the components of the system, although the commentary is mainly in Japanese. Hey, you can google translate right? Continue reading “Home-Built CPU Runs With Home-Built Toolchain”

Version 1.8 of the 80386 ISA SBC in its assembled glory. (Credit: Alexandru Groza)

Building Your Own 80386DX ISA Single Board Microcomputer

Having grown up with 386-level systems during the early 90s like so many of us, [Alexandru Groza] experienced an intense longing to experience the nostalgia of these computer systems from an interesting angle: by building his own 80386DX-based single board computer. Courtesy of the 16-bit ISA form factor, the entire system fits into a 16-bit ISA backplane which then provides power and expansion slots for further functionality beyond what is integrated on the SBMC card.

Having started the project in 2019, it is now in the home stretch towards completion. Featuring an 80386DX and 80387DX FPU alongside 128 kB of cache and a grand total of 32 MB of RAM, an OPTi chipset was used to connect with the rest of the system alongside the standard 8042-class PS/2 keyboard and mouse controller. A large part of the fun of assembling such a system is that while the parts themselves are easy enough to obtain, finding datasheets is hard to impossible for some components.

Undeterred, some reverse-engineering of signaling on functional mainboards was sufficient to fill in the missing details. Helpfully, [Alexandru] provides the full schematics and BOM of the resulting board and takes us along with bootstrapping the system after obtaining the PCBs and components. After an initial facepalm moment due to an incorrectly inserted (and subsequently very dead) CPU and boot issues, ultimately [Alexandru] gave up on the v1.6 revision of the board

Fortunately the v1.8 revision with a logic analyzer led to a number of discoveries that has led to the system mostly working, minus what appears to be DMA-related issues. Even so, it is a remarkable achievement that demonstrates the complexity of these old systems.

Some Pleasing Experiments In 8-Bit Video Cards

These days, supply chain factors and high demand have made it incredibly difficult to lay one’s hands on a GPU. However, if you’re into older computers, you might find it hard to source old-school video cards too. Fear not, for [Dave’s Dev Lab] has been cooking up some experiments with a goal of eventually producing a new 8-bit ISA video card from scratch.

The long term goal is to recreate the original design of early IBM hardware, namely, the MDA and CGA video cards of decades past. The experiments center around the venerable Motorola 6845 which was widely used in computers in the 1980s. However, [Dave] intends to make them suitable for outputting to modern screens using typical VGA and DVI outputs, as well as those expected by modern TFT LCDs.

Thus far, [Dave] has achieved successful VGA output in a 40×35 text mode. With an 8×16 font, and the display running at 640×480 resolution at 60 Hz, everything hums along nicely. Similar experiments with a modern 480×272 LCD display have also worked well.

There’s a long way to go before [Dave’s] hardware is playing Commander Keen, but it’s great to see such effort being put into the platform. It could yet serve as a great upgrade for those wishing to use their vintage IBM metal without having to source a tired old CGA monitor.

We’ve seen similar work before too, with the Graphics Gremlin from [Tube Time] achieving a similar task. If you’ve been brewing up your own ISA hardware at home, do drop us a line.

Software Defined… CPU?

Everything is better when you can program it, right? We have software-defined radios, software-defined networks, and software-defined storage. Now a company called Ascenium wants to create a software-defined CPU. They’ve raised millions of dollars to bring the product to market.

The materials are a bit hazy, but it sounds as though the idea is to have CPU resources available and let the compiler manage and schedule those resources without using a full instruction set. A system called Aptos lets the compiler orchestrate those resources.

Continue reading “Software Defined… CPU?”