.FUNCT RT-GN-PAPER,TBL,LEN,PTR,OBJ,PAPER,CONT,C-PAPER,HELD,H-PAPER,GND,G-PAPER ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR INTBL? GL-P-IT-OBJECT,PTR,LEN \?PRG6 PRINTC 91 ICALL2 RT-CTHEO-PRINT,GL-P-IT-OBJECT PRINTC 93 CRLF RETURN GL-P-IT-OBJECT ?PRG6: MUL LEN,2 ADD TBL,STACK GRTR? PTR,STACK /?REP7 GET PTR,0 >OBJ LOC OBJ FSET? STACK,FL-SURFACE /?REP7 LOC OBJ EQUAL? STACK,CH-PLAYER \?CCL15 ZERO? HELD \?CCL18 SET 'HELD,TRUE-VALUE SET 'H-PAPER,OBJ JUMP ?CND11 ?CCL18: SET 'H-PAPER,FALSE-VALUE JUMP ?CND11 ?CCL15: LOC OBJ EQUAL? STACK,GL-PLACE-CUR \?CCL20 ZERO? GND \?CCL23 SET 'GND,TRUE-VALUE SET 'G-PAPER,OBJ JUMP ?CND11 ?CCL23: SET 'G-PAPER,FALSE-VALUE JUMP ?CND11 ?CCL20: ZERO? CONT \?CCL25 LOC OBJ FSET? STACK,FL-CONTAINER \?CCL25 LOC OBJ >CONT SET 'C-PAPER,OBJ JUMP ?CND11 ?CCL25: LOC OBJ FSET? STACK,FL-CONTAINER \?CND11 ZERO? CONT /?CND11 LOC OBJ EQUAL? STACK,CONT /?CND11 SET 'C-PAPER,FALSE-VALUE ?CND11: ADD PTR,2 >PTR JUMP ?PRG6 ?REP7: ZERO? OBJ /?CCL34 LOC OBJ FSET? STACK,FL-SURFACE \?CCL34 SET 'PAPER,OBJ JUMP ?CND32 ?CCL34: ZERO? H-PAPER /?CCL38 SET 'PAPER,H-PAPER JUMP ?CND32 ?CCL38: ZERO? G-PAPER /?CCL40 SET 'PAPER,G-PAPER JUMP ?CND32 ?CCL40: ZERO? C-PAPER /FALSE SET 'PAPER,C-PAPER ?CND32: PRINTC 91 ICALL2 RT-CTHEO-PRINT,PAPER PRINTC 93 CRLF CRLF RETURN PAPER .FUNCT RT-GN-GEM,TBL,LEN,PTR,OBJ,GEM,CONT,C-GEM,HELD,H-GEM,GND,G-GEM ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR INTBL? GL-P-IT-OBJECT,PTR,LEN \?CCL5 PRINTC 91 ICALL2 RT-CTHEO-PRINT,GL-P-IT-OBJECT PRINTC 93 CRLF CRLF RETURN GL-P-IT-OBJECT ?CCL5: EQUAL? GL-PLACE-CUR,RM-CLOCK-TOWER \?PRG10 IN? TH-SAPPHIRE,TH-CLAPPER \?PRG10 RETURN TH-SAPPHIRE ?PRG10: MUL LEN,2 ADD TBL,STACK GRTR? PTR,STACK /?REP11 GET PTR,0 >OBJ LOC OBJ EQUAL? STACK,CH-PLAYER \?CCL17 ZERO? HELD \?CCL20 SET 'HELD,TRUE-VALUE SET 'H-GEM,OBJ JUMP ?CND15 ?CCL20: SET 'H-GEM,FALSE-VALUE JUMP ?CND15 ?CCL17: LOC OBJ EQUAL? STACK,GL-PLACE-CUR \?CCL22 ZERO? GND \?CCL25 SET 'GND,TRUE-VALUE SET 'G-GEM,OBJ JUMP ?CND15 ?CCL25: SET 'G-GEM,FALSE-VALUE JUMP ?CND15 ?CCL22: LOC OBJ ZERO? STACK /?CCL27 ZERO? CONT \?CCL27 LOC OBJ FSET? STACK,FL-CONTAINER \?CCL27 LOC OBJ >CONT SET 'C-GEM,OBJ JUMP ?CND15 ?CCL27: LOC OBJ ZERO? STACK /?CND15 LOC OBJ FSET? STACK,FL-CONTAINER \?CND15 ZERO? CONT /?CND15 LOC OBJ EQUAL? STACK,CONT /?CND15 SET 'C-GEM,FALSE-VALUE ?CND15: ADD PTR,2 >PTR JUMP ?PRG10 ?REP11: ZERO? H-GEM /?CCL38 SET 'GEM,H-GEM JUMP ?CND36 ?CCL38: ZERO? G-GEM /?CCL40 SET 'GEM,G-GEM JUMP ?CND36 ?CCL40: ZERO? C-GEM /FALSE SET 'GEM,C-GEM ?CND36: PRINTC 91 ICALL2 RT-CTHEO-PRINT,GEM PRINTC 93 CRLF CRLF RETURN GEM .FUNCT RT-GN-PIGEON,TBL,LEN FSET? CH-TRAINED-PIGEON,FL-ALIVE /?CCL3 PRINTC 91 ICALL2 RT-CTHEO-PRINT,TH-DEAD-PIGEON PRINTC 93 CRLF CRLF RETURN TH-DEAD-PIGEON ?CCL3: PRINTC 91 ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTC 93 CRLF CRLF RETURN CH-TRAINED-PIGEON .FUNCT RT-GN-OAR,TBL,LEN EQUAL? GL-P-IT-OBJECT,TH-OAR-1,TH-OAR-2 \?CCL3 PRINTC 91 ICALL2 RT-CTHEO-PRINT,GL-P-IT-OBJECT PRINTC 93 CRLF CRLF RETURN GL-P-IT-OBJECT ?CCL3: PRINTC 91 ICALL2 RT-CTHEO-PRINT,TH-OAR-2 PRINTC 93 CRLF CRLF RETURN TH-OAR-2 .FUNCT RT-GN-BOX,TBL,LEN,PTR ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR INTBL? GL-P-IT-OBJECT,PTR,LEN \FALSE PRINTC 91 ICALL2 RT-CTHEO-PRINT,GL-P-IT-OBJECT PRINTC 93 CRLF CRLF RETURN GL-P-IT-OBJECT .FUNCT RT-GN-DOOR,TBL,LEN,PTR,OBJ,DOOR ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR ?PRG3: MUL LEN,2 ADD TBL,STACK GRTR? PTR,STACK /?REP4 GET PTR,0 >OBJ EQUAL? GL-PRSA,V?OPEN \?CCL10 FSET? OBJ,FL-OPENED /?CND8 ZERO? DOOR \FALSE SET 'DOOR,OBJ JUMP ?CND8 ?CCL10: EQUAL? GL-PRSA,V?CLOSE \?CND8 FSET? OBJ,FL-OPENED \?CND8 ZERO? DOOR \FALSE SET 'DOOR,OBJ ?CND8: ADD PTR,2 >PTR JUMP ?PRG3 ?REP4: ZERO? DOOR /?CND22 PRINTC 91 ICALL2 RT-CTHEO-PRINT,DOOR PRINTC 93 CRLF CRLF ?CND22: RETURN DOOR .FUNCT RT-GN-BOTTLE,TBL,LEN,PTR,OBJ,BOTTLE ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR ?PRG3: MUL LEN,2 ADD TBL,STACK GRTR? PTR,STACK /?REP4 GET PTR,0 >OBJ EQUAL? GL-PRSA,V?OPEN \?PRD11 ZERO? GL-NOW-PRSI? \?PRD11 FSET? OBJ,FL-OPENED \?CCL9 ?PRD11: EQUAL? GL-PRSA,V?CLOSE \?PRD15 ZERO? GL-NOW-PRSI? \?PRD15 FSET? OBJ,FL-OPENED /?CCL9 ?PRD15: EQUAL? GL-PRSA,V?PUT \?CND8 ZERO? GL-NOW-PRSI? /?CND8 FSET? OBJ,FL-OPENED \?CND8 ?CCL9: ZERO? BOTTLE \FALSE SET 'BOTTLE,OBJ ?CND8: ADD PTR,2 >PTR JUMP ?PRG3 ?REP4: ZERO? BOTTLE /?CND25 PRINTC 91 ICALL2 RT-CTHEO-PRINT,BOTTLE PRINTC 93 CRLF CRLF ?CND25: RETURN BOTTLE .FUNCT RT-GN-PILL,TBL,LEN,PTR,OBJ,PILL ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR CALL1 RT-TOUCH-VERB? ZERO? STACK /?CND3 ?PRG5: MUL LEN,2 ADD TBL,STACK GRTR? PTR,STACK /?CND3 GET PTR,0 >OBJ CALL2 RT-ACCESSIBLE?,OBJ ZERO? STACK /?CND10 ZERO? PILL \FALSE SET 'PILL,OBJ ?CND10: ADD PTR,2 >PTR JUMP ?PRG5 ?CND3: ZERO? PILL /?CND15 PRINTC 91 ICALL2 RT-CTHEO-PRINT,PILL PRINTC 93 CRLF CRLF ?CND15: RETURN PILL .FUNCT RT-GN-TH-CLOTHES,TBL,LEN RETURN TH-CLOTHES .FUNCT RT-GN-BODY,TBL,LEN,PTR,OBJ ZERO? LEN \?CND1 GET TBL,0 >LEN ?CND1: ADD TBL,2 >PTR INTBL? TH-CLOTHES,PTR,LEN \?PRG5 RETURN TH-CLOTHES ?PRG5: ZERO? LEN /FALSE GET PTR,0 >OBJ FSET? OBJ,FL-BODYPART \?CND7 RETURN OBJ ?CND7: ADD PTR,2 >PTR DEC 'LEN JUMP ?PRG5 .FUNCT RT-GN-INTNUM,TBL,LEN EQUAL? GL-PRSA,V?WAIT,V?WAIT-FOR /?CTR2 RETURN TH-SAFETY-DEPOSIT-BOX ?CTR2: RETURN TH-INTNUM .FUNCT RT-GN-ETHERIUM,TBL,LEN EQUAL? GL-PRSA,V?SMELL,V?INHALE \?CCL3 RETURN TH-ETHERIUM-GAS ?CCL3: EQUAL? GL-PRSA,V?MUNG,V?OPEN,V?LOOK-INSIDE \FALSE RETURN TH-ETHERIUM-AMPOULE .FUNCT RT-GN-TOWER,TBL,LEN RETURN LG-TOWER .ENDI