.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