Editor’s note

The existing and canonical HTML version of The Z-Machine Standards Document is a good reference, and contains invaluable information about the structure and functioning of a Z-machine interpreter. But, in the process of using it to write my own interpreter implementation, I found that (a) jumping back and forth between sections was awkward without an in-page table of contents[1], (b) the formatting—or lack thereof—made it less legible than it could be, and (c) there were some technical details that seemed to be assumed rather than made explicit.

To that end, I decided to convert the document to a more-modern presentation, and also annotate it with additional information I discovered in the process. (This might also serve as the initial source for an entirely new document, restructured for an interpreter-writing audience.)

None of this would exist without the tireless work of Graham Nelson and the other intrepid code spelunkers (see the original preface) that reverse-engineered the format and logic of the original Infocom game files.

Jared Reisinger
3 February 2022

1. Technically, there is a brief table of contents of sorts at the bottom of every page in the canonical docs, but the sections and appendices listed therein are only given numbers and letters; unless you’ve memorized which section is which, it’s only usable for manually navigating the numbered cross-section links!