 
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:
  - 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.
  
- 
    
      - Zplet, by Matthew Russotto (1996-), is an almost
          Standard-compliant Java applet to interpret Versions 3, 5 and 8.
      
- 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.)
      
 
- 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.
  
- 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.
  
- 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-).
  
- 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.
  - 
      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).
  
- 
      Zmachine (1988-90), by Matthias Pfaller: briefly in limited
      circulation (again, for Version 3 only; ported to Amiga and Atari ST).
  
- 
      ZIPDebug (1991-3), by Frank Lancaster, supporting
      Versions 1 to 5 and offering some debugger facilities.
  
- 
      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:
  - 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.)
  
- 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.)
  
- Pix2gif, for converting Version 6 picture data
      to GIF files.
  
- 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
  - 
      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.]
  
- 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).
  
- 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.
  
- 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