stationfall/verbs.zap

3749 lines
75 KiB
Plaintext
Raw Permalink Normal View History

2019-04-14 13:09:16 -07:00
.FUNCT V-VERBOSE
2019-04-14 13:09:56 -07:00
EQUAL? VERBOSITY,2 \?CCL3
PRINT ALREADY-IN-MODE
RTRUE
?CCL3: SET 'VERBOSITY,2
2019-04-14 13:09:16 -07:00
PRINTI "Maximum verbosity."
CRLF
CRLF
CALL V-LOOK
RSTACK
.FUNCT V-BRIEF
2019-04-14 13:09:56 -07:00
EQUAL? VERBOSITY,1 \?CCL3
PRINT ALREADY-IN-MODE
RTRUE
?CCL3: SET 'VERBOSITY,1
2019-04-14 13:09:16 -07:00
PRINTR "Brief descriptions."
.FUNCT V-SUPER-BRIEF
2019-04-14 13:09:56 -07:00
ZERO? VERBOSITY \?CCL3
PRINT ALREADY-IN-MODE
RTRUE
?CCL3: SET 'VERBOSITY,0
2019-04-14 13:09:16 -07:00
PRINTR "Superbrief descriptions."
.FUNCT V-SAVE
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
2019-04-14 13:11:30 -07:00
PUTB OOPS-INBUF,1,0
2019-04-14 13:09:16 -07:00
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
EQUAL? HERE,FACTORY /?CND1
PRINTI "Floyd's eyes light up. ""Oh boy! Are we gonna try something dangerous now?"""
CRLF
CRLF
2019-04-14 13:09:56 -07:00
?CND1: SAVE \?CCL9
2019-04-14 13:09:16 -07:00
PRINT OK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL9: PRINT FAILED
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-RESTORE
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
EQUAL? HERE,FACTORY /?CND1
PRINTI "Floyd looks disappointed but understanding. ""That part of the story was more fun,"" he sighs."
CRLF
CRLF
2019-04-14 13:09:56 -07:00
?CND1: RESTORE \?CCL9
2019-04-14 13:09:16 -07:00
PRINT OK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL9: PRINT FAILED
RTRUE
.FUNCT CONTINUE
2019-04-14 13:11:30 -07:00
PRINTI "[Hit RETURN/ENTER.]"
2019-04-14 13:09:56 -07:00
CRLF
PUTB P-LEXV,0,10
READ P-INBUF,P-LEXV
PUTB P-LEXV,0,60
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT TELL-SCORE
2019-04-14 13:11:30 -07:00
PRINTI "It is Day "
2019-04-14 13:09:16 -07:00
PRINTN DAY
PRINTI " of your adventure. "
CALL V-TIME,TRUE-VALUE
2019-04-14 13:11:30 -07:00
PRINTI " Your score is "
PRINTN SCORE
PRINTI " (of 80 points), giving you the rank of "
2019-04-14 13:09:56 -07:00
ZERO? SCORE \?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "Insignificant Nobody"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: LESS? SCORE,17 \?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "Rising Young Insignificant Nobody"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL5: LESS? SCORE,27 \?CCL7
2019-04-14 13:09:16 -07:00
PRINTI "One-Day Flash on the Evening News"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL7: LESS? SCORE,40 \?CCL9
2019-04-14 13:09:16 -07:00
PRINTI "Footnote in History"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL9: LESS? SCORE,50 \?CCL11
2019-04-14 13:09:16 -07:00
PRINTI "International VIP"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL11: LESS? SCORE,65 \?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "Interplanetary Star"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL13: LESS? SCORE,80 \?CCL15
2019-04-14 13:09:16 -07:00
PRINTI "Interstellar Superstar"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL15: PRINTI "Intergalactic Mega-Hero"
2019-04-14 13:09:16 -07:00
?CND1: PRINT PERIOD-CR
RTRUE
.FUNCT V-SCRIPT
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
EQUAL? HERE,FACTORY /?CND1
2019-04-14 13:11:30 -07:00
PRINTI " ""Uh oh,"" frets Floyd. ""Once printer is on, Floyd will have to be careful not to use any of the bad words he learned aboard the Duffy!"""
2019-04-14 13:09:16 -07:00
CRLF
?CND1: GET 0,8
BOR STACK,1
PUT 0,8,STACK
2019-04-14 13:11:30 -07:00
CALL CORP-NOTICE,STR?11
2019-04-14 13:09:16 -07:00
CALL V-VERSION
RSTACK
.FUNCT V-UNSCRIPT
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
EQUAL? HERE,FACTORY /?CND1
PRINTI " Floyd nods his approval. ""Good idea. Printer paper expensive. Best to save for important scenes. Not like this one."""
CRLF
2019-04-14 13:11:30 -07:00
?CND1: CALL CORP-NOTICE,STR?12
2019-04-14 13:09:16 -07:00
CALL V-VERSION
GET 0,8
BAND STACK,-2
PUT 0,8,STACK
RTRUE
.FUNCT CORP-NOTICE,STRING
PRINTI "Here "
PRINT STRING
2019-04-14 13:09:56 -07:00
PRINTR " a transcript of interaction with STATIONFALL."
2019-04-14 13:09:16 -07:00
.FUNCT V-DIAGNOSE
SET 'C-ELAPSED,18
2019-04-14 13:09:56 -07:00
EQUAL? HERE,FACTORY \?CCL3
2019-04-14 13:11:30 -07:00
PRINTR "We're talking adrenaline. Lots of adrenalin."
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "You feel "
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL6
2019-04-14 13:09:16 -07:00
PRINTI "numb. "
2019-04-14 13:11:30 -07:00
CALL YOURE-STUNNED
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:11:30 -07:00
?CCL6: ZERO? SLEEPY-LEVEL \?CCL8
2019-04-14 13:09:16 -07:00
PRINTI "well-rested"
2019-04-14 13:09:56 -07:00
JUMP ?CND4
2019-04-14 13:11:30 -07:00
?CCL8: EQUAL? SLEEPY-LEVEL,1 \?CCL11
2019-04-14 13:09:16 -07:00
PRINTI "sort of"
2019-04-14 13:11:30 -07:00
JUMP ?CND9
?CCL11: EQUAL? SLEEPY-LEVEL,2 \?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "quite"
2019-04-14 13:11:30 -07:00
JUMP ?CND9
?CCL13: PRINTI "phenomenally"
?CND9: PRINTI " tired"
?CND4: ZERO? SLEEPY-LEVEL \?PRD18
GRTR? HUNGER-LEVEL,0 /?CTR15
?PRD18: GRTR? SLEEPY-LEVEL,0 \?CCL16
ZERO? HUNGER-LEVEL \?CCL16
?CTR15: PRINTI ", but"
JUMP ?CND14
?CCL16: PRINTI ", and"
?CND14: PRINTI " you are "
ZERO? HUNGER-LEVEL \?CCL25
2019-04-14 13:09:16 -07:00
PRINTI "well-fed"
2019-04-14 13:11:30 -07:00
JUMP ?CND23
?CCL25: EQUAL? HUNGER-LEVEL,1 \?CCL28
2019-04-14 13:09:16 -07:00
PRINTI "fairly"
2019-04-14 13:11:30 -07:00
JUMP ?CND26
?CCL28: EQUAL? HUNGER-LEVEL,2 \?CCL30
2019-04-14 13:09:56 -07:00
PRINTI "very"
2019-04-14 13:11:30 -07:00
JUMP ?CND26
?CCL30: PRINTI "awesomely"
?CND26: PRINTI " hungry and thirsty"
?CND23: PRINTR ". In all other respects, you are in good health."
2019-04-14 13:09:16 -07:00
.FUNCT V-INVENTORY
SUB 0,WORNBIT >D-BIT
SET 'C-ELAPSED,18
ADD D-ALL?,D-PARA?
CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,STACK
ZERO? STACK \?CND1
PRINTI "You are empty-handed."
?CND1: SET 'D-BIT,WORNBIT
ADD D-ALL?,D-PARA?
CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,STACK
SET 'D-BIT,FALSE-VALUE
CRLF
RTRUE
.FUNCT V-QUIT
CALL TELL-SCORE
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
EQUAL? HERE,FACTORY /?CND1
PRINTI " Floyd grins impishly. ""Giving up, huh?"""
CRLF
2019-04-14 13:11:30 -07:00
?CND1: CALL DO-YOU-WISH,STR?13
2019-04-14 13:09:16 -07:00
CALL YES?
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL9
2019-04-14 13:09:16 -07:00
QUIT
RTRUE
2019-04-14 13:09:56 -07:00
?CCL9: PRINT OK
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-RESTART
CALL TELL-SCORE
CALL VISIBLE?,FLOYD
ZERO? STACK /?CND1
FSET? FLOYD,TOUCHBIT \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
FSET? ROBOT-POOL,TOUCHBIT \?CND1
EQUAL? HERE,ROBOT-POOL /?CND1
PRINTI " Floyd rolls his eyes. ""We're gonna have to go through that stupid scene in the Robot Pool again?"""
CRLF
2019-04-14 13:11:30 -07:00
?CND1: CALL DO-YOU-WISH,STR?14
2019-04-14 13:09:16 -07:00
CALL YES?
ZERO? STACK /FALSE
PRINTI "Restarting."
CRLF
RESTART
PRINT FAILED
RTRUE
.FUNCT DO-YOU-WISH,STRING
CRLF
PRINTI "Do you wish to "
PRINT STRING
PRINTI "? (Y is affirmative): "
RTRUE
.FUNCT YES?
?FCN: PRINTC 62
READ P-INBUF,P-LEXV
GET P-LEXV,1
CALL YES-WORD,STACK
ZERO? STACK \TRUE
GET P-LEXV,1
CALL NO-WORD,STACK
ZERO? STACK \FALSE
GET P-LEXV,1
EQUAL? STACK,W?N /FALSE
PRINTI "Please answer YES or NO. "
JUMP ?FCN
.FUNCT FINISH,REPEATING=0,CNT=0
?PRG1: CRLF
ZERO? REPEATING \?CND3
SET 'REPEATING,TRUE-VALUE
CALL TELL-SCORE
2019-04-14 13:11:30 -07:00
?CND3: PRINTI " According to the Treaty of Gishen IV (amended after the Battle on Sorkin III in 11347 GY) you have the opportunity to restart the story, restore a saved position, or end this session of the game. In the interests of interstellar peace, type RESTART, RESTORE, or QUIT: >"
2019-04-14 13:09:16 -07:00
PUTB P-LEXV,0,10
READ P-INBUF,P-LEXV
PUTB P-LEXV,0,60
INC 'CNT
GET P-LEXV,1
2019-04-14 13:09:56 -07:00
EQUAL? STACK,W?RESTAR \?CCL7
2019-04-14 13:09:16 -07:00
RESTART
PRINT FAILED
JUMP ?PRG1
2019-04-14 13:09:56 -07:00
?CCL7: GET P-LEXV,1
EQUAL? STACK,W?RESTOR \?CCL9
RESTORE /?CCL9
2019-04-14 13:09:16 -07:00
PRINT FAILED
JUMP ?PRG1
2019-04-14 13:09:56 -07:00
?CCL9: GET P-LEXV,1
EQUAL? STACK,W?QUIT,W?Q /?CCL12
2019-04-14 13:09:16 -07:00
GRTR? CNT,10 \?PRG1
2019-04-14 13:09:56 -07:00
?CCL12: QUIT
2019-04-14 13:09:16 -07:00
JUMP ?PRG1
.FUNCT V-SCORE
PRINTI "You're currently getting "
2019-04-14 13:09:56 -07:00
ZERO? VERBOSITY \?CCL3
PRINTI "superbrief"
2019-04-14 13:09:16 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? VERBOSITY,1 \?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "brief"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL5: PRINTI "verbose"
2019-04-14 13:09:16 -07:00
?CND1: PRINTI " descriptions. "
CALL TELL-SCORE
RSTACK
.FUNCT V-VERSION,CNT=17,V
GET 0,1
BAND STACK,2047 >V
PRINTI "STATIONFALL
Infocom interactive fiction -- a science fiction story
Copyright (c) 1987 by Infocom, Inc. All rights reserved.
STATIONFALL is a trademark of Infocom, Inc.
Release "
PRINTN V
PRINTI " / Serial number "
?PRG1: IGRTR? 'CNT,23 /?REP2
GETB 0,CNT
PRINTC STACK
JUMP ?PRG1
?REP2: CRLF
CALL VISIBLE?,FLOYD
ZERO? STACK /FALSE
FSET? FLOYD,TOUCHBIT \FALSE
FSET? FLOYD,ACTIVEBIT \FALSE
EQUAL? HERE,FACTORY /FALSE
PRINTR " Floyd looks out at you, right through your computer screen. ""See that copyright notice?"" he asks in a defiant tone. ""If anyone tries pirating this disk, they'll have Floyd to answer to."""
.FUNCT V-$COMMAND
DIRIN 1
RTRUE
.FUNCT V-$RANDOM
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,INTNUM /?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "Bug1"
2019-04-14 13:09:56 -07:00
?CCL3: SUB 0,P-NUMBER
2019-04-14 13:09:16 -07:00
RANDOM STACK
RTRUE
.FUNCT V-$RECORD
DIROUT D-RECORD-ON
RTRUE
.FUNCT V-$UNRECORD
DIROUT D-RECORD-OFF
RTRUE
.FUNCT V-$VERIFY
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,INTNUM \?CCL3
EQUAL? P-NUMBER,69 \?CCL3
2019-04-14 13:09:16 -07:00
PRINTN SERIAL
CRLF
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "Verifying."
2019-04-14 13:09:16 -07:00
CRLF
2019-04-14 13:09:56 -07:00
VERIFY \?CCL8
2019-04-14 13:09:16 -07:00
PRINT OK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL8: PRINTR "** Bad **"
2019-04-14 13:09:16 -07:00
.FUNCT V-ALARM
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:11:30 -07:00
CALL PERFORM,PRSA,ME
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "But"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " isn't asleep."
.FUNCT V-ANSWER
2019-04-14 13:09:56 -07:00
ZERO? AWAITING-REPLY /?CCL3
2019-04-14 13:09:16 -07:00
GET P-LEXV,P-CONT
CALL YES-WORD,STACK
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
CALL V-YES
2019-04-14 13:11:30 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? AWAITING-REPLY /?CCL7
2019-04-14 13:09:16 -07:00
GET P-LEXV,P-CONT
CALL NO-WORD,STACK
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL7
2019-04-14 13:09:16 -07:00
CALL V-NO
2019-04-14 13:11:30 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL7: PRINTI "Nobody is awaiting your answer."
2019-04-14 13:09:16 -07:00
CRLF
2019-04-14 13:11:30 -07:00
?CND1: CALL STOP
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-APPLAUD
PRINTI """Clap."""
CRLF
IN? OSTRICH,HERE \TRUE
PRINTI " "
CALL PERFORM,V?SCARE,OSTRICH
RTRUE
.FUNCT V-APPLY
2019-04-14 13:09:56 -07:00
FSET? PRSO,WEARBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?WEAR,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: SET 'AWAITING-REPLY,1
2019-04-14 13:09:16 -07:00
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTI "Apply"
CALL TPRINT-PRSO
PRINTR " for what? A job?"
.FUNCT V-ASK-ABOUT,OWINNER
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ME \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?TELL,ME
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,ACTORBIT \?CCL5
2019-04-14 13:09:16 -07:00
SET 'OWINNER,WINNER
SET 'WINNER,PRSO
CALL PERFORM,V?TELL-ABOUT,ME,PRSI
SET 'WINNER,OWINNER
CALL THIS-IS-IT,PRSI
CALL THIS-IS-IT,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: CALL PERFORM,V?TELL,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-ASK-FOR
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
SET 'WINNER,PRSO
CALL PERFORM,V?GIVE,PRSI,ME
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?TELL,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-ATTRACT
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,BOOTS \?CCL3
2019-04-14 13:09:16 -07:00
CALL WASTES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINT HUH
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-BITE
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?15
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-BURN
2019-04-14 13:09:56 -07:00
EQUAL? HERE,CHAPEL \?CCL3
FSET? ETERNAL-FLAME,ONBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?PUT,PRSO,ETERNAL-FLAME
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR "You have no source of fire."
2019-04-14 13:09:16 -07:00
.FUNCT V-CALL
CALL VISIBLE?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL3
2019-04-14 13:09:16 -07:00
CALL CANT-SEE,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?TELL,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-CATCH
PRINTR "The only thing you're good at catching is a cold."
.FUNCT V-CHASTISE
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,INTDIR \?CCL3
2019-04-14 13:09:16 -07:00
PRINT YOULL-HAVE-TO
PRINTR "go in that direction to see what's there."
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR "Use prepositions to indicate precisely what you want to do: LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc."
2019-04-14 13:09:16 -07:00
.FUNCT V-CLEAN
SET 'AWAITING-REPLY,1
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Do you also do windows?"
.FUNCT V-CLIMB-DOWN
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL DO-WALK,P?DOWN
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINT HOLDING-IT
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-CLIMB-ON
2019-04-14 13:09:56 -07:00
FSET? PRSO,VEHBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINT HOLDING-IT
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?IN \?CCL7
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?16
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL7: CALL CANT-VERB-A-PRSO,STR?17
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-CLIMB-UP
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL DO-WALK,P?UP
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINT HOLDING-IT
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-CLOSE
2019-04-14 13:09:56 -07:00
FSET? PRSO,SURFACEBIT /?CTR2
FSET? PRSO,ACTORBIT /?CTR2
FSET? PRSO,VEHBIT \?CCL3
2019-04-14 13:11:30 -07:00
?CTR2: CALL CANT-VERB-A-PRSO,STR?18
2019-04-14 13:09:56 -07:00
RSTACK
?CCL3: FSET? PRSO,DOORBIT /?CTR7
FSET? PRSO,CONTBIT \?CCL8
?CTR7: FSET? PRSO,OPENBIT \?CCL13
ZERO? TIMER-CONNECTED /?CCL16
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,TIMER,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL16
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL16
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?19
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL16: ZERO? TIMER-CONNECTED /?CCL21
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL21
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,TIMER,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL21
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?19
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL21: ZERO? EXPLOSIVE-CONNECTED /?CCL26
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL26
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,EXPLOSIVE,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL26
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?20
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL26: ZERO? EXPLOSIVE-CONNECTED /?CCL31
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,EXPLOSIVE,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL31
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL31
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?20
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL31: FCLEAR PRSO,OPENBIT
2019-04-14 13:09:16 -07:00
PRINTI "Okay,"
CALL TPRINT-PRSO
PRINTI " is now closed."
CRLF
CALL NOW-DARK?
RSTACK
2019-04-14 13:09:56 -07:00
?CCL13: PRINT ALREADY-IS
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:11:30 -07:00
?CCL8: CALL CANT-VERB-A-PRSO,STR?18
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-COMFORT
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT /?CTR2
EQUAL? PRSO,BALLOON \?CCL3
?CTR2: PRINTI "But"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " isn't in need of comforting!"
2019-04-14 13:09:56 -07:00
?CCL3: PRINT HUH
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
.FUNCT V-COMPARE
PRINTR "They're incomparable."
2019-04-14 13:09:16 -07:00
.FUNCT V-CONNECT
CALL IMPOSSIBLES
RSTACK
.FUNCT V-COUNT
CALL IMPOSSIBLES
RSTACK
.FUNCT V-CRAWL-UNDER
2019-04-14 13:09:56 -07:00
FSET? PRSO,TAKEBIT /?CCL3
2019-04-14 13:09:16 -07:00
CALL TELL-HIT-HEAD
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-CROSS
CALL V-WALK-AROUND
RSTACK
2019-04-14 13:09:56 -07:00
.FUNCT V-CRUMPLE
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?21
2019-04-14 13:09:56 -07:00
RSTACK
2019-04-14 13:09:16 -07:00
.FUNCT V-CUT
2019-04-14 13:09:56 -07:00
ZERO? PRSI \?CCL3
2019-04-14 13:09:16 -07:00
CALL IMPOSSIBLES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "To put it bluntly, neither"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSI
PRINTR " nor you are very sharp."
.FUNCT V-DIG
CALL WASTES
RSTACK
.FUNCT V-DISCONNECT
PRINTI "But"
CALL TPRINT-PRSO
PRINTI " isn't connected to"
2019-04-14 13:09:56 -07:00
ZERO? PRSI /?CCL3
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSI
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR " anything!"
2019-04-14 13:09:16 -07:00
.FUNCT V-DISEMBARK
2019-04-14 13:09:56 -07:00
EQUAL? P-PRSA-WORD,W?HOLD \?CCL3
2019-04-14 13:09:16 -07:00
GET P-ITBL,P-PREP1
2019-04-14 13:09:56 -07:00
EQUAL? STACK,PR?DOWN \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?PUSH,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? PRSO \?CCL7
IN? PROTAGONIST,HERE /?CCL10
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
2019-04-14 13:11:30 -07:00
CALL PERFORM,PRSA,STACK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL10: PRINT LOOK-AROUND
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL7: EQUAL? P-PRSA-WORD,W?TAKE \?CCL12
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?TAKE,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL12: IN? PROTAGONIST,PRSO /?CCL14
2019-04-14 13:09:16 -07:00
PRINT LOOK-AROUND
RETURN 8
2019-04-14 13:09:56 -07:00
?CCL14: MOVE PROTAGONIST,HERE
2019-04-14 13:09:16 -07:00
PRINTI "You get o"
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,BED \?CCL19
2019-04-14 13:09:16 -07:00
PRINTI "ff"
2019-04-14 13:09:56 -07:00
JUMP ?CND17
?CCL19: PRINTI "ut of"
?CND17: CALL TPRINT-PRSO
2019-04-14 13:09:16 -07:00
LOC FLOYD
2019-04-14 13:09:56 -07:00
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \?CND20
2019-04-14 13:09:16 -07:00
MOVE FLOYD,HERE
PRINTI ". Floyd gets up also"
2019-04-14 13:09:56 -07:00
?CND20: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-DRESS
2019-04-14 13:09:56 -07:00
ZERO? PRSO /?CCL3
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?22
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?GET-DRESSED,ROOMS
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT PRE-DRILL
ZERO? PRSI \?CND1
CALL ULTIMATELY-IN?,DRILL
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL5
CALL VISIBLE?,DRILL
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
SET 'PRSI,DRILL
2019-04-14 13:09:56 -07:00
?CND1: EQUAL? PRSI,DRILL /?CCL10
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTI "drill with"
CALL ARPRINT,PRSI
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: PRINTR "With what? Your head isn't QUITE pointy enough."
?CCL10: FIRST? DRILL /?CCL12
2019-04-14 13:09:16 -07:00
PRINTR "There's no bit in the drill!"
2019-04-14 13:09:56 -07:00
?CCL12: CALL UNTOUCHABLE?,PRSO
ZERO? STACK /?CCL14
CALL CANT-REACH,PRSO
RSTACK
?CCL14: ZERO? DRILL-FOOTNOTE \FALSE
SET 'DRILL-FOOTNOTE,TRUE-VALUE
PRINTI "(Footnote 5) "
RFALSE
2019-04-14 13:09:16 -07:00
.FUNCT V-DRILL
2019-04-14 13:09:56 -07:00
FSET? PRSO,TAKEBIT \?CCL3
2019-04-14 13:11:30 -07:00
PRINTI "You'll need a vise to hold"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " before you can drill it."
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "The point of the drill doesn't seem to be as hard as"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-DRILL-HOLE
GET P-NAMW,0
2019-04-14 13:09:56 -07:00
EQUAL? STACK,W?HOLE \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DRILL,PRSI
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: CALL RECOGNIZE
RSTACK
2019-04-14 13:09:16 -07:00
.FUNCT V-DROP
IN? PRSO,DRILL \?CND1
PRINTI "[removing"
CALL TPRINT-PRSO
PRINTI " from the drill first]"
CRLF
2019-04-14 13:09:56 -07:00
?CND1: EQUAL? HERE,TOP-OF-AIR-SHAFT,AIR-SHAFT \?CCL5
2019-04-14 13:09:16 -07:00
MOVE PRSO,BOTTOM-OF-AIR-SHAFT
2019-04-14 13:09:56 -07:00
PRINTR "It plunges down the shaft."
?CCL5: IN? PROTAGONIST,HOLDING-TANK \?CCL8
2019-04-14 13:09:16 -07:00
MOVE PRSO,HOLDING-TANK
2019-04-14 13:09:56 -07:00
JUMP ?CND6
?CCL8: MOVE PRSO,HERE
?CND6: PRINTI "Dropped"
FSET? HERE,WEIGHTLESSBIT \?CND9
2019-04-14 13:09:16 -07:00
PRINTI ", so to speak"
2019-04-14 13:09:56 -07:00
?CND9: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT PRE-EAT
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
CALL YOURE-STUNNED
RSTACK
?CCL3: ZERO? PRSI /?CCL5
IN? PRSO,PRSI /?CCL5
2019-04-14 13:09:16 -07:00
CALL NOT-IN
RSTACK
2019-04-14 13:11:30 -07:00
?CCL5: FSET? SPACESUIT,WORNBIT \FALSE
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTR "eat while you're wearing a space suit!"
.FUNCT V-EAT,FOOD=0
GETP PRSO,P?FOOD-DESC >FOOD
2019-04-14 13:09:56 -07:00
ZERO? FOOD /?CCL3
ZERO? HUNGER-LEVEL \?CCL6
2019-04-14 13:09:16 -07:00
PRINT NOT-HUNGRY
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: REMOVE PRSO
2019-04-14 13:09:16 -07:00
SET 'C-ELAPSED,15
SET 'HUNGER-LEVEL,0
CALL QUEUE,I-HUNGER-WARNINGS,2250
PRINTI "Mmmm...that tasted just like yummy"
PRINT FOOD
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,NECTAR \?CCL9
CALL ANTI-LITTER,NECTAR
RSTACK
?CCL9: EQUAL? PRSO,SOUP \?CCL11
PRINTI ". The soup was "
CALL DESCRIBE-SOUP-TEMPERATURE
RSTACK
?CCL11: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "It's doubtful that"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " would agree with you."
.FUNCT V-EAT-FROM,X
2019-04-14 13:09:56 -07:00
FSET? PRSO,OPENBIT /?CCL3
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,PRSO
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: FIRST? PRSO >X \?CCL5
2019-04-14 13:11:30 -07:00
NEXT? X \?CND6
2019-04-14 13:09:16 -07:00
PRINTI "(How about"
CALL TPRINT,X
PRINTI "?)"
2019-04-14 13:11:30 -07:00
CRLF
?CND6: CALL PERFORM,V?EAT,X
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: PRINTR "It's empty!"
2019-04-14 13:09:16 -07:00
.FUNCT V-EMPTY,OBJ,NXT
ZERO? PRSI \?CND1
SET 'PRSI,GROUND
2019-04-14 13:09:56 -07:00
?CND1: FSET? PRSO,CONTBIT /?CCL5
2019-04-14 13:09:16 -07:00
PRINT HUH
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: FSET? PRSO,OPENBIT /?CCL7
2019-04-14 13:09:16 -07:00
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " isn't open."
2019-04-14 13:09:56 -07:00
?CCL7: FIRST? PRSO /?CCL9
2019-04-14 13:09:16 -07:00
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " is already empty!"
2019-04-14 13:09:56 -07:00
?CCL9: FIRST? PRSO /?KLU31
?KLU31: EQUAL? PRSI,STACK \?CCL11
NEXT? PRSI /?CCL11
2019-04-14 13:09:16 -07:00
PRINT THERES-NOTHING
PRINTI "in"
CALL TPRINT-PRSO
PRINTI " but"
CALL TRPRINT,PRSI
RSTACK
2019-04-14 13:09:56 -07:00
?CCL11: FIRST? PRSO >OBJ /?PRG14
?PRG14: NEXT? OBJ >NXT /?KLU33
?KLU33: EQUAL? OBJ,PROTAGONIST /?CND16
2019-04-14 13:09:16 -07:00
PRINTD OBJ
PRINTI ": "
2019-04-14 13:09:56 -07:00
FSET? OBJ,TAKEBIT \?CCL20
2019-04-14 13:09:16 -07:00
MOVE OBJ,PROTAGONIST
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,HANDS \?CCL23
2019-04-14 13:09:16 -07:00
PRINTI "Taken."
CRLF
2019-04-14 13:09:56 -07:00
JUMP ?CND16
?CCL23: EQUAL? PRSI,GROUND \?CCL25
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DROP,OBJ
2019-04-14 13:09:56 -07:00
JUMP ?CND16
?CCL25: FSET? PRSI,SURFACEBIT \?CCL27
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?PUT-ON,OBJ,PRSI
2019-04-14 13:09:56 -07:00
JUMP ?CND16
?CCL27: CALL PERFORM,V?PUT,OBJ,PRSI
JUMP ?CND16
?CCL20: CALL YUKS
?CND16: ZERO? NXT /TRUE
2019-04-14 13:09:16 -07:00
SET 'OBJ,NXT
2019-04-14 13:09:56 -07:00
JUMP ?PRG14
2019-04-14 13:09:16 -07:00
.FUNCT V-EMPTY-FROM
2019-04-14 13:09:56 -07:00
IN? PRSO,PRSI \?CCL3
FSET? PRSO,TAKEBIT \?CCL6
2019-04-14 13:09:16 -07:00
MOVE PRSO,PROTAGONIST
CALL PERFORM,V?DROP,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: CALL YUKS
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL NOT-IN
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT PRE-ENTER
2019-04-14 13:09:56 -07:00
IN? PROTAGONIST,PRSO \?CCL3
2019-04-14 13:09:16 -07:00
PRINT LOOK-AROUND
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINT HOLDING-IT
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: CALL UNTOUCHABLE?,PRSO
2019-04-14 13:09:16 -07:00
ZERO? STACK /FALSE
CALL CANT-REACH,PRSO
RSTACK
.FUNCT V-ENTER,AV
LOC PROTAGONIST >AV
2019-04-14 13:09:56 -07:00
FSET? PRSO,DOORBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL OTHER-SIDE,PRSO
CALL DO-WALK,STACK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,VEHBIT \?CCL5
2019-04-14 13:09:16 -07:00
LOC PRSO
2019-04-14 13:09:56 -07:00
EQUAL? STACK,HERE,LOCAL-GLOBALS /?CCL8
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTI "board"
CALL TPRINT-PRSO
PRINTI " when it's "
LOC PRSO
2019-04-14 13:09:56 -07:00
FSET? STACK,SURFACEBIT \?CCL11
2019-04-14 13:09:16 -07:00
PRINTI "on"
2019-04-14 13:09:56 -07:00
JUMP ?CND9
?CCL11: PRINTI "in"
?CND9: LOC PRSO
2019-04-14 13:09:16 -07:00
CALL TRPRINT,STACK
RSTACK
2019-04-14 13:09:56 -07:00
?CCL8: MOVE PROTAGONIST,PRSO
2019-04-14 13:09:16 -07:00
PRINTI "You are now "
2019-04-14 13:09:56 -07:00
FSET? PRSO,INBIT \?CCL14
2019-04-14 13:09:16 -07:00
PRINTC 105
2019-04-14 13:09:56 -07:00
JUMP ?CND12
?CCL14: PRINTC 111
?CND12: PRINTC 110
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTC 46
GETP PRSO,P?ACTION
CALL STACK,M-ENTER
CRLF
RTRUE
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? PRSO,AIR \?CCL16
CALL V-LEAP
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL16: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?ON \?CCL18
CALL CANT-VERB-A-PRSO,STR?24
RSTACK
?CCL18: FSET? PRSO,TAKEBIT /?CCL20
2019-04-14 13:09:16 -07:00
CALL TELL-HIT-HEAD
RSTACK
2019-04-14 13:11:30 -07:00
?CCL20: GET P-ITBL,P-PREP1
2019-04-14 13:09:16 -07:00
EQUAL? STACK,PR?IN \FALSE
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?25
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-EXAMINE
SET 'C-ELAPSED,32
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
FIRST? PRSO \?CCL6
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: CALL NOTHING-INTERESTING
2019-04-14 13:09:16 -07:00
PRINTI "about"
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,SURFACEBIT \?CCL8
2019-04-14 13:09:16 -07:00
CALL V-LOOK-INSIDE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL8: FSET? PRSO,DOORBIT \?CCL10
2019-04-14 13:09:16 -07:00
PRINT IT-SEEMS-THAT
CALL TPRINT-PRSO
PRINTI " is "
CALL OPEN-CLOSED,PRSO
PRINT PERIOD-CR
RTRUE
2019-04-14 13:09:56 -07:00
?CCL10: IN? PROTAGONIST,PRSO \?CCL12
2019-04-14 13:09:16 -07:00
CALL DESCRIBE-VEHICLE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL12: FSET? PRSO,CONTBIT \?CCL14
FSET? PRSO,VEHBIT /?CCL14
2019-04-14 13:09:16 -07:00
PRINTI "It's "
CALL OPEN-CLOSED,PRSO
2019-04-14 13:09:56 -07:00
FSET? PRSO,OPENBIT /?CTR18
FSET? PRSO,TRANSBIT \?CCL19
?CTR18: PRINTI ". "
2019-04-14 13:09:16 -07:00
CALL V-LOOK-INSIDE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL19: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL14: FSET? PRSO,LIGHTBIT \?CCL23
2019-04-14 13:09:16 -07:00
PRINTI "It looks like"
CALL TPRINT-PRSO
PRINTI " is o"
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTIVEBIT \?CCL26
2019-04-14 13:09:16 -07:00
PRINTC 110
2019-04-14 13:09:56 -07:00
JUMP ?CND24
?CCL26: PRINTI "ff"
?CND24: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL23: FSET? PRSO,READBIT \?CCL28
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?READ,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL28: FSET? PRSO,NARTICLEBIT \?CCL30
2019-04-14 13:11:30 -07:00
CALL SENSE-OBJECT,STR?26
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL30: RANDOM 100
LESS? 35,STACK \?CTR31
EQUAL? PRSO,PSEUDO-OBJECT \?CCL32
?CTR31: PRINTI "Totally ordinary looking "
2019-04-14 13:09:16 -07:00
PRINTD PRSO
PRINT PERIOD-CR
RTRUE
2019-04-14 13:09:56 -07:00
?CCL32: CALL NOTHING-INTERESTING
2019-04-14 13:09:16 -07:00
PRINTI "about"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-EXERCISE
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
CALL YOURE-STUNNED
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: IN? PROTAGONIST,EXERCISE-MACHINE \?CCL5
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,JAMMER,HERE
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL8
EQUAL? JAMMER-SETTING,710 \?CCL8
FSET? JAMMER,ACTIVEBIT \?CCL8
IN? TWENTY-PRONG-FROMITZ-BOARD,JAMMER \?CCL8
2019-04-14 13:09:16 -07:00
PRINTR "The machine seems to be frozen."
2019-04-14 13:11:30 -07:00
?CCL8: PRINTI "You do a few repetitions"
2019-04-14 13:09:16 -07:00
JUMP ?CND1
2019-04-14 13:11:30 -07:00
?CCL5: PRINTI "You do a few push-ups"
2019-04-14 13:09:16 -07:00
?CND1: PRINTR ". Dr. Ventricalli, the Duffy's cardiologist, would be pleased."
.FUNCT NOTHING-INTERESTING
PRINT THERES-NOTHING
RANDOM 100
2019-04-14 13:09:56 -07:00
LESS? 25,STACK /?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "unusual"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: RANDOM 100
LESS? 33,STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "noteworthy"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL5: RANDOM 100
LESS? 50,STACK /?CCL7
2019-04-14 13:09:16 -07:00
PRINTI "eye-catching"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL7: PRINTI "special"
2019-04-14 13:09:16 -07:00
?CND1: PRINTC 32
RTRUE
.FUNCT V-EXIT
2019-04-14 13:09:56 -07:00
ZERO? PRSO /?CCL3
FSET? PRSO,VEHBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL DO-WALK,P?OUT
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-FEED
PRINTI "You have no food for"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-FILL
2019-04-14 13:09:56 -07:00
ZERO? PRSI \?CCL3
2019-04-14 13:09:16 -07:00
PRINT THERES-NOTHING
PRINTR "to fill it with."
2019-04-14 13:09:56 -07:00
?CCL3: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-FIND,WHERE=0,L
LOC PRSO >L
SET 'C-ELAPSED,18
2019-04-14 13:09:56 -07:00
ZERO? L \?CCL3
2019-04-14 13:09:16 -07:00
CALL PRONOUN
PRINTR " could be anywhere!"
2019-04-14 13:09:56 -07:00
?CCL3: IN? PRSO,PROTAGONIST \?CCL5
2019-04-14 13:09:16 -07:00
PRINTR "You have it!"
2019-04-14 13:09:56 -07:00
?CCL5: IN? PRSO,HERE /?CTR6
2019-04-14 13:09:16 -07:00
CALL GLOBAL-IN?,PRSO,HERE
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CTR6
EQUAL? PRSO,PSEUDO-OBJECT \?CCL7
?CTR6: PRINTR "Right in front of you."
?CCL7: FSET? L,ACTORBIT \?CCL12
2019-04-14 13:09:16 -07:00
CALL VISIBLE?,L
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL12
2019-04-14 13:09:16 -07:00
PRINTI "Looks as if"
CALL TPRINT,L
PRINTR " has it."
2019-04-14 13:09:56 -07:00
?CCL12: FSET? L,CONTBIT \?CCL16
2019-04-14 13:09:16 -07:00
CALL VISIBLE?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL16
EQUAL? L,GLOBAL-OBJECTS /?CCL16
FSET? L,SURFACEBIT \?CCL22
2019-04-14 13:09:16 -07:00
PRINTC 79
JUMP ?CND20
2019-04-14 13:09:56 -07:00
?CCL22: FSET? L,VEHBIT \?CCL24
FSET? L,INBIT /?CCL24
2019-04-14 13:09:16 -07:00
PRINTC 79
JUMP ?CND20
2019-04-14 13:09:56 -07:00
?CCL24: PRINTC 73
2019-04-14 13:09:16 -07:00
?CND20: PRINTC 110
CALL TRPRINT,L
RSTACK
2019-04-14 13:09:56 -07:00
?CCL16: ZERO? WHERE /?CTR27
IN? PRSO,GLOBAL-OBJECTS \?CCL28
?CTR27: PRINT YOULL-HAVE-TO
PRINTR "do that yourself."
?CCL28: PRINTR "Beats me."
.FUNCT V-FIX
2019-04-14 13:11:30 -07:00
PRINTR "[Such general commands won't work. To repair something, you must perform the specific steps required.]"
2019-04-14 13:09:16 -07:00
.FUNCT V-FLATTEN
PRINT HUH
RTRUE
.FUNCT V-FOLLOW
CALL VISIBLE?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " is right here!"
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,ACTORBIT /?CCL5
2019-04-14 13:09:16 -07:00
CALL IMPOSSIBLES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: PRINTI "You have no idea where"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " is."
2019-04-14 13:09:56 -07:00
.FUNCT V-FOOTNOTE
SET 'C-ELAPSED,0
ZERO? PRSO /?CTR2
EQUAL? PRSO,INTNUM /?CCL3
?CTR2: PRINTR "Specify a number, as in ""FOOTNOTE 6."""
?CCL3: EQUAL? P-NUMBER,1 \?CCL7
2019-04-14 13:11:30 -07:00
PRINTI "These must be those special zero-gee dice which project their own gravitational field onto the nearest surface. Zero-gee dice are, of course, notoriously easy to load"
2019-04-14 13:09:56 -07:00
JUMP ?CND1
?CCL7: EQUAL? P-NUMBER,2 \?CCL9
PRINT UNFAMILIAR
PRINTI "Blather was your officious, tyrannical superior aboard the S.P.S. Feinstein. He was demoted because of his craven behavior during the destruction of the Feinstein"
JUMP ?CND1
?CCL9: EQUAL? P-NUMBER,3 \?CCL11
PRINTI "The story of your acquaintance with Floyd and the episode on Resida are recounted in PLANETFALL"
JUMP ?CND1
?CCL11: EQUAL? P-NUMBER,4 \?CCL13
2019-04-14 13:11:30 -07:00
PRINTI "This is, of course, impossible. To do this, the creature would have to be an order of magnitude larger. There are two possible explanations: 1. The creature actually extends part of its volume into a parallel dimension"
PRINT CALLOUS-DISREGARD
2019-04-14 13:09:56 -07:00
JUMP ?CND1
?CCL13: EQUAL? P-NUMBER,5,9,13 \?CCL15
PRINTI "Kids: "
EQUAL? P-NUMBER,5 \?CCL18
PRINTI "drills"
JUMP ?CND16
?CCL18: EQUAL? P-NUMBER,9 \?CCL20
PRINTI "zapguns"
JUMP ?CND16
?CCL20: PRINTI "FREZONE (tm) explosives"
?CND16: PRINTI " are very dangerous. Don't try this at home without adult supervision"
JUMP ?CND1
?CCL15: EQUAL? P-NUMBER,6 \?CCL22
PRINTI "That was just an example"
JUMP ?CND1
?CCL22: EQUAL? P-NUMBER,7 \?CCL24
PRINT UNFAMILIAR
2019-04-14 13:11:30 -07:00
PRINTI "your frenzied (former) boss, Ensign Blather, would toss you into the Feinstein's brig for the tiniest violation of the Stellar Patrol's near-infinity of trivial regulations"
2019-04-14 13:09:56 -07:00
JUMP ?CND1
?CCL24: EQUAL? P-NUMBER,8 \?CCL26
PRINTI "The author wishes to refute any claims that the use of footnotes is a ripoff from the interactive fiction version of THE HITCHHIKER'S GUIDE TO THE GALAXY. This is not true. Well, maybe it's a little bit true, in which case the author wishes to point out his right to rip off his own ideas. So there"
JUMP ?CND1
?CCL26: EQUAL? P-NUMBER,10 \?CCL28
SET 'AWAITING-REPLY,1
CALL QUEUE,I-REPLY,1
PRINTR "Isn't it fun reading through all the footnotes?"
?CCL28: EQUAL? P-NUMBER,11,12 \?CCL30
PRINTI "How to keep a STATIONFALL player busy all day (Footnote 1"
EQUAL? P-NUMBER,11 \?CCL33
PRINTI "2)"
JUMP ?CND1
?CCL33: PRINTI "1)"
2019-04-14 13:11:30 -07:00
JUMP ?CND1
?CCL30: EQUAL? P-NUMBER,14 \?CCL35
PRINTI "Actually, it is only a myth that ostriches stick their heads in holes when frightened. The fact that this ostrich does can be attributed to: 1. an addling of the animal's brain caused by extended exposure to weightlessness"
PRINT CALLOUS-DISREGARD
?CND1: ZERO? READ-A-FOOTNOTE \?CND40
2019-04-14 13:09:56 -07:00
SET 'READ-A-FOOTNOTE,TRUE-VALUE
PRINTI ". (Footnote 8)"
2019-04-14 13:11:30 -07:00
?CND40: PRINT PERIOD-CR
2019-04-14 13:09:56 -07:00
RTRUE
2019-04-14 13:11:30 -07:00
?CCL35: EQUAL? P-NUMBER,15 \?CCL37
PRINTR "IF you also played Planetfall, and IF you scrambled any magnetic cards in Planetfall by being careless with the magnet: GOTCHA AGAIN! (Footnote 16)"
?CCL37: EQUAL? P-NUMBER,16 \?CCL39
PRINTR "Reminds me of that old saying, ""Fool me once, shame on you. Fool me twice, shame on me!"""
?CCL39: PRINTI "There is no Footnote "
2019-04-14 13:09:56 -07:00
PRINTN P-NUMBER
PRINT PERIOD-CR
RTRUE
2019-04-14 13:11:30 -07:00
.FUNCT PRE-GIVE,IDROP-VALUE
2019-04-14 13:09:56 -07:00
EQUAL? PRSA,V?GIVE \?CCL3
EQUAL? PRSO,HANDS \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?SHAKE-WITH,PRSI
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: CALL IDROP >IDROP-VALUE
ZERO? IDROP-VALUE /FALSE
RETURN IDROP-VALUE
2019-04-14 13:09:16 -07:00
.FUNCT V-GET-DRESSED
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:11:30 -07:00
FSET? PATROL-UNIFORM,WORNBIT \?CCL6
2019-04-14 13:09:16 -07:00
PRINTR "You are!"
2019-04-14 13:11:30 -07:00
?CCL6: CALL VISIBLE?,PATROL-UNIFORM
ZERO? STACK /?CCL8
CALL PERFORM,V?WEAR,PATROL-UNIFORM
RTRUE
?CCL8: PRINTR "No clothes in sight!"
2019-04-14 13:09:56 -07:00
?CCL3: CALL RECOGNIZE
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-GET-UNDRESSED
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?TAKE-OFF,PATROL-UNIFORM
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL RECOGNIZE
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-GIVE
2019-04-14 13:09:56 -07:00
FSET? PRSI,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "Briskly,"
CALL TPRINT-PRSI
PRINTR " declines your offer."
2019-04-14 13:09:56 -07:00
?CCL3: PRINT YOU-CANT
2019-04-14 13:09:16 -07:00
PRINTI "give"
CALL APRINT,PRSO
PRINTI " to"
CALL APRINT,PRSI
PRINTR "!"
.FUNCT V-GIVE-UP
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL V-QUIT
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL RECOGNIZE
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-GREET
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
SET 'WINNER,PRSO
CALL PERFORM,V?HELLO
SET 'WINNER,PROTAGONIST
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?TELL,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-HELLO
2019-04-14 13:09:56 -07:00
ZERO? PRSO /?CCL3
SET 'P-WON,FALSE-VALUE
2019-04-14 13:09:16 -07:00
PRINTR "[The proper way to talk to characters in the story is PERSON, HELLO.]"
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?TELL,ME
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-HELP
2019-04-14 13:11:30 -07:00
PRINTR "[Help!?! You need help?!? What about me, your poor computer? My chips are about to go, my mate just ran off with a mainframe from Milwaukee, and the kid wants to be a talking greeting card when he grows up! Furtherm... Hey! I'm not done! Mumk mpgrlph...]
If you're really stuck, you can get an InvisiClues (TM) hint booklet and map from your dealer, or by using the order form from your package."
2019-04-14 13:09:16 -07:00
.FUNCT V-HIDE
PRINT YOU-CANT
PRINTI "hide "
ZERO? PRSO /?CND1
PRINTC 116
?CND1: PRINTR "here."
.FUNCT V-HUG
PRINTR "Hugged."
.FUNCT V-IN,VEHICLE
CALL DO-WALK,P?IN
RSTACK
.FUNCT V-KICK
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?27
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-KILL
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,ZAPGUN \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?SHOOT,PRSO,PRSI
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? PRSI \?CCL5
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,ZAPGUN
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL5
EQUAL? P-PRSA-WORD,W?KILL \?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "(with"
CALL TPRINT,ZAPGUN
PRINTC 41
CRLF
CALL PERFORM,V?SHOOT,PRSO,ZAPGUN
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: FSET? PRSO,ACTORBIT \?CCL10
2019-04-14 13:09:16 -07:00
PRINTI "You succeeded in frightening"
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL10: PRINTI "Why attack"
2019-04-14 13:09:16 -07:00
CALL APRINT,PRSO
PRINTR "?"
.FUNCT V-KISS
PRINTR "I'd sooner kiss a pile of Antarian swamp mold."
.FUNCT V-KNOCK
2019-04-14 13:09:56 -07:00
FSET? PRSO,DOORBIT \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "Silence answers back."
2019-04-14 13:11:30 -07:00
?CCL3: CALL HACK-HACK,STR?28
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-LAUNCH
PRINTR "Your brain is out to launch."
.FUNCT V-LEAP
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
CALL YOURE-STUNNED,STR?29
RSTACK
?CCL3: ZERO? PRSO /?CCL5
EQUAL? PRSO,ROOMS /?CCL5
2019-04-14 13:09:16 -07:00
PRINTR "You have spent too much time among the leaping loon-toads of Leonia."
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? HERE,CHAPEL \?CCL9
FSET? STAR,TRYTAKEBIT \?CCL9
2019-04-14 13:09:16 -07:00
PRINTR "Your best jump still leaves you half a meter short of the star."
2019-04-14 13:11:30 -07:00
?CCL9: EQUAL? HERE,AIR-SHAFT,TOP-OF-AIR-SHAFT \?CCL13
EQUAL? AIR-SHAFT-LOC,7 \?CCL16
CALL GOTO,BOTTOM-OF-AIR-SHAFT
RSTACK
?CCL16: CALL JIGS-UP,STR?30
2019-04-14 13:09:56 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL13: EQUAL? HERE,BOTTOM-OF-AIR-SHAFT \?CCL18
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?OPEN,GRATING
RTRUE
2019-04-14 13:11:30 -07:00
?CCL18: EQUAL? HERE,VACUUM-STORAGE \?CCL20
2019-04-14 13:09:56 -07:00
PRINTI "You sail away from the village..."
CALL LOST-IN-SPACE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL20: CALL WEE
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-LEAP-OFF
2019-04-14 13:09:56 -07:00
FSET? PRSO,VEHBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?LEAP,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-LEAVE
ZERO? PRSO \?CND1
SET 'PRSO,ROOMS
2019-04-14 13:09:56 -07:00
?CND1: EQUAL? PRSO,ROOMS \?CCL5
2019-04-14 13:09:16 -07:00
CALL DO-WALK,P?OUT
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: IN? PROTAGONIST,PRSO \?CCL7
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL7: CALL PERFORM,V?DROP,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-LIE-DOWN
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL GLOBAL-IN?,BED,HERE
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL6
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,BED
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: GRTR? SLEEPY-LEVEL,0 \?CCL8
2019-04-14 13:09:16 -07:00
CALL V-SLEEP
RSTACK
2019-04-14 13:09:56 -07:00
?CCL8: CALL WASTES
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,VEHBIT \?CCL10
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL10: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-LISTEN
SET 'C-ELAPSED,18
2019-04-14 13:09:56 -07:00
ZERO? PRSO /?CCL3
2019-04-14 13:11:30 -07:00
CALL SENSE-OBJECT,STR?31
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR "You hear nothing of interest."
2019-04-14 13:09:16 -07:00
.FUNCT V-LOCK
CALL YUKS
RSTACK
.FUNCT PRE-LOOK
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,STAR \?CCL3
2019-04-14 13:09:16 -07:00
IN? DIODE-M,STAR /FALSE
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? LIT \FALSE
2019-04-14 13:09:16 -07:00
PRINT TOO-DARK
CRLF
RTRUE
.FUNCT V-LOOK
SET 'C-ELAPSED,9
CALL DESCRIBE-ROOM,TRUE-VALUE
ZERO? STACK /TRUE
CALL DESCRIBE-OBJECTS
RTRUE
.FUNCT V-LOOK-BEHIND
2019-04-14 13:09:56 -07:00
FSET? PRSO,DOORBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "There is nothing behind"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-LOOK-DOWN
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?EXAMINE,GROUND
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?LOOK-INSIDE,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-LOOK-INSIDE
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
CALL YOURE-STUNNED
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL3: FSET? PRSO,ACTORBIT \?CCL5
2019-04-14 13:09:16 -07:00
PRINT IT-SEEMS-THAT
CALL TPRINT-PRSO
PRINTI " has"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINT PERIOD-CR
RTRUE
2019-04-14 13:11:30 -07:00
?CCL5: IN? PROTAGONIST,PRSO \?CCL9
2019-04-14 13:09:16 -07:00
CALL DESCRIBE-VEHICLE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL9: FSET? PRSO,SURFACEBIT \?CCL11
2019-04-14 13:09:16 -07:00
PRINT YOU-SEE
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINTI " on"
CALL TRPRINT,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL11: FSET? PRSO,DOORBIT \?CCL15
2019-04-14 13:09:16 -07:00
PRINTI "All you can tell is that"
CALL TPRINT-PRSO
PRINTI " is "
CALL OPEN-CLOSED,PRSO
PRINT PERIOD-CR
RTRUE
2019-04-14 13:11:30 -07:00
?CCL15: FSET? PRSO,CONTBIT \?CCL17
2019-04-14 13:09:16 -07:00
CALL SEE-INSIDE?,PRSO
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL20
2019-04-14 13:09:16 -07:00
PRINT YOU-SEE
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINTI " in"
CALL TRPRINT,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL20: FSET? PRSO,OPENBIT /?CCL24
FIRST? PRSO \?CCL24
2019-04-14 13:09:16 -07:00
CALL PRE-TOUCH
ZERO? STACK \TRUE
CALL PERFORM,V?OPEN,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL24: CALL DO-FIRST,STR?23,PRSO
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL17: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?IN \?CCL30
CALL CANT-VERB-A-PRSO,STR?32
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL30: CALL CANT-VERB-A-PRSO,STR?33
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-LOOK-OVER
CALL V-EXAMINE
RSTACK
.FUNCT V-LOOK-UNDER
CALL ULTIMATELY-IN?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
FSET? PRSO,WORNBIT \?CCL6
2019-04-14 13:09:16 -07:00
PRINTR "You're wearing it!"
2019-04-14 13:09:56 -07:00
?CCL6: PRINT HOLDING-IT
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL NOTHING-INTERESTING
2019-04-14 13:09:16 -07:00
PRINTI "under"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-LOOK-UP
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:11:30 -07:00
EQUAL? HERE,AIR-SHAFT,BOTTOM-OF-AIR-SHAFT,BOTTOM-OF-ELEVATOR-SHAFT \?CCL6
2019-04-14 13:09:56 -07:00
PRINT ONLY-BLACKNESS
RTRUE
?CCL6: CALL PERFORM,V?EXAMINE,CEILING
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?LOOK-INSIDE,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-LOWER
CALL V-RAISE
RSTACK
.FUNCT V-MAYBE
2019-04-14 13:11:30 -07:00
CALL YOU-SOUND,STR?34
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-MEASURE
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,TONGUE,HANDS,ME \?CCL3
PRINTR "Usual size."
?CCL3: PRINTI "The same size as any other "
2019-04-14 13:09:16 -07:00
PRINTD PRSO
PRINT PERIOD-CR
RTRUE
.FUNCT V-MOVE
CALL ULTIMATELY-IN?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
CALL WASTES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL LOC-CLOSED
2019-04-14 13:09:16 -07:00
ZERO? STACK \TRUE
2019-04-14 13:09:56 -07:00
FSET? PRSO,TAKEBIT \?CCL7
2019-04-14 13:09:16 -07:00
PRINTI "Moving"
CALL TPRINT-PRSO
PRINTR " reveals nothing."
2019-04-14 13:09:56 -07:00
?CCL7: EQUAL? P-PRSA-WORD,W?PULL \?CCL9
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?35
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL9: CALL CANT-VERB-A-PRSO,STR?36
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT PRE-MUNG
2019-04-14 13:09:56 -07:00
ZERO? PRSI /?CCL3
EQUAL? PRSI,ZAPGUN \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?SHOOT,PRSO,PRSI
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL UNTOUCHABLE?,PRSO
ZERO? STACK /FALSE
CALL CANT-REACH,PRSO
RSTACK
2019-04-14 13:09:16 -07:00
.FUNCT V-MUNG
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "Argh! Pimples!"
2019-04-14 13:11:30 -07:00
?CCL3: CALL HACK-HACK,STR?37
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-NO
2019-04-14 13:09:56 -07:00
EQUAL? AWAITING-REPLY,1 \?CCL3
2019-04-14 13:09:16 -07:00
CALL V-YES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? AWAITING-REPLY,2,4 \?CCL5
2019-04-14 13:09:16 -07:00
PRINTR "Floyd pouts."
2019-04-14 13:09:56 -07:00
?CCL5: EQUAL? AWAITING-REPLY,3 \?CCL7
2019-04-14 13:09:16 -07:00
PRINTR """Figures."""
2019-04-14 13:11:30 -07:00
?CCL7: CALL YOU-SOUND,STR?38
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT NO-WORD,WRD
EQUAL? WRD,W?NO,W?NOPE /TRUE
2019-04-14 13:09:56 -07:00
EQUAL? WRD,W?NAH,W?UH-UH /TRUE
RFALSE
2019-04-14 13:09:16 -07:00
.FUNCT V-OFF
2019-04-14 13:09:56 -07:00
FSET? PRSO,LIGHTBIT \?CCL3
FSET? PRSO,ACTIVEBIT \?CCL6
2019-04-14 13:09:16 -07:00
FCLEAR PRSO,ACTIVEBIT
FCLEAR PRSO,ONBIT
PRINTI "Okay,"
CALL TPRINT-PRSO
PRINTI " is now off."
CRLF
CALL NOW-DARK?
RSTACK
2019-04-14 13:09:56 -07:00
?CCL6: PRINTR "It isn't on!"
2019-04-14 13:11:30 -07:00
?CCL3: CALL CANT-TURN,STR?39
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-ON
2019-04-14 13:09:56 -07:00
FSET? PRSO,LIGHTBIT \?CCL3
FSET? PRSO,ACTIVEBIT \?CCL6
2019-04-14 13:09:16 -07:00
PRINT ALREADY-IS
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: FSET PRSO,ACTIVEBIT
EQUAL? PRSO,HEADLAMP \?CND7
2019-04-14 13:09:16 -07:00
FSET PRSO,ONBIT
2019-04-14 13:09:56 -07:00
?CND7: PRINTI "Okay,"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTI " is now on."
CRLF
CALL NOW-LIT?
RSTACK
2019-04-14 13:11:30 -07:00
?CCL3: CALL CANT-TURN,STR?40
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT CANT-TURN,STRING
PRINT YOU-CANT
PRINTI "turn that o"
PRINT STRING
PRINT PERIOD-CR
RTRUE
.FUNCT V-OPEN
2019-04-14 13:09:56 -07:00
FSET? PRSO,SURFACEBIT /?CTR2
FSET? PRSO,ACTORBIT /?CTR2
FSET? PRSO,VEHBIT \?CCL3
?CTR2: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,OPENBIT \?CCL8
2019-04-14 13:09:16 -07:00
PRINT ALREADY-IS
RTRUE
2019-04-14 13:09:56 -07:00
?CCL8: FSET? PRSO,DOORBIT /?CCL10
FSET? PRSO,CONTBIT /?CCL10
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?23
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL10: FSET? PRSO,LOCKEDBIT \?CCL14
2019-04-14 13:09:16 -07:00
PRINTR "It's locked."
2019-04-14 13:09:56 -07:00
?CCL14: FSET? PRSO,DOORBIT \?CCL16
2019-04-14 13:09:16 -07:00
FSET PRSO,OPENBIT
PRINTI "The "
PRINTD PRSO
PRINTR " swings open."
2019-04-14 13:09:56 -07:00
?CCL16: FSET PRSO,OPENBIT
2019-04-14 13:09:16 -07:00
FSET PRSO,TOUCHBIT
2019-04-14 13:09:56 -07:00
FIRST? PRSO \?CTR18
FSET? PRSO,TRANSBIT \?CCL19
?CTR18: PRINTR "Opened."
?CCL19: PRINTI "Opening"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTI " reveals"
CALL DESCRIBE-NOTHING
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CND22
2019-04-14 13:09:16 -07:00
PRINT PERIOD-CR
2019-04-14 13:09:56 -07:00
?CND22: CALL NOW-LIT?
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-PICK
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?41
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-PICK-UP
CALL PERFORM,V?TAKE,PRSO,PRSI
RTRUE
.FUNCT V-PLAY-WITH
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL WEE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL3: CALL IMPOSSIBLES
RSTACK
2019-04-14 13:09:16 -07:00
.FUNCT V-POINT
PRINTR "That would be pointless."
.FUNCT V-POUR
PRINTR "Pouring or spilling non-liquids is specifically forbidden by section 17.9.2 of the Galactic Adventure Game Compendium of Rules."
.FUNCT V-PRAY
PRINTR "If you pray enough, your prayers may be answered."
.FUNCT V-PUSH
2019-04-14 13:09:56 -07:00
EQUAL? P-PRSA-WORD,W?PRESS,W?IRON \?CCL3
EQUAL? HERE,LAUNDRY \?CCL3
ZERO? PRSI /?CTR2
EQUAL? PRSI,PRESSER \?CCL3
?CTR2: IN? PRSO,PRESSER \?CCL11
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?CLOSE,PRESSER
RTRUE
2019-04-14 13:11:30 -07:00
?CCL11: PRINT YOULL-HAVE-TO
PRINTI "put"
CALL TPRINT-PRSO
PRINTR " in the presser first."
?CCL3: CALL HACK-HACK,STR?42
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-PUSH-DIR
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,INTDIR \?CCL3
2019-04-14 13:09:16 -07:00
CALL V-PUSH
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL RECOGNIZE
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
.FUNCT PRE-PUT,IDROP-VALUE
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,GROUND \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DROP,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? PRSO,HANDS \?CCL5
2019-04-14 13:11:30 -07:00
EQUAL? PRSA,V?PUT \?CCL8
PUSH V?REACH-IN
JUMP ?CND6
?CCL8: PUSH V?TOUCH
?CND6: CALL PERFORM,STACK,PRSI
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? PRSI,TONGUE,HANDS /?CCL10
2019-04-14 13:09:16 -07:00
CALL PRE-LOOK
ZERO? STACK \TRUE
2019-04-14 13:11:30 -07:00
?CCL10: IN? PRSO,PRSI \?CCL14
2019-04-14 13:09:56 -07:00
PRINTI "But"
CALL TPRINT-PRSO
PRINTI " is already in"
CALL TRPRINT,PRSI
RSTACK
2019-04-14 13:11:30 -07:00
?CCL14: CALL ULTIMATELY-IN?,PRSI,PRSO
ZERO? STACK /?CCL16
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTI "put"
CALL TPRINT-PRSO
GET P-ITBL,P-PREP2
2019-04-14 13:11:30 -07:00
EQUAL? STACK,PR?ON \?CCL19
2019-04-14 13:09:16 -07:00
PRINTI " on"
2019-04-14 13:11:30 -07:00
JUMP ?CND17
?CCL19: PRINTI " in"
?CND17: CALL TPRINT-PRSI
2019-04-14 13:09:16 -07:00
PRINTI " when"
CALL TPRINT-PRSI
PRINTI " is already "
2019-04-14 13:11:30 -07:00
FSET? PRSO,SURFACEBIT \?CCL22
2019-04-14 13:09:16 -07:00
PRINTI "on"
2019-04-14 13:11:30 -07:00
JUMP ?CND20
?CCL22: PRINTI "in"
?CND20: CALL TPRINT-PRSO
2019-04-14 13:09:16 -07:00
PRINTR "!"
2019-04-14 13:11:30 -07:00
?CCL16: CALL UNTOUCHABLE?,PRSI
ZERO? STACK /?CCL24
2019-04-14 13:09:16 -07:00
CALL CANT-REACH,PRSI
RSTACK
2019-04-14 13:11:30 -07:00
?CCL24: CALL IDROP >IDROP-VALUE
ZERO? IDROP-VALUE /FALSE
RETURN IDROP-VALUE
2019-04-14 13:09:16 -07:00
.FUNCT V-PUT,?TMP1,?TMP2,?TMP3
2019-04-14 13:09:56 -07:00
FSET? PRSI,OPENBIT /?CCL3
FSET? PRSI,CONTBIT /?CCL3
FSET? PRSI,SURFACEBIT /?CCL3
FSET? PRSI,VEHBIT /?CCL3
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTI "put"
CALL TPRINT-PRSO
PRINTI " in"
CALL APRINT,PRSI
PRINTR "!"
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? PRSI,PRSO /?CTR8
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL9
FSET? PRSO,TAKEBIT /?CCL9
?CTR8: PRINTR "How can you do that?"
?CCL9: FSET? PRSI,DOORBIT \?CCL15
2019-04-14 13:11:30 -07:00
PRINT YOU-CANT
PRINTR "do that from here."
2019-04-14 13:09:56 -07:00
?CCL15: FSET? PRSI,OPENBIT /?CCL17
FSET? PRSI,SURFACEBIT /?CCL17
2019-04-14 13:09:16 -07:00
CALL THIS-IS-IT,PRSI
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,PRSI
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL17: FSET? PRSI,ACTORBIT \?CCL21
2019-04-14 13:09:16 -07:00
PRINT HUH
RTRUE
2019-04-14 13:09:56 -07:00
?CCL21: CALL WEIGHT,PRSI >?TMP3
2019-04-14 13:09:16 -07:00
CALL WEIGHT,PRSO
ADD ?TMP3,STACK >?TMP2
GETP PRSI,P?SIZE
SUB ?TMP2,STACK >?TMP1
GETP PRSI,P?CAPACITY
2019-04-14 13:09:56 -07:00
GRTR? ?TMP1,STACK \?CCL23
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,PRSO,PRSI
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL23
2019-04-14 13:09:16 -07:00
PRINTI "There's no room "
2019-04-14 13:09:56 -07:00
FSET? PRSI,SURFACEBIT \?CCL28
2019-04-14 13:09:16 -07:00
PRINTI "on"
2019-04-14 13:09:56 -07:00
JUMP ?CND26
?CCL28: PRINTI "in"
?CND26: CALL TPRINT-PRSI
2019-04-14 13:09:16 -07:00
PRINTI " for"
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL23: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK \?CCL30
2019-04-14 13:09:16 -07:00
CALL ITAKE
EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE
2019-04-14 13:09:56 -07:00
?CCL30: MOVE PRSO,PRSI
2019-04-14 13:09:16 -07:00
CALL SCORE-OBJ
PRINTR "Done."
.FUNCT V-PUT-BEHIND
CALL WASTES
RSTACK
.FUNCT V-PUT-ON
2019-04-14 13:09:56 -07:00
EQUAL? PRSI,ME \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?WEAR,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSI,SURFACEBIT /?CTR4
FSET? PRSI,VEHBIT \?CCL5
?CTR4: CALL V-PUT
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? P-PRSA-WORD,W?WRAP \?CCL9
PRINTR "Useless. You're getting too wrapped up in this story."
?CCL9: PRINTI "There's no good surface on"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSI
RSTACK
.FUNCT V-PUT-UNDER
CALL WASTES
RSTACK
.FUNCT V-RAISE
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?43
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-REACH-IN,OBJ
2019-04-14 13:09:56 -07:00
FIRST? PRSO >OBJ /?KLU14
?KLU14: FSET? PRSO,ACTORBIT /?CTR2
FSET? PRSO,SURFACEBIT /?CTR2
FSET? PRSO,CONTBIT /?CCL3
?CTR2: CALL YUKS
RSTACK
?CCL3: FSET? PRSO,OPENBIT /?CCL8
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,PRSO
2019-04-14 13:09:56 -07:00
RSTACK
?CCL8: ZERO? OBJ /?CTR9
FSET? OBJ,INVISIBLE /?CTR9
FSET? OBJ,TAKEBIT /?CCL10
?CTR9: PRINT THERES-NOTHING
2019-04-14 13:09:16 -07:00
PRINTI "in"
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL10: PRINTI "You feel something inside"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-READ
2019-04-14 13:09:56 -07:00
FSET? PRSO,READBIT \?CCL3
2019-04-14 13:09:16 -07:00
GETP PRSO,P?TEXT
PRINT STACK
CRLF
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: CALL CANT-VERB-A-PRSO,STR?44
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-REMOVE
2019-04-14 13:09:56 -07:00
FSET? PRSO,WEARBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?TAKE-OFF,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?TAKE,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-ROLL
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?45
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-RUN-OVER
PRINT HUH
RTRUE
.FUNCT V-SAVE-SOMETHING
PRINTI "Sorry, but"
CALL TPRINT-PRSO
PRINTR " is beyond help."
.FUNCT V-SAY,V
2019-04-14 13:09:56 -07:00
ZERO? AWAITING-REPLY /?CCL3
2019-04-14 13:09:16 -07:00
GET P-LEXV,P-CONT
CALL YES-WORD,STACK
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
CALL V-YES
2019-04-14 13:11:30 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? AWAITING-REPLY /?CCL7
2019-04-14 13:09:16 -07:00
GET P-LEXV,P-CONT
CALL NO-WORD,STACK
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL7
2019-04-14 13:09:16 -07:00
CALL V-NO
2019-04-14 13:11:30 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL7: CALL FIND-IN,HERE,ACTORBIT >V
ZERO? V /?CCL11
2019-04-14 13:09:16 -07:00
PRINTI "You must address"
CALL TPRINT,V
PRINTI " directly."
CRLF
2019-04-14 13:11:30 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL11: CALL PERFORM,V?TELL,ME
2019-04-14 13:11:30 -07:00
?CND1: CALL STOP
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-SCARE
PRINTI "Despite your most frightening tactics,"
CALL TPRINT-PRSO
PRINTR " seems unscared."
.FUNCT V-SCOLD
PRINT HUH
RTRUE
.FUNCT V-SEARCH
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL V-SHAKE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: IN? PROTAGONIST,PRSO \?CCL5
2019-04-14 13:09:16 -07:00
CALL DESCRIBE-VEHICLE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: FSET? PRSO,CONTBIT \?CCL7
FSET? PRSO,OPENBIT /?CCL7
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,PRSO
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL7: FSET? PRSO,CONTBIT \?CCL11
2019-04-14 13:09:16 -07:00
SET 'C-ELAPSED,32
PRINTI "You find"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINT PERIOD-CR
RTRUE
2019-04-14 13:11:30 -07:00
?CCL11: CALL CANT-VERB-A-PRSO,STR?46
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-SET
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
CALL WEE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? PRSI \?CCL5
FSET? PRSO,TAKEBIT \?CCL8
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?47
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL8: PRINT YNH
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-SGIVE
CALL PERFORM,V?GIVE,PRSI,PRSO
RTRUE
.FUNCT V-SHAKE
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "That wouldn't be polite."
2019-04-14 13:11:30 -07:00
?CCL3: CALL HACK-HACK,STR?48
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-SHAKE-WITH
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,HANDS /?CCL3
2019-04-14 13:09:16 -07:00
CALL RECOGNIZE
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSI,ACTORBIT /?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "I don't think"
CALL TPRINT-PRSI
PRINTR " even has hands."
2019-04-14 13:11:30 -07:00
?CCL5: PRINTR """How do you do."""
2019-04-14 13:09:16 -07:00
.FUNCT PRE-SHOOT
ZERO? PRSI \?CND1
CALL ULTIMATELY-IN?,ZAPGUN
ZERO? STACK /?CND1
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ZAPGUN \?CCL7
ZERO? ZAPGUN-SHOTS \?CCL10
2019-04-14 13:09:16 -07:00
PRINTR """Click."""
2019-04-14 13:09:56 -07:00
?CCL10: DEC 'ZAPGUN-SHOTS
2019-04-14 13:11:30 -07:00
PRINTR "Nasty flames spew from the zapgun."
2019-04-14 13:09:56 -07:00
?CCL7: SET 'PRSI,ZAPGUN
2019-04-14 13:09:16 -07:00
PRINTI "(with the "
PRINTD ZAPGUN
PRINTC 41
CRLF
2019-04-14 13:09:56 -07:00
?CND1: ZERO? PRSI \?CCL13
2019-04-14 13:09:16 -07:00
PRINTR "You aren't holding a gun!"
2019-04-14 13:09:56 -07:00
?CCL13: EQUAL? PRSI,ZAPGUN /?CCL15
2019-04-14 13:09:16 -07:00
PRINTI "Shoot"
CALL APRINT,PRSI
PRINTR "!?!"
2019-04-14 13:09:56 -07:00
?CCL15: EQUAL? PRSO,ZAPGUN \?CCL17
2019-04-14 13:09:16 -07:00
PRINTR "Sorry; the zapgun doesn't have a rubber barrel."
2019-04-14 13:09:56 -07:00
?CCL17: ZERO? ZAPGUN-SHOTS \?CCL19
2019-04-14 13:09:16 -07:00
PRINTR """Click."""
2019-04-14 13:09:56 -07:00
?CCL19: DEC 'ZAPGUN-SHOTS
2019-04-14 13:09:16 -07:00
RFALSE
2019-04-14 13:09:56 -07:00
.FUNCT V-SHOOT,L
ZERO? ZAPGUN-FOOTNOTE \?CND1
SET 'ZAPGUN-FOOTNOTE,TRUE-VALUE
PRINTI "(Footnote 9) "
?CND1: PRINTI "A blaze of intense rays "
FSET? PRSO,TAKEBIT /?CTR4
EQUAL? PRSO,ROULETTE-WHEEL,LOCKER,ID-CHANGER /?CTR4
EQUAL? PRSO,DRYER,HEATING-CHAMBER,LOG-READER /?CTR4
EQUAL? PRSO,SKELETON,CAGE,PRESSER /?CTR4
EQUAL? PRSO,SOUP,GRAY-GOO,ORANGE-GOO \?CCL5
?CTR4: PRINTI "envelop"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTI ". When the rays dissipate,"
CALL TPRINT-PRSO
PRINTC 32
2019-04-14 13:09:56 -07:00
FSET? PRSO,PLURALBIT \?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "are"
2019-04-14 13:09:56 -07:00
JUMP ?CND11
?CCL13: PRINTI "is"
?CND11: PRINTI " gone."
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL16
2019-04-14 13:09:16 -07:00
PRINTI " Unfortunately, so is most of your "
2019-04-14 13:09:56 -07:00
FSET? PRSO,WORNBIT \?CCL19
2019-04-14 13:09:16 -07:00
PRINTI "body, since you were wear"
2019-04-14 13:09:56 -07:00
JUMP ?CND17
?CCL19: PRINTI "arm, since you were hold"
?CND17: PRINTI "ing"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
2019-04-14 13:11:30 -07:00
CALL JIGS-UP,STR?9
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL16: LOC PRSO >L
EQUAL? L,FLOYD \?CCL22
PRINTI " Floyd, who was holding"
CALL TPRINT-PRSO
2019-04-14 13:11:30 -07:00
PRINTI ", gives a shriek of fear, and all the oil drains from his face."
2019-04-14 13:09:56 -07:00
JUMP ?CND20
?CCL22: EQUAL? L,HERE,PEDESTAL,DRILLED-HOLE /?CND20
PRINTI " Naturally,"
CALL TPRINT,L
PRINTI " is also history, since"
CALL TPRINT-PRSO
PRINTI " was sitting "
FSET? L,SURFACEBIT \?CCL26
PRINTC 111
JUMP ?CND24
?CCL26: PRINTC 105
?CND24: PRINTI "n it."
CALL REMOVE-CAREFULLY,L
?CND20: CALL REMOVE-CAREFULLY,PRSO
2019-04-14 13:09:16 -07:00
CRLF
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: PRINTI "washes over"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR ". It glows for a bit, but then cools."
.FUNCT V-SSHOOT
CALL PERFORM,V?SHOOT,PRSI,PRSO
CALL THIS-IS-IT,PRSO
RTRUE
.FUNCT V-SHOW
PRINTI "It doesn't look like"
CALL TPRINT-PRSI
PRINTR " is interested."
.FUNCT V-SIT,VEHICLE
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS /?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? HERE,THEATRE \?CCL5
PRINTR "But there's nothing to watch at the moment!"
?CCL5: CALL FIND-IN,HERE,VEHBIT >VEHICLE
ZERO? VEHICLE /?CCL7
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,VEHICLE
RTRUE
2019-04-14 13:09:56 -07:00
?CCL7: CALL PERFORM,V?CLIMB-ON,GROUND
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-SKIP
CALL WEE
RSTACK
.FUNCT V-SLEEP
2019-04-14 13:09:56 -07:00
ZERO? SLEEPY-LEVEL \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "You're not tired."
2019-04-14 13:09:56 -07:00
?CCL3: CALL QUEUED?,I-FALL-ASLEEP
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINTR "You'll probably be asleep before you know it."
2019-04-14 13:09:56 -07:00
?CCL5: PRINTR "Members of civilized societies usually sleep in beds."
2019-04-14 13:09:16 -07:00
2019-04-14 13:09:56 -07:00
.FUNCT PRE-SMELL
FSET? SPACESUIT,WORNBIT \FALSE
2019-04-14 13:09:16 -07:00
PRINTI "You smell stale air and rusty metal and unbathed "
PRINT LFC
2019-04-14 13:11:30 -07:00
PRINTR " -- all the usual odors of a space suit."
2019-04-14 13:09:56 -07:00
.FUNCT V-SMELL
ZERO? PRSO /?CTR2
EQUAL? PRSO,AIR \?CCL3
?CTR2: ZERO? BALLOON-ODOR /?CCL8
PRINTI "The awful odor of the "
2019-04-14 13:11:30 -07:00
PRINTD BALLOON
2019-04-14 13:09:56 -07:00
PRINTR "'s digestive gas is thankfully fading."
?CCL8: EQUAL? HERE,GREASY-STRAW \?CCL10
2019-04-14 13:11:30 -07:00
FSET? NECTAR,TOUCHBIT /?CCL10
2019-04-14 13:09:16 -07:00
PRINTR "There's something yum-smelling around here!"
2019-04-14 13:09:56 -07:00
?CCL10: EQUAL? HERE,OPIUM-DEN \?CCL14
2019-04-14 13:09:16 -07:00
PRINTR "There's a lingering smell of various drugs."
2019-04-14 13:09:56 -07:00
?CCL14: CALL VISIBLE?,BALLOON
ZERO? STACK /?CCL16
2019-04-14 13:11:30 -07:00
CALL PERFORM,V?SMELL,BALLOON
RTRUE
2019-04-14 13:09:56 -07:00
?CCL16: EQUAL? HERE,COMMANDERS-QUARTERS \?CCL18
FSET? SAFE,OPENBIT \?CCL18
PRINTR "The odor of an explosion hangs in the air."
?CCL18: PRINTR "You smell nothing unusual just now."
2019-04-14 13:11:30 -07:00
?CCL3: CALL SENSE-OBJECT,STR?49
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT SENSE-OBJECT,STRING
CALL PRONOUN
PRINTC 32
PRINT STRING
FSET? PRSO,PLURALBIT /?CND1
EQUAL? PRSO,ME /?CND1
PRINTC 115
?CND1: PRINTI " just like"
CALL ARPRINT,PRSO
RSTACK
.FUNCT V-SPLAY-WITH
CALL PERFORM,V?PLAY-WITH,PRSI
RTRUE
.FUNCT V-SPRAY
2019-04-14 13:09:56 -07:00
ZERO? PRSI \?CCL3
IN? SPRAY-CAN,PROTAGONIST \?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "[with the "
PRINTD SPRAY-CAN
PRINTC 93
CRLF
CALL PERFORM,V?SPRAY,SPRAY-CAN,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: CALL CANT-VERB-A-PRSO,STR?50
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-SPUT-ON
CALL PERFORM,V?PUT-ON,PRSI,PRSO
RTRUE
.FUNCT V-SSHOW
CALL PERFORM,V?SHOW,PRSI,PRSO
RTRUE
.FUNCT V-SSPRAY
CALL PERFORM,V?SPRAY,PRSI,PRSO
RTRUE
.FUNCT V-STAND
2019-04-14 13:09:56 -07:00
EQUAL? P-PRSA-WORD,W?HOLD \?CCL3
2019-04-14 13:09:16 -07:00
CALL WASTES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: LOC PROTAGONIST
FSET? STACK,VEHBIT \?CCL5
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
CALL PERFORM,V?DISEMBARK,STACK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: ZERO? PRSO /?CCL7
FSET? PRSO,TAKEBIT \?CCL7
2019-04-14 13:09:16 -07:00
CALL WASTES
RSTACK
2019-04-14 13:11:30 -07:00
?CCL7: ZERO? STUNNED /?CCL11
CALL YOURE-STUNNED
RSTACK
?CCL11: PRINTR "You're already standing."
2019-04-14 13:09:16 -07:00
.FUNCT V-STAND-ON
CALL WASTES
RSTACK
.FUNCT V-STELL
CALL PERFORM,V?TELL,PRSI
RTRUE
.FUNCT V-STHROW
CALL PERFORM,V?THROW-TO,PRSI,PRSO
RTRUE
.FUNCT V-SWING
2019-04-14 13:09:56 -07:00
ZERO? PRSI /?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?KILL,PRSI,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR """Whoosh."""
2019-04-14 13:09:16 -07:00
.FUNCT V-SWRAP
CALL PERFORM,V?PUT-ON,PRSO,PRSI
RTRUE
.FUNCT PRE-TAKE
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
CALL YOURE-STUNNED,STR?51
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL UNTOUCHABLE?,PRSO
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL5
2019-04-14 13:09:16 -07:00
CALL CANT-REACH,PRSO
RSTACK
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? PRSI,TONGUE,HANDS /?CCL7
2019-04-14 13:09:16 -07:00
CALL PRE-LOOK
ZERO? STACK \TRUE
2019-04-14 13:11:30 -07:00
?CCL7: CALL LOC-CLOSED
2019-04-14 13:09:16 -07:00
ZERO? STACK \TRUE
2019-04-14 13:11:30 -07:00
IN? PROTAGONIST,PRSO \?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "You're "
2019-04-14 13:11:30 -07:00
FSET? PRSO,INBIT \?CCL16
2019-04-14 13:09:16 -07:00
PRINTC 105
2019-04-14 13:11:30 -07:00
JUMP ?CND14
?CCL16: PRINTC 111
?CND14: PRINTR "n it, asteroid-brain!"
?CCL13: IN? PRSO,PROTAGONIST /?CTR17
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,PRSO
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL18
FSET? PRSO,TAKEBIT /?CCL18
?CTR17: FSET? PRSO,WORNBIT \?CCL25
2019-04-14 13:09:16 -07:00
PRINTI "You're already wearing"
2019-04-14 13:11:30 -07:00
JUMP ?CND23
?CCL25: PRINTI "You already have"
?CND23: CALL TPRINT-PRSO
2019-04-14 13:09:16 -07:00
PRINT PERIOD-CR
RTRUE
2019-04-14 13:11:30 -07:00
?CCL18: IN? PRSO,HEATING-CHAMBER \?CCL27
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?REACH-IN,HEATING-CHAMBER
RTRUE
2019-04-14 13:11:30 -07:00
?CCL27: EQUAL? PRSO,LEASH \?CCL29
EQUAL? PRSI,BALLOON \?CCL29
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?REMOVE,LEASH
RTRUE
2019-04-14 13:11:30 -07:00
?CCL29: ZERO? PRSI /FALSE
2019-04-14 13:09:16 -07:00
IN? PRSO,PRSI /FALSE
2019-04-14 13:11:30 -07:00
EQUAL? PRSO,ME \?CCL37
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DROP,PRSI
RTRUE
2019-04-14 13:11:30 -07:00
?CCL37: EQUAL? PRSI,GLOBAL-ROOM \?CCL39
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,PRSO
ZERO? STACK /FALSE
CALL DO-WALK,P?OUT
RSTACK
2019-04-14 13:11:30 -07:00
?CCL39: EQUAL? PRSI,SCULPTURE,GARBAGE \?CCL44
2019-04-14 13:09:56 -07:00
IN? PRSO,HERE /FALSE
2019-04-14 13:11:30 -07:00
?CCL44: IN? PRSO,PRSI /?CCL48
2019-04-14 13:09:16 -07:00
CALL NOT-IN
RSTACK
2019-04-14 13:11:30 -07:00
?CCL48: SET 'PRSI,FALSE-VALUE
2019-04-14 13:09:16 -07:00
RFALSE
.FUNCT V-TAKE
CALL ITAKE
EQUAL? STACK,TRUE-VALUE \FALSE
2019-04-14 13:09:56 -07:00
ZERO? ID-SCRAMBLED \?CND4
EQUAL? PRSO,ID-CARD \?PRD9
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,BOOTS
2019-04-14 13:09:56 -07:00
ZERO? STACK /?PRD9
FSET? BOOTS,WORNBIT \?CCL5
?PRD9: EQUAL? PRSO,BOOTS \?CND4
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,ID-CARD
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND4
?CCL5: FCLEAR BOOTS,TRYTAKEBIT
2019-04-14 13:09:16 -07:00
FCLEAR ID-CARD,TRYTAKEBIT
SET 'ID-SCRAMBLED,TRUE-VALUE
2019-04-14 13:09:56 -07:00
?CND4: PRINTR "Taken."
2019-04-14 13:09:16 -07:00
.FUNCT V-TAKE-OFF
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ROOMS \?CCL3
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
2019-04-14 13:09:56 -07:00
FSET? STACK,VEHBIT \?CCL6
2019-04-14 13:09:16 -07:00
PRINTI "[of"
LOC PROTAGONIST
CALL TPRINT,STACK
PRINTC 93
CRLF
LOC PROTAGONIST
CALL PERFORM,V?DISEMBARK,STACK
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: CALL V-STAND
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL3: ZERO? STUNNED /?CCL8
CALL YOURE-STUNNED
RSTACK
?CCL8: FSET? PRSO,WORNBIT \?CCL10
2019-04-14 13:09:16 -07:00
SET 'C-ELAPSED,18
FCLEAR PRSO,WORNBIT
PRINTI "Okay, you're no longer wearing"
CALL TRPRINT,PRSO
RSTACK
2019-04-14 13:11:30 -07:00
?CCL10: FSET? PRSO,VEHBIT \?CCL12
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL12: PRINTI "You aren't wearing"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-TAKE-WITH
PRINTI "Sorry,"
CALL TPRINT-PRSI
PRINTI " is no help in getting"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-TASTE
GETP PRSO,P?FOOD-DESC
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "It tastes edible."
2019-04-14 13:11:30 -07:00
?CCL3: CALL SENSE-OBJECT,STR?52
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-TELL
2019-04-14 13:09:56 -07:00
FSET? PRSO,ACTORBIT \?CCL3
ZERO? P-CONT /?CCL6
2019-04-14 13:09:16 -07:00
SET 'WINNER,PRSO
SET 'ELIMINATE-CR,TRUE-VALUE
RTRUE
2019-04-14 13:09:56 -07:00
?CCL6: PRINTI "Hmmm..."
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
2019-04-14 13:11:30 -07:00
PRINTR " looks at you expectantly."
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "Talking to"
2019-04-14 13:09:16 -07:00
CALL APRINT,PRSO
PRINTI "? Dr. Blanchard, the Duffy's psychiatrist, would be fascinated to hear that."
CRLF
CALL STOP
RSTACK
.FUNCT V-TELL-ABOUT
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,ME \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?WHAT,PRSI
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL VISIBLE?,PRSI
ZERO? STACK /?CCL5
CALL PERFORM,V?SHOW,PRSI,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: SET 'PRSI,PRSO
CALL V-SHOW
RSTACK
2019-04-14 13:09:16 -07:00
.FUNCT V-THANK,OWINNER
2019-04-14 13:09:56 -07:00
ZERO? PRSO \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "[Just doing my job.]"
2019-04-14 13:09:56 -07:00
?CCL3: FSET? PRSO,ACTORBIT \?CCL5
2019-04-14 13:09:16 -07:00
SET 'OWINNER,WINNER
SET 'WINNER,PRSO
CALL PERFORM,V?THANK
SET 'WINNER,OWINNER
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-THROW
2019-04-14 13:09:56 -07:00
EQUAL? HERE,VACUUM-STORAGE \?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "You lose sight of"
CALL TPRINT-PRSO
PRINTI " as it sails away."
CALL REMOVE-CAREFULLY,PRSO
CRLF
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? HERE,TOP-OF-AIR-SHAFT,AIR-SHAFT \?CCL5
CALL V-DROP
RSTACK
?CCL5: ZERO? PRSI /?CCL7
2019-04-14 13:09:16 -07:00
MOVE PRSO,HERE
PRINTR "You missed."
2019-04-14 13:09:56 -07:00
?CCL7: MOVE PRSO,HERE
2019-04-14 13:09:16 -07:00
PRINTR "Thrown."
.FUNCT V-THROW-TO
2019-04-14 13:09:56 -07:00
FSET? PRSI,ACTORBIT \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?GIVE,PRSO,PRSI
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL PERFORM,V?THROW,PRSO,PRSI
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT V-TICKLE
PRINTR "Kitchy kitchy koo?"
.FUNCT V-TIE
PRINT YOU-CANT
PRINTI "tie"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-TIME,NO-CR=0
PRINTI "Current Galactic Standard Time "
2019-04-14 13:09:56 -07:00
FSET? CHRONOMETER,WORNBIT \?CCL3
LESS? DAY,3 \?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "(adjusted to your local day-cycle) is "
PRINTN INTERNAL-MOVES
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "is impossible to determine, since you"
FSET? CHRONOMETER,WORNBIT /?CCL8
PRINTI "'ve removed your "
PRINTD CHRONOMETER
2019-04-14 13:09:16 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL8: PRINTI "r "
PRINTD CHRONOMETER
PRINTI " has stopped"
?CND1: ZERO? NO-CR /?CCL11
2019-04-14 13:09:16 -07:00
PRINTC 46
RTRUE
2019-04-14 13:09:56 -07:00
?CCL11: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT PRE-TOUCH,VB=1
2019-04-14 13:11:30 -07:00
ZERO? STUNNED /?CCL3
2019-04-14 13:09:16 -07:00
ZERO? VB /TRUE
2019-04-14 13:11:30 -07:00
CALL YOURE-STUNNED,STR?51
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: CALL UNTOUCHABLE?,PRSO
2019-04-14 13:09:16 -07:00
ZERO? STACK /FALSE
ZERO? VB /TRUE
CALL CANT-REACH,PRSO
RTRUE
.FUNCT V-TOUCH
CALL LOC-CLOSED
ZERO? STACK \TRUE
2019-04-14 13:11:30 -07:00
CALL HACK-HACK,STR?53
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-TYPE
2019-04-14 13:09:56 -07:00
ZERO? PRSI /?CCL3
EQUAL? PRSI,KEYPAD /?CCL3
2019-04-14 13:09:16 -07:00
PRINT YOU-CANT
PRINTI "type on"
CALL APRINT,PRSI
PRINTR "!"
2019-04-14 13:09:56 -07:00
?CCL3: CALL GLOBAL-IN?,KEYPAD,HERE
ZERO? STACK \?CCL7
ZERO? PRSO /?CCL10
2019-04-14 13:09:16 -07:00
PRINT HUH
RTRUE
2019-04-14 13:09:56 -07:00
?CCL10: PRINTI "There's no keypad here!"
2019-04-14 13:09:16 -07:00
CRLF
CALL STOP
RSTACK
2019-04-14 13:09:56 -07:00
?CCL7: ZERO? PRSO /?CCL12
EQUAL? PRSO,INTNUM \?CCL12
2019-04-14 13:11:30 -07:00
ZERO? P-NUMBER \?CCL17
PRINTR "[Specify the number! TYPE 7, for example.]"
?CCL17: EQUAL? HERE,ROBOT-POOL \?CCL19
2019-04-14 13:09:16 -07:00
CALL ROBOT-TYPE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL19: EQUAL? HERE,SPACETRUCK \?CCL21
2019-04-14 13:09:16 -07:00
CALL SPACETRUCK-TYPE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL21: EQUAL? HERE,SHADY-DANS \?CCL23
2019-04-14 13:09:16 -07:00
CALL ID-CHANGER-TYPE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL23: EQUAL? HERE,PX \?CCL25
2019-04-14 13:09:16 -07:00
CALL DISPENSER-TYPE
RSTACK
2019-04-14 13:11:30 -07:00
?CCL25: CALL ELEVATOR-TYPE
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL12: ZERO? PRSO \?CCL27
ZERO? P-CONT /?CCL27
2019-04-14 13:09:16 -07:00
CALL NUMBER?,P-CONT
2019-04-14 13:11:30 -07:00
EQUAL? STACK,W?NUMBER \?CCL27
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?TYPE,INTNUM
CALL STOP
RSTACK
2019-04-14 13:11:30 -07:00
?CCL27: PRINTI "You can only type numbers on this keypad."
2019-04-14 13:09:16 -07:00
CRLF
CALL STOP
RSTACK
.FUNCT ROBOT-TYPE
2019-04-14 13:09:56 -07:00
FSET? ROBOT-USE-AUTHORIZATION-FORM,NDESCBIT /?CCL3
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?54
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: ZERO? ROBOT-PICKED /?CCL5
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?55
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL5: GRTR? P-NUMBER,3 \?CCL7
CALL RECORDING,STR?56
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL7: LESS? P-NUMBER,1 \?CCL9
CALL RECORDING,STR?57
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL9: EQUAL? P-NUMBER,3 \?CCL11
2019-04-14 13:09:16 -07:00
FSET FLOYD,TOUCHBIT
SET 'ROBOT-PICKED,FLOYD
SET 'FLOYD-SPOKE,TRUE-VALUE
PRINTR """Yippee!"" yells Floyd, bounding joyfully over and giving you a big hug."
2019-04-14 13:11:30 -07:00
?CCL11: EQUAL? P-NUMBER,1 \?CCL14
2019-04-14 13:09:16 -07:00
SET 'ROBOT-PICKED,REX
2019-04-14 13:11:30 -07:00
JUMP ?CND12
?CCL14: SET 'ROBOT-PICKED,HELEN
?CND12: CALL DEQUEUE,I-FLOYD
2019-04-14 13:09:16 -07:00
CALL QUEUE,I-OTHER-ROBOT,-1
FSET ROBOT-PICKED,TOUCHBIT
PRINTD ROBOT-PICKED
PRINTR " rolls up to you, ready to follow. Floyd's lower jaw begins quivering, as though he were about to cry."
.FUNCT SPACETRUCK-TYPE,X
2019-04-14 13:09:56 -07:00
FSET? CLASS-THREE-SPACECRAFT-ACTIVATION-FORM,NDESCBIT /?CCL3
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?54
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? SPACETRUCK-COUNTER,5 \?CCL5
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?58
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: ZERO? COURSE-PICKED /?CCL7
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?55
2019-04-14 13:09:56 -07:00
RSTACK
?CCL7: IN? PROTAGONIST,PILOT-SEAT /?PRD11
IN? FLOYD,PILOT-SEAT \?CCL9
?PRD11: IN? PROTAGONIST,COPILOT-SEAT /?CTR8
IN? FLOYD,COPILOT-SEAT \?CCL9
?CTR8: SET 'COURSE-PICKED,P-NUMBER
2019-04-14 13:11:30 -07:00
DIV INTERNAL-MOVES,50 >X
SUB X,132 >X
MUL X,X >X
DIV X,4 >X
ADD X,103 >RIGHT-COURSE
CALL QUEUE,I-SPACETRUCK,33
CALL RECORDING,STR?59
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL9: CALL RECORDING,STR?60
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT ELEVATOR-TYPE,DISTANCE
2019-04-14 13:09:56 -07:00
GRTR? P-NUMBER,9 /?CTR2
LESS? P-NUMBER,1 \?CCL3
2019-04-14 13:11:30 -07:00
?CTR2: CALL RECORDING,STR?61
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: GRTR? DAY,2 \?CCL7
2019-04-14 13:11:30 -07:00
CALL JIGS-UP,STR?62
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL7: EQUAL? ELEVATOR-LEVEL,P-NUMBER \?CCL9
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?63
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL9: EQUAL? P-NUMBER,8,9 \?CCL11
PRINTR "The elevator whines momentarily, but doesn't move."
?CCL11: PRINTI "The elevator "
EQUAL? DAY,1 \?CCL14
2019-04-14 13:09:16 -07:00
PRINTI "glides weightlessly "
2019-04-14 13:09:56 -07:00
JUMP ?CND12
?CCL14: PRINTI "starts with a jerk, "
GRTR? P-NUMBER,ELEVATOR-LEVEL \?CND15
PRINTI "bumping you against the ceiling, "
?CND15: PRINTI "then moves "
?CND12: GRTR? P-NUMBER,ELEVATOR-LEVEL \?CCL19
2019-04-14 13:09:16 -07:00
PRINTI "down"
SUB P-NUMBER,ELEVATOR-LEVEL >DISTANCE
2019-04-14 13:09:56 -07:00
JUMP ?CND17
?CCL19: PRINTI "up"
2019-04-14 13:09:16 -07:00
SUB ELEVATOR-LEVEL,P-NUMBER >DISTANCE
2019-04-14 13:09:56 -07:00
?CND17: PRINTI " the shaft, stopping "
EQUAL? DAY,2 \?CND20
2019-04-14 13:09:16 -07:00
PRINTI "suddenly "
2019-04-14 13:09:56 -07:00
?CND20: EQUAL? DAY,2 \?CCL24
GRTR? INTERNAL-MOVES,6300 \?CCL24
2019-04-14 13:09:16 -07:00
PRINTI "and not quite at level with your new floor"
2019-04-14 13:09:56 -07:00
JUMP ?CND22
?CCL24: PRINTI "at another opening to the west"
?CND22: EQUAL? DAY,2 \?CND27
GRTR? ELEVATOR-LEVEL,P-NUMBER \?CND27
PRINTI ". The sudden stop bumps you against the ceiling of the weightless elevator"
?CND27: MUL 5,DISTANCE >C-ELAPSED
SET 'ELEVATOR-LEVEL,P-NUMBER
IN? BALLOON,ELEVATOR \?CND31
2019-04-14 13:09:16 -07:00
PRINTI ". The "
PRINTD BALLOON
PRINTI " looks somewhat disoriented by the experience"
2019-04-14 13:09:56 -07:00
?CND31: IN? OSTRICH,ELEVATOR \?CCL35
2019-04-14 13:09:16 -07:00
PRINTI ". "
CALL PERFORM,V?SCARE,OSTRICH
RTRUE
2019-04-14 13:09:56 -07:00
?CCL35: PRINT PERIOD-CR
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT DISPENSER-TYPE
2019-04-14 13:09:56 -07:00
FSET? DISPENSER,TOUCHBIT /?CCL3
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?64
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: GRTR? P-NUMBER,9 \?CCL5
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?65
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: EQUAL? P-NUMBER,6,9 \?CCL7
2019-04-14 13:09:16 -07:00
FCLEAR DISPENSER,TOUCHBIT
2019-04-14 13:09:56 -07:00
EQUAL? P-NUMBER,6 \?CCL10
2019-04-14 13:09:16 -07:00
MOVE TIMER,DISPENSER
2019-04-14 13:09:56 -07:00
JUMP ?CND8
?CCL10: MOVE LARGE-BIT,DISPENSER
?CND8: PRINTR "You hear a loud ""klunk"" inside the dispenser, but nothing appears in the dispenser hole."
?CCL7: LESS? P-NUMBER,1 \?CCL12
2019-04-14 13:11:30 -07:00
CALL RECORDING,STR?57
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL12: CALL RECORDING,STR?66
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT RECORDING,STRING
RANDOM 100
2019-04-14 13:09:56 -07:00
LESS? 33,STACK /?CCL3
2019-04-14 13:09:16 -07:00
PRINTI "A recording says,"
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: RANDOM 100
LESS? 50,STACK /?CCL5
2019-04-14 13:09:16 -07:00
PRINTI "You hear a recorded voice."
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL5: PRINTI "A taped voice whispers in your ear."
2019-04-14 13:09:16 -07:00
?CND1: PRINTI " """
PRINT STRING
PRINTR "."""
.FUNCT V-UNDRESS
2019-04-14 13:09:56 -07:00
ZERO? PRSO /?CCL3
2019-04-14 13:09:16 -07:00
CALL IMPOSSIBLES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: SET 'PRSO,ROOMS
2019-04-14 13:09:16 -07:00
CALL V-GET-UNDRESSED
RSTACK
.FUNCT V-UNLOCK
2019-04-14 13:09:56 -07:00
FSET? PRSO,LOCKEDBIT /?CND1
EQUAL? HERE,THEATRE,BRIG \?CCL5
EQUAL? PRSO,PSEUDO-OBJECT /?CND1
?CCL5: PRINTI "But"
2019-04-14 13:09:16 -07:00
CALL TPRINT-PRSO
PRINTR " isn't locked."
2019-04-14 13:09:56 -07:00
?CND1: ZERO? PRSI \?CCL10
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,KEY
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "[with the key]"
CRLF
CALL PERFORM,V?UNLOCK,PRSO,KEY
RTRUE
2019-04-14 13:09:56 -07:00
?CCL13: SET 'AWAITING-REPLY,1
2019-04-14 13:09:16 -07:00
ADD C-ELAPSED,2
CALL QUEUE,I-REPLY,STACK
PRINTR "Your nose is key-shaped, I suppose?"
2019-04-14 13:09:56 -07:00
?CCL10: EQUAL? PRSI,KEY \?CCL15
PRINTI "This key doesn't unlock"
CALL TRPRINT,PRSO
RSTACK
?CCL15: CALL IMPOSSIBLES
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT V-UNTIE
CALL IMPOSSIBLES
RSTACK
.FUNCT V-USE
PRINT YOULL-HAVE-TO
PRINTI "be more specific about how you want to use"
CALL TRPRINT,PRSO
RSTACK
.FUNCT PRE-VALIDATE
2019-04-14 13:09:56 -07:00
ZERO? PRSI \?CCL3
2019-04-14 13:09:16 -07:00
CALL VISIBLE?,VALIDATION-STAMP
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL3
PRINTI "You don't have a "
PRINTD VALIDATION-STAMP
PRINTR "!"
?CCL3: ZERO? PRSI \?CCL7
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,VALIDATION-STAMP
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CCL7
2019-04-14 13:09:16 -07:00
PRINT YNH
CALL TRPRINT,VALIDATION-STAMP
RSTACK
2019-04-14 13:09:56 -07:00
?CCL7: ZERO? PRSI /FALSE
2019-04-14 13:09:16 -07:00
EQUAL? PRSI,VALIDATION-STAMP /FALSE
PRINT HUH
RTRUE
.FUNCT V-VALIDATE
PRINTI "There's no validation box on"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-WALK,AV,VEHICLE,PT,PTS,STR,OBJ,RM
LOC PROTAGONIST >AV
2019-04-14 13:09:56 -07:00
ZERO? P-WALK-DIR \?CCL3
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?WALK-TO,PRSO
RTRUE
2019-04-14 13:11:30 -07:00
?CCL3: ZERO? STUNNED /?CCL5
CALL YOURE-STUNNED,STR?67
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL5: EQUAL? PRSO,P?OUT \?CCL7
EQUAL? AV,SIMULATION-BOOTH,HOLDING-TANK \?CCL7
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DISEMBARK,AV
RTRUE
2019-04-14 13:11:30 -07:00
?CCL7: ZERO? HANGING-IN-AIR /?CCL11
EQUAL? PRSO,P?DOWN \?CCL14
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?DROP,LEASH
RTRUE
2019-04-14 13:11:30 -07:00
?CCL14: PRINTR "It's hard to walk when your feet are a couple of meters from the floor."
?CCL11: EQUAL? PRSO,P?IN \?CCL16
2019-04-14 13:09:16 -07:00
GETPT HERE,P?IN
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL16
2019-04-14 13:09:16 -07:00
CALL FIND-IN,HERE,VEHBIT >VEHICLE
2019-04-14 13:11:30 -07:00
ZERO? VEHICLE /?CCL16
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,VEHICLE
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL16
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,VEHICLE
RTRUE
2019-04-14 13:11:30 -07:00
?CCL16: FSET? AV,VEHBIT \?CCL22
2019-04-14 13:09:56 -07:00
PRINTI "You're not walking anywhere until you get o"
2019-04-14 13:11:30 -07:00
EQUAL? AV,BED \?CCL25
2019-04-14 13:09:56 -07:00
PRINTI "ff"
2019-04-14 13:11:30 -07:00
JUMP ?CND23
?CCL25: PRINTI "ut of"
?CND23: CALL TRPRINT,AV
2019-04-14 13:09:16 -07:00
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL22: ZERO? TIMER-CONNECTED /?CCL29
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,TIMER
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL29
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL29
CALL DO-FIRST,STR?19
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL29: ZERO? TIMER-CONNECTED /?CCL34
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL34
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,TIMER
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL34
CALL DO-FIRST,STR?19
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL34: ZERO? EXPLOSIVE-CONNECTED /?CCL39
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL39
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,EXPLOSIVE
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL39
CALL DO-FIRST,STR?20
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL39: ZERO? EXPLOSIVE-CONNECTED /?CCL44
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,EXPLOSIVE
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL44
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,DETONATOR
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CCL44
CALL DO-FIRST,STR?20
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL44: GETPT HERE,PRSO >PT
ZERO? PT /?CCL49
ZERO? LIT /?CCL52
2019-04-14 13:09:16 -07:00
SET 'C-ELAPSED,22
2019-04-14 13:11:30 -07:00
JUMP ?CND50
?CCL52: SET 'C-ELAPSED,33
?CND50: PTSIZE PT >PTS
EQUAL? PTS,UEXIT \?CCL55
2019-04-14 13:09:16 -07:00
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
2019-04-14 13:11:30 -07:00
?CCL55: EQUAL? PTS,CEXIT \?CCL57
EQUAL? HERE,CASINO \?CCL60
2019-04-14 13:09:16 -07:00
GETB PT,CEXITFLAG
VALUE STACK
2019-04-14 13:11:30 -07:00
ZERO? STACK /?CCL63
2019-04-14 13:09:16 -07:00
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
2019-04-14 13:11:30 -07:00
?CCL63: SET 'C-ELAPSED,7
PRINT CANT-GO
2019-04-14 13:09:16 -07:00
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL60: ZERO? VERBOSITY /?CND66
2019-04-14 13:09:16 -07:00
CALL DESCRIBE-AUTO-DOOR
2019-04-14 13:11:30 -07:00
?CND66: GETB PT,REXIT
2019-04-14 13:09:16 -07:00
CALL GOTO,STACK
RSTACK
2019-04-14 13:11:30 -07:00
?CCL57: EQUAL? PTS,NEXIT \?CCL69
SET 'C-ELAPSED,7
2019-04-14 13:09:16 -07:00
GET PT,NEXITSTR
PRINT STACK
CRLF
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL69: EQUAL? PTS,FEXIT \?CCL73
2019-04-14 13:09:16 -07:00
GET PT,FEXITFCN
CALL STACK >RM
2019-04-14 13:11:30 -07:00
ZERO? RM /?CCL76
2019-04-14 13:09:16 -07:00
CALL GOTO,RM
RSTACK
2019-04-14 13:11:30 -07:00
?CCL76: EQUAL? HERE,AIR-SHAFT /TRUE
2019-04-14 13:09:16 -07:00
SET 'C-ELAPSED,7
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL73: EQUAL? PTS,DEXIT \FALSE
2019-04-14 13:09:16 -07:00
GETB PT,DEXITOBJ >OBJ
2019-04-14 13:09:56 -07:00
FSET? OBJ,OPENBIT \?CCL85
2019-04-14 13:09:16 -07:00
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
2019-04-14 13:09:56 -07:00
?CCL85: GET PT,DEXITSTR >STR
ZERO? STR /?CCL87
2019-04-14 13:11:30 -07:00
SET 'C-ELAPSED,7
2019-04-14 13:09:16 -07:00
CALL THIS-IS-IT,OBJ
PRINT STR
CRLF
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL87: SET 'C-ELAPSED,7
CALL THIS-IS-IT,OBJ
CALL DO-FIRST,STR?23,OBJ
2019-04-14 13:09:16 -07:00
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL49: EQUAL? PRSO,P?IN,P?OUT \?CCL93
2019-04-14 13:09:16 -07:00
CALL V-WALK-AROUND
RETURN 8
2019-04-14 13:09:56 -07:00
?CCL93: PRINT CANT-GO
2019-04-14 13:09:16 -07:00
RETURN 8
.FUNCT DESCRIBE-AUTO-DOOR
2019-04-14 13:09:56 -07:00
EQUAL? HERE,BRIG,ARMORY \?CCL3
PRINTI "The "
PRINTD SECURITY-DOOR
PRINTC 32
2019-04-14 13:09:16 -07:00
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "The auto-door "
?CND1: EQUAL? DAY,1 \?CCL6
2019-04-14 13:09:16 -07:00
PRINTI "opens as you approach, and whisks shut behind you..."
2019-04-14 13:09:56 -07:00
JUMP ?CND4
?CCL6: GRTR? DAY,2 \?CCL8
PRINTI "opens barely wide enough for you to squeeze through. As you do so, the door tries to shut, almost jamming against you!"
FSET? AUTO-DOOR,TOUCHBIT /?CND4
2019-04-14 13:09:16 -07:00
FSET AUTO-DOOR,TOUCHBIT
PRINTI " Fortunately, auto-doors don't have a lot of power."
2019-04-14 13:09:56 -07:00
JUMP ?CND4
?CCL8: PRINTI "opens sluggishly. As soon as you have passed through, it zooms shut, "
GRTR? INTERNAL-MOVES,5000 \?CCL13
2019-04-14 13:09:16 -07:00
PRINTI "almost nipping your heels!"
2019-04-14 13:09:56 -07:00
JUMP ?CND11
?CCL13: PRINTI "seemingly a little sooner than normal."
?CND11: FSET? AUTO-DOOR,TOUCHBIT /?CND4
2019-04-14 13:09:16 -07:00
FSET AUTO-DOOR,TOUCHBIT
PRINTI " Very puzzling; auto-doors have been around for millenia, and are generally the epitome of reliability."
2019-04-14 13:09:56 -07:00
?CND4: CRLF
2019-04-14 13:09:16 -07:00
CRLF
RTRUE
.FUNCT V-WALK-AROUND
SET 'AWAITING-REPLY,1
CALL QUEUE,I-REPLY,1
SET 'P-WON,FALSE-VALUE
PRINTR "Did you have any particular direction in mind?"
.FUNCT V-WALK-TO
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,INTDIR \?CCL3
2019-04-14 13:09:16 -07:00
CALL DO-WALK,P-DIRECTION
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: CALL VISIBLE?,PRSO
ZERO? STACK /?CCL5
FSET? PRSO,VEHBIT \?CCL8
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?ENTER,PRSO
RTRUE
2019-04-14 13:09:56 -07:00
?CCL8: CALL V-FOLLOW
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL5: CALL V-WALK-AROUND
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
.FUNCT V-WAIT
EQUAL? PRSA,V?WAIT-FOR \?CCL3
SET 'C-ELAPSED,P-NUMBER
JUMP ?CND1
?CCL3: EQUAL? PRSA,V?WAIT-UNTIL \?CCL5
SUB P-NUMBER,INTERNAL-MOVES >C-ELAPSED
JUMP ?CND1
?CCL5: SET 'C-ELAPSED,40
?CND1: PRINTR "Time passes..."
2019-04-14 13:09:16 -07:00
.FUNCT V-WAIT-FOR
CALL VISIBLE?,PRSO
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
CALL V-FOLLOW
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINTR "You may be waiting quite a while."
.FUNCT V-WAIT-UNTIL
PRINT HUH
RTRUE
2019-04-14 13:09:16 -07:00
.FUNCT V-WEAR
2019-04-14 13:09:56 -07:00
FSET? PRSO,WEARBIT /?CCL3
2019-04-14 13:11:30 -07:00
CALL CANT-VERB-A-PRSO,STR?68
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: PRINTI "You're "
FSET? PRSO,WORNBIT \?CCL6
2019-04-14 13:09:16 -07:00
PRINTI "already"
2019-04-14 13:09:56 -07:00
JUMP ?CND4
?CCL6: MOVE PRSO,PROTAGONIST
2019-04-14 13:09:16 -07:00
FSET PRSO,WORNBIT
SET 'C-ELAPSED,18
PRINTI "now"
2019-04-14 13:09:56 -07:00
?CND4: PRINTI " wearing"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-WHAT
PRINTR "Good question."
.FUNCT V-WHERE
CALL V-FIND,TRUE-VALUE
RSTACK
.FUNCT V-WRAP
CALL PERFORM,V?PUT-ON,PRSI,PRSO
RTRUE
.FUNCT V-YELL
2019-04-14 13:11:30 -07:00
PRINTI "Aaaarrrggghhh!"
2019-04-14 13:09:16 -07:00
CRLF
IN? OSTRICH,HERE \?CND1
PRINTI " "
CALL PERFORM,V?SCARE,OSTRICH
RTRUE
?CND1: CALL STOP
RSTACK
.FUNCT I-REPLY
SET 'AWAITING-REPLY,FALSE-VALUE
RFALSE
.FUNCT V-YES
2019-04-14 13:09:56 -07:00
EQUAL? AWAITING-REPLY,1 \?CCL3
2019-04-14 13:09:16 -07:00
PRINTR "That was just a rhetorical question."
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? AWAITING-REPLY,2 \?CCL5
2019-04-14 13:11:30 -07:00
PRINTR """Floyd changed his mind. Controls too scary-looking."""
2019-04-14 13:09:56 -07:00
?CCL5: EQUAL? AWAITING-REPLY,3 \?CCL7
2019-04-14 13:11:30 -07:00
PRINTR "Floyd shrugs. ""Floyd feels not like learning new rules now. Let's play tag. Floyd knows rules for tag really well!"""
2019-04-14 13:09:56 -07:00
?CCL7: EQUAL? AWAITING-REPLY,4 \?CCL9
2019-04-14 13:09:16 -07:00
CALL PERFORM,V?PLAY-WITH,FLOYD
RTRUE
2019-04-14 13:11:30 -07:00
?CCL9: CALL YOU-SOUND,STR?69
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT YOU-SOUND,STRING
PRINTI "You sound rather "
PRINT STRING
PRINTR "ive."
.FUNCT YES-WORD,WRD
EQUAL? WRD,W?YES,W?Y,W?YUP /TRUE
2019-04-14 13:09:56 -07:00
EQUAL? WRD,W?OK,W?OKAY,W?SURE /TRUE
RFALSE
2019-04-14 13:09:16 -07:00
.FUNCT V-ZORK
PRINTR "Gesundheit!"
.FUNCT ITAKE,VB=1,OBJ,?TMP1
2019-04-14 13:09:56 -07:00
FSET? PRSO,TAKEBIT /?CCL3
ZERO? VB /?PRG6
2019-04-14 13:09:16 -07:00
CALL YUKS
2019-04-14 13:09:56 -07:00
?PRG6: RETURN 8
?CCL3: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK \?CCL9
2019-04-14 13:09:16 -07:00
CALL WEIGHT,PRSO >?TMP1
CALL WEIGHT,PROTAGONIST
ADD ?TMP1,STACK
2019-04-14 13:09:56 -07:00
GRTR? STACK,100 \?CCL9
ZERO? VB /?PRG14
PRINTI "You're juggling just about as much stuff as you can manage."
2019-04-14 13:09:16 -07:00
CRLF
2019-04-14 13:09:56 -07:00
?PRG14: RETURN 8
?CCL9: CALL CCOUNT,PROTAGONIST
2019-04-14 13:09:16 -07:00
MUL STACK,20
SUB STACK,150 >?TMP1
RANDOM 100
LESS? ?TMP1,STACK /?CND1
2019-04-14 13:09:56 -07:00
FIRST? PROTAGONIST >OBJ /?PRG17
?PRG17: FSET? OBJ,WORNBIT \?CCL21
NEXT? OBJ >OBJ /?PRG17
JUMP ?PRG17
?CCL21: EQUAL? OBJ,OSTRICH-NIP \?REP18
IN? OSTRICH,HERE \?REP18
NEXT? OBJ >OBJ /?PRG17
JUMP ?PRG17
?REP18: MOVE PRSO,HERE
2019-04-14 13:09:16 -07:00
MOVE OBJ,HERE
FSET PRSO,TOUCHBIT
2019-04-14 13:09:56 -07:00
ZERO? VB /?PRG31
2019-04-14 13:09:16 -07:00
PRINTI "As you try to grab"
CALL TPRINT-PRSO
PRINTC 44
CALL TPRINT,OBJ
PRINTI " slips from your hands and both tumble "
2019-04-14 13:09:56 -07:00
FSET? HERE,WEIGHTLESSBIT \?CCL30
2019-04-14 13:09:16 -07:00
PRINTI "away"
2019-04-14 13:09:56 -07:00
JUMP ?CND28
?CCL30: PRINTI "to the floor"
?CND28: PRINT PERIOD-CR
?PRG31: RETURN 8
2019-04-14 13:09:16 -07:00
?CND1: CALL SCORE-OBJ
MOVE PRSO,PROTAGONIST
RTRUE
.FUNCT SCORE-OBJ,POINTS
FSET PRSO,TOUCHBIT
FCLEAR PRSO,NDESCBIT
GETP PRSO,P?VALUE >POINTS
ZERO? POINTS /FALSE
2019-04-14 13:09:56 -07:00
GRTR? POINTS,0 \?CND4
2019-04-14 13:09:16 -07:00
INC 'ROBOT-EVILNESS
2019-04-14 13:09:56 -07:00
?CND4: PUTP PRSO,P?VALUE,0
2019-04-14 13:09:16 -07:00
ADD SCORE,POINTS >SCORE
RETURN SCORE
.FUNCT IDROP
2019-04-14 13:09:56 -07:00
EQUAL? PRSO,HANDS \?CCL3
2019-04-14 13:09:16 -07:00
EQUAL? PRSA,V?GIVE,V?THROW,V?DROP \FALSE
CALL IMPOSSIBLES
RSTACK
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? PRSA,V?GIVE,V?DROP \?CCL8
EQUAL? PRSO,LEASH \?CCL8
2019-04-14 13:09:16 -07:00
ZERO? HANGING-IN-AIR \FALSE
2019-04-14 13:09:56 -07:00
?CCL8: CALL ULTIMATELY-IN?,PRSO
ZERO? STACK \?CCL13
EQUAL? PRSA,V?THROW \?CCL16
2019-04-14 13:09:16 -07:00
EQUAL? PRSO,SWITCH /FALSE
2019-04-14 13:09:56 -07:00
?CCL16: EQUAL? PRSO,TONGUE,HANDS,ME \?CCL20
CALL IMPOSSIBLES
2019-04-14 13:11:30 -07:00
JUMP ?CND14
2019-04-14 13:09:56 -07:00
?CCL20: EQUAL? PRSA,V?PUT \?CCL22
EQUAL? PRSO,ID-READER \?CCL22
CALL ADJ-USED,A?ID,ID-READER
ZERO? STACK /?CCL22
GET P-NAMW,0
EQUAL? STACK,FALSE-VALUE \?CCL22
PRINT YOU-CANT
PRINTI "see any ID card here!"
CRLF
2019-04-14 13:11:30 -07:00
JUMP ?CND14
2019-04-14 13:09:56 -07:00
?CCL22: PRINTI "That's easy for you to say since you don't even have"
2019-04-14 13:09:16 -07:00
CALL TRPRINT,PRSO
2019-04-14 13:11:30 -07:00
?CND14: ZERO? P-MULT \TRUE
2019-04-14 13:09:16 -07:00
RETURN 8
2019-04-14 13:11:30 -07:00
?CCL13: IN? PRSO,PROTAGONIST /?CCL33
2019-04-14 13:09:16 -07:00
LOC PRSO
2019-04-14 13:11:30 -07:00
FSET? STACK,CONTBIT \?CCL33
2019-04-14 13:09:16 -07:00
LOC PRSO
2019-04-14 13:11:30 -07:00
FSET? STACK,OPENBIT /?CCL33
2019-04-14 13:09:16 -07:00
LOC PRSO
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,STACK
2019-04-14 13:09:16 -07:00
RSTACK
2019-04-14 13:11:30 -07:00
?CCL33: FSET? PRSO,WORNBIT \FALSE
CALL DO-FIRST,STR?70,PRSO
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT CCOUNT,OBJ,CNT=0,X
2019-04-14 13:09:56 -07:00
FIRST? OBJ >X /?PRG3
RETURN CNT
?PRG3: FSET? X,WORNBIT /?CND5
2019-04-14 13:09:16 -07:00
INC 'CNT
2019-04-14 13:09:56 -07:00
?CND5: NEXT? X >X /?PRG3
RETURN CNT
2019-04-14 13:09:16 -07:00
.FUNCT WEIGHT,OBJ,CONT,WT=0
FIRST? OBJ >CONT \?CND1
2019-04-14 13:11:30 -07:00
?PRG3: FSET? CONT,WORNBIT /?CND5
CALL WEIGHT,CONT
2019-04-14 13:09:16 -07:00
ADD WT,STACK >WT
2019-04-14 13:11:30 -07:00
?CND5: NEXT? CONT >CONT /?KLU12
?KLU12: ZERO? CONT \?PRG3
?CND1: EQUAL? OBJ,PROTAGONIST \?CCL11
2019-04-14 13:09:16 -07:00
RETURN WT
2019-04-14 13:11:30 -07:00
?CCL11: GETP OBJ,P?SIZE
2019-04-14 13:09:16 -07:00
ADD WT,STACK
RSTACK
.FUNCT DESCRIBE-ROOM,VERB-IS-LOOK=0,FIRST-VISIT=0,POINTS
2019-04-14 13:09:56 -07:00
GETP HERE,P?VALUE >POINTS
ZERO? POINTS /?CND1
GRTR? POINTS,0 \?CND1
INC 'ROBOT-EVILNESS
ADD SCORE,POINTS >SCORE
PUTP HERE,P?VALUE,0
?CND1: ZERO? LIT \?CCL7
2019-04-14 13:09:16 -07:00
PRINTI "It is pitch black. You "
2019-04-14 13:09:56 -07:00
EQUAL? HERE,VACUUM-STORAGE \?CCL10
2019-04-14 13:09:16 -07:00
PRINTI "try desperately to remember: 1. whether grues can survive in a vacuum and 2. whether they can tear through a space suit."
CRLF
RFALSE
2019-04-14 13:09:56 -07:00
?CCL10: PRINTI "hope there are no grues aboard the station."
2019-04-14 13:09:16 -07:00
CRLF
RFALSE
2019-04-14 13:09:56 -07:00
?CCL7: FSET? HERE,TOUCHBIT /?CND5
EQUAL? HERE,AIR-SHAFT /?CND12
2019-04-14 13:09:16 -07:00
FSET HERE,TOUCHBIT
2019-04-14 13:09:56 -07:00
?CND12: SET 'FIRST-VISIT,TRUE-VALUE
?CND5: PRINTD HERE
ZERO? HANGING-IN-AIR /?CCL16
2019-04-14 13:09:16 -07:00
PRINTI ", hanging in air"
2019-04-14 13:09:56 -07:00
JUMP ?CND14
?CCL16: LOC PROTAGONIST
FSET? STACK,VEHBIT \?CND14
2019-04-14 13:09:16 -07:00
PRINTI ", "
LOC PROTAGONIST
2019-04-14 13:09:56 -07:00
FSET? STACK,INBIT \?CCL20
2019-04-14 13:09:16 -07:00
PRINTC 105
2019-04-14 13:09:56 -07:00
JUMP ?CND18
?CCL20: PRINTC 111
?CND18: PRINTC 110
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
CALL TPRINT,STACK
2019-04-14 13:09:56 -07:00
?CND14: CRLF
ZERO? VERB-IS-LOOK \?CCL22
EQUAL? VERBOSITY,2 /?CCL22
2019-04-14 13:09:16 -07:00
ZERO? FIRST-VISIT /TRUE
EQUAL? VERBOSITY,1 \TRUE
2019-04-14 13:09:56 -07:00
?CCL22: PRINTI " "
2019-04-14 13:09:16 -07:00
GETP HERE,P?ACTION
CALL STACK,M-LOOK
2019-04-14 13:09:56 -07:00
ZERO? STACK \?CND28
2019-04-14 13:09:16 -07:00
GETP HERE,P?LDESC
PRINT STACK
2019-04-14 13:09:56 -07:00
?CND28: CRLF
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT DESCRIBE-OBJECTS,O,STR,1ST?=1,AV
LOC WINNER >AV
2019-04-14 13:09:56 -07:00
FIRST? HERE >O /?KLU41
?KLU41: ZERO? O /FALSE
?PRG3: ZERO? O /?REP4
2019-04-14 13:09:16 -07:00
CALL DESCRIBABLE?,O
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND5
FSET? O,TOUCHBIT /?CND5
2019-04-14 13:09:16 -07:00
GETP O,P?FDESC >STR
2019-04-14 13:09:56 -07:00
ZERO? STR /?CND5
2019-04-14 13:09:16 -07:00
PRINTI " "
PRINT STR
2019-04-14 13:09:56 -07:00
FSET? O,CONTBIT \?CND12
2019-04-14 13:09:16 -07:00
ADD D-ALL?,D-PARA?
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK
2019-04-14 13:09:56 -07:00
?CND12: CRLF
?CND5: NEXT? O >O /?PRG3
JUMP ?PRG3
?REP4: FIRST? HERE >O /?KLU43
?KLU43: SET '1ST?,TRUE-VALUE
?PRG14: ZERO? O /?REP15
2019-04-14 13:09:16 -07:00
CALL DESCRIBABLE?,O
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND16
2019-04-14 13:09:16 -07:00
GETP O,P?FDESC
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL20
FSET? O,TOUCHBIT \?CND16
?CCL20: GETP O,P?DESCFCN >STR
ZERO? STR /?CCL26
2019-04-14 13:09:16 -07:00
CALL STR,M-OBJDESC >STR
2019-04-14 13:09:56 -07:00
ZERO? STR /?CCL26
FSET? O,CONTBIT \?CND29
EQUAL? STR,M-FATAL /?CND29
2019-04-14 13:09:16 -07:00
ADD D-ALL?,D-PARA?
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK
2019-04-14 13:09:56 -07:00
?CND29: CRLF
JUMP ?CND16
?CCL26: GETP O,P?LDESC >STR
ZERO? STR /?CND16
2019-04-14 13:09:16 -07:00
PRINTI " "
PRINT STR
2019-04-14 13:09:56 -07:00
FSET? O,CONTBIT \?CND34
2019-04-14 13:09:16 -07:00
ADD D-ALL?,D-PARA?
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK
2019-04-14 13:09:56 -07:00
?CND34: CRLF
?CND16: NEXT? O >O /?PRG14
JUMP ?PRG14
?REP15: CALL DESCRIBE-CONTENTS,HERE,FALSE-VALUE,0
2019-04-14 13:09:16 -07:00
ZERO? AV /FALSE
EQUAL? HERE,AV /FALSE
CALL DESCRIBE-CONTENTS,AV,FALSE-VALUE,0
RSTACK
.FUNCT DESCRIBE-CONTENTS,OBJ,LEVEL=-1,ALL?=D-ALL?,F=0,N,1ST?=1,IT?=0,TWO?=0,START?=0,PARA?=0,DB
2019-04-14 13:09:56 -07:00
EQUAL? LEVEL,2 \?CCL3
2019-04-14 13:09:16 -07:00
SET 'LEVEL,TRUE-VALUE
SET 'PARA?,TRUE-VALUE
SET 'START?,TRUE-VALUE
JUMP ?CND1
2019-04-14 13:09:56 -07:00
?CCL3: BTST ALL?,D-PARA? \?CND1
2019-04-14 13:09:16 -07:00
SET 'PARA?,TRUE-VALUE
2019-04-14 13:09:56 -07:00
?CND1: FIRST? OBJ >N /?KLU117
?KLU117: ZERO? START? \?PRG20
IN? OBJ,ROOMS /?PRG20
FSET? OBJ,ACTORBIT /?PRG20
2019-04-14 13:09:16 -07:00
ZERO? N /FALSE
FSET? OBJ,CONTBIT \FALSE
2019-04-14 13:09:56 -07:00
FSET? OBJ,OPENBIT /?PRD15
2019-04-14 13:09:16 -07:00
FSET? OBJ,TRANSBIT \FALSE
2019-04-14 13:09:56 -07:00
?PRD15: EQUAL? LEVEL,-1 /?PRG20
2019-04-14 13:09:16 -07:00
FSET? OBJ,SEARCHBIT \FALSE
2019-04-14 13:09:56 -07:00
?PRG20: ZERO? N /?CCL23
2019-04-14 13:09:16 -07:00
CALL DESCRIBABLE?,N
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND22
BTST ALL?,D-ALL? /?CCL23
2019-04-14 13:09:16 -07:00
CALL SIMPLE-DESC?,N
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND22
?CCL23: ZERO? F /?CND30
ZERO? 1ST? /?CCL34
2019-04-14 13:09:16 -07:00
SET '1ST?,FALSE-VALUE
2019-04-14 13:09:56 -07:00
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CCL37
ZERO? START? \?CND32
ZERO? PARA? \?CCL42
EQUAL? OBJ,PROTAGONIST /?CND43
2019-04-14 13:09:16 -07:00
PRINTI " "
2019-04-14 13:09:56 -07:00
?CND43: SET 'PARA?,TRUE-VALUE
JUMP ?CND40
?CCL42: EQUAL? LEVEL,TRUE-VALUE \?CND40
2019-04-14 13:09:16 -07:00
PRINTC 32
2019-04-14 13:09:56 -07:00
?CND40: CALL DESCRIBE-START,OBJ
JUMP ?CND32
?CCL37: EQUAL? LEVEL,-1 /?CND32
2019-04-14 13:09:16 -07:00
PRINT LEVEL
2019-04-14 13:09:56 -07:00
JUMP ?CND32
?CCL34: ZERO? N /?CCL48
2019-04-14 13:09:16 -07:00
PRINTC 44
2019-04-14 13:09:56 -07:00
JUMP ?CND32
?CCL48: PRINTI " and"
?CND32: CALL APRINT,F
FSET? F,ONBIT \?CND49
2019-04-14 13:09:16 -07:00
PRINTI " (providing light)"
2019-04-14 13:09:56 -07:00
?CND49: EQUAL? F,DETONATOR \?CND51
ZERO? TIMER-CONNECTED \?CCL52
ZERO? EXPLOSIVE-CONNECTED /?CND51
?CCL52: PRINTI " (connected to the "
ZERO? TIMER-CONNECTED /?CCL59
2019-04-14 13:09:16 -07:00
PRINTI "timer"
2019-04-14 13:09:56 -07:00
ZERO? EXPLOSIVE-CONNECTED /?CND57
2019-04-14 13:09:16 -07:00
PRINTI " and the explosive"
2019-04-14 13:09:56 -07:00
JUMP ?CND57
?CCL59: PRINTI "explosive"
?CND57: PRINTC 41
?CND51: ZERO? IT? \?CCL64
ZERO? TWO? \?CCL64
2019-04-14 13:09:16 -07:00
SET 'IT?,F
JUMP ?CND30
2019-04-14 13:09:56 -07:00
?CCL64: SET 'TWO?,TRUE-VALUE
2019-04-14 13:09:16 -07:00
SET 'IT?,FALSE-VALUE
?CND30: SET 'F,N
2019-04-14 13:09:56 -07:00
?CND22: ZERO? N /?CND67
NEXT? N >N /?CND67
?CND67: ZERO? F \?PRG20
ZERO? N \?PRG20
ZERO? IT? /?CND73
ZERO? TWO? \?CND73
2019-04-14 13:09:16 -07:00
CALL THIS-IS-IT,IT?
2019-04-14 13:09:56 -07:00
?CND73: ZERO? 1ST? /?CCL79
ZERO? START? /?CCL79
2019-04-14 13:09:16 -07:00
PRINTI " nothing"
RFALSE
2019-04-14 13:09:56 -07:00
?CCL79: ZERO? 1ST? \?REP21
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?REP21
EQUAL? OBJ,HERE \?CND85
FSET? HERE,WEIGHTLESSBIT \?CND87
EQUAL? HERE,PET-STORE /?CND87
2019-04-14 13:09:16 -07:00
PRINTI " floating"
2019-04-14 13:09:56 -07:00
?CND87: PRINTI " here"
?CND85: PRINTC 46
?REP21: EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND91
FIRST? OBJ >F /?PRG93
?PRG93: ZERO? F /?CND91
FSET? F,CONTBIT \?CND95
2019-04-14 13:09:16 -07:00
CALL DESCRIBABLE?,F,TRUE-VALUE
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND95
BTST ALL?,D-ALL? /?CCL98
2019-04-14 13:09:16 -07:00
CALL SIMPLE-DESC?,F
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND95
?CCL98: SET 'DB,D-BIT
2019-04-14 13:09:16 -07:00
SET 'D-BIT,FALSE-VALUE
2019-04-14 13:09:56 -07:00
ZERO? PARA? /?CCL108
2019-04-14 13:09:16 -07:00
PUSH 3
2019-04-14 13:09:56 -07:00
JUMP ?CND106
?CCL108: PUSH D-ALL?
?CND106: CALL DESCRIBE-CONTENTS,F,TRUE-VALUE,STACK
ZERO? STACK /?CND104
2019-04-14 13:09:16 -07:00
SET '1ST?,FALSE-VALUE
SET 'PARA?,TRUE-VALUE
2019-04-14 13:09:56 -07:00
?CND104: SET 'D-BIT,DB
?CND95: NEXT? F >F /?PRG93
JUMP ?PRG93
?CND91: ZERO? 1ST? \?CND109
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND109
2019-04-14 13:09:16 -07:00
LOC WINNER
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,HERE,STACK \?CND109
2019-04-14 13:09:16 -07:00
CRLF
2019-04-14 13:09:56 -07:00
?CND109: ZERO? 1ST? /TRUE
RFALSE
2019-04-14 13:09:16 -07:00
.FUNCT DESCRIBE-START,OBJ
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,HERE \?CCL3
2019-04-14 13:09:16 -07:00
PRINT YOU-SEE
RTRUE
2019-04-14 13:09:56 -07:00
?CCL3: EQUAL? OBJ,PROTAGONIST \?CCL5
EQUAL? D-BIT,WORNBIT \?CCL8
2019-04-14 13:09:16 -07:00
PRINTI " You are wearing"
RTRUE
2019-04-14 13:09:56 -07:00
?CCL8: PRINTI "You are carrying"
2019-04-14 13:09:16 -07:00
RTRUE
2019-04-14 13:09:56 -07:00
?CCL5: FSET? OBJ,SURFACEBIT /?CTR9
EQUAL? OBJ,PILOT-SEAT,COPILOT-SEAT \?CCL10
?CTR9: PRINTI "Sitting on"
2019-04-14 13:09:16 -07:00
CALL TPRINT,OBJ
PRINTI " is"
RTRUE
2019-04-14 13:09:56 -07:00
?CCL10: PRINT IT-SEEMS-THAT
2019-04-14 13:09:16 -07:00
CALL TPRINT,OBJ
2019-04-14 13:09:56 -07:00
FSET? OBJ,ACTORBIT \?CCL15
2019-04-14 13:09:16 -07:00
PRINTI " has"
RTRUE
2019-04-14 13:09:56 -07:00
?CCL15: PRINTI " contains"
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT DESCRIBABLE?,OBJ,CONT?=0
FSET? OBJ,INVISIBLE /FALSE
EQUAL? OBJ,WINNER /FALSE
LOC WINNER
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,STACK \?CCL7
2019-04-14 13:09:16 -07:00
LOC WINNER
EQUAL? HERE,STACK \FALSE
2019-04-14 13:09:56 -07:00
?CCL7: ZERO? CONT? \?CCL11
2019-04-14 13:09:16 -07:00
FSET? OBJ,NDESCBIT /FALSE
2019-04-14 13:09:56 -07:00
?CCL11: ZERO? D-BIT /TRUE
GRTR? D-BIT,0 \?CCL18
FSET? OBJ,D-BIT /TRUE
RFALSE
?CCL18: SUB 0,D-BIT
2019-04-14 13:09:16 -07:00
FSET? OBJ,STACK /FALSE
RTRUE
.FUNCT SIMPLE-DESC?,OBJ,STR
GETP OBJ,P?FDESC
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL3
2019-04-14 13:09:16 -07:00
FSET? OBJ,TOUCHBIT \FALSE
2019-04-14 13:09:56 -07:00
?CCL3: GETP OBJ,P?DESCFCN >STR
ZERO? STR /?CCL7
2019-04-14 13:09:16 -07:00
CALL STR,M-OBJDESC?
ZERO? STACK \FALSE
2019-04-14 13:09:56 -07:00
?CCL7: GETP OBJ,P?LDESC
2019-04-14 13:09:16 -07:00
ZERO? STACK /TRUE
RFALSE
.FUNCT DESCRIBE-VEHICLE
PRINTI "Other than yourself, you can see"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
2019-04-14 13:09:56 -07:00
FSET? PRSO,INBIT \?CCL5
2019-04-14 13:09:16 -07:00
PRINTI " in"
2019-04-14 13:09:56 -07:00
JUMP ?CND3
?CCL5: PRINTI " on"
?CND3: CALL TRPRINT,PRSO
2019-04-14 13:09:16 -07:00
RTRUE
.FUNCT DESCRIBE-NOTHING
CALL DESCRIBE-CONTENTS,PRSO,2
ZERO? STACK /FALSE
IN? PROTAGONIST,PRSO /TRUE
CRLF
RTRUE
.FUNCT GOTO,NEW-LOC,OLD-HERE
GETP HERE,P?ACTION
CALL STACK,M-EXIT
IN? FLOYD,HERE \?CND1
FSET? FLOYD,ACTIVEBIT \?CND1
SET 'FLOYD-FOLLOW,TRUE-VALUE
?CND1: SET 'OLD-HERE,HERE
MOVE PROTAGONIST,NEW-LOC
SET 'HERE,NEW-LOC
CALL LIT?,HERE >LIT
SET 'BALLOON-ODOR,FALSE-VALUE
GETP HERE,P?ACTION
CALL STACK,M-ENTER
CALL DESCRIBE-ROOM
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CND5
ZERO? VERBOSITY /?CND5
2019-04-14 13:09:16 -07:00
CALL DESCRIBE-OBJECTS
2019-04-14 13:09:56 -07:00
?CND5: IN? OSTRICH,OLD-HERE \TRUE
2019-04-14 13:09:16 -07:00
CALL ULTIMATELY-IN?,OSTRICH-NIP
ZERO? STACK /TRUE
CALL VISIBLE?,OSTRICH-NIP
ZERO? STACK /TRUE
2019-04-14 13:09:56 -07:00
EQUAL? HERE,TOP-OF-AIR-SHAFT /TRUE
2019-04-14 13:09:16 -07:00
PRINTI " The ostrich, sniffing excitedly, "
CALL GLOBAL-IN?,BED,HERE
2019-04-14 13:09:56 -07:00
ZERO? STACK /?CCL17
PRINTR "follows you to the door, but hesitates as it notices the bed. The ostrich, who refuses to enter any room with a bed due to a bad experience in its youth, withdraws."
?CCL17: LOC OSTRICH
FSET? STACK,WEIGHTLESSBIT \?CCL19
2019-04-14 13:09:16 -07:00
PRINTI "follows you in an awkward fashion somewhere between swimming and flying."
2019-04-14 13:09:56 -07:00
JUMP ?CND15
?CCL19: PRINTI "trots eagerly after you."
?CND15: EQUAL? HERE,SOUTH-CONNECTION \?PRD24
IN? OSTRICH,GRIMY-PASSAGE /?CTR21
?PRD24: EQUAL? HERE,EAST-CONNECTION \?PRD27
IN? OSTRICH,MAKESHIFT-CONNECTOR /?CTR21
?PRD27: IN? OSTRICH,ELEVATOR \?CCL22
?CTR21: ZERO? LIT /?CND20
PRINTI " As the ostrich crosses into gravity, it emits a surprised squawk and does a graceless bellyflop. As it struggles to its feet, it appears that only its dignity was injured."
JUMP ?CND20
?CCL22: EQUAL? HERE,GRIMY-PASSAGE \?PRD34
IN? OSTRICH,SOUTH-CONNECTION /?CCL32
?PRD34: EQUAL? HERE,MAKESHIFT-CONNECTOR \?PRD37
IN? OSTRICH,EAST-CONNECTION /?CCL32
?PRD37: EQUAL? HERE,ELEVATOR \?CND20
FSET? ELEVATOR,WEIGHTLESSBIT \?CND20
?CCL32: ZERO? LIT /?CND20
PRINTI " As the ostrich unexpectly enters the weightless environment of the "
EQUAL? HERE,ELEVATOR \?CCL46
2019-04-14 13:09:16 -07:00
PRINTI "elevator"
2019-04-14 13:09:56 -07:00
JUMP ?CND44
?CCL46: PRINTI "village"
?CND44: PRINTI ", it shoots into the air, squawking loudly. It spins head over claw for a moment, thrashing its wings ineffectually, before finally achieving a modicum of stability."
?CND20: MOVE OSTRICH,HERE
2019-04-14 13:09:16 -07:00
CRLF
RTRUE
.FUNCT JIGS-UP,DESC
PRINT DESC
CRLF
CRLF
PRINTI " **** You have died ****"
CRLF
CALL FINISH
RSTACK
.FUNCT ACCESSIBLE?,OBJ,L
ZERO? OBJ /FALSE
LOC OBJ >L
FSET? OBJ,INVISIBLE /FALSE
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,PSEUDO-OBJECT \?CCL7
EQUAL? LAST-PSEUDO-LOC,HERE /TRUE
RFALSE
?CCL7: ZERO? L /FALSE
2019-04-14 13:09:16 -07:00
EQUAL? L,GLOBAL-OBJECTS /TRUE
2019-04-14 13:09:56 -07:00
EQUAL? L,LOCAL-GLOBALS \?CCL16
2019-04-14 13:09:16 -07:00
CALL GLOBAL-IN?,OBJ,HERE
ZERO? STACK \TRUE
2019-04-14 13:09:56 -07:00
?CCL16: CALL META-LOC,OBJ
2019-04-14 13:09:16 -07:00
EQUAL? STACK,HERE \FALSE
EQUAL? L,WINNER,HERE /TRUE
FSET? L,OPENBIT \FALSE
CALL ACCESSIBLE?,L
ZERO? STACK /FALSE
RTRUE
.FUNCT VISIBLE?,OBJ,L
ZERO? OBJ /FALSE
LOC OBJ >L
CALL ACCESSIBLE?,OBJ
ZERO? STACK \TRUE
CALL SEE-INSIDE?,L
ZERO? STACK /FALSE
CALL VISIBLE?,L
ZERO? STACK /FALSE
RTRUE
.FUNCT UNTOUCHABLE?,OBJ
ZERO? OBJ /FALSE
2019-04-14 13:09:56 -07:00
ZERO? HANGING-IN-AIR /?CCL5
IN? OBJ,HERE \?CCL5
2019-04-14 13:11:30 -07:00
EQUAL? OBJ,BALLOON,ETERNAL-FLAME,LEASH /FALSE
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,STAR \TRUE
FSET? OBJ,TRYTAKEBIT /FALSE
RTRUE
2019-04-14 13:11:30 -07:00
?CCL5: IN? OBJ,STAR \?CCL16
FSET? STAR,TRYTAKEBIT \?CCL16
ZERO? HANGING-IN-AIR /TRUE
?CCL16: EQUAL? OBJ,BALLOON,LEASH \?CCL21
IN? OBJ,CAGE /TRUE
?CCL21: EQUAL? OBJ,FLOYD,REX,HELEN \?CCL25
EQUAL? OBJ,ROBOT-PICKED \TRUE
?CCL25: IN? PROTAGONIST,HERE /FALSE
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
CALL ULTIMATELY-IN?,OBJ,STACK
2019-04-14 13:11:30 -07:00
ZERO? STACK \?CTR30
2019-04-14 13:09:16 -07:00
LOC PROTAGONIST
2019-04-14 13:11:30 -07:00
EQUAL? OBJ,STACK /?CTR30
2019-04-14 13:09:16 -07:00
LOC OBJ
2019-04-14 13:11:30 -07:00
EQUAL? STACK,GLOBAL-OBJECTS,LOCAL-GLOBALS \?CCL31
?CTR30: FSET? OBJ,DOORBIT /TRUE
2019-04-14 13:09:16 -07:00
RFALSE
2019-04-14 13:11:30 -07:00
?CCL31: LOC PROTAGONIST
2019-04-14 13:09:56 -07:00
EQUAL? STACK,PILOT-SEAT,COPILOT-SEAT \TRUE
EQUAL? OBJ,RADIO,KEYPAD,PSEUDO-OBJECT /FALSE
RTRUE
2019-04-14 13:09:16 -07:00
.FUNCT META-LOC,OBJ
?PRG1: ZERO? OBJ /FALSE
2019-04-14 13:09:56 -07:00
EQUAL? OBJ,BED \?CCL7
2019-04-14 13:09:16 -07:00
RETURN HERE
2019-04-14 13:09:56 -07:00
?CCL7: IN? OBJ,GLOBAL-OBJECTS \?CND3
2019-04-14 13:09:16 -07:00
RETURN GLOBAL-OBJECTS
2019-04-14 13:09:56 -07:00
?CND3: IN? OBJ,ROOMS \?CCL11
2019-04-14 13:09:16 -07:00
RETURN OBJ
2019-04-14 13:09:56 -07:00
?CCL11: LOC OBJ >OBJ
2019-04-14 13:09:16 -07:00
JUMP ?PRG1
.FUNCT OTHER-SIDE,DOBJ,P=0,TEE
?PRG1: NEXTP HERE,P >P
LESS? P,LOW-DIRECTION /FALSE
GETPT HERE,P >TEE
PTSIZE TEE
EQUAL? STACK,DEXIT \?PRG1
GETB TEE,DEXITOBJ
EQUAL? STACK,DOBJ \?PRG1
RETURN P
.FUNCT ULTIMATELY-IN?,OBJ,CONT=0
ZERO? CONT \?CND1
SET 'CONT,WINNER
?CND1: ZERO? OBJ /FALSE
IN? OBJ,CONT /TRUE
IN? OBJ,ROOMS /FALSE
LOC OBJ
CALL ULTIMATELY-IN?,STACK,CONT
RSTACK
.FUNCT SEE-INSIDE?,OBJ
ZERO? OBJ /FALSE
FSET? OBJ,INVISIBLE /FALSE
FSET? OBJ,TRANSBIT /TRUE
FSET? OBJ,OPENBIT /TRUE
RFALSE
.FUNCT GLOBAL-IN?,OBJ1,OBJ2,TEE
GETPT OBJ2,P?GLOBAL >TEE
ZERO? TEE /FALSE
PTSIZE TEE
SUB STACK,1
CALL ZMEMQB,OBJ1,TEE,STACK
RSTACK
.FUNCT FIND-IN,WHERE,FLAG-IN-QUESTION,STRING=0,OBJ,RECURSIVE-OBJ
2019-04-14 13:09:56 -07:00
FIRST? WHERE >OBJ /?KLU15
?KLU15: ZERO? OBJ /FALSE
?PRG3: FSET? OBJ,FLAG-IN-QUESTION \?CCL7
FSET? OBJ,INVISIBLE /?CCL7
ZERO? STRING \?CCL11
RETURN OBJ
?CCL11: PRINTC 91
2019-04-14 13:09:16 -07:00
PRINT STRING
CALL TPRINT,OBJ
PRINTC 93
CRLF
2019-04-14 13:09:56 -07:00
RETURN OBJ
?CCL7: CALL FIND-IN,OBJ,FLAG-IN-QUESTION >RECURSIVE-OBJ
ZERO? RECURSIVE-OBJ /?CCL13
2019-04-14 13:09:16 -07:00
RETURN RECURSIVE-OBJ
2019-04-14 13:09:56 -07:00
?CCL13: NEXT? OBJ >OBJ /?PRG3
2019-04-14 13:09:16 -07:00
RFALSE
.FUNCT NOW-DARK?
ZERO? LIT /FALSE
CALL LIT?,HERE
ZERO? STACK \FALSE
SET 'LIT,FALSE-VALUE
2019-04-14 13:09:56 -07:00
ZERO? P-IT-OBJECT /?CND6
CALL ULTIMATELY-IN?,P-IT-OBJECT
ZERO? STACK \?CND6
SET 'P-IT-OBJECT,FALSE-VALUE
?CND6: PRINTR " It is now too dark to see."
2019-04-14 13:09:16 -07:00
.FUNCT NOW-LIT?
ZERO? LIT \FALSE
CALL LIT?,HERE
ZERO? STACK /FALSE
SET 'LIT,TRUE-VALUE
CRLF
CALL V-LOOK
RSTACK
.FUNCT LOC-CLOSED,L
LOC PRSO >L
FSET? L,CONTBIT \FALSE
FSET? L,OPENBIT /FALSE
FSET? PRSO,TAKEBIT \FALSE
2019-04-14 13:11:30 -07:00
CALL DO-FIRST,STR?23,L
2019-04-14 13:09:16 -07:00
RSTACK
.FUNCT DO-WALK,DIR
SET 'P-WALK-DIR,DIR
CALL PERFORM,V?WALK,DIR
RSTACK
.FUNCT STOP
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
RETURN 8
.FUNCT ROB,WHO,WHERE=0,N,X
2019-04-14 13:09:56 -07:00
FIRST? WHO >X /?PRG1
2019-04-14 13:09:16 -07:00
?PRG1: ZERO? X /TRUE
2019-04-14 13:09:56 -07:00
NEXT? X >N /?KLU11
?KLU11: FSET? X,WORNBIT /?CND5
ZERO? WHERE /?CCL9
2019-04-14 13:09:16 -07:00
MOVE X,WHERE
2019-04-14 13:09:56 -07:00
JUMP ?CND5
?CCL9: REMOVE X
?CND5: SET 'X,N
2019-04-14 13:09:16 -07:00
JUMP ?PRG1
.FUNCT HACK-HACK,STR
PRINT STR
CALL TPRINT-PRSO
CALL HO-HUM
RSTACK
.FUNCT HO-HUM
CALL PICK-ONE,HO-HUM-LIST
PRINT STACK
CRLF
RTRUE
.FUNCT YUKS
CALL PICK-ONE,YUK-LIST
PRINT STACK
CRLF
RTRUE
.FUNCT IMPOSSIBLES
CALL PICK-ONE,IMPOSSIBLE-LIST
PRINT STACK
CRLF
RTRUE
.FUNCT WASTES
CALL PICK-ONE,WASTE-LIST
PRINT STACK
CRLF
RTRUE
.ENDI