500 lines
10 KiB
Plaintext
500 lines
10 KiB
Plaintext
|
|
.SEGMENT "0"
|
|
|
|
|
|
.FUNCT FIND-DESCENDANTS,PARENT,FLAGS,F,FOBJ
|
|
SET 'F,FINDER
|
|
EQUAL? PARENT,GLOBAL-HERE \?CND1
|
|
SET 'PARENT,HERE
|
|
?CND1: FIRST? PARENT >FOBJ \TRUE
|
|
?PRG6: CALL2 VISIBLE?,FOBJ
|
|
ZERO? STACK /?CND8
|
|
BTST FLAGS,8 /?CND10
|
|
BTST FLAGS,1 \?PRF16
|
|
PUSH 1
|
|
JUMP ?PEN14
|
|
?PRF16: PUSH 0
|
|
?PEN14: CALL MATCH-OBJECT,FOBJ,F,STACK
|
|
ZERO? STACK /FALSE
|
|
?CND10: BTST FLAGS,4 \?CND8
|
|
FIRST? FOBJ \?CND8
|
|
EQUAL? FOBJ,WINNER /?CND8
|
|
FSET? FOBJ,SEARCHBIT \?PRD24
|
|
FSET? FOBJ,OPENBIT /?CCL18
|
|
FSET? FOBJ,TRANSBIT /?CCL18
|
|
?PRD24: FSET? FOBJ,SURFACEBIT \?CND8
|
|
?CCL18: BTST FLAGS,1 \?CCL33
|
|
PUSH 5
|
|
JUMP ?CND31
|
|
?CCL33: PUSH 4
|
|
?CND31: CALL FIND-DESCENDANTS,FOBJ,STACK
|
|
ZERO? STACK /FALSE
|
|
?CND8: NEXT? FOBJ >FOBJ /?PRG6
|
|
RTRUE
|
|
|
|
|
|
.FUNCT EXCLUDED?,FOBJ,F,EXC,PHRASE,CT,VEC,VV
|
|
GET F,8 >EXC
|
|
ZERO? EXC /FALSE
|
|
GET EXC,3 >PHRASE
|
|
GET PHRASE,1 >CT
|
|
ADD PHRASE,6 >VEC
|
|
?PRG6: DLESS? 'CT,0 \?CND8
|
|
SET 'VV,FALSE-VALUE
|
|
JUMP ?REP7
|
|
?CND8: GET VEC,0
|
|
EQUAL? FOBJ,STACK \?CND10
|
|
SET 'VV,TRUE-VALUE
|
|
?REP7: ZERO? VV \TRUE
|
|
GET EXC,1 >EXC
|
|
ZERO? EXC /FALSE
|
|
GET EXC,3 >PHRASE
|
|
GET PHRASE,1 >CT
|
|
ADD PHRASE,6 >VEC
|
|
JUMP ?PRG6
|
|
?CND10: ADD VEC,4 >VEC
|
|
JUMP ?PRG6
|
|
|
|
|
|
.FUNCT MATCH-OBJECT,FOBJ,F,INCLUDE?,NOUN,ADJS,APP,TB,RES,?TMP1
|
|
GET F,9 >RES
|
|
FSET? FOBJ,INVISIBLE /TRUE
|
|
GET F,6 >NOUN
|
|
EQUAL? NOUN,FALSE-VALUE,W?ONE /?PRD6
|
|
GETPT FOBJ,P?SYNONYM >TB
|
|
ZERO? TB /TRUE
|
|
PTSIZE TB
|
|
DIV STACK,2
|
|
INTBL? NOUN,TB,STACK \TRUE
|
|
?PRD6: GET F,7 >ADJS
|
|
ZERO? ADJS /?PRD11
|
|
CALL CHECK-ADJS,FOBJ,F,ADJS
|
|
ZERO? STACK /TRUE
|
|
?PRD11: GET F,5 >ADJS
|
|
ZERO? ADJS /?PRD14
|
|
CALL CHECK-ADJS,FOBJ,F,ADJS
|
|
ZERO? STACK /TRUE
|
|
?PRD14: CALL EXCLUDED?,FOBJ,F
|
|
ZERO? STACK \TRUE
|
|
GET F,1
|
|
BTST STACK,1 /?CTR2
|
|
CALL2 INVALID-OBJECT?,FOBJ
|
|
ZERO? STACK \TRUE
|
|
?CTR2: ZERO? INCLUDE? /TRUE
|
|
GET F,5 >ADJS
|
|
ZERO? ADJS /?CCL24
|
|
GET ADJS,4 >?TMP1
|
|
GETPT FOBJ,P?ADJECTIVE
|
|
PTSIZE STACK
|
|
DIV STACK,2
|
|
EQUAL? ?TMP1,STACK \?CCL24
|
|
PUT RES,1,1
|
|
PUT RES,2,FALSE-VALUE
|
|
PUT RES,4,FOBJ
|
|
EQUAL? FOBJ,HERE \FALSE
|
|
PUT RES,4,GLOBAL-HERE
|
|
RFALSE
|
|
?CCL24: GET F,0 >APP
|
|
ZERO? APP /?CCL31
|
|
GET F,1
|
|
BTST STACK,1 /?CCL31
|
|
GET RES,1
|
|
ZERO? STACK /?CTR35
|
|
GET F,2
|
|
ZERO? STACK /?CCL36
|
|
?CTR35: CALL ADD-OBJECT,FOBJ,F
|
|
RSTACK
|
|
?CCL36: CALL TEST-OBJECT,FOBJ,APP,F
|
|
ZERO? STACK /FALSE
|
|
GET RES,1
|
|
EQUAL? STACK,1 \?CCL43
|
|
GET RES,4
|
|
CALL TEST-OBJECT,STACK,APP,F
|
|
ZERO? STACK \?CCL46
|
|
PUT RES,4,FOBJ
|
|
EQUAL? FOBJ,HERE \TRUE
|
|
PUT RES,4,GLOBAL-HERE
|
|
RTRUE
|
|
?CCL46: CALL ADD-OBJECT,FOBJ,F
|
|
RSTACK
|
|
?CCL43: CALL ADD-OBJECT,FOBJ,F
|
|
RSTACK
|
|
?CCL31: ZERO? APP \?CCL50
|
|
GET F,1
|
|
BTST STACK,1 \?CTR52
|
|
GET F,2
|
|
ZERO? STACK /TRUE
|
|
?CTR52: CALL ADD-OBJECT,FOBJ,F
|
|
RSTACK
|
|
?CCL50: CALL TEST-OBJECT,FOBJ,APP,F
|
|
ZERO? STACK /TRUE
|
|
CALL ADD-OBJECT,FOBJ,F
|
|
RSTACK
|
|
|
|
|
|
.FUNCT TEST-OBJECT,FOBJ,APP,F,N,NN,?TMP1
|
|
BAND APP,65280
|
|
ZERO? STACK \?CCL3
|
|
BTST APP,128 \?CCL6
|
|
BAND APP,63
|
|
FSET? FOBJ,STACK /FALSE
|
|
RTRUE
|
|
?CCL6: FSET? FOBJ,APP /TRUE
|
|
RFALSE
|
|
?CCL3: GET APP,1
|
|
BTST STACK,256 \?CND12
|
|
GET APP,1
|
|
BAND STACK,63
|
|
GETP FOBJ,STACK >?TMP1
|
|
GET APP,2
|
|
EQUAL? ?TMP1,STACK /TRUE
|
|
RFALSE
|
|
?CND12: GET APP,0 >N
|
|
?PRG17: GET APP,N >NN
|
|
BTST NN,128 \?CCL21
|
|
BAND NN,63
|
|
FSET? FOBJ,STACK /?CND19
|
|
RTRUE
|
|
?CCL21: FSET? FOBJ,NN /TRUE
|
|
?CND19: DLESS? 'N,1 \?PRG17
|
|
RFALSE
|
|
|
|
|
|
.FUNCT ADD-OBJECT,OBJ,F,VEC,NC,DOIT?,SYN,WHICH,?TMP1
|
|
GET F,9 >VEC
|
|
SET 'DOIT?,TRUE-VALUE
|
|
GET F,3 >SYN
|
|
GET F,4 >WHICH
|
|
EQUAL? OBJ,HERE \?CND1
|
|
SET 'OBJ,GLOBAL-HERE
|
|
?CND1: GET F,2
|
|
ZERO? STACK \?CND3
|
|
ZERO? SYN /?CND3
|
|
GET VEC,1
|
|
EQUAL? 1,STACK \?CND3
|
|
CALL MULTIPLE-EXCEPTION?,OBJ,SYN,WHICH,F
|
|
ZERO? STACK /?CCL10
|
|
SET 'DOIT?,FALSE-VALUE
|
|
JUMP ?CND3
|
|
?CCL10: GET VEC,4
|
|
CALL MULTIPLE-EXCEPTION?,STACK,SYN,WHICH,F
|
|
ZERO? STACK /?CND3
|
|
PUT VEC,4,OBJ
|
|
SET 'DOIT?,FALSE-VALUE
|
|
?CND3: ZERO? DOIT? /TRUE
|
|
GET F,2
|
|
ZERO? STACK /?PRD17
|
|
GET F,3
|
|
ZERO? STACK /?PRD17
|
|
GET F,3 >?TMP1
|
|
GET F,4
|
|
CALL MULTIPLE-EXCEPTION?,OBJ,?TMP1,STACK,F
|
|
ZERO? STACK \TRUE
|
|
?PRD17: CALL NOT-IN-FIND-RES?,OBJ,VEC >WHICH
|
|
ZERO? WHICH /TRUE
|
|
GET VEC,1
|
|
ADD 1,STACK
|
|
PUT VEC,1,STACK
|
|
PUT WHICH,0,OBJ
|
|
GET F,2
|
|
EQUAL? STACK,NP-QUANT-A /FALSE
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NOT-IN-FIND-RES?,OBJ,VEC,NO-CHANGE?,CT,SZ,ANS,NVEC,NEW-OBJECT
|
|
GET VEC,1 >CT
|
|
GET VEC,0 >SZ
|
|
?PRG1: ADD VEC,8 >ANS
|
|
LESS? CT,1 \?CCL5
|
|
RETURN ANS
|
|
?CCL5: GRTR? CT,SZ \?CCL7
|
|
SUB CT,SZ >CT
|
|
JUMP ?CND3
|
|
?CCL7: SET 'SZ,CT
|
|
?CND3: INTBL? OBJ,ANS,SZ /FALSE
|
|
GET VEC,2 >NVEC
|
|
ZERO? NVEC /?CCL12
|
|
SET 'VEC,NVEC
|
|
SET 'SZ,FIND-RES-MAXOBJ
|
|
JUMP ?PRG1
|
|
?CCL12: LESS? SZ,FIND-RES-MAXOBJ \?CCL14
|
|
MUL 2,SZ
|
|
ADD ANS,STACK
|
|
RSTACK
|
|
?CCL14: ZERO? NO-CHANGE? \TRUE
|
|
SET 'SZ,FIND-RES-MAXOBJ
|
|
CALL DO-PMEM-ALLOC,7,9 >NEW-OBJECT
|
|
SET 'NVEC,NEW-OBJECT
|
|
PUT VEC,2,NVEC
|
|
ADD NVEC,8
|
|
RSTACK
|
|
|
|
|
|
.FUNCT EVERYWHERE-VERB?,WHICH,SYNTAX,SYN
|
|
ASSIGNED? 'WHICH /?CND1
|
|
GET FINDER,4 >WHICH
|
|
?CND1: ASSIGNED? 'SYNTAX /?CND3
|
|
GET PARSE-RESULT,3 >SYNTAX
|
|
?CND3: EQUAL? WHICH,1 \?CCL7
|
|
GETB SYNTAX,5 >SYN
|
|
JUMP ?CND5
|
|
?CCL7: GETB SYNTAX,9 >SYN
|
|
?CND5: BTST SYN,128 \FALSE
|
|
BTST SYN,64 \TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT MULTIPLE-EXCEPTION?,OBJ,SYNTAX,WHICH,F,L,VB
|
|
LOC OBJ >L
|
|
GET SYNTAX,0 >VB
|
|
EQUAL? OBJ,FALSE-VALUE,ROOMS \?CCL3
|
|
INC 'P-NOT-HERE
|
|
RTRUE
|
|
?CCL3: CALL EVERYWHERE-VERB?,WHICH,SYNTAX
|
|
ZERO? STACK \?CCL5
|
|
CALL2 ACCESSIBLE?,OBJ
|
|
ZERO? STACK /TRUE
|
|
?CCL5: EQUAL? VB,V?TAKE \?CCL9
|
|
GET F,6
|
|
ZERO? STACK \?CCL9
|
|
EQUAL? WHICH,1 \?CCL9
|
|
FSET? OBJ,TAKEBIT /?CCL15
|
|
FSET? OBJ,TRYTAKEBIT \TRUE
|
|
?CCL15: EQUAL? L,WINNER /TRUE
|
|
RFALSE
|
|
?CCL9: EQUAL? VB,V?DROP \FALSE
|
|
IN? OBJ,WINNER \TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT CHECK-ADJS,OBJ,F,ADJS,CNT,TMP,OWNER,ID,VEC,CT,ADJ,FL,OADJS,NUM,?TMP1
|
|
GETP OBJ,P?OWNER >OWNER
|
|
GETB ADJS,1
|
|
EQUAL? STACK,2 /?CCL2
|
|
GET ADJS,2 >TMP
|
|
ZERO? TMP /?CND1
|
|
?CCL2: SET 'ID,OWNER
|
|
LESS? 0,ID \?CCL7
|
|
SET 'ID,OWNER
|
|
GRTR? ID,LAST-OBJECT /?CCL7
|
|
EQUAL? OWNER,TMP,OBJ /?CND1
|
|
EQUAL? OWNER,ROOMS \?CCL14
|
|
GET OWNER-SR-HERE,4 >ID
|
|
JUMP ?CND1
|
|
?CCL14: GET OWNER-SR-THERE,1 >TMP
|
|
ZERO? TMP /FALSE
|
|
INTBL? OWNER,OWNER-SR-THERE+8,TMP /?CND1
|
|
RFALSE
|
|
?CCL7: ZERO? OWNER /?CCL19
|
|
GET OWNER-SR-HERE,1 >CNT
|
|
ZERO? CNT \?CCL22
|
|
SET 'ID,PLAYER
|
|
JUMP ?CND1
|
|
?CCL22: ADD OWNER,2 >TMP
|
|
SET 'VEC,OWNER-SR-HERE+8
|
|
?PRG24: DLESS? 'CNT,0 /FALSE
|
|
GET VEC,0 >?TMP1
|
|
GET OWNER,0
|
|
INTBL? ?TMP1,TMP,STACK >ID \?CCL30
|
|
GET ID,0 >ID
|
|
JUMP ?CND1
|
|
?CCL30: ADD VEC,2 >VEC
|
|
JUMP ?PRG24
|
|
?CCL19: LESS? 0,TMP \?CCL32
|
|
GRTR? TMP,LAST-OBJECT /?CCL32
|
|
CALL HELD?,OBJ,TMP
|
|
ZERO? STACK \?CND1
|
|
RFALSE
|
|
?CCL32: GET OWNER-SR-HERE,1 >TMP
|
|
ZERO? TMP /FALSE
|
|
LOC OBJ
|
|
INTBL? STACK,OWNER-SR-HERE+8,TMP >ID \FALSE
|
|
?CND1: EQUAL? ID,0,OBJ /?CND41
|
|
GET F,9
|
|
PUT STACK,3,ID
|
|
?CND41: GETB ADJS,1
|
|
EQUAL? STACK,2 /TRUE
|
|
ADD ADJS,10 >VEC
|
|
GET ADJS,4 >CT
|
|
GETPT OBJ,P?ADJECTIVE >OADJS
|
|
PTSIZE OADJS
|
|
DIV STACK,2 >NUM
|
|
?PRG45: DLESS? 'CT,0 /TRUE
|
|
GET VEC,CT >ADJ
|
|
SET 'ID,ADJ
|
|
EQUAL? ADJ,W?NO.WORD /?PRG45
|
|
INTBL? ID,OADJS,NUM /?PRG45
|
|
EQUAL? ID,W?CLOSED,W?SHUT \?CCL54
|
|
FSET? OBJ,OPENBIT \?PRG45
|
|
?CCL54: EQUAL? ID,W?OPEN \FALSE
|
|
FSET? OBJ,OPENBIT /?PRG45
|
|
RFALSE
|
|
|
|
|
|
.FUNCT FIND-OBJECTS,SEARCH,PARENT,GLBS,CONT?,N,RES,NEW-OBJECT,LOSING?,FLAG,?PR-FLAG,O,OBJ
|
|
ASSIGNED? 'SEARCH /?CND1
|
|
GET FINDER,4
|
|
EQUAL? 1,STACK \?CCL5
|
|
GET PARSE-RESULT,3
|
|
GETB STACK,5 >SEARCH
|
|
JUMP ?CND1
|
|
?CCL5: GET PARSE-RESULT,3
|
|
GETB STACK,9 >SEARCH
|
|
?CND1: SET 'CONT?,TRUE-VALUE
|
|
GET FINDER,9 >RES
|
|
PUT RES,1,0
|
|
PUT RES,2,FALSE-VALUE
|
|
ZERO? PARENT /?CCL8
|
|
CALL FIND-DESCENDANTS,PARENT,7
|
|
ZERO? STACK /?CND6
|
|
GET RES,1
|
|
ZERO? STACK \?CND6
|
|
?CCL8: ZERO? PARENT /?CND13
|
|
GET FINDER,5 >GLBS
|
|
ZERO? GLBS \?CND15
|
|
CALL DO-PMEM-ALLOC,1,8 >NEW-OBJECT
|
|
SET 'GLBS,NEW-OBJECT
|
|
PUT FINDER,5,GLBS
|
|
?CND15: GET GLBS,2
|
|
ZERO? STACK \?CND13
|
|
PUT GLBS,2,PARENT
|
|
?CND13: BTST SEARCH,128 \?CND19
|
|
BTST SEARCH,64 /?CND19
|
|
FIRST? GENERIC-OBJECTS \?CND19
|
|
FIRST? GENERIC-OBJECTS >NEW-OBJECT /?PRG25
|
|
?PRG25: CALL MATCH-OBJECT,NEW-OBJECT,FINDER,TRUE-VALUE
|
|
ZERO? STACK /?REP26
|
|
NEXT? NEW-OBJECT >NEW-OBJECT /?PRG25
|
|
?REP26: GET RES,1 >CONT?
|
|
ZERO? CONT? /?CND19
|
|
EQUAL? CONT?,1 /TRUE
|
|
RFALSE
|
|
?CND19: SET 'LOSING?,FALSE-VALUE
|
|
?PRG35: ZERO? LOSING? \?PRD40
|
|
BAND SEARCH,12
|
|
ZERO? STACK \?CCL38
|
|
?PRD40: ZERO? LOSING? /?CND37
|
|
?CCL38: ZERO? LOSING? \?CTR44
|
|
BTST SEARCH,8 \?CCL45
|
|
?CTR44: SET '?PR-FLAG,6
|
|
JUMP ?CND43
|
|
?CCL45: SET '?PR-FLAG,2
|
|
?CND43: ZERO? LOSING? \?CTR49
|
|
BAND SEARCH,12
|
|
ZERO? STACK /?CCL50
|
|
?CTR49: BOR 1,?PR-FLAG >FLAG
|
|
JUMP ?CND48
|
|
?CCL50: BAND ?PR-FLAG,-2 >FLAG
|
|
?CND48: ZERO? LOSING? \?CCL55
|
|
BTST SEARCH,4 /?CCL55
|
|
BOR 8,FLAG
|
|
JUMP ?CND53
|
|
?CCL55: BAND FLAG,-9
|
|
?CND53: CALL FIND-DESCENDANTS,WINNER,STACK >CONT?
|
|
?CND37: ZERO? LOSING? \?CCL59
|
|
BAND SEARCH,3
|
|
ZERO? STACK /?CND58
|
|
?CCL59: ZERO? LOSING? \?CTR63
|
|
BAND SEARCH,3
|
|
ZERO? STACK /?CCL64
|
|
?CTR63: SET '?PR-FLAG,3
|
|
JUMP ?CND62
|
|
?CCL64: SET '?PR-FLAG,2
|
|
?CND62: ZERO? LOSING? \?CTR69
|
|
BTST SEARCH,2 \?CCL70
|
|
?CTR69: BOR 4,?PR-FLAG >FLAG
|
|
JUMP ?CND68
|
|
?CCL70: BAND ?PR-FLAG,-5 >FLAG
|
|
?CND68: ZERO? LOSING? \?CCL75
|
|
BTST SEARCH,1 /?CCL75
|
|
BOR 8,FLAG
|
|
JUMP ?CND73
|
|
?CCL75: BAND FLAG,-9
|
|
?CND73: CALL FIND-DESCENDANTS,HERE,STACK >CONT?
|
|
?CND58: GET RES,1
|
|
ZERO? STACK \?CND6
|
|
BTST SEARCH,15 /?CND78
|
|
ZERO? LOSING? \?CND78
|
|
GET TLEXV,0 >GLBS
|
|
ZERO? GLBS /?CCL86
|
|
GETB GLBS,8
|
|
BTST STACK,128 /?CCL93
|
|
GETB GLBS,8
|
|
JUMP ?CND91
|
|
?CCL93: GETB GLBS,8
|
|
BAND STACK,127
|
|
SHIFT STACK,7
|
|
?CND91: ZERO? STACK \?CTR85
|
|
GET GLBS,3
|
|
ZERO? STACK /?CCL86
|
|
?CTR85: SET 'LOSING?,TRUE-VALUE
|
|
JUMP ?PRG35
|
|
?CCL86: BTST SEARCH,64 \?CND78
|
|
BTST SEARCH,128 \FALSE
|
|
?CND78: GETPT HERE,P?GLOBAL >GLBS
|
|
ZERO? GLBS /?CND97
|
|
PTSIZE GLBS
|
|
DIV STACK,2 >N
|
|
?PRG100: DLESS? 'N,0 /?CND97
|
|
GET GLBS,N >O
|
|
CALL MATCH-OBJECT,O,FINDER,TRUE-VALUE >CONT?
|
|
ZERO? CONT? /?CND97
|
|
FIRST? O \?PRG100
|
|
CALL SEARCH-IN-LG?,O
|
|
ZERO? STACK /?PRG100
|
|
BTST SEARCH,2 \?PRG100
|
|
CALL FIND-DESCENDANTS,O,FD-INCLUDE? >CONT?
|
|
ZERO? CONT? \?PRG100
|
|
?CND97: ZERO? CONT? /?CND114
|
|
CALL1 EXCLUDE-HERE-OBJECT?
|
|
ZERO? STACK \?CND114
|
|
CALL MATCH-OBJECT,HERE,FINDER,TRUE-VALUE >CONT?
|
|
?CND114: ZERO? CONT? /?CND118
|
|
GETP HERE,P?THINGS
|
|
ZERO? STACK /?CND118
|
|
CALL TEST-THINGS,HERE,FINDER >CONT?
|
|
?CND118: GET RES,1
|
|
ZERO? STACK /?CND122
|
|
SET 'CONT?,FALSE-VALUE
|
|
?CND122: ZERO? CONT? /?CND124
|
|
BTST SEARCH,2 \?CCL128
|
|
PUSH 5
|
|
JUMP ?CND126
|
|
?CCL128: PUSH 1
|
|
?CND126: CALL FIND-DESCENDANTS,GLOBAL-OBJECTS,STACK >CONT?
|
|
?CND124: ZERO? CONT? /?CND129
|
|
GET RES,1
|
|
ZERO? STACK \?CND129
|
|
GETP HERE,P?ADJACENT >GLBS
|
|
ZERO? GLBS /?CND129
|
|
GETB GLBS,0 >N
|
|
BAND SEARCH,-193 >O
|
|
?PRG134: GETB GLBS,N
|
|
ZERO? STACK /?CCL138
|
|
DEC 'N
|
|
GETB GLBS,N
|
|
ICALL FIND-OBJECTS,O,STACK
|
|
JUMP ?CND136
|
|
?CCL138: DEC 'N
|
|
?CND136: DLESS? 'N,1 \?PRG134
|
|
GET RES,1
|
|
ZERO? STACK /?CND129
|
|
SET 'CONT?,FALSE-VALUE
|
|
?CND129: ZERO? CONT? /?CND6
|
|
GET RES,1
|
|
ZERO? STACK \?CND6
|
|
CALL MOBY-FIND?,SEARCH
|
|
ZERO? STACK /?CND6
|
|
SET 'OBJ,1
|
|
?PRG148: FSET? OBJ,INVISIBLE /?CND150
|
|
CALL MATCH-OBJECT,OBJ,FINDER,TRUE-VALUE
|
|
ZERO? STACK /?CND6
|
|
?CND150: IGRTR? 'OBJ,LAST-OBJECT \?PRG148
|
|
?CND6: GET RES,1
|
|
EQUAL? STACK,1 /TRUE
|
|
RFALSE
|
|
|
|
.ENDSEG
|
|
|
|
.ENDI
|