Skip to main content

$10 Microcontroller Emulates Retro IBM PC

An ESP32 in front of a DOS screen
(Image credit: Fabrizio Di Vittorio, Espressif)

Usually, we use PCs to emulate other systems, be it retro computers or Android apps. Using something else to emulate a PC is a little different, especially when it’s the original IBM PC, and it’s running on a tiny microcontroller board like this one from Fabrizio Di Vittorio and spotted by Hackaday. It does make us wonder, if the $4 Raspberry Pi Pico could be used in a similar manner? It too can be used to emulate retro hardware.

The board in question is an ESP32, in this case an ESP 32 development board. They’re available in RISC-V and Xtensa LX7 versions, and judging from the clock speed visible in one of the videos, it’s the latter we’re dealing with here. Di Vittorio’s oddly silent video takes you through the steps of compiling the code from its repository on an emulated board in Arduino software. His next, piano accompanied, video shows the emulator running on an actual board, booting FreeDOS, and then opening GW Basic 3. 

The original IBM PC, launched in August 1981, boasted a 4.77MHz Intel 8088 CPU and up to 640Kb of RAM. It could run PC-DOS or CP/M-86, and run BASIC and Pascal-derived programming languages. It used 5.25in floppy disks, with optional tape and hard drives.

The ESP32 emulator does extremely well, even managing to run Flight Simulator (no, not that Flight Simulator) and a lovely monochrome Windows 3.0 (which would run on an 8088 but required a staggering 1Mb of RAM) in which we see Excel, Word and PaintBrush being opened and used. 

Di Vittorio has form in this area, having previously written the useful FabGL library for writing games on the ESP32.