.FUNCT V-VERBOSE SET 'VERBOSITY,2 PRINTI "Maximum verbosity." CRLF CRLF CALL V-LOOK RSTACK .FUNCT V-BRIEF SET 'VERBOSITY,1 PRINTR "Brief descriptions." .FUNCT V-SUPER-BRIEF SET 'VERBOSITY,0 PRINTR "Super-brief descriptions." .FUNCT V-TAME ZERO? NAUGHTY-LEVEL \?ELS5 PRINT ALREADY-IN-MODE RTRUE ?ELS5: SET 'NAUGHTY-LEVEL,0 PRINTR "Tame descriptions. [Yawn.]" .FUNCT V-SUGGESTIVE EQUAL? NAUGHTY-LEVEL,1 \?ELS5 PRINT ALREADY-IN-MODE RTRUE ?ELS5: SET 'NAUGHTY-LEVEL,1 PRINTR "Suggestive descriptions." .FUNCT V-LEWD,ACCEPTABLE-AGE=0 EQUAL? NAUGHTY-LEVEL,2 \?ELS3 PRINT ALREADY-IN-MODE RTRUE ?ELS3: GRTR? AGE,17 \?ELS5 SET 'ACCEPTABLE-AGE,TRUE-VALUE JUMP ?CND1 ?ELS5: PUTB P-LEXV,0,10 PRINTI "What is your age? >" ?PRG8: READ P-INBUF,P-LEXV CRLF CALL NUMBER?,P-LEXSTART EQUAL? STACK,W?NUMBER \?ELS12 LESS? P-NUMBER,18 \?ELS15 SET 'AGE,P-NUMBER LESS? P-NUMBER,5 \?ELS18 PRINTI "Precocious, aren't you! Unfortunately" JUMP ?CND16 ?ELS18: PRINTI "Sorry" ?CND16: PRINTI ", you must be at least 18 to enter LEWD mode." CRLF JUMP ?REP9 ?ELS15: GRTR? P-NUMBER,120 \?ELS22 PRINTI "Bullpuckies. Tell the truth. >" JUMP ?PRG8 ?ELS22: GRTR? AGE,-1 \?ELS24 LESS? AGE,19 \?ELS24 PRINTI "Liar! You said before that you were " PRINTN AGE PRINT PERIOD-CR JUMP ?REP9 ?ELS24: SET 'AGE,P-NUMBER PRINTI "Acceptable age. " SET 'ACCEPTABLE-AGE,TRUE-VALUE JUMP ?REP9 ?ELS12: PRINTI "Please tell me your age! >" JUMP ?PRG8 ?REP9: PUTB P-LEXV,0,60 ?CND1: ZERO? ACCEPTABLE-AGE /FALSE PRINTI "Switching to LEWD level." CRLF SET 'NAUGHTY-LEVEL,2 RETURN NAUGHTY-LEVEL .FUNCT V-SAVE EQUAL? HERE,AUDIENCE-CHAMBER \?CND1 ZERO? RIDDLE-ANSWERED \?CND1 PRINTI """Oh, all right,"" says" CALL TPRINT,SULTAN PRINTI ", ""I'll bend the rules a tad. You may SAVE.""" CRLF CRLF ?CND1: SET 'P-CONT,FALSE-VALUE SET 'QUOTE-FLAG,FALSE-VALUE SAVE \?ELS10 PRINT OK RTRUE ?ELS10: PRINT FAILED RTRUE .FUNCT V-RESTORE RESTORE \?ELS5 PRINT OK RTRUE ?ELS5: PRINT FAILED RTRUE .FUNCT TELL-SCORE PRINTI "In " PRINTN MOVES PRINTI " turn" EQUAL? MOVES,1 /?CND1 PRINTI "s" ?CND1: PRINTI ", you have achieved a score of, um, oh, call it " PRINTN SCORE PRINTI " out of " PRINTN EXT-MAX PRINTI " points. This gives you the rank of " ZERO? MALE /?ELS6 GET MALE-RANKS,RANK PRINT STACK JUMP ?CND4 ?ELS6: GET FEMALE-RANKS,RANK PRINT STACK ?CND4: PRINT PERIOD-CR RTRUE .FUNCT V-SCRIPT GET 0,8 BOR STACK,1 PUT 0,8,STACK CALL CORP-NOTICE,STR?34 CALL V-VERSION RSTACK .FUNCT V-UNSCRIPT CALL CORP-NOTICE,STR?35 CALL V-VERSION GET 0,8 BAND STACK,-2 PUT 0,8,STACK RTRUE .FUNCT CORP-NOTICE,STRING PRINTI "Here " PRINT STRING PRINTI " a transcript of interaction with " PRINT LGOP-CAPS PRINT PERIOD-CR RTRUE .FUNCT V-DIAGNOSE FSET? CELL,TOUCHBIT /?ELS3 PRINTI "You're pretty drunk" CALL RUNNING?,I-URGE ZERO? STACK /?CND1 PRINTI ", and your bladder is about to burst" JUMP ?CND1 ?ELS3: GRTR? ION-DEATH-COUNTER,0 \?ELS8 PRINTI "You now have a " GET ION-TABLE,ION-DEATH-COUNTER PRINT STACK PRINTI " headache" JUMP ?CND1 ?ELS8: FSET? CATACOMBS,MUNGBIT \?ELS10 CALL IN-CATACOMBS ZERO? STACK /?ELS10 PRINTI "You have some tiny wounds" JUMP ?CND1 ?ELS10: ZERO? GONE-APE /?ELS18 EQUAL? SUGAR-RUSH,GORILLA-ATE-CHOCOLATE /?THN15 ?ELS18: ZERO? GONE-APE \?ELS14 EQUAL? SUGAR-RUSH,HUMAN-ATE-CHOCOLATE \?ELS14 ?THN15: PRINTI "You're experiencing a sugar rush" JUMP ?CND1 ?ELS14: EQUAL? HERE,RUINED-CASTLE-2 \?ELS22 FSET? HERE,MUNGBIT \?ELS22 ZERO? NAUGHTY-LEVEL /?ELS22 PRINTI "You feel " EQUAL? NAUGHTY-LEVEL,1 \?ELS27 PRINTI "sexually unsatisfied" JUMP ?CND1 ?ELS27: PRINTI "horny" JUMP ?CND1 ?ELS22: EQUAL? HERE,IN-SPACE \?ELS31 FSET? WHITE-SUIT,WORNBIT /?ELS31 PRINTI "Brrr" JUMP ?CND1 ?ELS31: PRINTI "You are in good health" ZERO? GONE-APE /?CND1 PRINTI " (for a gorilla)" ?CND1: PRINT PERIOD-CR RTRUE .FUNCT V-INVENTORY ZERO? GONE-APE /?ELS5 FIRST? PROTAGONIST /?ELS5 PRINTR "You are empty-pawed." ?ELS5: CALL DESCRIBE-CONTENTS,PROTAGONIST,FALSE-VALUE CALL ULTIMATELY-IN?,FLASHLIGHT ZERO? STACK /?CND10 EQUAL? HERE,JOES-BAR,MENS-ROOM,LADIES-ROOM \?CND10 PRINTI " It's not clear why you've carried" CALL APRINT,FLASHLIGHT PRINTI " into " PRINTD JOES-BAR PRINTI ", except that the lighting in the bathrooms isn't too reliable." ?CND10: CRLF RTRUE .FUNCT V-QUIT CALL TELL-SCORE CALL DO-YOU-WISH,STR?36 CALL YES? ZERO? STACK /?ELS5 QUIT RTRUE ?ELS5: PRINT OK RTRUE .FUNCT V-RESTART CALL TELL-SCORE CALL DO-YOU-WISH,STR?37 CALL YES? ZERO? STACK /FALSE PRINTI "Restarting." CRLF RESTART PRINT FAILED RTRUE .FUNCT DO-YOU-WISH,STRING CRLF PRINTI "Do you wish to " PRINT STRING PRINTI "? (Y is affirmative): " RTRUE .FUNCT YES? ?FCN: PRINTI ">" READ P-INBUF,P-LEXV GET P-LEXV,1 CALL YES-WORD,STACK ZERO? STACK \TRUE GET P-LEXV,1 CALL NO-WORD,STACK ZERO? STACK \FALSE GET P-LEXV,1 EQUAL? STACK,W?N /FALSE PRINTI "Please answer YES or NO. " JUMP ?FCN .FUNCT FINISH,REPEATING=0,CNT=0 ?PRG1: CRLF ZERO? REPEATING \?CND3 SET 'REPEATING,TRUE-VALUE CALL TELL-SCORE ?CND3: PRINTI "Would you like to 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 \?ELS8 RESTART PRINT FAILED JUMP ?PRG1 ?ELS8: GET P-LEXV,1 EQUAL? STACK,W?RESTOR \?ELS10 RESTORE /?ELS10 PRINT FAILED JUMP ?PRG1 ?ELS10: GET P-LEXV,1 EQUAL? STACK,W?QUIT,W?Q /?THN15 GRTR? CNT,10 \?PRG1 ?THN15: QUIT JUMP ?PRG1 .FUNCT V-STATUS PRINTI "You are currently in " ZERO? NAUGHTY-LEVEL \?ELS3 PRINTI "tame" JUMP ?CND1 ?ELS3: EQUAL? NAUGHTY-LEVEL,1 \?ELS5 PRINTI "suggestive" JUMP ?CND1 ?ELS5: PRINTI "lewd" ?CND1: PRINTI " mode and are getting " ZERO? VERBOSITY \?ELS10 PRINTI "super-brief" JUMP ?CND8 ?ELS10: EQUAL? VERBOSITY,1 \?ELS12 PRINTI "brief" JUMP ?CND8 ?ELS12: PRINTI "verbose" ?CND8: PRINTI " descriptions. " CALL TELL-SCORE RSTACK .FUNCT V-VERSION,CNT=17,V GET 0,1 BAND STACK,2047 >V PRINT LGOP-CAPS CRLF PRINTI "Infocom interactive fiction -- a racy space-age spoof Copyright (c) 1986 by Infocom, Inc. All rights reserved. " PRINT LGOP-CAPS PRINTI " is a trademark of Infocom, Inc. Release " PRINTN V PRINTI " / Serial number " ?PRG1: IGRTR? 'CNT,23 \?ELS5 JUMP ?REP2 ?ELS5: GETB 0,CNT PRINTC STACK JUMP ?PRG1 ?REP2: CRLF RTRUE .FUNCT V-$COMMAND DIRIN 1 RTRUE .FUNCT V-$RANDOM EQUAL? PRSO,INTNUM /?ELS5 PRINTR "ILLEGAL." ?ELS5: 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 \?ELS5 EQUAL? P-NUMBER,69 \?ELS5 PRINTN SERIAL CRLF RTRUE ?ELS5: PRINTI "Verifying." CRLF VERIFY \?ELS14 PRINT OK RTRUE ?ELS14: CRLF PRINTR "** Bad **" .FUNCT V-ALARM EQUAL? PRSO,ROOMS \?ELS5 CALL PERFORM-PRSA,ME RTRUE ?ELS5: PRINTI "But" CALL TPRINT-PRSO PRINTR " isn't asleep." .FUNCT V-ANSWER ZERO? AWAITING-REPLY /?ELS5 GET P-LEXV,P-CONT CALL YES-WORD,STACK ZERO? STACK /?ELS5 CALL V-YES CALL STOP RSTACK ?ELS5: ZERO? AWAITING-REPLY /?ELS9 GET P-LEXV,P-CONT CALL NO-WORD,STACK ZERO? STACK /?ELS9 CALL V-NO CALL STOP RSTACK ?ELS9: CALL RUNNING?,I-SNEEZE ZERO? STACK /?ELS13 CALL RIDDLE-ANSWER RSTACK ?ELS13: IN? HAREM-GUARD,HERE \?ELS15 CALL PICK-WIFE RSTACK ?ELS15: PRINTI "Nobody is awaiting your answer." CRLF CALL STOP RSTACK .FUNCT V-ANSWER-KLUDGE CALL NOUN-USED,W?I,ME ZERO? STACK /?ELS5 CALL V-INVENTORY RSTACK ?ELS5: SET 'P-WON,FALSE-VALUE PRINT NO-VERB CALL STOP RSTACK .FUNCT ORPHAN-VERB EQUAL? HERE,AUDIENCE-CHAMBER,BEDROOM /?CND1 SET 'AWAITING-FAKE-ORPHAN,FALSE-VALUE RFALSE ?CND1: PUT P-VTBL,0,W?ZZMGCK PUT P-OVTBL,0,W?ANSWER PUT P-OTBL,P-VERB,ACT?ZZMGCK PUT P-OTBL,P-VERBN,P-VTBL PUT P-OTBL,P-PREP1,0 PUT P-OTBL,P-PREP1N,0 PUT P-OTBL,P-PREP2,0 PUT P-OTBL,5,0 PUT P-OTBL,P-NC1,1 PUT P-OTBL,P-NC1L,0 PUT P-OTBL,P-NC2,0 PUT P-OTBL,P-NC2L,0 SET 'P-OFLAG,TRUE-VALUE RETURN P-OFLAG .FUNCT V-APPLAUD CALL IN-CATACOMBS ZERO? STACK /?CND1 CALL QUEUE,I-BEETLES,6 ?CND1: PRINTR "Clap." .FUNCT V-APPLY FSET? PRSO,WEARBIT \?ELS5 CALL PERFORM,V?WEAR,PRSO RTRUE ?ELS5: SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTI "Apply" CALL TPRINT-PRSO PRINTR " for what? A job?" .FUNCT PRE-SPEAK ZERO? GONE-APE /?ELS5 PRINTI "You open " PRINTD MOUTH PRINTI " to speak, but all that comes out are a few grunts." CRLF CALL STOP RSTACK ?ELS5: FSET? EARS,MUNGBIT \FALSE PRINT YOU-CANT PRINTI "carry on a conversation when " PRINTD EARS PRINTI " are" EQUAL? EARS,HAND-COVER \?ELS11 PRINTI " covered" JUMP ?CND9 ?ELS11: PRINTI " plugged up" ?CND9: PRINT PERIOD-CR CALL STOP RSTACK .FUNCT V-ASK-ABOUT,OWINNER EQUAL? PRSO,ME \?ELS5 CALL PERFORM,V?TELL,ME RTRUE ?ELS5: FSET? PRSO,ACTORBIT /?THN8 EQUAL? PRSO,INTNUM \?ELS7 EQUAL? P-NUMBER,CHOICE-NUMBER \?ELS7 IN? SULTANS-WIFE,HERE \?ELS7 ?THN8: 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 ?ELS7: CALL PERFORM,V?TELL,PRSO RTRUE .FUNCT V-ASK-FOR PRINTI "Unsurprisingly," CALL TPRINT-PRSO PRINTR " doesn't oblige." .FUNCT V-ASK-NO-ONE-FOR,ACTOR CALL FIND-IN,HERE,ACTORBIT >ACTOR ZERO? ACTOR /?ELS5 CALL PERFORM,V?ASK-FOR,ACTOR,PRSO RTRUE ?ELS5: CALL NO-ONE-HERE,STR?38 RSTACK .FUNCT V-BARTER-WITH FSET? PRSO,ACTORBIT \?ELS5 PRINTI "But" CALL TPRINT-PRSO PRINTR " has nothing worth trading for." ?ELS5: CALL IMPOSSIBLES RSTACK .FUNCT V-BARTER-FOR CALL IMPOSSIBLES RSTACK .FUNCT V-BEND EQUAL? P-PRSA-WORD,W?SPREAD \?ELS5 FSET? PRSO,ACTORBIT \?ELS10 CALL V-BOARD RSTACK ?ELS10: CALL HACK-HACK,STR?39 RSTACK ?ELS5: CALL HACK-HACK,STR?40 RSTACK .FUNCT V-BITE CALL HACK-HACK,STR?41 RSTACK .FUNCT V-BLOW FSET? PRSO,ACTORBIT \?ELS5 CALL PERFORM,V?EAT,PRSO RTRUE ?ELS5: CALL CANT-VERB-A-PRSO,STR?42 RSTACK .FUNCT PRE-BOARD IN? PROTAGONIST,PRSO \?ELS5 PRINT LOOK-AROUND RTRUE ?ELS5: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS7 EQUAL? PRSO,FLEXIBLE-HOLE /?ELS7 PRINT HOLDING-IT RTRUE ?ELS7: CALL UNTOUCHABLE?,PRSO ZERO? STACK /FALSE CALL CANT-REACH,PRSO RSTACK .FUNCT V-BOARD,AV LOC PROTAGONIST >AV FSET? PRSO,VEHBIT \?ELS5 LOC PRSO EQUAL? STACK,HERE,LOCAL-GLOBALS /?CND6 PRINT YOU-CANT PRINTI "board" CALL TPRINT-PRSO PRINTI " when it's " LOC PRSO FSET? STACK,SURFACEBIT \?ELS11 PRINTI "on" JUMP ?CND9 ?ELS11: PRINTI "in" ?CND9: LOC PRSO CALL TRPRINT,STACK RTRUE ?CND6: MOVE PROTAGONIST,PRSO PRINTI "You are now " FSET? PRSO,INBIT \?ELS16 PRINTI "i" JUMP ?CND14 ?ELS16: PRINTI "o" ?CND14: PRINTI "n" CALL TPRINT-PRSO PRINTI "." IN? SIDEKICK,HERE \?CND19 EQUAL? PRSO,STALLION,RAFT,BARGE /?THN24 EQUAL? PRSO,TREE-HOLE \?CND19 ?THN24: MOVE SIDEKICK,PRSO PRINTI " " CALL DPRINT-SIDEKICK PRINTI " gets " FSET? PRSO,INBIT \?ELS28 PRINTI "i" JUMP ?CND26 ?ELS28: PRINTI "o" ?CND26: PRINTI "n behind you." ?CND19: EQUAL? PRSO,BARGE \?CND31 FSET? BARGE,TOUCHBIT /?CND31 PRINTI " You notice some simple controls." ?CND31: FSET PRSO,TOUCHBIT CRLF RTRUE ?ELS5: FSET? PRSO,ACTORBIT \?ELS37 PRINTR "Let's not beat around the bush. Come out and say what you mean." ?ELS37: GET P-ITBL,P-PREP1 EQUAL? STACK,PR?IN \?ELS39 CALL CANT-VERB-A-PRSO,STR?43 RSTACK ?ELS39: CALL CANT-VERB-A-PRSO,STR?44 RSTACK .FUNCT V-BOARD-DIR CALL RECOGNIZE RSTACK .FUNCT V-BURN ZERO? PRSI \?CND1 CALL ULTIMATELY-IN?,TORCH ZERO? STACK /?ELS6 FSET? TORCH,ONBIT \?ELS6 SET 'PRSI,TORCH PRINTI "[with the torch]" CRLF JUMP ?CND1 ?ELS6: PRINTR "You have no source of fire." ?CND1: EQUAL? PRSI,TORCH \?THN16 FSET? TORCH,ONBIT /?ELS15 ?THN16: PRINT YOU-CANT PRINTI "burn something with" CALL ARPRINT,PRSI RSTACK ?ELS15: EQUAL? PRSO,SHEET \?ELS19 ZERO? SHEET-TIED /?ELS19 CALL DO-FIRST,STR?45,PRSO RSTACK ?ELS19: IN? PROTAGONIST,PRSO \?ELS23 CALL DO-FIRST,STR?46,PRSO RSTACK ?ELS23: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS25 CALL DO-FIRST,STR?47,PRSO RSTACK ?ELS25: FSET? PRSO,BURNBIT \?ELS27 EQUAL? PRSO,LEAVES \?CND28 ZERO? LEAVES-PLACED /?CND28 SET 'PRSO,TRELLIS ?CND28: REMOVE PRSO PRINTI "In an instant," CALL TPRINT-PRSO EQUAL? PRSO,TRELLIS \?ELS35 ZERO? LEAVES-PLACED /?ELS35 REMOVE LEAVES SET 'LEAVES-PLACED,FALSE-VALUE PRINTI " and leaves are" JUMP ?CND33 ?ELS35: PRINTI " is" ?CND33: EQUAL? PRSO,TRELLIS \?ELS42 CALL UNDO-TRAP JUMP ?CND40 ?ELS42: EQUAL? PRSO,LEAVES \?CND40 SET 'LEAVES-PLACED,FALSE-VALUE ?CND40: PRINTR " consumed by fire." ?ELS27: CALL CANT-VERB-A-PRSO,STR?48 RSTACK .FUNCT V-BUY PRINTR "Sorry, there aren't any on sale here." .FUNCT V-BUY-WITH EQUAL? PRSI,TEN-MARSMID-COIN,ONE-MARSMID-COIN \?ELS5 CALL PERFORM,V?BUY,PRSO RTRUE ?ELS5: PRINTI "That must be a queer planet you come from, where" CALL APRINT,PRSI PRINTR " is a unit of money." .FUNCT V-CALL EQUAL? HERE,VIZICOMM-BOOTH \?ELS5 CALL PERFORM,V?SET,VIZICOMM RTRUE ?ELS5: CALL VISIBLE?,PRSO ZERO? STACK \?ELS7 CALL CANT-SEE,PRSO RSTACK ?ELS7: CALL PERFORM,V?TELL,PRSO RTRUE .FUNCT V-CAST-OFF EQUAL? PRSO,ROOMS \?ELS5 LOC PROTAGONIST CALL PERFORM,V?LAUNCH,STACK RTRUE ?ELS5: CALL PERFORM,V?TAKE-OFF,PRSO RTRUE .FUNCT V-CATCH PRINTR "The only thing you're good at catching is a cold." .FUNCT V-CHASTISE EQUAL? PRSO,INTDIR \?ELS5 PRINT YOULL-HAVE-TO PRINTR "go in that direction to see what's there." ?ELS5: PRINTR "Use prepositions to indicate precisely what you want to do: LOOK AT the object, LOOK INSIDE it, LOOK UNDER it, etc." .FUNCT V-CHEER EQUAL? PRSO,ROOMS \?ELS5 PRINT OK RTRUE ?ELS5: PRINTI "Probably," CALL TPRINT-PRSO PRINTR " is as happy as possible." .FUNCT V-CLEAN SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Do you also do windows?" .FUNCT V-CLICK PRINTR """Click.""" .FUNCT V-CLIMB EQUAL? PRSO,ROOMS \?ELS5 CALL DO-WALK,P?UP RSTACK ?ELS5: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS7 PRINT HOLDING-IT RTRUE ?ELS7: CALL IMPOSSIBLES RSTACK .FUNCT V-CLIMB-DOWN EQUAL? PRSO,ROOMS \?ELS5 CALL DO-WALK,P?DOWN RSTACK ?ELS5: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS7 PRINT HOLDING-IT RTRUE ?ELS7: FSET? PRSO,ACTORBIT \?ELS9 EQUAL? P-PRSA-WORD,W?GO \?ELS9 CALL PERFORM,V?EAT,PRSO RTRUE ?ELS9: CALL IMPOSSIBLES RSTACK .FUNCT V-CLIMB-ON FSET? PRSO,VEHBIT /?THN6 FSET? PRSO,ACTORBIT \?ELS5 ?THN6: CALL PERFORM,V?BOARD,PRSO RTRUE ?ELS5: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS9 PRINT HOLDING-IT RTRUE ?ELS9: GET P-ITBL,P-PREP1 EQUAL? STACK,PR?IN \?ELS11 CALL CANT-VERB-A-PRSO,STR?49 RSTACK ?ELS11: CALL CANT-VERB-A-PRSO,STR?50 RSTACK .FUNCT V-CLIMB-OVER CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS5 PRINT HOLDING-IT RTRUE ?ELS5: CALL IMPOSSIBLES RSTACK .FUNCT V-CLIMB-UP EQUAL? PRSO,ROOMS \?ELS5 CALL DO-WALK,P?UP RSTACK ?ELS5: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS7 PRINT HOLDING-IT RTRUE ?ELS7: CALL IMPOSSIBLES RSTACK .FUNCT V-CLOSE FSET? PRSO,SURFACEBIT /?THN6 FSET? PRSO,ACTORBIT /?THN6 FSET? PRSO,VEHBIT \?ELS5 ?THN6: CALL CANT-VERB-A-PRSO,STR?51 RSTACK ?ELS5: FSET? PRSO,DOORBIT /?THN10 FSET? PRSO,CONTBIT \?ELS9 ?THN10: FSET? PRSO,OPENBIT \?ELS16 FCLEAR PRSO,OPENBIT PRINTI "Okay," CALL TPRINT-PRSO PRINTI " is now closed." CRLF CALL NOW-DARK? RSTACK ?ELS16: PRINT ALREADY-IS RTRUE ?ELS9: CALL CANT-VERB-A-PRSO,STR?51 RSTACK .FUNCT V-COME ZERO? NAUGHTY-LEVEL \?ELS5 PRINTR "Go." ?ELS5: PRINTR "You're not even breathing hard." .FUNCT V-COPULATE,LOVER=0 CALL FIND-IN,HERE,ACTORBIT,STR?52 >LOVER ZERO? LOVER /?ELS5 CALL PERFORM,V?FUCK,LOVER RTRUE ?ELS5: CALL PERFORM,V?MAKE,LOVE RTRUE .FUNCT V-COUNT CALL IMPOSSIBLES RSTACK .FUNCT V-CRAWL-UNDER FSET? PRSO,TAKEBIT /?ELS5 CALL TELL-HIT-HEAD RSTACK ?ELS5: CALL IMPOSSIBLES RSTACK .FUNCT V-CROSS CALL V-WALK-AROUND RSTACK .FUNCT V-CUT ZERO? PRSI \?ELS5 CALL IMPOSSIBLES RSTACK ?ELS5: PRINTI "To put it bluntly, neither" CALL TPRINT-PRSI PRINTR " nor you are very sharp." .FUNCT V-DECODE PRINT YOULL-HAVE-TO PRINTR "figure it out yourself." .FUNCT V-DEFLATE CALL IMPOSSIBLES RSTACK .FUNCT V-DIG CALL WASTES RSTACK .FUNCT V-DISEMBARK ZERO? PRSO \?ELS5 IN? PROTAGONIST,HERE /?ELS10 LOC PROTAGONIST CALL PERFORM-PRSA,STACK RTRUE ?ELS10: PRINT LOOK-AROUND RTRUE ?ELS5: EQUAL? P-PRSA-WORD,W?TAKE \?ELS14 CALL PERFORM,V?TAKE,PRSO RTRUE ?ELS14: IN? PROTAGONIST,PRSO /?ELS16 PRINT LOOK-AROUND RETURN 8 ?ELS16: EQUAL? HERE,CANAL \?ELS20 CALL PERFORM,V?ENTER,CANAL-OBJECT RTRUE ?ELS20: MOVE PROTAGONIST,HERE PRINTI "You" IN? SIDEKICK,PRSO \?CND23 MOVE SIDEKICK,HERE PRINTI " and " CALL DPRINT-SIDEKICK ?CND23: PRINTI " get o" CALL OFF-VEHICLE?,PRSO ZERO? STACK /?ELS28 PRINTI "ff" JUMP ?CND26 ?ELS28: PRINTI "ut of" ?CND26: CALL TPRINT-PRSO PRINTI "." IN? SIDEKICK,SECOND-SLAB \?CND31 MOVE SIDEKICK,HERE PRINTI " You also " ZERO? SIDEKICKS-BODY-TIED-TO-SLAB /?ELS36 PRINTI "untie " CALL DPRINT-SIDEKICK PRINTI " and help " CALL HIM-HER JUMP ?CND34 ?ELS36: PRINTI "help " CALL DPRINT-SIDEKICK ?CND34: PRINTI " up from" CALL TPRINT,SECOND-SLAB PRINTI "." ?CND31: CRLF RTRUE .FUNCT V-DRESS ZERO? PRSO /?ELS5 FSET? PRSO,ACTORBIT \?ELS11 FSET? PRSO,FEMALEBIT \?ELS14 PRINTI "Sh" JUMP ?CND12 ?ELS14: PRINTI "H" ?CND12: PRINTR "e is dressed!" ?ELS11: CALL IMPOSSIBLES RSTACK ?ELS5: SET 'PRSO,ROOMS CALL V-GET-DRESSED RSTACK .FUNCT V-DRINK CALL CANT-VERB-A-PRSO,STR?53 RSTACK .FUNCT V-DRINK-FROM CALL IMPOSSIBLES RSTACK .FUNCT V-DROP CALL SPECIAL-DROP ZERO? STACK \FALSE LOC PROTAGONIST EQUAL? STACK,BARGE,RAFT /?THN9 LOC PROTAGONIST EQUAL? STACK,TREE-HOLE,CAGE \?ELS8 ?THN9: LOC PROTAGONIST MOVE PRSO,STACK JUMP ?CND6 ?ELS8: MOVE PRSO,HERE ?CND6: PRINTR "Dropped." .FUNCT SPECIAL-DROP CALL IN-CATACOMBS ZERO? STACK /?ELS5 REMOVE PRSO PRINTI "With a splash," CALL TPRINT-PRSO PRINTR " is lost forever." ?ELS5: CALL IN-SPACE? ZERO? STACK /?ELS7 MOVE PRSO,PROTAGONIST PRINTI "In the absence of gravity," CALL TPRINT-PRSO PRINTI " floats back into " PRINTD HANDS PRINTR "s." ?ELS7: EQUAL? HERE,EXIT-SHOP \?ELS9 MOVE PRSO,DUST PRINTI "You lose" CALL TPRINT-PRSO PRINTR " in the dust." ?ELS9: EQUAL? PRSO,TORCH \FALSE FSET? TORCH,ONBIT \FALSE IN? PROTAGONIST,BARGE \FALSE CALL PERFORM,V?PUT,TORCH,BARGE RTRUE .FUNCT V-EAT FSET? PRSO,ACTORBIT \?ELS5 ZERO? GONE-APE \?ELS5 ZERO? NAUGHTY-LEVEL /?ELS5 PRINTI "As you try," CALL TPRINT-PRSO PRINTI " slaps you across the face." EQUAL? PRSO,FEMALE-GORILLA,MALE-GORILLA /?CND8 PRINTI " ""Really, we hardly know each other.""" ?CND8: CRLF RTRUE ?ELS5: PRINTI "While the foodstuffs of the universe are many and varied," CALL APRINT,PRSO FSET? PRSO,PLURALBIT \?ELS15 PRINTI " are" JUMP ?CND13 ?ELS15: PRINTI " is" ?CND13: PRINTR " not one of them." .FUNCT V-EMPTY,OBJ,NXT ZERO? PRSI \?CND1 SET 'PRSI,GROUND ?CND1: FSET? PRSO,CONTBIT /?ELS8 PRINT HUH RTRUE ?ELS8: FSET? PRSO,OPENBIT /?ELS10 PRINTI "But" CALL TPRINT-PRSO PRINTR " isn't open." ?ELS10: FIRST? PRSO /?ELS12 PRINTI "But" CALL TPRINT-PRSO PRINTR " is already empty!" ?ELS12: FIRST? PRSO /?KLU50 ?KLU50: EQUAL? PRSI,STACK \?ELS14 NEXT? PRSI /?ELS14 PRINT THERES-NOTHING PRINTI "in" CALL TPRINT-PRSO PRINTI " but" CALL TRPRINT,PRSI RSTACK ?ELS14: CALL IN-SPACE? ZERO? STACK /?ELS18 PRINT YOU-CANT PRINTI "empty" CALL TPRINT-PRSO PRINTR " without gravity!" ?ELS18: FIRST? PRSO >OBJ /?KLU51 ?KLU51: ?PRG21: NEXT? OBJ >NXT /?KLU52 ?KLU52: EQUAL? OBJ,PROTAGONIST /?CND23 CALL DPRINT,OBJ PRINTI ": " EQUAL? PRSI,TRELLIS \?ELS28 EQUAL? OBJ,LEAVES \?ELS28 CALL PERFORM,V?PUT-ON,LEAVES,TRELLIS JUMP ?CND23 ?ELS28: FSET? OBJ,TAKEBIT \?ELS32 MOVE OBJ,PROTAGONIST EQUAL? PRSI,HANDS \?ELS35 PRINTI "Taken." CRLF JUMP ?CND26 ?ELS35: EQUAL? PRSI,GROUND \?ELS37 CALL PERFORM,V?DROP,OBJ JUMP ?CND26 ?ELS37: FSET? PRSI,SURFACEBIT \?ELS39 CALL PERFORM,V?PUT-ON,OBJ,PRSI JUMP ?CND26 ?ELS39: CALL PERFORM,V?PUT,OBJ,PRSI JUMP ?CND26 ?ELS32: CALL YUKS ?CND26: ?CND23: ZERO? NXT /TRUE SET 'OBJ,NXT JUMP ?PRG21 .FUNCT V-EMPTY-FROM IN? PRSO,PRSI \?ELS5 FSET? PRSO,TAKEBIT \?ELS10 MOVE PRSO,PROTAGONIST CALL PERFORM,V?DROP,PRSO RTRUE ?ELS10: CALL YUKS RSTACK ?ELS5: CALL NOT-IN RSTACK .FUNCT V-ENTER FSET? PRSO,DOORBIT \?ELS5 CALL OTHER-SIDE,PRSO CALL DO-WALK,STACK RTRUE ?ELS5: FSET? PRSO,VEHBIT \?ELS7 CALL PERFORM,V?BOARD,PRSO RTRUE ?ELS7: FSET? PRSO,ACTORBIT \?ELS9 CALL PERFORM,V?BOARD,PRSO RTRUE ?ELS9: FSET? PRSO,TAKEBIT /?ELS11 CALL TELL-HIT-HEAD RSTACK ?ELS11: CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS13 PRINT HOLDING-IT RTRUE ?ELS13: CALL IMPOSSIBLES RSTACK .FUNCT V-EXAMINE FSET? PRSO,UNTEEDBIT \?ELS5 PRINTI "It looks just like" CALL APRINT,PRSO PRINTR ", whatever that is." ?ELS5: FSET? PRSO,ACTORBIT \?ELS7 FIRST? PRSO \?ELS12 CALL PERFORM,V?LOOK-INSIDE,PRSO RTRUE ?ELS12: CALL NOTHING-INTERESTING PRINTI "about" CALL TRPRINT,PRSO RSTACK ?ELS7: FSET? PRSO,DOORBIT /?THN17 FSET? PRSO,SURFACEBIT \?ELS16 ?THN17: CALL V-LOOK-INSIDE RSTACK ?ELS16: FSET? PRSO,CONTBIT \?ELS20 FSET? PRSO,OPENBIT \?ELS25 CALL V-LOOK-INSIDE RSTACK ?ELS25: PRINTR "It's closed." ?ELS20: FSET? PRSO,LIGHTBIT \?ELS29 PRINTI "It's o" FSET? PRSO,ONBIT \?ELS32 PRINTI "n" JUMP ?CND30 ?ELS32: PRINTI "ff" ?CND30: PRINT PERIOD-CR RTRUE ?ELS29: FSET? PRSO,READBIT \?ELS36 CALL PERFORM,V?READ,PRSO RTRUE ?ELS36: FSET? PRSO,NARTICLEBIT \?ELS38 CALL SENSE-OBJECT,STR?54 RSTACK ?ELS38: RANDOM 100 LESS? 25,STACK \?THN41 EQUAL? PRSO,PSEUDO-OBJECT \?ELS40 ?THN41: PRINTI "Totally ordinary looking " CALL DPRINT,PRSO PRINT PERIOD-CR RTRUE ?ELS40: RANDOM 100 LESS? 60,STACK /?ELS44 CALL NOTHING-INTERESTING PRINTI "about" CALL TRPRINT,PRSO RSTACK ?ELS44: CALL PRONOUN PRINTI " look" FSET? PRSO,PLURALBIT /?CND47 EQUAL? PRSO,ME /?CND47 PRINTI "s" ?CND47: PRINTI " like every other " CALL DPRINT,PRSO PRINTR " you've ever seen." .FUNCT NOTHING-INTERESTING PRINT THERES-NOTHING RANDOM 100 LESS? 25,STACK /?ELS3 PRINTI "unusual" JUMP ?CND1 ?ELS3: RANDOM 100 LESS? 33,STACK /?ELS5 PRINTI "noteworthy" JUMP ?CND1 ?ELS5: RANDOM 100 LESS? 50,STACK /?ELS7 PRINTI "eye-catching" JUMP ?CND1 ?ELS7: PRINTI "special" ?CND1: PRINTI " " RTRUE .FUNCT V-EXIT ZERO? PRSO /?ELS5 FSET? PRSO,VEHBIT \?ELS5 CALL PERFORM,V?DISEMBARK,PRSO RTRUE ?ELS5: CALL IN-EXITABLE-VEHICLE? ZERO? STACK \FALSE CALL DO-WALK,P?OUT RSTACK .FUNCT IN-EXITABLE-VEHICLE?,AV LOC PROTAGONIST >AV EQUAL? AV,RAFT,BARGE,CAGE /?THN6 EQUAL? AV,TREE-HOLE \FALSE ?THN6: LOC PROTAGONIST CALL PERFORM,V?DISEMBARK,STACK RTRUE .FUNCT V-FEED CALL ULTIMATELY-IN?,CHOCOLATE ZERO? STACK /?ELS5 CALL PERFORM,V?GIVE,CHOCOLATE,PRSO RTRUE ?ELS5: PRINTI "You have no food for" CALL TRPRINT,PRSO RSTACK .FUNCT V-FILL FSET? PRSO,CONTBIT /?ELS11 EQUAL? PRSO,CREAM,STAIN \?ELS11 FSET? STAIN,MUNGBIT \?ELS5 ?ELS11: EQUAL? PRSI,WATER /?THN12 CALL GLOBAL-IN?,WATER,HERE ZERO? STACK /?ELS5 ?THN12: CALL WASTES RSTACK ?ELS5: ZERO? PRSI \?ELS15 PRINT THERES-NOTHING PRINTR "to fill it with." ?ELS15: CALL IMPOSSIBLES RSTACK .FUNCT V-FIND,WHERE=0,L LOC PRSO >L ZERO? L \?ELS5 CALL PRONOUN PRINTR " could be anywhere!" ?ELS5: IN? PRSO,PROTAGONIST \?ELS7 PRINTR "You have it!" ?ELS7: IN? PRSO,HERE \?ELS9 PRINTR "Right in front of you." ?ELS9: IN? PRSO,GLOBAL-OBJECTS /?THN12 CALL GLOBAL-IN?,PRSO,HERE ZERO? STACK \?THN12 EQUAL? PRSO,PSEUDO-OBJECT \?ELS11 ?THN12: CALL V-DECODE RSTACK ?ELS11: FSET? L,ACTORBIT \?ELS15 CALL VISIBLE?,L ZERO? STACK /?ELS15 PRINTI "Looks as if" CALL TPRINT,L PRINTR " has it." ?ELS15: FSET? L,CONTBIT \?ELS19 CALL VISIBLE?,PRSO ZERO? STACK /?ELS19 IN? L,GLOBAL-OBJECTS /?ELS19 FSET? L,SURFACEBIT \?ELS24 PRINTI "O" JUMP ?CND22 ?ELS24: FSET? L,VEHBIT \?ELS26 FSET? L,INBIT /?ELS26 PRINTI "O" JUMP ?CND22 ?ELS26: PRINTI "I" ?CND22: PRINTI "n" CALL TRPRINT,L RSTACK ?ELS19: ZERO? WHERE /?ELS32 PRINTR "Beats me." ?ELS32: CALL V-DECODE RSTACK .FUNCT V-FLUSH PRINTR "It's your brain that needs flushing." .FUNCT V-FOLLOW CALL VISIBLE?,PRSO ZERO? STACK /?ELS5 PRINTI "But" CALL TPRINT-PRSO PRINTR " is right here!" ?ELS5: FSET? PRSO,ACTORBIT /?ELS7 CALL IMPOSSIBLES RSTACK ?ELS7: PRINTI "You have no idea where" CALL TPRINT-PRSO PRINTR " is." .FUNCT I-FOLLOW SET 'FOLLOW-FLAG,FALSE-VALUE RFALSE .FUNCT PRE-FUCK GRTR? ION-DEATH-COUNTER,0 \FALSE PRINTR "Not tonight; you have a headache." .FUNCT V-FUCK ZERO? NAUGHTY-LEVEL \?ELS5 PRINTR "Shocking! What if your mother saw you typing inputs like that?" ?ELS5: FSET? PRSO,ACTORBIT /?ELS7 PRINTR "Not in my game, you pansexual pervert!" ?ELS7: EQUAL? NAUGHTY-LEVEL,1 \?ELS9 PRINTI "Unfortunately," CALL TPRINT-PRSO PRINTR " doesn't seem interested, and it takes two to tango." ?ELS9: PRINTI "A slap across the face alerts you that" CALL TPRINT-PRSO PRINTR " isn't that hot to trot. And not a goddam single cold shower in sight!" .FUNCT PRE-GIVE EQUAL? PRSA,V?GIVE \?ELS5 EQUAL? PRSO,HANDS \?ELS5 CALL PERFORM,V?SHAKE-WITH,PRSI RTRUE ?ELS5: CALL IDROP ZERO? STACK \TRUE RFALSE .FUNCT V-GET-DRESSED EQUAL? PRSO,ROOMS \?ELS5 PRINTR "You are!" ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-GET-DRUNK EQUAL? PRSO,ROOMS /?ELS5 CALL RECOGNIZE RSTACK ?ELS5: EQUAL? HERE,JOES-BAR \?ELS7 CALL PERFORM,V?BUY,BEER RTRUE ?ELS7: SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Here?" .FUNCT V-GET-UNDRESSED EQUAL? PRSO,ROOMS \?ELS5 CALL PERFORM,V?TAKE-OFF,GARMENT RTRUE ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-GIDDYAP IN? STALLION,HERE \?ELS5 CALL PERFORM,V?KICK,STALLION RTRUE ?ELS5: PRINT HUH RTRUE .FUNCT V-GIVE FSET? PRSI,ACTORBIT \?ELS5 PRINTI "Briskly," CALL TPRINT-PRSI PRINTR " refuses your offer." ?ELS5: PRINT YOU-CANT PRINTI "give" CALL APRINT,PRSO PRINTI " to" CALL APRINT,PRSI PRINTR "!" .FUNCT V-GIVE-UP EQUAL? PRSO,ROOMS \?ELS5 CALL V-QUIT RSTACK ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-HELLO ZERO? PRSO /?ELS5 PRINTR "[The proper way to talk to characters in the story is PERSON, HELLO.]" ?ELS5: CALL PERFORM,V?TELL,ME RTRUE .FUNCT V-HELP PRINTI "If you're in a bind, maps and hint booklets are available from your ""dealer,"" or via mail order with the form" CALL IN-PACKAGE CRLF RTRUE .FUNCT V-HIDE PRINT YOU-CANT PRINTI "hide " ZERO? PRSO /?CND1 PRINTI "t" ?CND1: PRINTR "here." .FUNCT V-HISS CALL VISIBLE?,FLYTRAP ZERO? STACK /?ELS5 FSET? FLYTRAP,MUNGBIT /?CND6 CALL INCREMENT-SCORE,2,15 ?CND6: CALL DEQUEUE,I-FLYTRAP REMOVE FLYTRAP PRINTI "The " PRINTD FLYTRAP PRINTR " assumes the hissing is a spray can of weed killer, dies of fright, and is immediately consumed by parasites who live inside flytraps waiting for just such an occasion." ?ELS5: PRINTR """Ssss.""" .FUNCT V-IN,VEHICLE CALL DO-WALK,P?IN RSTACK .FUNCT V-INFLATE CALL IMPOSSIBLES RSTACK .FUNCT V-INHALE ZERO? PRSO \?ELS5 PRINT OK RTRUE ?ELS5: EQUAL? PRSO,ROOMS \?ELS7 PRINTR "You begin to get light-headed." ?ELS7: CALL RECOGNIZE RSTACK .FUNCT V-KICK CALL HACK-HACK,STR?55 RSTACK .FUNCT V-KILL PRINTR "Relax." .FUNCT V-KISS PRINTR """Smack.""" .FUNCT V-KISS-ON CALL V-KISS RSTACK .FUNCT V-KNEEL EQUAL? P-PRSA-WORD,W?BOW \?ELS5 CALL SORE,STR?56 RSTACK ?ELS5: CALL PRE-POUR ZERO? STACK \FALSE CALL SORE,STR?57 RSTACK .FUNCT V-KNOCK FSET? PRSO,DOORBIT \?ELS5 PRINTR "Silence answers back." ?ELS5: CALL HACK-HACK,STR?58 RSTACK .FUNCT V-KWEEPA CALL IN-CATACOMBS ZERO? STACK /?CND1 CALL QUEUE,I-GATOR,12 ?CND1: PRINTR "A Martian hawk, hearing the cry of a possible mate, flies up and begins squawking and flapping a mating ritual. As it pauses to catch its breath, it takes a better look at you, rubs its eyes, and flies quickly away." .FUNCT V-LAND ZERO? PRSO \?ELS5 LOC PROTAGONIST EQUAL? STACK,RAFT,BARGE \?ELS5 LOC PROTAGONIST CALL PERFORM-PRSA,STACK RTRUE ?ELS5: PRINT HUH RTRUE .FUNCT V-LAUGH PRINTR """Tee hee.""" .FUNCT V-LAUNCH PRINTR "Your brain is out to launch." .FUNCT V-LEAP EQUAL? PRSO,ROOMS /?THN6 ZERO? PRSO \?ELS5 ?THN6: EQUAL? HERE,ROOF \?ELS12 CALL JIGS-UP,STR?59 RSTACK ?ELS12: EQUAL? HERE,CLOSET \?ELS14 PRINTR "You still can't reach the shelf." ?ELS14: EQUAL? HERE,ROCKY-CLIFFTOP,MINARET \?ELS16 CALL JIGS-UP,STR?60 RSTACK ?ELS16: CALL WEE RSTACK ?ELS5: ZERO? PRSO /?ELS20 IN? PRSO,HERE /?ELS20 CALL IMPOSSIBLES RSTACK ?ELS20: CALL WEE RSTACK .FUNCT V-LEAP-OFF FSET? PRSO,VEHBIT \?ELS5 CALL PERFORM,V?DISEMBARK,PRSO RTRUE ?ELS5: CALL PERFORM,V?LEAP,PRSO RTRUE .FUNCT V-LEAVE ZERO? PRSO \?CND1 SET 'PRSO,ROOMS ?CND1: EQUAL? PRSO,ROOMS \?ELS8 CALL DO-WALK,P?OUT RSTACK ?ELS8: IN? PROTAGONIST,PRSO \?ELS10 CALL PERFORM,V?DISEMBARK,PRSO RTRUE ?ELS10: CALL PERFORM,V?DROP,PRSO RTRUE .FUNCT V-LICK FSET? PRSO,ACTORBIT \?ELS5 CALL PERFORM,V?EAT,PRSO RTRUE ?ELS5: CALL PERFORM,V?TASTE,PRSO RTRUE .FUNCT V-LIE-DOWN EQUAL? HERE,BEDROOM \?CND1 EQUAL? PRSO,ROOMS \?CND1 SET 'PRSO,BED ?CND1: FSET? PRSO,VEHBIT /?THN11 FSET? PRSO,ACTORBIT \?ELS10 ?THN11: CALL PERFORM,V?BOARD,PRSO RTRUE ?ELS10: CALL WASTES RSTACK .FUNCT V-LIMBER PRINTR "Ahhh. Nothing like a little muscle-loosening." .FUNCT PRE-LISTEN FSET? EARS,MUNGBIT \FALSE ZERO? GONE-APE \FALSE PRINTI "You hear the sound of " EQUAL? EARS,HAND-COVER \?ELS10 PRINTI "sweating palms" JUMP ?CND8 ?ELS10: PRINTI "rustling cotton" ?CND8: PRINT PERIOD-CR RTRUE .FUNCT V-LISTEN ZERO? PRSO /?ELS5 CALL SENSE-OBJECT,STR?61 RSTACK ?ELS5: EQUAL? HERE,BOUDOIR \?ELS8 CALL NOT-ALONE-ON-DIVAN CRLF RTRUE ?ELS8: PRINTR "You hear nothing of interest." .FUNCT V-LOCK CALL YUKS RSTACK .FUNCT PRE-LOOK EQUAL? PRSA,V?EXAMINE \?ELS5 EQUAL? P-PRSA-WORD,W?DESCRIBE \?ELS5 EQUAL? PRSO,ODOR /FALSE ?ELS5: CALL PLAYER-CANT-SEE ZERO? STACK \TRUE RFALSE .FUNCT V-LOOK EQUAL? HAND-COVER,EYES \?ELS5 CALL UNIFORMLY-COLORED,STR?62,STR?63 RSTACK ?ELS5: FSET? EYES,MUNGBIT \?ELS7 CALL UNIFORMLY-COLORED,STR?64,STR?65 RSTACK ?ELS7: CALL DESCRIBE-ROOM,TRUE-VALUE ZERO? STACK /TRUE CALL DESCRIBE-OBJECTS RTRUE .FUNCT UNIFORMLY-COLORED,ROOM-NAME,STRING PRINT ROOM-NAME PRINTI " Room This location is dim and uniformly colored, resembling what you see when you have your " PRINT STRING PRINTI ". In fact, you have your " PRINT STRING PRINT PERIOD-CR 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 \?ELS5 CALL PERFORM,V?EXAMINE,GROUND RTRUE ?ELS5: CALL PERFORM,V?LOOK-INSIDE,PRSO RTRUE .FUNCT V-LOOK-INSIDE FSET? PRSO,ACTORBIT \?ELS5 PRINT IT-SEEMS-THAT CALL TPRINT-PRSO PRINTI " has" CALL DESCRIBE-NOTHING ZERO? STACK \TRUE PRINT PERIOD-CR RTRUE ?ELS5: IN? PROTAGONIST,PRSO \?ELS10 CALL DESCRIBE-VEHICLE RSTACK ?ELS10: FSET? PRSO,SURFACEBIT \?ELS12 PRINT YOU-SEE CALL DESCRIBE-NOTHING ZERO? STACK \TRUE PRINTI " on" CALL TRPRINT,PRSO RTRUE ?ELS12: FSET? PRSO,DOORBIT \?ELS17 PRINTI "All you can tell is that" CALL TPRINT-PRSO PRINTI " is " CALL OPEN-CLOSED,PRSO PRINT PERIOD-CR RTRUE ?ELS17: FSET? PRSO,CONTBIT \?ELS19 CALL SEE-INSIDE?,PRSO ZERO? STACK /?ELS24 PRINT YOU-SEE CALL DESCRIBE-NOTHING ZERO? STACK \TRUE PRINTI " in" CALL TRPRINT,PRSO RTRUE ?ELS24: FSET? PRSO,OPENBIT /?ELS29 FIRST? PRSO \?ELS29 CALL PRE-TOUCH ZERO? STACK \TRUE CALL PERFORM,V?OPEN,PRSO RTRUE ?ELS29: CALL DO-FIRST,STR?66,PRSO RSTACK ?ELS19: GET P-ITBL,P-PREP1 EQUAL? STACK,PR?IN \?ELS38 CALL CANT-VERB-A-PRSO,STR?67 RSTACK ?ELS38: PRINTI "Even Superman would have trouble seeing through" CALL ARPRINT,PRSO RSTACK .FUNCT V-LOOK-OVER CALL V-EXAMINE RSTACK .FUNCT V-LOOK-UNDER CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS5 FSET? PRSO,WORNBIT \?ELS10 PRINTR "You're wearing it!" ?ELS10: PRINT HOLDING-IT RTRUE ?ELS5: CALL NOTHING-INTERESTING PRINTI "under" CALL TRPRINT,PRSO RSTACK .FUNCT V-LOOK-UP EQUAL? PRSO,ROOMS \?ELS5 EQUAL? HERE,WELL-BOTTOM \?ELS10 PRINT YOU-SEE PRINTR " a dot of light." ?ELS10: CALL IN-CATACOMBS ZERO? STACK /?ELS12 PRINT ONLY-BLACKNESS RTRUE ?ELS12: FSET? HERE,INDOORSBIT \?ELS14 CALL PERFORM,V?EXAMINE,CEILING RTRUE ?ELS14: PRINTR "The sky is an inky black." ?ELS5: CALL PERFORM,V?LOOK-INSIDE,PRSO RTRUE .FUNCT V-LOVE PRINTI "Not difficult, considering how lovable" CALL TPRINT-PRSO PRINTI " " FSET? PRSO,PLURALBIT \?ELS3 PRINTI "are" JUMP ?CND1 ?ELS3: PRINTI "is" ?CND1: PRINT PERIOD-CR RTRUE .FUNCT V-LOWER CALL V-RAISE RSTACK .FUNCT V-MAKE CALL CANT-VERB-A-PRSO,STR?68 RSTACK .FUNCT V-MAKE-LOVE EQUAL? PRSO,LOVE \?ELS5 CALL PERFORM,V?FUCK,PRSI RTRUE ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-MAKE-OUT,KISSEE EQUAL? PRSO,ROOMS /?ELS3 SET 'KISSEE,PRSO JUMP ?CND1 ?ELS3: CALL FIND-IN,HERE,ACTORBIT,STR?52 >KISSEE ZERO? KISSEE \?CND1 SET 'KISSEE,ME ?CND1: CALL PERFORM,V?KISS,KISSEE RTRUE .FUNCT V-MAKE-WITH CALL V-MAKE RSTACK .FUNCT V-MARRY PRINTI "I doubt that" CALL TPRINT-PRSO PRINTR " is the marrying type." .FUNCT V-MASTURBATE ZERO? PRSO /?ELS5 EQUAL? PRSO,ROOMS /?ELS5 CALL RECOGNIZE RSTACK ?ELS5: ZERO? NAUGHTY-LEVEL \?ELS9 SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Don't you know that this causes blindness?" ?ELS9: CALL PERFORM,V?FUCK,ME RTRUE .FUNCT V-MEASURE FSET? PRSO,PARTBIT /?THN6 EQUAL? PRSO,ME \?ELS5 ?THN6: PRINTR "Usual size." ?ELS5: PRINTI "The same size as any other " CALL DPRINT,PRSO PRINT PERIOD-CR RTRUE .FUNCT V-MOAN PRINTR """Ohhhh...""" .FUNCT V-MOVE CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS5 CALL WASTES RSTACK ?ELS5: CALL LOC-CLOSED ZERO? STACK \TRUE FSET? PRSO,TAKEBIT \?ELS9 PRINTI "Moving" CALL TPRINT-PRSO PRINTR " reveals nothing." ?ELS9: EQUAL? P-PRSA-WORD,W?PULL \?ELS11 CALL HACK-HACK,STR?69 RSTACK ?ELS11: CALL CANT-VERB-A-PRSO,STR?70 RSTACK .FUNCT V-MUNG EQUAL? PRSO,ROOMS \?ELS5 IN? PROTAGONIST,CAGE \?ELS10 CALL PERFORM-PRSA,CAGE RTRUE ?ELS10: PRINTR "Argh! Pimples!" ?ELS5: CALL HACK-HACK,STR?71 RSTACK .FUNCT V-NO EQUAL? AWAITING-REPLY,1 \?ELS5 PRINTI """Too bad."" " CALL RIDDLE-DEATH RSTACK ?ELS5: EQUAL? AWAITING-REPLY,2 \?ELS7 CALL V-YES RSTACK ?ELS7: CALL YOU-SOUND,STR?72 RSTACK .FUNCT NO-WORD,WRD EQUAL? WRD,W?NO,W?NOPE /TRUE EQUAL? WRD,W?NAH,W?UH-UH \FALSE RTRUE .FUNCT V-OFF FSET? PRSO,LIGHTBIT \?ELS5 FSET? PRSO,ONBIT \?ELS10 FCLEAR PRSO,ONBIT PRINTI "Okay," CALL TPRINT-PRSO PRINTI " is now off." CRLF CALL NOW-DARK? RSTACK ?ELS10: PRINTR "It isn't on!" ?ELS5: CALL CANT-TURN,STR?73 RSTACK .FUNCT V-ON FSET? PRSO,ACTORBIT \?ELS5 PRINTR "Hopefully, your sexy body will do the trick." ?ELS5: FSET? PRSO,LIGHTBIT \?ELS7 FSET? PRSO,ONBIT \?ELS12 PRINT ALREADY-IS RTRUE ?ELS12: FSET PRSO,ONBIT PRINTI "Okay," CALL TPRINT-PRSO PRINTI " is now on." CRLF CALL NOW-LIT? RSTACK ?ELS7: CALL CANT-TURN,STR?74 RSTACK .FUNCT CANT-TURN,STRING PRINT YOU-CANT PRINTI "turn that o" PRINT STRING PRINT PERIOD-CR RTRUE .FUNCT V-OPEN FSET? PRSO,SURFACEBIT /?THN6 FSET? PRSO,ACTORBIT /?THN6 FSET? PRSO,VEHBIT \?ELS5 ?THN6: CALL IMPOSSIBLES RSTACK ?ELS5: FSET? PRSO,OPENBIT \?ELS9 PRINT ALREADY-IS RTRUE ?ELS9: FSET? PRSO,DOORBIT \?ELS11 FSET? PRSO,LOCKEDBIT \?ELS16 PRINTR "It's locked. Very locked." ?ELS16: FSET PRSO,OPENBIT FSET PRSO,TOUCHBIT PRINTI "The " CALL DPRINT,PRSO PRINTR " swings open." ?ELS11: FSET? PRSO,CONTBIT \?ELS20 FSET PRSO,OPENBIT FSET PRSO,TOUCHBIT FIRST? PRSO \?THN26 FSET? PRSO,TRANSBIT \?ELS25 ?THN26: PRINTR "Opened." ?ELS25: PRINTI "Opening" CALL TPRINT-PRSO PRINTI " reveals" CALL DESCRIBE-NOTHING ZERO? STACK \?CND30 PRINT PERIOD-CR ?CND30: CALL NOW-LIT? RSTACK ?ELS20: CALL CANT-VERB-A-PRSO,STR?66 RSTACK .FUNCT V-PASS PRINT YOULL-HAVE-TO PRINTR "say who you want to pass it to." .FUNCT V-PAY CALL ULTIMATELY-IN?,ONE-MARSMID-COIN ZERO? STACK /?ELS5 CALL PERFORM,V?GIVE,ONE-MARSMID-COIN,PRSO RTRUE ?ELS5: CALL ULTIMATELY-IN?,TEN-MARSMID-COIN ZERO? STACK /?ELS7 CALL PERFORM,V?GIVE,TEN-MARSMID-COIN,PRSO RTRUE ?ELS7: PRINTR "You have no money!" .FUNCT V-PEE CALL RUNNING?,I-URGE ZERO? STACK /?ELS5 EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS10 CALL DEQUEUE,I-URGE CALL QUEUE,I-KIDNAPPING,5 IN? PROTAGONIST,STOOL \?CND11 MOVE PROTAGONIST,HERE PRINTI "[getting off the stool first]" CRLF ?CND11: PRINTI "Ahhh..." CALL NOTICE-PIZZA-ODOR RSTACK ?ELS10: SET 'AWAITING-REPLY,3 CALL QUEUE,I-REPLY,2 PRINTR "What, on the floor?" ?ELS5: CALL V-SHIT,TRUE-VALUE RSTACK .FUNCT V-PEE-IN PRINTR "Miss Manners would be shocked." .FUNCT V-PHONE EQUAL? HERE,VIZICOMM-BOOTH \?ELS5 CALL V-CALL RSTACK ?ELS5: PRINT YOU-CANT-SEE-ANY PRINTR "phone here!" .FUNCT V-PICK CALL CANT-VERB-A-PRSO,STR?75 RSTACK .FUNCT V-PICK-UP CALL PERFORM,V?TAKE,PRSO,PRSI RTRUE .FUNCT V-PIN ZERO? PRSI /?ELS5 PRINT HUH RTRUE ?ELS5: CALL VISIBLE?,CLOTHES-PIN ZERO? STACK /?ELS8 CALL PERFORM,V?PUT-ON,CLOTHES-PIN,PRSO RTRUE ?ELS8: PRINTR "You have no pin." .FUNCT V-POINT PRINTR "That would be pointless." .FUNCT PRE-POUR CALL IN-SPACE? ZERO? STACK /FALSE PRINTR "There's no gravity!" .FUNCT V-POUR CALL IMPOSSIBLES RSTACK .FUNCT V-PUSH CALL HACK-HACK,STR?76 RSTACK .FUNCT V-PUSH-DIR EQUAL? PRSI,INTDIR \?ELS5 CALL V-PUSH RSTACK ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-PUSH-OFF EQUAL? PRSO,RAFT,DOCK-OBJECT,ROOMS /?THN8 EQUAL? PRSO,BARGE \?ELS5 ?THN8: IN? PROTAGONIST,HERE /?ELS5 LOC PROTAGONIST CALL PERFORM,V?LAUNCH,STACK RTRUE ?ELS5: PRINT HUH RTRUE .FUNCT PRE-PUT EQUAL? PRSO,CUNT,TITS,COCK /FALSE EQUAL? PRSI,GROUND \?ELS7 CALL NOUN-USED,W?STAIN,STAIN ZERO? STACK \FALSE EQUAL? PRSO,CREAM \?CND8 GET P-NAMW,0 EQUAL? STACK,W?JAR \FALSE ?CND8: CALL PERFORM,V?DROP,PRSO RTRUE ?ELS7: EQUAL? PRSO,HANDS \?ELS16 EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS21 FSET? PRSI,PARTBIT /FALSE ?ELS21: EQUAL? PRSA,V?PUT \?ELS25 CALL PERFORM,V?REACH-IN,PRSI RTRUE ?ELS25: CALL IMPOSSIBLES RSTACK ?ELS16: FSET? PRSI,PARTBIT /?ELS29 CALL PLAYER-CANT-SEE ZERO? STACK \TRUE ?ELS29: CALL ULTIMATELY-IN?,PRSI,PRSO ZERO? STACK /?ELS33 EQUAL? PRSO,BABY \?ELS38 EQUAL? PRSI,BLANKET \?ELS38 PRINT ALREADY-IS RTRUE ?ELS38: PRINT YOU-CANT PRINTI "put" CALL TPRINT-PRSO GET P-ITBL,P-PREP2 EQUAL? STACK,PR?ON \?ELS45 PRINTI " on" JUMP ?CND43 ?ELS45: PRINTI " in" ?CND43: CALL TPRINT-PRSI PRINTI " when" CALL TPRINT-PRSI PRINTI " is already " FSET? PRSO,SURFACEBIT \?ELS50 PRINTI "on" JUMP ?CND48 ?ELS50: PRINTI "in" ?CND48: CALL TPRINT-PRSO PRINTR "!" ?ELS33: EQUAL? PRSA,V?PUT-ON \?ELS54 EQUAL? PRSO,SOD \?ELS54 EQUAL? PRSI,HOLE /FALSE ?ELS54: CALL UNTOUCHABLE?,PRSI ZERO? STACK /?ELS58 CALL CANT-REACH,PRSI RSTACK ?ELS58: CALL IDROP ZERO? STACK \TRUE RFALSE .FUNCT V-PUT,?TMP1 FSET? PRSI,OPENBIT /?ELS5 FSET? PRSI,CONTBIT /?ELS5 FSET? PRSI,SURFACEBIT /?ELS5 FSET? PRSI,VEHBIT /?ELS5 PRINT YOU-CANT PRINTI "put" CALL TPRINT-PRSO PRINTI " in" CALL APRINT,PRSI PRINTR "!" ?ELS5: EQUAL? PRSI,PRSO /?THN10 CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS9 FSET? PRSO,TAKEBIT /?ELS9 ?THN10: PRINTR "How can you do that?" ?ELS9: FSET? PRSI,DOORBIT \?ELS15 PRINT CANT-FROM-HERE RTRUE ?ELS15: FSET? PRSI,OPENBIT /?ELS17 FSET? PRSI,SURFACEBIT /?ELS17 CALL THIS-IS-IT,PRSI CALL DO-FIRST,STR?66,PRSI RSTACK ?ELS17: IN? PRSO,PRSI \?ELS21 PRINTI "But" CALL TPRINT-PRSO PRINTI " is already in" CALL TRPRINT,PRSI RSTACK ?ELS21: FSET? PRSI,ACTORBIT /?THN24 EQUAL? PRSI,BABY,STALLION \?ELS23 ?THN24: PRINT HUH RTRUE ?ELS23: CALL WEIGHT,PRSI >?TMP1 CALL WEIGHT,PRSO ADD ?TMP1,STACK >?TMP1 GETP PRSI,P?SIZE SUB ?TMP1,STACK >?TMP1 GETP PRSI,P?CAPACITY GRTR? ?TMP1,STACK \?ELS27 CALL ULTIMATELY-IN?,PRSO,PRSI ZERO? STACK \?ELS27 PRINTI "There's no room " FSET? PRSI,SURFACEBIT \?ELS32 PRINTI "on" JUMP ?CND30 ?ELS32: PRINTI "in" ?CND30: CALL TPRINT-PRSI PRINTI " for" CALL TRPRINT,PRSO RSTACK ?ELS27: CALL ULTIMATELY-IN?,PRSO ZERO? STACK \?ELS36 CALL ITAKE EQUAL? STACK,M-FATAL,FALSE-VALUE /TRUE ?ELS36: EQUAL? PRSO,TORCH /?THN43 CALL ULTIMATELY-IN?,TORCH,PRSO ZERO? STACK /?ELS40 ?THN43: FSET? TORCH,ONBIT \?ELS40 EQUAL? PRSI,SACK,BASKET \?ELS40 CALL DO-FIRST,STR?77,TORCH RSTACK ?ELS40: IN? PRSI,ODD-MACHINE \?ELS46 PRINT ONLY-ONE-THING-IN-COMPARTMENT RTRUE ?ELS46: MOVE PRSO,PRSI FSET PRSO,TOUCHBIT PRINTR "Done." .FUNCT V-PUT-AGAINST CALL WASTES RSTACK .FUNCT V-PUT-BEHIND CALL WASTES RSTACK .FUNCT V-PUT-NEAR CALL WASTES RSTACK .FUNCT V-PUT-ON EQUAL? PRSI,ME \?ELS5 CALL PERFORM,V?WEAR,PRSO RTRUE ?ELS5: FSET? PRSI,SURFACEBIT \?ELS7 CALL V-PUT RSTACK ?ELS7: PRINTI "There's no good surface on" CALL TRPRINT,PRSI RSTACK .FUNCT V-PUT-THROUGH FSET? PRSI,DOORBIT \?ELS5 FSET? PRSI,OPENBIT \?ELS10 CALL V-THROW RSTACK ?ELS10: CALL DO-FIRST,STR?66,PRSI RSTACK ?ELS5: LOC PROTAGONIST EQUAL? PRSI,STACK \?ELS14 EQUAL? P-PRSA-WORD,W?THROW,W?TOSS,W?HURL \?ELS14 SET 'PRSI,FALSE-VALUE CALL V-THROW RSTACK ?ELS14: CALL IMPOSSIBLES RSTACK .FUNCT V-PUT-TO CALL RECOGNIZE RSTACK .FUNCT V-PUT-UNDER CALL WASTES RSTACK .FUNCT V-RAISE CALL HACK-HACK,STR?78 RSTACK .FUNCT PRE-RAKE CALL ULTIMATELY-IN?,RAKE ZERO? STACK \FALSE PRINT ONLY-WITH-A-RAKE RTRUE .FUNCT V-RAKE ZERO? PRSI \?CND1 SET 'PRSI,RAKE ?CND1: EQUAL? PRSI,RAKE \?ELS8 PRINTR "You'll never make it as a gardener." ?ELS8: PRINT ONLY-WITH-A-RAKE RTRUE .FUNCT V-RAPE PRINTR "Unacceptably ungallant behavior." .FUNCT V-REACH-IN,OBJ FIRST? PRSO >OBJ /?KLU16 ?KLU16: FSET? PRSO,ACTORBIT /?THN6 FSET? PRSO,SURFACEBIT /?THN6 FSET? PRSO,CONTBIT /?ELS5 ?THN6: CALL YUKS RSTACK ?ELS5: FSET? PRSO,OPENBIT /?ELS9 CALL DO-FIRST,STR?66,PRSO RSTACK ?ELS9: ZERO? OBJ /?THN12 FSET? OBJ,INVISIBLE /?THN12 FSET? OBJ,TAKEBIT /?ELS11 ?THN12: PRINT THERES-NOTHING PRINTI "in" CALL TRPRINT,PRSO RSTACK ?ELS11: PRINTI "You feel something inside" CALL TRPRINT,PRSO RSTACK .FUNCT V-READ FSET? PRSO,READBIT \?ELS5 GETP PRSO,P?TEXT PRINT STACK CRLF RTRUE ?ELS5: CALL CANT-VERB-A-PRSO,STR?79 RSTACK .FUNCT V-RELIEVE PRINT HUH RTRUE .FUNCT V-REMOVE FSET? PRSO,WEARBIT \?ELS5 CALL PERFORM,V?TAKE-OFF,PRSO RTRUE ?ELS5: EQUAL? PRSO,HANDS \?ELS7 ZERO? HAND-COVER /?ELS7 CALL PERFORM,V?UNCOVER,HAND-COVER RTRUE ?ELS7: EQUAL? PRSO,HANDS \?ELS11 ZERO? RAFT-HELD /?ELS11 CALL PERFORM,V?DROP,RAFT RTRUE ?ELS11: CALL PERFORM,V?TAKE,PRSO RTRUE .FUNCT V-RETURN,ACTOR ZERO? PRSI \?ELS5 CALL FIND-IN,HERE,ACTORBIT,STR?80 >ACTOR ZERO? ACTOR /?ELS10 CALL PERFORM,V?GIVE,PRSO,ACTOR RTRUE ?ELS10: CALL NO-ONE-HERE,STR?81 RSTACK ?ELS5: FSET? PRSI,ACTORBIT \?ELS14 CALL PERFORM,V?GIVE,PRSO,PRSI RTRUE ?ELS14: CALL PERFORM,V?PUT,PRSO,PRSI RTRUE .FUNCT V-RIP EQUAL? PRSO,MATCHBOOK,CODED-MESSAGE,SCRAP-OF-PAPER /?THN6 EQUAL? PRSO,MAP \?ELS5 ?THN6: CALL WASTES RSTACK ?ELS5: PRINTR "Unrippable." .FUNCT V-ROLL PRINTI "A rolling " CALL DPRINT,PRSO PRINTR " gathers no moss." .FUNCT V-RUB CALL PERFORM,V?TOUCH,PRSI,PRSO RTRUE .FUNCT V-SAVE-SOMETHING PRINTI "Sorry, but" CALL TPRINT-PRSO PRINTR " is beyond help." .FUNCT V-SAY,V ZERO? AWAITING-REPLY /?ELS5 GET P-LEXV,P-CONT CALL YES-WORD,STACK ZERO? STACK /?ELS5 CALL V-YES CALL STOP RSTACK ?ELS5: ZERO? AWAITING-REPLY /?ELS9 GET P-LEXV,P-CONT CALL NO-WORD,STACK ZERO? STACK /?ELS9 CALL V-NO CALL STOP RSTACK ?ELS9: CALL RUNNING?,I-SNEEZE ZERO? STACK /?ELS13 CALL RIDDLE-ANSWER RSTACK ?ELS13: IN? HAREM-GUARD,HERE \?ELS15 CALL PICK-WIFE RSTACK ?ELS15: GET P-LEXV,P-CONT EQUAL? STACK,W?KWEEPA \?ELS17 CALL V-KWEEPA CALL STOP RSTACK ?ELS17: GET P-LEXV,P-CONT EQUAL? STACK,W?GIDDAP,W?GIDDYAP \?ELS19 IN? STALLION,HERE \?ELS19 CALL V-GIDDYAP CALL STOP RSTACK ?ELS19: CALL VISIBLE?,BEM ZERO? STACK \?THN26 CALL VISIBLE?,FLYTRAP ZERO? STACK /?ELS23 ?THN26: GET P-LEXV,P-CONT EQUAL? STACK,W?SCAT,W?BOO /?THN28 GET P-LEXV,P-CONT EQUAL? STACK,W?SCRAM,W?SHOO \?ELS23 ?THN28: CALL V-SCAT CALL STOP RSTACK ?ELS23: CALL FIND-IN,HERE,ACTORBIT >V ZERO? V /?ELS31 PRINTI "You must address" CALL TPRINT,V PRINTI " directly." CRLF CALL STOP RSTACK ?ELS31: CALL PERFORM,V?TELL,ME CALL STOP RSTACK .FUNCT V-SCAT,SCATEE=0 CALL VISIBLE?,FLYTRAP ZERO? STACK /?ELS3 SET 'SCATEE,FLYTRAP JUMP ?CND1 ?ELS3: CALL VISIBLE?,BEM ZERO? STACK /?CND1 SET 'SCATEE,BEM ?CND1: ZERO? SCATEE /?ELS10 PRINTI "A weak attempt to scare away" CALL ARPRINT,SCATEE RSTACK ?ELS10: SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR """Scat"" to you too!" .FUNCT V-SCORE,ACTOR ZERO? PRSO /?ELS5 CALL PERFORM,V?FUCK,PRSO RTRUE ?ELS5: ZERO? NAUGHTY-LEVEL \?ELS8 CALL V-STATUS RSTACK ?ELS8: LOC PROTAGONIST CALL FIND-IN,STACK,ACTORBIT,STR?52 >ACTOR ZERO? ACTOR /?ELS10 CALL PERFORM,V?FUCK,ACTOR RTRUE ?ELS10: CALL NO-ONE-HERE,STR?82 RSTACK .FUNCT V-SEARCH FSET? PRSO,ACTORBIT \?ELS5 CALL V-SHAKE RSTACK ?ELS5: IN? PROTAGONIST,PRSO \?ELS7 CALL DESCRIBE-VEHICLE RSTACK ?ELS7: FSET? PRSO,CONTBIT \?ELS9 FSET? PRSO,OPENBIT /?ELS9 CALL DO-FIRST,STR?66,PRSO RSTACK ?ELS9: FSET? PRSO,CONTBIT \?ELS13 PRINTI "You find" CALL DESCRIBE-NOTHING ZERO? STACK \TRUE PRINT PERIOD-CR RTRUE ?ELS13: CALL CANT-VERB-A-PRSO,STR?83 RSTACK .FUNCT V-SET EQUAL? PRSO,ROOMS \?ELS5 CALL WEE RSTACK ?ELS5: EQUAL? PRSO,INTDIR \?ELS7 LOC PROTAGONIST EQUAL? STACK,BARGE,RAFT \?ELS7 LOC PROTAGONIST CALL PERFORM-PRSA,STACK,INTNUM RTRUE ?ELS7: ZERO? PRSI \?ELS11 FSET? PRSO,TAKEBIT \?ELS16 CALL HACK-HACK,STR?84 RSTACK ?ELS16: PRINT YNH CALL TRPRINT,PRSO RSTACK ?ELS11: CALL IMPOSSIBLES RSTACK .FUNCT V-SGIVE CALL PERFORM,V?GIVE,PRSI,PRSO RTRUE .FUNCT V-SHAKE FSET? PRSO,ACTORBIT \?ELS5 PRINTR "That wouldn't be polite." ?ELS5: CALL HACK-HACK,STR?85 RSTACK .FUNCT V-SHAKE-WITH EQUAL? PRSO,HANDS /?ELS5 CALL RECOGNIZE RSTACK ?ELS5: FSET? PRSI,ACTORBIT /?ELS7 PRINTI "I don't think" CALL TPRINT-PRSI PRINTR " even has hands." ?ELS7: CALL PERFORM,V?THANK,PRSI RTRUE .FUNCT V-SHIT,NUMBER-ONE=0 PRINTI "You don't have to go " ZERO? NUMBER-ONE /?ELS3 PRINTI "wee-wee" JUMP ?CND1 ?ELS3: PRINTI "poo-poo" ?CND1: PRINTR " at the moment." .FUNCT V-SHOW PRINTI "It doesn't look like" CALL TPRINT-PRSI PRINTR " is interested." .FUNCT V-SHUT-UP EQUAL? PRSO,ROOMS \?ELS5 PRINTR "[I hope you're not addressing me...]" ?ELS5: CALL PERFORM,V?CLOSE,PRSO RTRUE .FUNCT V-SIGH PRINTR """Ahhhh...""" .FUNCT V-SINK CALL IMPOSSIBLES RSTACK .FUNCT V-SIT,VEHICLE CALL FIND-IN,HERE,VEHBIT >VEHICLE ZERO? VEHICLE /?ELS5 CALL PERFORM,V?BOARD,VEHICLE RTRUE ?ELS5: CALL WASTES RSTACK .FUNCT V-SKIP CALL IN-CATACOMBS ZERO? STACK /?ELS5 IN? PROTAGONIST,HERE \?ELS5 CALL QUEUE,I-CRABS,10 PRINTR "Splash." ?ELS5: CALL WEE RSTACK .FUNCT V-SLEEP PRINTR "You're not tired." .FUNCT PRE-SMELL FSET? NOSE,MUNGBIT \FALSE ZERO? GONE-APE \FALSE PRINT YOU-CANT PRINTI "smell a thing with " PRINTD NOSE PRINTR " blocked." .FUNCT V-SMELL ZERO? PRSO \?ELS5 CALL PERFORM-PRSA,ODOR RTRUE ?ELS5: CALL SENSE-OBJECT,STR?86 RSTACK .FUNCT SENSE-OBJECT,STRING CALL PRONOUN PRINTI " " PRINT STRING FSET? PRSO,PLURALBIT /?CND1 EQUAL? PRSO,ME /?CND1 PRINTI "s" ?CND1: PRINTI " just like" CALL ARPRINT,PRSO RSTACK .FUNCT V-SPUT-ON CALL PERFORM,V?PUT-ON,PRSI,PRSO RTRUE .FUNCT V-SRUB CALL PERFORM,V?RUB,PRSI,PRSO RTRUE .FUNCT V-SSHOW CALL PERFORM,V?SHOW,PRSI,PRSO RTRUE .FUNCT V-STAIN ZERO? PRSI \?ELS5 CALL ULTIMATELY-IN?,STAIN ZERO? STACK /?ELS10 FSET? STAIN,UNTEEDBIT /?ELS10 CALL APPLY-STAIN,PRSO RSTACK ?ELS10: PRINTR "You have no stain." ?ELS5: EQUAL? PRSI,STAIN \?ELS16 CALL APPLY-STAIN,PRSO RSTACK ?ELS16: CALL IMPOSSIBLES RSTACK .FUNCT V-STAND EQUAL? P-PRSA-WORD,W?HOLD \?ELS5 CALL WASTES RSTACK ?ELS5: EQUAL? P-PRSA-WORD,W?GET \?ELS7 EQUAL? PRSO,ROOMS \?ELS7 EQUAL? HERE,INNER-HAREM,BOUDOIR \?ELS7 EQUAL? NAUGHTY-LEVEL,2 \?ELS7 ZERO? MALE /?ELS7 PRINTR "You're already quite hard." ?ELS7: LOC PROTAGONIST FSET? STACK,VEHBIT \?ELS11 LOC PROTAGONIST EQUAL? STACK,TREE-HOLE,CAGE /?ELS11 LOC PROTAGONIST CALL PERFORM,V?DISEMBARK,STACK RTRUE ?ELS11: ZERO? PRSO /?ELS15 FSET? PRSO,TAKEBIT \?ELS15 CALL WASTES RSTACK ?ELS15: EQUAL? HERE,INNER-HAREM \?ELS19 ZERO? NAUGHTY-LEVEL /?ELS19 CALL DPRINT,SULTANS-WIFE PRINTR " tugs you back down." ?ELS19: PRINTR "You're already standing." .FUNCT V-STAND-ON EQUAL? PRSO,STOOL \?ELS5 CALL PERFORM,V?BOARD,STOOL RTRUE ?ELS5: CALL WASTES RSTACK .FUNCT V-STELL CALL PERFORM,V?TELL,PRSI RTRUE .FUNCT V-STHROW CALL PERFORM,V?THROW-TO,PRSI,PRSO RTRUE .FUNCT V-SUCK FSET? PRSO,ACTORBIT /?THN6 ZERO? NAUGHTY-LEVEL \?ELS5 ?THN6: CALL PERFORM,V?EAT,PRSO RTRUE ?ELS5: SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Done. Some turn-on, huh?" .FUNCT V-SUCKLE CALL IMPOSSIBLES RSTACK .FUNCT V-SWIM EQUAL? PRSO,WATER /?THN4 ZERO? PRSO \?ELS3 CALL GLOBAL-IN?,WATER,HERE ZERO? STACK /?ELS3 ?THN4: PRINTI "This is no time for" JUMP ?CND1 ?ELS3: PRINTI "Your head must be" ?CND1: PRINTR " swimming." .FUNCT V-SWING ZERO? PRSI /?ELS5 CALL PERFORM,V?KILL,PRSI,PRSO RTRUE ?ELS5: PRINTR """Whoosh.""" .FUNCT V-SWRAP CALL PERFORM,V?WRAP,PRSI,PRSO RTRUE .FUNCT PRE-TAKE EQUAL? PRSO,HANDS \?ELS5 ZERO? PRSI /?ELS5 EQUAL? PRSI,HAND-COVER \?ELS5 CALL PERFORM,V?UNCOVER,HAND-COVER RTRUE ?ELS5: EQUAL? PRSO,CLOTHES-PIN \?ELS13 EQUAL? PRSI,NOSE \?ELS13 FSET? CLOTHES-PIN,WORNBIT /?THN10 ?ELS13: EQUAL? PRSO,COTTON-BALLS \?ELS15 EQUAL? PRSI,EARS \?ELS15 FSET? COTTON-BALLS,WORNBIT /?THN10 ?ELS15: EQUAL? PRSO,LIP-BALM \?ELS9 EQUAL? PRSI,MOUTH \?ELS9 FSET? LIP-BALM,WORNBIT \?ELS9 ?THN10: CALL PERFORM,V?REMOVE,PRSO RTRUE ?ELS9: FSET? PRSO,PARTBIT /?ELS19 CALL PLAYER-CANT-SEE ZERO? STACK \TRUE ?ELS19: CALL LOC-CLOSED ZERO? STACK \TRUE IN? PROTAGONIST,PRSO \?ELS25 PRINTI "You're " FSET? PRSO,INBIT \?ELS28 PRINTI "i" JUMP ?CND26 ?ELS28: PRINTI "o" ?CND26: PRINTR "n it!" ?ELS25: IN? PRSO,PROTAGONIST /?THN33 CALL ULTIMATELY-IN?,PRSO ZERO? STACK /?ELS32 FSET? PRSO,TAKEBIT /?ELS32 ?THN33: EQUAL? PRSO,COMIC-BOOK \?ELS39 EQUAL? PRSI,POCKET /FALSE ?ELS39: FSET? PRSO,WORNBIT \?ELS43 PRINTI "You're already wearing" JUMP ?CND37 ?ELS43: PRINTI "You already have" ?CND37: CALL TPRINT-PRSO PRINT PERIOD-CR RTRUE ?ELS32: ZERO? HAND-COVER /?ELS47 EQUAL? PRSO,NOSE,EARS,EYES /?ELS47 PRINT YOU-CANT PRINTI "pick up anything while using " PRINTD HANDS PRINTI "s to cover" CALL TRPRINT,HAND-COVER RSTACK ?ELS47: IN? PRSO,TREE-HOLE \?ELS51 IN? FLYTRAP,TREE-HOLE \?ELS51 CALL PERFORM,V?REACH-IN,TREE-HOLE RTRUE ?ELS51: ZERO? PRSI /FALSE IN? PRSO,PRSI /FALSE EQUAL? PRSO,ME \?ELS59 CALL PERFORM,V?DROP,PRSI RTRUE ?ELS59: EQUAL? PRSO,SHEET \?ELS61 EQUAL? PRSI,WINDOW \?ELS61 ZERO? SHEET-HANGING /?ELS61 CALL PERFORM,V?MOVE,SHEET RTRUE ?ELS61: EQUAL? PRSO,SHEET \?ELS65 EQUAL? PRSI,BED \?ELS65 FSET? SHEET,TOUCHBIT \FALSE ?ELS65: EQUAL? PRSO,BLANKET,BABY \?ELS69 EQUAL? PRSI,BLANKET,BABY \?ELS69 IN? BLANKET,BABY \?ELS69 CALL PERFORM,V?REMOVE,BABY RTRUE ?ELS69: EQUAL? PRSO,BLANKET \?ELS73 EQUAL? PRSI,BABY \?ELS73 IN? BLANKET,BABY /FALSE ?ELS73: IN? PRSO,PRSI /?ELS77 CALL NOT-IN RSTACK ?ELS77: SET 'PRSI,FALSE-VALUE RFALSE .FUNCT V-TAKE CALL ITAKE EQUAL? STACK,TRUE-VALUE \FALSE EQUAL? PRSO,COTTON-BALLS \?ELS8 FSET? COTTON-BALLS,WORNBIT \?ELS8 FCLEAR COTTON-BALLS,WORNBIT FCLEAR EARS,MUNGBIT JUMP ?CND6 ?ELS8: EQUAL? PRSO,CLOTHES-PIN \?CND6 FSET? CLOTHES-PIN,WORNBIT \?CND6 FCLEAR CLOTHES-PIN,WORNBIT FCLEAR NOSE,MUNGBIT ?CND6: PRINTR "Taken." .FUNCT V-TAKE-A-LEAK EQUAL? PRSO,ROOMS \?ELS5 CALL V-PEE RSTACK ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-TAKE-A-SHIT EQUAL? PRSO,ROOMS \?ELS5 CALL V-SHIT RSTACK ?ELS5: CALL RECOGNIZE RSTACK .FUNCT V-TAKE-OFF EQUAL? PRSO,ROOMS \?ELS5 EQUAL? P-PRSA-WORD,W?GET \?ELS10 LOC PROTAGONIST FSET? STACK,VEHBIT \?ELS15 PRINTI "[of" LOC PROTAGONIST CALL TPRINT,STACK PRINTI "]" CRLF LOC PROTAGONIST CALL PERFORM,V?DISEMBARK,STACK RTRUE ?ELS15: ZERO? NAUGHTY-LEVEL \?ELS17 CALL V-STAND RSTACK ?ELS17: CALL PERFORM,V?FUCK,ME RTRUE ?ELS10: CALL PERFORM-PRSA,GARMENT RTRUE ?ELS5: FSET? PRSO,WORNBIT \?ELS23 FCLEAR PRSO,WORNBIT PRINTI "Okay, you're no longer wearing" CALL TRPRINT,PRSO RSTACK ?ELS23: FSET? PRSO,VEHBIT \?ELS25 CALL PERFORM,V?DISEMBARK,PRSO RTRUE ?ELS25: PRINTI "You aren't 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-TASTE CALL SENSE-OBJECT,STR?87 RSTACK .FUNCT V-TELL EQUAL? PRSO,STALLION \?ELS5 ZERO? P-CONT /?ELS5 SET 'CLOCK-WAIT,TRUE-VALUE SET 'WINNER,STALLION RTRUE ?ELS5: FSET? PRSO,ACTORBIT /?THN10 EQUAL? PRSO,INTNUM \?ELS9 IN? SULTANS-WIFE,HERE \?ELS9 ?THN10: EQUAL? PRSO,INTNUM \?ELS18 EQUAL? P-NUMBER,CHOICE-NUMBER /?ELS18 PRINTI """That's not my number!""" CRLF CALL STOP RSTACK ?ELS18: ZERO? P-CONT /?ELS22 EQUAL? PRSO,INTNUM \?ELS26 SET 'WINNER,SULTANS-WIFE JUMP ?CND24 ?ELS26: SET 'WINNER,PRSO ?CND24: SET 'CLOCK-WAIT,TRUE-VALUE RTRUE ?ELS22: PRINTI "Hmmm ..." CALL TPRINT-PRSO PRINTR " looks at you expectantly, as if you seemed to be about to talk." ?ELS9: EQUAL? PRSO,BEM,FLYTRAP \?ELS32 GET P-LEXV,P-CONT EQUAL? STACK,W?SCAT,W?BOO /?THN35 GET P-LEXV,P-CONT EQUAL? STACK,W?SCRAM,W?SHOO \?ELS32 ?THN35: CALL V-SCAT CALL STOP RSTACK ?ELS32: CALL CANT-VERB-A-PRSO,STR?88 CALL STOP RSTACK .FUNCT V-TELL-ABOUT EQUAL? PRSO,ME \?ELS5 CALL PERFORM,V?WHAT,PRSI RTRUE ?ELS5: CALL PERFORM,V?SHOW,PRSI,PRSO RTRUE .FUNCT V-THANK ZERO? PRSO \?ELS5 PRINTR "[Just doing my job.]" ?ELS5: FSET? PRSO,ACTORBIT \?ELS7 PRINTR """You're welcome.""" ?ELS7: CALL IMPOSSIBLES RSTACK .FUNCT V-THROW CALL SPECIAL-DROP ZERO? STACK \FALSE EQUAL? HERE,CANAL \?ELS10 CALL PERFORM,V?PUT,PRSO,CANAL-OBJECT RTRUE ?ELS10: ZERO? PRSI /?ELS12 MOVE PRSO,HERE PRINTR "You missed." ?ELS12: MOVE PRSO,HERE PRINTR "Thrown." .FUNCT V-THROW-TO FSET? PRSI,ACTORBIT \?ELS5 CALL PERFORM,V?GIVE,PRSO,PRSI RTRUE ?ELS5: CALL PERFORM,V?THROW,PRSO,PRSI RTRUE .FUNCT V-THROW-UP EQUAL? PRSO,ROOMS \?ELS5 CALL V-VOMIT RSTACK ?ELS5: CALL PERFORM,V?THROW,PRSO RTRUE .FUNCT V-TIE FSET? PRSO,ACTORBIT /?THN6 FSET? PRSI,ACTORBIT \?ELS3 ?THN6: ZERO? NAUGHTY-LEVEL /?ELS3 PRINTR "Kinky!" ?ELS3: EQUAL? P-PRSA-WORD,W?TIE \?ELS9 PRINTI "You've tied" CALL TPRINT-PRSO PRINTI "! In the third quarter, with forty seconds on the clock, the score is " CALL DPRINT,PRSO PRINTI " 17, player 17!!! But seriously, folks, y" JUMP ?CND1 ?ELS9: PRINTI "Y" ?CND1: PRINTI "ou can't tie" CALL TRPRINT,PRSO RSTACK .FUNCT V-TIE-TOGETHER CALL IMPOSSIBLES RSTACK .FUNCT PRE-TOUCH CALL UNTOUCHABLE?,PRSO ZERO? STACK /FALSE CALL CANT-REACH,PRSO RSTACK .FUNCT V-TOUCH CALL LOC-CLOSED ZERO? STACK \TRUE ZERO? NAUGHTY-LEVEL \?ELS7 CALL HACK-HACK,STR?89 RSTACK ?ELS7: CALL HACK-HACK,STR?90 RSTACK .FUNCT V-UNCOVER EQUAL? PRSO,HAND-COVER \?ELS5 CALL SENSE-AGAIN,HAND-COVER SET 'HAND-COVER,FALSE-VALUE RTRUE ?ELS5: FSET? PRSO,ACTORBIT \?ELS7 CALL PERFORM,V?UNDRESS,OBJECT RTRUE ?ELS7: FSET? PRSO,PLURALBIT \?ELS12 PRINTI "They're" JUMP ?CND10 ?ELS12: FSET? PRSO,FEMALEBIT \?ELS14 PRINTI "She's" JUMP ?CND10 ?ELS14: FSET? PRSO,ACTORBIT \?ELS16 PRINTI "He's" JUMP ?CND10 ?ELS16: PRINTI "It's" ?CND10: PRINTR " not covered!" .FUNCT SENSE-AGAIN,BODY-PART FCLEAR BODY-PART,MUNGBIT PRINTI "You can once again sense with" CALL TRPRINT,BODY-PART RSTACK .FUNCT V-UNDRESS ZERO? PRSO /?ELS5 FSET? PRSO,ACTORBIT \?ELS11 CALL PERFORM,V?FUCK,PRSO RTRUE ?ELS11: CALL IMPOSSIBLES RSTACK ?ELS5: SET 'PRSO,ROOMS CALL V-GET-UNDRESSED RSTACK .FUNCT V-UNLOCK ZERO? PRSI /?ELS5 CALL IMPOSSIBLES RSTACK ?ELS5: FSET? PRSO,LOCKEDBIT \?ELS8 SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Your nose is key-shaped, I suppose?" ?ELS8: FSET? PRSO,DOORBIT \?ELS10 PRINTI "But" CALL TPRINT-PRSO PRINTR " isn't locked." ?ELS10: CALL YUKS RSTACK .FUNCT V-UNROLL CALL IMPOSSIBLES RSTACK .FUNCT V-UNTIE CALL IMPOSSIBLES RSTACK .FUNCT V-USE PRINT YOULL-HAVE-TO PRINTI "be more specific about how you want to use" CALL TRPRINT,PRSO RSTACK .FUNCT V-USE-QUOTES IN? HAREM-GUARD,HERE \?ELS5 CALL PICK-WIFE,PRSO RSTACK ?ELS5: CALL SEE-MANUAL,STR?91 RSTACK .FUNCT V-VOMIT IN? PIZZA,HERE \?ELS5 FSET? PIZZA,TOUCHBIT \?ELS5 PRINTI "Just keep trying to eat that " CALL DPRINT,PIZZA PRINT PERIOD-CR RTRUE ?ELS5: PRINTR "You stick a finger down your throat, but to no avail." .FUNCT V-WALK,AV,VEHICLE,PT,PTS,STR,OBJ,RM LOC PROTAGONIST >AV ZERO? P-WALK-DIR \?ELS5 CALL PERFORM,V?WALK-TO,PRSO RTRUE ?ELS5: EQUAL? PRSO,P?OUT \?ELS7 CALL IN-EXITABLE-VEHICLE? ZERO? STACK \TRUE ?ELS7: EQUAL? PRSO,P?DOWN \?ELS11 EQUAL? AV,STOOL,STALLION \?ELS11 CALL PERFORM,V?DISEMBARK,AV RTRUE ?ELS11: EQUAL? PRSO,P?IN \?ELS15 EQUAL? HERE,LABORATORY \?ELS15 CALL PERFORM,V?BOARD,CAGE RTRUE ?ELS15: EQUAL? PRSO,P?IN \?ELS19 GETPT HERE,P?IN ZERO? STACK \?ELS19 CALL FIND-IN,HERE,VEHBIT >VEHICLE ZERO? VEHICLE /?ELS19 CALL ULTIMATELY-IN?,VEHICLE ZERO? STACK \?ELS19 CALL PERFORM,V?BOARD,VEHICLE RTRUE ?ELS19: ZERO? RAFT-HELD /?ELS23 IN? PROTAGONIST,RAFT /?ELS23 PRINTI "If you want to walk away, you'll either have to take the raft or let go of it!" CRLF RETURN 8 ?ELS23: FSET? AV,VEHBIT \?ELS29 EQUAL? AV,STALLION /?ELS29 EQUAL? HERE,CELL \?ELS36 EQUAL? AV,STOOL \?ELS36 ZERO? HOLE-OPEN /?ELS36 EQUAL? PRSO,P?UP \?ELS36 CALL HOLE-ENTER-F RTRUE ?ELS36: CALL NOT-GOING-ANYWHERE RSTACK ?ELS29: FSET? EYES,MUNGBIT /?THN43 EQUAL? HAND-COVER,EYES \?ELS42 ?THN43: CALL OPEN-YOUR-EYES RETURN 8 ?ELS42: GETPT HERE,PRSO >PT ZERO? PT /?ELS48 PTSIZE PT >PTS EQUAL? PTS,UEXIT \?ELS53 GETB PT,REXIT CALL GOTO,STACK RSTACK ?ELS53: EQUAL? PTS,NEXIT \?ELS55 GET PT,NEXITSTR PRINT STACK CRLF RETURN 8 ?ELS55: EQUAL? PTS,FEXIT \?ELS59 GET PT,FEXITFCN CALL STACK >RM ZERO? RM /?ELS64 EQUAL? RM,ROOMS /TRUE CALL GOTO,RM RSTACK ?ELS64: RETURN 8 ?ELS59: EQUAL? PTS,CEXIT \?ELS73 GETB PT,CEXITFLAG VALUE STACK ZERO? STACK /?ELS78 GETB PT,REXIT CALL GOTO,STACK RSTACK ?ELS78: GET PT,CEXITSTR >STR ZERO? STR /?ELS80 PRINT STR CRLF RETURN 8 ?ELS80: PRINT CANT-GO RETURN 8 ?ELS73: EQUAL? PTS,DEXIT \FALSE GETB PT,DEXITOBJ >OBJ FSET? OBJ,OPENBIT \?ELS93 GETB PT,REXIT CALL GOTO,STACK RSTACK ?ELS93: GET PT,DEXITSTR >STR ZERO? STR /?ELS95 CALL THIS-IS-IT,OBJ PRINT STR CRLF RETURN 8 ?ELS95: CALL THIS-IS-IT,OBJ CALL DO-FIRST,STR?66,OBJ RETURN 8 ?ELS48: EQUAL? PRSO,P?IN,P?OUT \?ELS106 CALL V-WALK-AROUND RETURN 8 ?ELS106: EQUAL? HERE,WELL-BOTTOM,FORGOTTEN-STOREHOUSE /?THN109 EQUAL? HERE,BURIAL-CHAMBER,LADDER-ROOM \?ELS108 ?THN109: PRINTI "You wade into the dark, but find no passage in that direction." CRLF RETURN 8 ?ELS108: PRINT CANT-GO RETURN 8 .FUNCT NOT-GOING-ANYWHERE,AV LOC PROTAGONIST >AV PRINTI "You're not going anywhere until you get " CALL OFF-VEHICLE?,AV ZERO? STACK /?ELS3 PRINTI "off" JUMP ?CND1 ?ELS3: PRINTI "out of" ?CND1: CALL TRPRINT,AV RETURN 8 .FUNCT V-WALK-AROUND SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Did you have any particular direction in mind?" .FUNCT V-WALK-TO EQUAL? PRSO,INTDIR \?ELS5 CALL DO-WALK,P-DIRECTION RSTACK ?ELS5: CALL V-WALK-AROUND RSTACK .FUNCT V-WAIT,NUM=3 PRINTI "Time passes..." CRLF ?PRG1: DLESS? 'NUM,0 \?ELS5 JUMP ?REP2 ?ELS5: CALL CLOCKER ZERO? STACK /?PRG1 ?REP2: SET 'CLOCK-WAIT,TRUE-VALUE RETURN CLOCK-WAIT .FUNCT V-WAIT-FOR CALL VISIBLE?,PRSO ZERO? STACK /?ELS5 CALL V-FOLLOW RSTACK ?ELS5: PRINTR "You may be waiting quite a while." .FUNCT V-WEAR FSET? PRSO,WEARBIT /?ELS5 CALL CANT-VERB-A-PRSO,STR?92 RSTACK ?ELS5: PRINTI "You're " FSET? PRSO,WORNBIT \?ELS10 PRINTI "already" JUMP ?CND8 ?ELS10: MOVE PRSO,PROTAGONIST FSET PRSO,WORNBIT PRINTI "now" ?CND8: PRINTI " wearing" CALL TRPRINT,PRSO RSTACK .FUNCT V-WHAT PRINTR "Good question." .FUNCT V-WHERE CALL V-FIND,TRUE-VALUE RSTACK .FUNCT V-WHIP ZERO? NAUGHTY-LEVEL \?ELS5 CALL V-KILL RSTACK ?ELS5: PRINTR "Oooo! S & M! Love it!!!" .FUNCT V-WRAP CALL WASTES RSTACK .FUNCT V-YELL CALL SORE,STR?93 CALL STOP RSTACK .FUNCT I-REPLY SET 'AWAITING-REPLY,FALSE-VALUE RFALSE .FUNCT V-YES EQUAL? AWAITING-REPLY,1 \?ELS5 SET 'AWAITING-REPLY,FALSE-VALUE SET 'AWAITING-FAKE-ORPHAN,TRUE-VALUE SET 'SULTAN-COUNTER,0 CALL QUEUE,I-SNEEZE,2 CALL DEQUEUE,I-SULTAN PRINTI """Here, then, is the riddle. Don't strain " PRINTD HEAD PRINTI "; no one's ever gotten it right."" You hear a growling snarl from somewhere nearby. ""Some say I'm pointless, yet many are obsessed by me. I have caused heroic gambles and sown endless frustration. Uncounted deaths have I caused. What am I?""" CRLF IN? SIDEKICK,HERE \TRUE PRINTI " " CALL DPRINT-SIDEKICK PRINTI " steps briskly forward. ""That's easy!"" " CALL HE-SHE PRINTI " yells. ""A grapefruit!"" As the eunuchs snicker behind their weapons, the " CALL DPRINT,SULTAN PRINTI " cries ""Wrongo!"" and " CALL TIGER-EATS-SIDEKICK PRINTI " ""Your turn to guess,"" says the " CALL DPRINT,SULTAN PRINTR ", looking gleeful." ?ELS5: EQUAL? AWAITING-REPLY,2 \?ELS10 PRINTR "That was just a rhetorical question." ?ELS10: EQUAL? AWAITING-REPLY,3 \?ELS12 CALL V-PEE-IN RSTACK ?ELS12: CALL YOU-SOUND,STR?94 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 \FALSE RTRUE .FUNCT ITAKE,VB=1,OBJ FSET? PRSO,TAKEBIT /?ELS3 ZERO? VB /?CND4 CALL YUKS ?CND4: RETURN 8 ?ELS3: CALL PRE-TOUCH ZERO? STACK /?ELS11 RETURN 8 ?ELS11: CALL CCOUNT,PROTAGONIST GRTR? STACK,10 \?CND1 ZERO? VB /?CND16 PRINTI "You're already juggling as many items as you could possibly carry." CRLF ?CND16: RETURN 8 ?CND1: FSET PRSO,TOUCHBIT FCLEAR PRSO,NDESCBIT IN? PROTAGONIST,PRSO /FALSE EQUAL? PRSO,RAFT \?CND22 ZERO? RAFT-HELD /?CND22 SET 'RAFT-HELD,FALSE-VALUE ?CND22: MOVE PRSO,PROTAGONIST RTRUE .FUNCT IDROP EQUAL? PRSO,TITS,CUNT,COCK /FALSE EQUAL? PRSO,HANDS \?ELS7 EQUAL? PRSA,V?GIVE,V?THROW,V?DROP \FALSE CALL IMPOSSIBLES RSTACK ?ELS7: EQUAL? PRSO,POWER-SWITCH \?ELS16 EQUAL? PRSA,V?THROW /FALSE ?ELS16: EQUAL? PRSO,HEAD \?ELS20 EQUAL? PRSA,V?PUT \?ELS20 EQUAL? PRSI,HOLE \?ELS20 PRINTR "Hey wow! Vertigo city!" ?ELS20: EQUAL? PRSO,ME \?ELS24 EQUAL? PRSA,V?PUT \?ELS24 FSET? PRSI,ACTORBIT \?ELS24 CALL PERFORM,V?BOARD,PRSI RTRUE ?ELS24: EQUAL? PRSI,ME \?ELS28 EQUAL? PRSA,V?PUT \?ELS28 FSET? PRSO,ACTORBIT \?ELS28 CALL PERFORM,V?BOARD,PRSO RTRUE ?ELS28: EQUAL? PRSA,V?PUT-THROUGH,V?PUT \?ELS32 EQUAL? PRSO,SHEET \?ELS32 EQUAL? PRSI,WINDOW /FALSE ?ELS32: EQUAL? PRSO,HAND-COVER \?ELS36 CALL PERFORM,V?UNCOVER,PRSO RTRUE ?ELS36: EQUAL? PRSO,NOSE \?ELS38 EQUAL? PRSI,CLOTHES-PIN /FALSE ?ELS38: EQUAL? PRSO,COMIC-BOOK \?ELS42 EQUAL? PRSI,POCKET \?ELS47 PRINT ALREADY-IS RTRUE ?ELS47: CALL PERFORM,V?REMOVE,COMIC-BOOK RTRUE ?ELS42: CALL ULTIMATELY-IN?,PRSO ZERO? STACK \?ELS51 EQUAL? PRSO,LEAVES /?ELS51 EQUAL? PRSO,RAFT \?THN54 ZERO? RAFT-HELD \?ELS51 ?THN54: EQUAL? PRSO,ME /?THN59 FSET? PRSO,PARTBIT \?ELS58 ?THN59: CALL IMPOSSIBLES RETURN 8 ?ELS58: EQUAL? PRSO,SOD \?ELS62 EQUAL? PRSI,HOLE /FALSE ?ELS62: PRINTI "That's easy for you to say since you don't even have" CALL TRPRINT,PRSO RETURN 8 ?ELS51: IN? PRSO,PROTAGONIST /?ELS70 LOC PRSO FSET? STACK,CONTBIT \?ELS70 LOC PRSO FSET? STACK,OPENBIT /?ELS70 LOC PRSO CALL DO-FIRST,STR?66,STACK RSTACK ?ELS70: FSET? PRSO,WORNBIT \FALSE EQUAL? PRSA,V?PUT-ON,V?PUT \?ELS79 EQUAL? PRSO,CLOTHES-PIN \?ELS85 EQUAL? PRSI,NOSE /?THN82 ?ELS85: EQUAL? PRSO,COTTON-BALLS \?ELS87 EQUAL? PRSI,EARS /?THN82 ?ELS87: EQUAL? PRSO,LIP-BALM \?ELS79 EQUAL? PRSI,MOUTH \?ELS79 ?THN82: PRINT SENILITY-STRIKES RTRUE ?ELS79: CALL DO-FIRST,STR?95,PRSO RSTACK .FUNCT CCOUNT,OBJ,CNT=0,X FIRST? OBJ >X \?CND1 ?PRG4: FSET? X,WORNBIT /?CND6 INC 'CNT ?CND6: NEXT? X >X /?PRG4 ?CND1: RETURN CNT .FUNCT WEIGHT,OBJ,CONT,WT=0 FIRST? OBJ >CONT \?CND1 ?PRG4: CALL WEIGHT,CONT ADD WT,STACK >WT NEXT? CONT >CONT /?PRG4 ?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 EQUAL? HERE,CLOSET \?CND4 FSET? NOSE,MUNGBIT /?CND4 PRINTI " There's a distinctive odor here, though." ?CND4: CRLF RFALSE ?CND1: FSET? HERE,TOUCHBIT /?CND9 EQUAL? HERE,CANAL,CATACOMBS,LONG-CORRIDOR /?CND12 FSET HERE,TOUCHBIT ?CND12: SET 'FIRST-VISIT,TRUE-VALUE ?CND9: CALL DPRINT,HERE CALL CANAL-LOC >NUM EQUAL? NUM,10 \?CND15 PRINTI ", near the " EQUAL? NEARER-DOCK,MY-KIND-OF-DOCK \?ELS20 PRINTI "ea" JUMP ?CND18 ?ELS20: PRINTI "we" ?CND18: PRINTI "st bank" ?CND15: LOC PROTAGONIST FSET? STACK,VEHBIT \?CND23 ZERO? DONT-PRINT-VEHICLE \?CND23 PRINTI ", " LOC PROTAGONIST FSET? STACK,INBIT \?ELS30 PRINTI "i" JUMP ?CND28 ?ELS30: PRINTI "o" ?CND28: PRINTI "n" LOC PROTAGONIST CALL TPRINT,STACK ?CND23: CRLF ZERO? VERB-IS-LOOK \?THN36 EQUAL? VERBOSITY,2 /?THN36 ZERO? FIRST-VISIT /TRUE EQUAL? VERBOSITY,1 \TRUE ?THN36: PRINTI " " GETP HERE,P?ACTION CALL STACK,M-LOOK ZERO? STACK \?CND40 GETP HERE,P?LDESC PRINT STACK ?CND40: CRLF RTRUE .FUNCT DESCRIBE-OBJECTS,O,STR,1ST?=1,AV LOC WINNER >AV FIRST? HERE >O /?KLU48 ?KLU48: ZERO? O /FALSE ?PRG4: ZERO? O \?ELS8 JUMP ?REP5 ?ELS8: CALL DESCRIBABLE?,O ZERO? STACK /?CND6 FSET? O,TOUCHBIT /?CND6 GETP O,P?FDESC >STR ZERO? STR /?CND6 PRINTI " " PRINT STR FSET? O,CONTBIT \?CND13 ADD D-ALL?,D-PARA? CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK ?CND13: CRLF ?CND6: NEXT? O >O /?KLU49 ?KLU49: JUMP ?PRG4 ?REP5: FIRST? HERE >O /?KLU50 ?KLU50: SET '1ST?,TRUE-VALUE ?PRG16: ZERO? O \?ELS20 JUMP ?REP17 ?ELS20: CALL DESCRIBABLE?,O ZERO? STACK /?CND18 GETP O,P?FDESC ZERO? STACK /?ELS22 FSET? O,TOUCHBIT /?ELS22 JUMP ?CND18 ?ELS22: GETP O,P?DESCFCN >STR ZERO? STR /?ELS28 CALL STR,M-OBJDESC >STR ZERO? STR /?ELS28 FSET? O,CONTBIT \?CND31 EQUAL? STR,M-FATAL /?CND31 ADD D-ALL?,D-PARA? CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK ?CND31: CRLF JUMP ?CND18 ?ELS28: GETP O,P?LDESC >STR ZERO? STR /?CND18 PRINTI " " PRINT STR FSET? O,CONTBIT \?CND38 ADD D-ALL?,D-PARA? CALL DESCRIBE-CONTENTS,O,TRUE-VALUE,STACK ?CND38: CRLF ?CND18: NEXT? O >O /?KLU51 ?KLU51: JUMP ?PRG16 ?REP17: 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,START?=0,TWO?=0,PARA?=0 EQUAL? LEVEL,2 \?ELS3 SET 'LEVEL,TRUE-VALUE SET 'PARA?,TRUE-VALUE SET 'START?,TRUE-VALUE JUMP ?CND1 ?ELS3: BTST ALL?,D-PARA? \?CND1 SET 'PARA?,TRUE-VALUE ?CND1: FIRST? OBJ >N /?KLU153 ?KLU153: ZERO? START? \?THN11 IN? OBJ,ROOMS /?THN11 FSET? OBJ,ACTORBIT /?THN11 FSET? OBJ,CONTBIT \FALSE FSET? OBJ,OPENBIT /?THN15 FSET? OBJ,TRANSBIT \FALSE ?THN15: FSET? OBJ,SEARCHBIT \FALSE ZERO? N /FALSE ?THN11: ?PRG17: ZERO? N /?THN26 CALL DESCRIBABLE?,N ZERO? STACK /?CND19 BTST ALL?,D-ALL? /?THN26 CALL SIMPLE-DESC?,N ZERO? STACK /?CND19 ?THN26: ZERO? F /?CND28 ZERO? 1ST? /?ELS34 SET '1ST?,FALSE-VALUE EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?ELS38 ZERO? START? \?CND32 ZERO? PARA? \?ELS44 EQUAL? OBJ,PROTAGONIST /?CND45 PRINTI " " ?CND45: SET 'PARA?,TRUE-VALUE JUMP ?CND42 ?ELS44: EQUAL? LEVEL,TRUE-VALUE \?CND42 PRINTI " " ?CND42: EQUAL? OBJ,HERE \?ELS52 PRINT YOU-SEE JUMP ?CND32 ?ELS52: EQUAL? OBJ,PROTAGONIST \?ELS54 PRINTI "You have" JUMP ?CND32 ?ELS54: FSET? OBJ,SURFACEBIT \?ELS56 PRINTI "Sitting on" CALL TPRINT,OBJ PRINTI " is" JUMP ?CND32 ?ELS56: PRINT IT-SEEMS-THAT CALL TPRINT,OBJ FSET? OBJ,ACTORBIT \?ELS61 PRINTI " has" JUMP ?CND32 ?ELS61: PRINTI " contains" JUMP ?CND32 ?ELS38: EQUAL? LEVEL,-1 /?CND32 PRINT LEVEL JUMP ?CND32 ?ELS34: ZERO? N /?ELS70 PRINTI "," JUMP ?CND32 ?ELS70: PRINTI " and" ?CND32: CALL APRINT,F FSET? F,WORNBIT \?ELS76 EQUAL? F,LIP-BALM \?ELS79 PRINTI " (smeared all over your lips)" JUMP ?CND74 ?ELS79: EQUAL? F,COTTON-BALLS \?ELS81 PRINTI " (stuffed in " PRINTD EARS PRINTI ")" JUMP ?CND74 ?ELS81: EQUAL? F,CLOTHES-PIN \?ELS83 PRINTI " (pinned to " PRINTD NOSE PRINTI ")" JUMP ?CND74 ?ELS83: PRINTI " (being worn)" JUMP ?CND74 ?ELS76: FSET? F,ONBIT \?ELS87 PRINTI " (providing light)" JUMP ?CND74 ?ELS87: EQUAL? F,COMIC-BOOK \?CND74 PRINTI " (stuck in your back pocket)" ?CND74: ZERO? IT? \?ELS92 ZERO? TWO? \?ELS92 SET 'IT?,F JUMP ?CND28 ?ELS92: SET 'TWO?,TRUE-VALUE SET 'IT?,FALSE-VALUE ?CND28: SET 'F,N ?CND19: ZERO? N /?CND97 NEXT? N >N /?KLU154 ?KLU154: ?CND97: ZERO? F \?PRG17 ZERO? N \?PRG17 ZERO? IT? /?CND106 ZERO? TWO? \?CND106 CALL THIS-IS-IT,IT? ?CND106: ZERO? 1ST? /?CND111 ZERO? START? /?CND111 PRINTI " nothing" RFALSE ?CND111: ZERO? 1ST? \?REP18 EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?REP18 EQUAL? OBJ,HERE \?CND121 PRINTI " here" ?CND121: PRINTI "." ?REP18: FIRST? OBJ >F /?KLU155 ?KLU155: ?PRG124: ZERO? F \?ELS128 JUMP ?REP125 ?ELS128: FSET? F,CONTBIT \?CND126 CALL DESCRIBABLE?,F,TRUE-VALUE ZERO? STACK /?CND126 BTST ALL?,D-ALL? /?THN133 CALL SIMPLE-DESC?,F ZERO? STACK /?CND126 ?THN133: ZERO? PARA? /?ELS142 ADD D-ALL?,D-PARA? JUMP ?CND138 ?ELS142: PUSH D-ALL? ?CND138: CALL DESCRIBE-CONTENTS,F,TRUE-VALUE,STACK ZERO? STACK /?CND126 SET '1ST?,FALSE-VALUE SET 'PARA?,TRUE-VALUE ?CND126: NEXT? F >F /?KLU156 ?KLU156: JUMP ?PRG124 ?REP125: ZERO? 1ST? \?CND146 EQUAL? LEVEL,FALSE-VALUE,TRUE-VALUE \?CND146 LOC WINNER EQUAL? OBJ,HERE,STACK \?CND146 CRLF ?CND146: ZERO? 1ST? \FALSE RTRUE .FUNCT DESCRIBABLE?,OBJ,CONT?=0 FSET? OBJ,INVISIBLE /FALSE EQUAL? OBJ,WINNER /FALSE LOC WINNER EQUAL? OBJ,STACK \?ELS9 LOC WINNER EQUAL? HERE,STACK \FALSE ?ELS9: ZERO? CONT? \?ELS13 FSET? OBJ,NDESCBIT /FALSE ?ELS13: EQUAL? OBJ,RAFT,BARGE \TRUE EQUAL? HERE,CANAL \TRUE CALL ULTIMATELY-IN?,OBJ ZERO? STACK \TRUE IN? OBJ,BARGE /TRUE EQUAL? RAFT-LOC-NUM,BARGE-LOC-NUM /TRUE RFALSE .FUNCT SIMPLE-DESC?,OBJ,STR GETP OBJ,P?FDESC ZERO? STACK /?ELS5 FSET? OBJ,TOUCHBIT \FALSE ?ELS5: GETP OBJ,P?DESCFCN >STR ZERO? STR /?ELS9 CALL STR,M-OBJDESC? ZERO? STACK \FALSE ?ELS9: GETP OBJ,P?LDESC ZERO? STACK /TRUE RFALSE .FUNCT DESCRIBE-VEHICLE EQUAL? PRSO,DIVAN \?ELS5 CALL NOT-ALONE-ON-DIVAN CRLF RTRUE ?ELS5: PRINTI "Other than yourself, you can see" CALL DESCRIBE-NOTHING ZERO? STACK \TRUE FSET? PRSO,INBIT \?ELS13 PRINTI " in" JUMP ?CND11 ?ELS13: PRINTI " on" ?CND11: 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-SIDEKICK=0,OLD-HERE EQUAL? HERE,THRONE-ROOM \?CND1 FSET? THETA,MUNGBIT /?CND1 FSET THETA,MUNGBIT FSET THETA,NDESCBIT FCLEAR THETA,ACTORBIT FCLEAR THETA,FEMALEBIT FCLEAR THETA,NARTICLEBIT PUTP THETA,P?SDESC,STR?96 PRINTI "As you leave, you hear behind you a sound like a" PRINT 45-DEGREE-ANGLE PRINTI " landing on a pile of" PRINT 45-DEGREE-ANGLE PRINTI "s." CALL EXPLETIVE PRINTI "Not again!"" you hear Mitre moan." CRLF CRLF ?CND1: SET 'OLD-HERE,HERE CALL OPEN-EYES-AND-REMOVE-HANDS MOVE PROTAGONIST,NEW-LOC IN? NEW-LOC,ROOMS \?ELS8 SET 'HERE,NEW-LOC JUMP ?CND6 ?ELS8: LOC NEW-LOC >HERE ?CND6: CALL LIT?,HERE >LIT GETP HERE,P?ACTION CALL STACK,M-ENTER CALL DESCRIBE-ROOM ZERO? STACK /?CND11 ZERO? VERBOSITY /?CND11 CALL DESCRIBE-OBJECTS ?CND11: IN? SIDEKICK,OLD-HERE \?CND16 IN? PROTAGONIST,HERE \?CND16 ZERO? DONT-DESCRIBE-SIDEKICK \?CND16 CALL SIDEKICK-FOLLOWS-YOU ?CND16: SET 'HOLE-MOVE,FALSE-VALUE RTRUE .FUNCT SIDEKICK-FOLLOWS-YOU EQUAL? HERE,BOUDOIR \?ELS3 MOVE SIDEKICK,HERE JUMP ?CND1 ?ELS3: LOC PROTAGONIST MOVE SIDEKICK,STACK ?CND1: ZERO? HOLE-MOVE /?ELS10 PRINTI " A few seconds later, you " CALL LIT?,HERE ZERO? STACK /?ELS14 PRINTI "see " JUMP ?CND12 ?ELS14: PRINTI "feel " ?CND12: CALL DPRINT-SIDEKICK PRINTI "'s " CALL PICK-ONE,SIDEKICK-PARTS PRINT STACK PRINTI " appear, followed almost immediately by the rest of " CALL HIM-HER PRINT PERIOD-CR RTRUE ?ELS10: CALL NORMAL-SIDEKICK-FOLLOW RSTACK .FUNCT NORMAL-SIDEKICK-FOLLOW PRINTI " " CALL DPRINT-SIDEKICK CALL PICK-ONE,FOLLOWS PRINT STACK CRLF RTRUE .FUNCT JIGS-UP,DESC PRINT DESC CRLF CRLF PRINTI " **** You have died ****" CRLF CALL FINISH RSTACK .FUNCT ACCESSIBLE?,OBJ,L ZERO? OBJ /FALSE LOC OBJ >L FSET? OBJ,INVISIBLE /FALSE EQUAL? OBJ,PSEUDO-OBJECT \?ELS10 EQUAL? LAST-PSEUDO-LOC,HERE \FALSE RTRUE ?ELS10: ZERO? L /FALSE EQUAL? L,GLOBAL-OBJECTS /TRUE EQUAL? L,LOCAL-GLOBALS \?ELS23 CALL GLOBAL-IN?,OBJ,HERE ZERO? STACK \TRUE ?ELS23: 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 CALL ULTIMATELY-IN?,OBJ,SHELF ZERO? STACK \?THN8 EQUAL? OBJ,SHELF \?ELS7 ?THN8: IN? PROTAGONIST,STOOL \TRUE RFALSE ?ELS7: CALL ULTIMATELY-IN?,OBJ,TREE-HOLE ZERO? STACK /?ELS18 IN? PROTAGONIST,TREE-HOLE \TRUE ?ELS18: CALL ULTIMATELY-IN?,OBJ,CAGE ZERO? STACK /?ELS22 IN? PROTAGONIST,CAGE \TRUE ?ELS22: IN? PROTAGONIST,FIRST-SLAB \?ELS26 CALL NOUN-USED,W?STRAP,PSEUDO-OBJECT ZERO? STACK \FALSE CALL NOUN-USED,W?STRAPS,PSEUDO-OBJECT ZERO? STACK \FALSE ?ELS26: IN? PROTAGONIST,HERE /FALSE LOC PROTAGONIST CALL ULTIMATELY-IN?,OBJ,STACK ZERO? STACK \FALSE LOC PROTAGONIST EQUAL? OBJ,STACK /FALSE IN? OBJ,GLOBAL-OBJECTS /FALSE EQUAL? OBJ,RAFT \?ELS38 ZERO? RAFT-HELD \FALSE ?ELS38: EQUAL? OBJ,CANAL-OBJECT,WATER,BARGE \?ELS42 LOC PROTAGONIST EQUAL? STACK,BARGE,RAFT /FALSE ?ELS42: EQUAL? PRSO,SHEET \?ELS46 ZERO? SHEET-TIED \FALSE ?ELS46: EQUAL? PRSO,SHEET \TRUE IN? PROTAGONIST,BED \TRUE FSET? SHEET,TOUCHBIT /TRUE RFALSE .FUNCT META-LOC,OBJ ?PRG1: ZERO? OBJ /FALSE IN? OBJ,GLOBAL-OBJECTS \?CND3 RETURN GLOBAL-OBJECTS ?CND3: IN? OBJ,ROOMS \?ELS10 RETURN OBJ ?ELS10: 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 ULTIMATELY-IN?,OBJ,CONT=0 ZERO? CONT \?CND1 SET 'CONT,WINNER ?CND1: ZERO? OBJ /FALSE IN? OBJ,CONT /TRUE IN? OBJ,ROOMS /FALSE LOC OBJ CALL ULTIMATELY-IN?,STACK,CONT RSTACK .FUNCT SEE-INSIDE?,OBJ ZERO? OBJ /FALSE FSET? OBJ,INVISIBLE /FALSE FSET? OBJ,TRANSBIT /TRUE FSET? OBJ,OPENBIT /TRUE RFALSE .FUNCT GLOBAL-IN?,OBJ1,OBJ2,TEE GETPT OBJ2,P?GLOBAL >TEE ZERO? TEE /FALSE PTSIZE TEE SUB STACK,1 CALL ZMEMQB,OBJ1,TEE,STACK RSTACK .FUNCT FIND-IN,WHERE,FLAG-IN-QUESTION,STRING=0,OBJ,RECURSIVE-OBJ FIRST? WHERE >OBJ /?KLU19 ?KLU19: ZERO? OBJ /FALSE ?PRG4: FSET? OBJ,FLAG-IN-QUESTION \?ELS8 FSET? OBJ,INVISIBLE /?ELS8 ZERO? STRING /?CND11 PRINTI "[" PRINT STRING CALL TPRINT,OBJ PRINTI "]" CRLF ?CND11: RETURN OBJ ?ELS8: CALL FIND-IN,OBJ,FLAG-IN-QUESTION >RECURSIVE-OBJ ZERO? RECURSIVE-OBJ /?ELS16 RETURN RECURSIVE-OBJ ?ELS16: NEXT? OBJ >OBJ /?PRG4 RFALSE .FUNCT NOW-DARK? ZERO? LIT /FALSE CALL LIT?,HERE ZERO? STACK \FALSE SET 'LIT,FALSE-VALUE PRINTR " It is now too dark to see." .FUNCT NOW-LIT? ZERO? LIT \FALSE CALL LIT?,HERE ZERO? STACK /FALSE SET 'LIT,TRUE-VALUE CRLF CALL V-LOOK RSTACK .FUNCT LOC-CLOSED,L LOC PRSO >L FSET? L,CONTBIT \FALSE FSET? L,OPENBIT /FALSE FSET? PRSO,TAKEBIT \FALSE CALL DO-FIRST,STR?66,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 ROB,WHO,WHERE=0,N,X FIRST? WHO >X /?KLU6 ?KLU6: ?PRG1: ZERO? X /TRUE NEXT? X >N /?KLU7 ?KLU7: MOVE X,WHERE SET 'X,N JUMP ?PRG1 .FUNCT WRONG-SEX-WORD,OBJ,MALE-WORD,FEMALE-WORD ZERO? SEX-CHOSEN /FALSE ZERO? MALE /?ELS11 CALL NOUN-USED,FEMALE-WORD,OBJ ZERO? STACK \?THN8 ?ELS11: ZERO? MALE \FALSE CALL NOUN-USED,MALE-WORD,OBJ ZERO? STACK /FALSE ?THN8: PRINTI "There's no" EQUAL? OBJ,SIDEKICK \?ELS16 PRINTI " one by that name" JUMP ?CND14 ?ELS16: EQUAL? PRSO,OBJ \?ELS18 CALL PRSO-PRINT JUMP ?CND14 ?ELS18: CALL PRSI-PRINT ?CND14: PRINTI " here." ZERO? NAUGHTY-LEVEL /?CND21 PRINTI " [I see you've been playing both as a male and as a female! I guess you're the type who goes both ways, eh? Nudge, nudge, wink, wink!]" ?CND21: SET 'P-WON,FALSE-VALUE CRLF 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 YUKS CALL PICK-ONE,YUK-LIST PRINT STACK CRLF RTRUE .FUNCT IMPOSSIBLES CALL PICK-ONE,IMPOSSIBLE-LIST PRINT STACK CRLF RTRUE .FUNCT WASTES CALL PICK-ONE,WASTE-LIST PRINT STACK CRLF RTRUE .ENDI