Final Revision
This commit is contained in:
374
be.zap
Normal file
374
be.zap
Normal file
@@ -0,0 +1,374 @@
|
||||
|
||||
|
||||
.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
|
||||
Reference in New Issue
Block a user