plunderedhearts/verbs.zap

3442 lines
65 KiB
Plaintext

.FUNCT V-VERBOSE
SET 'VERBOSITY,2
PRINTI "Maximum verbosity."
CRLF
CRLF
CALL V-LOOK
RSTACK
.FUNCT V-BRIEF
SET 'VERBOSITY,1
PRINTC 66
PRINT RIEF-DESC
RTRUE
.FUNCT V-SUPER-BRIEF
SET 'VERBOSITY,0
PRINTI "Superb"
PRINT RIEF-DESC
RTRUE
.FUNCT V-SAVE
SET 'P-CONT,FALSE-VALUE
SET 'QUOTE-FLAG,FALSE-VALUE
SAVE \?CCL3
PRINT OK
RTRUE
?CCL3: PRINT FAILED
RTRUE
.FUNCT V-RESTORE
RESTORE \?CCL3
PRINT OK
RTRUE
?CCL3: PRINT FAILED
RTRUE
.FUNCT V-SCRIPT
GET 0,8
BOR STACK,1
PUT 0,8,STACK
CALL CORP-NOTICE,STR?243
CALL V-VERSION
RSTACK
.FUNCT V-UNSCRIPT
CALL CORP-NOTICE,STR?244
CALL V-VERSION
GET 0,8
BAND STACK,-2
PUT 0,8,STACK
RTRUE
.FUNCT CORP-NOTICE,STRING
PRINTI "Here "
PRINT STRING
PRINTR " a transcript of interaction with"
.FUNCT V-INVENTORY
CALL RUNNING?,I-LSED
ZERO? STACK /?CND1
GRTR? LAFOND-CTR,HORNY \?CND1
CALL HELD?,PINCH
ZERO? STACK /?CCL7
CALL CTPRINT,PINCH
PRINTI " is not enough to cover"
JUMP ?CND5
?CCL7: PRINTI "You blush to look at"
?CND5: PRINTR " your naked body."
?CND1: SUB 0,WORNBIT >D-BIT
CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,3
SET 'D-BIT,WORNBIT
CALL DESCRIBE-CONTENTS,WINNER,FALSE-VALUE,3
SET 'D-BIT,FALSE-VALUE
CRLF
RTRUE
.FUNCT V-QUIT
CALL V-SCORE
CALL DO-YOU-WISH,STR?245
CALL YES?
ZERO? STACK /?CCL3
QUIT
RTRUE
?CCL3: PRINT OK
RTRUE
.FUNCT V-RESTART
CALL V-SCORE
CALL DO-YOU-WISH,STR?246
CALL YES?
ZERO? STACK /FALSE
PRINTI "Restarting."
CRLF
RESTART
PRINT FAILED
RTRUE
.FUNCT DO-YOU-WISH,STRING
PRINT INDENT
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 "This is important: please answer YES or NO. "
JUMP ?FCN
.FUNCT FINISH,REPEATING=0,CNT=0
?PRG1: CRLF
ZERO? REPEATING \?CND3
SET 'REPEATING,TRUE-VALUE
PRINT INDENT
CALL V-SCORE
?CND3: GRTR? SCORE,24 \?CND5
PRINT INDENT
PRINTI "Thus you have finished the story of "
PRINT GAME-CAPS
PRINTI ", earning the title, """
GET WINNING-RANKS,FINAL-RANK
PRINT STACK
PRINTI "."""
LESS? FINAL-RANK,4 \?CND7
PRINTI " There are other, perhaps more satisfying, conclusions."
?CND7: CRLF
?CND5: PRINT INDENT
PRINTI "You may start over, restore a saved position, or end this session of the game. (Type RESTART, RESTORE, or QUIT):
>"
PUTB P-LEXV,0,10
READ P-INBUF,P-LEXV
PUTB P-LEXV,0,60
INC 'CNT
GET P-LEXV,1
EQUAL? STACK,W?RESTAR \?CCL11
RESTART
PRINT FAILED
JUMP ?PRG1
?CCL11: GET P-LEXV,1
EQUAL? STACK,W?RESTOR \?CCL13
RESTORE /?CCL13
PRINT FAILED
JUMP ?PRG1
?CCL13: GET P-LEXV,1
EQUAL? STACK,W?QUIT,W?Q /?CCL16
GRTR? CNT,10 \?PRG1
?CCL16: QUIT
JUMP ?PRG1
.FUNCT V-VERSION,CNT=17,V
GET 0,1
BAND STACK,2047 >V
PRINT GAME-CAPS
CRLF
PRINTI "Infocom interactive fiction
Copyright (c) 1987 by Infocom, Inc. All rights reserved.
"
PRINT GAME-CAPS
PRINTI " 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
RTRUE
.FUNCT V-$COMMAND
DIRIN 1
RTRUE
.FUNCT V-$RANDOM
EQUAL? PRSO,INTNUM /?CCL3
PRINTR "ILLEGAL."
?CCL3: SUB 0,P-NUMBER
RANDOM STACK
RTRUE
.FUNCT V-$RECORD
DIROUT D-RECORD-ON
RTRUE
.FUNCT V-$UNRECORD
DIROUT D-RECORD-OFF
RTRUE
.FUNCT V-$VERIFY
EQUAL? PRSO,INTNUM \?CCL3
EQUAL? P-NUMBER,25 \?CCL3
PRINTN SERIAL
CRLF
RTRUE
?CCL3: PRINTI "Verifying."
CRLF
VERIFY \?CCL8
PRINT OK
RTRUE
?CCL8: CRLF
PRINTR "** Bad **"
.FUNCT V-ALARM
EQUAL? PRSO,ROOMS \?CCL3
CALL PERFORM-PRSA,ME
RTRUE
?CCL3: EQUAL? PRSO,ME \?CCL5
PRINTI "You pinch yourself. "
PRINT YOU-ARENT
PRINTI " dreaming"
PRINT PCR
RTRUE
?CCL5: FSET? PRSO,DEADBIT /?CCL7
FSET? PRSO,ACTORBIT /?CTR6
EQUAL? PRSO,CROC \?CCL7
?CTR6: CALL PRONOUN
PRINTR " isn't asleep."
?CCL7: CALL IMPOSSIBLES
RSTACK
.FUNCT V-ANSWER-KLUDGE
CALL NOUN-USED,W?I,ME
ZERO? STACK /?CCL3
CALL V-INVENTORY
RSTACK
?CCL3: SET 'P-WON,FALSE-VALUE
PRINT NO-VERB
CALL STOP
RSTACK
.FUNCT V-APPLAUD
PRINTR "Clap."
.FUNCT V-ASK-ABOUT,OWINNER
EQUAL? PRSO,ME \?CCL3
CALL PERFORM,V?TELL,ME
RTRUE
?CCL3: FSET? PRSO,ACTORBIT \?CCL5
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
?CCL5: CALL PERFORM,V?TELL,PRSO
RTRUE
.FUNCT V-ASK-FOR
PRINTI "Naturally,"
CALL TPRINT-PRSO
PRINTR " doesn't oblige."
.FUNCT V-ASK-NO-ONE-FOR,ACTOR
CALL FIND-IN,HERE,ACTORBIT >ACTOR
ZERO? ACTOR /?CCL3
CALL PERFORM,V?ASK-FOR,ACTOR,PRSO
RTRUE
?CCL3: CALL NO-ONE-HERE,STR?247
RSTACK
.FUNCT V-BITE
CALL HACK-HACK,STR?248
RSTACK
.FUNCT V-BLOW
CALL CANT-VERB-A-PRSO,STR?249
RSTACK
.FUNCT PRE-BOARD
IN? PROTAGONIST,PRSO \?CCL3
PRINT LOOK-AROUND
RTRUE
?CCL3: CALL HELD?,PRSO
ZERO? STACK /?CCL5
PRINT HOLDING-IT
RTRUE
?CCL5: CALL UNTOUCHABLE?,PRSO
ZERO? STACK /FALSE
CALL CANT-REACH,PRSO
RSTACK
.FUNCT V-BOARD,AV
LOC PROTAGONIST >AV
FSET? PRSO,VEHBIT \?CCL3
MOVE PROTAGONIST,PRSO
PRINTI "You are now "
FSET? PRSO,INBIT \?CCL6
PRINTC 105
JUMP ?CND4
?CCL6: PRINTC 111
?CND4: PRINTC 110
CALL TPRINT-PRSO
PRINTC 46
LOC PROTAGONIST
GETP STACK,P?ACTION
CALL STACK,M-ENTER
CRLF
RTRUE
?CCL3: FSET? PRSO,ACTORBIT \?CCL8
PRINT POLITE-SOCIETY
RTRUE
?CCL8: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?IN \?CCL10
CALL CANT-VERB-A-PRSO,STR?250
RSTACK
?CCL10: CALL CANT-VERB-A-PRSO,STR?251
RSTACK
.FUNCT V-BRIBE
ZERO? PRSI \?CCL3
CALL HELD?,BANKNOTE
ZERO? STACK /?CCL6
CALL PERFORM,V?GIVE,BANKNOTE,PRSO
RTRUE
?CCL6: PRINTI "A lady bribes only with money"
PRINT PCR
RTRUE
?CCL3: CALL PERFORM,V?GIVE,PRSI,PRSO
RTRUE
.FUNCT V-BURN
ZERO? PRSI \?CCL3
CALL GLOBAL-IN?,FIRE,HERE
ZERO? STACK \?CCL3
CALL GLOBAL-IN?,TORCH,HERE
ZERO? STACK \?CCL3
PRINTI "You have no source of fire."
CRLF
FSET? PRSO,WORNBIT \?CCL10
PRINTI "Unless you relish a fiery death, you had best remove"
CALL TRPRINT,PRSO
RSTACK
?CCL3: PRINTR "Ladies do not play with fire."
?CCL10: EQUAL? PRSO,POWDER \?CCL12
PRINTI "Papa says never put "
PRINTD POWDER
PRINTR " near a flame."
?CCL12: CALL HELD?,PRSO
ZERO? STACK /?CCL14
CALL DO-FIRST,STR?252,PRSO
RSTACK
?CCL14: FSET? PRSO,ACTORBIT \?CCL16
PRINT UNLADY
RTRUE
?CCL16: FSET? PRSO,BURNBIT \?CCL18
REMOVE PRSO
PRINTI "In an instant,"
CALL TPRINT-PRSO
PRINTR " is consumed by fire."
?CCL18: CALL CANT-VERB-A-PRSO,STR?253
RSTACK
.FUNCT V-CHASTISE
EQUAL? PRSO,INTDIR \?CCL3
PRINT YOULL-HAVE-TO
PRINTI "go in that "
PRINTD INTDIR
PRINTR " to see what's there."
?CCL3: ZERO? CHASTISED? \?CND4
PRINTI "You may use prepositions to indicate precisely what you want to do: LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc. In this case I'll take you to mean LOOK AT the object."
CRLF
PRINT INDENT
SET 'CHASTISED?,TRUE-VALUE
?CND4: EQUAL? PRSO,ROOMS \?CCL8
CALL PERFORM,V?LOOK
RTRUE
?CCL8: CALL PERFORM,V?EXAMINE,PRSO
RTRUE
.FUNCT V-CLEAN
SET 'AWAITING-REPLY,2
CALL QUEUE,I-REPLY,2
PRINTR "Do you also do windows?"
.FUNCT V-CLIMB
EQUAL? PRSO,INTDIR \?CCL3
EQUAL? P-PRSA-WORD,W?CRAWL \?CCL3
CALL DO-WALK,P-DIRECTION
RTRUE
?CCL3: EQUAL? PRSO,ROOMS \?CCL7
CALL DO-WALK,P?UP
RSTACK
?CCL7: CALL HELD?,PRSO
ZERO? STACK /?CCL9
PRINT HOLDING-IT
RTRUE
?CCL9: CALL IMPOSSIBLES
RSTACK
.FUNCT V-CLIMB-DOWN
EQUAL? PRSO,ROOMS \?CCL3
CALL DO-WALK,P?DOWN
RSTACK
?CCL3: CALL HELD?,PRSO
ZERO? STACK /?CCL5
PRINT HOLDING-IT
RTRUE
?CCL5: CALL IMPOSSIBLES
RSTACK
.FUNCT V-CLIMB-ON
FSET? PRSO,VEHBIT /?CTR2
FSET? PRSO,ACTORBIT \?CCL3
?CTR2: CALL PERFORM,V?BOARD,PRSO
RTRUE
?CCL3: CALL HELD?,PRSO
ZERO? STACK /?CCL7
PRINT HOLDING-IT
RTRUE
?CCL7: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?IN \?CCL9
CALL CANT-VERB-A-PRSO,STR?254
RSTACK
?CCL9: CALL CANT-VERB-A-PRSO,STR?255
RSTACK
.FUNCT V-CLIMB-OVER
CALL HELD?,PRSO
ZERO? STACK /?CCL3
PRINT HOLDING-IT
RTRUE
?CCL3: CALL IMPOSSIBLES
RSTACK
.FUNCT V-CLOSE
FSET? PRSO,DOORBIT /?PRD5
FSET? PRSO,CONTBIT \?CCL3
?PRD5: FSET? PRSO,SURFACEBIT /?CCL3
FSET? PRSO,ACTORBIT /?CCL3
EQUAL? PRSO,RIGGING-OBJECT,GARTER,CROC /?CCL3
CALL OPEN-CLOSE,PRSO
RSTACK
?CCL3: CALL CANT-VERB-A-PRSO,STR?256
RSTACK
.FUNCT V-CRAWL-UNDER
FSET? PRSO,TAKEBIT /?CCL3
CALL TELL-HIT-HEAD
RSTACK
?CCL3: CALL IMPOSSIBLES
RSTACK
.FUNCT V-CRY
CALL NO-TIME-FOR,STR?257
RSTACK
.FUNCT V-CUT
ZERO? PRSI /?CTR2
EQUAL? PRSI,ROOMS \?CCL3
?CTR2: CALL HELD?,DAGGER
ZERO? STACK /?CCL8
CALL PERFORM,V?CUT,PRSO,DAGGER
RTRUE
?CCL8: FSET? PRSO,ACTORBIT \?CCL10
CALL PERFORM,V?KILL,PRSO
RTRUE
?CCL10: PRINTR "Your fingernails aren't that sharp!"
?CCL3: PRINTI "To put it bluntly, neither"
CALL TPRINT-PRSI
PRINTI " nor you are very sharp"
PRINT PCR
RTRUE
.FUNCT V-DANCE,OW
EQUAL? WINNER,PROTAGONIST /?CCL3
EQUAL? PRSO,FALSE-VALUE,ME,PROTAGONIST \?CCL3
SET 'OW,WINNER
SET 'WINNER,PROTAGONIST
CALL PERFORM,V?DANCE,OW
SET 'WINNER,OW
RTRUE
?CCL3: FSET? PRSO,ACTORBIT \?CCL7
EQUAL? HERE,BALLROOM,ORCHESTRA /?CCL10
PRINTI "This isn't a good place to dance"
PRINT PCR
RTRUE
?CCL10: PRINTI "It is unlikely"
CALL TPRINT-PRSO
PRINTR " would want to dance just now."
?CCL7: EQUAL? PRSO,ROOMS,ME \?CCL12
ZERO? PARTNER /?CCL15
PRINT PACE
RTRUE
?CCL15: PRINTR "One cannot dance the minuet alone."
?CCL12: PRINTI "Dancing with"
CALL APRINT,PRSO
PRINTR " is an early symptom of the plague."
.FUNCT V-DISEMBARK
ZERO? PRSO \?CCL3
IN? PROTAGONIST,HERE /?CCL6
LOC PROTAGONIST
CALL PERFORM-PRSA,STACK
RTRUE
?CCL6: PRINT LOOK-AROUND
RTRUE
?CCL3: EQUAL? P-PRSA-WORD,W?TAKE \?CCL8
CALL PERFORM,V?TAKE,PRSO
RTRUE
?CCL8: EQUAL? PRSO,LEDGE \?CCL10
EQUAL? HERE,CABIN \?CCL10
CALL PERFORM,V?CLIMB-ON,PRSO
RTRUE
?CCL10: IN? PROTAGONIST,PRSO /?CCL14
PRINT LOOK-AROUND
RETURN 8
?CCL14: EQUAL? HERE,BY-SHIP,LAGOON \?CCL18
CALL V-SWIM
RSTACK
?CCL18: MOVE PROTAGONIST,HERE
PRINTI "You"
IN? HERO,PRSO \?CND19
MOVE HERO,HERE
PRINTI " and "
PRINTD HERO
?CND19: PRINTI " get o"
CALL OFF-VEHICLE?,PRSO
ZERO? STACK /?CCL23
PRINTI "ff"
JUMP ?CND21
?CCL23: PRINTI "ut of"
?CND21: CALL TPRINT-PRSO
PRINTR "."
.FUNCT V-DRESS
ZERO? PRSO /?CCL3
FSET? PRSO,ACTORBIT \?CCL6
PRINTR "There's no need for that."
?CCL6: CALL IMPOSSIBLES
RSTACK
?CCL3: SET 'PRSO,ROOMS
CALL V-GET-DRESSED
RSTACK
.FUNCT V-DRINK
CALL CANT-VERB-A-PRSO,STR?258
RSTACK
.FUNCT V-DRINK-FROM
CALL CANT-VERB-A-PRSO,STR?259
RSTACK
.FUNCT V-DROP
CALL SPECIAL-DROP
ZERO? STACK \FALSE
LOC PROTAGONIST
EQUAL? STACK,SKIFF,CASK \?CCL6
LOC PROTAGONIST
MOVE PRSO,STACK
JUMP ?CND4
?CCL6: MOVE PRSO,HERE
?CND4: PRINTR "Dropped."
.FUNCT SPECIAL-DROP
EQUAL? HERE,BOWSPRIT,ON-LADDER \?CCL3
REMOVE PRSO
PRINTI "With a splash,"
CALL TPRINT-PRSO
PRINTR " is lost forever."
?CCL3: LOC PROTAGONIST
EQUAL? STACK,SHALLOWS \?CCL5
REMOVE PRSO
PRINTI "With a plop,"
CALL TPRINT-PRSO
PRINTR " is dragged out by a wave."
?CCL5: EQUAL? HERE,RIGGING-ROOM /?CCL7
EQUAL? HERE,CROWS-NEST \FALSE
EQUAL? PRSA,V?THROW \FALSE
?CCL7: FSET? PRSO,WEARBIT \?CCL14
FSET? PRSO,WORNBIT /?CCL14
MOVE PRSO,HERE
PRINTI "Billowing out,"
CALL TPRINT-PRSO
PRINTI " catch"
FSET? PRSO,PLURALBIT /?CND17
PRINTI "es"
?CND17: PRINTI " in"
CALL TPRINT,RIGGING-OBJECT
PRINTR " nearby."
?CCL14: MOVE PRSO,WHICH-MAST?
CALL CTPRINT,PRSO
PRINTR " falls to the deck below."
.FUNCT V-EAT
PRINTI "A lady is trained to eat anything, but this is absurd"
PRINT PCR
RTRUE
.FUNCT V-EMBRACE
CALL TOUCHING?,PRSO
ZERO? STACK /?CCL3
PRINTI "You give"
CALL TPRINT-PRSO
PRINTI " a brief embrace"
FSET? PRSO,ACTORBIT /?CND4
PRINTI " and are not surprised when it doesn't respond"
?CND4: PRINT PCR
RTRUE
?CCL3: IN? PRSO,GLOBAL-OBJECTS \?CCL7
CALL IMPOSSIBLES
RSTACK
?CCL7: CALL CANT-REACH,PRSO
RSTACK
.FUNCT V-EMPTY,OBJ,NXT
ZERO? PRSI \?CND1
SET 'PRSI,GROUND
?CND1: FSET? PRSO,CONTBIT /?CCL5
PRINT HUH
RTRUE
?CCL5: FSET? PRSO,OPENBIT /?CCL7
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " isn't open."
?CCL7: FIRST? PRSO /?CCL9
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " is already empty!"
?CCL9: FIRST? PRSO
EQUAL? PRSI,STACK \?CCL11
NEXT? PRSI /?CCL11
PRINT THERES-NOTHING
PRINTI "in"
CALL TPRINT-PRSO
PRINTI " but"
CALL TRPRINT,PRSI
RSTACK
?CCL11: FIRST? PRSO >OBJ /?PRG15
?PRG15: NEXT? OBJ >NXT /?BOGUS17
?BOGUS17: EQUAL? OBJ,PROTAGONIST /?CND18
PRINTD OBJ
PRINTI ": "
FSET? OBJ,TAKEBIT \?CCL22
MOVE OBJ,PROTAGONIST
EQUAL? PRSI,HANDS \?CCL25
PRINTI "Taken."
CRLF
JUMP ?CND18
?CCL25: EQUAL? PRSI,GROUND \?CCL27
CALL PERFORM,V?DROP,OBJ
JUMP ?CND18
?CCL27: FSET? PRSI,SURFACEBIT \?CCL29
CALL PERFORM,V?PUT-ON,OBJ,PRSI
JUMP ?CND18
?CCL29: CALL PERFORM,V?PUT,OBJ,PRSI
JUMP ?CND18
?CCL22: CALL WASTES
?CND18: ZERO? NXT /TRUE
SET 'OBJ,NXT
JUMP ?PRG15
.FUNCT V-EMPTY-FROM
IN? PRSO,PRSI \?CCL3
FSET? PRSO,TAKEBIT \?CCL6
MOVE PRSO,PROTAGONIST
CALL PERFORM,V?DROP,PRSO
RTRUE
?CCL6: CALL WASTES
RSTACK
?CCL3: CALL NOT-IN
RSTACK
.FUNCT V-ENTER
FSET? PRSO,DOORBIT \?CCL3
CALL OTHER-SIDE,PRSO
CALL DO-WALK,STACK
RTRUE
?CCL3: FSET? PRSO,VEHBIT \?CCL5
CALL PERFORM,V?BOARD,PRSO
RTRUE
?CCL5: FSET? PRSO,ACTORBIT \?CCL7
CALL PERFORM,V?BOARD,PRSO
RTRUE
?CCL7: IN? PRSO,LOCAL-GLOBALS \?CCL9
CALL IMPOSSIBLES
RSTACK
?CCL9: FSET? PRSO,TAKEBIT /?CCL11
CALL TELL-HIT-HEAD
RSTACK
?CCL11: CALL HELD?,PRSO
ZERO? STACK /?CCL13
PRINT HOLDING-IT
RTRUE
?CCL13: CALL IMPOSSIBLES
RSTACK
.FUNCT V-EXAMINE
FSET? PRSO,ACTORBIT \?CCL3
FIRST? PRSO \?CCL6
CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
?CCL6: CALL NOTHING-INTERESTING
PRINTI "about"
CALL TRPRINT,PRSO
RSTACK
?CCL3: FSET? PRSO,DOORBIT /?CTR7
FSET? PRSO,SURFACEBIT \?CCL8
?CTR7: CALL V-LOOK-INSIDE
RSTACK
?CCL8: FSET? PRSO,CONTBIT \?CCL12
FSET? PRSO,OPENBIT \?CCL15
CALL V-LOOK-INSIDE
RSTACK
?CCL15: PRINTI "It"
PRINT IS-CLOSED
PRINT PCR
RTRUE
?CCL12: FSET? PRSO,LIGHTBIT \?CCL17
PRINTI "It's o"
FSET? PRSO,ONBIT \?CCL20
PRINTC 110
JUMP ?CND18
?CCL20: PRINTI "ff"
?CND18: PRINT PCR
RTRUE
?CCL17: FSET? PRSO,NARTICLEBIT \?CCL22
CALL SENSE-OBJECT,STR?260
RSTACK
?CCL22: RANDOM 100
LESS? 25,STACK \?CTR23
EQUAL? PRSO,PSEUDO-OBJECT \?CCL24
?CTR23: PRINT COMMON-LOOKING
PRINTD PRSO
PRINT PCR
RTRUE
?CCL24: RANDOM 100
LESS? 60,STACK /?CCL28
CALL NOTHING-INTERESTING
PRINTI "about"
CALL TRPRINT,PRSO
RSTACK
?CCL28: CALL PRONOUN
PRINTI " look"
FSET? PRSO,PLURALBIT /?CND29
EQUAL? PRSO,ME /?CND29
PRINTC 115
?CND29: PRINTI " like every other "
PRINTD PRSO
PRINTR " you've ever seen."
.FUNCT NOTHING-INTERESTING
PRINT THERES-NOTHING
RANDOM 100
LESS? 25,STACK /?CCL3
PRINTI "unusual"
JUMP ?CND1
?CCL3: RANDOM 100
LESS? 33,STACK /?CCL5
PRINTI "noteworthy"
JUMP ?CND1
?CCL5: RANDOM 100
LESS? 50,STACK /?CCL7
PRINTI "extraordinary"
JUMP ?CND1
?CCL7: PRINTI "special"
?CND1: PRINTC 32
RTRUE
.FUNCT V-EXIT
ZERO? PRSO /?CCL3
FSET? PRSO,VEHBIT \?CCL3
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
?CCL3: CALL IN-EXITABLE-VEHICLE?
ZERO? STACK \FALSE
CALL DO-WALK,P?OUT
RSTACK
.FUNCT IN-EXITABLE-VEHICLE?,AV
LOC PROTAGONIST >AV
EQUAL? AV,CASK,SKIFF,LEDGE /?CTR2
EQUAL? AV,LAFS-BED,CAPT-BED,COT /?CTR2
EQUAL? AV,CABIN-BED \FALSE
?CTR2: LOC PROTAGONIST
CALL PERFORM,V?DISEMBARK,STACK
RTRUE
.FUNCT V-FEED
CALL MORE-SPECIFIC
RSTACK
.FUNCT V-FIDDLE
CALL HACK-HACK,STR?261
RSTACK
.FUNCT V-FILL
ZERO? PRSI \?CCL3
PRINT THERES-NOTHING
PRINTR "to fill it with."
?CCL3: CALL IMPOSSIBLES
RSTACK
.FUNCT V-SFILL
CALL PERFORM,V?FILL,PRSI,PRSO
RTRUE
.FUNCT V-FIND,WHERE=0,L
LOC PRSO >L
ZERO? L \?CCL3
CALL PRONOUN
PRINTR " could be anywhere!"
?CCL3: IN? PRSO,PROTAGONIST \?CCL5
PRINTR "You have it!"
?CCL5: IN? PRSO,HERE \?CCL7
PRINTR "Right in front of you."
?CCL7: IN? PRSO,GLOBAL-OBJECTS /?CTR8
CALL GLOBAL-IN?,PRSO,HERE
ZERO? STACK \?CTR8
EQUAL? PRSO,PSEUDO-OBJECT \?CCL9
?CTR8: CALL FIGURE-IT-OUT
RSTACK
?CCL9: FSET? L,ACTORBIT \?CCL14
CALL VISIBLE?,L
ZERO? STACK /?CCL14
PRINTI "Looks as if"
CALL TPRINT,L
PRINTR " has it."
?CCL14: FSET? L,CONTBIT \?CCL18
CALL VISIBLE?,PRSO
ZERO? STACK /?CCL18
IN? L,GLOBAL-OBJECTS /?CCL18
FSET? L,SURFACEBIT \?CCL24
PRINTC 79
JUMP ?CND22
?CCL24: FSET? L,VEHBIT \?CCL26
FSET? L,INBIT /?CCL26
PRINTC 79
JUMP ?CND22
?CCL26: PRINTC 73
?CND22: PRINTC 110
CALL TRPRINT,L
RSTACK
?CCL18: ZERO? WHERE /?CCL30
PRINTR "Beats me."
?CCL30: CALL FIGURE-IT-OUT
RSTACK
.FUNCT V-FOLLOW
CALL VISIBLE?,PRSO
ZERO? STACK /?CCL3
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " is right here!"
?CCL3: FSET? PRSO,ACTORBIT /?CCL5
CALL IMPOSSIBLES
RSTACK
?CCL5: PRINTI "You have no idea where"
CALL TPRINT-PRSO
PRINTR " is."
.FUNCT PRE-GIVE,GLASS=0
FSET? PRSO,DEADBIT \?CCL3
EQUAL? PRSI,SALTS /?CCL3
PRINTI "It's unlikely"
CALL TPRINT-PRSO
PRINTR " will want that."
?CCL3: EQUAL? PRSA,V?GIVE \?CCL7
EQUAL? PRSO,HANDS \?CCL7
CALL PERFORM,V?SHAKE-WITH,PRSI
RTRUE
?CCL7: EQUAL? PRSO,WINE \?CCL11
CALL HELD?,BLUE-GLASS
ZERO? STACK \?CTR10
CALL HELD?,GREEN-GLASS
ZERO? STACK /?CCL11
?CTR10: CALL HELD?,BLUE-GLASS
ZERO? STACK /?CCL18
SET 'GLASS,BLUE-GLASS
JUMP ?CND16
?CCL18: CALL HELD?,GREEN-GLASS
ZERO? STACK /?CND16
SET 'GLASS,GREEN-GLASS
?CND16: CALL PERFORM-PRSA,GLASS,PRSI
RTRUE
?CCL11: CALL IDROP
ZERO? STACK \TRUE
RFALSE
.FUNCT V-GET-DRESSED
EQUAL? PRSO,ROOMS \?CCL3
CALL MORE-SPECIFIC
RSTACK
?CCL3: CALL RECOGNIZE
RSTACK
.FUNCT V-GET-DRUNK
EQUAL? PRSO,ROOMS /?CCL3
CALL RECOGNIZE
RSTACK
?CCL3: SET 'AWAITING-REPLY,2
CALL QUEUE,I-REPLY,2
PRINTR "Here?"
.FUNCT V-GET-UNDRESSED
EQUAL? PRSO,ROOMS \?CCL3
CALL REMOVE-CLOTHES,TRUE-VALUE
RSTACK
?CCL3: CALL RECOGNIZE
RSTACK
.FUNCT REMOVE-CLOTHES,CALLED-BY-GET-UNDRESSED=0,X,N
ZERO? CALLED-BY-GET-UNDRESSED /?CND1
CALL LAF-DOFF-CHECK
ZERO? STACK \TRUE
PRINTI "You"
FSET? CHEMISE,EVERYBIT /?CCL8
FSET? PANTS,WORNBIT /?CCL8
FSET? SHIRT,WORNBIT /?CCL8
PRINTR "'re already stripped!"
?CCL8: PRINTI " strip down to your chemise"
PRINT PCR
?CND1: FIRST? PROTAGONIST >X /?PRG13
?PRG13: ZERO? X /?REP14
FSET? X,WORNBIT \?CND15
FCLEAR X,WORNBIT
?CND15: NEXT? X >N /?BOGUS19
?BOGUS19: SET 'X,N
JUMP ?PRG13
?REP14: MOVE RETICULE,PROTAGONIST
FSET SHOES,WORNBIT
FSET CHEMISE,WORNBIT
FCLEAR CHEMISE,EVERYBIT
SET 'BOY-DRESS?,FALSE-VALUE
RTRUE
.FUNCT V-UNDRESS
ZERO? PRSO /?CCL3
EQUAL? PRSO,DAD \?CCL6
SET 'AWAITING-REPLY,2
CALL QUEUE,I-REPLY,2
PRINTR "Undress your father?!"
?CCL6: EQUAL? PRSO,ME \?CCL8
CALL PERFORM,V?GET-UNDRESSED,ROOMS
RTRUE
?CCL8: FSET? PRSO,ACTORBIT \?CCL10
FSET? PRSO,FEMALEBIT /?CCL10
PRINT MOTHER
RTRUE
?CCL10: CALL IMPOSSIBLES
RSTACK
?CCL3: SET 'PRSO,ROOMS
CALL V-GET-UNDRESSED
RSTACK
.FUNCT V-GIVE
FSET? PRSI,ACTORBIT \?CCL3
FSET? PRSI,DEADBIT \?CCL6
PRINT DOESNT-RESPOND
RTRUE
?CCL6: PRINTI "Briskly,"
CALL TPRINT-PRSI
PRINTR " refuses your offer."
?CCL3: PRINT YOU-CANT
PRINTI "give"
CALL APRINT,PRSO
PRINTI " to"
CALL APRINT,PRSI
PRINTR "!"
.FUNCT V-HELLO
ZERO? PRSO /?CCL3
EQUAL? PRSO,W?SAILOR \?CCL6
PRINTI "Nothing happens"
PRINT PCR
RTRUE
?CCL6: PRINTR "[The proper way to talk to characters in the story is PERSON, HELLO.]"
?CCL3: EQUAL? HERE,CABIN \?CCL8
IN? HERO,HERE \?CCL8
CALL PERFORM,V?HELLO,HERO
RTRUE
?CCL8: CALL PERFORM,V?TELL,ME
RTRUE
.FUNCT V-HALT
EQUAL? PRSO,ROOMS \?CCL3
PRINTI "You haven't started"
PRINT PCR
RTRUE
?CCL3: CALL PROPOSE
RSTACK
.FUNCT V-HELP
PRINTI "If you're feeling pillaged, maps and hint booklets are available from your dealer, or via mail order with the form"
CALL IN-PACKAGE
RSTACK
.FUNCT V-HIDE
PRINT YOU-CANT
PRINTI "hide "
ZERO? PRSO /?CND1
PRINTC 116
?CND1: PRINTR "here."
.FUNCT V-I-LOVE-YOU
EQUAL? P-PRSA-WORD,W?I \?CCL3
PRINTR "[Why... I'm speechless! Thank you.]"
?CCL3: CALL RECOGNIZE
RSTACK
.FUNCT V-IN,VEHICLE
CALL DO-WALK,P?IN
RSTACK
.FUNCT V-KICK
FSET? PRSO,ACTORBIT \?CCL3
FSET? PRSO,DEADBIT \?CCL6
PRINT DOESNT-RESPOND
RTRUE
?CCL6: PRINTR """Hey! Cut that out!"""
?CCL3: CALL HACK-HACK,STR?262
RSTACK
.FUNCT V-KILL
PRINTR "Relax."
.FUNCT V-KISS
PRINTR """Smooch!"""
.FUNCT V-CURTSEY
PRINTR "You curtsey gracefully."
.FUNCT V-KNOCK
CALL HACK-HACK,STR?263
RSTACK
.FUNCT V-LAUGH
PRINTR """Ha-ha."""
.FUNCT V-LAUNCH
PRINTR "Your brain is out to launch."
.FUNCT V-LEAP
ZERO? PRSO /?CTR2
EQUAL? PRSO,ROOMS \?CCL3
?CTR2: EQUAL? HERE,DUNGEON \?CCL8
FSET? TRAP,OPENBIT \?CCL8
CALL PERFORM,V?ENTER,TRAP
RTRUE
?CCL8: EQUAL? HERE,RIGGING-ROOM,CROWS-NEST,BOWSPRIT \?CCL12
PRINT SUICIDE
RTRUE
?CCL12: CALL WHEE
RSTACK
?CCL3: IN? PRSO,HERE /?CCL14
CALL IMPOSSIBLES
RSTACK
?CCL14: CALL WHEE
RSTACK
.FUNCT V-LEAP-OFF
FSET? PRSO,VEHBIT \?CCL3
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
?CCL3: CALL SHIP-BOARD,HERE
ZERO? STACK /?CCL5
PRINT SUICIDE
RTRUE
?CCL5: CALL PERFORM,V?LEAP,PRSO
RTRUE
.FUNCT V-LEAP-OVERBOARD
CALL SHIP-BOARD,HERE
ZERO? STACK /?CCL3
PRINT SUICIDE
RTRUE
?CCL3: CALL IMPOSSIBLES
RSTACK
.FUNCT V-LEAVE
ZERO? PRSO \?CND1
SET 'PRSO,ROOMS
?CND1: EQUAL? PRSO,ROOMS \?CCL5
CALL DO-WALK,P?OUT
RSTACK
?CCL5: IN? PROTAGONIST,PRSO \?CCL7
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
?CCL7: CALL PERFORM,V?DROP,PRSO
RTRUE
.FUNCT V-LIE-DOWN
FSET? PRSO,VEHBIT /?CTR2
FSET? PRSO,ACTORBIT \?CCL3
?CTR2: CALL PERFORM,V?BOARD,PRSO
RTRUE
?CCL3: CALL WASTES
RSTACK
.FUNCT V-LISTEN
CALL RUNNING?,I-LUCY
ZERO? STACK /?CCL3
CALL PERFORM,V?LISTEN,LUCY
RTRUE
?CCL3: IN? HERO,HERE /?CTR4
IN? DAD,HERE /?CTR4
IN? LAFOND,HERE /?CTR4
IN? COOKIE,HERE \?CCL5
?CTR4: PRINTI "You listen intently"
PRINT PCR
RTRUE
?CCL5: EQUAL? PRSO,PATROL \?CCL11
CALL CTPRINT,PATROL
PRINTR " confers quietly."
?CCL11: CALL RUNNING?,I-PIRATE-RESCUE
ZERO? STACK /?CCL13
PRINT THE-BALLROOM
PRINTR "tumult of screams."
?CCL13: EQUAL? HERE,ORCHESTRA,BALLROOM,SUPPER-ROOM \?CCL15
ZERO? ENDGAME \?CCL15
PRINTR "The orchestra plays a sprightly dance tune."
?CCL15: ZERO? PRSO /?CCL19
CALL SENSE-OBJECT,STR?264
RSTACK
?CCL19: PRINTR "You hear nothing of interest."
.FUNCT PRE-LOCK
EQUAL? HERE,QUARTERDECK,LANDING \?CCL3
EQUAL? P-PRSA-WORD,W?UNBAR /FALSE
?CCL3: EQUAL? PRSO,FLOWER \?CCL7
EQUAL? PRSA,V?PICK \?CCL7
CALL PERFORM,V?TAKE,FLOWER
RTRUE
?CCL7: EQUAL? PRSO,HERO \?CCL11
EQUAL? HERE,DUNGEON \?CCL11
ZERO? PRSI /?CCL16
CALL PERFORM,V?UNLOCK,MANACLES,PRSI
RTRUE
?CCL16: CALL PROPOSE
RSTACK
?CCL11: FSET? PRSO,LOCKEDBIT /?PRD20
EQUAL? PRSA,V?PICK,V?UNLOCK /?CTR17
?PRD20: FSET? PRSO,LOCKEDBIT \?CCL18
EQUAL? PRSA,V?LOCK \?CCL18
?CTR17: EQUAL? PRSO,MANACLES \?CCL27
PRINT ALREADY-ARE
RTRUE
?CCL27: PRINT ALREADY-IS
RTRUE
?CCL18: ZERO? PRSI \FALSE
EQUAL? PRSA,V?PICK \?CCL32
CALL HELD?,JEWEL
ZERO? STACK /?CCL32
PRINTI "[with"
CALL TPRINT,JEWEL
PRINTC 93
CRLF
CALL PERFORM-PRSA,PRSO,JEWEL
RSTACK
?CCL32: CALL HELD?,LARGE-KEY
ZERO? STACK /?CCL36
PRINTI "[with"
CALL TPRINT,LARGE-KEY
PRINTC 93
CRLF
CALL PERFORM-PRSA,PRSO,LARGE-KEY
RSTACK
?CCL36: CALL PROPOSE
RTRUE
.FUNCT V-LOOK
CALL DESCRIBE-ROOM,TRUE-VALUE
ZERO? STACK /TRUE
CALL DESCRIBE-OBJECTS
RTRUE
.FUNCT V-LOOK-BEHIND
FSET? PRSO,DOORBIT \?CND1
CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
?CND1: PRINTI "There is nothing behind"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-LOOK-DOWN
EQUAL? PRSO,ROOMS \?CCL3
CALL PERFORM,V?EXAMINE,GROUND
RTRUE
?CCL3: CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
.FUNCT V-LOOK-INSIDE
FSET? PRSO,ACTORBIT \?CCL3
PRINT IT-SEEMS-THAT
FSET? PRSO,FEMALEBIT \?CCL6
PRINTI " sh"
JUMP ?CND4
?CCL6: PRINTI " h"
?CND4: PRINTI "e has"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINT PCR
RTRUE
?CCL3: IN? PROTAGONIST,PRSO \?CCL10
CALL DESCRIBE-VEHICLE
RSTACK
?CCL10: FSET? PRSO,SURFACEBIT \?CCL12
PRINT YOU-SEE
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINTI " on"
CALL TRPRINT,PRSO
RTRUE
?CCL12: FSET? PRSO,DOORBIT \?CCL16
PRINTI "You can only tell that"
CALL TPRINT-PRSO
PRINTI " is"
CALL TELL-OPEN/CLOSED,PRSO
PRINTI ".
"
RTRUE
?CCL16: FSET? PRSO,CONTBIT \?CCL18
CALL SEE-INSIDE?,PRSO
ZERO? STACK /?CCL21
PRINT YOU-SEE
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINTI " in"
CALL TRPRINT,PRSO
RTRUE
?CCL21: FSET? PRSO,OPENBIT /?CCL25
FIRST? PRSO \?CCL25
CALL PRE-TOUCH
ZERO? STACK \TRUE
CALL PERFORM,V?OPEN,PRSO
RTRUE
?CCL25: CALL DO-FIRST,STR?265,PRSO
RSTACK
?CCL18: GET P-ITBL,P-PREP1
EQUAL? STACK,PR?IN \?CCL31
CALL CANT-VERB-A-PRSO,STR?266
RSTACK
?CCL31: PRINTI "Even if Queen Augusta commanded it, you couldn't see through that"
PRINT PCR
RTRUE
.FUNCT V-LOOK-UNDER
CALL HELD?,PRSO
ZERO? STACK /?CCL3
FSET? PRSO,WORNBIT \?CCL6
PRINTR "You're wearing it!"
?CCL6: PRINT HOLDING-IT
RTRUE
?CCL3: FSET? PRSO,DOORBIT \?CCL8
PRINTR "The space is too narrow to see anything."
?CCL8: CALL NOTHING-INTERESTING
PRINTI "under"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-LOOK-UP
EQUAL? PRSO,ROOMS \?CCL3
EQUAL? HERE,RIGGING-ROOM,CROWS-NEST \?CCL6
PRINT YOU-SEE
PRINTR " a mess of sails and rope."
?CCL6: FSET? HERE,INDOORSBIT \?CCL8
CALL PERFORM,V?EXAMINE,CEILING
RTRUE
?CCL8: PRINTR "The midnight sky is clear of all but a full moon."
?CCL3: CALL PERFORM,V?LOOK-INSIDE,PRSO
RTRUE
.FUNCT V-MAKE-OUT,KISSEE
EQUAL? PRSO,ROOMS /?CCL3
SET 'KISSEE,PRSO
JUMP ?CND1
?CCL3: CALL FIND-IN,HERE,ACTORBIT,STR?267 >KISSEE
ZERO? KISSEE \?CND1
SET 'KISSEE,ME
?CND1: CALL PERFORM,V?KISS,KISSEE
RTRUE
.FUNCT V-MARRY
EQUAL? PRSO,COOKIE,CRULLEY,LAFOND \?CCL3
PRINTI "I doubt that"
CALL TPRINT-PRSO
PRINTR " is the marrying type."
?CCL3: EQUAL? PRSO,DAD \?CCL5
PRINTR "Don't be absurd."
?CCL5: EQUAL? PRSO,HERO \?CCL7
CALL LADY-MUST,STR?268
RSTACK
?CCL7: CALL WASTES
RSTACK
.FUNCT V-MOVE
CALL HELD?,PRSO
ZERO? STACK /?CCL3
CALL WASTES
RSTACK
?CCL3: CALL LOC-CLOSED
ZERO? STACK \TRUE
FSET? PRSO,TAKEBIT \?CCL7
PRINTI "Moving"
CALL TPRINT-PRSO
PRINTR " reveals nothing."
?CCL7: EQUAL? P-PRSA-WORD,W?PULL \?CCL9
CALL HACK-HACK,STR?269
RSTACK
?CCL9: CALL CANT-VERB-A-PRSO,STR?270
RSTACK
.FUNCT V-MUNG
CALL HACK-HACK,STR?271
RSTACK
.FUNCT V-MUZZLE
CALL HACK-HACK,STR?272
RSTACK
.FUNCT V-NO
EQUAL? AWAITING-REPLY,1,2 \?CCL3
CALL V-YES
RSTACK
?CCL3: EQUAL? AWAITING-REPLY,3 \?CCL5
PRINTI "One should hope not! Lafond is too respectable to harbour such secrets"
PRINT PCR
RTRUE
?CCL5: EQUAL? AWAITING-REPLY,4 \?CCL7
PRINTI """Foolish of me to have thought you were serious,"" he smiles, relieved"
PRINT PCR
RTRUE
?CCL7: EQUAL? AWAITING-REPLY,5 \?CCL9
PRINTI """No!"" you say pertly"
PRINT PCR
RTRUE
?CCL9: EQUAL? AWAITING-REPLY,6 \?CCL11
PRINTR "Papa clucks. ""Pity. I'll introduce you to Lucy after we're out of this mess."""
?CCL11: EQUAL? AWAITING-REPLY,9 \?CCL13
PRINT SHAKE-HEAD
PRINTR " firmly, ""No."""
?CCL13: EQUAL? AWAITING-REPLY,10 \?CCL15
PRINT SHAKE-HEAD
PRINT PCR
RTRUE
?CCL15: EQUAL? AWAITING-REPLY,11 \?CCL17
PRINTI """No,"" you say, chin trembling"
PRINT PCR
RTRUE
?CCL17: EQUAL? AWAITING-REPLY,12 \?CCL19
PRINT SHAKE-HEAD
PRINTR ", teeth clenched."
?CCL19: EQUAL? AWAITING-REPLY,13 \?CCL21
PRINTR """God's blood! We'll have to find some other way."""
?CCL21: EQUAL? AWAITING-REPLY,14 \?CCL23
PRINTI """Sorry, but I'm enjoying this dance too much to just let you go."" Jamison tightens his grip on "
PRINTD HANDS
PRINTI " as you circle each other"
PRINT PCR
RTRUE
?CCL23: EQUAL? AWAITING-REPLY,15 \?CCL25
PRINT SHAKE-HEAD
PRINTR " breathlessly."
?CCL25: EQUAL? AWAITING-REPLY,16 \?CCL27
PRINTR """'Tis a pity. I was hoping..."""
?CCL27: EQUAL? AWAITING-REPLY,17 \?CCL29
PRINTR """I'll do the hittin' 'ere."""
?CCL29: CALL YOU-SOUND,STR?273
RSTACK
.FUNCT NO-WORD,WRD
EQUAL? WRD,W?NO,W?NOPE /TRUE
EQUAL? WRD,W?NAY,W?NEVER /TRUE
RFALSE
.FUNCT V-OFF
FSET? PRSO,LIGHTBIT \?CCL3
FSET? PRSO,ONBIT \?CCL6
FCLEAR PRSO,ONBIT
PRINTI "Okay,"
CALL TPRINT-PRSO
PRINTR " is now off."
?CCL6: PRINTR "It isn't on!"
?CCL3: CALL CANT-VERB-A-PRSO,STR?274
RSTACK
.FUNCT V-ON
FSET? PRSO,ACTORBIT \?CCL3
PRINT HUH
RTRUE
?CCL3: FSET? PRSO,LIGHTBIT \?CCL5
FSET? PRSO,ONBIT \?CCL8
PRINT ALREADY-IS
RTRUE
?CCL8: FSET PRSO,ONBIT
PRINTI "Okay,"
CALL TPRINT-PRSO
PRINTR " is now on."
?CCL5: CALL CANT-VERB-A-PRSO,STR?275
RSTACK
.FUNCT V-OPEN
FSET? PRSO,LOCKEDBIT \?CCL3
PRINTR "It's quite locked."
?CCL3: FSET? PRSO,DOORBIT /?PRD7
FSET? PRSO,CONTBIT \?CCL5
?PRD7: FSET? PRSO,SURFACEBIT /?CCL5
FSET? PRSO,ACTORBIT /?CCL5
CALL OPEN-CLOSE,PRSO
RSTACK
?CCL5: CALL CANT-VERB-A-PRSO,STR?265
RSTACK
.FUNCT V-PICK
FSET? PRSO,DOORBIT \?CCL3
CALL HELD?,JEWEL
ZERO? STACK /?CCL3
PRINTI "That doesn't work here"
PRINT PCR
RTRUE
?CCL3: CALL CANT-VERB-A-PRSO,STR?276
RSTACK
.FUNCT V-POINT
PRINTR "That would be pointless."
.FUNCT V-SPOINT
CALL PERFORM,V?POINT,PRSI,PRSO
RTRUE
.FUNCT SPECIFY-WHAT,ACTION-STRING,OBJ
PRINT YOULL-HAVE-TO
PRINTI "specify what you want to "
PRINT ACTION-STRING
CALL TPRINT,OBJ
PRINTI " in"
PRINT PCR
RTRUE
.FUNCT PRE-POUR
EQUAL? PRSO,WINE \?CCL3
ZERO? PRSI \?CCL3
EQUAL? P-PRSA-WORD,W?SPILL /?CCL3
CALL SPECIFY-WHAT,STR?277,PRSO
RSTACK
?CCL3: EQUAL? PRSO,LAUD,BOTTLE \FALSE
CALL HELD?,PRSO
ZERO? STACK \?CCL11
PRINT YNH
CALL TRPRINT,BOTTLE
RSTACK
?CCL11: ZERO? LAUD-LEFT \?CCL13
PRINTI "There's no "
PRINTD LAUD
PRINTR " left."
?CCL13: ZERO? PRSI \?CCL15
MOVE BOTTLE,PROTAGONIST
PRINTI "A bubble of "
PRINTD LAUD
PRINTI " forms on the tip of"
CALL TPRINT,BOTTLE
PRINTR " then slurps back in."
?CCL15: EQUAL? PRSI,WINE \?CCL17
PRINT YOULL-HAVE-TO
PRINTI "specify which glass you want to put"
CALL TPRINT,LAUD
PRINTR " into."
?CCL17: GETP PRSI,P?CONTENTS
EQUAL? STACK,POISONED,W-P \FALSE
PRINT YOU-HAVE-ALREADY
PRINTI " dosed"
CALL TPRINT-PRSI
PRINTI ". Any more might be dangerous"
PRINT PCR
RTRUE
.FUNCT V-PUSH
CALL HACK-HACK,STR?278
RSTACK
.FUNCT V-PUSH-DIR
EQUAL? PRSI,INTDIR \?CCL3
CALL V-PUSH
RSTACK
?CCL3: CALL RECOGNIZE
RSTACK
.FUNCT PRE-PUT
EQUAL? PRSI,GROUND \?CCL3
CALL PERFORM,V?DROP,PRSO
RTRUE
?CCL3: EQUAL? PRSO,LAUD,WINE \?CCL5
CALL PERFORM,V?POUR,PRSO,PRSI
RTRUE
?CCL5: EQUAL? PRSO,HANDS \?CCL7
EQUAL? PRSA,V?PUT \?CCL10
CALL PERFORM,V?REACH-IN,PRSI
RTRUE
?CCL10: CALL WASTES
RSTACK
?CCL7: EQUAL? PRSI,SEA \?CCL12
EQUAL? HERE,RIGGING-ROOM,CROWS-NEST,BOWSPRIT /?PRD15
EQUAL? HERE,POOP,QUARTERDECK,MAIN-DECK /?PRD15
EQUAL? HERE,FOCSLE \?CCL12
?PRD15: EQUAL? PRSA,V?PUT-ON,V?DROP,V?THROW /FALSE
EQUAL? PRSA,V?PUT /FALSE
?CCL12: FSET? PRSI,ACTORBIT \?CCL22
EQUAL? PRSA,V?PUT-ON /?CCL22
CALL WASTES
RSTACK
?CCL22: CALL HELD?,PRSI,PRSO
ZERO? STACK /?CCL26
PRINT YOU-CANT
PRINTI "put"
CALL TPRINT-PRSO
GET P-ITBL,P-PREP2
EQUAL? STACK,PR?ON \?CCL29
PRINTI " on"
JUMP ?CND27
?CCL29: PRINTI " in"
?CND27: CALL TPRINT-PRSI
PRINTI " when"
CALL TPRINT-PRSI
PRINTI " is already "
FSET? PRSO,SURFACEBIT \?CCL32
PRINTI "on"
JUMP ?CND30
?CCL32: PRINTI "in"
?CND30: CALL TPRINT-PRSO
PRINTR "!"
?CCL26: CALL HELD?,PRSO
ZERO? STACK \?CCL34
EQUAL? PRSO,MANACLES /?CCL34
PRINT YNH
CALL TRPRINT,PRSO
RSTACK
?CCL34: CALL UNTOUCHABLE?,PRSI
ZERO? STACK /?CCL38
CALL CANT-REACH,PRSI
RSTACK
?CCL38: CALL IDROP
ZERO? STACK \TRUE
RFALSE
.FUNCT V-PUT,?TMP1,?TMP2,?TMP3
FSET? PRSI,OPENBIT /?CCL3
FSET? PRSI,CONTBIT /?CCL3
FSET? PRSI,SURFACEBIT /?CCL3
FSET? PRSI,VEHBIT /?CCL3
PRINT YOU-CANT
PRINTI "put"
CALL TPRINT-PRSO
PRINTI " in"
CALL APRINT,PRSI
PRINTR "!"
?CCL3: EQUAL? PRSI,PRSO /?CTR8
CALL HELD?,PRSO
ZERO? STACK /?CCL9
FSET? PRSO,TAKEBIT /?CCL9
?CTR8: CALL WASTES
RSTACK
?CCL9: FSET? PRSI,DOORBIT \?CCL15
PRINT CANT-FROM-HERE
RTRUE
?CCL15: FSET? PRSI,OPENBIT /?CCL17
FSET? PRSI,SURFACEBIT /?CCL17
CALL THIS-IS-IT,PRSI
CALL DO-FIRST,STR?265,PRSI
RSTACK
?CCL17: IN? PRSO,PRSI \?CCL21
PRINTI "But"
CALL TPRINT-PRSO
PRINTI " is already in"
CALL TRPRINT,PRSI
RSTACK
?CCL21: CALL WEIGHT,PRSI >?TMP3
CALL WEIGHT,PRSO
ADD ?TMP3,STACK >?TMP2
GETP PRSI,P?SIZE
SUB ?TMP2,STACK >?TMP1
GETP PRSI,P?CAPACITY
GRTR? ?TMP1,STACK \?CCL23
CALL HELD?,PRSO,PRSI
ZERO? STACK \?CCL23
PRINTI "There's no room "
FSET? PRSI,SURFACEBIT \?CCL28
PRINTI "on"
JUMP ?CND26
?CCL28: PRINTI "in"
?CND26: CALL TPRINT-PRSI
PRINTI " for"
CALL TRPRINT,PRSO
RSTACK
?CCL23: CALL HELD?,PRSO
ZERO? STACK \?CCL30
CALL ITAKE,FALSE-VALUE
EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE
?CCL30: MOVE PRSO,PRSI
FSET PRSO,TOUCHBIT
PRINTR "Done."
.FUNCT V-PUT-ON
EQUAL? PRSI,ME \?CCL3
CALL PERFORM,V?WEAR,PRSO
RTRUE
?CCL3: FSET? PRSI,SURFACEBIT \?CCL5
CALL V-PUT
RSTACK
?CCL5: PRINTI "There's no good surface on"
CALL TRPRINT,PRSI
RSTACK
.FUNCT V-PUT-THROUGH
FSET? PRSI,DOORBIT \?CCL3
FSET? PRSI,OPENBIT \?CCL6
CALL V-THROW
RSTACK
?CCL6: CALL DO-FIRST,STR?265,PRSI
RSTACK
?CCL3: LOC PROTAGONIST
EQUAL? PRSI,STACK \?CCL8
EQUAL? P-PRSA-WORD,W?THROW,W?TOSS,W?HURL \?CCL8
SET 'PRSI,FALSE-VALUE
CALL V-THROW
RSTACK
?CCL8: CALL IMPOSSIBLES
RSTACK
.FUNCT V-RAISE
CALL HACK-HACK,STR?279
RSTACK
.FUNCT V-RAPE
PRINT UNLADY
RTRUE
.FUNCT V-REACH-IN,OBJ
FIRST? PRSO >OBJ /?BOGUS1
?BOGUS1: FSET? PRSO,ACTORBIT /?CTR3
FSET? PRSO,SURFACEBIT /?CTR3
FSET? PRSO,CONTBIT /?CCL4
?CTR3: CALL WASTES
RSTACK
?CCL4: FSET? PRSO,OPENBIT /?CCL9
CALL DO-FIRST,STR?265,PRSO
RSTACK
?CCL9: ZERO? OBJ /?CTR10
FSET? OBJ,INVISIBLE /?CTR10
FSET? OBJ,TAKEBIT /?CCL11
?CTR10: PRINT THERES-NOTHING
PRINTI "in"
CALL TRPRINT,PRSO
RSTACK
?CCL11: PRINTI "You feel something inside"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-READ
CALL CANT-VERB-A-PRSO,STR?280
RSTACK
.FUNCT V-REFLECT
EQUAL? PRSO,MOONBEAM \?CCL3
EQUAL? PRSI,TRAY,MIRROR \?CCL3
EQUAL? HERE,LAFS-ROOM \?CCL3
CALL PERFORM,V?SPOINT,SHIP,PRSI
RTRUE
?CCL3: CALL WASTES
RSTACK
.FUNCT V-REMOVE
FSET? PRSO,WEARBIT \?CCL3
IN? PRSO,PROTAGONIST \?CCL3
FSET? PRSO,WORNBIT /?CCL8
PRINT YOU-ARENT
PRINTR "wearing that!"
?CCL8: CALL LAF-DOFF-CHECK
ZERO? STACK \FALSE
FCLEAR PRSO,WORNBIT
PRINTI "You remove"
CALL TRPRINT,PRSO
RSTACK
?CCL3: CALL PERFORM,V?TAKE,PRSO
RTRUE
.FUNCT LAF-DOFF-CHECK
EQUAL? HERE,LAFS-ROOM \FALSE
IN? LAFOND,HERE \FALSE
GRTR? LAFOND-CTR,HORNY \?CCL8
PRINT THERES-NOTHING
PRINTR "to remove!"
?CCL8: PRINTD LAFOND
PRINTI " chuckles. ""No, ma cherie, "
LESS? LAFOND-CTR,3 \?CCL11
PRINTR "have some wine first."""
?CCL11: PRINTI "I'll do that."""
CRLF
SET 'LAFOND-CTR,HORNY
CALL QUEUE,I-LSED,-1
RTRUE
.FUNCT V-RETURN,ACTOR
ZERO? PRSI \?CCL3
CALL FIND-IN,HERE,ACTORBIT,STR?281 >ACTOR
ZERO? ACTOR /?CCL6
CALL PERFORM,V?GIVE,PRSO,ACTOR
RTRUE
?CCL6: CALL NO-ONE-HERE,STR?282
RSTACK
?CCL3: FSET? PRSI,ACTORBIT \?CCL8
CALL PERFORM,V?GIVE,PRSO,PRSI
RTRUE
?CCL8: CALL PERFORM,V?PUT,PRSO,PRSI
RTRUE
.FUNCT V-RIP
EQUAL? PRSO,LETTER,INVITE \?CCL3
PRINTI "There's no reason to be so destructive"
PRINT PCR
RTRUE
?CCL3: PRINTR "It doesn't tear."
.FUNCT V-ROLL
EQUAL? PRSO,EYES \?CCL3
PRINTR "You ARE exasperated."
?CCL3: CALL UNTOUCHABLE?,PRSO
ZERO? STACK /?CCL5
CALL CANT-REACH,PRSO
RSTACK
?CCL5: EQUAL? P-PRSA-WORD,W?TIP \?CCL7
EQUAL? PRSO,HEAD \?CCL10
CALL V-YES
RSTACK
?CCL10: CALL PRONOUN
PRINTR " can't take tips!"
?CCL7: PRINTI "A rolling "
PRINTD PRSO
PRINTR " gathers no moss."
.FUNCT V-ROW
PRINTR "You haven't any oars!"
.FUNCT V-ROW-DIR
EQUAL? PRSI,INTDIR \?CCL3
CALL V-ROW
RSTACK
?CCL3: CALL RECOGNIZE
RSTACK
.FUNCT V-ROW-TO
EQUAL? PRSO,ISLAND /?CTR2
EQUAL? PRSO,SKIFF \?CCL3
EQUAL? PRSI,ISLAND \?CCL3
?CTR2: SET 'P-DIRECTION,P?WEST
CALL PERFORM,V?ROW-DIR,SKIFF,INTDIR
RTRUE
?CCL3: EQUAL? PRSO,REEFS,SHIP /?CTR8
EQUAL? PRSO,SKIFF \?CCL9
EQUAL? PRSI,REEFS,SHIP \?CCL9
?CTR8: SET 'P-DIRECTION,P?EAST
CALL PERFORM,V?ROW-DIR,SKIFF,INTDIR
RTRUE
?CCL9: LOC PROTAGONIST
EQUAL? STACK,SKIFF \?CCL16
CALL WASTES
RSTACK
?CCL16: CALL DO-FIRST,STR?283,SKIFF
RSTACK
.FUNCT V-SAVE-SOMETHING
CALL PROPOSE
RSTACK
.FUNCT V-SCORE
PRINTI "In "
PRINTN MOVES
PRINTI " turn"
EQUAL? MOVES,1 /?CND1
PRINTC 115
?CND1: PRINTI ", you have achieved a score of "
PRINTN SCORE
PRINTI " out of 25 points"
LESS? SCORE,25 \?CND3
PRINTI ". This gives you the rank of "
LESS? SCORE,5 \?CCL7
PRINTI "Damsel in Distress"
JUMP ?CND3
?CCL7: LESS? SCORE,10 \?CCL9
PRINTI "Missish Minx"
JUMP ?CND3
?CCL9: LESS? SCORE,15 \?CCL11
PRINTI "Plucky Lass"
JUMP ?CND3
?CCL11: LESS? SCORE,20 \?CCL13
PRINTI "Daring Demoiselle"
JUMP ?CND3
?CCL13: LESS? SCORE,25 \?CND3
PRINTI "Lady Leman"
?CND3: PRINT PCR
RTRUE
.FUNCT V-SEARCH
FSET? PRSO,ACTORBIT \?CCL3
CALL V-SHAKE
RSTACK
?CCL3: IN? PROTAGONIST,PRSO \?CCL5
CALL DESCRIBE-VEHICLE
RSTACK
?CCL5: FSET? PRSO,CONTBIT \?CCL7
FSET? PRSO,OPENBIT /?CCL7
CALL DO-FIRST,STR?265,PRSO
RSTACK
?CCL7: FSET? PRSO,CONTBIT \?CCL11
PRINTI "You find"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
PRINT PCR
RTRUE
?CCL11: CALL CANT-VERB-A-PRSO,STR?284
RSTACK
.FUNCT V-SET
EQUAL? PRSO,ROOMS \?CCL3
CALL WHEE
RSTACK
?CCL3: ZERO? PRSI \?CCL5
FSET? PRSO,TAKEBIT \?CCL8
CALL HACK-HACK,STR?285
RSTACK
?CCL8: PRINT YNH
CALL TRPRINT,PRSO
RSTACK
?CCL5: CALL IMPOSSIBLES
RSTACK
.FUNCT V-SGIVE
CALL PERFORM,V?GIVE,PRSI,PRSO
RTRUE
.FUNCT V-SHAKE
FSET? PRSO,ACTORBIT \?CCL3
PRINT POLITE
RTRUE
?CCL3: CALL HACK-HACK,STR?286
RSTACK
.FUNCT V-SHAKE-WITH
EQUAL? PRSO,HANDS /?CCL3
CALL RECOGNIZE
RSTACK
?CCL3: FSET? PRSI,ACTORBIT /?CCL5
PRINTI "I don't think"
CALL TPRINT-PRSI
PRINTR " even has hands."
?CCL5: CALL PERFORM,V?THANK,PRSI
RTRUE
.FUNCT V-SHOOT
ZERO? PRSI \?CCL3
CALL HELD?,PISTOL
ZERO? STACK /?CCL6
CALL PERFORM,V?SHOOT,PRSO,PISTOL
RTRUE
?CCL6: CALL PROPOSE
RSTACK
?CCL3: PRINTR "Don't ever bother applying for a job as a gunswoman."
.FUNCT PRE-SSHOOT
EQUAL? PRSO,CANNON /FALSE
CALL HELD?,PRSO
ZERO? STACK \FALSE
ZERO? PRSI \?CCL7
CALL HELD?,PISTOL
ZERO? STACK \?CCL10
CALL PROPOSE
RSTACK
?CCL10: CALL PERFORM,V?SHOOT,PRSO
RTRUE
?CCL7: PRINT YNH
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-SSHOOT
CALL PERFORM,V?SHOOT,PRSI,PRSO
RTRUE
.FUNCT V-SHOW
PRINT DOESNT-LOOK
CALL TPRINT-PRSI
PRINTR " is interested."
.FUNCT V-SHUT-UP
EQUAL? PRSO,ROOMS \?CCL3
PRINTR "[I hope you're not addressing me...]"
?CCL3: CALL PERFORM,V?CLOSE,PRSO
RTRUE
.FUNCT V-SIGH
PRINTR "You sigh contentedly, smiling."
.FUNCT V-SIT,VEHICLE
CALL FIND-IN,HERE,VEHBIT >VEHICLE
ZERO? VEHICLE /?CCL3
CALL PERFORM,V?BOARD,VEHICLE
RTRUE
?CCL3: CALL WASTES
RSTACK
.FUNCT V-SLEEP
CALL QUEUED?,I-SLEEP
ZERO? STACK /?CCL3
CALL I-SLEEP
RSTACK
?CCL3: PRINTR "You're not tired."
.FUNCT V-SMELL
ZERO? PRSO /?CCL3
PRINTI "Smells like any other "
PRINTD PRSO
PRINT PCR
RTRUE
?CCL3: LOC PROTAGONIST
EQUAL? STACK,CASK \?CCL5
PRINTI "You recoil from the taint of rancid meat"
PRINT PCR
RTRUE
?CCL5: EQUAL? HERE,FOCSLE,GALLEY \?CCL7
PRINTR "The odor of old grease and char does not improve your appetite."
?CCL7: EQUAL? HERE,CABIN \?CCL9
PRINTI "The odors of charred wood, sea salt and blood burn your nose"
PRINT PCR
RTRUE
?CCL9: EQUAL? HERE,CREWS-QUARTERS \?CCL11
PRINTR "Close quarters, indeed."
?CCL11: PRINTI "Nothing smells unusual"
PRINT PCR
RTRUE
.FUNCT V-SOAK
ZERO? PRSI \?CCL3
CALL SPECIFY-WHAT,STR?287,PRSO
RSTACK
?CCL3: CALL IMPOSSIBLES
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-SPUT-ON
CALL PERFORM,V?PUT-ON,PRSI,PRSO
RTRUE
.FUNCT V-SSHOW
CALL PERFORM,V?SHOW,PRSI,PRSO
RTRUE
.FUNCT V-STAND
EQUAL? P-PRSA-WORD,W?HOLD \?CCL3
CALL WASTES
RSTACK
?CCL3: LOC PROTAGONIST
FSET? STACK,VEHBIT \?CCL5
LOC PROTAGONIST
CALL PERFORM,V?DISEMBARK,STACK
RTRUE
?CCL5: ZERO? PRSO /?CCL7
FSET? PRSO,TAKEBIT \?CCL7
CALL WASTES
RSTACK
?CCL7: EQUAL? HERE,IN-HEDGE,BY-HOUSE,SLEEPING-CUPBOARD \?CCL11
PRINTR "There's not enough room for even your petite frame to stand straight."
?CCL11: PRINT YOU-ARE-ALREADY
PRINTR "standing."
.FUNCT V-STELL
CALL PERFORM,V?TELL,PRSI
RTRUE
.FUNCT V-STHROW
CALL PERFORM,V?THROW-TO,PRSI,PRSO
RTRUE
.FUNCT V-FIX
EQUAL? PRSO,DAGGER \?CCL3
CALL REPERTOIRE,STR?288
RSTACK
?CCL3: PRINTI "But"
CALL TPRINT-PRSO
PRINTI " isn't "
EQUAL? P-PRSA-WORD,W?SHARPEN,W?WHET \?CCL6
PRINTI "dull"
JUMP ?CND4
?CCL6: PRINTI "broken"
?CND4: PRINTR "!"
.FUNCT V-SWIM
EQUAL? PRSO,SEA /?CTR2
ZERO? PRSO \?CCL3
CALL GLOBAL-IN?,SEA,HERE
ZERO? STACK /?CCL3
?CTR2: CALL REPERTOIRE,STR?289
RSTACK
?CCL3: PRINTR "Your head must be swimming."
.FUNCT V-SWING
ZERO? PRSI /?CCL3
CALL PERFORM,V?KILL,PRSI,PRSO
RTRUE
?CCL3: EQUAL? PRSO,ROOMS \?CCL5
EQUAL? HERE,GALLERY \?CCL5
CALL PERFORM,V?SWING,ROPE
RTRUE
?CCL5: CALL WHEE
RSTACK
.FUNCT V-SWOON
PRINTI "You've never been missish enough to faint on demand"
PRINT PCR
RTRUE
.FUNCT V-SWRAP
CALL PERFORM,V?WRAP,PRSI,PRSO
RTRUE
.FUNCT PRE-TAKE
CALL LOC-CLOSED
ZERO? STACK \TRUE
IN? PROTAGONIST,PRSO \?CCL5
PRINTI "You're "
FSET? PRSO,INBIT \?CCL8
PRINTC 105
JUMP ?CND6
?CCL8: PRINTC 111
?CND6: PRINTR "n it!"
?CCL5: GRTR? LAFOND-CTR,HORNY \?CCL10
EQUAL? HERE,LAFS-ROOM \?CCL10
IN? HERE,LAFOND /FALSE
?CCL10: IN? PRSO,PROTAGONIST /?CTR14
CALL HELD?,PRSO
ZERO? STACK /?CCL15
FSET? PRSO,TAKEBIT /?CCL15
?CTR14: FSET? PRSO,WORNBIT \?CCL22
PRINT YOU-ARE-ALREADY
PRINTI "wearing"
JUMP ?CND20
?CCL22: PRINT YOU-HAVE-ALREADY
?CND20: CALL TRPRINT,PRSO
RSTACK
?CCL15: EQUAL? PRSO,LAUD \?CCL24
EQUAL? PRSI,BOTTLE /?CCL24
CALL WASTES
RSTACK
?CCL24: ZERO? PRSI /FALSE
IN? PRSO,PRSI /FALSE
IN? PRSO,PRSI /?CCL32
CALL NOT-IN
RSTACK
?CCL32: EQUAL? PRSO,ME \?CCL34
CALL PERFORM,V?DROP,PRSI
RTRUE
?CCL34: SET 'PRSI,FALSE-VALUE
RFALSE
.FUNCT V-TAKE
CALL ITAKE
EQUAL? STACK,TRUE-VALUE \FALSE
PRINTR "Taken."
.FUNCT V-TAKE-OFF
FSET? PRSO,WORNBIT \?CCL3
CALL PERFORM,V?REMOVE,PRSO
RTRUE
?CCL3: FSET? PRSO,VEHBIT \?CCL5
CALL PERFORM,V?DISEMBARK,PRSO
RTRUE
?CCL5: PRINT YOU-ARENT
PRINTI "wearing"
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-TELL
FSET? PRSO,ACTORBIT \?CCL3
EQUAL? PRSO,CROC /?CCL3
FSET? PRSO,DEADBIT \?CCL8
PRINT DOESNT-RESPOND
CALL STOP
RSTACK
?CCL8: ZERO? P-CONT /?CCL10
SET 'WINNER,PRSO
SET 'CLOCK-WAIT,TRUE-VALUE
RTRUE
?CCL10: PRINTI "Hmmm ..."
CALL TPRINT-PRSO
PRINTR " looks at you expectantly, as if you seemed to be about to talk."
?CCL3: CALL CANT-VERB-A-PRSO,STR?290
CALL STOP
RSTACK
.FUNCT V-TELL-ABOUT
EQUAL? PRSO,ME \?CCL3
CALL PERFORM,V?WHAT,PRSI
RTRUE
?CCL3: CALL PERFORM,V?SHOW,PRSI,PRSO
RTRUE
.FUNCT V-THANK
ZERO? PRSO \?CCL3
PRINTR "[Just doing my job.]"
?CCL3: FSET? PRSO,ACTORBIT \?CCL5
PRINTR """You're welcome."""
?CCL5: CALL IMPOSSIBLES
RSTACK
.FUNCT V-THROW-AT
CALL PERFORM,V?MUNG,PRSI,PRSO
RTRUE
.FUNCT V-THROW
CALL SPECIAL-DROP
ZERO? STACK \FALSE
EQUAL? HERE,LAGOON,BY-SHIP,SHALLOWS \?CCL6
CALL PERFORM,V?PUT,PRSO,SEA
RTRUE
?CCL6: ZERO? PRSI /?CCL8
MOVE PRSO,HERE
PRINTR "You missed."
?CCL8: MOVE PRSO,HERE
PRINTR "Thrown."
.FUNCT V-THROW-OVER
MOVE PRSO,HERE
PRINTR "You missed."
.FUNCT V-THROW-OVERBOARD
EQUAL? HERE,LAGOON,SHALLOWS /?CTR2
CALL SHIP-BOARD,HERE
ZERO? STACK /?CCL3
?CTR2: CALL PERFORM,V?PUT,PRSO,SEA
RTRUE
?CCL3: PRINTR "One normally tries this on a boat."
.FUNCT V-THROW-TO
FSET? PRSI,ACTORBIT \?CCL3
CALL PERFORM,V?GIVE,PRSO,PRSI
RTRUE
?CCL3: CALL PERFORM,V?THROW,PRSO,PRSI
RTRUE
.FUNCT V-TIE-WITH
CALL PERFORM,V?TIE,PRSI,PRSO
RTRUE
.FUNCT PRE-TOUCH
EQUAL? PRSA,V?LOWER,V?RAISE \?CCL3
ZERO? PRSI /?CCL3
EQUAL? PRSI,ROOMS /?CCL3
CALL RECOGNIZE
RSTACK
?CCL3: EQUAL? PRSA,V?TOUCH \?CCL8
EQUAL? PRSO,COOKIE \?CCL8
EQUAL? PRSI,DAGGER \?CCL8
PRINT UNLADY
RTRUE
?CCL8: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL13
EQUAL? PRSO,CABIN-BED,COT,DIVAN /?CTR12
EQUAL? PRSO,GUEST-BED,LAFS-BED,CAPT-BED \?CCL13
?CTR12: CALL CANT-VERB-A-PRSO,STR?291
RSTACK
?CCL13: EQUAL? PRSO,LINE \?CCL19
EQUAL? PRSA,V?TOUCH \?CCL19
LOC PROTAGONIST
EQUAL? STACK,CASK \?CCL19
PRINTI "Your fingers just brush"
CALL TRPRINT,LINE
RSTACK
?CCL19: CALL UNTOUCHABLE?,PRSO
ZERO? STACK /?CCL24
CALL CANT-REACH,PRSO
RSTACK
?CCL24: EQUAL? PRSA,V?EMPTY \?CCL26
EQUAL? PRSO,RUM-BARREL,WATER-BARREL /FALSE
CALL HELD?,PRSO
ZERO? STACK /?CTR30
CALL TAKE-CHECK
ZERO? STACK \FALSE
?CTR30: PRINT YNH
CALL TRPRINT,PRSO
RETURN 8
?CCL26: EQUAL? PRSA,V?EMPTY-FROM \FALSE
EQUAL? PRSI,RUM-BARREL,WATER-BARREL /FALSE
CALL HELD?,PRSO
ZERO? STACK /?CCL37
CALL TAKE-CHECK
ZERO? STACK \FALSE
?CCL37: PRINT YNH
CALL TRPRINT,PRSO
RETURN 8
.FUNCT V-TOUCH
CALL LOC-CLOSED
ZERO? STACK \TRUE
CALL HACK-HACK,STR?292
RSTACK
.FUNCT V-STOUCH
CALL PERFORM,V?TOUCH,PRSI,PRSO
RTRUE
.FUNCT V-UNLOCK
ZERO? PRSI /?CCL3
CALL IMPOSSIBLES
RSTACK
?CCL3: FSET? PRSO,LOCKEDBIT \?CCL5
SET 'AWAITING-REPLY,2
CALL QUEUE,I-REPLY,2
PRINTR "Your nose is key-shaped, I suppose?"
?CCL5: FSET? PRSO,DOORBIT \?CCL7
PRINTI "But"
CALL TPRINT-PRSO
PRINTR " isn't locked."
?CCL7: CALL WASTES
RSTACK
.FUNCT V-WALK,AV,VEHICLE,PT,PTS,STR,OBJ,RM
LOC PROTAGONIST >AV
ZERO? P-WALK-DIR \?CCL3
CALL PERFORM,V?WALK-TO,PRSO
RTRUE
?CCL3: EQUAL? PRSO,P?OUT \?CCL5
CALL IN-EXITABLE-VEHICLE?
ZERO? STACK \TRUE
?CCL5: EQUAL? PRSO,P?IN \?CCL9
GETPT HERE,P?IN
ZERO? STACK \?CCL9
CALL FIND-IN,HERE,VEHBIT >VEHICLE
ZERO? VEHICLE /?CCL9
CALL HELD?,VEHICLE
ZERO? STACK \?CCL9
CALL PERFORM,V?BOARD,VEHICLE
RTRUE
?CCL9: GETPT HERE,PRSO >PT
ZERO? PT /?CCL15
PTSIZE PT >PTS
EQUAL? PTS,UEXIT \?CCL18
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
?CCL18: EQUAL? PTS,NEXIT \?CCL20
GET PT,NEXITSTR
PRINT STACK
CRLF
RETURN 8
?CCL20: EQUAL? PTS,FEXIT \?CCL24
GET PT,FEXITFCN
CALL STACK >RM
ZERO? RM /?PRG30
EQUAL? RM,ROOMS /TRUE
CALL GOTO,RM
RSTACK
?PRG30: RETURN 8
?CCL24: EQUAL? PTS,CEXIT \?CCL33
GETB PT,CEXITFLAG
VALUE STACK
ZERO? STACK /?CCL36
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
?CCL36: GET PT,CEXITSTR >STR
ZERO? STR /?CCL38
PRINT STR
CRLF
RETURN 8
?CCL38: PRINT CANT-GO
RETURN 8
?CCL33: EQUAL? PTS,DEXIT \FALSE
GETB PT,DEXITOBJ >OBJ
FSET? OBJ,OPENBIT \?CCL47
GETB PT,REXIT
CALL GOTO,STACK
RSTACK
?CCL47: GET PT,DEXITSTR >STR
ZERO? STR /?CCL49
CALL THIS-IS-IT,OBJ
PRINT STR
CRLF
RETURN 8
?CCL49: CALL THIS-IS-IT,OBJ
CALL DO-FIRST,STR?265,OBJ
RETURN 8
?CCL15: EQUAL? PRSO,P?IN,P?OUT \?CCL56
CALL V-WALK-AROUND
RETURN 8
?CCL56: PRINT CANT-GO
RETURN 8
.FUNCT V-WAVE,AT-OBJ=0
PRINTI "You wave"
ZERO? AT-OBJ \?CCL3
CALL PRSO-PRINT
PRINTI " in the air"
PRINT PCR
RTRUE
?CCL3: PRINTI " cheerfully at"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-WAVE-AT
CALL V-WAVE,TRUE-VALUE
RTRUE
.FUNCT V-WRING
ZERO? PRSI \?CCL3
EQUAL? PRSO,DRESS \?PRD8
ZERO? WET-DRESS \?CTR5
?PRD8: EQUAL? PRSO,RAG \?CCL6
ZERO? WET-RAG /?CCL6
?CTR5: PRINTR "You don't have time to dry it."
?CCL6: EQUAL? P-PRSA-WORD,W?DRY \?CCL14
PRINTR "That isn't wet!"
?CCL14: CALL WASTES
RSTACK
?CCL3: EQUAL? PRSI,RAG,DRESS \?CCL16
CALL PERFORM,V?WRING,PRSI
RTRUE
?CCL16: CALL WASTES
RSTACK
.FUNCT V-WALK-AROUND
SET 'AWAITING-REPLY,2
CALL QUEUE,I-REPLY,2
PRINTI "Did you have any particular "
PRINTD INTDIR
PRINTR " in mind?"
.FUNCT V-WALK-TO
EQUAL? PRSO,INTDIR \?CCL3
CALL DO-WALK,P-DIRECTION
RSTACK
?CCL3: CALL V-WALK-AROUND
RSTACK
.FUNCT V-WAIT,NUM=3
PRINTI "Time passes..."
CRLF
?PRG1: DLESS? 'NUM,0 /?REP2
CALL CLOCKER
ZERO? STACK /?PRG1
?REP2: SET 'CLOCK-WAIT,TRUE-VALUE
RETURN CLOCK-WAIT
.FUNCT PRE-DOFF,?TMP1
CALL NOUN-USED,W?DECK,GROUND
ZERO? STACK /?CCL3
EQUAL? HERE,DEUX-DECK /?CTR2
CALL SHIP-BOARD,HERE
ZERO? STACK /?CCL3
?CTR2: CALL V-WALK-AROUND
RTRUE
?CCL3: ZERO? PRSO /?CCL9
EQUAL? PRSA,V?UNDRESS /FALSE
?CCL9: CALL CHECK-STRIP
ZERO? STACK \TRUE
EQUAL? HERE,LAFS-ROOM /FALSE
EQUAL? HERE,ANTEROOM \?CCL15
IN? DAD,HERE \FALSE
?CCL15: CALL FIND-IN,HERE,ACTORBIT,STR?293
ZERO? STACK \?CTR20
EQUAL? HERE,ORCHESTRA,SUPPER-ROOM,BALLROOM \?CCL21
?CTR20: PRINT POLITE-SOCIETY
RTRUE
?CCL21: EQUAL? HERE,ANTEROOM \?CCL25
LOC DAD >?TMP1
LOC COOKIE
EQUAL? HERE,?TMP1,STACK \FALSE
?CCL25: ZERO? PRSO /FALSE
EQUAL? PRSO,RETICULE /FALSE
FSET? PRSO,WORNBIT /?CCL33
FSET? PRSO,WEARBIT \FALSE
?CCL33: FSET? PRSO,WORNBIT /FALSE
PRINTI "You're not wearing"
CALL TPRINT-PRSO
PRINTR "!"
.FUNCT PRE-WEAR
FSET? PRSO,WEARBIT /?CCL3
CALL CANT-VERB-A-PRSO,STR?294
RSTACK
?CCL3: FSET? PRSO,WORNBIT \?CCL5
PRINT YOU-ARE-ALREADY
PRINTI "wearing"
CALL TPRINT-PRSO
PRINTR "!"
?CCL5: CALL CHECK-STRIP
ZERO? STACK \TRUE
CALL RUNNING?,I-LSED
ZERO? STACK /?CCL9
LOC LAFOND
EQUAL? STACK,HERE \?CCL9
PRINTD LAFOND
PRINTR " prevents you."
?CCL9: ZERO? ENDGAME \FALSE
EQUAL? HERE,FOYER,BALLROOM,SUPPER-ROOM /?CCL13
EQUAL? HERE,ORCHESTRA \FALSE
?CCL13: PRINTR "People might notice."
.FUNCT CHECK-STRIP
EQUAL? HERE,CABIN \?CCL3
PRINTI "With pirates attacking?! "
PRINT MOTHER
RTRUE
?CCL3: EQUAL? HERE,ON-LADDER,RIGGING-ROOM \?CCL5
PRINT YOU-CANT
PRINTI "manage the fastenings while whipping to and fro "
EQUAL? HERE,ON-LADDER \?CCL8
PRINTI "on"
CALL ARPRINT,LADDER
RSTACK
?CCL8: PRINTI "in"
CALL TRPRINT,RIGGING-OBJECT
RSTACK
?CCL5: EQUAL? HERE,IN-HEDGE,BY-HOUSE \FALSE
PRINT YOU-CANT
PRINTR "even stand straight, much less change clothes!"
.FUNCT V-WEAR
MOVE PRSO,PROTAGONIST
FSET PRSO,WORNBIT
PRINTI "You're now wearing"
CALL TRPRINT,PRSO
RSTACK
.FUNCT V-WHAT
PRINTR "Good question."
.FUNCT V-WHERE
CALL V-FIND,TRUE-VALUE
RSTACK
.FUNCT V-YELL
EQUAL? HERE,GALLERY,DEUX-DECK \?CCL3
PRINTI "Although your voice is quite piercing, no one notices you."
CRLF
JUMP ?CND1
?CCL3: EQUAL? HERE,CABIN \?CCL5
PRINT HELP-SCREAM
CRLF
JUMP ?CND1
?CCL5: PRINTI "Papa always says, ""Action, not reaction, girl!"""
CRLF
?CND1: CALL STOP
RSTACK
.FUNCT I-REPLY
SET 'AWAITING-REPLY,FALSE-VALUE
RFALSE
.FUNCT V-YES
EQUAL? AWAITING-REPLY,1 \?CCL3
PRINTI "That wasn't a yes or no question"
PRINT PCR
RTRUE
?CCL3: EQUAL? AWAITING-REPLY,2 \?CCL5
PRINTR "That was just a rhetorical question."
?CCL5: EQUAL? AWAITING-REPLY,3 \?CCL7
PRINTR "Whither goes a will, goes a way."
?CCL7: EQUAL? AWAITING-REPLY,4 \?CCL9
REMOVE HERO
CALL STOP-QUEUES
PRINTR "Silently he drops your arm and retreats. You are alone."
?CCL9: EQUAL? AWAITING-REPLY,5 \?CCL11
PRINTR "You nod tentatively."
?CCL11: EQUAL? AWAITING-REPLY,6 \?CCL13
PRINTI """Quite a girl, isn't she? You two will be great friends,"" he says"
PRINT PCR
RTRUE
?CCL13: EQUAL? AWAITING-REPLY,9 \?CCL15
PRINTI "You have no breath to speak. You nod once, never taking "
PRINTD EYES
PRINTI " off Nicholas Jamison"
PRINT PCR
RTRUE
?CCL15: EQUAL? AWAITING-REPLY,10 \?CCL17
PRINTR "You nod eagerly."
?CCL17: EQUAL? AWAITING-REPLY,11 \?CCL19
PRINTR "You summon a gracious smile, ""Why yes, I'd love to."""
?CCL19: EQUAL? AWAITING-REPLY,12 \?CCL21
PRINTI "You nod"
PRINT PCR
RTRUE
?CCL21: EQUAL? AWAITING-REPLY,13 \?CCL23
PRINTI "Nicholas pulls forward a fettered wrist"
PRINT PCR
RTRUE
?CCL23: EQUAL? AWAITING-REPLY,14 \?CCL25
PRINTI "Jamison grins at you"
PRINT PCR
RTRUE
?CCL25: EQUAL? AWAITING-REPLY,15 \?CCL27
PRINTI "Breathless, eager, you lean into him"
PRINT PCR
RTRUE
?CCL27: EQUAL? AWAITING-REPLY,16 \?CCL29
PRINTR "Your father twinkles, ""Good! He's of good family, you know."""
?CCL29: EQUAL? AWAITING-REPLY,17 \?CCL31
PRINTR """Har, just you try!"""
?CCL31: CALL YOU-SOUND,STR?295
RSTACK
.FUNCT YOU-SOUND,STRING
PRINTI "You sound rather "
PRINT STRING
PRINTR "tive."
.FUNCT YES-WORD,WRD
EQUAL? WRD,W?YES,W?Y,W?YUP /TRUE
EQUAL? WRD,W?OK,W?OKAY,W?SURE /TRUE
RFALSE
.FUNCT ITAKE,VB=1,OBJ,?TMP1
FSET? PRSO,TAKEBIT /?CCL3
ZERO? VB /?PRG6
CALL WASTES
?PRG6: RETURN 8
?CCL3: CALL PRE-TOUCH
ZERO? STACK /?CCL9
RETURN 8
?CCL9: CALL HELD?,PRSO
ZERO? STACK \?CCL13
CALL WEIGHT,PRSO >?TMP1
CALL WEIGHT,PROTAGONIST
ADD ?TMP1,STACK
GRTR? STACK,110 \?CCL13
ZERO? VB /?PRG18
PRINTI "It's too heavy, considering your current load."
CRLF
?PRG18: RETURN 8
?CCL13: CALL CCOUNT,PROTAGONIST
GRTR? STACK,12 \?CND1
ZERO? VB /?PRG23
PRINT YOU-ARE-ALREADY
PRINTI "juggling as many items as you can possibly carry."
CRLF
?PRG23: RETURN 8
?CND1: FSET PRSO,TOUCHBIT
FCLEAR PRSO,NDESCBIT
IN? PROTAGONIST,PRSO /FALSE
MOVE PRSO,PROTAGONIST
RTRUE
.FUNCT IDROP
EQUAL? PRSO,HANDS \?CCL3
EQUAL? PRSA,V?GIVE,V?THROW,V?DROP \FALSE
CALL IMPOSSIBLES
RSTACK
?CCL3: EQUAL? PRSO,RETICULE \?CCL8
EQUAL? PRSA,V?GIVE,V?THROW,V?DROP \FALSE
PRINTR "A lady is never without her reticule."
?CCL8: EQUAL? PRSO,ME \?CCL13
EQUAL? PRSA,V?PUT \?CCL13
FSET? PRSI,ACTORBIT \?CCL13
CALL PERFORM,V?BOARD,PRSI
RTRUE
?CCL13: EQUAL? PRSI,ME \?CCL18
EQUAL? PRSA,V?PUT \?CCL18
FSET? PRSO,ACTORBIT \?CCL18
CALL PERFORM,V?BOARD,PRSO
RTRUE
?CCL18: EQUAL? PRSO,SPICES /?PRD25
EQUAL? PRSO,PINCH \?CCL23
?PRD25: CALL HELD?,PINCH
ZERO? STACK \FALSE
?CCL23: CALL HELD?,PRSO
ZERO? STACK \?CCL29
EQUAL? PRSO,ME /?CTR31
FSET? PRSO,BODYBIT \?CCL32
?CTR31: CALL IMPOSSIBLES
RETURN 8
?CCL32: PRINT YNH
CALL TRPRINT,PRSO
RETURN 8
?CCL29: IN? PRSO,PROTAGONIST /?CCL38
LOC PRSO
FSET? STACK,CONTBIT \?CCL38
LOC PRSO
FSET? STACK,OPENBIT /?CCL38
LOC PRSO
CALL DO-FIRST,STR?265,STACK
RSTACK
?CCL38: FSET? PRSO,WORNBIT \FALSE
CALL DO-FIRST,STR?296,PRSO
RSTACK
.FUNCT CCOUNT,OBJ,CNT=0,X
FIRST? OBJ >X /?PRG3
RETURN CNT
?PRG3: FSET? X,WORNBIT /?CND5
INC 'CNT
?CND5: NEXT? X >X /?PRG3
RETURN CNT
.FUNCT WEIGHT,OBJ,CONT,WT=0
FIRST? OBJ >CONT \?CND1
?PRG3: CALL WEIGHT,CONT
ADD WT,STACK >WT
NEXT? CONT >CONT /?PRG3
?CND1: GETP OBJ,P?SIZE
ADD WT,STACK
RSTACK
.FUNCT DESCRIBE-ROOM,VERB-IS-LOOK=0,FIRST-VISIT=0,NUM=0
ZERO? LIT \?CND1
PRINT TOO-DARK
CRLF
RFALSE
?CND1: FSET? HERE,TOUCHBIT /?CND3
FSET HERE,TOUCHBIT
SET 'FIRST-VISIT,TRUE-VALUE
?CND3: PRINTD HERE
LOC PROTAGONIST
FSET? STACK,VEHBIT \?CND5
PRINTI ", "
LOC PROTAGONIST
FSET? STACK,INBIT \?CCL9
PRINTC 105
JUMP ?CND7
?CCL9: PRINTC 111
?CND7: PRINTC 110
LOC PROTAGONIST
CALL TPRINT,STACK
?CND5: CRLF
ZERO? VERB-IS-LOOK \?CCL11
EQUAL? VERBOSITY,2 /?CCL11
ZERO? FIRST-VISIT /TRUE
EQUAL? VERBOSITY,1 \TRUE
?CCL11: PRINT INDENT
GETP HERE,P?ACTION
CALL STACK,M-LOOK
ZERO? STACK \?CND17
GETP HERE,P?LDESC
PRINT STACK
?CND17: CRLF
RTRUE
.FUNCT DESCRIBE-OBJECTS,O,STR,1ST?=1,AV
LOC WINNER >AV
FIRST? HERE >O /?BOGUS1
?BOGUS1: ZERO? O /FALSE
?PRG4: ZERO? O /?REP5
CALL DESCRIBABLE?,O
ZERO? STACK /?CND6
FSET? O,TOUCHBIT /?CND6
GETP O,P?FDESC >STR
ZERO? STR /?CND6
PRINT INDENT
PRINT STR
FSET? O,CONTBIT \?CND13
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,3
?CND13: CRLF
?CND6: NEXT? O >O /?PRG4
JUMP ?PRG4
?REP5: FIRST? HERE >O /?BOGUS16
?BOGUS16: SET '1ST?,TRUE-VALUE
?PRG17: ZERO? O /?REP18
CALL DESCRIBABLE?,O
ZERO? STACK /?CND19
GETP O,P?FDESC
ZERO? STACK /?CCL23
FSET? O,TOUCHBIT \?CND19
?CCL23: GETP O,P?DESCFCN >STR
ZERO? STR /?CCL29
CALL STR,M-OBJDESC >STR
ZERO? STR /?CCL29
FSET? O,CONTBIT \?CND32
EQUAL? STR,M-FATAL /?CND32
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,3
?CND32: CRLF
JUMP ?CND19
?CCL29: GETP O,P?LDESC >STR
ZERO? STR /?CND19
PRINT INDENT
PRINT STR
FSET? O,CONTBIT \?CND37
CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,3
?CND37: CRLF
?CND19: NEXT? O >O /?PRG17
JUMP ?PRG17
?REP18: CALL DESCRIBE-CONTENTS,HERE,FALSE-VALUE,0
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
EQUAL? LEVEL,2 \?CCL3
SET 'LEVEL,TRUE-VALUE
SET 'PARA?,TRUE-VALUE
SET 'START?,TRUE-VALUE
JUMP ?CND1
?CCL3: BTST ALL?,D-PARA? \?CND1
SET 'PARA?,TRUE-VALUE
?CND1: FIRST? OBJ >N /?BOGUS5
?BOGUS5: ZERO? START? \?PRG21
IN? OBJ,ROOMS /?PRG21
FSET? OBJ,ACTORBIT /?PRG21
ZERO? N /FALSE
FSET? OBJ,CONTBIT \FALSE
FSET? OBJ,OPENBIT /?PRD16
FSET? OBJ,TRANSBIT \FALSE
?PRD16: EQUAL? LEVEL,-1 /?PRG21
FSET? OBJ,SEARCHBIT \FALSE
?PRG21: ZERO? N /?CCL24
CALL DESCRIBABLE?,N
ZERO? STACK /?CND23
BTST ALL?,D-ALL? /?CCL24
CALL SIMPLE-DESC?,N
ZERO? STACK /?CND23
?CCL24: ZERO? F /?CND31
ZERO? 1ST? /?CCL35
SET '1ST?,FALSE-VALUE
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CCL38
ZERO? START? \?CND33
ZERO? PARA? \?CCL43
EQUAL? OBJ,PROTAGONIST /?CND44
PRINT INDENT
?CND44: SET 'PARA?,TRUE-VALUE
JUMP ?CND41
?CCL43: EQUAL? LEVEL,TRUE-VALUE \?CND41
PRINTC 32
?CND41: CALL DESCRIBE-START,OBJ
JUMP ?CND33
?CCL38: EQUAL? LEVEL,-1 /?CND33
PRINT LEVEL
JUMP ?CND33
?CCL35: ZERO? N /?CCL49
PRINTC 44
JUMP ?CND33
?CCL49: PRINTI " and"
?CND33: CALL APRINT,F
FSET? F,ONBIT \?CCL52
PRINTI " (providing light)"
JUMP ?CND50
?CCL52: EQUAL? F,RETICULE \?CND50
PRINTI " (hanging from your wrist)"
?CND50: ZERO? IT? \?CCL56
ZERO? TWO? \?CCL56
SET 'IT?,F
JUMP ?CND31
?CCL56: SET 'TWO?,TRUE-VALUE
SET 'IT?,FALSE-VALUE
?CND31: SET 'F,N
?CND23: ZERO? N /?CND59
NEXT? N >N /?CND59
?CND59: ZERO? F \?PRG21
ZERO? N \?PRG21
ZERO? IT? /?CND66
ZERO? TWO? \?CND66
CALL THIS-IS-IT,IT?
?CND66: ZERO? 1ST? /?CCL72
ZERO? START? /?CCL72
PRINTI " nothing"
RFALSE
?CCL72: ZERO? 1ST? \?REP22
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?REP22
EQUAL? OBJ,HERE \?CND78
PRINTI " here"
?CND78: PRINTC 46
?REP22: EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND80
FIRST? OBJ >F /?PRG83
?PRG83: ZERO? F /?CND80
FSET? F,CONTBIT \?CND85
CALL DESCRIBABLE?,F,TRUE-VALUE
ZERO? STACK /?CND85
BTST ALL?,D-ALL? /?CCL88
CALL SIMPLE-DESC?,F
ZERO? STACK /?CND85
?CCL88: SET 'DB,D-BIT
SET 'D-BIT,FALSE-VALUE
ZERO? PARA? /?CCL98
PUSH 3
JUMP ?CND96
?CCL98: PUSH D-ALL?
?CND96: CALL DESCRIBE-CONTENTS,F,TRUE-VALUE,STACK
ZERO? STACK /?CND94
SET '1ST?,FALSE-VALUE
SET 'PARA?,TRUE-VALUE
?CND94: SET 'D-BIT,DB
?CND85: NEXT? F >F /?PRG83
JUMP ?PRG83
?CND80: ZERO? 1ST? \?CND100
EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND100
LOC WINNER
EQUAL? OBJ,HERE,STACK \?CND100
CRLF
?CND100: ZERO? 1ST? /TRUE
RFALSE
.FUNCT DESCRIBE-START,OBJ
EQUAL? OBJ,HERE \?CCL3
PRINT YOU-SEE
RTRUE
?CCL3: EQUAL? OBJ,PROTAGONIST \?CCL5
EQUAL? D-BIT,WORNBIT \?CCL8
PRINTI " You are wearing"
RTRUE
?CCL8: PRINTI "You have"
RTRUE
?CCL5: FSET? OBJ,SURFACEBIT \?CCL10
PRINTI "Sitting on"
CALL TPRINT,OBJ
PRINTI " is"
RTRUE
?CCL10: FSET? OBJ,ACTORBIT \?CCL12
EQUAL? OBJ,CROC /?CCL12
EQUAL? OBJ,LUCY \?CCL17
PRINTI "Sh"
JUMP ?CND15
?CCL17: PRINTC 72
?CND15: PRINTI "e has"
RTRUE
?CCL12: EQUAL? OBJ,FENCE,BOTTLE,HORN /TRUE
PRINT IT-SEEMS-THAT
CALL TPRINT,OBJ
PRINTI " contains"
RTRUE
.FUNCT DESCRIBABLE?,OBJ,CONT?=0
FSET? OBJ,INVISIBLE /FALSE
EQUAL? OBJ,WINNER /FALSE
LOC WINNER
EQUAL? OBJ,STACK \?CCL7
LOC WINNER
EQUAL? HERE,STACK \FALSE
?CCL7: ZERO? CONT? \?CCL11
FSET? OBJ,NDESCBIT /FALSE
?CCL11: ZERO? D-BIT /TRUE
GRTR? D-BIT,0 \?CCL18
FSET? OBJ,D-BIT /TRUE
RFALSE
?CCL18: SUB 0,D-BIT
FSET? OBJ,STACK /FALSE
RTRUE
.FUNCT SIMPLE-DESC?,OBJ,STR
GETP OBJ,P?FDESC
ZERO? STACK /?CCL3
FSET? OBJ,TOUCHBIT \FALSE
?CCL3: GETP OBJ,P?DESCFCN >STR
ZERO? STR /?CCL7
CALL STR,M-DESC?
ZERO? STACK \FALSE
?CCL7: GETP OBJ,P?LDESC
ZERO? STACK /TRUE
RFALSE
.FUNCT DESCRIBE-VEHICLE
PRINTI "Other than "
PRINTD ME
PRINTI ", you can see"
CALL DESCRIBE-NOTHING
ZERO? STACK \TRUE
FSET? PRSO,INBIT \?CCL5
PRINTI " in"
JUMP ?CND3
?CCL5: PRINTI " on"
?CND3: CALL TRPRINT,PRSO
RTRUE
.FUNCT DESCRIBE-NOTHING
CALL DESCRIBE-CONTENTS,PRSO,2
ZERO? STACK /FALSE
IN? PROTAGONIST,PRSO /TRUE
CRLF
RTRUE
.FUNCT GOTO,NEW-LOC,DONT-DESCRIBE-DAD=0,OLD-HERE
SET 'OLD-HERE,HERE
MOVE PROTAGONIST,NEW-LOC
IN? NEW-LOC,ROOMS \?CCL3
SET 'HERE,NEW-LOC
JUMP ?CND1
?CCL3: LOC NEW-LOC >HERE
?CND1: CALL LIT?,HERE >LIT
EQUAL? OLD-HERE,LIBRARY \?CND4
CALL HELD?,HAT
ZERO? STACK /?CND4
EQUAL? HERE,BY-HOUSE,HALL-E \?CND4
CALL SAFETY-SAKE
CRLF
?CND4: GETP HERE,P?ACTION
CALL STACK,M-ENTER
EQUAL? HERE,PASSAGE-4 \?CCL11
IN? DAD,HERE \?CCL11
PRINTI """What a brave tot! You've inherited all your mother's spirit."" Your father beams with pride"
PRINT PCR
CRLF
JUMP ?CND9
?CCL11: EQUAL? HERE,BOTTOM-STAIRS \?CCL15
IN? COOKIE,ANTEROOM \?CCL15
SET 'COOKIE-FIGHTING-CROC,FALSE-VALUE
FCLEAR CROC,NDESCBIT
PRINTI """I ain't goin' to fight this beast if you're headin' back upstairs."""
CALL TPRINT,COOKIE
IN? RAPIER,PROTAGONIST \?CND18
MOVE RAPIER,COOKIE
PRINTI " eyes"
CALL TPRINT,RAPIER
PRINTI " in"
CALL TPRINT,HANDS
PRINTI ". ""Not a proper thing fer a lady,"" he grumbles, taking it from you. He"
?CND18: PRINTI " follows you"
PRINT PCR
CRLF
JUMP ?CND9
?CCL15: EQUAL? HERE,LAGOON /TRUE
?CND9: CALL DESCRIBE-ROOM
ZERO? STACK /?CND21
ZERO? VERBOSITY /?CND21
CALL DESCRIBE-OBJECTS
?CND21: IN? DAD,OLD-HERE \?CND25
IN? PROTAGONIST,HERE \?CND25
ZERO? DONT-DESCRIBE-DAD \?CND25
ZERO? ENDGAME \?CND25
CALL DAD-FOLLOWS-YOU
?CND25: IN? HERO,OLD-HERE \?CND31
IN? PROTAGONIST,HERE \?CND31
ZERO? ENDGAME \?CND31
EQUAL? HERE,BALLROOM \?CCL38
EQUAL? PARTNER,HERO \?CCL38
MOVE HERO,HERE
PRINTD HERO
PRINTI " smiles and follows you, pulling you onto"
PRINT DANCE-FLOOR
PRINT PCR
JUMP ?CND31
?CCL38: EQUAL? OLD-HERE,BALLROOM \?CCL42
MOVE HERO,HERE
RTRUE
?CCL42: CALL STOP-QUEUES
REMOVE HERO
PRINT INDENT
PRINTI """No, wait -- !"" Jamison cries. He "
EQUAL? HERE,LAWN \?CCL45
PRINTI "slips past you into the forest"
JUMP ?CND43
?CCL45: PRINTI "hesitates and turns away"
?CND43: PRINT PCR
?CND31: ZERO? ENDGAME /TRUE
IN? COOKIE,OLD-HERE \TRUE
IN? PROTAGONIST,HERE \TRUE
ZERO? COOKIE-FIGHTING-CROC \TRUE
CALL RUNNING?,I-ENDGAME
ZERO? STACK \TRUE
CALL RUNNING?,I-DUEL
ZERO? STACK /?CCL55
EQUAL? OLD-HERE,GALLERY,STAIRTOP /TRUE
?CCL55: EQUAL? HERE,BEACH /TRUE
MOVE COOKIE,HERE
PRINT INDENT
PRINTD COOKIE
PRINTI " pegs after you"
PRINT PCR
RTRUE
.FUNCT SAFETY-SAKE
MOVE HAT,LIBRARY
FCLEAR HAT,WORNBIT
FSET HAT,EVERYBIT
FCLEAR KNOB,EVERYBIT
FSET KNOB,DEADBIT
PRINTI "For safety's sake, you leave"
CALL TPRINT,HAT
PRINTI " on its knob. Best not to show that you've been wandering"
PRINT PCR
RTRUE
.FUNCT DAD-FOLLOWS-YOU
EQUAL? HERE,CELL-4 \?CCL3
PRINTR "Your father chuckles in the darkness of the passageway, ""No dear, I'm not going in there again!"""
?CCL3: LOC PROTAGONIST
MOVE DAD,STACK
PRINT INDENT
PRINTI "Papa "
CALL PICK-ONE,FOLLOWS
PRINT STACK
CRLF
RTRUE
.FUNCT JIGS-UP,DESC
PRINT DESC
PRINT YOU-DIED
CALL FINISH
RSTACK
.FUNCT H-JIGS-UP,DESC,DAD-DEAD=0
PRINT DESC
PRINT YOU-DIED
PRINT INDENT
ZERO? DAD-DEAD /?CCL3
PRINTI "Troubled by Papa's death, caused by your own unthinking pride, your life loses meaning. You die by your own hand, in grief and shame."
JUMP ?CND1
?CCL3: PRINTI "Rather, your flesh is intact, but your spirit has flown with the death of your heart's love. The years pass, unnoticed, twisting you into an old and ugly spinster, that dies alone, loved by no one."
?CND1: CRLF
CALL FINISH
RSTACK
.FUNCT FWTD,DESC
PRINT DESC
CRLF
CRLF
PRINTI " *** You have suffered
a fate worse than death ***"
CRLF
CALL FINISH
RSTACK
.FUNCT ACCESSIBLE?,OBJ,L
ZERO? OBJ /FALSE
LOC OBJ >L
FSET? OBJ,INVISIBLE /FALSE
EQUAL? OBJ,PSEUDO-OBJECT \?CCL7
EQUAL? LAST-PSEUDO-LOC,HERE /TRUE
RFALSE
?CCL7: ZERO? L /FALSE
EQUAL? L,GLOBAL-OBJECTS /TRUE
EQUAL? L,LOCAL-GLOBALS \?CCL16
CALL GLOBAL-IN?,OBJ,HERE
ZERO? STACK \TRUE
?CCL16: CALL META-LOC,OBJ
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
EQUAL? OBJ,SEA \?CCL5
EQUAL? HERE,LAGOON,SHALLOWS,MAIN-DECK /FALSE
EQUAL? HERE,BEACH /FALSE
RTRUE
?CCL5: EQUAL? OBJ,LADDER \?CCL12
LOC PROTAGONIST
EQUAL? STACK,LEDGE /FALSE
?CCL12: IN? PROTAGONIST,HERE /FALSE
LOC PROTAGONIST
CALL HELD?,OBJ,STACK
ZERO? STACK \FALSE
LOC PROTAGONIST
EQUAL? OBJ,STACK /FALSE
IN? OBJ,GLOBAL-OBJECTS /FALSE
RTRUE
.FUNCT META-LOC,OBJ
?PRG1: ZERO? OBJ /FALSE
IN? OBJ,GLOBAL-OBJECTS \?CND3
RETURN GLOBAL-OBJECTS
?CND3: IN? OBJ,ROOMS \?CCL9
RETURN OBJ
?CCL9: LOC OBJ >OBJ
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 HELD?,OBJ,CONT=0
ZERO? CONT \?CND1
SET 'CONT,WINNER
?CND1: ZERO? OBJ /FALSE
IN? OBJ,CONT /TRUE
IN? OBJ,ROOMS /FALSE
LOC OBJ
CALL HELD?,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
FIRST? WHERE >OBJ /?BOGUS1
?BOGUS1: ZERO? OBJ /FALSE
?PRG4: FSET? OBJ,FLAG-IN-QUESTION \?CCL8
FSET? OBJ,INVISIBLE /?CCL8
ZERO? STRING \?CCL12
RETURN OBJ
?CCL12: PRINTC 91
PRINT STRING
CALL TPRINT,OBJ
PRINTC 93
CRLF
RETURN OBJ
?CCL8: CALL FIND-IN,OBJ,FLAG-IN-QUESTION >RECURSIVE-OBJ
ZERO? RECURSIVE-OBJ /?CCL14
RETURN RECURSIVE-OBJ
?CCL14: NEXT? OBJ >OBJ /?PRG4
RFALSE
.FUNCT LOC-CLOSED,L
LOC PRSO >L
FSET? L,CONTBIT \FALSE
FSET? L,OPENBIT /FALSE
FSET? PRSO,TAKEBIT \FALSE
CALL DO-FIRST,STR?265,L
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 ANYTHING-HELD,SOMETHING-HELD=0,N,X
FIRST? PROTAGONIST >X /?PRG2
?PRG2: ZERO? X /?REP3
FSET? X,WORNBIT /?CND6
EQUAL? X,RETICULE /?CND6
SET 'SOMETHING-HELD,TRUE-VALUE
?CND6: NEXT? X >N /?BOGUS10
?BOGUS10: SET 'X,N
JUMP ?PRG2
?REP3: RETURN SOMETHING-HELD
.FUNCT ROB,WHO,WHERE=0,N,X
FIRST? WHO >X /?PRG2
?PRG2: ZERO? X /?REP3
NEXT? X >N /?BOGUS6
?BOGUS6: FSET? X,WORNBIT /?CND7
EQUAL? X,PINCH /?CND7
ZERO? WHERE /?CCL13
MOVE X,WHERE
JUMP ?CND7
?CCL13: REMOVE X
?CND7: SET 'X,N
JUMP ?PRG2
?REP3: MOVE RETICULE,PROTAGONIST
RTRUE
.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 IMPOSSIBLES
CALL PICK-ONE,IMPOSSIBLE-LIST
PRINT STACK
CRLF
RTRUE
.FUNCT WASTES
CALL PICK-ONE,WASTE-LIST
PRINT STACK
CRLF
RTRUE
.ENDI