|
| 1 | +MARC MARC |
| 2 | +‡ |
| 3 | +CONN <ZORK> |
| 4 | +<MDL>MDL104 |
| 5 | +<RESTORE "<MDL>M104UNI"> |
| 6 | +<SNAME "ZORK"> |
| 7 | +<FLOAD "LITLPK.GBIN"> |
| 8 | +<USE "CLEAN" "PURITY"> |
| 9 | +<SETG NULL!- <INSERT <STRING <ASCII 127>> <ROOT>>> |
| 10 | +%%<BLOCK (<MOBLIST FROBOZZ> <GET INITIAL OBLIST> <ROOT>)> |
| 11 | +<DEFINE GL (FILE "AUX" VAL (CH <OPEN "READ" .FILE>) L) |
| 12 | + <SET L |
| 13 | + <MAPF ,LIST |
| 14 | + <FUNCTION () |
| 15 | + <SET VAL <READ .CH '<MAPSTOP>>> |
| 16 | + <EVAL .VAL> |
| 17 | + .VAL>>> |
| 18 | + <SET <SET VAL <PARSE <7 .CH>>> .L> |
| 19 | + .VAL> |
| 20 | +<DEFINE FLUSHG (ATM "AUX" (G ..ATM)) |
| 21 | + <MAPF <> |
| 22 | + <FUNCTION (X) |
| 23 | + <COND (<AND <TYPE? .X FORM> |
| 24 | + <G? <LENGTH .X> 2> |
| 25 | + <MEMQ <1 .X> '![SETG DEFMAC DEFINE]>> |
| 26 | + <AND <MANIFEST? <2 .X>> |
| 27 | + <UNMANIFEST <2 .X>>> |
| 28 | + <GUNASSIGN <2 .X>>)>> |
| 29 | + .G> |
| 30 | + <UNASSIGN <REMOVE .ATM>>> |
| 31 | +%%<ENDBLOCK> |
| 32 | +<GL!-FROBOZZ "PRIM.NBIN"> |
| 33 | +<GL!-FROBOZZ "MAKSTR.NBIN"> |
| 34 | +<FLOAD "ZORK.XGBIN"> |
| 35 | +<FLUSHG!-FROBOZZ PRIM> |
| 36 | +<FLUSHG!-FROBOZZ MAKSTR> |
| 37 | +<FLOAD "TYPHAK.NBIN"> |
| 38 | +<MAPF <> <FUNCTION (X) |
| 39 | + <MAPF <> <FUNCTION (X) |
| 40 | + <COND (<GBOUND? .X> <PUT-DECL <GLOC .X> ANY>)>> |
| 41 | + .X>> |
| 42 | + <GET INITIAL OBLIST>> |
| 43 | +<CLEANUP> |
| 44 | +<PRINT-CLEANUP> |
| 45 | +%%<SET X ,PURELST> |
| 46 | +<GROUP-PURIFY X> |
| 47 | +<GL!-FROBOZZ "PRIM.NBIN"> |
| 48 | +<GL!-FROBOZZ "MAKSTR.NBIN"> |
| 49 | +<FLOAD "DUNG"> |
| 50 | +<SETG END-GAME-EXISTS? T> |
| 51 | +%%<BLOCK (<GET FROBOZZ OBLIST> <GET INITIAL OBLIST> <ROOT>)> |
| 52 | +<DEFINE ROOM-FROB (RM L "AUX" TL) |
| 53 | + <COND (<SET TL <MEMBER <RDESC1 .RM> .L>> |
| 54 | + <PUT .RM ,RDESC1 <1 .TL>>) |
| 55 | + (<SET L (<RDESC1 .RM> !.L)>)> |
| 56 | + <COND (<SET TL <MEMBER <RDESC2 .RM> .L>> |
| 57 | + <PUT .RM ,RDESC2 <1 .TL>>) |
| 58 | + (<SET L (<RDESC2 .RM> !.L)>)> |
| 59 | + <MAPR <> |
| 60 | + <FUNCTION (Y "AUX" (X <1 .Y>)) |
| 61 | + <COND (<AND <TYPE? .X CEXIT> <CXSTR .X>> |
| 62 | + <COND (<SET TL <MEMBER <CXSTR .X> .L>> |
| 63 | + <PUT .X ,CXSTR <1 .TL>>) |
| 64 | + (<SET L (<CXSTR .X> !.L)>)>) |
| 65 | + (<AND <TYPE? .X DOOR> <DSTR .X>> |
| 66 | + <COND (<SET TL <MEMBER <DSTR .X> .L>> |
| 67 | + <PUT .X ,DSTR <1 .TL>>) |
| 68 | + (<SET L (<DSTR .X> !.L)>)>) |
| 69 | + (<TYPE? .X NEXIT> |
| 70 | + <COND (<SET TL <MEMBER .X .L>> |
| 71 | + <PUT .Y 1 <1 .TL>>) |
| 72 | + (<SET L (.X !.L)>)>)>> |
| 73 | + <REXITS .RM>> |
| 74 | + .L> |
| 75 | +<DEFINE OBJECT-FROB (OBJ L "AUX" TL TEMP) |
| 76 | + <COND (<SET TL <MEMBER <ODESC1 .OBJ> .L>> |
| 77 | + <OPUT .OBJ ODESC1 <1 .TL>>) |
| 78 | + (<SET L (<ODESC1 .OBJ> !.L)>)> |
| 79 | + <COND (<SET TL <MEMBER <ODESC2 .OBJ> .L>> |
| 80 | + <PUT .OBJ ,ODESC2 <1 .TL>>) |
| 81 | + (<SET L (<ODESC2 .OBJ> !.L)>)> |
| 82 | + <COND (<SET TL <MEMBER <ODESCO .OBJ> .L>> |
| 83 | + <OPUT .OBJ ODESCO <1 .TL>>) |
| 84 | + (<SET L (<ODESCO .OBJ> !.L)>)> |
| 85 | + <COND (<SET TEMP <OREAD .OBJ>> |
| 86 | + <SET L (.TEMP !.L)>)> |
| 87 | + <COND (<SET TEMP <OFMSGS .OBJ>> |
| 88 | + <SET L (.TEMP !.L)>)> |
| 89 | + .L> |
| 90 | +%%<ENDBLOCK> |
| 91 | +<GL!-FROBOZZ "DISP1.GBIN"> |
| 92 | +<DISPATCH-HACK> |
| 93 | +<FLUSHG!-FROBOZZ PRIM> |
| 94 | +<FLUSHG!-FROBOZZ MAKSTR> |
| 95 | +<FLUSHG!-FROBOZZ DISP1> |
| 96 | +<SET Y ()> |
| 97 | +<SETG FF "; \\\"Dungeon\\\""> |
| 98 | +%%<MAPF <> |
| 99 | + <FUNCTION (X) |
| 100 | + <SET Y <ROOM-FROB!-FROBOZZ .X .Y>>> |
| 101 | + ,ROOMS> |
| 102 | +%%<MAPF <> |
| 103 | + <FUNCTION (X) |
| 104 | + <SET Y <OBJECT-FROB!-FROBOZZ .X .Y>>> |
| 105 | + ,OBJECTS> |
| 106 | +%%<PUT <PUT FROBOZZ OBLIST> OBLIST> |
| 107 | +%%<MAPR <> |
| 108 | + <FUNCTION (X) |
| 109 | + <PUT .X 1 ,<1 .X>>> |
| 110 | + ,PURE-LIST> |
| 111 | +%%<PUTREST <REST ,PURE-LIST <- <LENGTH ,PURE-LIST> 1>> .Y> |
| 112 | +%%<SET Y <IVECTOR <LENGTH ,PURE-LIST>>> |
| 113 | +%%<MAPR <> |
| 114 | + <FUNCTION (X Y) |
| 115 | + <PUT .X 1 <1 .Y>>> |
| 116 | + .Y ,PURE-LIST> |
| 117 | +%%<SETG PURE-LIST .Y> |
| 118 | +<UNASSIGN <REMOVE Y>> |
| 119 | +<LENGTH ,PURE-LIST> |
| 120 | +%%<PURIFY ,PURE-LIST ,DISPATCH-TABLE> |
| 121 | +<KILL:PURITY> |
| 122 | +<FLUSH-CLEANUP> |
| 123 | +<UNASSIGN X> |
| 124 | +<REMOVE <GUNASSIGN PURE-LIST>> |
| 125 | +<REMOVE <UNASSIGN FOO>> |
| 126 | +<DEFINE F (BAR) <GUNASSIGN <REMOVE .BAR>>> |
| 127 | +<F DROP> |
| 128 | +<F L-UNUSE> |
| 129 | +<F USE> |
| 130 | +<F ENTRY> |
| 131 | +<F PACKAGE> |
| 132 | +<F ENDPACKAGE> |
| 133 | +<F FIND/LOAD> |
| 134 | +<F F> |
| 135 | +<HANDLER <GET ERROR!-INTERRUPTS INTERRUPT> ,ERRH> |
| 136 | +<SETG MUD-HAND <OFF <3 <GET ,INCHAN INTERRUPT>>>> |
| 137 | +<SETG ZORK-HAND <OFF <HANDLER <GET ,INCHAN INTERRUPT> ,CTRL-S>>> |
| 138 | +<GC 0 T> |
| 139 | +<SETG DBG <>> |
| 140 | +<GC-MON T> |
| 141 | +<BLOAT 0 0 0 0 0 300> |
| 142 | +<SAVE-IT "<TAA>MADADV.SAVE" <>> |
| 143 | +<QUIT> |
| 144 | +DEL ZORK.XGBIN |
| 145 | +EXP |
0 commit comments