Last week we discovered an outstanding open source project which worked out of the box on the Raspberry Pi. 8086tiny is a free PC XT-compatible virtual machine/emulator written in C.
It was created by Adrian Cable who won IOCCC last year with 4043. We caught up with Adrian last week and this is what he had to say:
The personal computer as we know it today began in the early 80s with the release of the IBM PC – an incredibly complex machine for its time, and the result of hundreds of thousands of man-hours of development time, at a cost of hundreds of millions of dollars.
Thirty years later, I set out to answer the question of how small a highly portable, software PC emulator/virtual machine could be written, complete and accurate enough to simulate not just the Intel 8086 CPU but enough of the peripheral hardware to run software like Windows, AutoCAD, Lotus 1-2-3 and classic PC games. The answer: 4043 bytes of highly condensed C source code, which won the 2013 International Obfuscated C Code Contest.
Following the contest, widespread demand led to the release of 8086tiny, a fully documented and commented distribution of the original code, including full BIOS source code. 8086tiny, when deployed on the $25 Raspberry Pi, produces not only the world’s smallest but also the world’s cheapest PC.
Uniquely we believe for PC emulators, 8086tiny is released under the most free open source license possible, the MIT License, allowing use or redistribution for any purpose, commercial or non-commercial, with no restrictions whatsoever. I encourage anyone to use 8086tiny as a starting point for their own emulation projects.”
8086tiny is now part of the Raspbian repository and can be installed using apt-get and it comes with a pre-made mountable DOS hard disk. Further instructions on installation and use can be found on the forums. We had a lot of fun with it last week trying to remember the keys for Word Perfect 5.1!
A project like this has the potential to allow the Raspberry Pi to replace legacy DOS systems in industrial settings. 8086tiny is under active development and in the future we hope to see the addition of new features such as a VGA card and serial/parallel port emulation. Keep up the good work Adrian!