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, (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.
3 February 2022