950 lines
22 KiB
Plaintext
950 lines
22 KiB
Plaintext
|
|
|
|
.FUNCT RANDOM-PSEUDO
|
|
PRINTR "You can't do anything useful with that."
|
|
|
|
|
|
.FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ
|
|
EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3
|
|
EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3
|
|
PRINTI "(Those things aren't here!)"
|
|
CRLF
|
|
RETURN 2
|
|
?ELS3: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS11
|
|
SET 'TBL,P-PRSO
|
|
JUMP ?CND1
|
|
?ELS11: SET 'TBL,P-PRSI
|
|
SET 'PRSO?,FALSE-VALUE
|
|
?CND1: EQUAL? PRSA,V?SEARCH-FOR,V?ASK-FOR,V?ASK-ABOUT \?CND14
|
|
FSET? PRSO,PERSONBIT \?CND14
|
|
IN? PRSO,GLOBAL-OBJECTS \?CND14
|
|
CALL2 NOT-HERE-PERSON,PRSO
|
|
RETURN 2
|
|
?CND14: ZERO? PRSO? /?ELS27
|
|
CALL1 PRSO-VERB?
|
|
ZERO? STACK \?THN24
|
|
?ELS27: ZERO? PRSO? \?CND21
|
|
CALL1 PRSI-VERB?
|
|
ZERO? STACK /?CND21
|
|
?THN24: CALL FIND-NOT-HERE,TBL,PRSO? >OBJ
|
|
ZERO? OBJ /FALSE
|
|
EQUAL? OBJ,NOT-HERE-OBJECT /?CND30
|
|
RETURN 2
|
|
?CND30:
|
|
?CND21: PRINTI "(You can't see any"
|
|
CALL1 NOT-HERE-PRINT
|
|
PRINTI " here!)"
|
|
CRLF
|
|
RETURN 2
|
|
|
|
|
|
.FUNCT PRSO-VERB?,V=0,W=0
|
|
ZERO? V \?CND1
|
|
SET 'V,PRSA
|
|
?CND1: ZERO? W \?CND4
|
|
SET 'W,WINNER
|
|
?CND4: CALL2 SPEAKING-VERB?,V
|
|
ZERO? STACK \TRUE
|
|
EQUAL? V,V?$WHERE,V?ASK-CONTEXT-ABOUT,V?ASK-CONTEXT-FOR /TRUE
|
|
EQUAL? V,V?$FCLEAR,V?$FSET,V?$QFSET /TRUE
|
|
EQUAL? V,V?BOARD,V?BUY,V?DISEMBARK /TRUE
|
|
EQUAL? V,V?EXAMINE,V?FIND,V?FOLLOW /TRUE
|
|
EQUAL? V,V?LEAVE,V?PHONE,V?THROUGH /TRUE
|
|
EQUAL? V,V?USE,V?WAIT-FOR,V?WALK-TO /TRUE
|
|
EQUAL? V,V?WHAT,V?PASS /TRUE
|
|
EQUAL? V,V?SHOOT,V?SIT,V?LIE /TRUE
|
|
EQUAL? W,PLAYER /FALSE
|
|
EQUAL? V,V?BRING,V?TAKE,V?SSHOW /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT PRSI-VERB?,V=0,W=0
|
|
ZERO? V \?CND1
|
|
SET 'V,PRSA
|
|
?CND1: ZERO? W \?CND4
|
|
SET 'W,WINNER
|
|
?CND4: EQUAL? V,V?$WHERE,V?ASK-ABOUT,V?ASK-FOR /TRUE
|
|
EQUAL? V,V?SEARCH-FOR,V?TAKE-TO,V?TELL-ABOUT /TRUE
|
|
EQUAL? V,V?SSHOOT /TRUE
|
|
EQUAL? W,PLAYER /FALSE
|
|
EQUAL? V,V?SBRING,V?SHOW /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT GEN-TEST,OBJ
|
|
IN? OBJ,HERE /TRUE
|
|
CALL2 CORRIDOR-LOOK,OBJ
|
|
ZERO? STACK \TRUE
|
|
EQUAL? PRSA,V?FOLLOW /?THN12
|
|
CALL1 REMOTE-VERB?
|
|
ZERO? STACK /FALSE
|
|
?THN12: FSET? OBJ,PERSONBIT \FALSE
|
|
FSET? OBJ,SEENBIT /TRUE
|
|
RFALSE
|
|
|
|
|
|
.FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ,LEN,CNT,LOCAL=0
|
|
CALL2 MOBY-FIND,TBL >M-F
|
|
ZERO? DEBUG /?CND1
|
|
PRINTI "[Found "
|
|
PRINTN M-F
|
|
PRINTI " objects]"
|
|
CRLF
|
|
EQUAL? 1,M-F /?CND1
|
|
PRINTI "[Namely: "
|
|
SET 'CNT,1
|
|
GET TBL,P-MATCHLEN >LEN
|
|
?PRG12: DLESS? 'LEN,0 \?ELS16
|
|
JUMP ?REP13
|
|
?ELS16: GET TBL,CNT
|
|
PRINTD STACK
|
|
PRINTI ", "
|
|
?CND14: INC 'CNT
|
|
JUMP ?PRG12
|
|
?REP13: PRINTI "]"
|
|
CRLF
|
|
?CND1: GRTR? M-F,1 \?CND23
|
|
SET 'CNT,0
|
|
?PRG26: IGRTR? 'CNT,M-F \?CND28
|
|
JUMP ?REP27
|
|
?CND28: GET TBL,CNT >OBJ
|
|
CALL2 GEN-TEST,OBJ
|
|
ZERO? STACK /?PRG26
|
|
IGRTR? 'LOCAL,1 \?ELS36
|
|
JUMP ?REP27
|
|
?ELS36: SET 'P-MOBY-FOUND,OBJ
|
|
JUMP ?PRG26
|
|
?REP27: EQUAL? LOCAL,1 \?CND23
|
|
SET 'M-F,1
|
|
?CND23: EQUAL? 1,M-F \?ELS46
|
|
ZERO? DEBUG /?CND47
|
|
PRINTI "[Namely: "
|
|
PRINTD P-MOBY-FOUND
|
|
PRINTI "]"
|
|
CRLF
|
|
?CND47: CALL1 REMOTE-VERB?
|
|
ZERO? STACK \?CND53
|
|
EQUAL? PRSA,V?$CALL /?CND53
|
|
CALL2 VISIBLE?,P-MOBY-FOUND
|
|
ZERO? STACK \?CND53
|
|
CALL2 NOT-HERE,P-MOBY-FOUND
|
|
RETURN TRUE-VALUE
|
|
?CND53: ZERO? PRSO? /?ELS60
|
|
SET 'PRSO,P-MOBY-FOUND
|
|
RFALSE
|
|
?ELS60: SET 'PRSI,P-MOBY-FOUND
|
|
RFALSE
|
|
?ELS46: LESS? 1,M-F \?ELS65
|
|
GET TBL,1 >OBJ
|
|
FSET? OBJ,PERSONBIT \?ELS65
|
|
SET 'CNT,1
|
|
GET TBL,P-MATCHLEN >LEN
|
|
?PRG68: GET TBL,CNT >OBJ
|
|
CALL2 GEN-TEST,OBJ
|
|
ZERO? STACK \?CND70
|
|
DEC 'LEN
|
|
CALL ELIMINATE,TBL,CNT,LEN
|
|
GRTR? CNT,LEN /?CND70
|
|
JUMP ?PRG68
|
|
?CND70: IGRTR? 'CNT,LEN \?PRG68
|
|
PUT TBL,P-MATCHLEN,LEN
|
|
ZERO? LEN \?ELS81
|
|
RETURN NOT-HERE-OBJECT
|
|
?ELS81: EQUAL? LEN,1 /?CND79
|
|
CALL WHICH-PRINT,0,LEN,TBL
|
|
EQUAL? TBL,P-PRSO \?ELS88
|
|
PUSH P-NC1
|
|
JUMP ?CND84
|
|
?ELS88: PUSH P-NC2
|
|
?CND84: SET 'P-ACLAUSE,STACK
|
|
SET 'P-AADJ,P-ADJ
|
|
SET 'P-ANAM,P-NAM
|
|
CALL ORPHAN,FALSE-VALUE,FALSE-VALUE
|
|
SET 'P-OFLAG,TRUE-VALUE
|
|
RTRUE
|
|
?CND79: ZERO? DEBUG /?CND91
|
|
PRINTI "[Corridor: "
|
|
PRINTD OBJ
|
|
PRINTI "]"
|
|
CRLF
|
|
?CND91: ZERO? PRSO? /?ELS99
|
|
SET 'PRSO,OBJ
|
|
RFALSE
|
|
?ELS99: SET 'PRSI,OBJ
|
|
RFALSE
|
|
?ELS65: LESS? 1,M-F \?ELS104
|
|
GET TBL,1 >OBJ
|
|
GETP OBJ,P?GENERIC
|
|
CALL STACK,TBL >OBJ
|
|
ZERO? OBJ /?ELS104
|
|
ZERO? DEBUG /?CND107
|
|
PRINTI "[Generic: "
|
|
PRINTD OBJ
|
|
PRINTI "]"
|
|
CRLF
|
|
?CND107: EQUAL? OBJ,NOT-HERE-OBJECT /TRUE
|
|
ZERO? PRSO? /?ELS117
|
|
SET 'PRSO,OBJ
|
|
RFALSE
|
|
?ELS117: SET 'PRSI,OBJ
|
|
RFALSE
|
|
?ELS104: ZERO? PRSO? \?ELS126
|
|
IN? PRSO,HERE \?ELS126
|
|
EQUAL? PRSA,V?TELL-ABOUT,V?ASK-FOR,V?ASK-ABOUT /?THN131
|
|
?ELS126: ZERO? PRSO? /?ELS128
|
|
CALL1 QCONTEXT-GOOD?
|
|
ZERO? STACK /?ELS128
|
|
EQUAL? PRSA,V?ASK-CONTEXT-FOR,V?ASK-CONTEXT-ABOUT /?THN131
|
|
?ELS128: EQUAL? WINNER,PLAYER /?ELS122
|
|
EQUAL? PRSA,V?SGIVE /?THN131
|
|
EQUAL? PRSA,V?GIVE,V?WHAT,V?FIND \?ELS122
|
|
?THN131: EQUAL? PRSA,V?ASK-FOR,V?ASK-ABOUT \?ELS135
|
|
SET 'LEN,PRSO
|
|
JUMP ?CND133
|
|
?ELS135: CALL1 QCONTEXT-GOOD?
|
|
ZERO? STACK /?ELS137
|
|
SET 'LEN,QCONTEXT
|
|
JUMP ?CND133
|
|
?ELS137: EQUAL? WINNER,PLAYER /?ELS139
|
|
SET 'LEN,WINNER
|
|
JUMP ?CND133
|
|
?ELS139: CALL FIND-FLAG,HERE,PERSONBIT,WINNER >OBJ
|
|
ZERO? OBJ /?ELS141
|
|
SET 'LEN,OBJ
|
|
JUMP ?CND133
|
|
?ELS141: SET 'LEN,GAME
|
|
?CND133: CALL2 START-SENTENCE,LEN
|
|
CALL HE-SHE-IT,LEN,-1,STR?6
|
|
PRINTI ", "
|
|
CALL1 PRODUCE-GIBBERISH
|
|
RTRUE
|
|
?ELS122: ZERO? PRSO? \?ELS147
|
|
PRINTI "You wouldn't find any"
|
|
CALL1 NOT-HERE-PRINT
|
|
PRINTR " there."
|
|
?ELS147: RETURN NOT-HERE-OBJECT
|
|
|
|
|
|
.FUNCT NOT-HERE-PRINT,?TMP1
|
|
ZERO? P-OFLAG \?THN6
|
|
ZERO? P-MERGED /?ELS5
|
|
?THN6: ZERO? P-XADJ /?CND8
|
|
PRINTI " "
|
|
PRINTB P-XADJ
|
|
?CND8: ZERO? P-XNAM /FALSE
|
|
PRINTI " "
|
|
PRINTB P-XNAM
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS23
|
|
GET P-ITBL,P-NC1 >?TMP1
|
|
GET P-ITBL,P-NC1L
|
|
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
|
RSTACK
|
|
?ELS23: GET P-ITBL,P-NC2 >?TMP1
|
|
GET P-ITBL,P-NC2L
|
|
CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE
|
|
RSTACK
|
|
|
|
|
|
.FUNCT GIVE-SHOW,P1,P2
|
|
EQUAL? PRSA,V?GIVE \?ELS5
|
|
EQUAL? PRSI,P1,P2 \FALSE
|
|
RETURN PRSO
|
|
?ELS5: EQUAL? PRSA,V?SHOW \FALSE
|
|
EQUAL? PRSO,P1,P2 \FALSE
|
|
RETURN PRSI
|
|
|
|
|
|
.FUNCT TICKET-F,COST,OBJ,TKT
|
|
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS5
|
|
PRINTI "All you can make out is the destination: "
|
|
GETP PRSO,P?CAPACITY
|
|
PRINTD STACK
|
|
EQUAL? PRSO,TICKET \?ELS10
|
|
ZERO? TICKET-VIA /?ELS10
|
|
PRINTI " via "
|
|
PRINTD TICKET-VIA
|
|
JUMP ?CND8
|
|
?ELS10: EQUAL? PRSO,TICKET-OTHER \?CND8
|
|
ZERO? TICKET-OTHER-VIA /?CND8
|
|
PRINTI " via "
|
|
PRINTD TICKET-OTHER-VIA
|
|
?CND8: PRINTR "."
|
|
?ELS5: CALL GIVE-SHOW,CONDUCTOR,GUARD >TKT
|
|
ZERO? TKT /?ELS24
|
|
EQUAL? TKT,PRSO \?ELS27
|
|
SET 'OBJ,PRSI
|
|
JUMP ?CND25
|
|
?ELS27: EQUAL? TKT,PRSI \?ELS29
|
|
SET 'OBJ,PRSO
|
|
JUMP ?CND25
|
|
?ELS29: PRINTI "[BUG #1]"
|
|
CRLF
|
|
?CND25: ZERO? ON-TRAIN \FALSE
|
|
CALL2 START-SENTENCE,OBJ
|
|
PRINTI " looks at"
|
|
CALL2 HIM-HER-IT,TKT
|
|
PRINTR " and points to this train track."
|
|
?ELS24: EQUAL? PRSA,V?BUY-TICKET,V?BUY \FALSE
|
|
EQUAL? PRSO,TICKET-OTHER,TICKET \FALSE
|
|
EQUAL? HERE,TICKET-AREA /?ELS47
|
|
CALL1 YOU-CANT
|
|
RTRUE
|
|
?ELS47: EQUAL? PRSA,V?BUY /?THN50
|
|
ZERO? PRSI \?CND45
|
|
?THN50: SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTR "(You didn't say where the ticket is for.)"
|
|
?CND45: GETP PRSI,P?NORTH >COST
|
|
GRTR? COST,0 \?THN57
|
|
FSET? PRSI,PERSONBIT \?ELS56
|
|
?THN57: PRINTI "You can't buy a ticket to"
|
|
CALL2 PRINTT,PRSI
|
|
PRINTR "."
|
|
?ELS56: GETP PLAYER,P?SOUTH
|
|
GRTR? COST,STACK \?CND54
|
|
PRINTR "You don't have enough money."
|
|
?CND54: GETP PLAYER,P?SOUTH
|
|
SUB STACK,COST
|
|
PUTP PLAYER,P?SOUTH,STACK
|
|
PUTP PRSO,P?CAPACITY,PRSI
|
|
CALL ZMEMZ,PRSI,TRAIN-TABLE
|
|
ZERO? STACK \?ELS67
|
|
EQUAL? SCENERY-OBJ,STATION-KNUT /?ELS67
|
|
EQUAL? PRSO,TICKET \?ELS72
|
|
SET 'TICKET-VIA,STATION-KNUT
|
|
JUMP ?CND65
|
|
?ELS72: EQUAL? PRSO,TICKET-OTHER \?CND65
|
|
SET 'TICKET-OTHER-VIA,STATION-KNUT
|
|
JUMP ?CND65
|
|
?ELS67: EQUAL? PRSO,TICKET \?ELS79
|
|
SET 'TICKET-VIA,FALSE-VALUE
|
|
JUMP ?CND65
|
|
?ELS79: EQUAL? PRSO,TICKET-OTHER \?CND65
|
|
SET 'TICKET-OTHER-VIA,FALSE-VALUE
|
|
?CND65: MOVE PRSO,PLAYER
|
|
CALL2 START-SENTENCE,CLERK
|
|
PRINTI " takes your money and stamps "
|
|
PRINTD PRSO
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT PASSPORT-F
|
|
EQUAL? PRSA,V?OPEN,V?READ \FALSE
|
|
CALL PERFORM,V?EXAMINE,PRSO,PRSI
|
|
RTRUE
|
|
|
|
|
|
.FUNCT CHECK-F,P
|
|
EQUAL? PRSA,V?ANALYZE \?ELS5
|
|
CALL PERFORM,V?EXAMINE,PRSO,PRSI
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?SHOW \?ELS7
|
|
EQUAL? PRSO,CLERK,WAITER \?ELS12
|
|
FSET? PEN,TOUCHBIT /?ELS12
|
|
MOVE PEN,PRSO
|
|
FCLEAR PEN,NDESCBIT
|
|
FSET PEN,TAKEBIT
|
|
CALL HE-SHE-IT,PRSO,TRUE-VALUE,STR?8
|
|
PRINTI " and"
|
|
CALL HE-SHE-IT,PRSO,-1,STR?9
|
|
PRINTI " "
|
|
CALL2 PRINTA,PEN
|
|
PRINTR "."
|
|
?ELS12: EQUAL? PRSO,WAITRESS,GUARD,CONDUCTOR \FALSE
|
|
CALL HE-SHE-IT,PRSO,TRUE-VALUE
|
|
PRINTI " shakes"
|
|
CALL HIM-HER-IT,PRSO,FALSE-VALUE,TRUE-VALUE
|
|
PRINTI " head and points "
|
|
EQUAL? HERE,CAFE \?ELS25
|
|
PRINTI "toward"
|
|
CALL2 HIM-HER-IT,TICKET-AREA
|
|
PRINTR "."
|
|
?ELS25: ZERO? ON-TRAIN \?ELS29
|
|
PRINTR "into the station."
|
|
?ELS29: LESS? CAR-HERE,DINER-CAR \?ELS33
|
|
PRINTR "to the rear."
|
|
?ELS33: GRTR? CAR-HERE,DINER-CAR \?ELS37
|
|
PRINTR "forward."
|
|
?ELS37: PRINTR "to a booth."
|
|
?ELS7: EQUAL? PRSA,V?USE,V?SIGN \FALSE
|
|
SET 'P,WAITER
|
|
IN? P,HERE /?THN51
|
|
SET 'P,CLERK
|
|
IN? P,HERE \FALSE
|
|
?THN51: EQUAL? PRSI,PEN /?THN58
|
|
FSET? PEN,TOUCHBIT \?THN58
|
|
LOC PEN
|
|
EQUAL? STACK,PLAYER,POCKET \?ELS57
|
|
?THN58: CALL2 START-SENTENCE,P
|
|
FSET? PEN,TOUCHBIT /?CND62
|
|
PRINTI " lends you a pen and then"
|
|
MOVE PEN,PLAYER
|
|
FCLEAR PEN,NDESCBIT
|
|
FSET PEN,TOUCHBIT
|
|
?CND62: MOVE CHECK,P
|
|
FCLEAR CHECK,TAKEBIT
|
|
GETP PLAYER,P?SOUTH
|
|
ADD 20,STACK
|
|
PUTP PLAYER,P?SOUTH,STACK
|
|
PRINTI " gives you "
|
|
PRINTC CURRENCY-SYMBOL
|
|
PRINTR "20 in exchange for the check."
|
|
?ELS57: CALL2 START-SENTENCE,P
|
|
PRINTR " shakes his head and shrugs his shoulders."
|
|
|
|
|
|
.FUNCT CAMERA-F
|
|
IN? CAMERA,POCKET \?CND1
|
|
EQUAL? PRSA,V?WIND /?THN6
|
|
EQUAL? PRSA,V?SHOOT,V?OPEN,V?LOOK-THROUGH /?THN6
|
|
EQUAL? PRSA,V?EXAMINE,V?CLOSE,V?AIM \?CND1
|
|
?THN6: MOVE CAMERA,PLAYER
|
|
?CND1: EQUAL? PRSA,V?AIM \?ELS12
|
|
EQUAL? PRSO,CAMERA \FALSE
|
|
PRINTR "Okay, then what?"
|
|
?ELS12: EQUAL? PRSA,V?EXAMINE \?ELS21
|
|
FSET? PRSO,OPENBIT /FALSE
|
|
IN? FILM,CAMERA \?ELS28
|
|
ZERO? CAMERA-COCKED \?ELS28
|
|
PRINTR "It looks as if it needs to be cocked."
|
|
?ELS28: PRINTI "Ah! Is this the masterwork of some paranoid genius in ""Q"" Section? A product of years of technological innovation, bordering on magic? Nah, it's just an ordinary "
|
|
PRINTD CAMERA
|
|
PRINTR " -- no weapons, no motors, nothing to break down. And it's closed."
|
|
?ELS21: EQUAL? PRSA,V?LOOK-THROUGH \?ELS38
|
|
PRINTR "Everything appears normal."
|
|
?ELS38: EQUAL? PRSA,V?OPEN \?ELS42
|
|
ZERO? CAMERA-COCKED /FALSE
|
|
PUT FILM-TBL,PICTURE-NUMBER,-1
|
|
RFALSE
|
|
?ELS42: EQUAL? PRSA,V?SHOOT \?ELS50
|
|
EQUAL? PRSI,CAMERA \FALSE
|
|
CALL PERFORM,V?PHOTO,PRSO,PRSI
|
|
RTRUE
|
|
?ELS50: EQUAL? PRSA,V?WIND \FALSE
|
|
FSET? CAMERA,OPENBIT /?THN61
|
|
IN? FILM,CAMERA \?THN61
|
|
ZERO? CAMERA-COCKED \?THN61
|
|
GRTR? PICTURE-NUMBER,3 \?ELS60
|
|
?THN61: PRINTR "You try to cock it, but the lever won't move."
|
|
?ELS60: INC 'PICTURE-NUMBER
|
|
SET 'CAMERA-COCKED,TRUE-VALUE
|
|
PRINTR "Okay."
|
|
|
|
|
|
.FUNCT FILM-F
|
|
EQUAL? PRSA,V?WIND \?ELS5
|
|
CALL PERFORM,PRSA,CAMERA
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE \FALSE
|
|
PRINTR "It looks like instant-developing film, in a special miniature format."
|
|
|
|
|
|
.FUNCT GLASS-F,X,CNT
|
|
EQUAL? PRSA,V?LOOK-THROUGH \?ELS5
|
|
PRINTR "Everything appears bigger."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE,V?READ \?ELS9
|
|
EQUAL? PRSI,GLASS \?ELS9
|
|
EQUAL? PRSO,FILM \?ELS16
|
|
PRINTI "With the aid of the magnifying glass you can just make out what's on the film."
|
|
ZERO? PICTURE-NUMBER \?CND19
|
|
PRINTR " The whole film is unexposed."
|
|
?CND19: CRLF
|
|
SET 'CNT,1
|
|
?PRG24: PRINTI "Picture "
|
|
PRINTN CNT
|
|
PRINTI " is "
|
|
GET FILM-TBL,CNT >X
|
|
ZERO? X \?ELS30
|
|
PRINTI "unexposed."
|
|
JUMP ?CND28
|
|
?ELS30: EQUAL? -1,X \?ELS34
|
|
PRINTI "fogged."
|
|
JUMP ?CND28
|
|
?ELS34: PRINTI "a picture of "
|
|
EQUAL? X,GLOBAL-OBJECTS \?ELS43
|
|
PRINTI "something you can't make out."
|
|
JUMP ?CND28
|
|
?ELS43: FSET? X,WINDOWBIT \?ELS47
|
|
PRINTI "a window."
|
|
JUMP ?CND28
|
|
?ELS47: ZERO? X /?ELS51
|
|
CALL2 PRINTA,X
|
|
PRINTI "."
|
|
JUMP ?CND28
|
|
?ELS51: PRINTI "nothing."
|
|
?CND28: CRLF
|
|
IGRTR? 'CNT,4 \?PRG24
|
|
RTRUE
|
|
?ELS16: EQUAL? PRSO,GLASS \?ELS63
|
|
CALL1 HAR-HAR
|
|
RSTACK
|
|
?ELS63: EQUAL? PRSO,PLAYER,MIRROR \?ELS65
|
|
PRINTR "You see yourself, only bigger and uglier than ever. Ugh!"
|
|
?ELS65: CALL HE-SHE-IT,PRSO,TRUE-VALUE,STR?10
|
|
PRINTR " the same, only much larger."
|
|
?ELS9: EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
|
|
EQUAL? PRSO,GLASS \FALSE
|
|
ZERO? PRSI /FALSE
|
|
CALL PERFORM,V?READ,PRSI,PRSO
|
|
RTRUE
|
|
|
|
|
|
.FUNCT MCGUFFIN-F
|
|
EQUAL? PRSA,V?MUNG \?ELS5
|
|
SET 'CLOCK-WAIT,TRUE-VALUE
|
|
PRINTR "(How do you want to do that?)"
|
|
?ELS5: EQUAL? PRSA,V?CHANGE \FALSE
|
|
EQUAL? PRSI,PEN \FALSE
|
|
FSET MCGUFFIN,LOCKED
|
|
PRINTI "With a deft hand, you alter"
|
|
CALL2 HIM-HER-IT,MCGUFFIN
|
|
PRINTR " in a subtle way so that it conveys serious disinformation."
|
|
|
|
|
|
.FUNCT SPY-LIST-F,X
|
|
EQUAL? PRSA,V?EAT \?ELS5
|
|
MOVE PRSO,LIMBO-FWD
|
|
PRINTR "Gulp!"
|
|
?ELS5: EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \?ELS9
|
|
ZERO? LIST-RUBBED /?ELS14
|
|
PRINTI "Examining the "
|
|
PRINTD SPY-LIST
|
|
CALL1 PAD-READ
|
|
RSTACK
|
|
?ELS14: EQUAL? P-ADVERB,W?CAREFULLY \?ELS19
|
|
PRINTI "There are some shiny lines on the "
|
|
PRINTD SPY-LIST
|
|
PRINTR ", maybe invisible ink."
|
|
?ELS19: PRINTI "There doesn't seem to be anything written on the "
|
|
PRINTD SPY-LIST
|
|
PRINTR "."
|
|
?ELS9: EQUAL? PRSA,V?HEAT \FALSE
|
|
ZERO? PRSI \?ELS32
|
|
PRINTR "It heats up like ordinary newsprint."
|
|
?ELS32: EQUAL? PRSI,LIGHTER \?ELS36
|
|
SET 'LIST-RUBBED,TRUE-VALUE
|
|
PRINTI "Heating"
|
|
CALL2 HIM-HER-IT,SPY-LIST
|
|
PRINTI " with"
|
|
CALL2 HIM-HER-IT,PRSI
|
|
CALL1 PAD-READ
|
|
RSTACK
|
|
?ELS36: PRINTI "Nothing "
|
|
ZERO? LIST-RUBBED /?CND43
|
|
PRINTI "new "
|
|
?CND43: PRINTR "appears."
|
|
|
|
|
|
.FUNCT PAD-READ,CNT,OBJ
|
|
FSET? SPY-LIST,MUNGBIT \?CND1
|
|
PRINTR " reveals nothing intelligible."
|
|
?CND1: PRINTI " shows two things written on it"
|
|
EQUAL? VARIATION,3,4 \?CND8
|
|
PRINTI ", which you easily translate into English"
|
|
?CND8: PRINTI ":
|
|
"
|
|
SET 'CNT,6
|
|
?PRG15: GET PASS-TABLE,CNT >OBJ
|
|
EQUAL? OBJ,PASSWORD,PASSOBJECT \?CND17
|
|
PRINTI " "
|
|
PRINTD OBJ
|
|
CRLF
|
|
?CND17: DLESS? 'CNT,1 \?PRG15
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BRIEFCASE-F,RARG=0
|
|
EQUAL? RARG,M-OBJDESC \?ELS5
|
|
PRINTI "A black briefcase with a chrome latch is here, "
|
|
FSET? BRIEFCASE,SURFACEBIT \?ELS12
|
|
PRINTR "closed."
|
|
?ELS12: PRINTR "open."
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS20
|
|
PRINTI "It's an expensive-looking case, built as sturdy as a tank."
|
|
EQUAL? P-ADVERB,W?CAREFULLY \?CND23
|
|
CALL1 CASE-CAREFUL
|
|
?CND23: CRLF
|
|
RTRUE
|
|
?ELS20: CALL1 REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
EQUAL? PRSA,V?MOVE,V?TAKE \?ELS29
|
|
EQUAL? PRSO,BRIEFCASE \?ELS29
|
|
LOC BRIEFCASE
|
|
FSET? STACK,PERSONBIT /FALSE
|
|
?ELS29: LOC BRIEFCASE
|
|
FSET? STACK,PERSONBIT \?ELS33
|
|
CALL2 NOT-HOLDING?,BRIEFCASE
|
|
ZERO? STACK \TRUE
|
|
?ELS33: EQUAL? PRSA,V?MOVE,V?TAKE \?ELS37
|
|
EQUAL? PRSO,BRIEFCASE \?ELS37
|
|
FSET? BRIEFCASE,OPENBIT \?ELS44
|
|
ZERO? PLAYER-SEATED \?ELS44
|
|
CALL TOO-BAD-BUT,BRIEFCASE,STR?12
|
|
RTRUE
|
|
?ELS44: FSET? BRIEFCASE,SURFACEBIT \FALSE
|
|
CALL2 OBJS-SLIDE-OFF,BRIEFCASE
|
|
RFALSE
|
|
?ELS37: EQUAL? PRSA,V?OPEN \?ELS50
|
|
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS55
|
|
CALL2 THIS-IS-IT,BRIEFCASE-LATCH
|
|
PRINTR "The latch is closed."
|
|
?ELS55: IN? BRIEFCASE,PLAYER \?ELS59
|
|
ZERO? PLAYER-SEATED \?ELS59
|
|
CALL2 TBL-FIRST?,BRIEFCASE-TBL
|
|
ZERO? STACK /?ELS59
|
|
PRINTR "You open it a crack before you realize that everything inside would fall out. You quickly close it again."
|
|
?ELS59: ZERO? LATCH-TURNED \?ELS65
|
|
FSET? BRIEFCASE,SURFACEBIT \?ELS65
|
|
CALL1 TELL-GAS
|
|
RSTACK
|
|
?ELS65: FSET BRIEFCASE,OPENBIT
|
|
CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL
|
|
RTRUE
|
|
?ELS50: EQUAL? PRSA,V?CLOSE \?ELS71
|
|
FCLEAR BRIEFCASE,OPENBIT
|
|
CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE
|
|
RSTACK
|
|
?ELS71: EQUAL? PRSA,V?LOOK-INSIDE \?ELS73
|
|
FSET? BRIEFCASE,OPENBIT /FALSE
|
|
CALL TOO-BAD-BUT,BRIEFCASE,STR?13
|
|
RTRUE
|
|
?ELS73: EQUAL? PRSA,V?SHAKE \FALSE
|
|
GET BRIEFCASE-TBL,1
|
|
ZERO? STACK /FALSE
|
|
PRINTR "Hmm. Something's in there."
|
|
|
|
|
|
.FUNCT TELL-GAS,YOU?=1
|
|
ZERO? YOU? /?ELS3
|
|
PRINTI "As the lid is lifted, you hear an explosion from inside the case. P"
|
|
JUMP ?CND1
|
|
?ELS3: PRINTI "Too late, you notice that the compartment is filled with p"
|
|
?CND1: PRINTI "ale yellow gas, practically invisible"
|
|
ZERO? YOU? /?CND13
|
|
PRINTI ", hisses out of tiny vents set into the briefcase's spine"
|
|
?CND13: PRINTI ". Holding your breath will not help: this cunning creation of the chemical warfare chaps is absorbed through the skin. Well, ""only the good die young."""
|
|
CRLF
|
|
CRLF
|
|
CALL1 FINISH
|
|
RSTACK
|
|
|
|
|
|
.FUNCT LATCH-F
|
|
CALL2 VISIBLE?,BRIEFCASE
|
|
ZERO? STACK \?ELS5
|
|
CALL2 NOT-HERE,BRIEFCASE-LATCH
|
|
RSTACK
|
|
?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS7
|
|
PRINTI "The latch on the briefcase is operated by sliding a short metal bar that points "
|
|
ZERO? LATCH-TURNED \?ELS12
|
|
PRINTI "away from "
|
|
JUMP ?CND10
|
|
?ELS12: PRINTI "toward "
|
|
?CND10: PRINTI "the handle of the briefcase. The latch is "
|
|
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS23
|
|
PRINTI "closed."
|
|
JUMP ?CND21
|
|
?ELS23: PRINTI "open."
|
|
?CND21: EQUAL? P-ADVERB,W?CAREFULLY \?CND30
|
|
CALL1 CASE-CAREFUL
|
|
?CND30: CRLF
|
|
RTRUE
|
|
?ELS7: CALL1 REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
LOC BRIEFCASE
|
|
FSET? STACK,PERSONBIT \?ELS36
|
|
CALL2 NOT-HOLDING?,BRIEFCASE
|
|
ZERO? STACK \TRUE
|
|
?ELS36: EQUAL? PRSA,V?TAKE,V?REMOVE \?ELS40
|
|
CALL1 YOU-CANT
|
|
RSTACK
|
|
?ELS40: EQUAL? PRSA,V?AIM,V?TURN \?ELS42
|
|
EQUAL? PRSO,BRIEFCASE-LATCH \?ELS42
|
|
ZERO? LATCH-TURNED \?PRD45
|
|
PUSH 1
|
|
JUMP ?PRD46
|
|
?PRD45: PUSH 0
|
|
?PRD46: SET 'LATCH-TURNED,STACK
|
|
PRINTR "A mechanical click comes from within the briefcase."
|
|
?ELS42: EQUAL? PRSA,V?CLOSE \?ELS50
|
|
FSET? BRIEFCASE,OPENBIT \?ELS55
|
|
CALL TOO-BAD-BUT,BRIEFCASE,STR?12
|
|
RTRUE
|
|
?ELS55: FSET? BRIEFCASE-LATCH,OPENBIT /?ELS57
|
|
CALL ALREADY,BRIEFCASE-LATCH,STR?13
|
|
RTRUE
|
|
?ELS57: CALL OKAY,BRIEFCASE-LATCH,STR?13
|
|
RSTACK
|
|
?ELS50: EQUAL? PRSA,V?RUB,V?SLIDE,V?MOVE /?THN64
|
|
EQUAL? PRSA,V?RAISE,V?OPEN,V?PUSH \FALSE
|
|
?THN64: EQUAL? PRSO,BRIEFCASE-LATCH \FALSE
|
|
FSET? BRIEFCASE-LATCH,OPENBIT /?ELS70
|
|
FSET BRIEFCASE-LATCH,OPENBIT
|
|
PRINTI "The metal latch snaps open."
|
|
ZERO? LATCH-TURNED \?CND73
|
|
PRINTI " At the same time, a loud thump comes from within the briefcase."
|
|
?CND73: CRLF
|
|
RTRUE
|
|
?ELS70: CALL ALREADY,PRSO,STR?12
|
|
RSTACK
|
|
|
|
|
|
.FUNCT CASE-CAREFUL
|
|
PRINTI " A careful examination shows that the latch can be turned as well as opened. And there are tiny vents set into the briefcase's spine."
|
|
RTRUE
|
|
|
|
|
|
.FUNCT BRIEFCASE-HANDLE-F
|
|
CALL1 REMOTE-VERB?
|
|
ZERO? STACK \FALSE
|
|
CALL2 VISIBLE?,BRIEFCASE
|
|
ZERO? STACK \?ELS7
|
|
CALL2 NOT-HERE,BRIEFCASE-HANDLE
|
|
RSTACK
|
|
?ELS7: EQUAL? PRSA,V?EXAMINE \FALSE
|
|
CALL1 NOTHING-SPECIAL
|
|
RSTACK
|
|
|
|
|
|
.FUNCT PLAQUE-F
|
|
EQUAL? PRSA,V?READ,V?EXAMINE,V?ANALYZE \FALSE
|
|
PRINTI "If you could read the language, it would say:
|
|
""This is the CHECKPOINT. All passengers who are crossing the frontier must pass through customs inspection before boarding the train.
|
|
CHECKPOINT is also a trademark and product of Infocom, Inc., "
|
|
GET CREDITS,0
|
|
SUB STACK,1
|
|
MOD VARIATION,STACK
|
|
ADD 1,STACK
|
|
CALL PICK-ONE-NEW,CREDITS,STACK
|
|
PRINT STACK
|
|
PRINTR "."""
|
|
|
|
|
|
.FUNCT TBL-FIRST?,TBL,OFFS=0,THING,MAX
|
|
GET TBL,0 >MAX
|
|
?PRG1: IGRTR? 'OFFS,MAX /FALSE
|
|
GET TBL,OFFS >THING
|
|
EQUAL? 0,THING /?PRG1
|
|
RETURN THING
|
|
|
|
|
|
.FUNCT TBL-TO-INSIDE,OBJ,TBL,STR=0,THING,OFFS=0,MAX
|
|
FSET? OBJ,SURFACEBIT /?CND1
|
|
CALL ALREADY,OBJ,STR?12
|
|
RTRUE
|
|
?CND1: FIRST? OBJ \?CND4
|
|
CALL2 OBJS-SLIDE-OFF,OBJ
|
|
?CND4: GET TBL,0 >MAX
|
|
ZERO? DEBUG \?THN10
|
|
ZERO? STR \?ELS9
|
|
?THN10: ZERO? STR /?CND7
|
|
PRINTC 91
|
|
PRINTI "Opened."
|
|
CRLF
|
|
JUMP ?CND7
|
|
?ELS9: EQUAL? STR,1 /?CND7
|
|
PRINT STR
|
|
CRLF
|
|
?CND7: FCLEAR OBJ,SURFACEBIT
|
|
?PRG22: IGRTR? 'OFFS,MAX \?ELS26
|
|
JUMP ?REP23
|
|
?ELS26: GET TBL,OFFS >THING
|
|
ZERO? THING /?PRG22
|
|
IN? OBJ,PLAYER \?CND29
|
|
FSET THING,TAKEBIT
|
|
?CND29: MOVE THING,OBJ
|
|
PUT TBL,OFFS,0
|
|
JUMP ?PRG22
|
|
?REP23: EQUAL? STR,1 /TRUE
|
|
FIRST? OBJ \TRUE
|
|
PRINTI "Opening"
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTI " reveals "
|
|
CALL2 PRINT-CONTENTS,OBJ
|
|
PRINTR "."
|
|
|
|
|
|
.FUNCT INSIDE-OBJ-TO,TBL,OBJ,STR=0,OFFS=0,F,N
|
|
FSET? OBJ,SURFACEBIT \?CND1
|
|
CALL ALREADY,OBJ,STR?13
|
|
RTRUE
|
|
?CND1: FSET OBJ,SURFACEBIT
|
|
ZERO? DEBUG \?THN7
|
|
ZERO? STR \?ELS6
|
|
?THN7: ZERO? STR /?CND9
|
|
PRINTC 91
|
|
?CND9: PRINTI "Closed."
|
|
CRLF
|
|
JUMP ?CND4
|
|
?ELS6: EQUAL? STR,1 /?CND4
|
|
PRINT STR
|
|
CRLF
|
|
?CND4: FIRST? OBJ >F \TRUE
|
|
?PRG22: ZERO? F /TRUE
|
|
SET 'N,F
|
|
NEXT? N >F /?KLU37
|
|
?KLU37: MOVE N,LIMBO-FWD
|
|
?PRG32: INC 'OFFS
|
|
GET TBL,OFFS
|
|
ZERO? STACK \?PRG32
|
|
PUT TBL,OFFS,N
|
|
JUMP ?PRG22
|
|
|
|
|
|
.FUNCT OBJS-SLIDE-OFF,OBJ,SLIDE=0,THERE,F,N
|
|
LOC OBJ >THERE
|
|
EQUAL? THERE,WINNER \?CND1
|
|
SET 'THERE,HERE
|
|
?CND1: FIRST? OBJ >F /?KLU22
|
|
?KLU22:
|
|
?PRG4: ZERO? F \?ELS8
|
|
JUMP ?REP5
|
|
?ELS8: SET 'N,F
|
|
NEXT? N >F /?KLU23
|
|
?KLU23: MOVE N,THERE
|
|
SET 'SLIDE,TRUE-VALUE
|
|
JUMP ?PRG4
|
|
?REP5: FIRST? OBJ >F /?KLU24
|
|
?KLU24: ZERO? SLIDE /FALSE
|
|
PRINTI "Everything on"
|
|
CALL2 HIM-HER-IT,OBJ
|
|
PRINTI " falls off."
|
|
CRLF
|
|
CRLF
|
|
RTRUE
|
|
|
|
|
|
.FUNCT NEWSPAPER-F
|
|
EQUAL? PRSA,V?OPEN \FALSE
|
|
PRINTR "You flip through the pages but find nothing readable."
|
|
|
|
|
|
.FUNCT CIGARETTE-F
|
|
EQUAL? PRSA,V?BUY \?ELS5
|
|
IN? MACHINE,HERE \FALSE
|
|
GETP PLAYER,P?SOUTH
|
|
GRTR? STACK,0 /?CND11
|
|
PRINTI "You dig in "
|
|
PRINTD POCKET
|
|
PRINTR " but find no cash."
|
|
?CND11: SET 'P-DOLLAR-FLAG,TRUE-VALUE
|
|
SET 'P-AMOUNT,1
|
|
CALL PERFORM,V?PUT-IN,INTNUM,MACHINE
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?LAMP-ON,V?SMOKE \FALSE
|
|
PRINTR "You think it over and decide that this mission is dangerous enough already."
|
|
|
|
|
|
.FUNCT LIGHTER-F
|
|
EQUAL? PRSA,V?HOLD-UNDER \?ELS5
|
|
EQUAL? PRSO,LIGHTER \FALSE
|
|
CALL PERFORM,V?HEAT,PRSI,PRSO
|
|
RTRUE
|
|
?ELS5: EQUAL? PRSA,V?LAMP-OFF \?ELS12
|
|
PRINTR "It stays off by itself!"
|
|
?ELS12: EQUAL? PRSA,V?LAMP-ON \FALSE
|
|
PRINTR "The lighter spurts to life for a minute until you turn it off again."
|
|
|
|
|
|
.FUNCT FLOWER-F
|
|
FSET? FLOWER-1,NDESCBIT \?ELS5
|
|
CALL2 SEARCHING-FOR?,FLOWER-1
|
|
RSTACK
|
|
?ELS5: FSET? FLOWER-2,NDESCBIT \FALSE
|
|
CALL2 SEARCHING-FOR?,FLOWER-2
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SEARCHING-FOR?,OBJ
|
|
EQUAL? PRSA,V?EXAMINE /?THN6
|
|
CALL2 SNEAKY-TAKE?,OBJ
|
|
ZERO? STACK /?ELS5
|
|
?THN6: PRINTI "You haven't found "
|
|
CALL2 PRINTA,OBJ
|
|
PRINTR " yet!"
|
|
?ELS5: IN? OBJ,HERE \FALSE
|
|
EQUAL? PRSA,V?FIND /?THN14
|
|
EQUAL? PRSA,V?SEARCH-FOR \FALSE
|
|
EQUAL? PRSI,OBJ \FALSE
|
|
?THN14: FCLEAR OBJ,NDESCBIT
|
|
FSET OBJ,TAKEBIT
|
|
MOVE OBJ,WINNER
|
|
PRINTI "You find "
|
|
CALL2 PRINTA,OBJ
|
|
PRINTR " in short order and take it."
|
|
|
|
|
|
.FUNCT BLOOD-SPOT-DESC,X
|
|
IN? BLOOD-SPOT,COMPARTMENT-START \FALSE
|
|
FSET? BLOOD-SPOT,TOUCHBIT \?ELS7
|
|
PRINTR "A spot of blood is still on the floor."
|
|
?ELS7: FSET BLOOD-SPOT,TOUCHBIT
|
|
PRINTR "Your sharp eyes notice a spot of blood on the floor."
|
|
|
|
|
|
.FUNCT FIND-SEARCH
|
|
EQUAL? PRSA,V?FIND \?ELS5
|
|
RETURN PRSO
|
|
?ELS5: EQUAL? PRSA,V?SEARCH-FOR \FALSE
|
|
RETURN PRSI
|
|
|
|
|
|
.FUNCT BLOOD-SPOT-F,OBJ
|
|
CALL1 FIND-SEARCH >OBJ
|
|
ZERO? OBJ /?ELS5
|
|
LOC OBJ
|
|
EQUAL? HERE,STACK \FALSE
|
|
FSET? OBJ,NDESCBIT \FALSE
|
|
FCLEAR OBJ,NDESCBIT
|
|
CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?21
|
|
PRINTR " it in short order."
|
|
?ELS5: EQUAL? PRSA,V?TAKE \?ELS16
|
|
PRINTI "You can't pick"
|
|
CALL2 HIM-HER-IT,PRSO
|
|
PRINTR " up with your bare hands!"
|
|
?ELS16: EQUAL? PRSA,V?BRUSH,V?TAKE-WITH \FALSE
|
|
EQUAL? PRSI,SPY-LIST /?THN26
|
|
ZERO? PRSI \FALSE
|
|
IN? SPY-LIST,WINNER \FALSE
|
|
?THN26: MOVE PRSO,SPY-LIST
|
|
FCLEAR PRSO,NDESCBIT
|
|
PRINTR "Okay."
|
|
|
|
|
|
.FUNCT KNIFE-F
|
|
CALL KNIFE-NAPKIN-F,KNIFE,COOK
|
|
RSTACK
|
|
|
|
|
|
.FUNCT KNIFE-NAPKIN-F,OBJ,PER
|
|
FSET? OBJ,NDESCBIT \FALSE
|
|
IN? PER,HERE \?ELS10
|
|
CALL2 BRIBED?,PER
|
|
ZERO? STACK \?ELS10
|
|
FCLEAR PER,TOUCHBIT
|
|
PUTP PER,P?LDESC,1
|
|
CALL2 START-SENTENCE,PER
|
|
PRINTI " says, "
|
|
CALL1 PRODUCE-GIBBERISH
|
|
RSTACK
|
|
?ELS10: CALL2 SEARCHING-FOR?,OBJ
|
|
RSTACK
|
|
|
|
|
|
.FUNCT NAPKIN-F
|
|
CALL KNIFE-NAPKIN-F,NAPKIN,WAITER
|
|
RSTACK
|
|
|
|
|
|
.FUNCT SNEAKY-TAKE?,OBJ
|
|
EQUAL? PRSO,OBJ \?ELS5
|
|
EQUAL? PRSA,V?TAKE /TRUE
|
|
GETB P-SYNTAX,P-SLOC1
|
|
BTST STACK,STAKE /TRUE
|
|
?ELS5: EQUAL? PRSI,OBJ \FALSE
|
|
GETB P-SYNTAX,P-SLOC2
|
|
BTST STACK,STAKE /TRUE
|
|
RFALSE
|
|
|
|
.ENDI
|