.FUNCT PREVENTS-YOU?,L=0,DIR=0,PER=0 ZERO? L \?CND1 SET 'L,HERE ?CND1: ZERO? DIR \?CND4 CALL1 EXIT-VERB? >DIR ?CND4: ZERO? PER \?CND7 SET 'PER,PLAYER ?CND7: ZERO? ON-TRAIN /FALSE ZERO? TICKETS-PUNCHED? /?ELS16 ZERO? CUSTOMS-SWEEP /FALSE ?ELS16: IN? CONDUCTOR,L \FALSE EQUAL? DIR,P?NORTH \FALSE FSET? PER,LOCKED /TRUE RFALSE .FUNCT PLAYER-F,ARG=0,L=0 EQUAL? ARG,M-WINNER /?CND1 EQUAL? PRSO,PLAYER \FALSE EQUAL? PRSA,V?GOODBYE,V?HELLO \?ELS9 CALL1 HAR-HAR JUMP ?CND4 ?ELS9: EQUAL? PRSA,V?SEARCH,V?EXAMINE \?CND4 CALL2 PERFORM,V?INVENTORY RTRUE ?CND4: ?CND1: ZERO? KILLED-PERSON /?CND14 IN? KILLED-PERSON,PLAYER \?CND14 CALL2 ANYONE-VISIBLE?,KILLED-PERSON >L ZERO? L /?CND14 CALL ARREST-PLAYER,STR?28,L,TRUE-VALUE,KILLED-PERSON RETURN 2 ?CND14: CALL1 SPEAKING-VERB? ZERO? STACK /?ELS25 CALL2 NOISY?,HERE ZERO? STACK /?ELS25 SET 'P-CONT,FALSE-VALUE PRINTR "You can't make yourself heard above the noise." ?ELS25: CALL1 PREVENTS-YOU? ZERO? STACK /?ELS31 CALL2 START-SENTENCE,CONDUCTOR PRINTI " prevents you from passing him." CRLF RETURN 2 ?ELS31: ZERO? PLAYER-SEATED \?ELS37 ZERO? PLAYER-HIDING /FALSE ?ELS37: EQUAL? PRSO,FALSE-VALUE,ROOMS \?ELS41 EQUAL? PRSA,V?STAND /?THN47 CALL1 EXIT-VERB? ZERO? STACK /FALSE ?THN47: IN? BRIEFCASE,PLAYER \FALSE FSET? BRIEFCASE,OPENBIT \FALSE FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 PRINTI "(You close the briefcase first.)" CRLF RFALSE ?ELS41: ZERO? P-WALK-DIR /?ELS52 CALL1 TOO-BAD-SIT-HIDE RSTACK ?ELS52: EQUAL? PRSA,V?FIND /?THN56 EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?WALK-TO \?ELS55 ?THN56: CALL1 TOO-BAD-SIT-HIDE RSTACK ?ELS55: CALL1 SPEAKING-VERB? ZERO? STACK \FALSE CALL1 GAME-VERB? ZERO? STACK \FALSE CALL1 REMOTE-VERB? ZERO? STACK \FALSE EQUAL? PRSA,V?SMILE,V?SHOOT /FALSE EQUAL? PRSA,V?NOD,V?LOOK-ON,V?AIM /FALSE CALL2 HELD?,PRSO ZERO? STACK \FALSE CALL2 TABLE?,HERE CALL HELD?,PRSO,STACK ZERO? STACK \FALSE CALL HELD?,PRSO,GLOBAL-OBJECTS ZERO? STACK \FALSE EQUAL? PRSA,V?EXAMINE \?ELS75 EQUAL? P-ADVERB,W?CAREFULLY \FALSE ?ELS75: CALL HELD?,PRSO,PLAYER-SEATED ZERO? STACK \?ELS79 CALL1 TOO-BAD-SIT-HIDE RSTACK ?ELS79: ZERO? PRSI /FALSE CALL2 HELD?,PRSI ZERO? STACK \FALSE CALL HELD?,PRSI,GLOBAL-OBJECTS ZERO? STACK \FALSE CALL HELD?,PRSI,PLAYER-SEATED ZERO? STACK \FALSE CALL1 TOO-BAD-SIT-HIDE RSTACK .FUNCT TOO-BAD-SIT-HIDE ZERO? PLAYER-SEATED /?ELS5 EQUAL? PRSA,V?LIE \?ELS11 GRTR? 0,PLAYER-SEATED \?ELS11 CALL ALREADY,WINNER,STR?29 RSTACK ?ELS11: EQUAL? PRSA,V?SIT \?ELS15 LESS? 0,PLAYER-SEATED \?ELS15 CALL ALREADY,WINNER,STR?30 RSTACK ?ELS15: SET 'PLAYER-SEATED,FALSE-VALUE PRINTI "(You " IN? BRIEFCASE,PLAYER \?CND22 FSET? BRIEFCASE,OPENBIT \?CND22 PRINTI "close the briefcase and " FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 ?CND22: PRINTI "stand up first.)" CRLF RFALSE ?ELS5: ZERO? PLAYER-HIDING /FALSE SET 'CLOCK-WAIT,TRUE-VALUE EQUAL? PRSA,V?HIDE-BEHIND \?ELS38 ZERO? PRSI \?ELS38 CALL ALREADY,WINNER,STR?31 RSTACK ?ELS38: PRINTR "(You can't do that while you're hiding.)" .FUNCT CONDUCTOR-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,CONDUCTOR RSTACK .FUNCT CONDUCTOR-GIVE-SHOW EQUAL? PRSA,V?GIVE \?ELS5 RETURN PRSO ?ELS5: EQUAL? PRSA,V?SHOW \FALSE RETURN PRSI .FUNCT CONDUCTOR-F,ARG=0,OBJ EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,CONDUCTOR,ARG RSTACK ?ELS5: CALL2 PASS-OBJECT?,MCGUFFIN ZERO? STACK /?ELS7 CALL2 SHOW-MCGUFFIN,CONDUCTOR RSTACK ?ELS7: CALL1 CONDUCTOR-GIVE-SHOW >OBJ ZERO? OBJ /?ELS9 EQUAL? OBJ,PASSPORT,BRIEFCASE /?THN12 EQUAL? OBJ,TICKET,TICKET-OTHER \?ELS9 ?THN12: EQUAL? OBJ,PASSPORT,BRIEFCASE \?ELS18 ZERO? CUSTOMS-SWEEP /FALSE CALL HE-SHE-IT,CONDUCTOR,TRUE-VALUE PRINTI " nods and points toward" ZERO? ON-TRAIN /?ELS29 CALL2 HIM-HER-IT,PLATFORM-GLOBAL JUMP ?CND27 ?ELS29: CALL2 HIM-HER-IT,CUSTOMS-AGENT ?CND27: PRINTR "." ?ELS18: ZERO? ON-TRAIN /FALSE CALL2 START-SENTENCE,CONDUCTOR EQUAL? OBJ,TICKET \?ELS50 CALL ZMEMZ,TICKET-VIA,TRAIN-TABLE ZERO? STACK \?ELS50 GETP TICKET,P?CAPACITY CALL ZMEMZ,STACK,TRAIN-TABLE ZERO? STACK /?THN47 ?ELS50: EQUAL? OBJ,TICKET-OTHER \?ELS46 CALL ZMEMZ,TICKET-OTHER-VIA,TRAIN-TABLE ZERO? STACK \?ELS46 GETP TICKET-OTHER,P?CAPACITY CALL ZMEMZ,STACK,TRAIN-TABLE ZERO? STACK \?ELS46 ?THN47: CALL2 ARREST-PLAYER,STR?33 PRINTI " looks at" CALL2 HIM-HER-IT,OBJ PRINTR " and rushes away." ?ELS46: FSET? PLAYER,LOCKED /?ELS56 PRINTI " looks at" JUMP ?CND44 ?ELS56: FCLEAR PLAYER,LOCKED SET 'TICKET-COUNT,0 PRINTI " punches" ?CND44: MOVE OBJ,PLAYER CALL2 PRINTT,OBJ PRINTR " and then gives it back to you." ?ELS9: CALL PERSON-F,CONDUCTOR,ARG RSTACK .FUNCT CUSTOMS-AGENT-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,CUSTOMS-AGENT RSTACK .FUNCT CUSTOMS-AGENT-F,ARG=0,OBJ EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,CUSTOMS-AGENT,ARG RSTACK ?ELS5: EQUAL? PRSA,V?PASS \?ELS7 IN? CUSTOMS-AGENT,HERE \FALSE CALL2 DO-WALK,P?NORTH RTRUE ?ELS7: EQUAL? PRSA,V?SHOW \?ELS14 EQUAL? PRSI,GLOBAL-MONEY \?ELS14 CALL HE-SHE-IT,CUSTOMS-AGENT,TRUE-VALUE,STR?34 PRINTR " approvingly." ?ELS14: CALL1 CONDUCTOR-GIVE-SHOW >OBJ ZERO? OBJ /?ELS20 EQUAL? OBJ,PASSPORT,BRIEFCASE,MCGUFFIN \?ELS20 EQUAL? OBJ,PASSPORT \?ELS27 CALL2 START-SENTENCE,CUSTOMS-AGENT FSET? PASSPORT,LOCKED \?CND28 FCLEAR PASSPORT,LOCKED PRINTI " looks at you and " PRINTD PASSPORT PRINTI ", barely suppresses a smirk, stamps it, and then" ?CND28: MOVE PASSPORT,PLAYER PRINTI " gives it back to you." CRLF LOC BRIEFCASE EQUAL? STACK,HERE,PLAYER \TRUE ZERO? BRIEFCASE-PASSED \TRUE PRINTI "Then" CALL2 HE-SHE-IT,CUSTOMS-AGENT PRINTI " notices the " PRINTD BRIEFCASE PRINTR ", points to it and says, ""Fleegle quidpro mushnets?""" ?ELS27: EQUAL? OBJ,BRIEFCASE \?ELS43 CALL HE-SHE-IT,CUSTOMS-AGENT,TRUE-VALUE ZERO? BRIEFCASE-PASSED /?ELS48 PRINTR " gives it back to you." ?ELS48: FSET? BRIEFCASE,OPENBIT /?ELS53 PRINTR " refuses it, making an ""open it"" gesture." ?ELS53: IN? MCGUFFIN,BRIEFCASE \?ELS57 CALL1 CONFISCATE-MCGUFFIN RTRUE ?ELS57: SET 'BRIEFCASE-PASSED,TRUE-VALUE PRINTR " looks in it and then gives it back to you." ?ELS43: EQUAL? OBJ,MCGUFFIN \FALSE CALL HE-SHE-IT,CUSTOMS-AGENT,TRUE-VALUE CALL1 CONFISCATE-MCGUFFIN RSTACK ?ELS20: CALL PERSON-F,CUSTOMS-AGENT,ARG RSTACK .FUNCT CONFISCATE-MCGUFFIN PRINTI " examines" CALL2 HIM-HER-IT,MCGUFFIN PRINTI " for a moment, realizes its import, confiscates it, and arrests you!" CRLF CALL1 FINISH RSTACK .FUNCT WAITER-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,WAITER RSTACK .FUNCT WAITER-F,ARG=0 EQUAL? HERE,PANTRY \?ELS5 CALL2 INVASION?,WAITER ZERO? STACK \TRUE ?ELS5: EQUAL? ARG,M-WINNER \?ELS9 CALL1 BRING-GIVE ZERO? STACK \TRUE CALL PERSON-F,WAITER,ARG RSTACK ?ELS9: EQUAL? PRSA,V?GOODBYE,V?THANKS \?ELS18 CALL ESTABLISH-GOAL-TRAIN,WAITER,PANTRY,DINER-CAR RFALSE ?ELS18: CALL PERSON-F,WAITER,ARG RSTACK .FUNCT BRING-GIVE EQUAL? PRSI,PLAYER \?ELS5 EQUAL? PRSA,V?BRING,V?GIVE \?ELS5 SET 'WINNER,PLAYER CALL PERFORM,V?BUY,PRSO RTRUE ?ELS5: EQUAL? PRSO,PLAYER \FALSE EQUAL? PRSA,V?SBRING,V?SGIVE \FALSE SET 'WINNER,PLAYER CALL PERFORM,V?BUY,PRSI RTRUE .FUNCT COOK-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,COOK RSTACK .FUNCT COOK-F,ARG=0 EQUAL? HERE,GALLEY \?ELS5 CALL2 INVASION?,COOK ZERO? STACK \TRUE ?ELS5: EQUAL? ARG,M-WINNER \?ELS9 CALL PERSON-F,COOK,ARG RSTACK ?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS11 PRINTI "He's dressed all in white, from a " IN? HAT-COOK,COOK \?ELS18 PUSH STR?36 JUMP ?CND14 ?ELS18: PUSH STR?37 ?CND14: PRINT STACK PRINTI " to his well-worn sneakers. You can tell from the size of his gut that he likes his own cooking." CRLF CALL2 CARRY-CHECK,COOK RTRUE ?ELS11: CALL PERSON-F,COOK,ARG RSTACK .FUNCT HAT-COOK-F EQUAL? PRSA,V?TAKE,V?ASK-FOR \FALSE IN? HAT-COOK,COOK \FALSE CALL2 BRIBED?,COOK ZERO? STACK \?ELS12 CALL2 START-SENTENCE,COOK PRINTR " won't give you his hat yet." ?ELS12: FSET HAT-COOK,TAKEBIT RFALSE .FUNCT BRIBED?,PER,N EQUAL? PER,BAD-SPY /FALSE GETP PER,P?NORTH >N ZERO? N /FALSE GETP PER,P?SOUTH GRTR? N,STACK \TRUE RFALSE .FUNCT CLERK-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,CLERK RSTACK .FUNCT CLERK-F,ARG=0,N EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,CLERK,ARG RSTACK ?ELS5: EQUAL? PRSA,V?ASK-ABOUT \?ELS7 IN? CLERK,TICKET-AREA \?ELS7 CALL ZMEMQ,PRSI,STATIONS ZERO? STACK /?ELS7 GETP PRSI,P?NORTH >N ZERO? N /?ELS7 PRINTI """Lizlong frmzi " PRINTC CURRENCY-SYMBOL PRINTN N PRINTR ".""" ?ELS7: CALL PERSON-F,CLERK,ARG RSTACK .FUNCT BOND-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,BOND RSTACK .FUNCT BOND-OTHER-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,BOND-OTHER RSTACK .FUNCT BOND-F,ARG=0 CALL PERSON-F,BOND,ARG RSTACK .FUNCT BOND-OTHER-F,ARG=0 EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,BOND-OTHER,ARG RSTACK ?ELS5: EQUAL? PRSA,V?SHOW \?ELS7 EQUAL? PRSO,BOND-OTHER \?ELS7 EQUAL? PRSI,GUN \?ELS7 SET 'SUPPRESS-INTERRUPT,TRUE-VALUE CALL HE-SHE-IT,BOND-OTHER,TRUE-VALUE PRINTR " bobs and weaves, trying to avoid your aim." ?ELS7: EQUAL? PRSA,V?SLAP /?THN14 EQUAL? PRSA,V?SHOOT,V?PUSH,V?MUNG /?THN14 EQUAL? PRSA,V?MOVE-DIR,V?KILL,V?ATTACK \?ELS13 ?THN14: SET 'SUPPRESS-INTERRUPT,TRUE-VALUE RANDOM 100 LESS? 33,STACK /?ELS20 EQUAL? PRSA,V?SHOOT /?THN24 EQUAL? PRSI,GUN \?ELS23 ?THN24: IN? GUN,POCKET \?CND26 MOVE GUN,PLAYER ?CND26: PRINTI "Your shot goes wild. " JUMP ?CND21 ?ELS23: PRINTI "You go for him, but he dodges. " ?CND21: CALL HE-SHE-IT,BOND-OTHER,TRUE-VALUE PRINTI " hesitates, " RANDOM 100 LESS? 50,STACK /?ELS41 PRINTR "then lunges at you!" ?ELS41: PRINTR "preparing his next move." ?ELS20: RANDOM 100 LESS? 50,STACK /?ELS49 ZERO? PLAYER-SEATED \?ELS49 CALL HE-SHE-IT,BOND-OTHER,TRUE-VALUE PRINTI " dodges away. A sudden lurch knocks you off balance, and your last sight is the ground speeding up to meet you." CRLF CALL1 FINISH RSTACK ?ELS49: MOVE BOND-OTHER,LIMBO-FWD CALL QUEUE,I-BOND-OTHER,0 SET 'SUPPRESS-INTERRUPT,FALSE-VALUE EQUAL? PRSA,V?SHOOT /?THN59 EQUAL? PRSI,GUN \?ELS58 ?THN59: IN? GUN,POCKET \?CND61 MOVE GUN,PLAYER ?CND61: PRINTI "Your shot almost misses, but it wings him and he " JUMP ?CND56 ?ELS58: PRINTI "You lunge at him and almost miss, but he loses footing and " ?CND56: PRINTR "falls off the edge of the roof! The train quickly leaves his body behind." ?ELS13: CALL PERSON-F,BOND-OTHER,ARG RSTACK .FUNCT THIN-MAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,THIN-MAN RSTACK .FUNCT THIN-MAN-F,ARG=0 CALL PERSON-F,THIN-MAN,ARG RSTACK .FUNCT FAT-MAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,FAT-MAN RSTACK .FUNCT FAT-MAN-F,ARG=0 CALL PERSON-F,FAT-MAN,ARG RSTACK .FUNCT HUNK-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,HUNK RSTACK .FUNCT HUNK-F,ARG=0 CALL PERSON-F,HUNK,ARG RSTACK .FUNCT PEEL-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,PEEL RSTACK .FUNCT PEEL-F,ARG=0 CALL PERSON-F,PEEL,ARG RSTACK .FUNCT DUCHESS-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,DUCHESS RSTACK .FUNCT DUCHESS-F,ARG=0 CALL PERSON-F,DUCHESS,ARG RSTACK .FUNCT NATASHA-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,NATASHA RSTACK .FUNCT NATASHA-F,ARG=0 CALL PERSON-F,NATASHA,ARG RSTACK .FUNCT GUARD-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,GUARD RSTACK .FUNCT GUARD-F,ARG=0,OBJ EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,GUARD,ARG RSTACK ?ELS5: CALL2 PASS-OBJECT?,MCGUFFIN ZERO? STACK /?ELS7 CALL2 SHOW-MCGUFFIN,GUARD RSTACK ?ELS7: CALL1 CONDUCTOR-GIVE-SHOW >OBJ ZERO? OBJ /?ELS9 EQUAL? OBJ,PASSPORT \?ELS9 SET 'GUARD-SAW-PASSPORT,TRUE-VALUE SET 'GUARD-SUSPICION,0 CALL2 START-SENTENCE,GUARD MOVE PASSPORT,PLAYER PRINTI " looks at you and " PRINTD PASSPORT PRINTR ", barely suppresses a smirk, then gives it back to you." ?ELS9: CALL PERSON-F,GUARD,ARG RSTACK .FUNCT THUG-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,THUG RSTACK .FUNCT THUG-F,ARG=0,OBJ CALL PERSON-F,THUG,ARG RSTACK .FUNCT DEFECTOR-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,DEFECTOR RSTACK .FUNCT DEFECTOR-F,ARG=0,OBJ CALL PERSON-F,DEFECTOR,ARG RSTACK .FUNCT WAITRESS-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,WAITRESS RSTACK .FUNCT WAITRESS-F,ARG=0 EQUAL? ARG,M-WINNER \?ELS5 CALL1 BRING-GIVE ZERO? STACK \TRUE CALL PERSON-F,WAITRESS,ARG RSTACK ?ELS5: CALL PERSON-F,WAITRESS,ARG RSTACK .FUNCT OFFICER-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE FCLEAR OFFICER,NDESCBIT CALL2 DESCRIBE-PERSON,OFFICER RSTACK .FUNCT OFFICER-F,ARG=0 FCLEAR OFFICER,NDESCBIT EQUAL? ARG,M-WINNER \?ELS5 CALL PERSON-F,OFFICER,ARG RSTACK ?ELS5: CALL2 PASS-OBJECT?,MCGUFFIN ZERO? STACK /?ELS7 CALL2 SHOW-MCGUFFIN,OFFICER RSTACK ?ELS7: CALL PERSON-F,OFFICER,ARG RSTACK .FUNCT YOUNG-MAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,YOUNG-MAN RSTACK .FUNCT YOUNG-MAN-F,ARG=0 CALL PERSON-F,YOUNG-MAN,ARG RSTACK .FUNCT YOUNG-WOMAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,YOUNG-WOMAN RSTACK .FUNCT YOUNG-WOMAN-F,ARG=0 CALL PERSON-F,YOUNG-WOMAN,ARG RSTACK .FUNCT BOY-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,BOY RSTACK .FUNCT BOY-F,ARG=0 CALL PERSON-F,BOY,ARG RSTACK .FUNCT GIRL-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,GIRL RSTACK .FUNCT GIRL-F,ARG=0 CALL PERSON-F,GIRL,ARG RSTACK .FUNCT OLD-MAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,OLD-MAN RSTACK .FUNCT OLD-MAN-F,ARG=0 CALL PERSON-F,OLD-MAN,ARG RSTACK .FUNCT OLD-WOMAN-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,OLD-WOMAN RSTACK .FUNCT OLD-WOMAN-F,ARG=0 CALL PERSON-F,OLD-WOMAN,ARG RSTACK .FUNCT YOUNG-COUPLE-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,YOUNG-COUPLE RSTACK .FUNCT YOUNG-COUPLE-F,ARG=0 CALL PERSON-F,YOUNG-COUPLE,ARG RSTACK .FUNCT MIDDLE-COUPLE-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,MIDDLE-COUPLE RSTACK .FUNCT MIDDLE-COUPLE-F,ARG=0 CALL PERSON-F,MIDDLE-COUPLE,ARG RSTACK .FUNCT OLD-COUPLE-DESC,ARG EQUAL? ARG,M-OBJDESC \FALSE CALL2 DESCRIBE-PERSON,OLD-COUPLE RSTACK .FUNCT OLD-COUPLE-F,ARG=0 CALL PERSON-F,OLD-COUPLE,ARG RSTACK .FUNCT ELIMINATE,TBL,CNT,N LESS? CNT,N \FALSE ?PRG4: ADD 1,CNT GET TBL,STACK PUT TBL,CNT,STACK IGRTR? 'CNT,N \?PRG4 RTRUE .FUNCT MONEY? EQUAL? PRSO,DOLLARS \?ELS5 RETURN P-NUMBER ?ELS5: EQUAL? PRSO,INTNUM \FALSE ZERO? P-DOLLAR-FLAG /FALSE RETURN P-AMOUNT .FUNCT PERSON-F,PER,ARG,OBJ,X,Y,Z,L,C,N LOC PER >L GETP PER,P?CHARACTER >C IN? PER,GLOBAL-OBJECTS \?ELS3 CALL2 GLOBAL-PERSON,PER RSTACK ?ELS3: CALL2 META-LOC,PER EQUAL? HERE,STACK /?CND1 EQUAL? EXTRA-C,C /?CND1 GET GLOBAL-CHARACTER-TABLE,C >PER ?CND1: EQUAL? ARG,M-WINNER \?ELS12 CALL2 GRAB-ATTENTION,PER ZERO? STACK /TRUE CALL2 COM-CHECK,PER >X ZERO? X /?ELS19 EQUAL? X,M-FATAL \TRUE RFALSE ?ELS19: CALL2 PRODUCE-SOMETHING,PER RTRUE ?ELS12: EQUAL? PRSA,V?ALARM \?ELS30 CALL2 UNSNOOZE,PER ZERO? STACK /FALSE CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1 PRINTR " startled to see you so close!" ?ELS30: EQUAL? PRSA,V?GIVE \?ELS39 EQUAL? PRSI,PER \FALSE CALL2 HELD?,PRSO ZERO? STACK /FALSE CALL2 GRAB-ATTENTION,PER ZERO? STACK /TRUE SET 'X,0 GETP PER,P?NORTH >Y GETP PER,P?SOUTH >Z CALL1 MONEY? >N ZERO? N /?ELS52 ADD N,Z >X PUTP PER,P?SOUTH,X GETP PLAYER,P?SOUTH SUB STACK,N PUTP PLAYER,P?SOUTH,STACK JUMP ?CND50 ?ELS52: EQUAL? PRSO,MCGUFFIN \?CND55 FCLEAR PRSO,TAKEBIT ?CND55: MOVE PRSO,PER ?CND50: CALL HE-SHE-IT,PER,TRUE-VALUE,STR?55 PRINTI " your gift and" CALL HE-SHE-IT,PER,-1,STR?34 PRINTC 32 ADD X,X GRTR? Y,STACK \?ELS64 PRINTR "briefly." ?ELS64: GRTR? Y,X \?ELS68 ZERO? Z \?ELS73 PRINTR "hopefully." ?ELS73: PRINTR "longer." ?ELS68: PRINTR "broadly." ?ELS39: EQUAL? PRSA,V?LISTEN \?ELS85 GETP PER,P?LDESC >X EQUAL? X,8 \FALSE CALL1 PRODUCE-GIBBERISH RTRUE ?ELS85: EQUAL? PRSA,V?SLAP,V?MUNG \?ELS92 CALL ZMEMQ,PER,SPY-TABLE ZERO? STACK /FALSE ZERO? MUNGED-PERSON \FALSE CALL2 GRAB-ATTENTION,PER ZERO? STACK /TRUE RANDOM 100 LESS? 33,STACK /?CND103 FSET PER,MUNGBIT SET 'MUNGED-PERSON,PER GETP PER,P?CHARACTER GET GOAL-TABLES,STACK GET STACK,GOAL-ENABLE >MUNGED-ENABLE RANDOM 6 ADD 9,STACK CALL QUEUE,I-COME-TO,STACK PUT STACK,0,1 PUTP PER,P?LDESC,34 CALL2 IMMOBILIZE,PER CALL2 ANYONE-VISIBLE?,PER >X ZERO? X /TRUE CALL ARREST-PLAYER,STR?56,X,TRUE-VALUE,PER RTRUE ?CND103: CALL HE-SHE-IT,PER,TRUE-VALUE,STR?57 PRINTI " your thrust and" RANDOM 100 LESS? 50,STACK /?ELS115 CALL HE-SHE-IT,PER,-1,STR?58 PRINTI " a chop to your " RANDOM 100 LESS? 50,STACK /?ELS122 PRINTR "nose." ?ELS122: PRINTR "breadbasket." ?ELS115: CALL HE-SHE-IT,PER,-1,STR?59 PRINTI " you unconscious." CALL2 GENERIC-REST-ROOM-F,0 >X MOVE PER,X CALL FIND-FLAG-LG,X,DOORBIT >Y ZERO? Y /?CND133 FSET Y,LOCKED ?CND133: CALL1 UNCONSCIOUS-FCN RTRUE ?ELS92: EQUAL? PRSA,V?SHOOT,V?KILL \?ELS137 CALL ZMEMQ,PER,SPY-TABLE ZERO? STACK /FALSE EQUAL? PRSI,KNIFE,GUN \FALSE FSET? PER,PERSONBIT \FALSE ZERO? KILLED-PERSON \FALSE FSET PER,LOCKED SET 'KILLED-PERSON,PER EQUAL? MUNGED-PERSON,PER \?CND145 SET 'MUNGED-PERSON,FALSE-VALUE CALL QUEUE,I-COME-TO,0 ?CND145: PUTP PER,P?LDESC,36 CALL2 IMMOBILIZE,PER CALL2 ANYONE-VISIBLE?,PER >X ZERO? X /?CND148 CALL ARREST-PLAYER,STR?28,X,TRUE-VALUE,PER ?CND148: FCLEAR PER,PERSONBIT RTRUE ?ELS137: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \?ELS152 EQUAL? PER,PRSO \FALSE FSET? PER,PERSONBIT \FALSE FSET? PER,MUNGBIT /FALSE CALL HE-SHE-IT,PER,TRUE-VALUE,STR?5 PRINTI " you away and" CALL HE-SHE-IT,PER,-1,STR?60 PRINTI ", " CALL1 PRODUCE-GIBBERISH RTRUE ?ELS152: EQUAL? PRSA,V?SHOW \?ELS163 EQUAL? PER,PRSO \FALSE CALL2 GRAB-ATTENTION,PER ZERO? STACK /TRUE EQUAL? PRSI,GUN \?ELS175 EQUAL? PER,CONDUCTOR,GUARD,WAITER \?ELS178 CALL ARREST-PLAYER,STR?61,PER,TRUE-VALUE,GUN RTRUE ?ELS178: CALL2 ANYONE-VISIBLE?,PER >X ZERO? X /?CND176 CALL ARREST-PLAYER,STR?61,X,TRUE-VALUE,GUN ?CND176: CALL2 GENERIC-REST-ROOM-F,0 CALL ESTABLISH-GOAL,PER,STACK EQUAL? PER,BAD-SPY \?CND183 SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-FUNCTION,TRAVELER-FLEES CALL2 INT,I-TRAVELER PUT STACK,0,0 ?CND183: CALL HE-SHE-IT,PER,TRUE-VALUE,STR?12 CALL HIM-HER-IT,PER,FALSE-VALUE,TRUE-VALUE PRINTI " eyes wider and" CALL HE-SHE-IT,PER,-1,STR?6 PRINTI ", " CALL1 PRODUCE-GIBBERISH RTRUE ?ELS175: EQUAL? PRSI,CIGARETTE \FALSE IN? LIGHTER,PRSO /?ELS195 EQUAL? PRSO,WAITRESS,WAITER \?ELS195 CALL CALL-FOR-PROP,LIGHTER,PRSO ZERO? STACK /FALSE ?ELS195: EQUAL? PRSO,BAD-SPY /FALSE FSET LIGHTER,TAKEBIT FSET LIGHTER,TOUCHBIT MOVE LIGHTER,PLAYER CALL HE-SHE-IT,PER,TRUE-VALUE PRINTI " kindly" CALL HE-SHE-IT,PER,-1,STR?62 PRINTI " you a " PRINTD LIGHTER PRINTR "." ?ELS163: CALL2 ASK-WHAT?,PER >OBJ ZERO? OBJ /?ELS199 CALL2 GRAB-ATTENTION,PER ZERO? STACK /TRUE CALL2 SAID-TO,PER ZERO? ON-TRAIN \?ELS207 CALL ZMEMZ,OBJ,TRAIN-TABLE ZERO? STACK /?ELS207 EQUAL? PER,CONDUCTOR,GUARD \?ELS207 CALL HE-SHE-IT,PRSI,TRUE-VALUE,STR?63 PRINTR " to this train track." ?ELS207: CALL DONT-KNOW,PER,OBJ RSTACK ?ELS199: CALL2 COMMON-OTHER,PER RSTACK .FUNCT ASK-WHAT?,PER EQUAL? PRSA,V?CONFRONT,V?ASK-ABOUT \?ELS5 ZERO? PRSI /FALSE EQUAL? PRSO,PER \FALSE RETURN PRSI ?ELS5: EQUAL? PRSA,V?WHAT,V?FIND \FALSE ZERO? PRSO /FALSE IN? PRSO,GLOBAL-OBJECTS \FALSE RETURN PRSO .FUNCT IMMOBILIZE,PER,X GETP PER,P?CHARACTER GET GOAL-TABLES,STACK >X PUT X,GOAL-ENABLE,0 FSET PER,OPENBIT FSET PER,TAKEBIT FCLEAR PER,TOUCHBIT EQUAL? PER,BAD-SPY \?CND1 IN? GUN,OTHER-LIMBO-FWD \?CND1 MOVE GUN,PER ?CND1: FIRST? PER >X /?KLU22 ?KLU22: ?PRG6: ZERO? X \?ELS10 JUMP ?REP7 ?ELS10: FSET X,TAKEBIT NEXT? X >X /?KLU23 ?KLU23: JUMP ?PRG6 ?REP7: CALL HE-SHE-IT,PER,TRUE-VALUE IN? BRIEFCASE,PER \?CND15 LOC PER MOVE BRIEFCASE,STACK CALL HE-SHE-IT,PER,-1,STR?64 CALL2 HIM-HER-IT,BRIEFCASE PRINTI " and" ?CND15: CALL HE-SHE-IT,PER,-1,STR?65 PRINTC 32 CALL1 GROUND-DESC PRINT STACK PRINTR "." .FUNCT UNCONSCIOUS-FCN,TIM=0,HR ZERO? TIM \?CND1 RANDOM 6 ADD 9,STACK >TIM ?CND1: SET 'MUNGED-PERSON,PLAYER SET 'HR,HERE MOVE PLAYER,UNCONSCIOUS SET 'HERE,UNCONSCIOUS PRINTI "... " CALL1 STATUS-LINE CALL QUEUE,I-COME-TO,TIM PUT STACK,0,1 CALL V-WAIT,TIM,FALSE-VALUE,TRUE-VALUE MOVE PLAYER,HR SET 'HERE,HR ZERO? PLAYER-SEATED \TRUE SUB 0,HERE >PLAYER-SEATED RTRUE .FUNCT ANYONE-VISIBLE?,VICTIM=0,CNT,X,VAL=0 SET 'X,COR-ALL-DIRS SET 'COR-ALL-DIRS,TRUE-VALUE SET 'CNT,0 ?PRG1: IGRTR? 'CNT,CHARACTER-MAX \?ELS5 SET 'VAL,FALSE-VALUE JUMP ?REP2 ?ELS5: GET CHARACTER-TABLE,CNT >VAL EQUAL? VICTIM,VAL \?ELS7 JUMP ?PRG1 ?ELS7: CALL2 VISIBLE?,VAL ZERO? STACK /?PRG1 ?REP2: ZERO? VAL /?CND10 SET 'COR-ALL-DIRS,X RETURN VAL ?CND10: GET EXTRA-TABLE,0 >CNT ?PRG13: GET EXTRA-TABLE,CNT >VAL EQUAL? VICTIM,VAL \?ELS17 JUMP ?PRG13 ?ELS17: CALL2 VISIBLE?,VAL ZERO? STACK /?ELS19 JUMP ?REP14 ?ELS19: DLESS? 'CNT,1 \?PRG13 SET 'VAL,FALSE-VALUE ?REP14: SET 'COR-ALL-DIRS,X RETURN VAL .FUNCT BODY-F ZERO? KILLED-PERSON \?ELS5 CALL2 NOT-HERE,BODY RSTACK ?ELS5: CALL DO-INSTEAD-OF,KILLED-PERSON,BODY RTRUE .FUNCT I-COME-TO,GARG=0,P,L,V,X ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-COME-TO:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: SET 'P,MUNGED-PERSON ZERO? P \?ELS15 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS15: SET 'MUNGED-PERSON,FALSE-VALUE EQUAL? P,PLAYER \?CND24 PRINTI "You shake your head and come to." CRLF RETURN 2 ?CND24: CALL2 META-LOC,P MOVE P,STACK FCLEAR P,TAKEBIT FCLEAR P,MUNGBIT FCLEAR P,TOUCHBIT PUTP P,P?LDESC,1 GETP P,P?CHARACTER GET GOAL-TABLES,STACK PUT STACK,GOAL-ENABLE,MUNGED-ENABLE FIRST? P >X /?KLU81 ?KLU81: ?PRG31: ZERO? X \?ELS35 JUMP ?REP32 ?ELS35: FCLEAR X,TAKEBIT NEXT? X >X /?KLU82 ?KLU82: JUMP ?PRG31 ?REP32: EQUAL? P,BAD-SPY \?CND38 IN? GUN,P \?CND38 MOVE GUN,OTHER-LIMBO-FWD ?CND38: CALL2 VISIBLE?,P >V ZERO? V \?THN46 ZERO? DEBUG /?CND43 ?THN46: ZERO? V \?CND48 PRINTC 91 ?CND48: CALL2 START-SENTENCE,P CALL2 WHERE?,P ZERO? STACK /?CND53 PRINTI "," ?CND53: PRINTI " shakes" CALL HIM-HER-IT,P,FALSE-VALUE,TRUE-VALUE PRINTI " head and comes to." CRLF ?CND43: EQUAL? P,CONTACT \?ELS62 CALL ARREST-PLAYER,STR?56,CONTACT,V,PLAYER JUMP ?CND60 ?ELS62: EQUAL? P,BAD-SPY \?CND60 SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE LOC P >L CALL MCG-SAFE?,MCGUFFIN,L ZERO? STACK /?ELS67 EQUAL? L,HERE \?CND65 PRINTI "Then" CALL2 HE-SHE-IT,P PRINTI " sees you, jumps up, and lands a haymaker on you." CALL1 UNCONSCIOUS-FCN JUMP ?CND65 ?ELS67: FCLEAR BAD-SPY,TOUCHBIT SET 'BAD-SPY-DONE-PEEKING,FALSE-VALUE GET GOAL-TABLES,BAD-SPY-C >X PUT X,GOAL-SCRIPT,I-BAD-SPY PUT X,GOAL-ENABLE,1 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE ?CND65: ?CND60: ZERO? IDEBUG /?CND75 PRINTN V PRINTI "]" CRLF ?CND75: RETURN V .FUNCT MCG-SAFE?,OBJ,L IN? OBJ,CONTACT /TRUE CALL2 META-LOC,OBJ EQUAL? L,STACK \?ELS7 LOC OBJ FSET? STACK,PERSONBIT \TRUE ?ELS7: CALL ZMEMQ,OBJ,FILM-TBL ZERO? STACK /?ELS14 CALL MCG-SAFE?,FILM,L ZERO? STACK \TRUE ?ELS14: CALL ZMEMQ,OBJ,BRIEFCASE-TBL ZERO? STACK /FALSE IN? BRIEFCASE,CONTACT /TRUE CALL2 META-LOC,BRIEFCASE EQUAL? L,STACK \FALSE LOC BRIEFCASE FSET? STACK,PERSONBIT \TRUE RFALSE .FUNCT CARRY-CHECK,PER CALL PRINT-CONT,PER,0,TRUE-VALUE RSTACK .FUNCT COM-CHECK,PER EQUAL? PRSA,V?WALK-TO \?ELS5 CALL2 PRODUCE-SOMETHING,PER RSTACK ?ELS5: EQUAL? PRSA,V?THANKS \?ELS12 RETURN 2 ?ELS12: EQUAL? PRSA,V?TAKE /?THN17 EQUAL? PRSA,V?SEND-TO,V?SEND,V?BRING \?ELS16 ?THN17: IN? PRSO,PLAYER \FALSE SET 'WINNER,PLAYER CALL PERFORM,V?GIVE,PRSO,PER RTRUE ?ELS16: EQUAL? PRSA,V?EXAMINE \?ELS25 SET 'WINNER,PLAYER CALL PERFORM,V?SHOW,PER,PRSO RTRUE ?ELS25: EQUAL? PRSA,V?GIVE \?ELS27 EQUAL? PRSI,PLAYER \?ELS27 SET 'WINNER,PLAYER CALL PERFORM,V?TAKE,PRSO,PER RTRUE ?ELS27: EQUAL? PRSA,V?SGIVE \?ELS31 EQUAL? PRSO,PLAYER \?ELS31 SET 'WINNER,PLAYER CALL PERFORM,V?TAKE,PRSI,PER RTRUE ?ELS31: EQUAL? PRSA,V?GOODBYE,V?HELLO \?ELS35 ZERO? PRSO /?THN41 EQUAL? PRSO,PER \FALSE ?THN41: SET 'WINNER,PLAYER CALL PERFORM,PRSA,PER RTRUE ?ELS35: EQUAL? PRSA,V?INVENTORY \?ELS44 CALL2 CARRY-CHECK,PER ZERO? STACK \TRUE CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1 PRINTR "n't holding anything." ?ELS44: EQUAL? PRSA,V?TELL-ABOUT \?ELS51 EQUAL? PRSO,PLAYER \FALSE SET 'WINNER,PLAYER CALL PERFORM,V?ASK-ABOUT,PER,PRSI RTRUE ?ELS51: EQUAL? PRSA,V?WAIT-FOR \?ELS58 EQUAL? PRSO,ROOMS,PLAYER \?ELS58 SET 'WINNER,PLAYER CALL PERFORM,V?$CALL,PER RTRUE ?ELS58: EQUAL? PRSA,V?TALK-ABOUT,V?WHAT \FALSE SET 'WINNER,PLAYER CALL PERFORM,V?ASK-ABOUT,PER,PRSO RTRUE .FUNCT COMMON-OTHER,PER,LPER=0,X,N IN? PER,GLOBAL-OBJECTS \?ELS3 GETP PER,P?CHARACTER GET CHARACTER-TABLE,STACK >LPER JUMP ?CND1 ?ELS3: SET 'LPER,PER ?CND1: EQUAL? PRSA,V?ASK /FALSE EQUAL? PRSA,V?EXAMINE \?ELS12 GETP LPER,P?TEXT >X ZERO? X /?ELS15 PRINT X CRLF JUMP ?CND13 ?ELS15: CALL ZMEMQ,LPER,EXTRA-TABLE >X ZERO? X /?CND13 GET EXTRA-SEEN-TABLE,X >N LESS? 0,N /?CND20 SUB 0,N ADD 1,STACK >N PUT EXTRA-SEEN-TABLE,X,N ?CND20: ADD N,X >N CALL HE-SHE-IT,LPER,TRUE-VALUE,STR?1 PRINTI " dressed for " CALL PICK-THIS,DRESSED-FOR-TBL,N PRINT STACK PRINTI ", in shades of " CALL PICK-THIS,COLOR-TBL,N PRINT STACK PRINTI ", with " CALL PICK-THIS,ACCESS-TBL,N PRINT STACK PRINTI ". " GETP LPER,P?LDESC >X IN? LPER,HERE \?THN28 EQUAL? X,2,32,33 /?THN28 EQUAL? X,34,36 \?ELS27 ?THN28: CRLF RTRUE ?ELS27: CALL PICK-THIS,REMARKS-TBL,N CALL STACK,LPER RTRUE ?CND13: CALL2 THIS-IS-IT,LPER IN? LPER,HERE \?CND32 CALL2 CARRY-CHECK,LPER ZERO? STACK /?CND32 SET 'X,TRUE-VALUE ?CND32: FSET? LPER,MUNGBIT \?ELS40 ZERO? X /?CND41 PRINTI "And" ?CND41: ZERO? X \?PRD46 PUSH 1 JUMP ?PRD47 ?PRD46: PUSH 0 ?PRD47: CALL HE-SHE-IT,LPER,STACK,STR?1 SET 'X,TRUE-VALUE PRINTI " out cold." CRLF RETURN X ?ELS40: FSET? LPER,PERSONBIT /?CND38 ZERO? X /?CND52 PRINTI "And" ?CND52: FSET LPER,PERSONBIT ZERO? X \?PRD57 PUSH 1 JUMP ?PRD58 ?PRD57: PUSH 0 ?PRD58: CALL HE-SHE-IT,LPER,STACK,STR?1 FCLEAR LPER,PERSONBIT SET 'X,TRUE-VALUE PRINTI " dead." CRLF RETURN X ?CND38: RETURN X ?ELS12: EQUAL? PRSO,PER \FALSE EQUAL? PRSA,V?SHOW \FALSE CALL PERFORM,V?ASK-ABOUT,PRSO,PRSI RTRUE .FUNCT PICK-THIS,FROB,N GET FROB,0 MOD N,STACK ADD 1,STACK GET FROB,STACK RSTACK .FUNCT REM-NULL,PER CRLF RTRUE .FUNCT REM-EYES-BLK,PER CALL HIM-HER-IT,PER,TRUE-VALUE,TRUE-VALUE PRINTR " glittering black eyes turn away whenever you try to look into them." .FUNCT REM-EYES-BLU,PER CALL HIM-HER-IT,PER,TRUE-VALUE,TRUE-VALUE PRINTR " lucid blue eyes look straight into yours, without a flinch." .FUNCT REM-FINGER,PER CALL HIM-HER-IT,PER,TRUE-VALUE,TRUE-VALUE PRINTR " teeth and fingers are well-stained with nicotine." .FUNCT REM-MARK,PER CALL HE-SHE-IT,PER,TRUE-VALUE,STR?2 PRINTR " a birthmark on one cheek like a wine stain." .FUNCT REM-WART,PER CALL HE-SHE-IT,PER,TRUE-VALUE,STR?2 PRINTR " a wart that's hard to avoid looking at." .FUNCT NEW-LDESC,OBJ,STR=0,HERE LOC OBJ >HERE FSET? OBJ,PERSONBIT /?ELS3 SET 'STR,36 JUMP ?CND1 ?ELS3: FSET? OBJ,MUNGBIT \?ELS5 SET 'STR,34 JUMP ?CND1 ?ELS5: ZERO? STR /?ELS7 JUMP ?CND1 ?ELS7: CALL2 ON-PLATFORM?,HERE ZERO? STACK /?ELS9 CALL2 PICK-ONE,PLATFORM-ACTS >STR JUMP ?CND1 ?ELS9: CALL ZMEMQ,HERE,STATION-ROOMS ZERO? STACK /?ELS11 CALL2 PICK-ONE,STATION-ACTS >STR JUMP ?CND1 ?ELS11: FSET? OBJ,PLURALBIT \?ELS13 CALL2 PICK-ONE,PLURAL-ACTS >STR JUMP ?CND1 ?ELS13: CALL2 PICK-ONE,TOURIST-ACTS >STR ?CND1: EQUAL? STR,2 \?ELS18 EQUAL? OBJ,BAD-SPY /?THN22 CALL ZMEMQ,HERE,CAR-ROOMS-CORRID ZERO? STACK /?ELS21 ?THN22: SET 'STR,3 JUMP ?CND16 ?ELS21: CALL ZMEMQ,HERE,CAR-ROOMS-VESTIB ZERO? STACK /?CND16 SET 'STR,1 JUMP ?CND16 ?ELS18: EQUAL? STR,5 \?ELS27 CALL CALL-FOR-PROP,LIGHTER,OBJ ZERO? STACK \?CND28 SET 'STR,4 ?CND28: CALL CALL-FOR-PROP,CIGARETTE,OBJ ZERO? STACK \?CND16 SET 'STR,4 JUMP ?CND16 ?ELS27: EQUAL? STR,6,7 \?ELS35 CALL CALL-FOR-PROP,NEWSPAPER,OBJ ZERO? STACK \?CND16 SET 'STR,4 JUMP ?CND16 ?ELS35: EQUAL? STR,11,31 \?CND16 CALL CALL-FOR-PROP,LUGGAGE,OBJ ZERO? STACK \?CND16 SET 'STR,12 ?CND16: GETP OBJ,P?LDESC EQUAL? STR,STACK /?CND44 FCLEAR OBJ,TOUCHBIT ?CND44: PUTP OBJ,P?LDESC,STR RETURN STR .FUNCT CALL-FOR-PROP,OBJ,PER EQUAL? PER,PLAYER /FALSE FSET? OBJ,TOUCHBIT /FALSE CALL2 META-LOC,OBJ FSET? STACK,SEENBIT /FALSE FCLEAR OBJ,TAKEBIT MOVE OBJ,PER GETP PER,P?CAR PUTP OBJ,P?CAR,STACK RETURN OBJ .FUNCT UNSNOOZE,PER GETP PER,P?LDESC EQUAL? STACK,2 \FALSE FCLEAR PER,TOUCHBIT PUTP PER,P?LDESC,1 RTRUE .FUNCT DESCRIBE-PERSON,OBJ,STR=0,GOBJ,RM,DR FSET? OBJ,NDESCBIT /FALSE EQUAL? OBJ,BAD-SPY \?ELS5 CALL2 QUEUED?,I-TRAVELER ZERO? STACK /?ELS5 CALL2 I-TRAVELER,TRUE-VALUE SET 'SUPPRESS-INTERRUPT,TRUE-VALUE RTRUE ?ELS5: FSET? OBJ,SEENBIT \?ELS9 CALL2 START-SENTENCE,OBJ CALL HE-SHE-IT,OBJ,-1,STR?1 JUMP ?CND1 ?ELS9: PRINTI "There's " CALL2 PRINTA,OBJ ?CND1: PRINTI " here, " GETP OBJ,P?LDESC >STR ZERO? STR \?ELS20 CALL2 NEW-LDESC,OBJ >STR JUMP ?CND18 ?ELS20: FSET? OBJ,TOUCHBIT \?CND18 EQUAL? STR,36 /?CND18 PRINTI "still " ?CND18: IN? BRIEFCASE,OBJ \?CND27 PRINTI "holding the " PRINTD BRIEFCASE PRINTI " and " ?CND27: EQUAL? STR,PEEKING-CODE /?ELS34 EQUAL? STR,5 \?ELS37 CALL2 THIS-IS-IT,CIGARETTE JUMP ?CND35 ?ELS37: EQUAL? STR,6,7 \?ELS39 CALL2 THIS-IS-IT,NEWSPAPER JUMP ?CND35 ?ELS39: EQUAL? STR,11 \?ELS41 CALL2 THIS-IS-IT,LUGGAGE JUMP ?CND35 ?ELS41: EQUAL? STR,12 \?ELS43 CALL2 THIS-IS-IT,TIMETABLE JUMP ?CND35 ?ELS43: EQUAL? STR,31 \?CND35 CALL2 THIS-IS-IT,PASSPORT ?CND35: GET ACT-STRINGS,STR PRINT STACK JUMP ?CND32 ?ELS34: LOC OBJ GETPT STACK,P?IN >RM ZERO? RM /?ELS49 PTSIZE RM EQUAL? STACK,DEXIT \?CND50 GET RM,DEXITOBJ >DR ?CND50: ZERO? DR /?ELS55 FSET? DR,LOCKED \?ELS55 PRINTI "trying" CALL2 HIM-HER-IT,DR JUMP ?CND32 ?ELS55: PRINTI "peeking into" GET RM,REXIT CALL2 PRINTT,STACK JUMP ?CND32 ?ELS49: PRINTI "looking around" ?CND32: FSET OBJ,TOUCHBIT FSET OBJ,SEENBIT GETP OBJ,P?CHARACTER >GOBJ ZERO? GOBJ /?CND68 GET GLOBAL-CHARACTER-TABLE,GOBJ >GOBJ EQUAL? OBJ,GOBJ /?CND68 FSET GOBJ,TOUCHBIT FSET GOBJ,SEENBIT ?CND68: PRINTI "." EQUAL? STR,14,17 /?THN81 EQUAL? STR,19,28 \?ELS80 ?THN81: PRINTC 32 RTRUE ?ELS80: CRLF RTRUE .FUNCT DONT-KNOW,PER,OBJ CALL2 PRODUCE-SOMETHING,PER RTRUE .FUNCT GLOBAL-PERSON,ARG=0,L EQUAL? PRSA,V?WHAT /FALSE EQUAL? PRSA,V?WALK-TO,V?WAIT-FOR,V?PHONE /FALSE EQUAL? PRSA,V?LOOK-UP,V?FOLLOW,V?FIND /FALSE EQUAL? PRSA,V?$WHERE \?ELS9 ZERO? ARG \FALSE GETP PRSO,P?CHARACTER GET CHARACTER-TABLE,STACK >PRSO RFALSE ?ELS9: EQUAL? PRSA,V?EXAMINE \?ELS14 GETP PRSO,P?CHARACTER >L ZERO? L /?ELS14 ZERO? ARG /?ORP20 PUSH ARG JUMP ?THN17 ?ORP20: GET CHARACTER-TABLE,L ?THN17: POP 'L ZERO? L /?ELS14 CALL2 CORRIDOR-LOOK,L ZERO? STACK \FALSE CALL2 NOT-HERE,PRSO RSTACK ?ELS14: EQUAL? PRSA,V?TELL-ABOUT,V?TELL,V?REPLY /?THN30 EQUAL? PRSA,V?HELLO,V?ASK-FOR,V?ASK-ABOUT \?ELS27 ?THN30: ZERO? PRSO /?ELS27 FSET? PRSO,PERSONBIT \?ELS27 IN? PRSO,GLOBAL-OBJECTS /?ELS27 EQUAL? PRSA,V?REPLY \FALSE SET 'PRSA,V?TELL RFALSE ?ELS27: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT \?ELS36 ZERO? PRSI /?ELS36 GETP PRSI,P?CHARACTER >L ZERO? L /?ELS36 IN? PRSI,GLOBAL-OBJECTS \?ELS36 ZERO? ARG /?ORP42 PUSH ARG JUMP ?THN39 ?ORP42: GET CHARACTER-TABLE,L ?THN39: CALL PERFORM,PRSA,PRSO,STACK RTRUE ?ELS36: SET 'P-CONT,FALSE-VALUE EQUAL? PRSA,V?TELL-ABOUT,V?ASK-ABOUT /?THN48 ZERO? NOW-PRSI \?ELS47 ?THN48: CALL2 NOT-HERE-PERSON,PRSO RTRUE ?ELS47: ZERO? PRSI /?ELS51 CALL2 NOT-HERE-PERSON,PRSI RTRUE ?ELS51: CALL2 NOT-HERE-PERSON,WINNER RTRUE .FUNCT NOT-HERE-PERSON,PER,L SET 'CLOCK-WAIT,TRUE-VALUE PRINTI "(" CALL HE-SHE-IT,PER,TRUE-VALUE,STR?1 GETP PER,P?CHARACTER >L ZERO? L /?CND3 GET CHARACTER-TABLE,L >PER ?CND3: CALL2 VISIBLE?,PER ZERO? STACK /?ELS8 PRINTI "n't close enough" CALL1 SPEAKING-VERB? ZERO? STACK /?CND11 PRINTI " to hear you" ?CND11: PRINTI "." JUMP ?CND6 ?ELS8: PRINTI "n't here!" ?CND6: PRINTR ")" .FUNCT PRODUCE-SOMETHING,PER EQUAL? PER,CONDUCTOR,GUARD,THUG /?THN6 RANDOM 100 LESS? 50,STACK /?ELS5 ?THN6: CALL1 PRODUCE-GIBBERISH RSTACK ?ELS5: RANDOM 100 LESS? 50,STACK /?ELS9 CALL HE-SHE-IT,PER,TRUE-VALUE,STR?10 PRINTI " around fearfully but" CALL HE-SHE-IT,PER,-1,STR?6 PRINTR " nothing." ?ELS9: PRINTI """Mrzni Amerikan? Globfrp " CALL2 PICK-ONE-NEW,CELEBS PRINT STACK PRINTR "?""" .FUNCT PRODUCE-GIBBERISH,N=0,COUNT,SUPER-COUNTER ZERO? N \?CND1 RANDOM 100 LESS? 50,STACK /?ELS6 SET 'N,1 JUMP ?CND1 ?ELS6: SET 'N,2 ?CND1: PRINTC 34 CALL2 PICK-ONE-NEW,VOWELS PRINTC STACK SET 'SUPER-COUNTER,0 ?PRG9: INC 'SUPER-COUNTER SET 'COUNT,0 ?PRG11: INC 'COUNT CALL2 PICK-ONE-NEW,GIBBERISH PRINT STACK EQUAL? COUNT,5 \?PRG11 EQUAL? SUPER-COUNTER,N \?PRG9 RANDOM 100 LESS? 50,STACK /?ELS23 PRINTR ".""" ?ELS23: PRINTI "?""" CRLF RTRUE .ENDI