Imagine if someone had come up to your cubicle in 1980 and asked about preserving your company’s software for the long term as a museum exhibit. What if they’d asked you to make that code available to the world, like a book in a library? What if they used the term “Antique Software?”
More than 35 years ago, the term would have sounded ridiculous. At that time, there were certainly culturally relevant and historic pieces of software in existence, but they were primarily shared via paper tapes and generally weren’t treated like holy relics. They were just copies. Dave’s copy of Spacewar. Mike’s version of Maze War. Sarah’s revision of Colossal Cave Adventure.
Today, however, the field of antique software restoration is quietly growing. It’s already a full-blown business in the games industry: Witness Good Old Games selling preconfigured DOSBox instances coupled with old IP to make a one-click old game that works on Windows 10.
The trouble is, however, that most of the current work being done in antique software restoration is done behind closed doors, or for profit inside an enterprise. Consider COBOL developers inside major banks, or freelancers helping people recover their novels and other documents from long dead media, such as digital VHS tape systems, or more commonly digital cassette tapes.
Incidentally, I had a friend who recovered a novel from a VHS tape on an Apple II, and it was quite an ordeal. The first rule of antique software restoration is to have the hardware, and in that case, it was basically the only hurdle to overcome. (Naturally, when I write about digital VHS storage, you think I mean this, when in fact I mean this.)
Because this is a historic field that is, essentially, devoid of standards, research and a meaningful community, it can be difficult to undertake projects of varying degrees of complexity. Allow me to detail two of my own projects, and then cobble together a list of interesting historic software on GitHub for your perusal.
I’ve been working in software restoration for quite some time since I discovered a parcel of unreleased Atari 2600 and ColecoVision games on bare EPROMS at a flea market in 2008. Those were simple to save: dump the data, pour it into an emulator, play the game.
Oh, if only other projects could be so simple. My next project was Habitat, the first graphical massively multiplayer game from 1986. That project has taken three years, and as of yesterday, the original sources for the server and the client disc are now both available on GitHub under the MIT license.
Habitat was, on the whole, relatively straightforward. We had to first find the source code (which is what started this whole effort when it was given to us). Second, we had to find the hardware, which was kindly donated by Stratus. Then we had to talk to Fujitsu, which owned the rights, and get its permission. Then we had to find Commodore 64 and Stratus VOS developers willing to help.
In the end, we’re only to the point now where we can share the original code. The next step is the restoration process. That should only take a few years.
This effort was easy compared to one that we’re just now looking into with SFMOMA. Aaron Marcus’ Cybernetic Landscapes are 3D navigable spaces created between 1971 and 1973 on an Evans & Sutherland Line Drawing System-1. There were only six of these devices ever created, and after weeks of research, I’m ready to say that the original libraries and system calls this software references are lost to history.
While we have not given up on restoring these pieces, they are essentially just made up of dozens of system calls, all of which seem to be located inside of libraries we do not have. And therein lies the real rub of antique software restoration: How much of the original build environment and its includes can be found? Often, even with Habitat, we have proprietary includes that are missing.
QLink, the service that ran Habitat, is now known as AOL, and thus it’s the only company on the planet with access to some of the missing QLink libraries we need to complete Habitat. We’ve had little luck getting those libraries, and less luck engaging in an effort to open-source such assets, so we’re instead going around by trying to figure out how to rewrite those chunks of this 30-year-old PL/I code.
Some organizations understand this, and they keep these libraries and assets somewhere safe. Others don’t, and this job falls to developers who keep things on disks in their garage. Or worse, on paper in a damp storage locker.
The proper thing to do, in my opinion, is to put these things on GitHub. The original rights owners should be consulted to make sure that this is kosher, but in a pinch, you can always upload code to GitHub without a license, ensuring no commercial entity will touch it for business use. As always in software, however, there are many, many solutions to restoring old software, from emulation, to simulation, to hardware bridges via software.
So, then, it is time to move on to the museum of antique software on GitHub. We begin this tour with the grandparent of all antique software: the Apollo 11 guidance computer’s source code.
Not software, but rather, open-source hardware: the PDP-8 processor core and system
A remake of the PLATO-inspired game Cavern and Glen, circa 1983
Another PLATO-related project: this allows ancient PLATO terminals to be connected to an online PLATO site at Cyberserv.org via Linux
How about going all the way back? Here’s an ENIAC simulator.
And finally, the game that started it all: Spacewar for PDP-1