The Intel 8086, from 1978, is a little lacking in horsepower by today’s standards, being a 16-bit chip running at up to 10 MHz. That hasn’t stopped Canada based engineer Robin Grosset, however, who’s found a way to attach one to a Raspberry Pi.
Minimalist PC, 8086 CPU + @Raspberry_Pi as data bus. pic.twitter.com/ACulnWQ1gIMarch 8, 2022
Formerly of IBM, and now CTO of AI firm MindBridge, Grosset knows his way around a chip or two. The Raspberry Pi 4 acts as a data bus, toggling the clock, dealing with the CPU’s requests, and providing read and write to memory and the I/O, allowing the 8086 chip to run MS-DOS. The chip receives power from the 3.3V pin on the Pi’s GPIO array - which it’s connected to directly - meaning not all 8086 processors will work, as the different models require anything from 3V to 7V.
The chip in question is actually a clone, the NEC V30, pin compatible with the original Intel 8086 and used in the Psion Series 3 PDA from 1991 and the Wonderswan games console. The code also works with the Intel 8088, a variant of the 8086 with an 8-bit data bus. At the moment, the 8086 is only running at around 0.3MHz, slow even by 1978 standards, but its memory and disk drives are fast as they’re provided by the Pi.
"This is a work in progress and just a bit of fun,” Grosset told us. “The original project was created by Elijah Miller. I got interested in it because it's a CPU connected directly to the Raspberry Pi header, which I thought was pretty crazy. This is made possible with no other supporting interface chips, just direct wiring links."
Grosset has also been working on a Raspberry Pi Zero 2 W powered "pi6502" which was made while waiting on parts for his 8086 build. “While I was waiting for my 8086 CPUs to arrive I tested out a 6502 CPU, and with some tweaks was able to achieve 2.6Mhz. That code is here and implements a really fast Apple 1,” he continues.
“For me this is interesting because you have to figure out the bus timing of the CPU chips, and you get to understand what the processor is doing at a very detailed level. The challenge to get this to a run at full speed is in both timing issues of the CPU, and also creating really efficient code to run the GPIOs.”
Grosset’s code for the 8086 HAT, including the C library he wrote for interfacing, is all available on GitHub, should you have an 8086 of your own and a hankering for MS-DOS. There are alternatives, however.