From:
[email protected] (Mathematical Institute, (01865) 2-73525)
Newsgroups: rec.arts.int-fiction
Subject: Z-Machine Specification: Standard 0.2
Date: 16 Nov 95 12:57:57 GMT
The Specification of the Z-Machine: A New Standard
==================================================
(The Z-Machine is the imaginary computer invented by Infocom on which their
games run, and is also the run-time system used by the Inform compiler: thus
this document describes the format of Infocom and Inform "story files".)
Since its first appearance over a year ago, a great deal of work by many
hands has gone into rewriting the Specification, which is now almost
unrecognisable as the original document. The material is more precise,
corrects numerous errors and is systematically organised: in cases of doubt,
original Infocom interpreters have been disassembled and referred to. A lot
of niggling questions have been asked and answered. There have already been
two consultation rounds among interested parties.
The aim is to *exactly* describe what an interpreter should do. That
being so, we propose it as a Standard. Each future edition of the document
will be numbered: the one released today is 0.2. It is intended as
provisional, during a last round of consultation between now and the New
Year. Early in January, when further comments, corrections or requests for
clarification have been acted on, it will finally become the definition of
Standard 1.0. (Do please get in touch with me if you have such comments,
corrections or requests.)
A new location in the header has been allocated so that interpreters can
tell the game being played what level of the Standard they implement (for
existing interpreters this will be 0.0). A game will therefore know whether
or not it is safe to use "dangerous" features of the Z-Machine (saving files
of arbitrary data, for instance, or printing boldface German accents in
colour at the bottom right character position of the upper window).
Another intention is that the existence of this Standard will get the
often rather old cores of present interpreters up to date with current
knowledge. (Many new interpreter programs today are actually new front ends
for obsolete cores, which have been only partially repaired.)
In order for this Standard to be worth the name, interpreter writers are
urged *not* to declare their interpreters as Standard unless they really
believe that they are. But once they are, it would be helpful if
interpreters lodged at ftp.gmd.de could include their Standard numbers (e.g.
1.0) somewhere in their filenames, so that users will know what they are
getting.
The new Standard introduces hardly any new features to the Z-Machine: the
aim has been to describe accurately the status quo. However, in the process
of working out exactly what the `ASCII' character set is for the ZM, we have
filled out the set of accented letters to include the "common" European
accents to be found in ISO Latin 1 (umlauts; grave and acute; cedilla;
circumflex; tilde; ring; slash; thorn and eth; ligatures; and, for good
measure, continental European quotation marks and a pound sign).
The document is presently in TeX format (which is fairly legible as plain
text after the first few pages of macro definitions): other formats will
follow in due course. At the bottom of the file, after the \end command
(which tells TeX to stop typesetting) are six small Inform programs:
fonts.inf, accents.inf, inputcodes.inf,
colours.inf, timedinput.inf, header.inf
which may be helpful for testing the accuracy of a given interpreter.
Suggestions for other test programs, which might be added to this suite,
would be welcomed.
In parallel to all this activity, Stefan Jokisch is compiling a list of
all known bugs in the Zip interpreter: it is hoped in future to try to get
Zip-based interpreters back to a common release of the Zip source code
which will obey the Standard. Please do get in touch with Stefan if you
find or suspect a bug in Zip: or write to me, and I'll forward the
correspondence to Stefan.
The expert on the InfoTaskForce interpreter (which has not been maintained
in a very long time) is probably now Bryan Scattergood, whose Psion
interpreter is a highly advanced modification of ITF. He may be a good
person to consult on how to improve ITF, should anyone want to do this
(please!).
The document can at present be found at ftp.gmd.de, in the directory
incoming/if-archive: after a few days it should end up in
if-archive/infocom/interpreters.
Graham Nelson
November 16th, 1995
(with extensive contributions from
Paul David Doherty,
Mark Howell,
Stefan Jokisch,
Marnix Klooster
and many others during previous rounds of consultation: although I
drafted the text, I do not regard myself as its sole author.)