home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
rtsi.com
/
2014.01.www.rtsi.com.tar
/
www.rtsi.com
/
OS9
/
OSK
/
GAMES
/
informosk.lha
/
dejavu.z3
(
.txt
)
< prev
next >
Wrap
Z-code for Z-machine
|
1993-12-07
|
28KB
|
3,628 lines
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 "<Adjective not found>"
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]