Appendix C. Resources available

...the dead hand of the academy had yet to stifle the unbridled enthusiasms of a small band of amateurs in Europe and America.

Michael D. Coe, Breaking the Maya Code

[Note: these links have not been updated since the 20th June 1997 revision of this document, and as such are very likely to be incorrect.]

The resources below are mainly available from the if-archive at the anonymous FTP site ftp.gmd.de in Germany, maintained by Volker Blasius. [Some mirrors of this site are listed at the Inform home page.


Public Interpreters

At least eleven essentially different interpreters are publically available, of which six are in modern use:

  1. Frotz, by Stefan Jokisch (1996-), was written in a successful attempt to implement a Standard-compliant interpreter from scratch, rather than repair old interpreter cores. It covers all Versions and ports are available for: DOS, Amiga, Windows CE, Acorn RISC OS, Windows 95/NT, OS/2, Unix, HP-UX.
    1. Zplet, by Matthew Russotto (1996-), is an almost Standard-compliant Java applet to interpret Versions 3, 5 and 8.
    2. Zax, by Matt Kimmel (1997-), is an almost Standard-compliant Java application to interpret all Versions other than 6. (Note that Zax and Zplet are quite independent of each other: as one runs in a browser, the other as a stand-alone application, they may be seen as complementary.)
  2. Zip, by Mark Howell (1991-), is a good, almost entirely accurate interpreter across Versions 1 to 5. The core has evolved into many extended versions, often covering Version 8 or even implementing this Standard; Stefan Jokisch has written a document listing bugs and omissions in the original. Noteworthy ports include: Kevin Bracey's Standard-compliant !Zip2000, (Acorn RISC OS only), which fully supports even Version 6; Rick Bram's Pilot Zip (1997): the PalmPilot is a pocket-sized, battery-powered personal organiser without even a keyboard; Andrew Plotkin's MaxZip, for System 7 Macintoshes, and XZip, for X-Windows; Matthew Russotto's Zip Infinity, also for Macintosh; John Holder's JZip for PCs (itself ported to the Atari ST and Bebox); Greg Ewing's macZeX, which extends the Z-machine specification to include textual formatting information loosely based on TeX, but which has not been used by designers; and other ports including to MS Windows, DOS, BSD Unix, Amiga, OS/2, Apple IIgs.
  3. The InfoTaskForce (or ITF) interpreter (1987-92) is almost as good, but slower and less accurate on some Version 5 features. It is no longer maintained by its original authors (David Beazley, George Janczuk, Peter Lisle, Russell Hoare and Chris Tham) and the final version was 4.01 (ported to Acorn RISC OS, Atari ST, OS/2, Macintosh, DOS, Amiga); a beta test of version 4.02 was never widely distributed. However, Bryan Scattergood has given ITF a new lease of life by updating it to much more accurate and reliable interpreters for Acorn RISC OS, the Psion Series 3, Unix/X11 and Windows.
  4. Apple Newton users can at present play Version 3 games only, using the shareware interpreter YAZI, Yet Another Z-Machine Interpreter, by George Madrid and Sanjay Vankil (1994-).
  5. Another Version-3-only interpreter, Infocom Interpreter by Martin Korth (1993) is noteworthy for two reasons: first, because Mr Korth seems to have worked by reverse-engineering the Infocom CP/M interpreter (in isolation from the main groups of Infocom hackers of the period), and in this way wrote the only known Z-machine in Pascal (source available at his site); second, because he then wrote an assembly-language version for the keyboard-less Nintendo Gameboy. To use this, one appends the story file to the interpreter, burns the result into an EPROM and plugs it in: it's probably the nearest thing to a "hardware Z-machine" yet devised.

The other four interpreters are obsolescent and now hardly used, but ought not to be forgotten, if only for their contribution to the gradual process of decipherment.

  1. Pinfocom (1992), derived from an early form of ITF, and released by Paul Smith as a Version 3 (only) interpreter; final version 3.0 (ported to Amiga and Atari ST).
  2. Zmachine (1988-90), by Matthias Pfaller: briefly in limited circulation (again, for Version 3 only; ported to Amiga and Atari ST).
  3. ZIPDebug (1991-3), by Frank Lancaster, supporting Versions 1 to 5 and offering some debugger facilities.
  4. Zterp (1992), by Charles M. Hannum, for Versions 3 to 5: reputedly very fast.

Testing compliance

Andrew Plotkin has written a story file to torture interpreters into revealing non-Standard behaviour, with the appropriately contrived name of TerpEtude [an archive containing the source code and compiled story file]. It supersedes the handful of smaller programs previously attached to versions of this document.


Compilers

Infocom's original compiler Zilch no longer exists: nor is any of its language, ZIL, documented anywhere (though this is similar to MDL, which is documented): no continuous part of the source code of any of Infocom's games is in the public domain [but see Stu Galley's chapter of an Infocom history article, and the IEEE article, for fragments].

Inform is the only other compiler to have existed. It is freeware and comes with full documentation (of which this document is a part).


Debugger

A source-level debugger for Inform games, called Infix, has been on the drawing boards for some years now. A group of authors is currently developing an implementation.


Utility programs

Mark Howell has written a toolkit of Ztools, or utility programs (1991-5, updated 1997), which includes:

  1. Txd, a disassembler for Versions 1 to 8. (Uses the same opcode names as Inform and this document, and has an option to disassemble in Inform assembly-language syntax.)
  2. Infodump, capable of printing the header information, object tree (with properties and attributes), dictionary and grammar tables of any Infocom or Inform-compiled game. (Understands all four varieties of grammar table: Infocom pre-Version 6, Infocom Version 6, Inform GV1 and GV2.)
  3. Pix2gif, for converting Version 6 picture data to GIF files.
  4. Check, for verifying Infocom or Inform story files.

These continue to be maintained (by Matthew Russotto) and the first two are extremely useful. Infodump largely supersedes Mike Threepoint's vocabulary dumper Zorkword (1991-2), which was important in its day (and which this author found extremely helpful when writing Inform 1).


Story files

  1. Numerous Inform-compiled story files are publically available: games such as 'Curses', 'Christminster', 'Theatre', 'Busted', 'Balances', 'Advent', 'Adventureland' and so on. [For an annotated selection see the Inform home page.]
  2. A few Infocom story files are public, notably two 4-in-1 sample games (released for advertising purposes: 55.850823 and 97.870601) and Minizork (a heavily abbreviated form of Zork I released with a Commodore magazine).
  3. Almost all Infocom's games remain commercially available in anthologies published by Activision. Copyright resides in them and they should not available by FTP from any site.
  4. A few other Infocom story files have existed but are neither on sale nor released from copyright: this applies to several of the Version 6 games, those games involving literary rights or other legal issues ('Shogun', 'Hitch-Hiker's Guide To The Galaxy') and ephemera such as beta-test versions (notably the German version of 'Zork I') which have somehow passed into private circulation.

Most of the Infocom games exist in several different releases, and some were written for one Version and then ported to later ones. 'Zork I', for instance, has at least 11 releases, 2 early, 8 in Version 3 (with release numbers between 5 to 88 in chronological order) and one in Version 5 (release 52 -- the releases go back to 1 when the version changes).

Version 1 and 2 games are extinct, though there are a few fossils in the hands of collectors.


Documents

The definitive guide to all Infocom story files known to exist, and an indispensable reference for anyone interested in Infocom, is Paul David Doherty's Infocom fact sheet, which is regularly updated, concise and precise. This supersedes Paul Smith's "Infocom Game Information" file.

Stefan Jokisch has written a brief specification of Infocom-format sound effects files.

Martin Frost is the author of the Quetzal standard for saved-game files. Patches to adapt Zip-based interpreters to use Quetzal are now available.

Andrew Plotkin is drafting the Blorb standard for packaging up images and sounds with new Z-machine games.

The Inform Technical Manual documents the format of parsing tables used in Inform games.

Most of the contents of the original Infocom game manuals are still on sale with the games themselves: the "samplers" (sample transcripts of play) are not, but an archive of them is publically available. So is an interesting historical archive of magazine articles concerning Infocom, and articles from Infocom's own publicity magazine [indexed here].


Mailing list

A Z-Machine mailing list, organised by Marnix Klooster (marnix@worldonline.nl), enables debates on this document, discussion of what interpreters should do, collaboration on new programs and so on.


Contents / Preface / Overview

Section 1 / 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 / 12 / 13 / 14 / 15 / 16

Appendix A / B / C / D / E / F