4 ms·
Looking through a bunch of code in the archive, it was interesting to come across the macro for TELL, which is used everywhere in games as a sort of printf, and
by kmill 8y ago
Looking through a bunch of code in the archive, it was interesting to come across the macro for TELL, which is used everywhere in games as a sort of printf, and it has some special printf-like codes to print out names of objects and such. There are also some functions that have been declared with DEFINE rather than ROUTINE. Both the macros and the DEFINEd functions use the features of the greater MDL at will.
What is interesting in particular is how it possibly reveals their setup: they had a full MDL interpreter running on their workstations, and ZIL is a subset that could be cross-compiled to a stripped-down target: the Z-machine.
It looks like ROUTINE, OBJECT, ROOM and such are macros (in sources unknown) that would define standard MDL objects, possibly stored in some structure for findability. Then, the cross-compiler would be a program that takes these objects and writes out some Z-code. The workflow probably allowed (1) playing the games directly in the interpreter without compilation (2) making small changes to a running game and (3) recompiling the Z-code after having made those small changes, without needing to reload all the game's source code.
Except for the cross-compilation step, this is the sort of environment the original Zork would have been written in, and I find it hard to imagine they would have accepted anything less.
- pinewurst 8y agoExcept their “workstations” were the likes of VT100 terminals connected to their DEC-20.