.FUNCT INCREMENT-SCORE,BASE,VAR,INC-RANK=0,CHANGE,DIF ZERO? INC-RANK /?CND1 INC 'RANK ?CND1: RANDOM VAR ADD STACK,BASE >CHANGE ADD BASE,VAR SUB STACK,CHANGE >DIF SUB INT-MAX,DIF >INT-MAX SUB EXT-MAX,INT-MAX RANDOM STACK ADD INT-MAX,STACK >EXT-MAX ADD SCORE,CHANGE >SCORE RETURN SCORE .FUNCT INTDIR-F EQUAL? PRSA,V?BOARD \FALSE EQUAL? P-PRSA-WORD,W?RIDE \FALSE IN? PROTAGONIST,STALLION \?ELS12 CALL DO-WALK,P-DIRECTION RSTACK ?ELS12: IN? STALLION,HERE \?ELS14 CALL DO-FIRST,STR?124 RSTACK ?ELS14: PRINT THERES-NOTHING PRINTR "to ride!" .FUNCT INTNUM-F CALL ADJ-USED,A?WIFE ZERO? STACK /?ELS5 EQUAL? HERE,INNER-HAREM \?THN8 ZERO? MALE \?ELS5 ?THN8: CALL PICKING-WIFE ZERO? STACK \?ELS5 SET 'P-WON,FALSE-VALUE PRINT YOU-CANT-SEE-ANY PRINTR "wife here!" ?ELS5: CALL ADJ-USED,A?HUSBAND ZERO? STACK /?ELS11 EQUAL? HERE,INNER-HAREM \?THN14 ZERO? MALE /?ELS11 ?THN14: CALL PICKING-WIFE ZERO? STACK \?ELS11 SET 'P-WON,FALSE-VALUE PRINT YOU-CANT-SEE-ANY PRINTR "husband here!" ?ELS11: EQUAL? PRSA,V?ANSWER-KLUDGE \?ELS17 CALL PERFORM,V?USE-QUOTES,INTNUM RTRUE ?ELS17: EQUAL? P-NUMBER,CHOICE-NUMBER \?ELS19 IN? SULTANS-WIFE,HERE \?ELS19 EQUAL? PRSO,INTNUM \?ELS26 CALL PERFORM-PRSA,SULTANS-WIFE,PRSI RTRUE ?ELS26: CALL PERFORM-PRSA,PRSO,SULTANS-WIFE RTRUE ?ELS19: EQUAL? PRSA,V?PICK,V?ASK-NO-ONE-FOR \?ELS34 IN? HAREM-GUARD,HERE /?THN31 ?ELS34: EQUAL? PRSA,V?ASK-FOR \?ELS30 EQUAL? PRSO,HAREM-GUARD \?ELS30 ?THN31: CALL PICK-WIFE,INTNUM RSTACK ?ELS30: EQUAL? HERE,VIZICOMM-BOOTH \FALSE EQUAL? PRSA,V?SET \FALSE CALL PERFORM-PRSA,VIZICOMM RTRUE .FUNCT PICKING-WIFE EQUAL? PRSA,V?PICK,V?ASK-NO-ONE-FOR \?ELS5 IN? HAREM-GUARD,HERE /TRUE ?ELS5: EQUAL? PRSA,V?ASK-FOR \FALSE EQUAL? PRSO,HAREM-GUARD \FALSE RTRUE .FUNCT EACH-OTHER-F EQUAL? PRSI,EACH-OTHER \?ELS5 CALL PERFORM-PRSA,PRSO,PRSO RTRUE ?ELS5: CALL NOUN-USED,W?ITSELF,EACH-OTHER ZERO? STACK \FALSE SET 'P-WON,FALSE-VALUE CALL ADJ-USED,A?EACH ZERO? STACK /?ELS10 CALL CANT-USE,A?EACH,TRUE-VALUE RTRUE ?ELS10: CALL CANT-USE,W?OTHER,TRUE-VALUE RTRUE .FUNCT MAN-WOMAN-F,PERSON EQUAL? PRSA,V?FOLLOW \?ELS5 EQUAL? FOLLOW-FLAG,4 \?ELS10 PRINT DONT-WANT-TO RTRUE ?ELS10: EQUAL? FOLLOW-FLAG,5 \?ELS12 CALL DO-WALK,P?NORTH RSTACK ?ELS12: EQUAL? FOLLOW-FLAG,6 \?ELS14 CALL DO-WALK,P?EAST RSTACK ?ELS14: CALL V-WALK-AROUND RSTACK ?ELS5: GET P-NAMW,0 EQUAL? STACK,W?MAN \?ELS18 EQUAL? PRSO,MAN-WOMAN \?ELS18 CALL FIND-MAN >PERSON ZERO? PERSON /?ELS25 CALL PERFORM-PRSA,PERSON,PRSI RTRUE ?ELS25: CALL CANT-SEE,MAN-WOMAN RSTACK ?ELS18: GET P-NAMW,0 EQUAL? STACK,W?WOMAN \?ELS29 EQUAL? PRSO,MAN-WOMAN \?ELS29 CALL FIND-WOMAN >PERSON ZERO? PERSON /?ELS36 CALL PERFORM-PRSA,PERSON,PRSI RTRUE ?ELS36: CALL CANT-SEE,MAN-WOMAN RSTACK ?ELS29: GET P-NAMW,1 EQUAL? STACK,W?MAN \?ELS40 EQUAL? PRSI,MAN-WOMAN \?ELS40 CALL FIND-MAN >PERSON ZERO? PERSON /?ELS47 CALL PERFORM-PRSA,PRSO,PERSON RTRUE ?ELS47: CALL CANT-SEE,MAN-WOMAN RSTACK ?ELS40: GET P-NAMW,1 EQUAL? STACK,W?WOMAN \FALSE EQUAL? PRSI,MAN-WOMAN \FALSE CALL FIND-WOMAN >PERSON ZERO? PERSON /?ELS58 CALL PERFORM-PRSA,PRSO,PERSON RTRUE ?ELS58: CALL CANT-SEE,MAN-WOMAN RSTACK .FUNCT FIND-MAN PUTP MAN-WOMAN,P?SDESC,STR?125 IN? SALESMAN,HERE \?ELS5 RETURN SALESMAN ?ELS5: IN? MAD-SCIENTIST,HERE \?ELS7 RETURN MAD-SCIENTIST ?ELS7: IN? MITRE,HERE \?ELS9 RETURN MITRE ?ELS9: IN? PROPRIETOR,HERE \?ELS11 RETURN PROPRIETOR ?ELS11: IN? THORBAST,HERE \?ELS13 ZERO? MALE /?ELS13 RETURN THORBAST ?ELS13: IN? YOUNG-WOMAN,HERE \?ELS17 ZERO? MALE \?ELS17 RETURN YOUNG-WOMAN ?ELS17: IN? SULTAN,HERE \?ELS21 ZERO? MALE /?ELS21 RETURN SULTAN ?ELS21: IN? SULTANS-WIFE,HERE \?ELS25 ZERO? MALE \?ELS25 RETURN SULTANS-WIFE ?ELS25: CALL VISIBLE?,SIDEKICK ZERO? STACK /FALSE ZERO? MALE /FALSE RETURN SIDEKICK .FUNCT FIND-WOMAN PUTP MAN-WOMAN,P?SDESC,STR?126 IN? THORBAST,HERE \?ELS5 ZERO? MALE \?ELS5 RETURN THORBAST ?ELS5: IN? YOUNG-WOMAN,HERE \?ELS9 ZERO? MALE /?ELS9 RETURN YOUNG-WOMAN ?ELS9: IN? THETA,HERE \?ELS13 FSET? THETA,MUNGBIT /?ELS13 RETURN THETA ?ELS13: IN? LGOP,HERE \?ELS17 RETURN LGOP ?ELS17: IN? SULTAN,HERE \?ELS19 ZERO? MALE \?ELS19 RETURN SULTAN ?ELS19: IN? SULTANS-WIFE,HERE \?ELS23 ZERO? MALE /?ELS23 RETURN SULTANS-WIFE ?ELS23: CALL VISIBLE?,SIDEKICK ZERO? STACK /FALSE ZERO? MALE \FALSE RETURN SIDEKICK .FUNCT NOT-HERE-OBJECT-F,TBL,PRSO?=1,OBJ,X=0 EQUAL? PRSO,NOT-HERE-OBJECT \?ELS3 EQUAL? PRSI,NOT-HERE-OBJECT \?ELS3 PRINTR "Those things aren't here!" ?ELS3: EQUAL? P-XNAM,W?BODY \?ELS7 EQUAL? P-XADJN,W?MY,FALSE-VALUE \?ELS7 EQUAL? PRSO,NOT-HERE-OBJECT \?ELS12 SET 'PRSO,ME RFALSE ?ELS12: SET 'PRSI,ME RFALSE ?ELS7: EQUAL? P-XNAM,W?HAND,W?HANDS \?ELS16 EQUAL? P-XADJN,W?MITRE,W?KING'S \?ELS16 EQUAL? PRSA,V?TAKE,V?SHAKE \?ELS16 CALL PERFORM,V?SHAKE-WITH,HANDS,MITRE RTRUE ?ELS16: EQUAL? P-XNAM,W?HANDS,W?HAND,W?PALM /?THN23 EQUAL? P-XNAM,W?FINGER,W?EYE,W?EYES /?THN23 EQUAL? P-XNAM,W?HEAD,W?EARS,W?EAR /?THN23 EQUAL? P-XNAM,W?LIP,W?LIPS,W?MOUTH /?THN23 EQUAL? P-XNAM,W?KNEECAP,W?KNEE,W?KNEES /?THN23 EQUAL? P-XNAM,W?NOSE,W?NOSTRIL,W?BALLS /?THN23 EQUAL? P-XNAM,W?PENIS,W?COCK,W?ASS /?THN23 EQUAL? P-XNAM,W?TITS,W?BREAST,W?BOSOM /?THN23 EQUAL? P-XNAM,W?CUNT,W?VAGINA,W?PUSSY /?THN23 EQUAL? P-XNAM,W?TIT,W?BODY \?ELS20 ?THN23: EQUAL? P-XADJN,W?TRENT,W?TIFFAN,W?TIFF'S /?THN25 EQUAL? P-XADJN,W?GODDESSES,W?SHAPE,W?COUCHMATE /?THN25 EQUAL? P-XADJN,W?THORBAST,W?ASSASSIN,W?SALESMAN /?THN25 EQUAL? P-XADJN,W?SCIENTIST,W?GORILLA,W?MONKEY /?THN25 EQUAL? P-XADJN,W?KING'S,W?MITRE,W?SULTAN /?THN25 EQUAL? P-XADJN,W?PROPRIETOR,W?OWNER,W?GUARD /?THN25 EQUAL? P-XADJN,W?PRINCE,W?DAUGHTER,W?THETA /?THN25 EQUAL? P-XADJN,W?BARTENDER,W?WIFE'S,W?HUSBAND /?THN25 EQUAL? P-XADJN,W?ELYSIA,W?ELYSIUM,W?WOMAN /?THN25 EQUAL? P-XADJN,W?ROBOT,W?BABY'S /?THN25 EQUAL? P-XADJN,W?MAN'S,W?HIS,W?HER \?ELS20 ?THN25: PRINTR "[Sorry. Given limited space, we can't handle everything. Therefore, you can only refer to characters in the story, not individual body parts. For example, you can KISS IRWIN but you can't KISS IRWIN'S ELBOW.]" ?ELS20: EQUAL? PRSO,NOT-HERE-OBJECT \?ELS28 SET 'TBL,P-PRSO JUMP ?CND1 ?ELS28: SET 'TBL,P-PRSI SET 'PRSO?,FALSE-VALUE ?CND1: ZERO? PRSO? /?ELS33 CALL PRSO-MOBY-VERB? ZERO? STACK /?ELS33 SET 'X,TRUE-VALUE JUMP ?CND31 ?ELS33: ZERO? PRSO? \?CND31 CALL PRSI-MOBY-VERB? ZERO? STACK /?CND31 SET 'X,TRUE-VALUE ?CND31: ZERO? X /?ELS42 CALL FIND-NOT-HERE,TBL,PRSO? >OBJ ZERO? OBJ /FALSE EQUAL? OBJ,NOT-HERE-OBJECT \TRUE EQUAL? PRSA,V?FOLLOW,V?WALK-TO \?ELS54 CALL V-WALK-AROUND JUMP ?CND40 ?ELS54: PRINTI "[" PRINT YOULL-HAVE-TO PRINTI "be more specific.]" CRLF JUMP ?CND40 ?ELS42: EQUAL? WINNER,PROTAGONIST \?ELS61 PRINTI "You" JUMP ?CND59 ?ELS61: PRINTI "Looking confused," CALL TPRINT,WINNER PRINTI " says, ""I" ?CND59: PRINTI " can't " EQUAL? P-XNAM,W?ODOR,W?SMELL,W?SCENT \?ELS66 PRINTI "smell" JUMP ?CND64 ?ELS66: PRINTI "see" ?CND64: CALL NAME?,P-XNAM ZERO? STACK /?THN72 EQUAL? P-XNAM,W?FORD \?CND69 ?THN72: PRINTI " any" ?CND69: CALL NOT-HERE-PRINT,PRSO? PRINTI " here!" EQUAL? WINNER,PROTAGONIST /?CND74 PRINTI """" ?CND74: CRLF ?CND40: CALL STOP RSTACK .FUNCT PRSO-MOBY-VERB? EQUAL? PRSA,V?WHAT,V?WHERE /TRUE EQUAL? PRSA,V?WAIT-FOR,V?WALK-TO,V?MAKE /TRUE EQUAL? PRSA,V?BUY,V?CALL,V?SAY /TRUE EQUAL? PRSA,V?FIND,V?FOLLOW,V?PHONE /TRUE EQUAL? PRSA,V?USE-QUOTES,V?ANSWER-KLUDGE \FALSE RTRUE .FUNCT PRSI-MOBY-VERB? EQUAL? PRSA,V?ASK-ABOUT,V?ASK-FOR,V?TELL-ABOUT \FALSE RTRUE .FUNCT FIND-NOT-HERE,TBL,PRSO?,M-F,OBJ CALL MOBY-FIND,TBL >M-F EQUAL? 1,M-F \?ELS5 ZERO? PRSO? /?ELS8 SET 'PRSO,P-MOBY-FOUND CALL THIS-IS-IT,PRSO RFALSE ?ELS8: SET 'PRSI,P-MOBY-FOUND RFALSE ?ELS5: LESS? 1,M-F \?ELS13 GET TBL,1 >OBJ GETP OBJ,P?GENERIC CALL STACK >OBJ ZERO? OBJ /?ELS13 EQUAL? OBJ,NOT-HERE-OBJECT /TRUE ZERO? PRSO? /?ELS20 SET 'PRSO,OBJ CALL THIS-IS-IT,PRSO RFALSE ?ELS20: SET 'PRSI,OBJ RFALSE ?ELS13: RETURN NOT-HERE-OBJECT .FUNCT NOT-HERE-PRINT,PRSO?,?TMP1 ZERO? P-OFLAG /?ELS5 ZERO? P-XADJ /?CND7 PRINTI " " PRINTB P-XADJN ?CND7: ZERO? P-XNAM /FALSE PRINTI " " PRINTB P-XNAM RTRUE ?ELS5: ZERO? PRSO? /?ELS18 GET P-ITBL,P-NC1 >?TMP1 GET P-ITBL,P-NC1L CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE RSTACK ?ELS18: GET P-ITBL,P-NC2 >?TMP1 GET P-ITBL,P-NC2L CALL BUFFER-PRINT,?TMP1,STACK,FALSE-VALUE RSTACK .FUNCT LOVE-F,LOVER EQUAL? PRSA,V?MAKE \FALSE CALL FIND-IN,HERE,ACTORBIT,STR?80 >LOVER ZERO? LOVER /?ELS10 CALL PERFORM,V?FUCK,LOVER RTRUE ?ELS10: PRINTR "Alone? How odd." .FUNCT GLOBAL-SLEEP-F EQUAL? PRSA,V?TAKE,V?WALK-TO \?ELS5 CALL PERFORM,V?SLEEP RTRUE ?ELS5: EQUAL? PRSA,V?PUT-TO \FALSE EQUAL? PRSI,GLOBAL-SLEEP \FALSE PRINTR "You're not a hypnotist." .FUNCT GROUND-F EQUAL? HERE,IN-SPACE \?ELS3 CALL CANT-SEE,GROUND RTRUE ?ELS3: FSET? HERE,INDOORSBIT /?THN6 LOC PROTAGONIST EQUAL? STACK,BARGE \?ELS5 ?THN6: PUTP GROUND,P?SDESC,STR?128 JUMP ?CND1 ?ELS5: PUTP GROUND,P?SDESC,STR?127 ?CND1: EQUAL? PRSA,V?EXAMINE \?ELS14 EQUAL? HERE,SPAWNING-GROUND \?ELS19 PRINT OOZY-WITH-SLIME CRLF RTRUE ?ELS19: CALL GLOBAL-IN?,HOLE,HERE ZERO? STACK /?ELS21 CALL HOLE-INVISIBLE ZERO? STACK \?ELS21 PRINTI "You notice" CALL ARPRINT,HOLE RSTACK ?ELS21: EQUAL? HERE,CELL \?ELS25 PRINTR "Soft. Cushiony." ?ELS25: EQUAL? HERE,OTHER-CELL \?ELS27 PRINTR "Rock-hard." ?ELS27: EQUAL? HERE,HOLD \?ELS29 EQUAL? SIDEKICK-EXPLODED,1 \?ELS29 CALL SPLATTERED-DESC CRLF RTRUE ?ELS29: CALL IN-CATACOMBS ZERO? STACK /FALSE PRINT CATACOMBS-WATER-DESC CRLF RTRUE ?ELS14: EQUAL? PRSA,V?TOUCH \?ELS35 EQUAL? HERE,CELL,OTHER-CELL \?ELS35 CALL PERFORM,V?EXAMINE,GROUND RTRUE ?ELS35: EQUAL? PRSA,V?CLIMB,V?CLIMB-ON,V?CLIMB-UP /?THN40 EQUAL? PRSA,V?BOARD \?ELS39 ?THN40: CALL WASTES RSTACK ?ELS39: EQUAL? PRSA,V?LOOK-UNDER \?ELS43 CALL IMPOSSIBLES RSTACK ?ELS43: EQUAL? PRSA,V?LEAVE \?ELS45 CALL DO-WALK,P?UP RSTACK ?ELS45: EQUAL? PRSA,V?STAND-ON,V?LEAP \FALSE EQUAL? HERE,ROOF \FALSE CALL PERFORM,V?LEAP,ROOMS RTRUE .FUNCT CEILING-F EQUAL? PRSA,V?EXAMINE \?ELS5 EQUAL? HERE,HOLD \?ELS10 EQUAL? SIDEKICK-EXPLODED,1 \?ELS10 CALL SPLATTERED-DESC CRLF RTRUE ?ELS10: EQUAL? HERE,CELL \?ELS14 ZERO? HOLE-OPEN /?ELS14 PRINTR "There's a hole in the ceiling." ?ELS14: EQUAL? HERE,BEDROOM \FALSE FSET? BEDROOM,MUNGBIT \FALSE PRINTR "Most of the ceiling is now gone." ?ELS5: FSET? HERE,INDOORSBIT /?ELS22 CALL CANT-SEE,CEILING RSTACK ?ELS22: EQUAL? PRSA,V?ENTER \?ELS24 EQUAL? HERE,CELL \?ELS24 ZERO? HOLE-OPEN /?ELS24 CALL DO-WALK,P?UP RSTACK ?ELS24: EQUAL? PRSA,V?LOOK-UNDER \FALSE CALL PERFORM,V?LOOK RTRUE .FUNCT ODOR-F EQUAL? HERE,IN-SPACE \?ELS5 IN? THORBAST,HERE /?ELS5 PRINT CANT-SMELL RTRUE ?ELS5: EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS9 CALL RUNNING?,I-URGE ZERO? STACK /?ELS9 PRINT CANT-SMELL RTRUE ?ELS9: EQUAL? HERE,PLAZA \?ELS13 LESS? PLAZA-COUNTER,9 \?ELS13 PRINT CANT-SMELL RTRUE ?ELS13: EQUAL? PRSA,V?SMELL /?THN18 EQUAL? PRSA,V?EXAMINE \FALSE EQUAL? P-PRSA-WORD,W?DESCRIBE \FALSE ?THN18: GETP HERE,P?ODOR ZERO? STACK /?ELS26 FSET? HERE,SMELLEDBIT \?ELS31 PRINTI "There is a strong odor of " GETP HERE,P?ODOR PRINT STACK PRINTR " in the air." ?ELS31: FSET HERE,SMELLEDBIT CALL SCRATCH-N-SNIFF GETP HERE,P?ACTION CALL STACK,M-SMELL CRLF RTRUE ?ELS26: EQUAL? HERE,INNER-HAREM \?ELS35 SET 'HERE,HAREM CALL PERFORM,V?SMELL,ODOR SET 'HERE,INNER-HAREM RTRUE ?ELS35: EQUAL? HERE,GARDEN \?ELS37 CALL NO-SCRATCH-N-SNIFF,STR?129 RSTACK ?ELS37: CALL ACCESSIBLE?,CHOCOLATE ZERO? STACK /?ELS39 FSET? CHOCOLATE,UNTEEDBIT /?ELS39 PRINTI "[the " CALL DPRINT,CHOCOLATE PRINTI "]" CRLF CALL PERFORM,V?SMELL,CHOCOLATE RTRUE ?ELS39: PRINT CANT-SMELL RTRUE .FUNCT SCRATCH-N-SNIFF,NUM=0 PRINTI "[Scratch 'n' sniff spot number " ZERO? NUM /?ELS3 PRINTN NUM JUMP ?CND1 ?ELS3: GETP HERE,P?ODOR-NUMBER PRINTN STACK ?CND1: PRINT HIT-RETURN PRINTI "continue.]" READ P-INBUF,P-LEXV CRLF RTRUE .FUNCT NO-SCRATCH-N-SNIFF,STRING PRINTI "[Too bad there's no scratch 'n' sniff for this one, huh?] Ahhh, the odor of " PRINT STRING PRINTR "!" .FUNCT WATER-F EQUAL? HERE,MINARET,DUNETOP \?ELS5 CALL TOUCHING?,WATER ZERO? STACK /?ELS5 CALL CANT-REACH,WATER RSTACK ?ELS5: EQUAL? PRSA,V?BUY,V?DRINK \?ELS9 PRINTR "You're not thirsty." ?ELS9: EQUAL? PRSA,V?EXAMINE,V?LOOK-UNDER,V?LOOK-INSIDE \?ELS11 PRINTR "The water is dark and murky." ?ELS11: EQUAL? PRSA,V?MAKE,V?PASS \?ELS13 CALL V-PEE RSTACK ?ELS13: EQUAL? PRSA,V?REACH-IN \?ELS15 PRINTR "Your hand is now wet." ?ELS15: EQUAL? PRSA,V?PUT-ON \?ELS17 EQUAL? PRSI,WATER \?ELS17 CALL PERFORM,V?PUT,PRSO,WATER RTRUE ?ELS17: CALL GLOBAL-IN?,CANAL-OBJECT,HERE ZERO? STACK /?ELS21 EQUAL? PRSO,WATER \?ELS26 CALL PERFORM-PRSA,CANAL-OBJECT,PRSI RTRUE ?ELS26: CALL PERFORM-PRSA,PRSO,CANAL-OBJECT RTRUE ?ELS21: EQUAL? PRSA,V?PUT \?ELS30 EQUAL? PRSI,WATER \?ELS30 EQUAL? PRSO,RAFT \?ELS37 EQUAL? HERE,OASIS \?ELS37 PRINTR "Next you'll be putting yachts in bathtubs!" ?ELS37: EQUAL? PRSO,RAFT \?ELS41 CALL IN-CATACOMBS ZERO? STACK /?ELS41 CALL PERFORM,V?DROP,RAFT RTRUE ?ELS41: CALL WASTES RSTACK ?ELS30: EQUAL? PRSA,V?WALK,V?ON \?ELS47 EQUAL? HERE,MENS-ROOM,LADIES-ROOM \?ELS47 CALL PERFORM,V?FLUSH,TOILET RTRUE ?ELS47: EQUAL? PRSA,V?CRAWL-UNDER,V?ENTER,V?BOARD \FALSE CALL V-SWIM RSTACK .FUNCT HANDS-F,ACTOR EQUAL? PRSA,V?APPLAUD \?ELS5 SET 'PRSO,FALSE-VALUE CALL V-APPLAUD RSTACK ?ELS5: EQUAL? PRSA,V?SHAKE \?ELS7 EQUAL? HERE,THRONE-ROOM \?ELS12 CALL PERFORM,V?SHAKE-WITH,HANDS,MITRE RTRUE ?ELS12: CALL FIND-IN,HERE,ACTORBIT,STR?52 >ACTOR ZERO? ACTOR /?ELS14 CALL PERFORM,V?SHAKE-WITH,HANDS,ACTOR RTRUE ?ELS14: PRINTR "Pleased to meet you." ?ELS7: EQUAL? PRSA,V?COUNT \?ELS18 CALL NOUN-USED,W?FINGER,HANDS ZERO? STACK /?ELS21 PRINTI "Ten" JUMP ?CND19 ?ELS21: PRINTI "Two" ?CND19: PRINTR ", as usual." ?ELS18: EQUAL? PRSA,V?CLEAN \?ELS25 PRINTR "Done." ?ELS25: EQUAL? PRSA,V?TAKE-WITH \?ELS27 EQUAL? PRSI,HANDS \?ELS27 CALL PERFORM,V?TAKE,PRSO RTRUE ?ELS27: EQUAL? PRSA,V?PUT-ON \?ELS31 EQUAL? PRSI,EYES \?ELS31 CALL PERFORM,V?SPUT-ON,EYES,HANDS RTRUE ?ELS31: EQUAL? PRSA,V?PUT,V?PUT-ON \?ELS35 EQUAL? PRSI,EARS \?ELS35 CALL PERFORM,V?SPUT-ON,EARS,HANDS RTRUE ?ELS35: EQUAL? PRSA,V?SPUT-ON \FALSE EQUAL? PRSO,NOSE,EARS,EYES \FALSE ZERO? GONE-APE /?ELS46 PRINT DEXTERITY RTRUE ?ELS46: CALL ITEMS-CARRIED GRTR? STACK,0 \?ELS49 PRINT YOU-CANT PRINTI "do that with " PRINTD HANDS PRINTR "s full!" ?ELS49: ZERO? HAND-COVER /?ELS54 PRINTI "You're already" JUMP ?CND52 ?ELS54: SET 'HAND-COVER,PRSO FSET PRSO,MUNGBIT EQUAL? HAND-COVER,EARS \?ELS60 PRINT MUFFLED PRINTI "'re" JUMP ?CND52 ?ELS60: PRINTI "Okay, you're now" ?CND52: PRINTI " covering " CALL DPRINT,HAND-COVER PRINTI " with " PRINTD HANDS PRINTR "s." .FUNCT ITEMS-CARRIED,X,CNT=0 FIRST? PROTAGONIST >X /?KLU10 ?KLU10: ?PRG1: ZERO? X \?ELS5 RETURN CNT ?ELS5: FSET? X,WORNBIT /?CND3 EQUAL? X,COMIC-BOOK /?CND3 INC 'CNT ?CND3: NEXT? X >X /?KLU11 ?KLU11: JUMP ?PRG1 .FUNCT HEAD-F EQUAL? PRSA,V?PUT-ON \FALSE EQUAL? PRSO,SACK,SHEET,BLANKET \FALSE SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Where do you think you are, Traal?" .FUNCT EYES-F EQUAL? PRSA,V?CLOSE \?ELS5 ZERO? GONE-APE /?ELS10 CALL WASTES RSTACK ?ELS10: FSET? EYES,MUNGBIT \?ELS13 EQUAL? EYES,HAND-COVER \?ELS18 PRINT HANDS-OVER-EYES RTRUE ?ELS18: PRINT SENILITY-STRIKES RTRUE ?ELS13: FSET EYES,MUNGBIT CALL EYES-ARE-NOW,STR?130 RSTACK ?ELS5: EQUAL? PRSA,V?OPEN \FALSE FSET? EYES,MUNGBIT \?ELS29 EQUAL? EYES,HAND-COVER \?ELS34 PRINT HANDS-OVER-EYES RTRUE ?ELS34: CALL SENSE-AGAIN,EYES RSTACK ?ELS29: PRINTR "They are open!" .FUNCT EYES-ARE-NOW,STRING PRINTI "Your eyes are now " PRINT STRING PRINT PERIOD-CR RTRUE .FUNCT OPEN-EYES-AND-REMOVE-HANDS FCLEAR EYES,MUNGBIT ZERO? HAND-COVER /FALSE FCLEAR HAND-COVER,MUNGBIT SET 'HAND-COVER,FALSE-VALUE RETURN HAND-COVER .FUNCT EARS-F EQUAL? PRSA,V?TAKE \?ELS5 EQUAL? P-PRSA-WORD,W?HOLD \?ELS5 CALL PERFORM,V?SPUT-ON,EARS,HANDS RTRUE ?ELS5: EQUAL? PRSA,V?UNCOVER \FALSE FSET? COTTON-BALLS,WORNBIT \FALSE ZERO? GONE-APE \FALSE EQUAL? EARS,HAND-COVER \?CND12 SET 'HAND-COVER,FALSE-VALUE ?CND12: CALL PERFORM,V?REMOVE,COTTON-BALLS RTRUE .FUNCT NOSE-F EQUAL? PRSA,V?PICK,V?BLOW \?ELS5 PRINT YECHH RTRUE ?ELS5: EQUAL? PRSA,V?TAKE \?ELS7 EQUAL? P-PRSA-WORD,W?HOLD \?ELS7 CALL PERFORM,V?SPUT-ON,NOSE,HANDS RTRUE ?ELS7: EQUAL? PRSA,V?UNCOVER \FALSE FSET? CLOTHES-PIN,WORNBIT \FALSE ZERO? GONE-APE \FALSE EQUAL? NOSE,HAND-COVER \?CND14 SET 'HAND-COVER,FALSE-VALUE ?CND14: CALL PERFORM,V?REMOVE,CLOTHES-PIN RTRUE .FUNCT MOUTH-F EQUAL? PRSA,V?CLEAN \?ELS5 FSET? LIP-BALM,WORNBIT \?ELS5 CALL PERFORM,V?REMOVE,LIP-BALM RTRUE ?ELS5: EQUAL? PRSA,V?EXAMINE \?ELS9 FSET? LIP-BALM,WORNBIT \?ELS9 CALL ROB,PROTAGONIST,TOILET MOVE LIP-BALM,PROTAGONIST CALL V-INVENTORY CALL ROB,TOILET,PROTAGONIST RSTACK ?ELS9: EQUAL? PRSA,V?PUT \?ELS13 EQUAL? PRSI,MOUTH \?ELS13 CALL PERFORM,V?EAT,PRSO RTRUE ?ELS13: EQUAL? PRSA,V?OPEN \FALSE PRINTR "This fails to catch any flies." .FUNCT NAUGHTY-BITS-F CALL NOUN-USED,W?PUSSY,CUNT ZERO? STACK /?ELS5 CALL ADJ-USED,A?MY ZERO? STACK \?ELS5 CALL VISIBLE?,PAINTING ZERO? STACK /?ELS5 EQUAL? PRSO,CUNT \?ELS12 CALL PERFORM-PRSA,PAINTING,PRSI RTRUE ?ELS12: CALL PERFORM-PRSA,PRSI,PAINTING RTRUE ?ELS5: PRINTI "You don't need to refer to " PRINTD COCK PRINTI " to complete " PRINT LGOP-CAPS PRINT PERIOD-CR RTRUE .FUNCT ME-F EQUAL? PRSA,V?TELL \?ELS5 PRINTI "Talking to yourself is a sign of impending mental collapse." CRLF CALL STOP RSTACK ?ELS5: EQUAL? PRSA,V?RELIEVE \?ELS7 CALL V-PEE RSTACK ?ELS7: EQUAL? PRSA,V?PUT \?ELS9 EQUAL? PRSI,ME \?ELS9 ZERO? MALE \?ELS9 ZERO? NAUGHTY-LEVEL /?ELS9 CALL PERFORM,V?FUCK,ME RTRUE ?ELS9: EQUAL? PRSA,V?EAT,V?FUCK,V?TOUCH \?ELS13 ZERO? NAUGHTY-LEVEL /?ELS13 PRINTI "Encouraging such behavior would endanger the possibility of landing a lucrative Hollywood contract to make a film of " PRINT LGOP-CAPS PRINT PERIOD-CR RTRUE ?ELS13: EQUAL? PRSA,V?GIVE \?ELS17 EQUAL? PRSI,ME \?ELS17 CALL PERFORM,V?TAKE,PRSO RTRUE ?ELS17: EQUAL? PRSA,V?SHOW \?ELS21 EQUAL? PRSI,ME \?ELS21 CALL PERFORM,V?EXAMINE,PRSO RTRUE ?ELS21: EQUAL? PRSA,V?MOVE \?ELS25 CALL V-WALK-AROUND RSTACK ?ELS25: EQUAL? PRSA,V?SEARCH \?ELS27 CALL V-INVENTORY RTRUE ?ELS27: EQUAL? PRSA,V?EXAMINE \?ELS29 ZERO? GONE-APE /?ELS34 PRINTR "You've gone ape!" ?ELS34: PRINTI "You're wearing" FSET? WHITE-SUIT,WORNBIT \?ELS42 CALL ARPRINT,WHITE-SUIT RSTACK ?ELS42: CALL ARPRINT,GARMENT RSTACK ?ELS29: EQUAL? PRSA,V?MUNG,V?KILL \?ELS46 CALL JIGS-UP,STR?131 RSTACK ?ELS46: EQUAL? PRSA,V?WHERE,V?FIND \?ELS48 PRINTI "You're in" CALL TRPRINT,HERE RSTACK ?ELS48: EQUAL? PRSA,V?MEASURE \?ELS50 PRINTR "You don't measure up." ?ELS50: EQUAL? PRSA,V?UNTIE \?ELS52 ZERO? BODY-TIED-TO-SLAB /?ELS52 ZERO? GONE-APE /?ELS59 CALL PERFORM-PRSA,YOUR-BODY RTRUE ?ELS59: CALL YUKS RSTACK ?ELS52: EQUAL? PRSA,V?TIE \?ELS64 EQUAL? PRSI,SECOND-SLAB,FIRST-SLAB \?ELS64 ZERO? BODY-TIED-TO-SLAB /?ELS71 ZERO? GONE-APE \?ELS71 PRINTR "You are!" ?ELS71: PRINT YOU-CANT PRINTR "tie yourself down!" ?ELS64: EQUAL? PRSA,V?FOLLOW \FALSE PRINTR "Like most computers, I don't have legs." .FUNCT GLOBAL-ROOM-F EQUAL? PRSA,V?EXAMINE,V?LOOK-INSIDE,V?LOOK \?ELS5 CALL V-LOOK RSTACK ?ELS5: EQUAL? PRSA,V?WALK-TO,V?ENTER \?ELS7 CALL V-WALK-AROUND RSTACK ?ELS7: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?LEAVE \?ELS9 CALL DO-WALK,P?OUT RSTACK ?ELS9: EQUAL? PRSA,V?SEARCH \?ELS11 EQUAL? HERE,EXIT-SHOP \?ELS16 CALL PERFORM-PRSA,DUST RTRUE ?ELS16: PRINT NOTHING-NEW RTRUE ?ELS11: EQUAL? PRSA,V?PUT \FALSE EQUAL? PRSI,GLOBAL-ROOM \FALSE EQUAL? P-PRSA-WORD,W?THROW \?ELS27 CALL PERFORM,V?THROW,PRSO RTRUE ?ELS27: CALL PERFORM,V?DROP,PRSO RTRUE .FUNCT HOUSE-F EQUAL? PRSA,V?BOARD,V?WALK-TO,V?ENTER \?ELS5 EQUAL? HERE,BEDROOM,TEENSY-WEENSY-HOUSE /?THN11 EQUAL? HERE,LABORATORY,LOOKS-CAN-BE-DECEIVING \?ELS10 ?THN11: PRINT LOOK-AROUND RTRUE ?ELS10: EQUAL? HERE,FRONT-DOOR \?ELS14 CALL DO-WALK,P?NORTH RSTACK ?ELS14: EQUAL? HERE,BACK-DOOR \?ELS16 CALL DO-WALK,P?SOUTH RSTACK ?ELS16: EQUAL? HERE,CLEVELAND \?ELS18 CALL DO-WALK,P?NE RSTACK ?ELS18: EQUAL? HERE,BEDROOM,GARDEN \FALSE CALL DO-WALK,P?WEST RSTACK ?ELS5: EQUAL? PRSA,V?DISEMBARK,V?LEAVE,V?EXIT \?ELS22 EQUAL? HERE,LABORATORY,BEDROOM \?ELS27 PRINT CANT-FROM-HERE RTRUE ?ELS27: EQUAL? HERE,TEENSY-WEENSY-HOUSE,LABORATORY \?ELS29 CALL V-WALK-AROUND RSTACK ?ELS29: PRINT LOOK-AROUND RTRUE ?ELS22: EQUAL? PRSA,V?LOOK-INSIDE \?ELS33 EQUAL? HERE,FRONT-DOOR,BACK-DOOR,GARDEN \?ELS38 PRINT CANT-FROM-HERE RTRUE ?ELS38: CALL V-LOOK RSTACK ?ELS33: EQUAL? PRSA,V?SEARCH \FALSE PRINT NOTHING-NEW RTRUE .FUNCT SIGN-F,NUM CALL CANAL-LOC >NUM EQUAL? HERE,CANAL \?ELS5 EQUAL? NUM,15 /?ELS5 CALL CANT-SEE,SIGN RSTACK ?ELS5: EQUAL? PRSA,V?READ \FALSE EQUAL? HERE,END-OF-HALLWAY \?ELS14 PRINTR """Up To Observation Room.""" ?ELS14: EQUAL? HERE,OBSERVATION-ROOM \?ELS16 PRINTR """Down to Cells.""" ?ELS16: EQUAL? HERE,EXIT-SHOP \?ELS18 PRINTI """E" PRINT BOUGHT-AND-SOLD PRINTR ".""" ?ELS18: EQUAL? HERE,VIZICOMM-BOOTH \?ELS20 PRINTR """Out of order.""" ?ELS20: EQUAL? HERE,SOUTH-POLE \?ELS22 PRINTR """Martian Orphanages, Inc. South Polar Branch""" ?ELS22: EQUAL? HERE,PENGUIN-PARK \?ELS24 PRINTR """Give generously to the Penguin Retirement Fund.""" ?ELS24: EQUAL? HERE,CANAL,WATTZ-UPP-DOCK \FALSE PRINTR "The sign has no writing, only the skull and crossbones." .FUNCT STAIRS-F EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \?ELS5 CALL DO-WALK,P?UP RSTACK ?ELS5: EQUAL? PRSA,V?CLIMB-DOWN \?ELS7 EQUAL? HERE,BEDROOM \?ELS12 CALL BEDROOM-EXIT-F,TRUE-VALUE ZERO? STACK /TRUE CALL GOTO,TEENSY-WEENSY-HOUSE RSTACK ?ELS12: CALL DO-WALK,P?DOWN RSTACK ?ELS7: EQUAL? PRSA,V?THROW \FALSE EQUAL? PRSI,STAIRS \FALSE CALL WASTES RSTACK .FUNCT WINDOW-F EQUAL? PRSA,V?LOOK-INSIDE \?ELS5 EQUAL? HERE,OBSERVATION-ROOM \?ELS10 SET 'SEEN-EXAMINATION-ROOM,TRUE-VALUE PRINT YOU-SEE PRINTI " a large room below. " CALL EXAMINATION-ROOM-DESC,TRUE-VALUE RSTACK ?ELS10: EQUAL? HERE,BEDROOM \?ELS12 MOVE FORD,HERE FSET? HEADLIGHT,TRYTAKEBIT \?CND13 MOVE HEADLIGHT,HERE ?CND13: MOVE FORD,HERE PRINTI "A car is parked on the street, twenty feet below. It's a Ford, a 1933 Ford ... and one of its " PRINTD HEADLIGHT PRINTI "s is " IN? HEADLIGHT,HERE \?ELS18 FSET? HEADLIGHT,TRYTAKEBIT \?ELS18 PRINTI "loose" JUMP ?CND16 ?ELS18: PRINTI "missing" ?CND16: PRINT PERIOD-CR RTRUE ?ELS12: EQUAL? HERE,HOLD \?ELS24 PRINT YOU-SEE PRINTI " Saturn and her ample rings." EQUAL? SPACESHIP-SCENE-STATUS,1 /?CND25 PRINTI " Much closer, no more than a hundred feet away, is" CALL APRINT,PASSENGER-SHIP PRINTI ". Judging by the steam blowing from her ion engines, she's preparing to depart." ?CND25: CRLF RTRUE ?ELS24: EQUAL? HERE,JOES-BAR \?ELS29 PRINTR "It's raw and blowy outside. Little whirlpools of dust dance by." ?ELS29: EQUAL? HERE,SOUTH-POLE \?ELS31 FSET? ORPHANAGE-FOYER,TOUCHBIT \?ELS36 PRINTR "The window is fogged." ?ELS36: SET 'COTTON-BALLS-SEEN,TRUE-VALUE MOVE COTTON-BALLS,HERE PRINT YOU-SEE PRINTI " a " PRINTD COTTON-BALLS PRINTR " sitting in an entrance foyer." ?ELS31: EQUAL? HERE,ORPHANAGE-FOYER \?ELS40 PRINT YOU-SEE PRINTR " an icy plain." ?ELS40: EQUAL? HERE,MAIN-HALL-OF-PALACE \FALSE PRINTR "Colored light spills through the window." ?ELS5: EQUAL? PRSA,V?OPEN \?ELS44 EQUAL? HERE,BEDROOM \?ELS49 PRINT ALREADY-IS RTRUE ?ELS49: PRINTR "It's not that kind of window." ?ELS44: EQUAL? PRSA,V?CLOSE \?ELS53 EQUAL? HERE,BEDROOM \?ELS58 PRINTR "It seems stuck." ?ELS58: PRINT ALREADY-IS RTRUE ?ELS53: EQUAL? PRSA,V?PUT,V?PUT-THROUGH \?ELS62 EQUAL? PRSI,WINDOW \?ELS62 EQUAL? HERE,BEDROOM \?ELS62 EQUAL? PRSO,HANDS \?ELS69 PRINT HUH RTRUE ?ELS69: IN? PROTAGONIST,BED \?ELS71 CALL CANT-REACH,PRSI RSTACK ?ELS71: EQUAL? PRSO,SHEET \?ELS73 ZERO? SHEET-HANGING \FALSE ZERO? SHEET-TIED \FALSE ?ELS73: REMOVE PRSO CALL PRONOUN PRINTI " land" FSET? PRSO,PLURALBIT /?CND80 PRINTI "s" ?CND80: PRINTI " on the street below. An urchin dashes up and runs off with" CALL TRPRINT,PRSO RSTACK ?ELS62: EQUAL? PRSA,V?EMPTY-FROM \?ELS84 EQUAL? PRSI,WINDOW \?ELS84 EQUAL? HERE,BEDROOM \?ELS84 CALL PERFORM,V?EMPTY,PRSO,WINDOW RTRUE ?ELS84: EQUAL? PRSA,V?DISEMBARK,V?EXIT,V?ENTER /?THN89 EQUAL? PRSA,V?LEAP-OFF \FALSE ?THN89: EQUAL? HERE,BEDROOM \?ELS95 ZERO? SHEET-HANGING /?ELS100 CALL PERFORM,V?CLIMB-DOWN,SHEET RTRUE ?ELS100: CALL PLUMMET-TO-PAVEMENT RSTACK ?ELS95: EQUAL? HERE,SOUTH-POLE,ORPHANAGE-FOYER \?ELS105 PRINTR "It's barred!" ?ELS105: EQUAL? HERE,OBSERVATION-ROOM \?ELS107 CALL DO-WALK,P?WEST RSTACK ?ELS107: CALL DO-FIRST,STR?66,WINDOW RSTACK .FUNCT TREE-F EQUAL? PRSA,V?CLIMB-UP,V?CLIMB \FALSE PRINTR "The trees are all unclimbable." .FUNCT HOLE-F,OLD-HERE CALL CIRCLE-ISNT-BLACK ZERO? STACK \?ELS9 EQUAL? PRSO,HOLE \?ELS9 GET P-ADJW,0 EQUAL? STACK,A?WHITE /?THN6 ?ELS9: CALL CIRCLE-ISNT-BLACK ZERO? STACK \?ELS11 EQUAL? PRSI,HOLE \?ELS11 GET P-ADJW,1 EQUAL? STACK,A?WHITE /?THN6 ?ELS11: CALL CIRCLE-ISNT-BLACK ZERO? STACK /?ELS13 EQUAL? PRSO,HOLE \?ELS13 GET P-ADJW,0 EQUAL? STACK,A?BLACK /?THN6 ?ELS13: CALL CIRCLE-ISNT-BLACK ZERO? STACK /?ELS5 EQUAL? PRSI,HOLE \?ELS5 GET P-ADJW,1 EQUAL? STACK,A?BLACK \?ELS5 ?THN6: CALL CANT-SEE,HOLE RSTACK ?ELS5: CALL HOLE-INVISIBLE ZERO? STACK /?ELS17 CALL CANT-SEE,HOLE RSTACK ?ELS17: EQUAL? HERE,CELL \?ELS19 CALL NOUN-USED,W?HOLE,HOLE ZERO? STACK /?ELS19 EQUAL? PRSA,V?WALK-TO,V?ENTER,V?BOARD /?THN22 EQUAL? PRSA,V?LOOK-INSIDE \?ELS19 ?THN22: CALL DO-WALK,P?UP RSTACK ?ELS19: LOC PROTAGONIST EQUAL? STACK,CAGE,FIRST-SLAB,SECOND-SLAB \?ELS25 CALL TOUCHING?,HOLE ZERO? STACK /?ELS25 CALL CANT-REACH,HOLE RTRUE ?ELS25: EQUAL? PRSA,V?BOARD,V?ENTER,V?STAND-ON \?ELS29 CALL CIRCLE-ISNT-BLACK ZERO? STACK /?ELS32 PRINT NOTHING-HAPPENS RTRUE ?ELS32: IN? PROTAGONIST,HERE /?CND30 CALL NOT-GOING-ANYWHERE RTRUE ?CND30: CALL FALL-THROUGH-HOLE SET 'LONG-CORRIDOR-LOC,1 SET 'MAD-SCIENTIST-COUNTER,0 SET 'IMPATIENCE-COUNTER,0 CALL DEQUEUE,I-MAD-SCIENTIST SET 'OLD-HERE,HERE EQUAL? HERE,LONG-CORRIDOR \?ELS37 PRINTI "Geronimo! Yow! You appear in midair, high above a canal-studded desertscape. The ground is approaching uncomfortably fast. Caw! Caw! A pterodactyl snatches you" CALL AND-SIDEKICK PRINTI " in midair and deposits you safely in" PRINT ELLIPSIS FSET? MY-KIND-OF-DOCK,TOUCHBIT \?ELS40 RANDOM 100 LESS? 60,STACK /?ELS40 CALL GOTO,MY-KIND-OF-DOCK JUMP ?CND35 ?ELS40: FSET? OASIS,TOUCHBIT \?ELS44 RANDOM 100 LESS? 40,STACK /?ELS44 CALL GOTO,OASIS JUMP ?CND35 ?ELS44: CALL GOTO,RUINED-CASTLE-2 JUMP ?CND35 ?ELS37: GETP HERE,P?HOLE-DESTINATION CALL GOTO,STACK ?CND35: EQUAL? OLD-HERE,WELL-BOTTOM \TRUE IN? SIDEKICK,WELL-BOTTOM \TRUE SET 'HOLE-MOVE,TRUE-VALUE CALL SIDEKICK-FOLLOWS-YOU SET 'HOLE-MOVE,FALSE-VALUE RTRUE ?ELS29: EQUAL? PRSA,V?TAKE,V?LOOK-UNDER \?ELS57 PRINTR "It's not liftable." ?ELS57: EQUAL? PRSA,V?PUT-ON,V?RUB,V?POUR \?ELS59 CALL NOUN-USED,W?STAIN,STAIN ZERO? STACK /?ELS59 EQUAL? PRSO,STAIN \?ELS59 CALL APPLY-STAIN,HOLE RSTACK ?ELS59: EQUAL? PRSA,V?PUT-THROUGH,V?PUT-ON,V?PUT \?ELS63 EQUAL? PRSI,HOLE \?ELS63 CALL CIRCLE-ISNT-BLACK ZERO? STACK /?ELS70 CALL WASTES RSTACK ?ELS70: EQUAL? PRSO,SOD /FALSE EQUAL? HERE,LONG-CORRIDOR \?ELS77 REMOVE PRSO JUMP ?CND75 ?ELS77: EQUAL? PRSO,TORCH \?CND80 EQUAL? HERE,WELL-BOTTOM \?CND80 CALL TORCH-OFF ?CND80: GETP HERE,P?HOLE-DESTINATION MOVE PRSO,STACK ?CND75: CALL NON-DIMENSIONAL-JOURNEY RSTACK ?ELS63: CALL CIRCLE-ISNT-BLACK ZERO? STACK \FALSE EQUAL? PRSA,V?TOUCH,V?REACH-IN \?ELS88 PRINT HAND-DWINDLES RTRUE ?ELS88: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?ELS90 PRINT STARING-INTO-VOID RTRUE ?ELS90: EQUAL? PRSA,V?MEASURE \FALSE CALL PERFORM-PRSA,FLEXIBLE-HOLE RTRUE .FUNCT HOLE-INVISIBLE EQUAL? HERE,GARDEN \?ELS9 FSET? SOD,MUNGBIT \TRUE ?ELS9: EQUAL? HERE,CELL \?ELS11 ZERO? HOLE-OPEN /TRUE ?ELS11: EQUAL? HERE,LONG-CORRIDOR \FALSE EQUAL? LONG-CORRIDOR-LOC,3 /FALSE RTRUE .FUNCT NON-DIMENSIONAL-JOURNEY PRINTI "You get all cross-eyed trying to follow the non-dimensional journey of" CALL TPRINT-PRSO PRINTI " into" CALL TPRINT,HOLE PRINTI ". When you get your eyeballs untangled again," CALL TPRINT-PRSO PRINTR " is gone." .FUNCT FALL-THROUGH-HOLE SET 'HOLE-MOVE,TRUE-VALUE SET 'RAFT-HELD,FALSE-VALUE PRINTI "You're sucked into the hole in a direction that isn't down, but neither is it one of the other directions with which you're familiar." CALL ULTIMATELY-IN?,WHITE-SUIT ZERO? STACK /?CND1 MOVE WHITE-SUIT,AT-MAIN-HATCH FCLEAR WHITE-SUIT,TOUCHBIT FCLEAR WHITE-SUIT,WORNBIT CALL VISIBLE?,WHITE-SUIT ZERO? STACK /?CND1 PRINTI " Oddly, your " CALL DPRINT,WHITE-SUIT PRINTI " vanishes without a trace." ?CND1: CRLF CRLF RTRUE .FUNCT TOUCHING?,THING EQUAL? PRSO,THING \?ELS5 EQUAL? PRSA,V?TAKE,V?TOUCH,V?SHAKE /TRUE EQUAL? PRSA,V?CLEAN,V?KISS,V?SWIM /TRUE EQUAL? PRSA,V?PUSH,V?CLOSE,V?LOOK-UNDER /TRUE EQUAL? PRSA,V?MOVE,V?OPEN,V?KNOCK /TRUE EQUAL? PRSA,V?SET,V?SHAKE,V?RAISE /TRUE EQUAL? PRSA,V?UNLOCK,V?LOCK,V?CLIMB-UP /TRUE EQUAL? PRSA,V?CLIMB,V?CLIMB-DOWN,V?CLIMB-ON /TRUE EQUAL? PRSA,V?BOARD,V?ENTER,V?ON /TRUE EQUAL? PRSA,V?OFF,V?SET,V?THROW /TRUE EQUAL? PRSA,V?TASTE,V?FUCK,V?RAPE /TRUE EQUAL? PRSA,V?LOOK-INSIDE,V?STAND-ON,V?TIE /TRUE EQUAL? PRSA,V?MUNG,V?KICK,V?KILL /TRUE EQUAL? PRSA,V?KNOCK,V?CUT,V?WHIP /TRUE EQUAL? PRSA,V?BITE,V?PUSH /TRUE ?ELS5: EQUAL? PRSI,THING \FALSE EQUAL? PRSA,V?PUT-ON,V?PUT,V?GIVE \FALSE RTRUE .FUNCT IN-CATACOMBS EQUAL? HERE,CATACOMBS,WELL-BOTTOM,LADDER-ROOM /TRUE EQUAL? HERE,BURIAL-CHAMBER,FORGOTTEN-STOREHOUSE \FALSE RTRUE .FUNCT IN-SPACE? EQUAL? HERE,HOLD,STABLE,AT-MAIN-HATCH /TRUE EQUAL? HERE,LONG-CORRIDOR,IN-SPACE,SPACE-YACHT \FALSE RTRUE .FUNCT CANT-SEE,OBJ=0,STRING=0 SET 'P-WON,FALSE-VALUE PRINT YOU-CANT EQUAL? OBJ,ODOR \?ELS3 PRINTI "smell" JUMP ?CND1 ?ELS3: PRINTI "see" ?CND1: ZERO? OBJ /?THN9 ZERO? OBJ /?CND6 CALL NAME?,OBJ ZERO? STACK \?CND6 ?THN9: PRINTI " any" ?CND6: ZERO? OBJ \?ELS15 PRINTI " " PRINT STRING JUMP ?CND13 ?ELS15: EQUAL? OBJ,PRSI \?ELS17 CALL PRSI-PRINT JUMP ?CND13 ?ELS17: CALL PRSO-PRINT ?CND13: PRINTI " here." CRLF CALL STOP RSTACK .FUNCT CANT-VERB-A-PRSO,STRING PRINT YOU-CANT PRINT STRING CALL APRINT,PRSO PRINTR "!" .FUNCT OPEN-YOUR-EYES FSET? EYES,MUNGBIT \?ELS5 CALL DO-FIRST,STR?66,EYES RSTACK ?ELS5: CALL DO-FIRST,STR?133,EYES RSTACK .FUNCT NOW-TIED,OBJ PRINTI "Okay," CALL TPRINT-PRSO PRINTI " is now tied to" CALL TRPRINT,OBJ RSTACK .FUNCT TELL-HIT-HEAD PRINTI "You bang your bean against" CALL TPRINT-PRSO PRINTR " as you attempt this." .FUNCT NOUN-USED,TEST-NOUN,OBJ EQUAL? PRSO,OBJ \?ELS5 GET P-NAMW,0 EQUAL? STACK,TEST-NOUN /TRUE ?ELS5: EQUAL? PRSI,OBJ \FALSE GET P-NAMW,1 EQUAL? STACK,TEST-NOUN \FALSE RTRUE .FUNCT ADJ-USED,TEST-ADJ,?TMP1 GET P-ADJW,0 >?TMP1 GET P-ADJW,1 EQUAL? TEST-ADJ,?TMP1,STACK \FALSE RTRUE .FUNCT OFF-VEHICLE?,OBJ EQUAL? OBJ,STOOL,TOILET,FRONT-STOOP /TRUE EQUAL? OBJ,FIRST-SLAB,SECOND-SLAB \FALSE RTRUE .FUNCT OPEN-CLOSED,OBJ FSET? OBJ,OPENBIT \?ELS5 PRINTI "open" RTRUE ?ELS5: PRINTI "closed" RTRUE .FUNCT WEE SET 'AWAITING-REPLY,2 CALL QUEUE,I-REPLY,2 PRINTR "Wasn't that fun?" .FUNCT IN-YOUR-PACKAGE,STRING PRINTI "This is the " PRINT STRING CALL IN-PACKAGE RSTACK .FUNCT IN-PACKAGE PRINTI " that came in your " PRINT LGOP-CAPS PRINTI " package." RTRUE .FUNCT HIS-HER,CAP-H=0 ZERO? CAP-H /?ELS3 PRINTI "H" JUMP ?CND1 ?ELS3: PRINTI "h" ?CND1: ZERO? MALE /?ELS11 PRINTI "is" RTRUE ?ELS11: PRINTI "er" RTRUE .FUNCT HER-HIS,CAP-H=0 ZERO? CAP-H /?ELS3 PRINTI "H" JUMP ?CND1 ?ELS3: PRINTI "h" ?CND1: ZERO? MALE /?ELS11 PRINTI "er" RTRUE ?ELS11: PRINTI "is" RTRUE .FUNCT HIM-HER ZERO? MALE /?ELS5 PRINTI "him" RTRUE ?ELS5: PRINTI "her" RTRUE .FUNCT HER-HIM ZERO? MALE /?ELS5 PRINTI "her" RTRUE ?ELS5: PRINTI "him" RTRUE .FUNCT HE-SHE,CAP=0 ZERO? MALE /?ELS3 ZERO? CAP /?ELS7 PRINTI "H" JUMP ?CND1 ?ELS7: PRINTI "h" JUMP ?CND1 ?ELS3: ZERO? CAP /?ELS15 PRINTI "Sh" JUMP ?CND1 ?ELS15: PRINTI "sh" ?CND1: PRINTI "e" RTRUE .FUNCT SHE-HE,CAP=0 ZERO? MALE /?ELS3 ZERO? CAP /?ELS7 PRINTI "Sh" JUMP ?CND1 ?ELS7: PRINTI "sh" JUMP ?CND1 ?ELS3: ZERO? CAP /?ELS15 PRINTI "H" JUMP ?CND1 ?ELS15: PRINTI "h" ?CND1: PRINTI "e" RTRUE .FUNCT CANT-REACH,OBJ PRINT YOU-CANT PRINTI "reach" CALL TPRINT,OBJ IN? PROTAGONIST,HERE /?CND1 PRINTI " from" LOC PROTAGONIST CALL TPRINT,STACK ?CND1: PRINT PERIOD-CR RTRUE .FUNCT EAGERLY-ACCEPTS MOVE PRSO,PRSI PRINTI "Eagerly," CALL TPRINT-PRSI PRINTI " accepts" CALL TPRINT-PRSO RSTACK .FUNCT NOT-ON-GROUND,VEHICLE PRINTI "But" CALL TPRINT,VEHICLE PRINTR " isn't on the ground!" .FUNCT AND-SIDEKICK,NEW-SIDEKICK-LOC=0 CALL VISIBLE?,SIDEKICK ZERO? STACK /FALSE ZERO? NEW-SIDEKICK-LOC /?CND6 MOVE SIDEKICK,NEW-SIDEKICK-LOC ?CND6: PRINTI " and " CALL DPRINT-SIDEKICK RSTACK .FUNCT PLAYER-CANT-SEE FSET? EYES,MUNGBIT /?THN6 EQUAL? HAND-COVER,EYES \?ELS5 ?THN6: CALL OPEN-YOUR-EYES RSTACK ?ELS5: ZERO? LIT \FALSE PRINT TOO-DARK CRLF RTRUE .FUNCT DO-FIRST,STRING,OBJ=0 PRINT YOULL-HAVE-TO PRINT STRING ZERO? OBJ /?CND1 CALL TPRINT,OBJ ?CND1: PRINTR " first." .FUNCT NOT-IN PRINTI "But" CALL TPRINT-PRSO PRINTI " isn't " FSET? PRSI,ACTORBIT \?ELS3 PRINTI "being held by" JUMP ?CND1 ?ELS3: FSET? PRSI,SURFACEBIT \?ELS5 PRINTI "on" JUMP ?CND1 ?ELS5: PRINTI "in" ?CND1: CALL TRPRINT,PRSI RSTACK .FUNCT NO-LID PRINTI "The " CALL DPRINT,PRSO PRINTR " has no lid." .FUNCT SORE,STRING PRINTI "You begin to get a sore " PRINT STRING PRINT PERIOD-CR RTRUE .FUNCT CANT-USE-THAT-WAY,STRING PRINTI "[" PRINT YOU-CANT PRINTI "use " PRINT STRING PRINTR " that way.]" .FUNCT RECOGNIZE SET 'P-WON,FALSE-VALUE PRINTR "[That sentence isn't one I recognize.]" .FUNCT EXPLETIVE PRINTI " ""Oh " ZERO? NAUGHTY-LEVEL \?ELS3 PRINTI "shucks" JUMP ?CND1 ?ELS3: EQUAL? NAUGHTY-LEVEL,1 \?ELS5 PRINTI "damn" JUMP ?CND1 ?ELS5: PRINTI "shit" ?CND1: PRINTI "! " RTRUE .FUNCT PRONOUN EQUAL? PRSO,ME \?ELS5 PRINTI "You" RTRUE ?ELS5: FSET? PRSO,PLURALBIT \?ELS7 PRINTI "They" RTRUE ?ELS7: FSET? PRSO,FEMALEBIT \?ELS9 PRINTI "She" RTRUE ?ELS9: FSET? PRSO,ACTORBIT \?ELS11 PRINTI "He" RTRUE ?ELS11: PRINTI "It" RTRUE .FUNCT REFERRING,HIM-HER=0 PRINTI "I don't see wh" ZERO? HIM-HER /?ELS3 PRINTI "o" JUMP ?CND1 ?ELS3: PRINTI "at" ?CND1: PRINTR " you're referring to." .FUNCT NO-ONE-HERE,STRING PRINTI "There's no one here to " PRINT STRING PRINT PERIOD-CR RTRUE .FUNCT SEE-MANUAL,STRING PRINTI "[You need quotes to " PRINT STRING PRINTR " See the instruction manual section entitled ""Communicating With Infocom's Interactive Fiction.""]" .FUNCT UNIMPORTANT-THING-F PRINTR "That's not important; leave it alone." .ENDI