Resident data ends at 1416, program starts at 1416, file ends at 4bb2 Starting analysis pass at address 1416 End of analysis pass, low address = 1416, high address = 4b16 [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,#0d9c 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,#0d9c 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 R0136 -> -(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 R0135 -> -(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 #0c56,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 R0141 -> -(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 R0141 -> -(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 R0134 -> -(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 #00 PRINT ", in " PRINT_NUM G07 PRINT " turns" CALL R0133 -> -(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 #01,#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 R0142 (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 #00 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,#64 [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 R0137 -> -(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 R0138 -> -(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 R0139 -> -(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 PRINT " Welcome to the shell... " RTRUE Routine R0133, 0 locals () PRINT ", earning you the rank of " PRINT_RET "vacancy." Routine R0134, 0 locals () RFALSE Routine R0135, 0 locals () RFALSE Routine R0136, 0 locals () RFALSE Routine R0137, 0 locals () RFALSE Routine R0138, 0 locals () RFALSE Routine R0139, 0 locals () RFALSE Routine R0140, 0 locals () RFALSE Routine R0141, 0 locals () RFALSE Routine R0142, 1 local (0000) STORE L00,#00 RFALSE [End of code] [Start of text] S001: "SHELL" S002: " An Interactive Skeleton Copyright (c) 1993 by (your name here). " 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: "An empty room." [End of text] [End of file]