.FUNCT MAIN-LOOP:ANY:0:0,TRASH ?PRG1: CALL1 MAIN-LOOP-1 >TRASH JUMP ?PRG1 .FUNCT MAIN-LOOP-1:ANY:0:0,ICNT,OCNT,NUM,CNT,OBJ,TBL,V,PTBL,OBJ1,TMP,O,I SET 'CNT,0 SET 'OBJ,FALSE-VALUE SET 'PTBL,TRUE-VALUE CALL1 PARSER >P-WON ZERO? P-WON /?CCL3 GET P-PRSI,P-MATCHLEN >ICNT GET P-PRSO,P-MATCHLEN >OCNT ZERO? P-IT-OBJECT /?PRD7 CALL2 ACCESSIBLE?,P-IT-OBJECT ZERO? STACK \?CCL5 ?PRD7: ZERO? P-HIM-OBJECT /?PRD10 CALL2 ACCESSIBLE?,P-HIM-OBJECT ZERO? STACK \?CCL5 ?PRD10: ZERO? P-HER-OBJECT /?CND4 CALL2 ACCESSIBLE?,P-HER-OBJECT ZERO? STACK /?CND4 ?CCL5: SET 'TMP,FALSE-VALUE ?PRG15: IGRTR? 'CNT,ICNT /?REP16 GET P-PRSI,CNT EQUAL? STACK,IT \?CCL22 ZERO? P-IT-OBJECT /?CCL22 PUT P-PRSI,CNT,P-IT-OBJECT SET 'TMP,TRUE-VALUE JUMP ?REP16 ?CCL22: GET P-PRSI,CNT EQUAL? STACK,HIM \?CCL26 ZERO? P-HIM-OBJECT /?CCL26 PUT P-PRSI,CNT,P-HIM-OBJECT SET 'TMP,TRUE-VALUE JUMP ?REP16 ?CCL26: GET P-PRSI,CNT EQUAL? STACK,HER \?PRG15 ZERO? P-HER-OBJECT /?PRG15 PUT P-PRSI,CNT,P-HER-OBJECT SET 'TMP,TRUE-VALUE ?REP16: ZERO? TMP \?CND32 SET 'CNT,0 ?PRG34: IGRTR? 'CNT,OCNT /?CND32 GET P-PRSI,CNT EQUAL? STACK,IT \?CCL41 ZERO? P-IT-OBJECT /?CCL41 PUT P-PRSI,CNT,P-IT-OBJECT JUMP ?CND32 ?CCL41: GET P-PRSI,CNT EQUAL? STACK,HIM \?CCL45 ZERO? P-HIM-OBJECT /?CCL45 PUT P-PRSI,CNT,P-HIM-OBJECT JUMP ?CND32 ?CCL45: GET P-PRSI,CNT EQUAL? STACK,HER \?PRG34 ZERO? P-HER-OBJECT /?PRG34 PUT P-PRSI,CNT,P-HER-OBJECT ?CND32: SET 'CNT,0 ?CND4: ZERO? OCNT \?CCL53 SET 'NUM,OCNT JUMP ?CND51 ?CCL53: GRTR? OCNT,1 \?CCL55 SET 'TBL,P-PRSO ZERO? ICNT \?CCL58 SET 'OBJ,FALSE-VALUE JUMP ?CND56 ?CCL58: GET P-PRSI,1 >OBJ ?CND56: SET 'NUM,OCNT JUMP ?CND51 ?CCL55: GRTR? ICNT,1 \?CCL60 SET 'PTBL,FALSE-VALUE SET 'TBL,P-PRSI GET P-PRSO,1 >OBJ SET 'NUM,ICNT JUMP ?CND51 ?CCL60: SET 'NUM,1 ?CND51: ZERO? OBJ \?CND61 EQUAL? ICNT,1 \?CND61 GET P-PRSI,1 >OBJ ?CND61: EQUAL? PRSA,V?WALK \?CCL67 ZERO? P-WALK-DIR /?CCL67 CALL PERFORM,PRSA,PRSO >V JUMP ?CND65 ?CCL67: ZERO? NUM \?CCL71 GETB P-SYNTAX,P-SBITS BAND STACK,P-SONUMS ZERO? STACK \?CCL74 CALL2 PERFORM,PRSA >V SET 'PRSO,FALSE-VALUE JUMP ?CND65 ?CCL74: ZERO? LIT \?CCL76 PRINTI "Es ist zu dunkel, um etwas zu sehen." CRLF JUMP ?CND65 ?CCL76: ICALL1 REFERRING SET 'V,FALSE-VALUE JUMP ?CND65 ?CCL71: SET 'P-NOT-HERE,0 SET 'P-MULT,FALSE-VALUE GRTR? NUM,1 \?CND77 SET 'P-MULT,TRUE-VALUE ?CND77: SET 'TMP,FALSE-VALUE ?PRG79: IGRTR? 'CNT,NUM \?CCL83 GRTR? P-NOT-HERE,0 \?CCL86 PRINTI "The " EQUAL? P-NOT-HERE,1 \?CCL89 PRINTI "Das" JUMP ?CND87 ?CCL89: PRINTI "Die" ?CND87: EQUAL? P-NOT-HERE,NUM /?CND90 PRINTI " andere " ?CND90: PRINTI "Ding" EQUAL? P-NOT-HERE,1 /?CND92 PRINTC 101 ?CND92: PRINTI " von dem du sprichst, " EQUAL? P-NOT-HERE,1 /?CCL96 PRINTI "sind" JUMP ?CND94 ?CCL96: PRINTI "ist" ?CND94: PRINTI " nicht hier." CRLF JUMP ?CND65 ?CCL86: ZERO? TMP \?CND65 PRINTI "Es gibt hier nichts, das man wegnehmen kann." CRLF JUMP ?CND65 ?CCL83: ZERO? PTBL /?CCL100 GET P-PRSO,CNT >OBJ1 JUMP ?CND98 ?CCL100: GET P-PRSI,CNT >OBJ1 ?CND98: ZERO? PTBL /?CCL103 SET 'O,OBJ1 JUMP ?CND101 ?CCL103: SET 'O,OBJ ?CND101: ZERO? PTBL /?CCL106 SET 'I,OBJ JUMP ?CND104 ?CCL106: SET 'I,OBJ1 ?CND104: GRTR? NUM,1 /?CCL108 GET P-ITBL,P-NC1 GET STACK,0 EQUAL? STACK,W?ALLES \?CND107 ?CCL108: LOC WINNER >V EQUAL? O,NOT-HERE-OBJECT \?CCL113 INC 'P-NOT-HERE JUMP ?PRG79 ?CCL113: EQUAL? PRSA,V?TAKE \?CCL115 ZERO? I /?CCL115 GET P-ITBL,P-NC1 GET STACK,0 EQUAL? STACK,W?ALLES \?CCL115 IN? O,I \?PRG79 ?CCL115: EQUAL? P-GETFLAGS,P-ALL \?CCL121 EQUAL? PRSA,V?TAKE \?CCL121 LOC O EQUAL? STACK,WINNER,HERE,V /?PRD126 LOC O EQUAL? STACK,I /?PRD126 LOC O FSET? STACK,SURFACEBIT \?PRG79 ?PRD126: FSET? O,TAKEBIT /?CCL121 FSET? O,TRYTAKEBIT \?PRG79 ?CCL121: EQUAL? OBJ1,IT \?CCL134 ICALL DPRINT,P-IT-OBJECT,FALSE-VALUE JUMP ?CND132 ?CCL134: EQUAL? OBJ1,HIM \?CCL136 ICALL DPRINT,P-HIM-OBJECT,FALSE-VALUE JUMP ?CND132 ?CCL136: EQUAL? OBJ1,HER \?CCL138 ICALL DPRINT,P-HER-OBJECT,FALSE-VALUE JUMP ?CND132 ?CCL138: ICALL DPRINT,OBJ1,FALSE-VALUE ?CND132: PRINTI ": " ?CND107: SET 'PRSO,O SET 'PRSI,I SET 'TMP,TRUE-VALUE CALL PERFORM,PRSA,PRSO,PRSI >V EQUAL? V,M-FATAL \?PRG79 ?CND65: EQUAL? V,M-FATAL /?CND141 LOC WINNER GETP STACK,P?ACTION CALL STACK,M-END >V ?CND141: EQUAL? V,M-FATAL \?CND1 SET 'P-CONT,FALSE-VALUE JUMP ?CND1 ?CCL3: SET 'P-CONT,FALSE-VALUE ?CND1: ICALL1 NULL-F ZERO? P-WON /FALSE EQUAL? PRSA,V?SUPER-BRIEF,V?BRIEF,V?TELL /TRUE EQUAL? PRSA,V?HINT,V?SAVE,V?VERBOSE /TRUE EQUAL? PRSA,V?QUIT,V?VERSION,V?HINTS-OFF /TRUE EQUAL? PRSA,V?SCRIPT,V?SCORE,V?RESTART /TRUE EQUAL? PRSA,V?RESTORE,V?UNSCRIPT /TRUE CALL1 CLOCKER >V RETURN V .FUNCT PERFORM:ANY:1:3,A,O,I,V,OA,OO,OI SET 'OA,PRSA SET 'OO,PRSO SET 'OI,PRSI ZERO? P-WALK-DIR \?CND1 EQUAL? IT,I,O \?CND1 ZERO? P-IT-OBJECT /?CTR6 CALL2 ACCESSIBLE?,P-IT-OBJECT ZERO? STACK \?CCL7 ?CTR6: ICALL1 REFERRING RETURN 2 ?CCL7: EQUAL? IT,O \?CCL13 SET 'O,P-IT-OBJECT JUMP ?CND1 ?CCL13: EQUAL? IT,I \?CND1 SET 'I,P-IT-OBJECT ?CND1: ZERO? P-WALK-DIR \?CND15 EQUAL? HIM,I,O \?CND15 ZERO? P-HIM-OBJECT /?CTR20 CALL2 ACCESSIBLE?,P-HIM-OBJECT ZERO? STACK \?CCL21 ?CTR20: ICALL1 REFERRING RETURN 2 ?CCL21: EQUAL? HIM,O \?CCL27 SET 'O,P-HIM-OBJECT JUMP ?CND15 ?CCL27: EQUAL? HIM,I \?CND15 SET 'I,P-HIM-OBJECT ?CND15: ZERO? P-WALK-DIR \?CND29 EQUAL? HER,I,O \?CND29 ZERO? P-HER-OBJECT /?CTR34 CALL2 ACCESSIBLE?,P-HER-OBJECT ZERO? STACK \?CCL35 ?CTR34: ICALL1 REFERRING RETURN 2 ?CCL35: EQUAL? HER,O \?CCL41 SET 'O,P-HER-OBJECT JUMP ?CND29 ?CCL41: EQUAL? HER,I \?CND29 SET 'I,P-HER-OBJECT ?CND29: SET 'PRSA,A SET 'PRSI,I SET 'PRSO,O EQUAL? NOT-HERE-OBJECT,PRSO,PRSI \?CCL45 CALL1 NOT-HERE-OBJECT-F >V ZERO? V \?CND43 ?CCL45: SET 'O,PRSO SET 'I,PRSI ICALL2 THIS-IS-IT,PRSO ICALL2 THIS-IS-IT,PRSI GETP WINNER,P?ACTION CALL STACK >V ZERO? V \?CND43 LOC WINNER GETP STACK,P?ACTION CALL STACK,M-BEG >V ZERO? V \?CND43 GET PREACTIONS,A CALL STACK >V ZERO? V \?CND43 ZERO? I /?CCL56 GETP I,P?ACTION CALL STACK >V ZERO? V \?CND43 ?CCL56: ZERO? O /?CCL60 EQUAL? A,V?WALK /?CCL60 LOC O ZERO? STACK /?CCL60 LOC O GETP STACK,P?CONTFCN CALL STACK >V ZERO? V \?CND43 ?CCL60: ZERO? O /?CCL66 EQUAL? A,V?WALK /?CCL66 GETP O,P?ACTION CALL STACK >V ZERO? V \?CND43 ?CCL66: GET ACTIONS,A CALL STACK >V ZERO? V /?CND43 ?CND43: SET 'PRSA,OA SET 'PRSO,OO SET 'PRSI,OI RETURN V .ENDI