Play Live Overview Routines Objects Global Vars Properties
"ZORK2 for
Zork II: The Wizard of Frobozz
(c) Copyright 1983 Infocom, Inc. All Rights Reserved."

The number of the Zorks shall be two.

(“Three, sir!”)

Yes, but this one is Zork 2.

<SETG ZORK-NUMBER 2>
<GC 0 T 5>
<BLOAT 70000 0 0 2700 0 0 0 0 0 256>
<SET REDEFINE T>
<GLOBAL BIGFIX 10000>
<OR <GASSIGNED? ZILCH>
<SETG WBREAKS <STRING !\" !,WBREAKS>>>
<DEFINE IFILE (STR "OPTIONAL" (FLOAD? <>) "AUX" (TIM <TIME>))
<INSERT-FILE .STR .FLOAD?>>
<PRINC "Renovated ZORK II: The Wizard of Frobozz
">
<OR <GASSIGNED? INSERT-CRUFTY>
<DEFINE INSERT-CRUFTY (STR) <INSERT-FILE .STR T>>>
<COND (<GASSIGNED? PREDGEN>
<ID 0>)>
<IFILE "GMACROS" T>
<IFILE "GSYNTAX" T>
<IFILE "2DUNGEON" T>

Notice something missing? There’s no IFILE line (“include file”) for crufty.zil.

The I-LANTERN routine is definitely part of the game file. So we know the compiler read crufty.zil in. But it’s not obvious how.

Furthermore, when I analyzed the game file, I found that functions were not generated in the order of the IFILE lines here. (In Zork 1, functions were generated in IFILE order.)

My best guess is that the zork2.zil file was rewritten after July 26 1984, but the game was never recompiled.

<IFILE "GGLOBALS" T>
<PROPDEF SIZE 5>
<PROPDEF CAPACITY 0>
<PROPDEF VALUE 0>
;<PROPDEF TVALUE 0>
<IFILE "GCLOCK" T>
<IFILE "GMAIN" T>
<IFILE "GPARSER" T>
<IFILE "GVERBS" T>
<IFILE "2ACTIONS" T>
<GC 0 T>
<DEFINE CNT (STR OBL)
<PRINC .STR>
<PRIN1 <MAPF ,+ ,LENGTH .OBL>>
<CRLF>>
<COND (<NOT <GASSIGNED? PREDGEN>>
<GC-MON T>)>