.FUNCT GUN-F EQUAL? PRSA,V?AIM \?ELS5 CALL PERFORM,V?SHOW,PRSI,PRSO RTRUE ?ELS5: EQUAL? PRSA,V?SHOW \FALSE EQUAL? PRSI,GUN \FALSE CALL2 VISIBLE?,CONDUCTOR ZERO? STACK /?ELS14 CALL ARREST-PLAYER,STR?61,CONDUCTOR,TRUE-VALUE,GUN RSTACK ?ELS14: CALL2 VISIBLE?,GUARD ZERO? STACK /?ELS16 CALL ARREST-PLAYER,STR?61,GUARD,TRUE-VALUE,GUN RSTACK ?ELS16: CALL2 VISIBLE?,WAITER ZERO? STACK /FALSE CALL ARREST-PLAYER,STR?61,WAITER,TRUE-VALUE,GUN RSTACK .FUNCT START-BAD-SPY,VAL,GT,CAR GET GOAL-TABLES,BAD-SPY-C >GT PUT GT,GOAL-SCRIPT,I-BAD-SPY GETP BAD-SPY,P?CAR >CAR GRTR? CAR,CAR-MAX \?CND1 SET 'CAR,CAR-MAX ?CND1: CALL2 V-REAR,CAR CALL MOVE-PERSON,BAD-SPY,STACK >VAL PUTP BAD-SPY,P?CAR,CAR PUT GT,GOAL-ENABLE,1 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-START,CAR-START RETURN VAL .FUNCT I-BAD-SPY,GARG=0,L,V,BR,BL,RM,VAL=0 ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-BAD-SPY:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V CALL2 META-LOC,BRIEFCASE >BR LOC BLOOD-SPOT >BL EQUAL? GARG,G-ENROUTE \?ELS18 GETPT L,P?IN GET STACK,REXIT >RM EQUAL? BR,L,RM \?ELS23 CALL2 HIDDEN?,BRIEFCASE ZERO? STACK \?ELS23 IN? BRIEFCASE,BAD-SPY /?ELS23 CALL ESTABLISH-GOAL,BAD-SPY,BR RSTACK ?ELS23: EQUAL? BL,L,RM \?ELS27 CALL ESTABLISH-GOAL,BAD-SPY,BL RSTACK ?ELS27: ZERO? V \?ELS29 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS29: EQUAL? HERE,BR \?ELS37 CALL2 HIDDEN?,BRIEFCASE ZERO? STACK \?ELS37 IN? BRIEFCASE,BAD-SPY /?ELS37 CALL NEW-LDESC,BAD-SPY,30 SET 'BAD-SPY-DONE-PEEKING,TRUE-VALUE GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-YOU SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS37: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS18: EQUAL? VARIATION,3,4 /?ELS55 EQUAL? GARG,G-REACHED \?ELS55 CALL NEW-LDESC,BAD-SPY,30 SET 'BAD-SPY-DONE-PEEKING,TRUE-VALUE ZERO? V /?CND58 CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " enters, looks around, and " ?CND58: EQUAL? BL,L \?ELS66 ZERO? V /?CND67 GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-YOU GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-FUNCTION,I-BAD-SPY-W-YOU SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE PRINTI "sits down." CRLF ?CND67: CALL2 HIDDEN?,BRIEFCASE ZERO? STACK \?THN76 EQUAL? L,BR /?CND64 ?THN76: CALL NEW-LDESC,BAD-SPY,18 ZERO? IDEBUG /?CND78 PRINTN V PRINTC 93 CRLF RETURN V ?CND78: RETURN V ?ELS66: ZERO? V /?CND64 PRINTI "pauses a minute." CRLF ?CND64: IN? BRIEFCASE,PLAYER /?THN95 CALL2 HIDDEN?,BRIEFCASE ZERO? STACK \?THN95 EQUAL? L,BR /?ELS94 ?THN95: CALL QUEUE,I-BAD-SPY,1 PUT STACK,0,1 JUMP ?CND92 ?ELS94: CALL1 SPY-TAKES-CASE ZERO? V /?CND92 PRINTI "Then" CALL HE-SHE-IT,BAD-SPY,0,STR?288 CALL2 HIM-HER-IT,BRIEFCASE PRINTI " and takes it." CRLF ?CND92: ZERO? IDEBUG /?CND105 PRINTN V PRINTC 93 CRLF RETURN V ?CND105: RETURN V ?ELS55: ZERO? GARG \FALSE ADD 1,DINER-CAR CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-1,STACK ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE .FUNCT SPY-TAKES-CASE FCLEAR BRIEFCASE,TAKEBIT FCLEAR BRIEFCASE,SEENBIT FSET? BRIEFCASE,OPENBIT \?CND1 SET 'BRIEFCASE-WAS-OPEN,TRUE-VALUE FCLEAR BRIEFCASE-LATCH,OPENBIT FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 ?CND1: MOVE BRIEFCASE,BAD-SPY GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-SCRIPT,I-BAD-SPY-W-CASE CALL QUEUE,I-BAD-SPY-W-CASE,1 PUT STACK,0,1 RTRUE .FUNCT I-BAD-SPY-W-CASE,GARG=0,V,L,GT,DR,N ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-BAD-SPY-W-CASE:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-W-CASE ZERO? STACK \FALSE ZERO? GARG \?CND14 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,PLATFORM-MAX ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: CALL2 VISIBLE?,BAD-SPY >V ZERO? V \?CND23 IN? BRIEFCASE,BAD-SPY \?CND23 FCLEAR BRIEFCASE,SEENBIT ?CND23: EQUAL? GARG,G-ENROUTE \?ELS32 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS32: EQUAL? GARG,G-REACHED \FALSE LOC BAD-SPY >L CALL NEW-LDESC,BAD-SPY,35 CALL FIND-FLAG-LG,L,DOORBIT >DR FSET DR,LOCKED ZERO? BRIEFCASE-WAS-OPEN \?CND41 FSET BRIEFCASE-LATCH,OPENBIT FSET BRIEFCASE,OPENBIT CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL,1 ?CND41: ZERO? V /?CND44 CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " quickly opens" CALL2 HIM-HER-IT,BRIEFCASE ?CND44: EQUAL? VARIATION,2,4 /?THN53 ZERO? LATCH-TURNED /?ELS52 ?THN53: SET 'LATCH-TURNED,TRUE-VALUE SET 'BAD-SPY-OPENED-CASE,TRUE-VALUE GET GOAL-TABLES,BAD-SPY-C >GT IN? MCGUFFIN,BRIEFCASE \?ELS57 JUMP ?CND55 ?ELS57: IN? SPY-LIST,BRIEFCASE \?ELS59 SET 'LIST-RUBBED,TRUE-VALUE IN? PASSOBJECT,BAD-SPY \?ELS62 JUMP ?CND55 ?ELS62: EQUAL? PASSOBJECT,KNIFE \?ELS64 FCLEAR DR,LOCKED PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-KNIFE CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR JUMP ?CND55 ?ELS64: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?CND55 FCLEAR DR,LOCKED PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-FLOWER EQUAL? L,REST-ROOM-REAR-DINER,REST-ROOM-REAR,OTHER-REST-ROOM-REAR /?CND55 GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL ESTABLISH-GOAL,BAD-SPY,STACK JUMP ?CND55 ?ELS59: ZERO? BAD-SPY-KNOWS-YOU /?ELS71 PUT GT,GOAL-SCRIPT,I-BAD-SPY-W-YOU FCLEAR DR,LOCKED CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE JUMP ?CND55 ?ELS71: ZERO? BRIEFCASE-WAS-OPEN \?CND75 FCLEAR BRIEFCASE-LATCH,OPENBIT FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 ?CND75: PUT GT,GOAL-FUNCTION,I-BAD-SPY-IMITATES PUT GT,GOAL-SCRIPT,I-BAD-SPY-IMITATES ?CND55: ZERO? V /?CND50 PRINTC 46 CRLF JUMP ?CND50 ?ELS52: EQUAL? CAR-HERE,PLATFORM-MAX \?ELS88 EQUAL? HERE,COMPARTMENT-5 \?CND89 CALL1 TELL-GAS ?CND89: MOVE BRIEFCASE,SEAT-5 JUMP ?CND86 ?ELS88: MOVE BRIEFCASE,OTHER-SEAT-5 ?CND86: FSET BRIEFCASE,TAKEBIT FCLEAR BAD-SPY,PERSONBIT CALL NEW-LDESC,BAD-SPY,32 GETP BAD-SPY,P?CAR >N ?PRG94: CALL FIND-FLAG-CAR,L,N,PERSONBIT >DR ZERO? DR /?REP95 FCLEAR DR,PERSONBIT CALL NEW-LDESC,DR,32 JUMP ?PRG94 ?REP95: SET 'GAS-CAR-RM,COMPARTMENT-5 SET 'GAS-CAR,PLATFORM-MAX ZERO? V /?CND50 PRINTI " and succumbs to the poison gas." CRLF ?CND50: ZERO? IDEBUG /?CND107 PRINTN V PRINTC 93 CRLF ?CND107: RETURN V .FUNCT ARRIVE-AT-STATION-BAD-SPY,GT,X GET GOAL-TABLES,BAD-SPY-C >GT EQUAL? VARIATION,3,4 \?ELS5 EQUAL? SCENERY-OBJ,STATION-FRBZ,STATION-GOLA \?ELS5 PUT GT,GOAL-SCRIPT,I-TRAVELER-FINDS-CONTACT CALL2 CLEAR-TRAIN-PERSON,BAD-SPY-C RSTACK ?ELS5: EQUAL? VARIATION,3,4 \?ELS9 EQUAL? SCENERY-OBJ,STATION-KNUT \?ELS9 IN? PASSOBJECT,BAD-SPY \?ELS9 ZERO? ON-TRAIN \?ELS16 LOC BAD-SPY CALL2 ON-PLATFORM?,STACK ZERO? STACK /?ELS16 PUT GT,GOAL-FUNCTION,I-TRAVELER-TO-GRNZ LOC BAD-SPY GETP STACK,P?CAR >X PUTP BAD-SPY,P?CAR,X CALL2 V-REAR,X CALL MOVE-PERSON,BAD-SPY,STACK CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,X RSTACK ?ELS16: PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-TICKET GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL ESTABLISH-GOAL,BAD-SPY,STACK RSTACK ?ELS9: GET GT,GOAL-SCRIPT EQUAL? I-BAD-SPY-IMITATES,STACK \FALSE GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL ESTABLISH-GOAL,BAD-SPY,STACK RSTACK .FUNCT DEPART-FROM-STATION-BAD-SPY ZERO? BAD-SPY-KNOWS-YOU /FALSE ZERO? GAS-CAR \FALSE CALL1 I-BAD-SPY-TO-YOU RSTACK .FUNCT I-BAD-SPY-IMITATES,GARG=0,L,V,CAR,X ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-BAD-SPY-IMITATES:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-IMITATES ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V ZERO? V \?CND14 IN? BRIEFCASE,BAD-SPY \?CND14 FCLEAR BRIEFCASE,SEENBIT ?CND14: EQUAL? GARG,G-ENROUTE \?ELS21 CALL2 ON-PLATFORM?,L ZERO? STACK /?CND19 ZERO? V /?CND19 CALL2 START-SENTENCE,BAD-SPY CALL2 WHERE?,BAD-SPY ZERO? STACK /?CND31 PRINTC 44 ?CND31: PRINTI " searches the crowd." CRLF JUMP ?CND19 ?ELS21: EQUAL? GARG,G-REACHED \?CND19 CALL NEW-LDESC,BAD-SPY,10 GETP BAD-SPY,P?CAR >CAR CALL2 V-REAR,CAR EQUAL? L,STACK \?ELS42 GET STATION-ROOMS,CAR MOVE BAD-SPY,STACK ZERO? V \?THN46 CALL2 VISIBLE?,BAD-SPY ZERO? STACK /?CND43 ?THN46: CALL2 BAD-SPY-LEAVES-BOARDS,STR?339 ?CND43: CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-A JUMP ?CND19 ?ELS42: ZERO? CUSTOMS-SWEEP \?THN50 EQUAL? L,PLATFORM-E \?ELS49 ?THN50: GETP L,P?CAR >X CALL2 V-REAR,X MOVE BAD-SPY,STACK PUTP BAD-SPY,P?CAR,X ZERO? V \?THN55 CALL2 VISIBLE?,BAD-SPY ZERO? STACK /?CND52 ?THN55: CALL2 BAD-SPY-LEAVES-BOARDS,STR?340 ?CND52: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-5,PLATFORM-MAX JUMP ?CND19 ?ELS49: EQUAL? L,PLATFORM-A \?CND19 CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-E ZERO? V /?CND40 CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " searches the crowd." CRLF ?CND40: ?CND19: ZERO? IDEBUG /?CND65 PRINTN V PRINTC 93 CRLF RETURN V ?CND65: RETURN V .FUNCT I-BAD-SPY-W-YOU,GARG=0,VAL=0,L,V ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-BAD-SPY-W-YOU:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY-W-YOU ZERO? STACK \FALSE CALL2 VISIBLE?,BAD-SPY >V LOC BAD-SPY >L EQUAL? GARG,G-ENROUTE \?ELS16 ZERO? BAD-SPY-OPENED-CASE \?ELS19 IN? BRIEFCASE,PLAYER /?ELS19 CALL2 HIDDEN?,BRIEFCASE ZERO? STACK \?ELS19 CALL2 META-LOC,BRIEFCASE EQUAL? L,STACK \?ELS19 CALL1 SPY-TAKES-CASE ZERO? V /?CND14 SET 'VAL,TRUE-VALUE CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE,STR?288 CALL2 HIM-HER-IT,BRIEFCASE PRINTI " and takes it." CRLF JUMP ?CND14 ?ELS19: ZERO? V \?CND14 CALL1 I-BAD-SPY-TO-YOU >VAL JUMP ?CND14 ?ELS16: EQUAL? GARG,G-REACHED \?ELS31 CALL NEW-LDESC,BAD-SPY,30 CALL QUEUE,I-BAD-SPY-W-YOU,-1 PUT STACK,0,1 GET GOAL-TABLES,BAD-SPY-C GET STACK,GOAL-F EQUAL? HERE,STACK \?CND14 CALL ZMEMQ,HERE,CAR-ROOMS-COMPS ZERO? STACK \?THN38 CALL ZMEMQ,HERE,CAR-ROOMS-COMPS-DINER ZERO? STACK /?ELS37 ?THN38: SET 'VAL,TRUE-VALUE ZERO? V /?ELS42 CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " enters and sits down." CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,BAD-SPY ZERO? STACK \?CND46 CALL1 BAD-SPY-GUN-THREAT ?CND46: CRLF JUMP ?CND14 ?ELS42: PRINTI "You hear a knock on the door." CRLF JUMP ?CND14 ?ELS37: ZERO? V /?CND14 SET 'VAL,TRUE-VALUE CALL NEW-LDESC,BAD-SPY,3 CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE,STR?341 EQUAL? L,HERE \?CND58 PRINTI " here" ?CND58: PRINTI "." CRLF JUMP ?CND14 ?ELS31: ZERO? GARG \?CND14 ZERO? V /?ELS69 CALL ZMEMQ,HERE,CAR-ROOMS-COMPS ZERO? STACK \?THN72 CALL ZMEMQ,HERE,CAR-ROOMS-COMPS-DINER ZERO? STACK \?THN72 CALL ZMEMQ,HERE,CAR-ROOMS-REST ZERO? STACK /?ELS69 ?THN72: IN? GUN,BAD-SPY \?ELS76 PRINTI "The sound of the gunshot is not loud enough to be carried beyond this room. But the pain is so great that you don't notice the details." CRLF CALL1 FINISH JUMP ?CND67 ?ELS76: CALL FIND-FLAG-HERE,PERSONBIT,PLAYER,BAD-SPY ZERO? STACK \?CND67 SET 'VAL,TRUE-VALUE CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " peeks into the corridor for a moment." CALL1 BAD-SPY-GUN-THREAT CRLF JUMP ?CND67 ?ELS69: MOVE GUN,OTHER-LIMBO-FWD ZERO? V \?CND67 CALL QUEUE,I-BAD-SPY-W-YOU,0 CALL1 I-BAD-SPY-TO-YOU >VAL ?CND67: ?CND14: ZERO? IDEBUG /?CND88 PRINTN VAL PRINTC 93 CRLF RETURN VAL ?CND88: RETURN VAL .FUNCT BAD-SPY-GUN-THREAT MOVE GUN,BAD-SPY PRINTI " Then" CALL2 HE-SHE-IT,BAD-SPY PRINTI " displays a gun and motions for you to give" CALL2 HIM-HER-IT,BAD-SPY PRINTI " something." RTRUE .FUNCT I-BAD-SPY-TO-YOU,GARG=0,L,STA,V,VAL=0 ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-BAD-SPY-TO-YOU:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-BAD-SPY ZERO? STACK \FALSE CALL2 VISIBLE?,BAD-SPY >V LOC BAD-SPY CALL ZMEMQ,STACK,STATION-ROOMS >STA ZERO? ON-TRAIN /?ELS16 ZERO? STA /?CND18 CALL2 V-REAR,CAR-HERE MOVE BAD-SPY,STACK PUTP BAD-SPY,P?CAR,CAR-HERE ZERO? V \?THN25 CALL2 VISIBLE?,BAD-SPY ZERO? STACK \?THN25 GET STATION-ROOMS,CAR-HERE CALL2 VISIBLE?,STACK ZERO? STACK /?CND18 ?THN25: SET 'VAL,TRUE-VALUE CALL2 BAD-SPY-LEAVES-BOARDS,STR?340 ?CND18: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE RETURN VAL ?ELS16: ZERO? STA \?CND29 GETP BAD-SPY,P?CAR GET STATION-ROOMS,STACK >L MOVE BAD-SPY,L ZERO? V \?THN35 CALL2 VISIBLE?,BAD-SPY ZERO? STACK /?CND29 ?THN35: SET 'VAL,TRUE-VALUE CALL2 BAD-SPY-LEAVES-BOARDS,STR?339 ?CND29: CALL ESTABLISH-GOAL,BAD-SPY,HERE RETURN VAL .FUNCT BAD-SPY-LEAVES-BOARDS,STR PRINTI "Out of the corner of your eye, you see" CALL2 HIM-HER-IT,BAD-SPY PRINTC 32 PRINT STR PRINTR "ing the train." .FUNCT HIDDEN?,OBJ,L LOC OBJ >L EQUAL? L,BRIEFCASE \?ELS5 FSET? BRIEFCASE,OPENBIT \TRUE RFALSE ?ELS5: EQUAL? L,UNDER-SEAT-1,OTHER-UNDER-SEAT-1,POCKET /TRUE EQUAL? L,UNDER-SEAT-2,OTHER-UNDER-SEAT-2 /TRUE EQUAL? L,UNDER-SEAT-3,OTHER-UNDER-SEAT-3 /TRUE EQUAL? L,UNDER-SEAT-4,OTHER-UNDER-SEAT-4 /TRUE EQUAL? L,UNDER-SEAT-5,OTHER-UNDER-SEAT-5 /TRUE EQUAL? L,UNDER-BOOTH-1,UNDER-BOOTH-2,UNDER-BOOTH-3 /TRUE RFALSE .FUNCT PASS-OBJECT?,O=0 ZERO? O \?CND1 SET 'O,PASSOBJECT ?CND1: EQUAL? PRSA,V?GIVE \?ELS8 EQUAL? PRSO,O /TRUE EQUAL? PRSO,NAPKIN \?ELS15 EQUAL? O,SCARF,TOWEL-WAITER /TRUE ?ELS15: EQUAL? PRSO,FLOWER-2,FLOWER-1 \FALSE EQUAL? O,FLOWER-GLOBAL /TRUE ?ELS8: EQUAL? PRSA,V?SHOW \FALSE EQUAL? PRSI,O /TRUE EQUAL? PRSI,NAPKIN \?ELS30 EQUAL? O,SCARF,TOWEL-WAITER /TRUE ?ELS30: EQUAL? PRSI,FLOWER-2,FLOWER-1 \FALSE EQUAL? O,FLOWER-GLOBAL /TRUE RFALSE .FUNCT CONTACT-F,ARG=0,X,WON=1 EQUAL? ARG,M-WINNER \?ELS5 EQUAL? PRSA,V?$CALL \?ELS10 EQUAL? PRSO,PASSWORD \?ELS15 CALL1 GIVE-PASSWORD RTRUE ?ELS15: CALL1 GIVE-WRONG-PASS-X RSTACK ?ELS10: CALL CONTACT-DEFAULT-F,ARG RSTACK ?ELS5: EQUAL? PRSA,V?SHOW,V?GIVE \?ELS21 CALL1 GUARD-NOTICES CALL1 GIVE-MCGUFFIN? >X ZERO? X /?ELS26 CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTI " quickly inspects" CALL2 PRINTT,X PRINTI " and then " EQUAL? CONTACT,GUARD,CLERK,WAITRESS \?CND29 EQUAL? X,MCGUFFIN /?ELS34 PRINTI "says, ""This will not do. We already know what the plan is; you should have obtained the actual " PRINTD MCGUFFIN PRINTI " so that we could analyze it and find the source of the leak. I'm afraid I'll have to complete your mission myself.""" CRLF CALL1 FINISH JUMP ?CND29 ?ELS34: MOVE CONTACT,LIMBO-FWD PRINTI "says, ""Excellent work! But there's one more part to your mission. You may have noticed the special car at the end of the train. There's an important defector aboard it, and we intend to capture him back. You must ride this train until you observe a flare shot into the sky. Then you must make the train stop so we can capture him. Good luck!"" Then" CALL2 HE-SHE-IT,CONTACT PRINTR " vanishes into the crowd." ?CND29: EQUAL? X,FILM \?CND41 CALL ZMEMQ,MCGUFFIN,FILM-TBL ZERO? STACK \?CND41 PRINTR "looks at you quizzically." ?CND41: PRINTI "pumps your hand with obvious gratitude. " EQUAL? VARIATION,3,4 /?ELS52 PRINTI """Only a few people will ever know the great value of the service you've just performed. Probably even you don't know the full implications. But be assured that you deserve the thanks of the whole world.""" CRLF JUMP ?CND50 ?ELS52: CALL1 PRODUCE-GIBBERISH ?CND50: FSET? X,LOCKED \?CND57 CRLF PRINTI "However, events in the next few days show that" CALL2 PRINTT,X PRINTI " completely misled those charged with " EQUAL? VARIATION,3,4 /?ELS64 PRINTI "foiling" JUMP ?CND62 ?ELS64: PRINTI "carrying out" ?CND62: PRINTI " the plot. Apparently" CALL2 PRINTT,MCGUFFIN PRINTI " was altered by some clever hand." CRLF CRLF EQUAL? VARIATION,3,4 /?ELS75 SET 'WON,FALSE-VALUE PRINTI "CONDOLENCES!" JUMP ?CND73 ?ELS75: PRINTI "CONGRATULATIONS!" ?CND73: CRLF ?CND57: ZERO? WON /?CND82 EQUAL? VARIATION,2,4 \?CND82 CALL1 AWARD ?CND82: CALL1 FINISH RSTACK ?ELS26: CALL1 PASS-OBJECT? ZERO? STACK /?ELS88 IN? MCGUFFIN,LIMBO-REAR \?CND89 MOVE MCGUFFIN,CONTACT ?CND89: CALL2 START-SENTENCE,CONTACT ZERO? PASSWORD-GIVEN /?ELS96 CALL1 WHISPER-PLAN RTRUE ?ELS96: SET 'PASSOBJECT-GIVEN,TRUE-VALUE CALL2 SAID-TO,CONTACT FCLEAR CONTACT,NDESCBIT CALL NEW-LDESC,CONTACT,22 PRINTR " listens to you expectantly." ?ELS88: CALL1 GIVE-WRONG-PASS-X RSTACK ?ELS21: EQUAL? PRSA,V?TELL-ABOUT,V?ASK-FOR,V?ASK-ABOUT \?ELS105 EQUAL? PRSI,PASSWORD \?ELS110 CALL1 GIVE-PASSWORD RTRUE ?ELS110: CALL1 GIVE-WRONG-PASS-X RSTACK ?ELS105: CALL CONTACT-DEFAULT-F,ARG RSTACK .FUNCT GIVE-MCGUFFIN? ZERO? PASSWORD /?ELS5 ZERO? PASSWORD-GIVEN /FALSE ?ELS5: ZERO? PASSOBJECT /?ELS9 ZERO? PASSOBJECT-GIVEN \?ELS9 IN? PASSOBJECT,PLAYER \FALSE FSET? PASSOBJECT,WORNBIT \FALSE ?ELS9: EQUAL? PRSA,V?GIVE \FALSE EQUAL? PRSO,MCGUFFIN \?ELS17 RETURN PRSO ?ELS17: EQUAL? PRSO,FILM /?THN20 EQUAL? PRSO,CAMERA \FALSE IN? FILM,CAMERA \FALSE ?THN20: RETURN FILM .FUNCT GIVE-WRONG-PASS-X,N INC 'CONTACT-SUSPICION CALL NEW-LDESC,CONTACT,1 CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTI " looks " GRTR? 2,CONTACT-SUSPICION \?ELS7 PRINTI "confused for a moment and says, " CALL1 PRODUCE-GIBBERISH RSTACK ?ELS7: GETP HERE,P?CAR >N EQUAL? N,PLATFORM-MAX \?ELS14 DEC 'N JUMP ?CND12 ?ELS14: INC 'N ?CND12: GET STATION-ROOMS,N MOVE CONTACT,STACK FSET CONTACT,NDESCBIT PRINTR "alarmed and vanishes into the crowd." .FUNCT GIVE-PASSWORD SET 'PASSWORD-GIVEN,TRUE-VALUE IN? MCGUFFIN,LIMBO-REAR \?CND1 MOVE MCGUFFIN,CONTACT ?CND1: CALL1 GUARD-NOTICES CALL2 START-SENTENCE,CONTACT ZERO? CONTACT-SUSPICION /?CND4 PRINTI " hesitates for a moment and then" ?CND4: ZERO? PASSOBJECT-GIVEN \?THN14 IN? PASSOBJECT,PLAYER \?ELS13 FSET? PASSOBJECT,WORNBIT \?ELS13 ?THN14: CALL1 WHISPER-PLAN RTRUE ?ELS13: FCLEAR CONTACT,NDESCBIT CALL NEW-LDESC,CONTACT,23 PRINTR " looks at you expectantly." .FUNCT WHISPER-PLAN PRINTI " whispers, " EQUAL? VARIATION,3,4 \?ELS5 CALL2 PRODUCE-GIBBERISH,2 JUMP ?CND3 ?ELS5: EQUAL? SCENERY-OBJ,STATION-GOLA /?ELS7 PRINTI """Here too many people. Meet me in restroom.""" CRLF JUMP ?CND3 ?ELS7: CALL NEW-LDESC,CONTACT,26 PRINTI """I was expecting someone else, but you must be the courier. Please give me the " PRINTD MCGUFFIN PRINTR " now.""" ?CND3: EQUAL? SCENERY-OBJ,STATION-GOLA /FALSE FSET? CONTACT,FEMALE \?ELS21 MOVE CONTACT,REST-ROOM-WOMEN JUMP ?CND19 ?ELS21: MOVE CONTACT,REST-ROOM-MEN ?CND19: FCLEAR CONTACT,NDESCBIT CALL NEW-LDESC,CONTACT,24 PRINTI "Then" CALL2 HE-SHE-IT,CONTACT PRINTR " vanishes into the crowd." .FUNCT WHISPER-PLAN-OTHER,L CALL QUEUE,I-TRAVELER-FINDS-CONTACT,0 FSET? CONTACT,FEMALE \?ELS3 SET 'L,REST-ROOM-WOMEN JUMP ?CND1 ?ELS3: SET 'L,REST-ROOM-MEN ?CND1: IN? CONTACT,HERE /?THN9 ZERO? DEBUG /?CND6 ?THN9: IN? CONTACT,HERE /?CND11 PRINTC 91 ?CND11: CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTI " whispers something to" CALL2 HIM-HER-IT,BAD-SPY PRINTI " and vanishes into the crowd." CRLF ?CND6: MOVE CONTACT,L FCLEAR CONTACT,NDESCBIT CALL NEW-LDESC,CONTACT,26 GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-ENABLE,1 CALL ESTABLISH-GOAL,BAD-SPY,L IN? CONTACT,HERE /?THN21 ZERO? DEBUG /TRUE ?THN21: IN? CONTACT,HERE /?CND23 PRINTC 91 ?CND23: CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTR " enters and looks around nervously." .FUNCT I-AGENT-COMES,GARG=0,PER ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-AGENT-COMES:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: RANDOM 3 >PER EQUAL? 1,PER \?ELS13 SET 'PER,GUARD JUMP ?CND11 ?ELS13: EQUAL? 2,PER \?ELS15 SET 'PER,CLERK JUMP ?CND11 ?ELS15: SET 'PER,WAITRESS ?CND11: CALL2 NEW-CONTACT,PER CALL NEW-LDESC,PER,26 SET 'PASSWORD,FALSE-VALUE SET 'PASSOBJECT,FALSE-VALUE CALL HE-SHE-IT,PER,TRUE-VALUE IN? PER,HERE /?CND20 MOVE PER,HERE PRINTI " appears and" ?CND20: PRINTI " says, ""I was ordered to contact you here. Please give me the " PRINTD MCGUFFIN PRINTR " now.""" .FUNCT GUARD-NOTICES EQUAL? CONTACT,GUARD /FALSE CALL2 ON-PLATFORM?,HERE ZERO? STACK /FALSE LOC GUARD CALL2 ON-PLATFORM?,STACK ZERO? STACK /FALSE INC 'GUARD-SUSPICION FCLEAR GUARD,NDESCBIT CALL2 START-SENTENCE,GUARD FCLEAR HIM,TOUCHBIT EQUAL? 1,GUARD-SUSPICION \?ELS14 PRINTR " seems to notice your actions." ?ELS14: GET GESTURE-TABLE,0 EQUAL? GUARD-SUSPICION,STACK \?CND19 CALL ARREST-PLAYER,STR?342,GUARD PRINTR " throws up her hands and hurries away." ?CND19: CALL NEW-LDESC,GUARD,26 IN? GUARD,HERE /?CND24 MOVE GUARD,HERE PRINTI " approaches you and" ?CND24: PRINTI " makes a gesture" EQUAL? 2,GUARD-SUSPICION /?CND31 GET GESTURE-TABLE,GUARD-SUSPICION PRINT STACK ?CND31: GRTR? 5,GUARD-SUSPICION \?ELS38 PRINTI ", asking for " JUMP ?CND36 ?ELS38: PRINTI ", demanding " ?CND36: CALL2 THIS-IS-IT,PASSPORT PRINTD PASSPORT PRINTR "." .FUNCT TRAVELER-F,ARG=0 CALL BAD-SPY-F,ARG RSTACK .FUNCT BAD-SPY-F,ARG=0,GT,X,?TMP1 EQUAL? ARG,M-WINNER \?ELS5 CALL BAD-SPY-DEFAULT-F,ARG RSTACK ?ELS5: CALL2 PASS-OBJECT?,MCGUFFIN ZERO? STACK /?ELS7 EQUAL? VARIATION,3,4 /?ELS7 CALL2 SHOW-MCGUFFIN,BAD-SPY RSTACK ?ELS7: EQUAL? PRSA,V?$CALL \?ELS11 SET 'BAD-SPY-KNOWS-YOU,TRUE-VALUE GET GOAL-TABLES,BAD-SPY-C >GT GET GT,GOAL-SCRIPT EQUAL? I-BAD-SPY-W-CASE,STACK \FALSE CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE GET GT,GOAL-CAR LESS? CAR-HERE,STACK \?ELS23 CALL2 V-REAR,CAR-HERE MOVE BAD-SPY,STACK PRINTR " hurries away to the rear." ?ELS23: GET GT,GOAL-CAR GRTR? CAR-HERE,STACK \?ELS27 CALL2 V-FWD,CAR-HERE MOVE BAD-SPY,STACK PRINTR " hurries away to the front." ?ELS27: LOC BAD-SPY >?TMP1 GET GT,GOAL-S >X EQUAL? ?TMP1,X \?ELS31 PRINTR " ignores you." ?ELS31: MOVE BAD-SPY,X PRINTR " hurries away." ?ELS11: CALL BAD-SPY-DEFAULT-F,ARG RSTACK .FUNCT SHOW-MCGUFFIN,P CALL HE-SHE-IT,P,TRUE-VALUE PRINTI " looks at" CALL2 HIM-HER-IT,MCGUFFIN PRINTI " and then " EQUAL? P,BAD-SPY \?ELS5 IN? GUN,BAD-SPY \?ELS5 PRINTI "takes aim at you." JUMP ?CND3 ?ELS5: PRINTI "pulls out a gun with a silencer." ?CND3: PRINTI " Before you can react, pain fills your heart, and it's all over." CRLF CALL1 FINISH RSTACK .FUNCT PAUSE-SCRIPT?,INT,A=0 ZERO? A \?CND1 SET 'A,BAD-SPY ?CND1: ZERO? SUPPRESS-INTERRUPT /?ELS8 SET 'SUPPRESS-INTERRUPT,FALSE-VALUE ZERO? IDEBUG /TRUE PRINTR "[PS:SI]" ?ELS8: FSET? A,PERSONBIT /?ELS16 CALL QUEUE,INT,0 ZERO? IDEBUG /TRUE PRINTI "[PS:NP " PRINTD A PRINTR "]" ?ELS16: FSET? A,MUNGBIT \?ELS24 ZERO? IDEBUG /TRUE PRINTI "[PS:MU " PRINTD A PRINTR "]" ?ELS24: CALL IN-MOTION?,A,TRUE-VALUE ZERO? STACK /FALSE ZERO? IDEBUG /TRUE PRINTI "[PS:IM " PRINTD A PRINTR "]" .FUNCT I-TRAVELER,V=0,STR,OBJ,GT,L,LC,?TMP1 CALL2 PAUSE-SCRIPT?,I-TRAVELER ZERO? STACK \FALSE ZERO? IDEBUG \?THN7 EQUAL? V,G-DEBUG \?CND4 ?THN7: PRINTI "[I-TRAVELER:" EQUAL? V,G-DEBUG /FALSE ?CND4: ZERO? V \?CND14 CALL2 VISIBLE?,BAD-SPY >V ?CND14: LOC BAD-SPY >L GET GOAL-TABLES,BAD-SPY-C >GT IN? BRIEFCASE,BAD-SPY /?ELS19 CALL2 META-LOC,BAD-SPY IN? BRIEFCASE,STACK \?ELS22 SET 'STR,STR?343 SET 'OBJ,BRIEFCASE MOVE BRIEFCASE,BAD-SPY JUMP ?CND17 ?ELS22: CALL2 META-LOC,BRIEFCASE >?TMP1 CALL2 META-LOC,BAD-SPY EQUAL? ?TMP1,STACK \?ELS24 SET 'STR,STR?344 SET 'OBJ,BRIEFCASE JUMP ?CND17 ?ELS24: PUT GT,GOAL-SCRIPT,I-BAD-SPY-W-YOU CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,HERE,CAR-HERE JUMP ?CND17 ?ELS19: ZERO? TRAVELER-CHECKED-CASE \?ELS28 LOC CONDUCTOR >LC GETP L,P?STATION EQUAL? LC,L,STACK \?ELS31 FSET? BRIEFCASE,OPENBIT \?ELS34 SET 'STR,STR?345 SET 'OBJ,BRIEFCASE FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 JUMP ?CND17 ?ELS34: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS31: FSET? BRIEFCASE-LATCH,SEENBIT /?ELS44 SET 'STR,STR?346 SET 'OBJ,BRIEFCASE-LATCH FSET BRIEFCASE-LATCH,SEENBIT JUMP ?CND17 ?ELS44: ZERO? LATCH-TURNED \?ELS46 ZERO? DEBUG /?CND47 PRINTI "[1] " ?CND47: SET 'STR,STR?347 SET 'OBJ,BRIEFCASE-LATCH SET 'LATCH-TURNED,TRUE-VALUE JUMP ?CND17 ?ELS46: FSET? BRIEFCASE-LATCH,OPENBIT /?ELS53 SET 'STR,STR?348 SET 'OBJ,BRIEFCASE-LATCH FSET BRIEFCASE-LATCH,OPENBIT JUMP ?CND17 ?ELS53: FSET? BRIEFCASE,OPENBIT /?ELS55 SET 'STR,STR?348 SET 'OBJ,BRIEFCASE FSET BRIEFCASE,OPENBIT CALL TBL-TO-INSIDE,BRIEFCASE,BRIEFCASE-TBL,1 JUMP ?CND17 ?ELS55: FSET? SPY-LIST,SEENBIT /?ELS57 SET 'STR,STR?346 SET 'OBJ,SPY-LIST FSET SPY-LIST,SEENBIT JUMP ?CND17 ?ELS57: IN? MCGUFFIN,BRIEFCASE /?ELS59 SET 'STR,STR?346 SET 'OBJ,BRIEFCASE SET 'TRAVELER-CHECKED-CASE,TRUE-VALUE JUMP ?CND17 ?ELS59: ZERO? PICTURE-NUMBER \?ELS61 IN? FILM,CAMERA /?ELS64 IN? CAMERA,BAD-SPY /?ELS67 SET 'STR,STR?343 SET 'OBJ,CAMERA MOVE CAMERA,BAD-SPY JUMP ?CND17 ?ELS67: FSET? CAMERA,SEENBIT /?ELS69 SET 'STR,STR?346 SET 'OBJ,CAMERA FSET CAMERA,SEENBIT JUMP ?CND17 ?ELS69: FSET? CAMERA,OPENBIT /?ELS71 ZERO? DEBUG /?CND72 PRINTI "[1] " ?CND72: SET 'STR,STR?348 SET 'OBJ,CAMERA FSET CAMERA,OPENBIT JUMP ?CND17 ?ELS71: FSET? FILM,SEENBIT /?ELS78 SET 'STR,STR?346 SET 'OBJ,FILM FSET FILM,SEENBIT JUMP ?CND17 ?ELS78: SET 'STR,STR?349 SET 'OBJ,CAMERA MOVE FILM,CAMERA JUMP ?CND17 ?ELS64: FSET? CAMERA,OPENBIT \?ELS82 SET 'STR,STR?345 SET 'OBJ,CAMERA FCLEAR CAMERA,OPENBIT JUMP ?CND17 ?ELS82: SET 'STR,STR?350 SET 'OBJ,CAMERA INC 'PICTURE-NUMBER SET 'CAMERA-COCKED,TRUE-VALUE JUMP ?CND17 ?ELS61: CALL ZMEMQ,MCGUFFIN,FILM-TBL ZERO? STACK \?ELS89 SET 'STR,STR?343 SET 'OBJ,PICTURE-GLOBAL CALL2 TAKE-PICTURE,MCGUFFIN JUMP ?CND17 ?ELS89: FSET? CAMERA,OPENBIT /?ELS91 ZERO? DEBUG /?CND92 PRINTI "[2] " ?CND92: SET 'STR,STR?348 SET 'OBJ,CAMERA FSET CAMERA,OPENBIT JUMP ?CND17 ?ELS91: IN? FILM,CAMERA \?ELS98 SET 'STR,STR?351 SET 'OBJ,FILM FSET FILM,NDESCBIT MOVE FILM,BAD-SPY JUMP ?CND17 ?ELS98: SET 'TRAVELER-CHECKED-CASE,TRUE-VALUE SET 'STR,STR?352 SET 'OBJ,CAMERA MOVE CAMERA,BRIEFCASE JUMP ?CND17 ?ELS28: FSET? BRIEFCASE,OPENBIT \?ELS105 SET 'STR,STR?345 SET 'OBJ,BRIEFCASE FCLEAR BRIEFCASE,OPENBIT CALL INSIDE-OBJ-TO,BRIEFCASE-TBL,BRIEFCASE,1 JUMP ?CND17 ?ELS105: FSET? BRIEFCASE-LATCH,OPENBIT \?ELS107 SET 'STR,STR?345 SET 'OBJ,BRIEFCASE-LATCH FCLEAR BRIEFCASE-LATCH,OPENBIT JUMP ?CND17 ?ELS107: EQUAL? VARIATION,2,4 \?ELS109 ZERO? LATCH-TURNED /?ELS109 ZERO? DEBUG /?CND112 PRINTI "[2] " ?CND112: SET 'STR,STR?347 SET 'OBJ,BRIEFCASE-LATCH SET 'LATCH-TURNED,FALSE-VALUE JUMP ?CND17 ?ELS109: CALL QUEUE,I-TRAVELER,0 IN? PASSOBJECT,BAD-SPY \?ELS121 JUMP ?CND119 ?ELS121: EQUAL? PASSOBJECT,KNIFE \?ELS123 PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-KNIFE CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR JUMP ?CND119 ?ELS123: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?ELS125 PUT GT,GOAL-FUNCTION,I-TRAVELER-SEEKS-FLOWER EQUAL? L,REST-ROOM-REAR-DINER,REST-ROOM-REAR,OTHER-REST-ROOM-REAR /?CND119 GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL ESTABLISH-GOAL,BAD-SPY,STACK JUMP ?CND119 ?ELS125: PUT GT,GOAL-FUNCTION,TRAVELER-FLUSHES-MCGUFFIN GETP BAD-SPY,P?CAR CALL GENERIC-REST-ROOM-F,0,STACK,L CALL ESTABLISH-GOAL,BAD-SPY,STACK ?CND119: SET 'STR,STR?353 SET 'OBJ,BRIEFCASE MOVE BRIEFCASE,BAD-SPY ?CND17: ZERO? V \?THN136 ZERO? DEBUG \?THN136 ZERO? IDEBUG /FALSE ?THN136: ZERO? V \?CND138 PRINTC 91 ?CND138: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 HIM-HER-IT,OBJ PRINTR "." .FUNCT TRAVELER-FLUSHES-MCGUFFIN,GARG=0,V,STR,OBJ,GT,L EQUAL? GARG,G-DEBUG \?CND1 PRINTI "[TRAVELER-FLUSHES-MCGUFFIN:" RFALSE ?CND1: LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \FALSE CALL NEW-LDESC,BAD-SPY,4 EQUAL? L,REST-ROOM-FWD,REST-ROOM-FWD-DINER /?ELS13 EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER \FALSE ?ELS13: IN? MCGUFFIN,BAD-SPY \?CND11 MOVE MCGUFFIN,LIMBO-FWD ?CND11: CALL NEW-LDESC,BAD-SPY,26 RFALSE .FUNCT TRAVELER-FLEES,GARG=0,V,STR,OBJ,GT,L EQUAL? GARG,G-DEBUG \?CND1 PRINTI "[TRAVELER-FLEES:" RFALSE ?CND1: LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \FALSE CALL NEW-LDESC,BAD-SPY,4 EQUAL? L,REST-ROOM-FWD,REST-ROOM-FWD-DINER /?ELS13 EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER \FALSE ?ELS13: IN? BRIEFCASE,BAD-SPY \?CND11 CALL QUEUE,I-TRAVELER,-1 PUT STACK,0,1 ?CND11: CALL NEW-LDESC,BAD-SPY,26 RFALSE .FUNCT I-TRAVELER-SEEKS-FLOWER,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-SEEKS-FLOWER:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-FLOWER ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 CALL NEW-LDESC,BAD-SPY,26 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS16: ZERO? GARG /?ELS24 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS24: IN? FLOWER-1,BAD-SPY /?ELS32 IN? FLOWER-2,BAD-SPY /?ELS32 EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER,OTHER-REST-ROOM-REAR \?ELS37 GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL MOVE-PERSON,BAD-SPY,STACK >GT CALL QUEUE,I-TRAVELER-SEEKS-FLOWER,-1 PUT STACK,0,1 ZERO? IDEBUG /?CND38 PRINTN GT PRINTC 93 CRLF RETURN GT ?CND38: RETURN GT ?ELS37: EQUAL? L,VESTIBULE-REAR,VESTIBULE-REAR-DINER /?THN46 EQUAL? L,OTHER-VESTIBULE-REAR,VESTIBULE-REAR-FANCY \?ELS45 ?THN46: SET 'LEAVE-TRAIN-PERSON,BAD-SPY CALL QUEUE,I-LEAVE-TRAIN,1 PUT STACK,0,1 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS45: FSET? FLOWER-1,NDESCBIT \?ELS55 SET 'STR,STR?354 SET 'OBJ,FLOWER-1 MOVE FLOWER-1,BAD-SPY FCLEAR FLOWER-1,TAKEBIT FCLEAR FLOWER-1,NDESCBIT JUMP ?CND14 ?ELS55: FSET? FLOWER-2,NDESCBIT \?CND14 SET 'STR,STR?354 SET 'OBJ,FLOWER-2 MOVE FLOWER-2,BAD-SPY FCLEAR FLOWER-2,TAKEBIT FCLEAR FLOWER-2,NDESCBIT JUMP ?CND14 ?ELS32: EQUAL? L,BESIDE-TRACKS,OTHER-BESIDE-TRACKS \?ELS62 SET 'LEAVE-TRAIN-PERSON,-1 CALL QUEUE,I-LEAVE-TRAIN,1 PUT STACK,0,1 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS62: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN82 ZERO? DEBUG \?THN82 ZERO? IDEBUG /FALSE ?THN82: ZERO? V \?CND84 PRINTC 91 ?CND84: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 PRINTA,OBJ PRINTR "." .FUNCT I-TRAVELER-SEEKS-TICKET,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-SEEKS-TICKET:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-TICKET ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 EQUAL? L,VESTIBULE-REAR,VESTIBULE-REAR-DINER /?THN20 EQUAL? L,OTHER-VESTIBULE-REAR,VESTIBULE-REAR-FANCY \?ELS19 ?THN20: CALL ESTABLISH-GOAL,BAD-SPY,TICKET-AREA SET 'LEAVE-TRAIN-PERSON,BAD-SPY CALL QUEUE,I-LEAVE-TRAIN,1 PUT STACK,0,1 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS19: EQUAL? L,TICKET-AREA \?ELS29 PUTP TICKET-OTHER,P?CAPACITY,STATION-GOLA MOVE TICKET-OTHER,BAD-SPY FCLEAR TICKET-OTHER,TAKEBIT CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-C SET 'STR,STR?355 SET 'OBJ,TICKET-OTHER JUMP ?CND14 ?ELS29: CALL NEW-LDESC,BAD-SPY,26 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS16: ZERO? GARG \?ELS39 EQUAL? L,REST-ROOM-REAR,REST-ROOM-REAR-DINER,OTHER-REST-ROOM-REAR \?ELS42 GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL MOVE-PERSON,BAD-SPY,STACK >GT CALL2 I-TRAVELER-SEEKS-TICKET,G-REACHED ZERO? STACK /?CND43 SET 'GT,TRUE-VALUE ?CND43: ZERO? IDEBUG /?CND46 PRINTN GT PRINTC 93 CRLF RETURN GT ?CND46: RETURN GT ?ELS42: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS39: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN73 ZERO? DEBUG \?THN73 ZERO? IDEBUG /FALSE ?THN73: ZERO? V \?CND75 PRINTC 91 ?CND75: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 HIM-HER-IT,OBJ PRINTR "." .FUNCT I-TRAVELER-PASSED-CUSTOMS,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-PASSED-CUSTOMS:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-PASSED-CUSTOMS ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 EQUAL? L,VESTIBULE-REAR-DINER \?ELS19 SET 'STR,STR?356 SET 'OBJ,MACHINE GET GOAL-TABLES,BAD-SPY-C >GT PUT GT,GOAL-SCRIPT,I-TRAVELER-SEEKS-LIGHTER PUT GT,GOAL-ENABLE,1 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-FWD,1 CALL CALL-FOR-PROP,CIGARETTE,BAD-SPY JUMP ?CND14 ?ELS19: EQUAL? PASSOBJECT,LIGHTER \?ELS21 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR-DINER,DINER-CAR ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS21: EQUAL? PASSOBJECT,FLOWER-GLOBAL \?ELS29 GET GOAL-TABLES,BAD-SPY-C >GT PUT GT,GOAL-SCRIPT,STOP-WALKING-F PUT GT,GOAL-ENABLE,1 GETP BAD-SPY,P?CAR CALL2 V-REAR,STACK CALL ESTABLISH-GOAL,BAD-SPY,STACK ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS29: CALL NEW-LDESC,BAD-SPY,35 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS16: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN57 ZERO? DEBUG \?THN57 ZERO? IDEBUG /FALSE ?THN57: ZERO? V \?CND59 PRINTC 91 ?CND59: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 HIM-HER-IT,OBJ PRINTR "." .FUNCT STOP-WALKING-F,GARG=0 EQUAL? GARG,G-DEBUG \?CND1 PRINTI "[STOP-WALKING-F:" RFALSE ?CND1: CALL2 PAUSE-SCRIPT?,STOP-WALKING-F ZERO? STACK \FALSE ZERO? GARG /?THN14 EQUAL? GARG,G-REACHED \FALSE ?THN14: CALL NEW-LDESC,BAD-SPY,1 RFALSE .FUNCT I-TRAVELER-TO-GRNZ,GARG=0 ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-TO-GRNZ:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-TO-GRNZ ZERO? STACK \FALSE ZERO? GARG /?THN16 EQUAL? GARG,G-REACHED \?CND11 ?THN16: CALL NEW-LDESC,BAD-SPY,1 CALL QUEUE,I-TRAVELER,-1 PUT STACK,0,1 ?CND11: ZERO? IDEBUG /FALSE PRINTI "0]" CRLF RFALSE .FUNCT I-TRAVELER-SEEKS-LIGHTER,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-SEEKS-LIGHTER:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-LIGHTER ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 CALL2 V-FWD,1 EQUAL? L,STACK \?ELS19 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR,CAR-MAX JUMP ?CND17 ?ELS19: CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-FWD,1 ?CND17: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS16: EQUAL? GARG,G-ENROUTE \?CND14 CALL2 META-LOC,LIGHTER EQUAL? L,STACK /?THN33 ZERO? V \?ELS32 FSET? L,SEENBIT /?ELS32 CALL CALL-FOR-PROP,LIGHTER,BAD-SPY ZERO? STACK /?ELS32 ?THN33: SET 'STR,STR?357 SET 'OBJ,LIGHTER FCLEAR LIGHTER,TAKEBIT MOVE LIGHTER,BAD-SPY GET GOAL-TABLES,BAD-SPY-C >GT PUT GT,GOAL-SCRIPT,STOP-WALKING-F CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,VESTIBULE-REAR,CAR-MAX JUMP ?CND14 ?ELS32: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN50 ZERO? DEBUG \?THN50 ZERO? IDEBUG /FALSE ?THN50: ZERO? V \?CND52 PRINTC 91 ?CND52: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 PRINTA,OBJ PRINTR "." .FUNCT I-TRAVELER-SEEKS-KNIFE,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-SEEKS-KNIFE:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-SEEKS-KNIFE ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 EQUAL? L,VESTIBULE-REAR-DINER \?ELS19 SET 'STR,STR?358 SET 'OBJ,STOP-CORD CALL ESTABLISH-GOAL,BAD-SPY,GALLEY JUMP ?CND14 ?ELS19: EQUAL? L,GALLEY \?ELS21 SET 'STR,STR?359 SET 'OBJ,KNIFE FCLEAR KNIFE,TAKEBIT MOVE KNIFE,BAD-SPY GET GOAL-TABLES,BAD-SPY-C PUT STACK,GOAL-FUNCTION,STOP-WALKING-F ADD 1,DINER-CAR CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-1,STACK JUMP ?CND14 ?ELS21: CALL NEW-LDESC,BAD-SPY,26 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS16: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN41 ZERO? DEBUG \?THN41 ZERO? IDEBUG /?CND38 ?THN41: ZERO? V \?CND43 PRINTC 91 ?CND43: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINTI " appears and" PRINT STR CALL2 HIM-HER-IT,OBJ PRINTC 46 CRLF ?CND38: EQUAL? OBJ,STOP-CORD \?CND50 CALL2 STOP-CORD-F,TRUE-VALUE ZERO? IDEBUG /TRUE PRINTR "(1)]" ?CND50: ZERO? IDEBUG /?CND59 PRINTN V PRINTC 93 CRLF RETURN V ?CND59: RETURN V .FUNCT I-TRAVELER-FINDS-CONTACT,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[I-TRAVELER-FINDS-CONTACT:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL2 PAUSE-SCRIPT?,I-TRAVELER-FINDS-CONTACT ZERO? STACK \FALSE LOC BAD-SPY >L CALL2 VISIBLE?,BAD-SPY >V EQUAL? GARG,G-REACHED \?ELS16 EQUAL? L,REST-ROOM-MEN,REST-ROOM-WOMEN \?ELS19 CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-B CALL2 REST-ROOM-STATION-F,M-OTHER >V ZERO? IDEBUG /?CND20 PRINTN V PRINTC 93 CRLF RETURN V ?CND20: RETURN V ?ELS19: EQUAL? L,PLATFORM-B \?ELS27 CALL ESTABLISH-GOAL-TRAIN,BAD-SPY,COMPARTMENT-START,CAR-START SET 'LEAVE-TRAIN-PERSON,-1 CALL QUEUE,I-LEAVE-TRAIN,1 PUT STACK,0,1 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS27: GETP COMPARTMENT-START,P?OTHER EQUAL? L,COMPARTMENT-START,STACK \?ELS35 FCLEAR BAD-SPY,TOUCHBIT PUTP BAD-SPY,P?LDESC,4 CALL QUEUE,I-TRAVELER,-1 PUT STACK,0,1 ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS35: EQUAL? L,PLATFORM-A \?ELS43 CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-E JUMP ?CND17 ?ELS43: CALL ESTABLISH-GOAL,BAD-SPY,PLATFORM-A ?CND17: CALL2 I-TRAVELER-FINDS-CONTACT,G-ENROUTE >V ZERO? IDEBUG /?CND46 PRINTN V PRINTC 93 CRLF RETURN V ?CND46: RETURN V ?ELS16: EQUAL? GARG,G-ENROUTE \?ELS53 LOC CONTACT EQUAL? L,STACK \?ELS56 FCLEAR CONTACT,NDESCBIT SET 'STR,STR?359 SET 'OBJ,CONTACT GET GOAL-TABLES,BAD-SPY-C >GT PUT GT,GOAL-ENABLE,0 CALL QUEUE,I-TRAVELER-FINDS-CONTACT,-1 PUT STACK,0,1 JUMP ?CND14 ?ELS56: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?ELS53: ZERO? GARG \?CND14 ZERO? PASSOBJECT-GIVEN-OTHER \?ELS69 SET 'PASSOBJECT-GIVEN-OTHER,TRUE-VALUE FCLEAR CONTACT,TOUCHBIT PUTP CONTACT,P?LDESC,1 SET 'STR,STR?360 SET 'OBJ,PASSOBJECT JUMP ?CND14 ?ELS69: ZERO? PASSWORD-GIVEN-OTHER \?ELS71 SET 'PASSWORD-GIVEN-OTHER,TRUE-VALUE FCLEAR BAD-SPY,TOUCHBIT PUTP BAD-SPY,P?LDESC,1 SET 'STR,STR?361 SET 'OBJ,CONTACT JUMP ?CND14 ?ELS71: EQUAL? SCENERY-OBJ,STATION-GOLA /?ELS73 CALL1 WHISPER-PLAN-OTHER ZERO? IDEBUG /TRUE PRINTR "(1)]" ?ELS73: IN? FILM,BAD-SPY \?ELS81 MOVE FILM,CONTACT SET 'STR,STR?362 SET 'OBJ,FILM JUMP ?CND14 ?ELS81: ZERO? IDEBUG /FALSE PRINTI "(0)]" CRLF RFALSE ?CND14: ZERO? V \?THN93 ZERO? DEBUG \?THN93 ZERO? IDEBUG /?CND90 ?THN93: ZERO? V \?CND95 PRINTC 91 ?CND95: CALL HE-SHE-IT,BAD-SPY,TRUE-VALUE PRINT STR CALL2 HIM-HER-IT,OBJ PRINTC 46 CRLF EQUAL? OBJ,FILM \?CND90 CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTI " quickly inspects" CALL2 HIM-HER-IT,OBJ PRINTI " and then pumps" CALL HIM-HER-IT,BAD-SPY,FALSE-VALUE,TRUE-VALUE PRINTI " hand with obvious gratitude." CRLF ?CND90: EQUAL? OBJ,FILM \?CND107 PRINTI "(In case you hadn't noticed, I'll tell you that the " PRINTD BAD-SPY CALL2 THIS-IS-IT,BAD-SPY PRINTI " just completed" CALL HIM-HER-IT,BAD-SPY,FALSE-VALUE,TRUE-VALUE PRINTI " mission. There's no point in continuing this story, but better luck next time!)" CRLF CALL1 FINISH ?CND107: ZERO? IDEBUG /?CND114 PRINTN V PRINTC 93 CRLF RETURN V ?CND114: RETURN V .FUNCT G-FINISH,GARG=0,V,STR,OBJ,GT,L ZERO? IDEBUG \?THN4 EQUAL? GARG,G-DEBUG \?CND1 ?THN4: PRINTI "[G-FINISH:" EQUAL? GARG,G-DEBUG /FALSE ?CND1: CALL PAUSE-SCRIPT?,G-FINISH,CONTACT ZERO? STACK \FALSE LOC CONTACT >L CALL2 VISIBLE?,CONTACT >V EQUAL? GARG,G-REACHED \FALSE PRINTI "(At this point," CALL2 PRINTT,CONTACT CALL2 THIS-IS-IT,CONTACT EQUAL? SCENERY-OBJ,STATION-FRBZ \?ELS23 PRINTI " has given up on passing on" CALL2 PRINTT,MCGUFFIN PRINTI " as" CALL2 HE-SHE-IT,CONTACT PRINTI "expected." JUMP ?CND21 ?ELS23: PRINTI " has given up on receiving" CALL2 PRINTT,MCGUFFIN PRINTI " as" CALL2 HE-SHE-IT,CONTACT PRINTI "expected. " CALL HE-SHE-IT,CONTACT,TRUE-VALUE PRINTI " is going to contact those who sent" CALL2 PRINTT,MCGUFFIN PRINTI " in the first place, and they will arrange for an alternate courier, who will, in the end, " EQUAL? VARIATION,3,4 \?ELS32 PRINTI "succeed. In other words, you have, in the end, failed." JUMP ?CND21 ?ELS32: PRINTI "fail, just as you have." ?CND21: PRINTI " Better luck next time!)" CRLF CALL1 FINISH RSTACK .FUNCT FINAL-SCENE,X CALL FIND-FLAG-LG,HERE,WINDOWBIT >X ZERO? X /?CND1 PRINTI "You can see two agents leave" CALL2 HIM-HER-IT,VEHICLE PRINTI " and board the train." CRLF ?CND1: EQUAL? CAR-HERE,FANCY-CAR \?ELS9 ZERO? X /?ELS12 PRINTI "They" JUMP ?CND10 ?ELS12: PRINTI "Two agents" ?CND10: PRINTI " appear, dispatch" CALL2 HIM-HER-IT,THUG PRINTI ", and escort" CALL2 HIM-HER-IT,DEFECTOR JUMP ?CND7 ?ELS9: PRINTI "You hear a commotion to the rear. It must be" CALL2 HE-SHE-IT,DEFECTOR PRINTI " being escorted" ?CND7: PRINTI " off the train. CONGRATULATIONS! " EQUAL? VARIATION,2,4 \?CND28 CALL1 AWARD ?CND28: CALL1 FINISH RSTACK .FUNCT AWARD PRINTI " You deserve an award for such brilliant work on this mission! If you want it printed, please turn on your printer and type YES; otherwise, type NO." CALL1 YES? ZERO? STACK /?CND3 GET 0,8 BOR STACK,1 PUT 0,8,STACK ?CND3: PRINTI " ***************************************************************************** ***************************************************************************** *** *** *** *** *** * ******* ******* ****** ******* ****** ********* TM *** *** *** ******** ******** ** ** ******** ** ** ********** *** *** *** ** ** ** ** ** ** ** ** ** ** ** *** *** *** ** ** ******** ** ** ** ** ** ** ** ** *** *** *** ** ** ******** ** ** ** ** ** ** ** ** *** *** *** ** ** ** ** ** ******** ** ** ** ** ** *** *** *** ** ** ** ****** ******* ****** ** ** ** *** *** *** *** *** *** hereby grants this *** *** *** *** DISTINGUISHED SERVICE AWARD *** *** *** *** for Doing the Right Thing *** *** *** *" EQUAL? VARIATION,3,4 \?ELS10 PRINTI "** as an Undercover Agent ***" JUMP ?CND8 ?ELS10: PRINTI "** as an Innocent Traveler ***" ?CND8: PRINTI " *** *** *** in CHECKPOINT, an interactive story of intrigue *** *** *** *** Copyright (c) 1985 by Infocom, Inc. All rights reserved. *** ***************************************************************************** ***************************************************************************** " RTRUE .ENDI