Z-machine (original) (raw)
The Z-machine is a virtual machine that was used by Infocom for its text adventure games. Infocom compiled such games to files containing Z-machine instructions (called story files, or Z-code files), and could therefore port all its text adventures to a new platform simply by writing a Z-machine emulator for that platform. With the large number of incompatible home computer systems in use at the time, this was an important advantage over using native code.
The "Z" of Z-machine stands for Zork, Infocom's first adventure game. Z-code files usually have names ending in .z3, .z5, .z6 or .z8, where the number is the version number of the Z-machine on which the file is intended to be run, as given by the first byte of the story file. Previously it was common for the filenames to end with .zip (ZIP = Z-machine Interpreter Program), but this clashes with the present widespread use of .zip for PKZIP-compatible archive files. Infocom produced six versions of the Z-machine. Files using versions 1 and 2 are very rare. Only one version 1 file is known to have been released by Infocom, and only two of version 2. The newer versions had more capabilities, culminating in some graphic support in version 6.
The compiler (called Zilch) which Infocom used to produced its story files has never been released, although documentation of the language used (called ZIL, for Zork Implementation Language) is still in existence. But in May 1993, Graham Nelson released the first version of his Inform compiler, which generates Z-machine story files as its output. Most files produced by Inform are version 5. Inform has since become very popular in the interactive fiction community and, as a consequence, a large proportion of the interactive fiction now produced is in the form of Z-machine story files. Demand for the ability to create larger game files resulted in the creation of versions 7 and 8 of the Z-machine, though version 7 is not in use. Interpreters for Z-code files are available on a wide variety of platforms.
During the 1990s, Graham Nelson drew up a Z-machine standard, based on detailed studies of the existing Infocom files.
See also: SCUMM