.FUNCT V-STATEMENT:ANY:0:0 CALL1 V-DO? RSTACK .FUNCT V-BE:ANY:0:0,TMP,NOT?,ADJ?,LOC?,OBJ,PREP GET PARSE-RESULT,16 BAND PARSE-NOT,STACK >NOT? GET PARSE-RESULT,11 >ADJ? GET PARSE-RESULT,9 >LOC? EQUAL? PRSA,V?HOW /?CTR2 EQUAL? PRSA,V?WHEN,V?WHY,V?WHERE /?CTR2 EQUAL? PRSA,V?WHAT,V?WHO,V?BE? \?CCL3 ?CTR2: EQUAL? PRSI,INTADJ \?CCL9 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 CALL2 IS-PRSO-ADJ?,ADJ? ZERO? STACK \?CND10 PRINTI "n't" ?CND10: PRINTC 32 PRINTB ADJ? PRINTC 46 CRLF RTRUE ?CCL9: EQUAL? PRSI,INTPP \?CCL13 CALL1 P-PP-PREP >PREP ZERO? PREP /?CCL16 CALL1 P-PP-OBJ >OBJ ZERO? OBJ /?CCL16 EQUAL? PRSA,V?BE? \?CCL21 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 CALL RIGHT-PREP?,PREP,PRSO,OBJ ZERO? STACK \?CND22 PRINTI "n't" ?CND22: PRINTC 32 PRINTB PREP ICALL RT-PRINT-OBJ,OBJ,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL21: PRINTI "You want to know " ICALL1 TELL-Q-WORD ICALL2 PRSO-IS,NOT? PRINTC 32 PRINTB PREP ICALL RT-PRINT-OBJ,OBJ,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL16: PRINTI "You want to know " ICALL1 TELL-Q-WORD ICALL2 PRSO-IS,NOT? PRINTC 32 GET LOC?,1 PRINTB STACK PRINTC 32 GET LOC?,2 ICALL2 NP-PRINT,STACK PRINTC 46 CRLF RTRUE ?CCL13: ZERO? PRSI \?CCL25 EQUAL? PRSA,V?WHERE \?CCL25 LOC PRSO >LOC? IN? PRSO,HERE \?CCL30 ICALL PRSO-IS,FALSE-VALUE,TRUE-VALUE PRINTR " here." ?CCL30: EQUAL? LOC?,GLOBAL-OBJECTS \?CCL32 PRINTI "No doubt" ICALL RT-PRINT-OBJ,PRSO,K-ART-THE ICALL RT-PRINT-VERB,PRSO,STR?56 PRINTR " around here somewhere." ?CCL32: EQUAL? LOC?,LOCAL-GLOBALS \?CCL34 CALL GLOBAL-IN?,PRSO,HERE ZERO? STACK /?CCL34 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 PRINTR " nearby." ?CCL34: FSET? LOC?,FL-PERSON \?CCL38 ICALL RT-PRINT-OBJ,LOC?,K-ART-THE,TRUE-VALUE,STR?111 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL38: CALL2 META-LOC,PRSO EQUAL? STACK,HERE \?CCL40 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?56 ICALL2 RT-IN-ON-MSG,LOC? ICALL RT-PRINT-OBJ,LOC?,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL40: IN? LOC?,ROOMS \?CCL42 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE PRINTI " is probably " FSET? PRSO,TOUCHBIT \?CCL45 PRINTI "still in" ICALL RT-PRINT-OBJ,LOC?,K-ART-THE PRINTC 46 CRLF RTRUE ?CCL45: PRINTR "lying around somewhere." ?CCL42: PRINTI "That's an excellent question. Just where" ICALL RT-PRINT-VERB,PRSO,STR?56 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE PRINTC 63 CRLF RTRUE ?CCL25: PRINTI "You want to know " ICALL1 TELL-Q-WORD ICALL2 PRSO-IS,NOT? ZERO? PRSI /?CND46 ICALL RT-PRINT-OBJ,PRSI,K-ART-A ?CND46: PRINTC 63 CRLF RTRUE ?CCL3: EQUAL? PRSI,INTADJ \?CCL50 CALL2 IS-PRSO-ADJ?,ADJ? ZERO? STACK /?CCL53 ZERO? NOT? /?CCL56 PRINTI "Wrong," JUMP ?CND54 ?CCL56: PRINTI "Right," ?CND54: ICALL2 PRSO-IS,FALSE-VALUE JUMP ?CND51 ?CCL53: ZERO? NOT? /?CCL59 PRINTI "Right," JUMP ?CND57 ?CCL59: PRINTI "Wrong," ?CND57: ICALL2 PRSO-IS,TRUE-VALUE ?CND51: PRINTC 32 PRINTB ADJ? PRINTC 46 CRLF RTRUE ?CCL50: EQUAL? PRSI,INTPP \?CCL61 PRINTI "So, you say" ICALL2 PRSO-IS,NOT? CALL1 P-PP-PREP >PREP ZERO? PREP /?CCL64 CALL1 P-PP-OBJ >OBJ ZERO? OBJ /?CCL64 PRINTB PREP ICALL RT-PRINT-OBJ,OBJ,K-ART-THE JUMP ?CND62 ?CCL64: GET LOC?,1 PRINTB STACK GET LOC?,2 CALL2 NP-PRINT,STACK ICALL RT-PRINT-OBJ,STACK,K-ART-THE ?CND62: PRINTC 46 CRLF RTRUE ?CCL61: PRINTI "So you think" ICALL2 PRSO-IS,NOT? ZERO? PRSI /?CND67 ICALL RT-PRINT-OBJ,PRSI,K-ART-A ?CND67: PRINTC 63 CRLF RTRUE .FUNCT TELL-Q-WORD:ANY:0:0 EQUAL? PRSA,V?BE? \?CCL3 PRINTI "if" RTRUE ?CCL3: EQUAL? PRSA,V?WHY \?CCL5 PRINTI "why" RTRUE ?CCL5: EQUAL? PRSA,V?WHO \?CCL7 PRINTI "who" RTRUE ?CCL7: EQUAL? PRSA,V?WHAT \?CCL9 PRINTI "what" RTRUE ?CCL9: EQUAL? PRSA,V?WHERE \?CCL11 PRINTI "where" RTRUE ?CCL11: EQUAL? PRSA,V?WHEN \?CCL13 PRINTI "when" RTRUE ?CCL13: EQUAL? PRSA,V?HOW \?CCL15 PRINTI "how" RTRUE ?CCL15: PRINTB P-PRSA-WORD RTRUE .FUNCT RIGHT-PREP?:ANY:3:3,PREP,OBJ,CONT IN? OBJ,CONT \FALSE EQUAL? PREP,W?IN,W?INSIDE \?CCL5 CALL2 RT-SEE-INSIDE?,CONT ZERO? STACK /FALSE RTRUE ?CCL5: EQUAL? PREP,W?ON \FALSE FSET? CONT,FL-SURFACE /TRUE RFALSE .FUNCT IS-QUIET?:ANY:1:1,OBJ RTRUE .FUNCT IS-OUTSIDE?:ANY:1:1,OBJ FSET? HERE,FL-INDOORS /FALSE RTRUE .FUNCT IS-OPEN?:ANY:1:1,OBJ FSET? OBJ,FL-OPENABLE \FALSE FSET? OBJ,FL-OPEN /TRUE RFALSE .FUNCT IS-CLOSED?:ANY:1:1,OBJ FSET? OBJ,FL-OPENABLE \FALSE FSET? OBJ,FL-OPEN /FALSE RTRUE .FUNCT IS-LOCKED?:ANY:1:1,OBJ FSET? OBJ,FL-OPENABLE \FALSE FSET? OBJ,FL-LOCKED /TRUE RFALSE .FUNCT IS-UNLOCKED?:ANY:1:1,OBJ FSET? OBJ,FL-OPENABLE \FALSE FSET? OBJ,FL-LOCKED /FALSE RTRUE .FUNCT IS-DEAD?:ANY:1:1,OBJ FSET? OBJ,FL-PERSON \FALSE FSET? OBJ,FL-ALIVE /FALSE RTRUE .FUNCT IS-ALIVE?:ANY:1:1,OBJ FSET? OBJ,FL-PERSON \FALSE FSET? OBJ,FL-ALIVE /TRUE RFALSE .FUNCT IS-HERE?:ANY:1:1,OBJ,L LOC OBJ >L ?PRG1: ZERO? L /FALSE EQUAL? L,GLOBAL-OBJECTS,LOCAL-GLOBALS,ROOMS /FALSE EQUAL? L,HERE /TRUE LOC L >L JUMP ?PRG1 .FUNCT PRSO-IS:ANY:1:2,NOT?,CAP? ZERO? CAP? /?CCL3 ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE JUMP ?CND1 ?CCL3: ICALL RT-PRINT-OBJ,PRSO,K-ART-THE ?CND1: ICALL RT-PRINT-VERB,PRSO,STR?56 ZERO? NOT? /FALSE PRINTI "n't" RTRUE .FUNCT IS-PRSO-ADJ?:ANY:1:1,ADJ,TMP GETPT PRSO,P?ADJECTIVE >TMP ZERO? TMP /?CCL3 PTSIZE TMP DIV STACK,2 INTBL? ADJ,TMP,STACK /TRUE ?CCL3: GET ADJ-TABLE,0 INTBL? ADJ,ADJ-TABLE,STACK >TMP \FALSE GET TMP,1 CALL STACK,PRSO ZERO? STACK \TRUE RFALSE .FUNCT YES-BUT?:ANY:2:2,STR1,STR2 GET PARSE-RESULT,10 ZERO? STACK \FALSE ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE PRINTC 32 PRINT STR1 PRINTI ", but " PRINT STR2 ICALL RT-PRINT-OBJ,PRSO,K-ART-HE PRINTC 63 CRLF RTRUE .FUNCT V-CAN?:ANY:0:0 CALL YES-BUT?,STR?112,STR?113 RSTACK .FUNCT V-MAY?:ANY:0:0 CALL YES-BUT?,STR?113,STR?112 RSTACK .FUNCT V-DO?:ANY:0:0 GET PARSE-RESULT,10 ZERO? STACK \FALSE ICALL RT-PRINT-OBJ,PRSO,K-ART-THE,TRUE-VALUE,STR?66 PRINTR ", but why?" .FUNCT V-COULD?:ANY:0:0 CALL YES-BUT?,STR?114,STR?115 RSTACK .FUNCT V-WOULD?:ANY:0:0 CALL YES-BUT?,STR?115,STR?114 RSTACK .FUNCT V-SHOULD?:ANY:0:0 CALL YES-BUT?,STR?116,STR?117 RSTACK .FUNCT V-MIGHT?:ANY:0:0 CALL YES-BUT?,STR?118,STR?117 RSTACK .FUNCT V-WILL?:ANY:0:0 CALL YES-BUT?,STR?117,STR?116 RSTACK .FUNCT V-MUST?:ANY:0:0 CALL YES-BUT?,STR?119,STR?112 RSTACK .FUNCT V-BE?:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-WHO:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-WHAT:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-WHEN:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-WHERE:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-WHY:ANY:0:0 CALL1 V-BE RSTACK .FUNCT V-HOW:ANY:0:0 CALL1 V-BE RSTACK .ENDI