Post by email@example.com Post by Steve Nickolas
So I got namedropped at Kfest for my work trying to get Z5 Inform games up
and running on the Apple //e...
Which reminded me that for years I've been wanting to write an interpreter
for the Z-machine but haven't been able to figure it out (it's well
documented but the documents are clear as mud to me)...I probably need
just the right explanation for it to all fall into place.
There are a lot of text adventures in the Z5 format and it would be nice
to bring them over to the //e, but the official Z5 interpreters don't work
well with the unofficial games - this is why a new interpreter would be
"Inform is a compiler that takes an 'Object-Oriented' C-like language
and compiles it into z-code -- the same code used by Infocom text
adventures. In other words, Inform lets you write Infocom-style
adventure games with a complicated, simple english parser (provided by a
library file) in the comfort of home."
I take it the run-time interpreter is part of the Z-code when the
compiler finishes compiling to Z-code?
The runtime interpreter is a separate thing, and the "InterL" programs I
wrote combine said runtime interpreter with the Z-code file to create a
disk image, or in the case of Z4 and Z5 games, a pair of disk images.
Post by firstname.lastname@example.org
This would mean that every adventure game would need to be re-compiled
for the platform it runs under, wouldn't it?
And the C-like language is what a person would need to recompile, and
not the Z5 code, am I reading this right?
The result of compiling this "C-like language" *is* the Z5 code.
Each system has its own interpreter, but the Z5 code is the same across
all platforms. Also, there are several portable interpreters, like ITF,
JZIP and FROTZ, which are written in C and support multiple versions of
These portable interpreters are too generalized and too big and bulky to
directly port to the //e but perhaps one could be simplified to a
minimalist implementation and optimized for size. The most useful
versions of the Z-machine to implement are 3 for official games and 5 for
unofficial ones, although there were a few official games for version 5
and the interpreter I currently use was pulled from the Apple //e version
of Beyond Zork.