Resident data ends at 1a0a, program starts at 1a0a, file ends at 6b2e Starting analysis pass at address 1a0a End of analysis pass, low address = 1a0a, high address = 5db0 [Start of code] Main routine R0001, 0 locals () STORE G08,#0d CALL R0027 -> -(SP) POP RTRUE Routine R0002, 7 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000) CALL R0025 -> -(SP) POP L0001: STORE L03,#00 DEC L03 L0002: JL L03,#09 [FALSE] L0003 INC L03 LOADB L01,L03 -> -(SP) STOREB G33,L03,(SP)+ JUMP L0002 L0003: NEW_LINE PRINT_CHAR '>' READ L00,L01 LOADB L01,#01 -> L02 JE L02,#00 [FALSE] L0004 PRINT "I beg your pardon? " JUMP L0001 L0004: LOADW L01,#01 -> L04 JE L04,"o","oops" [FALSE] L0005 JUMP L0006 L0005: RET L02 L0006: JE G31,#00 [FALSE] L0007 PRINT "Sorry, that can't be corrected. " JUMP L0001 L0007: JE L02,#01 [FALSE] L0008 PRINT "Think nothing of it. " JUMP L0001 L0008: JG L02,#02 [FALSE] L0009 PRINT ""Oops" can only correct a single word. " JUMP L0001 L0009: LOADW L01,#03 -> L05 LOADW L01,#04 -> L06 STORE L03,#00 DEC L03 L0010: JL L03,#09 [FALSE] L0011 INC L03 LOADB G33,L03 -> -(SP) STOREB L01,L03,(SP)+ JUMP L0010 L0011: MUL #02,G31 -> -(SP) SUB (SP)+,#01 -> L04 STOREW L01,L04,L05 INC L04 STOREW L01,L04,L05 RET L02 Routine R0003, 10 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000) JE G1c,#01 [FALSE] L0003 STORE L05,#00 DEC L05 L0001: JL L05,#07 [FALSE] L0002 INC L05 LOADB G40,L05 -> -(SP) STOREB L00,L05,(SP)+ JUMP L0001 L0002: STORE G1c,#00 RTRUE L0003: CALL R0002 (G10,G11) -> -(SP) POP L0004: STORE G49,#01 LOADB G11,#01 -> G24 STORE G26,#01 STORE G14,G08 L0005: STORE G23,G26 CALL R0020 -> G25 JE G25,"g" [FALSE] L0006 STORE G25,"again" L0006: JE G25,"again" [FALSE] L0010 LOADB G22,#01 -> L06 JE L06,#00 [FALSE] L0007 PRINT "You can hardly repeat that. " JUMP L0003 L0007: STORE L05,#00 DEC L05 L0008: JL L05,#3f [FALSE] L0009 INC L05 LOADB G22,L05 -> L06 STOREB G11,L05,L06 JUMP L0008 L0009: JUMP L0004 L0010: JE G25,"again" [TRUE] L0012 STORE L05,#00 DEC L05 L0011: JL L05,#3f [FALSE] L0012 INC L05 LOADB G11,L05 -> L06 STOREB G22,L05,L06 JUMP L0011 L0012: JE G25,#00 [FALSE] L0013 STORE G49,#0b JUMP L0050 L0013: LOADB G25,#04 -> -(SP) AND (SP)+,#01 -> L05 JE L05,#00 [FALSE] L0025 STORE G23,G26 CALL R0011 (#01,#00,#00) -> L08 JE L08,#03e8 [FALSE] L0014 JUMP L0004 L0014: JE L08,#00 [TRUE] L0015 STOREB L00,#00,#1b STOREB L00,#01,#01 STOREB L00,#02,L08 RTRUE L0015: JE G14,G08 [FALSE] L0018 STORE L06,#02 DEC L06 L0016: JL L06,G24 [FALSE] L0018 INC L06 CALL R0020 -> L05 JE L05,"xcomma" [FALSE] L0017 JUMP L0019 L0017: JUMP L0016 L0018: STORE G49,#0b JUMP L0050 L0019: SUB G23,#01 -> L06 JE L06,#01 [FALSE] L0020 PRINT "You can't begin with a comma. " JUMP L0003 L0020: STORE G23,#01 STORE G3d,#01 CALL R0011 (G08,G00,#06) -> L08 JE L08,#03e8 [FALSE] L0021 JUMP L0004 L0021: JE L08,#00 [FALSE] L0022 PRINT "You seem to want to talk to someone, but I can't see whom. " JUMP L0003 L0022: TEST_ATTR L08,#04 [TRUE] L0023 TEST_ATTR L08,#1c [TRUE] L0023 PRINT "You can't talk to " CALL R0040 (L08) -> -(SP) POP PRINT ". " JUMP L0003 L0023: JE G23,L06 [TRUE] L0024 PRINT "To talk to someone, try "someone, hello" or some such. " JUMP L0003 L0024: CALL R0022 (L08) -> -(SP) POP ADD L06,#01 -> G26 STORE G14,L08 JUMP L0005 L0025: LOADB G25,#04 -> -(SP) AND (SP)+,#02 -> G1e LOADB G25,#05 -> -(SP) SUB #ff,(SP)+ -> L05 LOADW #00,#07 -> -(SP) LOADW (SP)+,L05 -> L01 LOADB L01,#00 -> -(SP) SUB (SP)+,#01 -> L03 STORE G38,"it" STORE G39,G3a STORE L02,#00 DEC L02 L0026: JL L02,L03 [FALSE] L0050 INC L02 MUL L02,#08 -> -(SP) ADD #01,(SP)+ -> -(SP) ADD L01,(SP)+ -> L04 STORE G3f,#00 STORE G2f,#00 STORE G2e,#00 STORE G29,#00 ADD G26,#01 -> G23 STORE G2b,#01 DEC G2b L0027: JL G2b,#06 [FALSE] L0049 INC G2b STOREW G2a,G2b,#00 LOADB L04,G2b -> L07 ADD G2b,#01 -> L09 STORE G3d,#08 JG L09,#06 [TRUE] L0028 LOADB L04,L09 -> G3d L0028: JE G3d,#00 [FALSE] L0030 STORE L09,G2e JG L07,#07 [TRUE] L0029 INC L09 L0029: LOADB L04,#00 -> -(SP) JL L09,(SP)+ [TRUE] L0030 STORE G3d,#08 L0030: JG L07,#07 [FALSE] L0034 ADD #03e8,L07 -> -(SP) STOREW G2a,G2b,(SP)+ JG G23,G24 [FALSE] L0032 JE G2f,#00 [FALSE] L0031 LOADB L04,#00 -> -(SP) JL G2e,(SP)+ [FALSE] L0031 STORE G2f,G2b STORE G30,L07 L0031: JE G2f,#00 [FALSE] L0032 JUMP L0049 L0032: JG G23,G24 [TRUE] L0033 CALL R0018 -> -(SP) JE L07,(SP)+ [TRUE] L0033 JUMP L0049 L0033: JUMP L0048 L0034: LOADB L04,#00 -> -(SP) JE G2e,(SP)+ [FALSE] L0045 JG G23,G24 [TRUE] L0037 STORE L09,#00 DEC L09 L0035: JL L09,#07 [FALSE] L0036 INC L09 LOADW G2a,L09 -> -(SP) STOREW G2c,L09,(SP)+ JUMP L0035 L0036: STORE G2d,G2b STORE G49,#02 JUMP L0049 L0037: JE G29,#01 [FALSE] L0039 STORE G23,G41 STORE L07,G42 CALL R0004 (L00,L07) -> L08 JE L08,#03e8 [FALSE] L0038 JUMP L0004 L0038: JE L08,#00 [FALSE] L0039 JUMP L0049 L0039: JE G2f,#00 [TRUE] L0040 PRINT "(" CALL R0005 (G2f,#01) -> -(SP) POP PRINT ") " L0040: LOADB L04,#00 -> -(SP) STOREB L00,#01,(SP)+ LOADB L04,#07 -> -(SP) STOREB L00,#00,(SP)+ JG G2e,#00 [FALSE] L0041 LOADB L00,#02 -> L05 JL L05,#02 [TRUE] L0041 CALL R0022 (L05) -> -(SP) POP L0041: STORE G31,#00 JE G3f,#00 [TRUE] L0044 STORE G1c,#01 STORE L05,#00 DEC L05 L0042: JL L05,#07 [FALSE] L0043 INC L05 LOADB L00,L05 -> -(SP) STOREB G40,L05,(SP)+ JUMP L0042 L0043: STOREB L00,#01,#01 STOREB L00,#00,#0d STOREB L00,#02,G3f PRINT "(first taking " CALL R0040 (G3f) -> -(SP) POP PRINT ") " RTRUE L0044: RTRUE L0045: CALL R0004 (L00,L07) -> L08 JE L08,#03e8 [FALSE] L0046 JUMP L0004 L0046: JE L08,#00 [FALSE] L0047 JUMP L0049 L0047: JE G27,#01 [FALSE] L0048 ADD G2e,#02 -> -(SP) STOREB L00,(SP)+,#00 STOREW G2a,G2b,#00 ADD G2e,#01 -> G2e L0048: JUMP L0027 L0049: JUMP L0026 L0050: JE G14,G08 [TRUE] L0051 CALL R0021 (G26) -> G1a STORE G23,G26 CALL R0020 -> G19 STORE G15,#34 STORE G16,#01 STORE G17,G14 STORE G14,G08 RTRUE L0051: JE G49,#01 [FALSE] L0052 PRINT "I didn't understand that sentence. " STORE G31,#01 L0052: JE G49,#02 [FALSE] L0055 PRINT "I only understood you as far as wanting to " STORE L09,#00 DEC L09 L0053: JL L09,#07 [FALSE] L0054 INC L09 LOADW G2c,L09 -> -(SP) STOREW G2a,L09,(SP)+ JUMP L0053 L0054: STORE G2b,G2d CALL R0005 (#00,#01) -> -(SP) POP PRINT ". " L0055: JE G49,#03 [FALSE] L0056 PRINT "You can't see any such thing. " STORE G31,G32 L0056: JE G49,#04 [FALSE] L0057 PRINT "You seem to have said too little! " L0057: JE G49,#05 [FALSE] L0058 PRINT "You aren't holding that! " STORE G31,G32 L0058: JE G49,#06 [FALSE] L0059 PRINT "You can't use multiple objects with that verb. " L0059: JE G49,#07 [FALSE] L0060 PRINT "You can only use multiple objects once on a line. " L0060: JE G49,#08 [FALSE] L0061 PRINT "I'm not sure what "" PRINT_ADDR G38 PRINT "" refers to. " L0061: JE G49,#09 [FALSE] L0062 PRINT "You excepted something not included anyway! " L0062: JE G49,#0a [FALSE] L0063 PRINT "You can only do that to something animate. " L0063: JE G49,#0b [FALSE] L0064 PRINT "That's not a verb I recognise. " L0064: JE G49,#0c [FALSE] L0065 PRINT "That's not something you need to refer to in the course of this game. " L0065: JE G49,#0d [FALSE] L0066 PRINT "You can't see "" PRINT_ADDR G38 PRINT "" (" CALL R0040 (G39) -> -(SP) POP PRINT ") at the moment. " L0066: JUMP L0003 orphan code fragment: RTRUE Routine R0004, 6 locals (0000, 0000, 0000, 0000, 0000, 0000) STORE G27,#00 STORE L05,#00 L0001: CALL R0020 -> L04 DEC G23 JE L04,"it","them" [FALSE] L0002 STORE G38,L04 STORE G39,G3a JE G3a,#00 [FALSE] L0002 STORE G49,#08 RET #00 L0002: JE L04,"him" [FALSE] L0003 STORE G38,L04 STORE G39,G3b JE G3b,#00 [FALSE] L0003 STORE G49,#08 RET #00 L0003: JE L04,"her" [FALSE] L0004 STORE G38,L04 STORE G39,G3c JE G3c,#00 [FALSE] L0004 STORE G49,#08 RET #00 L0004: JE L04,"the" [FALSE] L0005 INC G23 JUMP L0001 L0005: STORE G3e,#00 JE L04,"a","an","any" [FALSE] L0006 INC G23 STORE G3e,#01 L0006: JE L04,"either" [FALSE] L0007 INC G23 STORE G3e,#01 L0007: JE L01,#07 [FALSE] L0008 CALL R0021 (G23) -> G1a CALL R0020 -> G19 ADD G2e,#02 -> -(SP) STOREB L00,(SP)+,#01 ADD G2e,#01 -> G2e STOREW G2a,G2b,#01 JUMP L0041 L0008: STORE G28,#00 JE L04,G43 [FALSE] L0009 STORE L04,"all" STORE G28,G46 L0009: JE L04,G44 [FALSE] L0010 STORE L04,"all" STORE G28,G47 L0010: JE L04,G45 [FALSE] L0011 STORE L04,"all" STORE G28,G48 L0011: JE L04,"everyt","both","all" [FALSE] L0029 JL L01,#02 [FALSE] L0012 STORE G49,#06 RET #00 L0012: JL L01,#06 [TRUE] L0013 STORE G49,#06 RET #00 L0013: INC G29 JG G29,#02 [FALSE] L0014 STORE G49,#07 RET #00 L0014: JE G29,#01 [FALSE] L0015 STORE G41,G23 STORE G42,L01 CALL R0007 (G00) -> -(SP) POP L0015: JE G29,#02 [FALSE] L0021 JE L01,#02 [FALSE] L0017 JE G00,#0c [FALSE] L0016 CALL R0007 (G00) -> -(SP) POP JUMP L0017 L0016: GET_PARENT G08 -> -(SP) CALL R0007 ((SP)+) -> -(SP) POP L0017: JE L01,#03 [FALSE] L0018 CALL R0007 (G14) -> -(SP) POP L0018: JE L01,#04 [FALSE] L0019 CALL R0007 (G14) -> -(SP) POP LOADB L00,#03 -> -(SP) GET_PARENT (SP)+ -> L04 JE L04,G14 [FALSE] L0019 LOADB L00,#03 -> -(SP) CALL R0009 ((SP)+) -> -(SP) POP L0019: JE L01,#05 [FALSE] L0020 LOADB L00,#03 -> -(SP) CALL R0007 ((SP)+) -> -(SP) POP L0020: JE G28,#00 [TRUE] L0021 CALL R0010 (G28) -> -(SP) POP L0021: INC G23 L0022: CALL R0020 -> L04 JE L04,"the","of" [FALSE] L0023 JUMP L0022 L0023: JE L04,G43 [FALSE] L0024 CALL R0010 (G46) -> -(SP) POP JUMP L0022 L0024: JE L04,G44 [FALSE] L0025 CALL R0010 (G47) -> -(SP) POP JUMP L0022 L0025: JE L04,G45 [FALSE] L0026 CALL R0010 (G48) -> -(SP) POP JUMP L0022 L0026: JE L04,"except" [FALSE] L0027 STORE L04,"but" L0027: JE L04,"but" [FALSE] L0028 STORE L05,#02 JUMP L0001 L0028: SUB G23,#01 -> G23 JUMP L0048 L0029: STORE G31,G23 JE L01,#01 [TRUE] L0036 CALL R0011 (G00,G14,L01) -> L02 JE L02,#03e8 [FALSE] L0030 RET L02 L0030: JE L02,#00 [FALSE] L0031 CALL R0006 -> G49 RET #00 L0031: JE L02,#01 [FALSE] L0032 ADD G2e,#02 -> -(SP) STOREB L00,(SP)+,#00 ADD G2e,#01 -> G2e STOREW G2a,G2b,#00 RET #01 L0032: JE L01,#06 [FALSE] L0033 TEST_ATTR L02,#04 [TRUE] L0033 STORE G49,#0a RET #00 L0033: JE L05,#00 [FALSE] L0034 ADD G2e,#02 -> -(SP) STOREB L00,(SP)+,L02 ADD G2e,#01 -> G2e STOREW G2a,G2b,L02 L0034: JE L05,#01 [FALSE] L0035 CALL R0008 (L02) -> -(SP) POP L0035: JE L05,#02 [FALSE] L0036 CALL R0009 (L02) -> L03 JE G29,#01 [TRUE] L0036 JE L03,#00 [TRUE] L0036 STORE G49,L03 RET #00 L0036: JE L01,#01 [FALSE] L0041 CALL R0011 (G14,G00,L01) -> L02 JE L02,#03e8 [FALSE] L0037 RET L02 L0037: JE L02,#00 [FALSE] L0038 CALL R0006 -> G49 RET L02 L0038: GET_PARENT L02 -> L04 JE L04,G14 [TRUE] L0040 JE G1c,#01 [FALSE] L0039 STORE G32,G31 STORE G49,#05 RET #00 L0039: STORE G3f,L02 L0040: ADD G2e,#02 -> -(SP) STOREB L00,(SP)+,L02 ADD G2e,#01 -> G2e STOREW G2a,G2b,L02 L0041: CALL R0020 -> L04 CALL R0016 (L02,L04) -> -(SP) JE #00,(SP)+ [TRUE] L0042 JUMP L0041 L0042: JE L04,"and","xcomma" [FALSE] L0047 JL L01,#02 [FALSE] L0043 STORE G49,#06 RET #00 L0043: JL L01,#06 [TRUE] L0044 STORE G49,#06 RET #00 L0044: JE L05,#00 [FALSE] L0045 STORE L05,#01 L0045: JE G27,#00 [FALSE] L0046 STOREB G18,#00,#01 STOREB G18,#01,L02 SUB G2e,#01 -> G2e STORE G27,#01 L0046: JUMP L0001 L0047: SUB G23,#01 -> G23 L0048: RET #01 Routine R0005, 6 locals (0000, 0000, 0000, 0000, 0000, 0000) JE L00,#00 [FALSE] L0013 STORE L02,G25 STORE L00,#01 STORE L05,#01 JE L02,"invent" [FALSE] L0001 PRINT "take an inventory" JUMP L0013 L0001: JE L02,"examin" [FALSE] L0002 PRINT "examine" JUMP L0013 L0002: JE L02,"discar" [FALSE] L0003 PRINT "discard" JUMP L0013 L0003: JE L02,"swallo" [FALSE] L0004 PRINT "swallow" JUMP L0013 L0004: JE L02,"embrac" [FALSE] L0005 PRINT "embrace" JUMP L0013 L0005: JE L02,"squeez" [FALSE] L0006 PRINT "squeeze" JUMP L0013 L0006: JE L02,"purcha" [FALSE] L0007 PRINT "purchase" JUMP L0013 L0007: JE L02,"unscre" [FALSE] L0008 PRINT "unscrew" JUMP L0013 L0008: JE L02,"descri" [FALSE] L0009 PRINT "describe" JUMP L0013 L0009: JE L02,"uncove" [FALSE] L0010 PRINT "uncover" JUMP L0013 L0010: JE L02,"discar" [FALSE] L0011 PRINT "discard" JUMP L0013 L0011: JE L02,"transf" [FALSE] L0012 PRINT "transfer" JUMP L0013 L0012: PRINT_ADDR L02 L0013: SUB G2b,L01 -> L03 STORE L04,L00 DEC L04 L0014: JL L04,L03 [FALSE] L0021 INC L04 JE L05,#01 [FALSE] L0015 PRINT_CHAR ' ' L0015: LOADW G2a,L04 -> L02 JE L02,#00 [FALSE] L0016 PRINT "those things" JUMP L0020 L0016: JE L02,#01 [FALSE] L0017 PRINT "that" JUMP L0020 L0017: JL L02,#0100 [FALSE] L0018 CALL R0040 (L02) -> -(SP) POP L0018: JL L02,#03e8 [TRUE] L0020 SUB L02,#03e8 -> -(SP) CALL R0019 ((SP)+) -> L02 JE L02,"agains" [FALSE] L0019 PRINT "against" JUMP L0020 L0019: PRINT_ADDR L02 L0020: STORE L05,#01 JUMP L0014 L0021: RTRUE Routine R0006, 3 locals (0000, 0000, 0000) STORE G32,G31 SUB G23,#01 -> G23 CALL R0020 -> L01 STORE L02,#03 JE L01,G38 [FALSE] L0001 STORE L02,#0d L0001: GET_PARENT G14 -> L00 TEST_ATTR L00,#13 [FALSE] L0002 CALL R0016 (L00,L01) -> -(SP) JE #00,(SP)+ [TRUE] L0002 STORE L02,#0c L0002: RET L02 Routine R0007, 1 local (0000) STORE G27,#01 STOREB G18,#00,#00 GET_CHILD L00 -> L00 [TRUE] L0001 L0001: JE L00,#00 [TRUE] L0004 TEST_ATTR L00,#01 [TRUE] L0002 TEST_ATTR L00,#02 [TRUE] L0002 CALL R0008 (L00) -> -(SP) POP L0002: GET_SIBLING L00 -> L00 [TRUE] L0003 L0003: JUMP L0001 L0004: RTRUE Routine R0008, 3 locals (0000, 0000, 0000) LOADB G18,#00 -> L01 JE L01,#3f [FALSE] L0001 STORE G13,#01 RTRUE L0001: STORE L02,#01 DEC L02 L0002: JL L02,L01 [FALSE] L0004 INC L02 LOADB G18,L02 -> -(SP) JE L00,(SP)+ [FALSE] L0003 RTRUE L0003: JUMP L0002 L0004: ADD L01,#01 -> L01 STOREB G18,L01,L00 STOREB G18,#00,L01 RTRUE Routine R0009, 5 locals (0000, 0000, 0000, 0000, 0000) LOADB G18,#00 -> L01 STORE L04,#00 STORE L02,#01 DEC L02 L0001: JL L02,L01 [FALSE] L0005 INC L02 LOADB G18,L02 -> -(SP) JE L00,(SP)+ [FALSE] L0004 STORE L03,L02 DEC L03 L0002: JL L03,L01 [FALSE] L0003 INC L03 ADD L03,#01 -> -(SP) LOADB G18,(SP)+ -> -(SP) STOREB G18,L03,(SP)+ JUMP L0002 L0003: SUB L01,#01 -> L01 STOREB G18,#00,L01 RET L04 L0004: JUMP L0001 L0005: STORE L04,#09 RET L04 Routine R0010, 4 locals (0000, 0000, 0000, 0000) L0001: LOADB G18,#00 -> L01 STORE L02,#01 DEC L02 L0002: JL L02,L01 [FALSE] L0004 INC L02 LOADB G18,L02 -> L03 TEST_ATTR L03,L00 [TRUE] L0003 CALL R0009 (L03) -> -(SP) POP JUMP L0001 L0003: JUMP L0002 L0004: RTRUE Routine R0011, 9 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000) STORE G36,#00 STORE G35,#00 STORE G37,G23 CALL R0014 (L00) -> -(SP) POP CALL R0014 (L01) -> -(SP) POP ADD G37,G36 -> G23 JE G35,#00 [FALSE] L0001 INC G23 RFALSE L0001: JG G37,G24 [TRUE] L0005 JE G35,#01 [FALSE] L0002 LOADB G34,#00 -> L04 RET L04 L0002: JG G23,G24 [TRUE] L0005 JE G3d,#08 [FALSE] L0003 RFALSE L0003: JG G3d,#08 [FALSE] L0005 CALL R0018 -> -(SP) JE G3d,(SP)+ [TRUE] L0004 DEC G23 RFALSE L0004: DEC G23 L0005: JE G35,#01 [FALSE] L0006 LOADB G34,#00 -> L04 L0006: JG G35,#01 [FALSE] L0007 CALL R0012 (L02) -> L04 L0007: JE L04,#00 [TRUE] L0009 JE G2f,#00 [FALSE] L0008 STORE G2f,G2b L0008: STOREW G2a,G2b,L04 RET L04 L0009: JG G37,G24 [FALSE] L0010 JUMP L0027 L0010: JE L02,#06 [FALSE] L0011 PRINT "Who" JUMP L0012 L0011: PRINT "Which" L0012: PRINT " do you mean, " SUB G35,#01 -> L05 STORE L04,#00 DEC L04 L0013: JL L04,L05 [FALSE] L0016 INC L04 LOADB G34,L04 -> L06 CALL R0040 (L06) -> -(SP) POP SUB L05,#01 -> -(SP) JL L04,(SP)+ [FALSE] L0014 PRINT ", " L0014: SUB L05,#01 -> -(SP) JE L04,(SP)+ [FALSE] L0015 PRINT " or " L0015: JUMP L0013 L0016: PRINT "? " L0017: CALL R0002 (G20,G21) -> L08 LOADW G21,#01 -> L03 JE L03,"all","both","everyt" [FALSE] L0021 JL L02,#02 [TRUE] L0020 JG L02,#05 [TRUE] L0020 STORE L04,#00 DEC L04 L0018: JL L04,L05 [FALSE] L0019 INC L04 LOADB G34,L04 -> L06 ADD L04,#01 -> -(SP) STOREB G18,(SP)+,L06 JUMP L0018 L0019: ADD L05,#01 -> -(SP) STOREB G18,#00,(SP)+ RET #01 L0020: PRINT "Sorry, you can only have one item here. Which one exactly? " JUMP L0017 L0021: LOADB L03,#04 -> L05 AND L05,#01 -> -(SP) JE #00,(SP)+ [TRUE] L0022 CALL R0024 (G10,G20) -> -(SP) POP CALL R0024 (G11,G21) -> -(SP) POP STORE L06,#03e8 RET L06 L0022: LOADB G11,#01 -> L07 ADD L08,L07 -> -(SP) STOREB G11,#01,(SP)+ ADD L07,L08 -> L06 L0023: JG L06,G37 [FALSE] L0024 SUB L06,L08 -> L04 CALL R0013 (L06,G11,L04) -> -(SP) POP DEC L06 JUMP L0023 L0024: STORE L06,#01 DEC L06 L0025: JL L06,L08 [FALSE] L0026 INC L06 SUB L06,#01 -> -(SP) ADD G37,(SP)+ -> L04 CALL R0013 (L04,G21,L06) -> -(SP) POP JUMP L0025 L0026: STORE L06,#03e8 RET L06 L0027: JE L02,#06 [FALSE] L0028 PRINT "Whom" JUMP L0029 L0028: PRINT "What" L0029: PRINT " do you want" JE G14,G08 [TRUE] L0030 PRINT " " CALL R0040 (G14) -> -(SP) POP L0030: PRINT " to " CALL R0005 (#00,#01) -> -(SP) POP PRINT "? " CALL R0002 (G20,G21) -> L08 LOADW G21,#01 -> L03 LOADB L03,#04 -> L05 AND L05,#01 -> -(SP) JE #00,(SP)+ [TRUE] L0031 CALL R0024 (G10,G20) -> -(SP) POP CALL R0024 (G11,G21) -> -(SP) POP STORE L06,#03e8 RET L06 L0031: LOADB G11,#01 -> L07 JE G2f,#00 [FALSE] L0033 STORE L06,#01 DEC L06 L0032: JL L06,L08 [FALSE] L0033 INC L06 SUB L06,#01 -> -(SP) ADD G37,(SP)+ -> L04 CALL R0013 (L04,G21,L06) -> -(SP) POP JUMP L0032 L0033: JE G2f,#00 [TRUE] L0036 STORE L06,#01 DEC L06 L0034: JL L06,L08 [FALSE] L0035 INC L06 ADD G37,L06 -> L04 CALL R0013 (L04,G21,L06) -> -(SP) POP JUMP L0034 L0035: CALL R0019 (G30) -> -(SP) STOREW G21,#01,(SP)+ CALL R0013 (G37,G21,#01) -> -(SP) POP INC L08 L0036: ADD L08,L07 -> -(SP) STOREB G11,#01,(SP)+ STORE L06,#03e8 RET L06 Routine R0012, 7 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000) SUB G35,#01 -> L02 STORE L03,#00 LOADB G34,#00 -> L04 STORE L01,#00 DEC L01 L0001: JL L01,L02 [FALSE] L0011 INC L01 LOADB G34,L01 -> L05 TEST_ATTR L05,#01 [TRUE] L0010 STORE L06,L05 L0002: GET_PARENT L06 -> L06 JE L06,G00 [TRUE] L0003 JE L06,G14 [TRUE] L0003 JE L06,#00 [TRUE] L0003 JUMP L0002 L0003: JE L00,#00 [FALSE] L0004 JE L06,G00 [FALSE] L0004 INC L03 STORE L04,L05 L0004: JE L00,#01 [FALSE] L0005 GET_PARENT L05 -> -(SP) JE (SP)+,G14 [FALSE] L0005 INC L03 STORE L04,L05 L0005: JE L00,#02 [FALSE] L0006 JE L06,G00 [FALSE] L0006 INC L03 STORE L04,L05 L0006: JE L00,#03 [FALSE] L0007 GET_PARENT L05 -> -(SP) JE (SP)+,G14 [FALSE] L0007 INC L03 STORE L04,L05 L0007: JE L00,#04 [FALSE] L0008 GET_PARENT L05 -> -(SP) JE (SP)+,G14 [FALSE] L0008 INC L03 STORE L04,L05 L0008: JE L00,#05 [FALSE] L0009 GET_PARENT L05 -> -(SP) JE (SP)+,G14 [FALSE] L0009 INC L03 STORE L04,L05 L0009: JE L00,#06 [FALSE] L0010 TEST_ATTR L05,#04 [FALSE] L0010 INC L03 STORE L04,L05 L0010: JUMP L0001 L0011: STORE L02,#00 JE L03,#01 [FALSE] L0012 STORE L02,L04 L0012: JE G3e,#01 [FALSE] L0013 STORE L02,L04 L0013: RET L02 Routine R0013, 5 locals (0000, 0000, 0000, 0000, 0000) MUL L00,#02 -> -(SP) SUB (SP)+,#01 -> L03 MUL L02,#02 -> -(SP) SUB (SP)+,#01 -> L04 LOADW L01,L04 -> -(SP) STOREW G11,L03,(SP)+ INC L03 INC L04 LOADW L01,L04 -> -(SP) STOREW G11,L03,(SP)+ RTRUE Routine R0014, 3 locals (0000, 0000, 0000) JE L00,G00 [FALSE] L0001 CALL R0014 (#01) -> -(SP) POP L0001: GET_CHILD L00 -> L00 [TRUE] L0002 L0002: JE L00,#00 [TRUE] L0017 JG G37,G24 [FALSE] L0003 CALL R0015 (L00,#01) -> -(SP) POP JUMP L0010 L0003: STORE G23,G37 CALL R0017 -> L01 JE L01,#01 [FALSE] L0004 JE G3a,L00 [FALSE] L0004 CALL R0015 (G3a,#01) -> -(SP) POP L0004: JE L01,#02 [FALSE] L0005 JE G3b,L00 [FALSE] L0005 CALL R0015 (G3b,#01) -> -(SP) POP L0005: JE L01,#03 [FALSE] L0006 JE G3c,L00 [FALSE] L0006 CALL R0015 (G3c,#01) -> -(SP) POP L0006: CALL R0016 (L00,L01) -> -(SP) JE #00,(SP)+ [FALSE] L0007 JUMP L0010 L0007: STORE L02,#00 L0008: CALL R0016 (L00,L01) -> -(SP) JE #00,(SP)+ [TRUE] L0009 CALL R0020 -> L01 INC L02 JUMP L0008 L0009: CALL R0015 (L00,L02) -> -(SP) POP L0010: TEST_ATTR L00,#0a [FALSE] L0011 JUMP L0013 L0011: TEST_ATTR L00,#09 [FALSE] L0015 TEST_ATTR L00,#0c [FALSE] L0012 JUMP L0013 L0012: TEST_ATTR L00,#0b [FALSE] L0013 JUMP L0015 L0013: GET_CHILD L00 -> -(SP) [TRUE] L0014 L0014: JE (SP)+,#00 [TRUE] L0015 CALL R0014 (L00) -> -(SP) POP L0015: GET_SIBLING L00 -> L00 [TRUE] L0016 L0016: JUMP L0002 L0017: RTRUE Routine R0015, 2 locals (0000, 0000) JL L01,G36 [FALSE] L0001 RTRUE L0001: JG L01,G36 [FALSE] L0002 STORE G36,L01 STORE G35,#00 L0002: STOREB G34,G35,L00 INC G35 RTRUE Routine R0016, 5 locals (0000, 0000, 0000, 0000, 0000) GET_PROP_ADDR L00,#01 -> L02 GET_PROP_LEN L02 -> -(SP) DIV (SP)+,#02 -> -(SP) SUB (SP)+,#01 -> L03 STORE L04,#00 DEC L04 L0001: JL L04,L03 [FALSE] L0003 INC L04 LOADW L02,L04 -> -(SP) JE L01,(SP)+ [FALSE] L0002 RTRUE L0002: JUMP L0001 L0003: RFALSE Routine R0017, 2 locals (0000, 0000) CALL R0020 -> L00 JE L00,"it","them" [FALSE] L0001 STORE L01,#01 RET L01 L0001: JE L00,"him" [FALSE] L0002 STORE L01,#02 RET L01 L0002: JE L00,"her" [FALSE] L0003 STORE L01,#03 RET L01 L0003: JE L00,#00 [FALSE] L0004 RFALSE L0004: LOADW L00,#04 -> L01 AND L01,#80 -> -(SP) JE (SP)+,#00 [FALSE] L0005 RFALSE L0005: RET L00 Routine R0018, 2 locals (0000, 0000) CALL R0020 -> L01 JE L01,#00 [FALSE] L0001 RFALSE L0001: LOADB L01,#04 -> L00 AND L00,#08 -> -(SP) JE (SP)+,#00 [FALSE] L0002 RFALSE L0002: LOADB L01,#06 -> -(SP) RET (SP)+ Routine R0019, 2 locals (0000, 0000) STORE L01,#1201 L0001: JE #01,#01 [FALSE] L0003 LOADW L01,#01 -> -(SP) JE L00,(SP)+ [FALSE] L0002 LOADW L01,#00 -> L01 RET L01 L0002: ADD L01,#04 -> L01 JUMP L0001 L0003: STORE L01,#1201 PRINT "" RET L01 Routine R0020, 3 locals (0000, 0000, 0000) LOADB G11,#01 -> -(SP) JG G23,(SP)+ [FALSE] L0001 INC G23 RFALSE L0001: MUL G23,#02 -> -(SP) SUB (SP)+,#01 -> L00 INC G23 LOADW G11,L00 -> L01 JE L01,#00 [FALSE] L0002 MUL G23,#04 -> -(SP) SUB (SP)+,#03 -> L02 LOADB G11,L02 -> -(SP) LOADB G10,(SP)+ -> L00 JE L00,#2c [FALSE] L0002 STORE L01,"xcomma" L0002: RET L01 Routine R0021, 10 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000) MUL L00,#04 -> -(SP) ADD (SP)+,#01 -> L01 LOADB G11,L01 -> L02 ADD L02,G10 -> L04 SUB L01,#01 -> -(SP) LOADB G11,(SP)+ -> L05 JL L05,#04 [TRUE] L0001 STORE L06,#03e8 L0001: JE L05,#03 [FALSE] L0002 STORE L06,#64 L0002: JE L05,#02 [FALSE] L0003 STORE L06,#0a L0003: JE L05,#01 [FALSE] L0004 STORE L06,#01 L0004: STORE L07,#00 STORE L03,#00 SUB L05,#01 -> L05 STORE L03,#00 DEC L03 L0005: JL L03,L05 [FALSE] L0017 INC L03 LOADB L04,L03 -> L09 JE L09,#30 [FALSE] L0006 STORE L08,#00 JUMP L0016 L0006: JE L09,#31 [FALSE] L0007 STORE L08,#01 JUMP L0016 L0007: JE L09,#32 [FALSE] L0008 STORE L08,#02 JUMP L0016 L0008: JE L09,#33 [FALSE] L0009 STORE L08,#03 JUMP L0016 L0009: JE L09,#34 [FALSE] L0010 STORE L08,#04 JUMP L0016 L0010: JE L09,#35 [FALSE] L0011 STORE L08,#05 JUMP L0016 L0011: JE L09,#36 [FALSE] L0012 STORE L08,#06 JUMP L0016 L0012: JE L09,#37 [FALSE] L0013 STORE L08,#07 JUMP L0016 L0013: JE L09,#38 [FALSE] L0014 STORE L08,#08 JUMP L0016 L0014: JE L09,#39 [FALSE] L0015 STORE L08,#09 JUMP L0016 L0015: RFALSE L0016: MUL L06,L08 -> -(SP) ADD L07,(SP)+ -> L07 DIV L06,#0a -> L06 JUMP L0005 L0017: JG L05,#03 [FALSE] L0018 STORE L07,#2710 L0018: RET L07 Routine R0022, 1 local (0000) TEST_ATTR L00,#04 [FALSE] L0003 CALL R0023 (L00) -> -(SP) JE (SP)+,#01 [FALSE] L0001 STORE G3b,L00 JUMP L0002 L0001: STORE G3c,L00 L0002: JUMP L0004 L0003: STORE G3a,L00 L0004: RTRUE Routine R0023, 2 locals (0000, 0000) TEST_ATTR L00,#05 [TRUE] L0001 STORE L01,#01 L0001: RET L01 Routine R0024, 4 locals (0000, 0000, 0000, 0000) LOADB L00,#00 -> L03 STORE L02,#01 DEC L02 L0001: JL L02,L03 [FALSE] L0002 INC L02 LOADB L01,L02 -> -(SP) STOREB L00,L02,(SP)+ JUMP L0001 L0002: RTRUE Routine R0025, 0 locals () JE G03,#ffff [FALSE] L0001 STORE G01,G06 STORE G02,G07 JUMP L0002 L0001: DIV G03,#3c -> G01 MOD G03,#3c -> G02 L0002: RTRUE Routine R0026, 2 locals (0000, 0000) STORE G03,L00 STORE G04,L01 STORE G05,#00 JL L01,#00 [FALSE] L0001 SUB #00,L01 -> G05 L0001: RTRUE Routine R0027, 5 locals (0000, 0000, 0000, 0000, 0000) CALL R0132 -> -(SP) POP INSERT_OBJ G08,G00 CALL R0032 -> -(SP) POP CALL R0073 -> -(SP) POP STORE L00,#01 DEC L00 L0001: JL L00,#64 [FALSE] L0002 INC L00 RANDOM L00 -> L01 JUMP L0001 L0002: JE G0a,#00 [FALSE] L0018 L0003: STORE G16,#00 STORE G17,#00 STORE G15,#00 CALL R0003 (G12) -> -(SP) POP STORE G1d,G1c STORE G1c,#00 JE G14,G08 [TRUE] L0005 LOADB G12,#00 -> G15 CALL R0029 (G14,#00) -> -(SP) JE (SP)+,#00 [FALSE] L0004 CALL R0041 (G14) -> -(SP) POP PRINT " has better things to do. " L0004: JUMP L0015 L0005: JE G13,#01 [FALSE] L0006 STORE G13,#00 PRINT "(taking the first sixteen objects only) " L0006: STORE L04,#00 JE G15,#00 [TRUE] L0007 STORE L04,#01 L0007: JE G15,#00 [FALSE] L0008 LOADB G12,#00 -> G15 L0008: JE L04,#00 [FALSE] L0009 LOADB G12,#01 -> L00 LOADB G12,#02 -> G16 LOADB G12,#03 -> G17 L0009: JE L04,#00 [TRUE] L0010 STORE L00,#02 L0010: STORE G1b,#00 JE L00,#00 [FALSE] L0011 CALL R0028 (#00,#00,G15) -> -(SP) POP L0011: JG L00,#00 [FALSE] L0015 JE G16,#00 [TRUE] L0012 CALL R0028 (G16,G17,G15) -> -(SP) POP L0012: JE G16,#00 [FALSE] L0015 STORE G1b,#01 LOADB G18,#00 -> L01 JE L01,#00 [FALSE] L0013 PRINT "Nothing to do! " JUMP L0003 L0013: STORE L02,#01 DEC L02 L0014: JL L02,L01 [FALSE] L0015 INC L02 LOADB G18,L02 -> L03 PRINT_OBJ L03 PRINT ": " CALL R0028 (L03,G17,G15) -> -(SP) POP JUMP L0014 L0015: JE G1c,#01 [FALSE] L0016 STORE G1e,#01 L0016: JE G0a,#00 [FALSE] L0017 JE G1e,#00 [FALSE] L0017 CALL R0033 -> -(SP) POP L0017: JUMP L0002 L0018: PRINT " ***" JE G0a,#01 [FALSE] L0019 PRINT " You have died " L0019: JE G0a,#02 [FALSE] L0020 PRINT " You have won " L0020: JG G0a,#02 [FALSE] L0021 PRINT " " CALL R0137 -> -(SP) POP PRINT " " L0021: PRINT "*** " CALL R0042 -> -(SP) POP L0022: PRINT " Would you like to RESTART, RESTORE a saved game, give the FULL score for that game" JE G0a,#02 [FALSE] L0023 PRINT ", see some suggestions for AMUSING things to do" L0023: PRINT " or QUIT? " L0024: PRINT_CHAR '?' PRINT_CHAR ' ' READ G10,G11 LOADW G11,#01 -> L00 JE L00,"quit" [FALSE] L0025 QUIT L0025: JE L00,"q" [FALSE] L0026 QUIT L0026: JE L00,"restar" [FALSE] L0027 RESTART L0027: JE L00,"restor" [FALSE] L0028 CALL R0048 -> -(SP) POP JUMP L0022 L0028: JE L00,"fullsc" [FALSE] L0029 CALL R0045 -> -(SP) POP JUMP L0022 L0029: JE G0a,#02 [FALSE] L0030 JE L00,"amusin" [FALSE] L0030 NEW_LINE CALL R0139 -> -(SP) POP JUMP L0022 L0030: JE L00,"full" [FALSE] L0031 NEW_LINE CALL R0045 -> -(SP) POP JUMP L0022 L0031: PRINT "Please answer RESTART, RESTORE, FULL" JE G0a,#02 [FALSE] L0032 PRINT ", AMUSING" L0032: PRINT " or QUIT. " JUMP L0024 orphan code fragment: RTRUE Routine R0028, 3 locals (0000, 0000, 0000) STORE G16,L00 STORE G17,L01 STORE G15,L02 JE G1e,#01 [FALSE] L0001 JUMP L0004 L0001: CALL R0140 -> -(SP) JE (SP)+,#00 [TRUE] L0002 RTRUE L0002: JE G00,#00 [TRUE] L0003 GET_PROP G00,#05 -> L00 JE L00,#ffff [TRUE] L0003 CALL L00 -> -(SP) JE (SP)+,#00 [TRUE] L0003 RTRUE L0003: JG G16,#01 [FALSE] L0004 GET_PROP G16,#05 -> L00 JE L00,#ffff [TRUE] L0004 CALL L00 -> -(SP) JE (SP)+,#00 [TRUE] L0004 RTRUE L0004: LOADW #10a7,G15 -> L01 CALL L01 -> -(SP) POP RTRUE Routine R0029, 3 locals (0000, 0000, 0000) STORE G1f,L01 GET_PROP L00,#07 -> L02 JE L02,#ffff [TRUE] L0001 CALL L02 -> -(SP) JE (SP)+,#00 [TRUE] L0001 RTRUE L0001: RFALSE Routine R0030, 2 locals (0000, 0000) STORE L01,G00 GET_PROP L01,#06 -> L00 JE L00,#ffff [FALSE] L0001 JUMP L0002 L0001: CALL L00 -> -(SP) JE (SP)+,#00 [TRUE] L0002 RTRUE L0002: STORE L01,#00 LOADB G12,#01 -> L00 JG L00,#00 [FALSE] L0003 STORE L01,G16 L0003: JL L01,#02 [FALSE] L0004 RFALSE L0004: GET_PROP L01,#06 -> L00 JE L00,#ffff [FALSE] L0005 RFALSE L0005: CALL L00 -> -(SP) JE (SP)+,#00 [TRUE] L0006 RTRUE L0006: CALL R0162 -> -(SP) RET (SP)+ Routine R0031, 2 locals (0000, 0000) STORE L01,G00 JE L01,#00 [FALSE] L0001 RFALSE L0001: GET_PROP L01,#06 -> L00 JE L00,#ffff [FALSE] L0002 RFALSE L0002: CALL L00 -> -(SP) JE (SP)+,#00 [TRUE] L0003 RTRUE L0003: CALL R0162 -> -(SP) RET (SP)+ Routine R0032, 1 local (0000) PRINT_PADDR S001 PRINT_PADDR S002 PRINT "Release " LOADW #00,#01 -> -(SP) AND (SP)+,#03ff -> -(SP) PRINT_NUM (SP)+ PRINT " / Serial number " STORE L00,#12 DEC L00 L0001: JL L00,#17 [FALSE] L0002 INC L00 LOADB #00,L00 -> -(SP) PRINT_CHAR (SP)+ JUMP L0001 L0002: PRINT " (Compiled by Inform v" PRINT "798" PRINT ") " RTRUE Routine R0033, 1 local (0000) INC G07 JE G03,#ffff [TRUE] L0002 JL G04,#00 [TRUE] L0001 ADD G03,G04 -> G03 JUMP L0002 L0001: DEC G05 JE G05,#00 [FALSE] L0002 INC G03 SUB #00,G04 -> G05 L0002: CALL R0133 -> -(SP) POP STORE L00,G09 GET_PARENT G08 -> -(SP) CALL R0038 ((SP)+) -> G09 JE L00,#00 [FALSE] L0003 JE G09,#01 [FALSE] L0003 NEW_LINE GET_PARENT G08 -> G00 CALL R0073 (#01) -> -(SP) POP L0003: JE L00,#01 [FALSE] L0004 JE G09,#00 [FALSE] L0004 NEW_LINE PRINT "It is now pitch dark in here! " STORE G00,#0c L0004: RTRUE Routine R0034, 2 locals (0000, 0000) GET_PROP L00,#15 -> L01 JG L01,G07 [FALSE] L0001 RFALSE L0001: JE L01,#00 [FALSE] L0002 RFALSE L0002: PUT_PROP L00,#15,#00 RTRUE Routine R0035, 2 locals (0000, 0000) GET_PROP L00,#15 -> L01 JE L01,#00 [FALSE] L0001 RFALSE L0001: DEC L01 PUT_PROP L00,#15,L01 JG L01,#00 [FALSE] L0002 RFALSE L0002: RTRUE Routine R0036, 2 locals (0000, 0000) ADD G07,L01 -> L01 PUT_PROP L00,#15,L01 RTRUE Routine R0037, 2 locals (0000, 0000) GET_PROP L00,#15 -> -(SP) SUB (SP)+,G07 -> L01 RET L01 Routine R0038, 1 local (0000) TEST_ATTR L00,#00 [FALSE] L0001 RTRUE L0001: TEST_ATTR L00,#09 [FALSE] L0002 TEST_ATTR L00,#0b [FALSE] L0002 TEST_ATTR L00,#0c [TRUE] L0002 RFALSE L0002: GET_CHILD L00 -> L00 [TRUE] L0003 L0003: JE L00,#00 [TRUE] L0006 CALL R0038 (L00) -> -(SP) JE #01,(SP)+ [FALSE] L0004 RTRUE L0004: GET_SIBLING L00 -> L00 [TRUE] L0005 L0005: JUMP L0003 L0006: RFALSE Routine R0039, 1 local (0000) TEST_ATTR L00,#06 [TRUE] L0001 GET_PROP L00,#03 -> -(SP) PRINT_PADDR (SP)+ PRINT " " L0001: PRINT_OBJ L00 RTRUE Routine R0040, 1 local (0000) TEST_ATTR L00,#06 [TRUE] L0001 PRINT "the " L0001: PRINT_OBJ L00 RTRUE Routine R0041, 1 local (0000) TEST_ATTR L00,#06 [TRUE] L0001 PRINT "The " L0001: PRINT_OBJ L00 RTRUE Routine R0042, 0 locals () Action routine for: "score" JE G0a,#00 [FALSE] L0001 PRINT "You have so far scored " L0001: JG G0a,#00 [FALSE] L0002 PRINT "In that game you scored " L0002: PRINT_NUM G06 PRINT " out of a possible " PRINT_NUM #32 PRINT ", in " PRINT_NUM G07 PRINT " turns" CALL R0134 -> -(SP) POP RTRUE Routine R0043, 1 local (0000) LOADB G4b,L00 -> -(SP) JE (SP)+,#00 [FALSE] L0001 STOREB G4b,L00,#01 LOADB G4a,L00 -> -(SP) ADD G06,(SP)+ -> G06 L0001: RTRUE Routine R0044, 2 locals (0000, 0000) PRINT " " STORE L01,L00 JL L01,#00 [FALSE] L0001 SUB #00,L00 -> L01 MUL L01,#0a -> L01 L0001: JL L01,#0a [FALSE] L0002 PRINT " " JUMP L0004 L0002: JL L01,#64 [FALSE] L0003 PRINT " " JUMP L0004 L0003: JL L01,#03e8 [FALSE] L0004 PRINT " " L0004: PRINT_NUM L00 PRINT " " RTRUE Routine R0045, 2 locals (0000, 0000) Action routine for: "full" CALL R0042 -> -(SP) POP JE G06,#00 [FALSE] L0001 RFALSE L0001: NEW_LINE JG G0a,#00 [FALSE] L0002 PRINT "The score was " L0002: JE G0a,#00 [FALSE] L0003 PRINT "The score is " L0003: PRINT "made up as follows: " SUB #03,#01 -> L01 STORE L00,#00 DEC L00 L0004: JL L00,L01 [FALSE] L0006 INC L00 LOADB G4b,L00 -> -(SP) JE (SP)+,#01 [FALSE] L0005 LOADB G4a,L00 -> -(SP) CALL R0044 ((SP)+) -> -(SP) POP CALL R0135 (L00) -> -(SP) POP L0005: JUMP L0004 L0006: JE G0d,#00 [TRUE] L0007 CALL R0044 (G0d) -> -(SP) POP PRINT "finding sundry items " L0007: JE G0c,#00 [TRUE] L0008 CALL R0044 (G0c) -> -(SP) POP PRINT "visiting various places " L0008: NEW_LINE CALL R0044 (G06) -> -(SP) POP PRINT "total (out of " PRINT_NUM #32 PRINT ") " RTRUE Routine R0046, 1 local (0000) Action routine for: "die" PRINT "Are you sure you want to quit? " L0001: READ G10,G11 LOADW G11,#01 -> L00 JE L00,"yes","y" [FALSE] L0002 QUIT L0002: JE L00,"no","n" [FALSE] L0003 RTRUE L0003: PRINT "Please answer yes or no." PRINT_CHAR '>' PRINT_CHAR ' ' JUMP L0001 orphan code fragment: RTRUE Routine R0047, 1 local (0000) Action routine for: "restar" PRINT "Are you sure you want to restart? " L0001: READ G10,G11 LOADW G11,#01 -> L00 JE L00,"yes" [FALSE] L0002 RESTART L0002: JE L00,"y" [FALSE] L0003 RESTART L0003: JE L00,"no" [FALSE] L0004 RTRUE L0004: JE L00,"n" [FALSE] L0005 RTRUE L0005: PRINT "Please answer yes or no." PRINT_CHAR '>' PRINT_CHAR ' ' JUMP L0001 orphan code fragment: RTRUE Routine R0048, 0 locals () Action routine for: "restor" RESTORE [TRUE] L0001 PRINT_RET "Failed." L0001: PRINT "Ok. " RTRUE Routine R0049, 0 locals () Action routine for: "save" SAVE [TRUE] L0001 PRINT_RET "Failed." L0001: PRINT "Ok. " RTRUE Routine R0050, 0 locals () Action routine for: "verify" VERIFY [TRUE] L0001 JUMP L0002 L0001: PRINT_RET "The game file has verified as intact." L0002: PRINT_RET "The game file did not verify properly, and may be corrupted (unless you are running it on a primitive interpreter which does not properly implement the VERIFY code)." Routine R0051, 1 local (0000) Action routine for: "script" "script on" JE G0b,#01 [FALSE] L0001 PRINT_RET "Transcripting is already on." L0001: STORE G0b,#01 LOADW #00,#08 -> -(SP) OR (SP)+,#01 -> L00 STOREW #00,#08,L00 PRINT "Start of a transcript of " CALL R0032 -> -(SP) POP RTRUE Routine R0052, 1 local (0000) Action routine for: "script off" "noscri" JE G0b,#00 [FALSE] L0001 PRINT_RET "Transcripting is already off." L0001: PRINT " End of transcript. " STORE G0b,#00 LOADW #00,#08 -> -(SP) AND (SP)+,#fffe -> L00 STOREW #00,#08,L00 RTRUE Routine R0053, 1 local (0000) Action routine for: "i" GET_CHILD G08 -> L00 [TRUE] L0001 L0001: JE L00,#00 [FALSE] L0002 PRINT_RET "You are carrying nothing." L0002: PRINT "You are carrying: " CALL R0054 (G08) -> -(SP) POP CALL R0030 -> -(SP) POP RTRUE Routine R0054, 4 locals (0000, 0000, 0000, 0000) STORE L02,#01 JE L01,#00 [TRUE] L0003 STORE L03,#01 DEC L03 L0001: JL L03,L01 [FALSE] L0002 INC L03 PRINT " " JUMP L0001 L0002: CALL R0075 (L00,#00) -> L02 NEW_LINE L0003: JE L02,#00 [FALSE] L0004 RTRUE L0004: GET_CHILD L00 -> L02 [TRUE] L0005 L0005: JE L02,#00 [TRUE] L0007 ADD L01,#01 -> -(SP) CALL R0054 (L02,(SP)+) -> -(SP) POP GET_SIBLING L02 -> L02 [TRUE] L0006 L0006: JUMP L0005 L0007: RTRUE Routine R0055, 1 local (0000) Action routine for: "get MULTI" "peel NOUN" "peel off NOUN" CALL R0056 (G00) -> L00 JE L00,#00 [TRUE] L0001 RTRUE L0001: CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0002 RTRUE L0002: STORE G1c,G1d JE G1c,#00 [FALSE] L0003 PRINT "Taken. " L0003: RTRUE Routine R0056, 4 locals (0000, 0000, 0000, 0000) JE G16,G08 [FALSE] L0001 PRINT_RET "As the bishop said to the actress." L0001: TEST_ATTR G16,#04 [FALSE] L0002 PRINT "I don't suppose " CALL R0040 (G16) -> -(SP) POP PRINT_RET " would care for that." L0002: GET_PARENT G16 -> L01 JE L01,G08 [FALSE] L0003 PRINT_RET "You already have that." L0003: JE L01,L00 [TRUE] L0007 TEST_ATTR L01,#09 [TRUE] L0004 TEST_ATTR L01,#0a [TRUE] L0004 PRINT_RET "That isn't available." L0004: TEST_ATTR L01,#09 [FALSE] L0005 TEST_ATTR L01,#0c [TRUE] L0005 PRINT "Unfortunately the " PRINT_OBJ L01 PRINT_RET " isn't open." L0005: GET_PARENT L01 -> L01 JE L01,G08 [FALSE] L0006 STORE L01,L00 L0006: JUMP L0003 L0007: TEST_ATTR G16,#10 [FALSE] L0008 PRINT_RET "That's hardly portable." L0008: TEST_ATTR G16,#11 [FALSE] L0009 PRINT_RET "Fixed in place." L0009: GET_CHILD G08 -> L02 [TRUE] L0010 L0010: STORE L03,#00 L0011: JE L02,#00 [TRUE] L0014 TEST_ATTR L02,#02 [TRUE] L0012 ADD L03,#01 -> L03 L0012: GET_SIBLING L02 -> L02 [TRUE] L0013 L0013: JUMP L0011 L0014: JL L03,#05 [TRUE] L0024 JE #00,#00 [TRUE] L0023 GET_PARENT #00 -> -(SP) JE (SP)+,G08 [TRUE] L0015 PRINT_RET "You're carrying too many things already." L0015: GET_CHILD G08 -> L03 [TRUE] L0016 L0016: STORE L02,#00 L0017: JE L03,#00 [TRUE] L0020 JE L03,#00 [TRUE] L0018 TEST_ATTR L03,#02 [TRUE] L0018 TEST_ATTR L03,#00 [TRUE] L0018 STORE L02,L03 L0018: GET_SIBLING L03 -> L03 [TRUE] L0019 L0019: JUMP L0017 L0020: JE L02,#00 [TRUE] L0021 PRINT "(putting " CALL R0040 (L02) -> -(SP) POP PRINT " into " CALL R0040 (#00) -> -(SP) POP PRINT " to make room) " REMOVE_OBJ L02 INSERT_OBJ L02,#00 JUMP L0022 L0021: PRINT_RET "You're carrying too many things already." L0022: JUMP L0024 L0023: PRINT_RET "You're carrying too many things already." L0024: INSERT_OBJ G16,G08 TEST_ATTR G16,#07 [TRUE] L0025 SET_ATTR G16,#07 TEST_ATTR G16,#1b [FALSE] L0025 ADD G06,#04 -> G06 ADD G0d,#04 -> G0d L0025: RFALSE Routine R0057, 1 local (0000) Action routine for: "put down MULTIHELD" "put MULTIHELD down" "discar MULTIHELD" GET_PARENT G16 -> L00 JE L00,G00 [FALSE] L0001 PRINT_RET "Already on the floor." L0001: JE L00,G08 [TRUE] L0002 PRINT_RET "You haven't got that." L0002: TEST_ATTR G16,#02 [FALSE] L0003 PRINT "(First taking it off) " CLEAR_ATTR G16,#02 L0003: GET_PARENT G08 -> -(SP) INSERT_OBJ G16,(SP)+ CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0004 RTRUE L0004: PRINT "Dropped. " RTRUE Routine R0058, 1 local (0000) Action routine for: "get MULTIINSIDE from NOUN" "get MULTIINSIDE off NOUN" "remove MULTIINSIDE from NOUN" GET_PARENT G16 -> L00 TEST_ATTR L00,#09 [FALSE] L0001 TEST_ATTR L00,#0c [TRUE] L0001 PRINT_RET "Alas, it is closed." L0001: JE L00,G17 [TRUE] L0002 PRINT_RET "But it isn't there now." L0002: TEST_ATTR G17,#02 [FALSE] L0003 PRINT_RET "You'll need to take it off first." L0003: CALL R0056 (G17) -> L00 JE L00,#00 [TRUE] L0004 RTRUE L0004: STORE G15,#0d CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0005 RTRUE L0005: STORE G15,#0e CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0006 RTRUE L0006: PRINT "Removed. " RTRUE Routine R0059, 2 locals (0000, 0000) Action routine for: "put MULTIEXCEPT on NOUN" "put MULTIEXCEPT onto NOUN" "discar MULTIEXCEPT on NOUN" "discar MULTIEXCEPT onto NOUN" JE G17,#0b [FALSE] L0001 STORE G15,#14 CALL R0028 (G16,#00) -> -(SP) POP RFALSE L0001: GET_PARENT G16 -> -(SP) JE (SP)+,G08 [TRUE] L0002 PRINT_RET "You need to be holding it before you can put it onto something else." L0002: TEST_ATTR G17,#0a [TRUE] L0003 PRINT "Putting things on " CALL R0040 (G17) -> -(SP) POP PRINT_RET " would achieve nothing." L0003: GET_PARENT G17 -> -(SP) JE (SP)+,G08 [FALSE] L0004 PRINT_RET "You lack the dexterity." L0004: TEST_ATTR G16,#02 [FALSE] L0005 PRINT "(first taking it off) " CLEAR_ATTR G16,#02 L0005: STORE L00,#00 GET_CHILD G17 -> L01 [TRUE] L0006 L0006: JE L01,#00 [TRUE] L0008 GET_SIBLING L01 -> L01 [TRUE] L0007 L0007: INC L00 JUMP L0006 L0008: GET_PROP G17,#18 -> -(SP) JL L00,(SP)+ [TRUE] L0009 PRINT "There is no more room on " CALL R0040 (G17) -> -(SP) POP PRINT_RET "." L0009: INSERT_OBJ G16,G17 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0010 RTRUE L0010: JE G1b,#01 [FALSE] L0011 PRINT_RET "Done." L0011: PRINT "You put the " PRINT_OBJ G16 PRINT " on " CALL R0040 (G17) -> -(SP) POP PRINT_RET "." Routine R0060, 2 locals (0000, 0000) Action routine for: "put MULTIEXCEPT in NOUN" "put MULTIEXCEPT into NOUN" "insert MULTIEXCEPT in NOUN" "insert MULTIEXCEPT into NOUN" "discar MULTIEXCEPT in NOUN" "discar MULTIEXCEPT into NOUN" "discar MULTIEXCEPT down NOUN" JE G17,#0b [FALSE] L0001 STORE G15,#14 CALL R0028 (G16,#00) -> -(SP) POP RFALSE L0001: GET_PARENT G16 -> -(SP) JE (SP)+,G08 [TRUE] L0002 PRINT_RET "You need to be holding it before you can put it into something else." L0002: TEST_ATTR G17,#09 [TRUE] L0003 PRINT_RET "That can't contain things." L0003: TEST_ATTR G17,#0c [TRUE] L0004 PRINT_RET "Alas, it is closed." L0004: TEST_ATTR G17,#02 [FALSE] L0005 PRINT_RET "You'll need to take it off first." L0005: TEST_ATTR G16,#02 [FALSE] L0006 PRINT "(first taking it off) " CLEAR_ATTR G16,#02 L0006: STORE L00,#00 GET_CHILD G17 -> L01 [TRUE] L0007 L0007: JE L01,#00 [TRUE] L0009 GET_SIBLING L01 -> L01 [TRUE] L0008 L0008: INC L00 JUMP L0007 L0009: GET_PROP G17,#18 -> -(SP) JL L00,(SP)+ [TRUE] L0010 PRINT "There is no more room in " CALL R0040 (G17) -> -(SP) POP PRINT_RET "." L0010: INSERT_OBJ G16,G17 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0011 RTRUE L0011: JE G1b,#01 [FALSE] L0012 PRINT_RET "Done." L0012: PRINT "You put the " PRINT_OBJ G16 PRINT " into " CALL R0040 (G17) -> -(SP) POP PRINT_RET "." Routine R0061, 2 locals (0000, 0000) Action routine for: "transf NOUN to NOUN" "clear NOUN to NOUN" STORE L01,#14 TEST_ATTR G17,#09 [FALSE] L0001 STORE L01,#12 JUMP L0002 L0001: TEST_ATTR G17,#0a [FALSE] L0002 STORE L01,#13 L0002: GET_PARENT G16 -> L00 JE L00,G08 [TRUE] L0007 L0003: JE L00,#00 [TRUE] L0006 TEST_ATTR L00,#0c [TRUE] L0004 PRINT_RET "That isn't in your possession." L0004: GET_PARENT L00 -> L00 JE L00,G08 [FALSE] L0005 JUMP L0007 L0005: JUMP L0003 L0006: PRINT_RET "First pick that up." L0007: INSERT_OBJ G16,G08 CALL R0028 (G16,G17,L01) -> -(SP) POP RFALSE Routine R0062, 0 locals () Action routine for: "empty NOUN" "empty out NOUN" "empty NOUN out" STORE G17,#0b CALL R0063 -> -(SP) POP RTRUE Routine R0063, 2 locals (0000, 0000) Action routine for: "empty NOUN to NOUN" "empty NOUN into NOUN" "empty NOUN on NOUN" "empty NOUN onto NOUN" TEST_ATTR G16,#09 [TRUE] L0001 CALL R0041 (G16) -> -(SP) POP PRINT_RET " can't contain things." L0001: TEST_ATTR G16,#0c [TRUE] L0002 CALL R0041 (G16) -> -(SP) POP PRINT_RET " is closed." L0002: JE G17,#0b [TRUE] L0004 TEST_ATTR G17,#09 [TRUE] L0003 CALL R0041 (G17) -> -(SP) POP PRINT_RET " can't contain things." L0003: TEST_ATTR G17,#0c [TRUE] L0004 CALL R0041 (G17) -> -(SP) POP PRINT_RET " is closed." L0004: GET_CHILD G16 -> L00 [TRUE] L0005 L0005: JE L00,#00 [FALSE] L0006 CALL R0040 (G16) -> -(SP) POP PRINT_RET " is empty already." L0006: JE L00,#00 [TRUE] L0008 GET_SIBLING L00 -> L01 [TRUE] L0007 L0007: PRINT_OBJ L00 PRINT ": " CALL R0028 (L00,G17,#17) -> -(SP) POP STORE L00,L01 JUMP L0006 L0008: RTRUE Routine R0064, 1 local (0000) Action routine for: "get in NOUN" "go throug NOUN" "enter NOUN" TEST_ATTR G16,#08 [FALSE] L0001 CALL R0067 -> -(SP) POP RTRUE L0001: GET_PARENT G08 -> L00 JE L00,G00 [TRUE] L0002 PRINT "But you're already in the " PRINT_OBJ L00 PRINT_RET "." L0002: TEST_ATTR G16,#0f [TRUE] L0003 PRINT_RET "A surreal idea." L0003: GET_PARENT G16 -> L00 JE L00,#01 [FALSE] L0004 CALL R0067 -> -(SP) POP RTRUE L0004: JE L00,G00 [TRUE] L0005 PRINT_RET "You can only get into something on the floor." L0005: INSERT_OBJ G08,G16 PRINT "You get into the " PRINT_OBJ G16 PRINT ". " CALL R0069 (G16) -> -(SP) POP RTRUE Routine R0065, 0 locals () Action routine for: "get out" "stand" "stand up" "exit" GET_PARENT G08 -> -(SP) JE (SP)+,G00 [FALSE] L0001 PRINT_RET "But you're aren't in anything at the moment." L0001: INSERT_OBJ G08,G00 PRINT "You are on your own two feet again. " CALL R0073 (#01) -> -(SP) POP CALL R0030 -> -(SP) POP RTRUE Routine R0066, 0 locals () Action routine for: "go" PRINT_RET "You'll have to say which compass direction to go in." Routine R0067, 4 locals (0000, 0000, 0000, 0000) Action routine for: "go NOUN" STORE L03,#00 GET_PARENT G08 -> L00 JE G00,#0c [TRUE] L0002 JE L00,G00 [TRUE] L0002 GET_PROP L00,#05 -> L01 JE L01,#ffff [TRUE] L0001 CALL L01 -> -(SP) JE (SP)+,#00 [TRUE] L0001 STORE L03,L00 GET_PARENT L00 -> L00 JUMP L0002 L0001: PRINT "You'll have to get out of " CALL R0040 (L00) -> -(SP) POP PRINT_RET " first." L0002: GET_PROP G16,#08 -> -(SP) GET_PROP L00,(SP)+ -> L01 JE L01,#00 [FALSE] L0003 GET_PROP L00,#17 -> L00 PRINT_PADDR L00 NEW_LINE RFALSE L0003: TEST_ATTR L01,#08 [FALSE] L0008 TEST_ATTR L01,#01 [FALSE] L0004 PRINT_RET "You can't go that way." L0004: TEST_ATTR L01,#0c [TRUE] L0007 JE G16,#0a [FALSE] L0005 PRINT "You are unable to climb " CALL R0040 (L01) -> -(SP) POP PRINT_RET "." L0005: JE G16,#0b [FALSE] L0006 PRINT "You are unable to descend " CALL R0040 (L01) -> -(SP) POP PRINT_RET "." L0006: PRINT "You can't, since " CALL R0040 (L01) -> -(SP) POP PRINT_RET " is in the way." L0007: GET_PROP L01,#13 -> L01 JE L01,#00 [FALSE] L0008 PRINT "You can't, since " CALL R0040 (L01) -> -(SP) POP PRINT_RET " leads nowhere." L0008: JE L03,#00 [FALSE] L0009 INSERT_OBJ G08,L01 L0009: JE L03,#00 [TRUE] L0010 INSERT_OBJ L03,L01 L0010: CALL R0038 (L01) -> L02 JE L02,#00 [TRUE] L0011 STORE G00,L01 STORE G09,#01 L0011: JE L02,#00 [FALSE] L0013 JE G00,#0c [FALSE] L0012 CALL R0136 -> -(SP) POP L0012: STORE G00,#0c STORE G09,#00 L0013: CALL R0031 -> -(SP) JE #01,(SP)+ [FALSE] L0014 RTRUE L0014: CALL R0073 (#01) -> -(SP) POP RTRUE Routine R0068, 5 locals (0000, 0000, 0000, 0000, 0000) NEW_LINE PRINT "On " CALL R0040 (L00) -> -(SP) POP STORE L04,#00 GET_CHILD L00 -> L02 [TRUE] L0001 L0001: JE L02,#00 [TRUE] L0003 GET_SIBLING L02 -> L02 [TRUE] L0002 L0002: INC L04 JUMP L0001 L0003: JE L04,#01 [FALSE] L0004 PRINT " is " JUMP L0005 L0004: PRINT " are " L0005: GET_CHILD L00 -> L01 [TRUE] L0006 L0006: JE L01,#00 [TRUE] L0010 ADD L03,#01 -> L03 CALL R0075 (L01,#01) -> -(SP) POP SUB L04,#01 -> -(SP) JE L03,(SP)+ [FALSE] L0007 PRINT " and " L0007: SUB L04,#01 -> -(SP) JL L03,(SP)+ [FALSE] L0008 PRINT ", " L0008: GET_SIBLING L01 -> L01 [TRUE] L0009 L0009: JUMP L0006 L0010: PRINT ". " RTRUE Routine R0069, 6 locals (0000, 0000, 0000, 0000, 0000, 0000) GET_CHILD L00 -> L01 [TRUE] L0001 L0001: STORE L02,#00 L0002: JE L01,#00 [TRUE] L0011 TEST_ATTR L01,#01 [TRUE] L0009 TEST_ATTR L01,#10 [TRUE] L0007 SET_ATTR L01,#0e INC L02 TEST_ATTR L01,#07 [TRUE] L0006 GET_PROP L01,#04 -> L03 TEST_ATTR L01,#08 [FALSE] L0003 TEST_ATTR L01,#0c [TRUE] L0003 GET_PROP L01,#14 -> L03 L0003: TEST_ATTR L01,#16 [FALSE] L0004 TEST_ATTR L01,#17 [TRUE] L0004 GET_PROP L01,#14 -> L03 L0004: JE L03,#00 [TRUE] L0006 NEW_LINE PRINT_PADDR L03 NEW_LINE STORE L04,#01 CLEAR_ATTR L01,#0e DEC L02 TEST_ATTR L01,#0a [FALSE] L0006 GET_CHILD L01 -> -(SP) [TRUE] L0005 L0005: JE (SP)+,#00 [TRUE] L0006 CALL R0068 (L01) -> -(SP) POP L0006: JUMP L0009 L0007: TEST_ATTR L01,#0a [FALSE] L0009 GET_CHILD L01 -> -(SP) [TRUE] L0008 L0008: JE (SP)+,#00 [TRUE] L0009 CALL R0068 (L01) -> -(SP) POP L0009: GET_SIBLING L01 -> L01 [TRUE] L0010 L0010: JUMP L0002 L0011: JE L02,#00 [FALSE] L0012 RTRUE L0012: NEW_LINE JE L00,G00 [TRUE] L0013 PRINT "In " CALL R0040 (L00) -> -(SP) POP PRINT " you" L0013: JE L00,G00 [FALSE] L0014 PRINT "You" L0014: PRINT " can " JE L04,#01 [FALSE] L0015 PRINT "also " L0015: PRINT "see " STORE L05,#00 GET_CHILD L00 -> L01 [TRUE] L0016 L0016: JE L01,#00 [TRUE] L0020 TEST_ATTR L01,#0e [FALSE] L0018 ADD L05,#01 -> L05 CALL R0075 (L01,#01) -> -(SP) POP SUB L02,#01 -> -(SP) JE L05,(SP)+ [FALSE] L0017 PRINT " and " L0017: SUB L02,#01 -> -(SP) JL L05,(SP)+ [FALSE] L0018 PRINT ", " L0018: GET_SIBLING L01 -> L01 [TRUE] L0019 L0019: JUMP L0016 L0020: JE L00,G00 [TRUE] L0021 PRINT ". " L0021: JE L00,G00 [FALSE] L0022 PRINT " here. " L0022: RTRUE Routine R0070, 0 locals () Action routine for: "brief" STORE G0e,#01 PRINT_PADDR S001 PRINT_RET " is now in its normal "brief" printing mode, which gives long descriptions of places never before visited and short descriptions otherwise." Routine R0071, 0 locals () Action routine for: "long" STORE G0e,#02 PRINT_PADDR S001 PRINT_RET " is now in its "verbose" mode, which always gives long descriptions of locations (even if you've been there before)." Routine R0072, 0 locals () Action routine for: "short" STORE G0e,#03 PRINT_PADDR S001 PRINT_RET " is now in its "superbrief" mode, which always gives short descriptions of locations (even if you haven't been there before)." Routine R0073, 3 locals (0000, 0000, 0000) Action routine for: "l" STORE L02,G00 JE L02,G0f [TRUE] L0001 CALL R0141 -> -(SP) POP L0001: NEW_LINE PRINT_OBJ G00 GET_PARENT G08 -> L01 JE G00,#0c [TRUE] L0002 JE L01,G00 [TRUE] L0002 PRINT " (in the " PRINT_OBJ L01 PRINT ")" STORE L02,L01 L0002: NEW_LINE JE L00,#01 [TRUE] L0003 JUMP L0006 L0003: JE G0e,#02 [FALSE] L0004 JUMP L0006 L0004: JE G0e,#03 [FALSE] L0005 JUMP L0007 L0005: TEST_ATTR G00,#13 [FALSE] L0006 JE L00,#01 [FALSE] L0006 JUMP L0007 L0006: GET_PROP G00,#02 -> L01 PRINT_PADDR L01 NEW_LINE L0007: TEST_ATTR G00,#13 [TRUE] L0008 SET_ATTR G00,#13 TEST_ATTR G00,#1b [FALSE] L0008 ADD G06,#05 -> G06 ADD G0c,#05 -> G0c L0008: JE L02,G00 [TRUE] L0009 CALL R0069 (G00) -> -(SP) POP L0009: CALL R0069 (L02) -> -(SP) POP CALL R0138 -> -(SP) POP STORE G15,#1d CALL R0031 -> -(SP) JE #01,(SP)+ [FALSE] L0010 RTRUE L0010: RTRUE Routine R0074, 1 local (0000) Action routine for: "l at NOUN" "check NOUN" JE G00,#0c [FALSE] L0001 PRINT_RET "Darkness, noun. An absence of light to see by." L0001: JE G16,G08 [FALSE] L0002 PRINT_RET "As good-looking as ever." L0002: TEST_ATTR G16,#1a [FALSE] L0003 CALL R0123 -> -(SP) POP RFALSE L0003: GET_PROP G16,#02 -> L00 JE L00,#00 [FALSE] L0005 TEST_ATTR G16,#09 [FALSE] L0004 CALL R0123 -> -(SP) POP RFALSE L0004: PRINT "You see nothing special about " CALL R0040 (G16) -> -(SP) POP PRINT_RET "." L0005: PRINT_PADDR L00 NEW_LINE TEST_ATTR G16,#16 [FALSE] L0007 PRINT "It is currently switched " TEST_ATTR G16,#17 [FALSE] L0006 PRINT "on. " L0006: TEST_ATTR G16,#17 [TRUE] L0007 PRINT "off. " L0007: CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0008 RTRUE L0008: RTRUE Routine R0075, 7 locals (0000, 0000, 0000, 0000, 0000, 0000, 0000) JE L01,#02 [TRUE] L0001 CALL R0039 (L00) -> -(SP) POP L0001: JE L01,#02 [FALSE] L0002 CALL R0040 (L00) -> -(SP) POP L0002: TEST_ATTR L00,#00 [FALSE] L0003 PRINT " (providing light)" L0003: TEST_ATTR L00,#02 [FALSE] L0004 PRINT " (being worn)" L0004: TEST_ATTR L00,#09 [FALSE] L0020 JE L01,#02 [TRUE] L0005 PRINT " (which is " L0005: JE L01,#02 [FALSE] L0006 PRINT ", which is " L0006: TEST_ATTR L00,#0c [TRUE] L0007 PRINT "closed" TEST_ATTR L00,#0b [FALSE] L0007 JUMP L0019 L0007: TEST_ATTR L00,#0c [FALSE] L0008 PRINT "open" L0008: GET_CHILD L00 -> L02 [TRUE] L0009 L0009: JE L02,#00 [FALSE] L0010 PRINT " but empty" JUMP L0019 L0010: JE L01,#00 [FALSE] L0011 STORE L06,#01 JUMP L0019 L0011: PRINT " and contains " STORE L05,#00 STORE L03,L02 L0012: JE L03,#00 [TRUE] L0014 GET_SIBLING L03 -> L03 [TRUE] L0013 L0013: INC L05 JUMP L0012 L0014: STORE L04,#00 L0015: JE L02,#00 [TRUE] L0019 INC L04 CALL R0075 (L02,#01) -> -(SP) POP SUB L05,#01 -> -(SP) JE L04,(SP)+ [FALSE] L0016 PRINT " and " L0016: SUB L05,#01 -> -(SP) JL L04,(SP)+ [FALSE] L0017 PRINT ", " L0017: GET_SIBLING L02 -> L02 [TRUE] L0018 L0018: JUMP L0015 L0019: JE L01,#02 [TRUE] L0020 PRINT ")" L0020: TEST_ATTR L00,#0a [FALSE] L0035 GET_CHILD L00 -> L02 [TRUE] L0021 L0021: JE L02,#00 [TRUE] L0035 JE L01,#02 [TRUE] L0022 PRINT " (on which " L0022: JE L01,#02 [FALSE] L0023 PRINT ", on top of which " L0023: JE L01,#00 [FALSE] L0024 STORE L06,#01 JUMP L0034 L0024: STORE L05,#00 STORE L03,L02 L0025: JE L03,#00 [TRUE] L0027 GET_SIBLING L03 -> L03 [TRUE] L0026 L0026: INC L05 JUMP L0025 L0027: JE L05,#01 [FALSE] L0028 PRINT "is " JUMP L0029 L0028: PRINT "are " L0029: STORE L04,#00 L0030: JE L02,#00 [TRUE] L0034 INC L04 CALL R0075 (L02,#01) -> -(SP) POP SUB L05,#01 -> -(SP) JE L04,(SP)+ [FALSE] L0031 PRINT " and " L0031: SUB L05,#01 -> -(SP) JL L04,(SP)+ [FALSE] L0032 PRINT ", " L0032: GET_SIBLING L02 -> L02 [TRUE] L0033 L0033: JUMP L0030 L0034: JE L01,#02 [TRUE] L0035 PRINT ")" L0035: RET L06 Routine R0076, 0 locals () Action routine for: "feed CREATURE MULTIHELD" "feed MULTIHELD to CREATURE" "feed over MULTIHELD to CREATURE" CALL R0029 (G17,#19) -> -(SP) JE (SP)+,#00 [TRUE] L0001 RFALSE L0001: PRINT_OBJ G17 PRINT_RET " doesn't seem interested. " Routine R0077, 1 local (0000) Action routine for: "open NOUN with HELD" "unlock NOUN with HELD" TEST_ATTR G16,#14 [TRUE] L0001 PRINT_RET "I can't see how to unlock that." L0001: TEST_ATTR G16,#15 [TRUE] L0002 PRINT_RET "It is in fact unlocked now." L0002: GET_PROP G16,#16 -> L00 JE L00,G17 [TRUE] L0003 PRINT_RET "That doesn't seem to fit the lock." L0003: CLEAR_ATTR G16,#15 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0004 RTRUE L0004: PRINT "You unlock the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0078, 1 local (0000) Action routine for: "lock NOUN with HELD" TEST_ATTR G16,#14 [TRUE] L0001 PRINT_RET "I can't see how to lock that." L0001: TEST_ATTR G16,#15 [FALSE] L0002 PRINT_RET "It is in fact locked now." L0002: TEST_ATTR G16,#0c [FALSE] L0003 PRINT_RET "First you'll have to close it." L0003: GET_PROP G16,#16 -> L00 JE L00,G17 [TRUE] L0004 PRINT_RET "That doesn't seem to fit the lock." L0004: SET_ATTR G16,#15 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0005 RTRUE L0005: PRINT "You lock the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0079, 0 locals () Action routine for: "rotate NOUN on" "rotate on NOUN" "switch NOUN" "switch NOUN on" "switch on NOUN" TEST_ATTR G16,#16 [TRUE] L0001 PRINT_RET "That's not something you can switch." L0001: TEST_ATTR G16,#17 [FALSE] L0002 PRINT_RET "It's already on." L0002: SET_ATTR G16,#17 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0003 RTRUE L0003: PRINT "You switch the " PRINT_OBJ G16 PRINT " on. " RTRUE Routine R0080, 0 locals () Action routine for: "rotate NOUN off" "rotate off NOUN" "switch NOUN off" "switch off NOUN" TEST_ATTR G16,#16 [TRUE] L0001 PRINT_RET "That's not something you can switch." L0001: TEST_ATTR G16,#17 [TRUE] L0002 PRINT_RET "It's already off." L0002: CLEAR_ATTR G16,#17 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0003 RTRUE L0003: PRINT "You switch the " PRINT_OBJ G16 PRINT " off. " RTRUE Routine R0081, 0 locals () Action routine for: "open NOUN" TEST_ATTR G16,#0d [TRUE] L0001 PRINT_RET "That's not something you can open." L0001: TEST_ATTR G16,#15 [FALSE] L0002 PRINT_RET "It seems to be locked." L0002: TEST_ATTR G16,#0c [FALSE] L0003 PRINT_RET "It's already open." L0003: SET_ATTR G16,#0c CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0004 RTRUE L0004: PRINT "You open the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0082, 0 locals () Action routine for: "close NOUN" TEST_ATTR G16,#0d [TRUE] L0001 PRINT_RET "That's not something you can close." L0001: TEST_ATTR G16,#0c [TRUE] L0002 PRINT_RET "It's already closed." L0002: CLEAR_ATTR G16,#0c CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0003 RTRUE L0003: PRINT "You close the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0083, 0 locals () Action routine for: "get off HELD" "remove HELD" TEST_ATTR G16,#02 [TRUE] L0001 PRINT_RET "You're not wearing that." L0001: CLEAR_ATTR G16,#02 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0002 RTRUE L0002: PRINT "You take off the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0084, 1 local (0000) Action routine for: "wear HELD" "put on HELD" TEST_ATTR G16,#03 [TRUE] L0001 PRINT_RET "You can't wear that!" L0001: GET_PARENT G16 -> L00 JE L00,G08 [TRUE] L0002 PRINT_RET "You're not holding that!" L0002: TEST_ATTR G16,#02 [FALSE] L0003 PRINT_RET "You're already wearing that!" L0003: SET_ATTR G16,#02 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0004 RTRUE L0004: PRINT "You put on the " PRINT_OBJ G16 PRINT ". " RTRUE Routine R0085, 0 locals () Action routine for: "eat HELD" TEST_ATTR G16,#19 [TRUE] L0001 PRINT_RET "No, it's plainly inedible." L0001: REMOVE_OBJ G16 CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0002 RTRUE L0002: PRINT "You eat the " PRINT_OBJ G16 PRINT_RET ". Not bad." Routine R0086, 0 locals () Action routine for: "y" "no" PRINT_RET "That was a rhetorical question." Routine R0087, 0 locals () Action routine for: "burn NOUN" "burn NOUN with HELD" PRINT_RET "In this game, arson is (usually) forbidden." Routine R0088, 0 locals () Action routine for: "pray" PRINT_RET "Spooky! For a moment there, a deep voice seemed to say "you're on your own"." Routine R0089, 0 locals () Action routine for: "awake" "awake up" PRINT_RET "The dreadful truth is, this is not a dream." Routine R0090, 0 locals () Action routine for: "awake CREATURE" "awake up CREATURE" PRINT_RET "That seems unnecessary." Routine R0091, 0 locals () Action routine for: "embrac CREATURE" CALL R0029 (G16,#42) -> -(SP) JE (SP)+,#00 [TRUE] L0001 RFALSE L0001: PRINT_RET "Keep your mind on the game." Routine R0092, 0 locals () Action routine for: "think" PRINT_RET "What a good idea." Routine R0093, 0 locals () Action routine for: "smell" "smell NOUN" PRINT_RET "You smell nothing unexpected." Routine R0094, 0 locals () Action routine for: "hear" "hear NOUN" "hear to NOUN" PRINT_RET "You hear nothing unexpected." Routine R0095, 0 locals () Action routine for: "taste" PRINT_RET "You taste nothing unexpected." Routine R0096, 0 locals () Action routine for: "feel" PRINT_RET "You feel nothing unexpected." Routine R0097, 0 locals () Action routine for: "feel NOUN" TEST_ATTR G16,#04 [FALSE] L0001 PRINT_RET "Keep your hands to yourself!" L0001: PRINT_RET "You feel nothing unexpected." Routine R0098, 0 locals () PRINT_RET "The ground is unsuitable for digging here." Routine R0099, 0 locals () Action routine for: "chop NOUN" PRINT_RET "In this game, cutting things up is never helpful." Routine R0100, 0 locals () Action routine for: "hop" PRINT_RET "You jump on the spot, fruitlessly." Routine R0101, 0 locals () Action routine for: "hop over NOUN" PRINT_RET "In this game, it is never useful to jump over things." Routine R0102, 0 locals () Action routine for: "attach NOUN" "attach NOUN to SPECIAL" PRINT_RET "In this game, it is never useful to tie things." Routine R0103, 0 locals () Action routine for: "drink water" "drink NOUN" PRINT_RET "There's nothing suitable to drink here." Routine R0104, 0 locals () Action routine for: "fill NOUN" PRINT_RET "But there's no water here to carry." Routine R0105, 0 locals () Action routine for: "sorry" PRINT_RET "Oh, don't apologise." Routine R0106, 0 locals () Action routine for: "damn" "damn SPECIAL" PRINT_RET "Disgraceful! Once upon a time adventurers had moral standards." Routine R0107, 0 locals () Action routine for: "bother" "bother SPECIAL" PRINT_RET "Quite." Routine R0108, 0 locals () Action routine for: "attack NOUN" TEST_ATTR G16,#04 [FALSE] L0001 CALL R0029 (G16,#32) -> -(SP) JE (SP)+,#00 [TRUE] L0001 RFALSE L0001: PRINT_RET "Violence isn't the answer, you know." Routine R0109, 0 locals () Action routine for: "dive" PRINT_RET "There's not enough water to swim in." Routine R0110, 0 locals () Action routine for: "swing NOUN" "swing on NOUN" PRINT_RET "There's nothing sensible to swing here." Routine R0111, 0 locals () Action routine for: "blow HELD" PRINT_RET "You can't usefully blow that." Routine R0112, 0 locals () Action routine for: "polish NOUN" PRINT_RET "You achieve nothing by this." Routine R0113, 0 locals () Action routine for: "set NOUN" PRINT_RET "No, you can't set that." Routine R0114, 0 locals () Action routine for: "wave" PRINT_RET "You wave, feeling foolish." Routine R0115, 1 local (0000) Action routine for: "wave NOUN" GET_PARENT G16 -> L00 JE L00,G08 [TRUE] L0001 PRINT_RET "But you aren't holding it." L0001: PRINT "You look ridiculous waving the " PRINT_OBJ G16 PRINT_RET "." Routine R0116, 0 locals () Action routine for: "drag NOUN" TEST_ATTR G16,#11 [FALSE] L0001 PRINT_RET "It is fixed in place." L0001: TEST_ATTR G16,#10 [FALSE] L0002 PRINT_RET "You are unable to." L0002: PRINT_RET "Nothing obvious happens." Routine R0117, 0 locals () Action routine for: "clear NOUN" TEST_ATTR G16,#11 [FALSE] L0001 PRINT_RET "It is fixed in place." L0001: TEST_ATTR G16,#10 [FALSE] L0002 PRINT_RET "You are unable to." L0002: PRINT_RET "Nothing obvious happens." Routine R0118, 1 local (0000) GET_PARENT G17 -> L00 JE L00,#01 [TRUE] L0001 PRINT_RET "That's not a direction." L0001: JE G17,#0a,#0b [FALSE] L0002 PRINT_RET "Not that way you can't." L0002: CALL R0030 -> -(SP) POP STORE L00,G16 STORE G16,G17 CALL R0028 (G16,G17,#1b) -> -(SP) POP REMOVE_OBJ L00 INSERT_OBJ L00,G00 RTRUE Routine R0119, 0 locals () Action routine for: "clear NOUN NOUN" PRINT_RET "Is that the best you can think of?" Routine R0120, 0 locals () Action routine for: "rotate NOUN" TEST_ATTR G16,#11 [FALSE] L0001 PRINT_RET "It is fixed in place." L0001: TEST_ATTR G16,#10 [FALSE] L0002 PRINT_RET "You are unable to." L0002: PRINT_RET "Nothing obvious happens." Routine R0121, 0 locals () Action routine for: "squash NOUN" TEST_ATTR G16,#04 [FALSE] L0001 PRINT_RET "Keep your hands to yourself." L0001: PRINT_RET "You achieve nothing by this." Routine R0122, 0 locals () Action routine for: "l under NOUN" PRINT_RET "You find nothing of interest." Routine R0123, 0 locals () Action routine for: "l inside NOUN" "l in NOUN" "l throug NOUN" "search NOUN" TEST_ATTR G16,#09 [TRUE] L0001 PRINT_RET "You find nothing of interest." L0001: TEST_ATTR G16,#0b [FALSE] L0002 TEST_ATTR G16,#0c [TRUE] L0002 PRINT_RET "You can't see inside, since it is closed." L0002: CALL R0030 -> -(SP) JE #01,(SP)+ [FALSE] L0003 RTRUE L0003: PRINT "You peer at " CALL R0075 (G16,#02) -> -(SP) POP PRINT_RET "." Routine R0124, 0 locals () Action routine for: "discar HELD at NOUN" "discar HELD agains NOUN" TEST_ATTR G17,#04 [TRUE] L0001 PRINT_RET "Futile." L0001: CALL R0029 (G17,#18) -> -(SP) JE (SP)+,#00 [TRUE] L0002 RFALSE L0002: PRINT_RET "You lack the nerve when it comes to the crucial moment." Routine R0125, 0 locals () Action routine for: "answer SPECIAL to CREATURE" CALL R0029 (G17,#34) -> -(SP) JE (SP)+,#00 [TRUE] L0001 RFALSE L0001: PRINT_RET "No reply." Routine R0126, 0 locals () Action routine for: "buy SPECIAL" PRINT_RET "Nothing is on sale." Routine R0127, 0 locals () Action routine for: "ask CREATURE about SPECIAL" CALL R0029 (G16,#35) -> -(SP) JE (SP)+,#00 [TRUE] L0001 RFALSE L0001: PRINT_RET "No reply." Routine R0128, 0 locals () Action routine for: "sing" RANDOM #02 -> -(SP) JE (SP)+,#01 [FALSE] L0001 PRINT "Your yodelling " JUMP L0002 L0001: PRINT "Your singing " L0002: PRINT_RET "is atrocious, if you say so yourself." Routine R0129, 0 locals () Action routine for: "climb NOUN" PRINT_RET "I don't think much is to be achieved by that." Routine R0130, 0 locals () Action routine for: "wait" CALL R0031 -> -(SP) JE #01,(SP)+ [FALSE] L0001 RTRUE L0001: PRINT_RET "Time passes." Routine R0131, 0 locals () Action routine for: "nap" PRINT_RET "You must have slept yourself out. You certainly aren't drowsy now." Routine R0132, 0 locals () STORE G00,#0e STORE G43,"cubes" STORE G46,#1d STOREW #42,#00,S050 PRINT " What a horrid dream, all about compiling something. Thank heavens you've finally woken up, even if you seem to have been sleep-walking. As you dizzily shake your head, you can't help feeling this place is somehow familiar... " RTRUE Routine R0133, 1 local (0000) RANDOM #04 -> -(SP) JE (SP)+,#01 [FALSE] L0006 RANDOM #3c -> L00 JE L00,#01 [FALSE] L0001 PRINT " Far away, you hear the hammering of dwarven anvils. " L0001: JE L00,#02 [FALSE] L0002 PRINT " A shadowy figure glides by in the corner of view. " L0002: JE L00,#03 [FALSE] L0003 PRINT " Bats flutter through the cave, startling you. " L0003: JE L00,#04 [FALSE] L0004 PRINT " A hoarse voice whispers, "PLUGH". " L0004: JE L00,#05 [FALSE] L0005 PRINT " The floor shakes in a sudden earth tremor! " L0005: JE L00,#06 [FALSE] L0006 PRINT " You hear a door creak open, somewhere in the distance. " L0006: CALL R0034 (#27) -> -(SP) JE (SP)+,#01 [FALSE] L0007 PRINT " There is suddenly an immense explosion! This is unlikely to teach you not to meddle with things you don't understand... On the other hand you'll never do so again. " STORE G0a,#01 L0007: RTRUE Routine R0134, 0 locals () PRINT ", earning you the rank of " JL G06,#23 [TRUE] L0001 PRINT_RET "navigator." L0001: JL G06,#14 [TRUE] L0002 PRINT_RET "adventurer." L0002: JL G06,#05 [TRUE] L0003 PRINT_RET "explorer." L0003: JL G06,#01 [TRUE] L0004 PRINT_RET "tourist." L0004: PRINT_RET "somnambulist." Routine R0135, 1 local (0000) JE L00,#00 [FALSE] L0001 PRINT_RET "driving the car" L0001: JE L00,#01 [FALSE] L0002 PRINT_RET "zapping the snake" L0002: JE L00,#02 [FALSE] L0003 PRINT_RET "drinking some water" L0003: PRINT_RET "(something else)" Routine R0136, 0 locals () STORE G0a,#01 PRINT_RET "As you step falteringly through the darkness, cowardly but evil creatures devour you whole!" Routine R0137, 0 locals () JE G0a,#03 [FALSE] L0001 PRINT "You have drowned" L0001: RTRUE Routine R0138, 0 locals () CLEAR_ATTR "Elvish-made sword",#00 GET_PARENT "sullen snake" -> -(SP) JE G00,(SP)+ [FALSE] L0001 GET_PARENT "Elvish-made sword" -> -(SP) JE G08,(SP)+ [FALSE] L0001 PRINT " Your sword gives off a bright greenish light! " SET_ATTR "Elvish-made sword",#00 L0001: RTRUE Routine R0139, 0 locals () PRINT_RET "Why not write an Inform game?" Routine R0140, 0 locals () RFALSE Routine R0141, 0 locals () RFALSE Routine R0142, 0 locals () Action routine for: "blorpl" PRINT_RET "For a moment you can almost hear a hoarse voice say something to you. But it passes." Routine R0143, 0 locals () Action routine for: "echo" JE G00,#2a [FALSE] L0001 SET_ATTR "Loud Room",#18 PRINT_RET "The acoustics of the room subtly alter..." L0001: PRINT_RET "There isn't an echo here." Routine R0144, 0 locals () Action routine for: "shoot NOUN" GET_PARENT "ray gun" -> -(SP) JE G08,(SP)+ [TRUE] L0001 PRINT_RET "You have nothing to shoot with." L0001: JE G16,#22 [FALSE] L0002 PRINT_RET "It is unable to shoot itself." L0002: JE G16,#0d [FALSE] L0003 STORE G0a,#01 PRINT_RET "Your hands suddenly look rather white and skeletal, but then again the light is getting dimmer, and dear oh dear but it seems cold in here, and so sleepy..." L0003: TEST_ATTR G16,#19 [FALSE] L0004 REMOVE_OBJ G16 PRINT "Zap! " CALL R0041 (G16) -> -(SP) POP PRINT_RET " decays into a noisome mess and expires messily into dust." L0004: JE G16,#29 [FALSE] L0005 REMOVE_OBJ "two-leafed clover" PRINT_RET "Zap! The clover shrivels into dust." L0005: JE G16,#24 [FALSE] L0006 REMOVE_OBJ "sullen snake" INSERT_OBJ "aged, sullen snake","Hall of Mists" STORE G3a,#25 CALL R0043 (#01) -> -(SP) POP PRINT_RET "Zap! The snake suddenly wrinkles and concertinas, sheds a layer of skin and lurches back upright, looking sadly decrepit." L0006: JE G16,#25 [FALSE] L0007 STORE G0a,#01 PRINT_RET "Zap! The old snake dodges your callous blast, leaps forward and sinks its aged fangs into your wrist. Amazing how the venom is still effective even at that age, isn't it?" L0007: PRINT_RET "Zap! There is no appreciable effect." Routine R0145, 0 locals () JE G1f,#00 [FALSE] L0002 JE G15,#1b [FALSE] L0001 PRINT_RET "The snake wasn't born yesterday. It is going nowhere." L0001: RFALSE L0002: JE G1f,#32 [FALSE] L0003 PRINT_RET "Lazily, the snake dodges your attack." L0003: JE G1f,#42 [FALSE] L0004 PRINT_RET "What a repulsive idea." L0004: JE G1f,#18 [FALSE] L0005 PRINT "Effortlessly, the snake dodges " CALL R0040 (G16) -> -(SP) POP PRINT_RET "." L0005: JE G1f,#34 [FALSE] L0006 PRINT_RET "The snake disdains to comment." L0006: JE G1f,#35 [FALSE] L0007 PRINT_RET ""I'm only the obligatory monster."" L0007: JE G1f,#19 [FALSE] L0009 TEST_ATTR G16,#19 [FALSE] L0008 REMOVE_OBJ G16 PRINT_RET ""Mmm! Thanks! I still hate you, though."" L0008: PRINT_RET ""Bleurghh! Are you trying to poison me?"" L0009: RFALSE Routine R0146, 0 locals () JE G15,#44 [FALSE] L0001 PRINT_RET "That'll keep the vampires away." L0001: RFALSE Routine R0147, 0 locals () JE G15,#44 [FALSE] L0001 PRINT_RET "Peppers! Excellent." L0001: RFALSE Routine R0148, 0 locals () JE G15,#44 [FALSE] L0001 PRINT_RET "A tantalising aroma." L0001: RFALSE Routine R0149, 0 locals () JE G15,#2d [FALSE] L0001 CALL R0118 -> -(SP) POP RTRUE L0001: JE G15,#1b [TRUE] L0002 RFALSE L0002: JE G16,#0a,#0b [FALSE] L0003 RFALSE L0003: TEST_ATTR "little red car",#17 [FALSE] L0004 CALL R0043 (#00) -> -(SP) POP PRINT_RET "Brmm! Brmm!" L0004: PRINT "(The ignition is off at the moment.) " RFALSE Routine R0150, 0 locals () JE G15,#2d [FALSE] L0001 PRINT_RET "The car rolls very slowly as you push it." L0001: RFALSE Routine R0151, 0 locals () JE G15,#0d [TRUE] L0001 RFALSE L0001: GET_PARENT "Elvish-made sword" -> -(SP) JE G08,(SP)+ [TRUE] L0002 RFALSE L0002: PRINT_RET "As you take the clover, your sword shines a sudden burst of light!" Routine R0152, 0 locals () JE G15,#28 [FALSE] L0001 PRINT_RET "The shabby figure waves back at you." L0001: RFALSE Routine R0153, 0 locals () JE G15,#4c [FALSE] L0001 CALL R0043 (#02) -> -(SP) POP PRINT_RET "Unfluoridated and clear. You feel better." L0001: JE G15,#4d [FALSE] L0002 PRINT_RET "The water is too sacred." L0002: JE G15,#3c [FALSE] L0003 STORE G0a,#03 PRINT_RET "Your first reaction is, this is very cold water. Your second reaction is that it is also very inhabited water. What with the sea-serpent dragging you down to a rapid drowning (gurgling "that's for the white crystal ball, you greedy swine", perhaps mistaking you for someone else) there is no opportunity for a third opinion." L0003: RFALSE Routine R0154, 0 locals () JE G15,#0d [TRUE] L0001 RFALSE L0001: PRINT_RET "You flinch from touching the cube, which is white hot!" Routine R0155, 1 local (0000) TEST_ATTR "Loud Room",#18 [FALSE] L0001 RFALSE L0001: JE G15,#1b [FALSE] L0002 RFALSE L0002: LOADW G11,#01 -> L00 PRINT_ADDR L00 PRINT_CHAR ' ' PRINT_ADDR L00 PRINT_CHAR ' ' PRINT_ADDR L00 PRINT "... " JE G15,#51 [FALSE] L0003 RFALSE L0003: RTRUE Routine R0156, 0 locals () JE G15,#1b [TRUE] L0001 RFALSE L0001: JE G16,#05 [TRUE] L0002 RFALSE L0002: GET_PARENT "sullen snake" -> -(SP) JE #23,(SP)+ [FALSE] L0003 PRINT_RET "The snake, predictably, won't let you pass." L0003: PRINT "You dodge the sad old snake without difficulty. " RFALSE Routine R0157, 0 locals () JE G15,#2b [TRUE] L0001 RFALSE L0001: TEST_ATTR "hand grenade",#18 [FALSE] L0002 RFALSE L0002: CALL R0036 (#27,#05) -> -(SP) POP SET_ATTR "hand grenade",#18 PRINT_RET "You pull the pin out, an irrevocable act." Routine R0158, 0 locals () JE G15,#1b [TRUE] L0001 RFALSE L0001: JE G16,#09,#06 [FALSE] L0005 TEST_ATTR "spirit level",#18 [FALSE] L0004 JE G4c,#00 [FALSE] L0002 JUMP L0006 L0002: JE G4c,#01 [FALSE] L0003 JE G16,#09 [FALSE] L0003 JUMP L0006 L0003: JE G4c,#02 [FALSE] L0004 JE G16,#06 [FALSE] L0004 JUMP L0006 L0004: TEST_ATTR " ",#18 [TRUE] L0005 STOREW #42,#00,S051 SET_ATTR " ",#18 PRINT_RET "A voice booms out, "This is your only warning!" and stops you in your tracks." L0005: RFALSE L0006: STORE G0a,#01 PRINT_RET "To the sound of maniacal laughter, a thousand tons of rubble falls upon your head." Routine R0159, 0 locals () JE G15,#13 [TRUE] L0001 RFALSE L0001: JE G17,#2d [TRUE] L0002 RFALSE L0002: TEST_ATTR "spirit level",#18 [TRUE] L0003 RANDOM #02 -> G4c L0003: SET_ATTR "spirit level",#18 PRINT "You put the spirit level on the mantelpiece, and the bubble slowly drifts towards the " JE G4c,#01 [FALSE] L0004 PRINT_RET "northeast." L0004: PRINT_RET "southwest." Routine R0160, 0 locals () Action routine for: "help" PRINT_RET "Try "help credits" or "help instructions"." Routine R0161, 1 local (0000) Action routine for: "help SPECIAL" STORE L00,G19 NEW_LINE JE L00,"instru" [FALSE] L0001 PRINT_RET "This is Deja Vu, a demonstration game only. Do with it as you please. This unhelpful message is provided only so a help routine could been coded." L0001: JE L00,"credit" [FALSE] L0002 CALL R0032 -> -(SP) POP PRINT_RET " Release 2 is the second edition posted to the interactive-fiction archive. It is substantially rewritten. Updated versions may possibly follow. " L0002: PRINT_RET "There's no help on that, sorry." Routine R0162, 0 locals () RFALSE [End of code] [Start of text] S001: "DEJA VU" S002: " An Interactive Demonstration Copyright (c) 1993 by Graham Nelson. All rights given away. " S003: "a" S004: "You can't go that way." S005: "the" S006: "the" S007: "the" S008: "the" S009: "the" S010: "the" S011: "the" S012: "the" S013: "the" S014: "the" S015: "It is pitch dark, and you can't see a thing." S016: "the" S017: "You are in a large room, veined with quartz, with a passage to the south, a passage to the west, and a wall of broken rock to the east. There is a large "Y2" on a rock in the room's centre." S018: "The only paths through the rubble are west and south." S019: "the" S020: "The author of this demonstration has never, ever understood what the Y2 rock was for. Was it a grid reference? Or a question?" S021: "an" S022: "Large enough to sit inside. Among the controls is a prominent on/off switch. The numberplate is KAR 1." S023: "The red car sits here, its engine still running." S024: "A little red car is parked here." S025: " !!!! FROBOZZ MAGIC CAR COMPANY !!!! Hello, Driver! Instructions for use: Switch on the ignition and off you go! Warranty: This car is guaranteed against all defects for a period of 76 milliseconds from date of purchase or until used, whichever comes first. Good Luck!" S026: "You're at a low window overlooking a huge pit, which extends up out of sight. A floor is indistinctly visible over 50 feet below. Traces of white mist cover the floor of the pit, becoming thicker to the right. Marks in the dust around the window would seem to indicate that someone has been here recently. Directly across the pit from you and 25 feet away there is a similar window looking into a lighted room. A shadowy figure can be seen there peering back at you. A narrow crack in the rocks leads back down." S027: "an" S028: "You are in a dirty broken passage. To the east is a crawl. To the south is a large passage. Above you is another passage." S029: "In the north wall is an open iron door." S030: "In the north wall is a shut iron door." S031: "The door opened out onto a tiny ledge at the top of the Great Canyon on its west wall. From here there is a marvelous view of the canyon and parts of the Frigid River upstream. Across the canyon, the walls of the White Cliffs join the mighty ramparts of the Flathead Mountains to the east. Following the Canyon upstream to the north, Aragain Falls may be seen, complete with rainbow. The mighty Frigid River flows out from a great dark cavern. To the west and south can be seen an immense forest, stretching for miles around. It is absolutely impossible to climb down into the canyon from here." S032: "You are in a splendid chamber thirty feet high. The walls are frozen rivers of orange stone. An awkward canyon and a good passage exit from north and south sides of the chamber." S033: "Hanging mysteriously in mid-air, at about the height of a kitchen table, is an elongated brown sack, smelling of hot peppers." S034: "You are in a debris room filled with stuff washed in from the surface. A low wide passage with cobbles becomes plugged with mud and debris here, so that you could only just squeeze by northeast, but an awkward canyon leads north and steps lead up. A note on the wall says: Magic Word "XYZZY"" S035: "Labelled Frobozz Magic Ray Gun Co., it works on gerontological principles." S036: "You are at one end of a vast hall stretching forward out of sight to the west. There are bricked-up openings to either side. Nearby, a wide stone staircase leads downward. The hall is filled with wisps of white mist swaying to and fro almost as if alive. A cold wind blows up the staircase. There is a passage at the top of a dome behind you." S037: "Perhaps a boa constrictor. Perhaps not." S038: "an" S039: "A sad and decrepit echo of a once-great serpent." S040: "You are on the east bank of a fissure slicing clear across the hall. The mist is quite thick here, and the fissure is too wide to jump." S041: "A nasty-looking hand grenade (there is no other kind) rolls about on the floor here." S042: "You are at the edge of a large underground reservoir. An opaque cloud of white mist fills the room and rises rapidly upward. The lake is fed by a stream which tumbles out of a hole in the wall about 10 feet overhead and splashes noisily into the water somewhere within the mist. The only passages go north and east." S043: "Unlucky for some." S044: "Growing from a tuft of mould is a single two-leafed clover." S045: "This is a large room with a ceiling which cannot be detected from the ground. There is a narrow passage turning sharply from west to southwest. The room is deafeningly loud with an undetermined rushing sound. The sound seems to reverberate from all of the walls, making it difficult even to think." S046: "Exquisite." S047: "This is a medium-sized, quite unremarkable furnished sitting room, with skirting boards, floral wallpaper and a pine floor. Unremarkable that is... ...except for the huge red sign over the mantelpiece reading "TRAP", and the sage advice "Leave by the lowest way", which could be either of the northeast or southwest exits, for all you know." S048: "an" S049: "A length of wood containing a flask of viscous green liquid, in which a bubble is trapped." S050: "Paranoia Room" S051: "Trap Room" [End of text] [End of file]