MartyPC Creator Daniel Balsom Begins a Mammoth Undertaking: Writing The PC Emulation Book
Detailed document aims to cover everything you could possibly need to know about IBM's classic Personal Computer and PC XT.
The developer of vintage PC emulator MartyPC, Daniel Balsom, has announced a mammoth undertaking: the creation of the ultimate reference guide to those looking to emulate IBM's classic Personal Computer and later Personal Computer XT machines.
"In years that I have spent developing [MartyPC] I have learned a great deal about the IBM PC hardware, often the result of performing direct hardware research on one of the IBM 5150s I personally own," Balsom explains. "To run the demo Area 5150 like MartyPC can, requires cycle-accurate emulation of many of the system components of the IBM PC, something I only achieved after hours of poring over captures from a 32-channel logic analyzer. During development of MartyPC, I became jealous of the comprehensive documentation archives that many console emulation platforms enjoy. 'There should be something like this for PC' was a constant, nagging thought. I always knew I wanted to do something about it. This is that something."
The IBM Personal Computer 5150 launched back in 1981 and is recognized as popularizing the now-ubiquitous term over the at-the-time more common "home computer" or "microcomputer." Built around Intel's 8088 processor and, famously, running Microsoft's MS-DOS, the IBM PC was built around a standardized architecture — which allowed third parties to build compatible "IBM clones" featuring reverse-engineered versions of the company's Basic Input/Output System (BIOS), resulting in a Cambrian explosion that has led to the multi-vendor PC ecosystem as it exist today.
For those who want to play around with the IBM PC but lack the room, patience, or cash to have original hardware, Balsom's MartyPC offers a highly-accurate emulation — to the point where the Area 5150 demo, which hooked into the hardware at a low level and crashes or fails to properly display all its effects on rival emulators, runs perfectly. Its creation has given Balsom a deep insight into how the IBM PC works, which is now being brought to bear on creating a detailed reference guide — both for personal use and as a gift to the wider emulator and vintage computing ecosystems.
Balsom's inspiration came from Pan Docs, a multi-author effort launched back in 1995 to document the inner workings of Nintendo's classic Game Boy handheld. Like Pan Docs, Balsom expects The PC Emulation Book to be a "mammoth undertaking," and at the time of writing only initial steps had been taken: a layout showing what the book aims to detail plus detailed information on the operation of Intel's 8253 Programmable Interval Timer (PIT).
"I'm pretty proud of it," Balsom says of the Intel 8253 chapter, "and happy I was able to include some things I discovered via original hardware research poking at an 8253 with an Arduino. In any case, it serves as a level of the depth and quality I hope to attain for every topic. I could certainly use help documenting everything — there's a lot of material to cover. However, I am forced to be extremely picky to maintain the quality level I am aiming for."
Those interested in reading or contributing to the project, which is being published under the permissive Creative Commons Zero public-domain license, can do so on GitHub.
Main article image courtesy of Bundesarchiv, B 145 Bild-F077948-0006/Engelbert Reineke, CC-BY-SA 3.0.
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.