The Insightful Troll

Rants and ruminations.

Infocom's Porting Tools Found

| Comments


It was the summer of 1985. My parents had just purchased a Commodore 64 from a neighbor for $200 - complete with a 1541 disk drive and a carton of 5 ¼ inch disks - which I had no idea what was contained in them.

After a few hours of reading the manuals and struggling to figure out what I am going to do with this beige colored bread box - I put the first disk in typed the following:

load "*", 8, 1

And after some furious whirring - up came a screen:

For the next three weeks I spent the entire day locked away in our den behind the kitchen avoiding the grues, thieves and plundering The Great Underground Empire. Those were some great times.

The code to most of the Infocom interactive fiction games, written in ZIL (Zork Implementation Language,) have been around since 2019. This was pretty much useless unless you had a ZIL interpreter (AKA Z machine) for your system. There were many open sourced Z machine implementations for just about every machine out there. But the originals were thought to be lost.

Until now.

Andrew Plotkin has published a git repo with all of the source code for the major platforms, details what they are and how he found them in a blog post on his site.

So the game source was big news. Infocom’s interpreter source, however, remained obscure. This was the game-playing software for each platform: the Apple 2 interpreter, the Commodore 64 interpreter, and so on. A particular Infocom game release (“Zork 3 for the C64”, say) was a floppy containing the C64 interpreter and the Zork-3 game file. Boot the floppy, the interpreter starts up; it loads the game data and the game begins.

These interpreters were well-studied by IF enthusiasts in the early 1990s. That’s how we got the first open-source IF interpreters and the modern Z-machine specification. Functionally, we know how they work.

But we never had their source code. You might ask, who cares? It would have been pretty opaque assembly code anyhow. But it’s a layer of insight into the developers' minds. Comments, variable names, documentation.

This is the best holiday gift for hopeless nerds like myself.