.FUNCT RT-EXAMINE-GEM,GEM EQUAL? GEM,TH-SAPPHIRE \?CCL3 IN? TH-SAPPHIRE,TH-CLAPPER \?CCL3 PRINTR "The sapphire is hanging from the end of the clapper." ?CCL3: LOC GEM EQUAL? STACK,CH-PLAYER \?CCL7 EQUAL? GL-PRSA,V?EXAMINE,V?LOOK-ON \?CCL10 PRINTI "It looks as if there is a scratch on " ICALL1 RT-THEO-PRINT PRINTR "." ?CCL10: EQUAL? GL-PRSA,V?READ \?CCL12 PRINTI "All you can see on " ICALL1 RT-THEO-PRINT PRINTR " is a scratch." ?CCL12: EQUAL? GL-PRSA,V?LOOK-THRU \FALSE EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS \FALSE IN? TH-MAGNIFYING-GLASS,GL-WINNER \?CCL19 PRINTI "You see """ EQUAL? GEM,TH-SAPPHIRE \?CCL22 PRINTI "2:00 a.m." JUMP ?CND20 ?CCL22: EQUAL? GEM,TH-EMERALD \?CCL24 PRINTI "20/6/87" JUMP ?CND20 ?CCL24: EQUAL? GEM,TH-OPAL \?CCL26 PRINTI "Password: Swordfish" JUMP ?CND20 ?CCL26: EQUAL? GEM,TH-RUBY \?CCL28 PRINTI "Wear a carnation" JUMP ?CND20 ?CCL28: EQUAL? GEM,TH-TOPAZ \?CCL30 PRINTI "Bar of Gold" JUMP ?CND20 ?CCL30: EQUAL? GEM,TH-GARNET \?CND20 PRINTI "Give me to Akbar" ?CND20: PRINTI """ scratched into the surface of " ICALL1 RT-THEO-PRINT PRINTC 46 CRLF BTST CH-HOLMES-AUX1,2 /TRUE BOR CH-HOLMES-AUX1,K-HOLMES-GEM? >CH-HOLMES-AUX1 MOVE TH-RING,CH-PLAYER FSET TH-RING,FL-SEEN FSET TH-RING,FL-TOUCHED FCLEAR TH-RING,FL-NODESC CRLF PRINTI "Holmes" ICALL1 RT-HOLMES-SAYS-AGRA-MSG GETP TH-RING,P?VALUE ICALL2 RT-UPDATE-SCORE,STACK PUTP TH-RING,P?VALUE,0 RTRUE ?CCL19: ICALL RT-YOUD-HAVE-TO-MSG,STR?738,TH-MAGNIFYING-GLASS RTRUE ?CCL7: EQUAL? GL-PRSA,V?READ \?CCL36 ICALL1 RT-CYOU-MSG ICALL RT-WOULD-HAVE-TO-MSG,STR?738,GL-PRSO PRINTI " to read " ICALL2 RT-SAY-HIM-HER-THEM-IT-MSG,GL-PRSO PRINTR "." ?CCL36: EQUAL? GL-PRSA,V?LOOK-THRU \?CCL38 EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS \?CCL38 ICALL1 RT-CYOU-MSG ICALL RT-WOULD-HAVE-TO-MSG,STR?738,GL-PRSO PRINT K-GOOD-LOOK-MSG CRLF RTRUE ?CCL38: EQUAL? GL-PRSA,V?EXAMINE,V?LOOK-ON \FALSE ICALL1 RT-CYOU-MSG ICALL RT-WOULD-HAVE-TO-MSG,STR?738,GL-PRSO PRINT K-GOOD-LOOK-MSG CRLF RTRUE .FUNCT RT-HANDLE-SCRATCH,GEM,CONTEXT EQUAL? CONTEXT,K-M-SDESC \?CCL3 PUTP GEM,P?OBJ-NOUN,0 ICALL2 DPRINT,GEM PUTP GEM,P?OBJ-NOUN,W?SCRATCH PRINTI "'s scratch" RTRUE ?CCL3: EQUAL? CONTEXT,K-M-DESCFCN /?CND1 ?CND1: LOC GEM EQUAL? STACK,CH-PLAYER \?CCL7 EQUAL? GL-PRSA,V?EXAMINE \?CCL10 PRINTR "It looks like very tiny writing." ?CCL10: EQUAL? GL-PRSA,V?READ \?CCL12 PRINTR "It is too tiny." ?CCL12: EQUAL? GL-PRSA,V?LOOK-THRU \FALSE EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS \FALSE IN? TH-MAGNIFYING-GLASS,GL-WINNER \?CCL19 PRINTI "You see """ EQUAL? GEM,TH-SAPPHIRE \?CCL22 PRINTI "2:00 a.m" JUMP ?CND20 ?CCL22: EQUAL? GEM,TH-EMERALD \?CCL24 PRINTI "20/6/87" JUMP ?CND20 ?CCL24: EQUAL? GEM,TH-OPAL \?CCL26 PRINTI "Password: Swordfish" JUMP ?CND20 ?CCL26: EQUAL? GEM,TH-RUBY \?CCL28 PRINTI "Wear a carnation" JUMP ?CND20 ?CCL28: EQUAL? GEM,TH-TOPAZ \?CCL30 PRINTI "Bar of Gold" JUMP ?CND20 ?CCL30: EQUAL? GEM,TH-GARNET \?CND20 PRINTI "Give me to Akbar" ?CND20: PRINTI ".""" CRLF BTST CH-HOLMES-AUX1,2 /TRUE BOR CH-HOLMES-AUX1,K-HOLMES-GEM? >CH-HOLMES-AUX1 MOVE TH-RING,CH-PLAYER FSET TH-RING,FL-SEEN FSET TH-RING,FL-TOUCHED FCLEAR TH-RING,FL-NODESC CRLF PRINTI "Holmes" ICALL1 RT-HOLMES-SAYS-AGRA-MSG GETP TH-RING,P?VALUE ICALL2 RT-UPDATE-SCORE,STACK PUTP TH-RING,P?VALUE,0 RTRUE ?CCL19: ICALL RT-YOUD-HAVE-TO-MSG,STR?738,TH-MAGNIFYING-GLASS RTRUE ?CCL7: EQUAL? GL-PRSA,V?LOOK-THRU \?PRD38 EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS /?CCL36 ?PRD38: EQUAL? GL-PRSA,V?EXAMINE,V?READ \FALSE ?CCL36: ICALL1 RT-CYOU-MSG ICALL RT-WOULD-HAVE-TO-MSG,STR?738,GEM EQUAL? GL-PRSA,V?READ \?CCL43 PRINTR " to read the scratch." ?CCL43: PRINT K-GOOD-LOOK-MSG CRLF RTRUE .FUNCT RT-HOLE?,OBJ,OFF,CNT,NUM,PLACE ?PRG1: MUL NUM,2 >OFF GET GL-HOLES,0 EQUAL? NUM,STACK /?REP2 ADD OFF,1 GET GL-HOLES,STACK EQUAL? OBJ,STACK \?CND3 ADD OFF,2 GET GL-HOLES,STACK >PLACE ZERO? PLACE /?CCL8 EQUAL? GL-PLACE-CUR,PLACE \?CND3 ?CCL8: INC 'CNT ?CND3: INC 'NUM JUMP ?PRG1 ?REP2: RETURN CNT .FUNCT RT-WASTE-OF-BULLETS-MSG,WHO CALL1 RT-WHO-SAYS? >WHO EQUAL? WHO,CH-HOLMES \?CCL3 PRINTR "Holmes glances at you and says, ""Save your ammunition, Watson. More danger may lie ahead.""" ?CCL3: EQUAL? WHO,CH-WIGGINS \?CCL5 PRINTI "Wiggins looks at you impatiently and says, ""'Ow in the name of Dick Whittington is shooting " ICALL1 RT-A-PRINT PRINTR " going to help Mr 'Olmes?""" ?CCL5: PRINTR "That would be a waste of bullets." .FUNCT RT-SHOOT-DEAD-MSG,WHO CALL1 RT-WHO-SAYS? >WHO EQUAL? WHO,CH-HOLMES \?CCL3 PRINTR "Holmes lifts an eyebrow and says sardonically, ""Is shooting dead people a new trend in medical research, Doctor?""" ?CCL3: EQUAL? WHO,CH-WIGGINS \?CCL5 PRINTR "Wiggins tugs at your sleeve and whispers nervously, ""Everyone here is already dead... aren't they?""" ?CCL5: PRINTR "Have you no decency? Have you no shame? No? Then a bright future awaits you in the legal profession. Apply now to the law school of your choice." .FUNCT RT-READ-NEWSPAPER PRINTR "It's the newspaper that came in your game package." .FUNCT RT-WAKE-UP-HOLMES FCLEAR CH-HOLMES,FL-ASLEEP FSET LG-PARLOUR-DOOR,FL-OPENED REMOVE TH-PHIAL REMOVE TH-MOROCCO-CASE REMOVE TH-SYRINGE CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-PM-HALL,STACK ICALL2 RT-ALARM-CLR,RT-I-PM-QUITS PRINTI "Holmes " EQUAL? TH-NEWSPAPER,GL-PRSO,GL-PRSI \?CND1 PRINTI "glances at the paper and his eye falls on the notice about the Tower of London. He " ?CND1: PRINTI "immediately leaps to his feet and hurls the phial and the case into the fireplace. The phial and the syringe shatter, and the liquid evaporates instantly, but the detective does not even notice. " EQUAL? GL-PRSI,CH-PRIME-MINISTER \?CCL5 PRINTI """A client?"" he exclaims. ""On government business? Most interesting.""" JUMP ?CND3 ?CCL5: PRINTI """They've closed the Tower?"" he exclaims. ""Most singular.""" ?CND3: CRLF ICALL2 RT-UPDATE-SCORE,5 CRLF PRINTI "Holmes strides to the door and calls down to Mrs Hudson to bring up a tray of food. Then he plops back down on the sofa, " EQUAL? GL-PRSI,CH-PRIME-MINISTER \?CND6 CALL RT-META-IN?,TH-NEWSPAPER,CH-PLAYER ZERO? STACK \?CND6 CALL2 RT-META-LOC,TH-NEWSPAPER EQUAL? STACK,RM-HOLMES-STUDY \?CND6 PRINTI "glances at the newspaper, and then " ?CND6: PRINTR "makes a steeple of his fingertips and focuses his intense gaze upon you." .FUNCT RT-I-PM-HALL FSET CH-HUDSON,FL-NODESC MOVE CH-PRIME-MINISTER,RM-ENTRY-HALL MOVE CH-HUDSON,RM-ENTRY-HALL CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-PM-VESTIBULE,STACK EQUAL? GL-PLACE-CUR,RM-VESTIBULE \FALSE CRLF PRINTR "Mrs Hudson and the visitor emerge from the parlour and appear to be on their way upstairs." .FUNCT RT-I-PM-VESTIBULE MOVE CH-PRIME-MINISTER,RM-VESTIBULE MOVE CH-HUDSON,RM-VESTIBULE CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-HUDSON,STACK EQUAL? GL-PLACE-CUR,RM-VESTIBULE \?CCL3 EQUAL? GL-PLACE-PRV,RM-ENTRY-HALL /?CCL3 CRLF PRINTR "Mrs Hudson and the visitor arrive at the top of the stairs on their way into Holmes's study." ?CCL3: EQUAL? GL-PLACE-CUR,RM-ENTRY-HALL \FALSE EQUAL? GL-PLACE-PRV,RM-VESTIBULE \FALSE CRLF PRINTR "Mrs Hudson and the visitor passed you on the stairs." .FUNCT RT-I-HUDSON,NUM MOVE CH-PRIME-MINISTER,RM-HOLMES-STUDY REMOVE CH-HUDSON FCLEAR CH-HUDSON,FL-NODESC SET 'NUM,RM-HOLMES-STUDY-AUX1 ZERO? NUM \?CND1 EQUAL? GL-PLACE-CUR,RM-VESTIBULE \?CCL5 CRLF PRINTI "Mrs Hudson ushers the visitor into " ICALL2 RT-THEO-PRINT,RM-HOLMES-STUDY PRINTI " and goes downstairs." CRLF JUMP ?CND1 ?CCL5: EQUAL? GL-PLACE-CUR,RM-ENTRY-HALL \?CND1 CRLF PRINTI "You see Mrs Hudson come down the stairway." CRLF ?CND1: EQUAL? GL-PLACE-CUR,RM-HOLMES-STUDY /?CTR8 EQUAL? RM-HOLMES-STUDY-AUX1,3 \?CCL9 ?CTR8: MOVE TH-WESTMINSTER-CLUE,CH-PLAYER FSET TH-WESTMINSTER-CLUE,FL-SEEN FSET CH-PRIME-MINISTER,FL-SEEN CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,3,0 ICALL RT-ALARM-SET-REL,RT-I-PM-LEAVE,STACK EQUAL? GL-PLACE-CUR,RM-HOLMES-STUDY \?CCL14 ZERO? NUM \?CCL14 CRLF PRINTI "Mrs Hudson appears at the door, accompanied by a worried-looking gentleman." CRLF CRLF PRINTI "Holmes jumps up and ushers the gentleman to the armchair, dismissing Mrs Hudson at the same time. ""Watson,"" he says, ""I am sure you recognize our distinguished visitor. " JUMP ?CND12 ?CCL14: EQUAL? GL-PLACE-CUR,RM-HOLMES-STUDY \?CCL18 EQUAL? NUM,1,2 \?CCL18 CRLF PRINTI "Holmes has seated his visitor and is exchanging pleasantries with him. As you walk in Holmes looks up and says, ""Ah, here you are Watson. Now we can get down to business."" He turns to the gentleman seated in the armchair and says, """ JUMP ?CND12 ?CCL18: CRLF PRINTI "Holmes appears and says, ""Come with me, Watson. We have an important visitor."" He takes you by the arm and ushers you back to his study. Once inside, he gestures to the guest seated in the armchair and says, """ MOVE CH-PLAYER,RM-HOLMES-STUDY SET 'GL-PLACE-PRV,GL-PLACE-CUR SET 'GL-PLACE-CUR,RM-HOLMES-STUDY ?CND12: PRINTI "I presume, sir, that you have come about the Jewels.""" CRLF CRLF PRINTI "The visitor half rises from his chair in protest and sputters, ""But...but, how...?""" CRLF CRLF PRINTI "Holmes calms him with a glance. ""Come, sir. What else could it be? The Tower is suddenly closed, and within hours I receive a call from the highest official of Her Majesty's government. A simple deduction. Now then, tell me about the theft.""" CRLF CRLF PRINTI "The visitor settles back into his chair and says, ""We know very little. Only that the Crown Jewels were stolen from the Tower sometime Thursday night. The theft was discovered Friday morning, and we immediately closed and searched the Tower. All we found was this verse which was left behind in the empty jewel case.""" CRLF CRLF PRINTI "The visitor removes a folded piece of paper from his pocket and gives it to Holmes, who glances at it and passes it on to you." CRLF ICALL2 RT-THIS-IS-IT,TH-WESTMINSTER-CLUE ICALL2 RT-THIS-IS-IT,CH-PRIME-MINISTER RTRUE ?CCL9: CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-HUDSON,STACK ADD NUM,1 >RM-HOLMES-STUDY-AUX1 ZERO? NUM \TRUE CRLF PRINTR "You hear Holmes call you to come back into his study..." .FUNCT RT-I-PM-LEAVE FCLEAR LG-HOLMES-BEDROOM-DOOR,FL-LOCKED FSET LG-HOLMES-BEDROOM-DOOR,FL-OPENED REMOVE CH-PRIME-MINISTER MOVE CH-HOLMES,RM-221B-BAKER-ST LOC CH-PLAYER EQUAL? STACK,RM-HOLMES-STUDY \?CCL3 CRLF PRINTI "The visitor looks at his pocket watch and stands up. ""Thank you, gentlemen. I must go now. Remember, this calamity can only be hidden from the public until Monday morning at nine o'clock. If the Regalia is not at Buckingham Palace in time for the Coronation Day festivities, then all is lost.""" CRLF CRLF PRINTI "The gentleman leaves, and Holmes unlocks the door to the bedroom, goes in, and reappears moments later wearing his Inverness cape and deerstalker hat." CRLF CRLF PRINTR """Come when you're ready, Watson. I'll wait for you outside.""" ?CCL3: EQUAL? GL-PLACE-CUR,RM-221B-BAKER-ST \?CCL5 CRLF PRINTR "You see Holmes and the visitor emerge from the house. They confer briefly, shake hands, and then the Minister walks off into the fog." ?CCL5: CRLF PRINTR "Holmes and the visitor brush past you as they leave the house. Holmes says to you, ""Come when you're ready, Watson. I'll wait for you outside.""" .FUNCT RT-I-PM-QUITS CRLF EQUAL? GL-PLACE-CUR,RM-221B-BAKER-ST \?CCL3 PRINTI "You see " ICALL2 RT-THEO-PRINT,LG-BAKER-ST-DOOR PRINTI " open, and a dejected-looking man comes out. He slowly walks away into the fog." CRLF CRLF JUMP ?CND1 ?CCL3: EQUAL? GL-PLACE-CUR,RM-HOLMES-STUDY,RM-VESTIBULE \?CCL5 PRINTI "From downstairs you hear the sound of a door closing. You go down and open " ICALL2 RT-THEO-PRINT,LG-BAKER-ST-DOOR PRINTI " in time to see a dejected-looking man disappearing into the fog." CRLF CRLF JUMP ?CND1 ?CCL5: EQUAL? GL-PLACE-CUR,RM-ENTRY-HALL \?CND1 PRINTI "Suddenly " ICALL2 RT-THEO-PRINT,LG-PARLOUR-DOOR PRINTI " opens and a dejected-looking man appears. ""Thank you for trying, Mrs Hudson, but without Sherlock Holmes, there is no hope."" He opens " ICALL2 RT-THEO-PRINT,LG-BAKER-ST-DOOR PRINTI " and disappears into the fog." CRLF CRLF ?CND1: PRINTI "Moments later you see newsboys running through the streets shouting, ""Crown Jewels stolen! Prime Minister resigns in disgrace!""" CRLF CRLF CALL1 RT-QSR RSTACK .FUNCT RT-GET-PIGEON,OBJ,WHO BTST CH-TRAINED-PIGEON-AUX1,4 \?CCL3 PRINTI """He's too young to fly too often." SET 'OBJ,CH-TRAINED-PIGEON-AUX3 IN? OBJ,CH-SHERMAN \?CCL6 PRINTI " He did come back with " ICALL2 RT-A-PRINT,OBJ PRINTI ", however,"" he says, giving it to you." CRLF MOVE OBJ,CH-PLAYER ICALL2 RT-THIS-IS-IT,OBJ FSET OBJ,FL-SEEN FSET OBJ,FL-TOUCHED FCLEAR OBJ,FL-NODESC GETP OBJ,P?VALUE ZERO? STACK /FALSE CALL1 RT-WHO-SAYS? >WHO EQUAL? WHO,CH-HOLMES \?CND10 CRLF PRINT K-BRAVO-MSG CRLF ?CND10: GETP OBJ,P?VALUE ICALL2 RT-UPDATE-SCORE,STACK PUTP OBJ,P?VALUE,0 RTRUE ?CCL6: PRINTR " Come back next week.""" ?CCL3: IN? CH-TRAINED-PIGEON,CH-SHERMAN \?CCL13 PRINTI "Sherman hands you the bird. ""Take good care of him, now. I've grown fond of him.""" CRLF MOVE CH-TRAINED-PIGEON,CH-PLAYER FSET CH-TRAINED-PIGEON,FL-SEEN FSET CH-TRAINED-PIGEON,FL-TOUCHED FCLEAR CH-TRAINED-PIGEON,FL-NODESC GETP CH-TRAINED-PIGEON,P?VALUE ICALL2 RT-UPDATE-SCORE,STACK PUTP CH-TRAINED-PIGEON,P?VALUE,0 RTRUE ?CCL13: PRINTR """I've already given him to you.""" .FUNCT RT-PIGEON-INTEREST,ATT-BIT EQUAL? ATT-BIT,K-PIGEON-GET-RUBY \?CND1 BTST CH-TRAINED-PIGEON-AUX1,1 /?CND1 ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTR " doesn't seem to see the object to which you are referring." ?CND1: BOR CH-TRAINED-PIGEON-AUX1,ATT-BIT >CH-TRAINED-PIGEON-AUX1 ICALL2 RT-AC-CH-TRAINED-PIGEON,K-M-DESCFCN ICALL2 RT-ALARM-CLR,RT-I-PIGEON-LOSE-INTEREST CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,3,0 ICALL RT-ALARM-SET-REL,RT-I-PIGEON-LOSE-INTEREST,STACK BTST CH-TRAINED-PIGEON-AUX1,1 \FALSE BTST CH-TRAINED-PIGEON-AUX1,2 \FALSE CALL2 RT-ALARM-SET?,RT-I-PIGEON-IMPATIENT ZERO? STACK /?CND10 ICALL2 RT-ALARM-CLR,RT-I-PIGEON-IMPATIENT ?CND10: CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 CALL RT-ALARM-SET-REL,RT-I-PIGEON-IMPATIENT,STACK RSTACK .FUNCT RT-KILL-PIGEON FCLEAR CH-TRAINED-PIGEON,FL-ALIVE SET 'CH-TRAINED-PIGEON-AUX2,0 LOC CH-TRAINED-PIGEON ZERO? STACK /?CND1 LOC CH-TRAINED-PIGEON MOVE TH-DEAD-PIGEON,STACK REMOVE CH-TRAINED-PIGEON ?CND1: ICALL2 RT-ALARM-CLR,RT-I-PIGEON-LOSE-INTEREST ICALL2 RT-ALARM-CLR,RT-I-PIGEON-IMPATIENT EQUAL? GL-PLACE-CUR,RM-SHERMANS-HOUSE \?CCL5 CALL2 RT-SHERMAN-RAGE,FALSE-VALUE RSTACK ?CCL5: CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,30,0 CALL RT-ALARM-SET-REL,RT-I-SHERMANS-REVENGE,STACK RSTACK .FUNCT RT-PIGEON-OBJ,P-OBJ,WHO MOVE P-OBJ,CH-PLAYER ICALL2 RT-THIS-IS-IT,P-OBJ FSET P-OBJ,FL-SEEN FSET P-OBJ,FL-TOUCHED FCLEAR P-OBJ,FL-NODESC GETP P-OBJ,P?VALUE ZERO? STACK /TRUE CALL1 RT-WHO-SAYS? >WHO EQUAL? WHO,CH-HOLMES \?CND3 CRLF PRINT K-BRAVO-MSG CRLF ?CND3: GETP P-OBJ,P?VALUE ICALL2 RT-UPDATE-SCORE,STACK PUTP P-OBJ,P?VALUE,0 RTRUE .FUNCT RT-SHERMAN-RAGE,WALK CRLF ZERO? WALK /?CND1 PRINTI "As you walk into the shop, " ?CND1: PRINTI "Sherman sees you and flies into a rage. ""Animal hater!"" he cries. ""You killed my bird! How could you do such a thing?""" CRLF CRLF PRINTI "With a strength you didn't know he possessed, Sherman wrestles you into one of the larger cages that line the walls of his shop." CRLF CRLF PRINTI "Over the next few days, no customers buy you. But then on Monday morning Inspector Lestrade comes in looking for a pet for his wife. ""Did you you hear about the Crown Jewels?"" he asks. ""I'm looking into it personally and I don't mind telling you I've a few theories of my own. By the way, isn't it a little cramped in there?""" CRLF CRLF PRINTI "Lestrade leaves and you decide that with him handling the case, you'd just as soon stay in the cage." CRLF CRLF CALL1 RT-QSR RSTACK .FUNCT RT-I-PIGEON-LOSE-INTEREST SET 'CH-TRAINED-PIGEON-AUX1,0 CALL2 RT-VISIBLE?,CH-TRAINED-PIGEON ZERO? STACK /FALSE CRLF ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTR " seems to lose interest." .FUNCT RT-I-PIGEON-IMPATIENT CALL2 RT-VISIBLE?,CH-TRAINED-PIGEON ZERO? STACK /FALSE CRLF ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTR " looks at you as if waiting for you to let him go." .FUNCT RT-I-PIGEON-CIRCLE,CIRCLE,L SET 'CIRCLE,CH-TRAINED-PIGEON-AUX2 LOC CH-TRAINED-PIGEON >L EQUAL? GL-WINNER,CH-PLAYER \?PRD5 EQUAL? GL-PRSA,V?WALK /?CTR2 ?PRD5: EQUAL? CIRCLE,3 \?CCL3 ?CTR2: MOVE CH-TRAINED-PIGEON,CH-SHERMAN SET 'CH-TRAINED-PIGEON-AUX1,K-PIGEON-TIRED SET 'CH-TRAINED-PIGEON-AUX2,0 MOVE CH-TRAINED-PIGEON-AUX3,CH-SHERMAN EQUAL? L,GL-PLACE-CUR \FALSE EQUAL? GL-WINNER,CH-PLAYER \?CCL10 EQUAL? GL-PRSA,V?WALK /FALSE ?CCL10: CRLF ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTR " circles above you for the last time, and flies out of sight." ?CCL3: EQUAL? CIRCLE,1,2 \FALSE CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-PIGEON-CIRCLE,STACK ADD CIRCLE,1 >CH-TRAINED-PIGEON-AUX2 EQUAL? L,GL-PLACE-CUR \FALSE CRLF ICALL2 RT-CTHEO-PRINT,CH-TRAINED-PIGEON PRINTR " circles above you." .FUNCT RT-I-SHERMANS-REVENGE FSET? GL-PLACE-CUR,FL-INDOORS \?CCL3 CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-SHERMANS-REVENGE,STACK RFALSE ?CCL3: CRLF PRINTI "Suddenly, you see Sherman the animal trainer running towards you. He is accompanied by a constable. Sherman is beside himself with rage. ""There they are, constable. They killed my bird. Arrest them."" The constable takes both you and Sherlock into custody, and although everything is eventually straightened out, it takes far too long for you to have enough time left to solve the mystery." CRLF CRLF CALL1 RT-QSR RSTACK .FUNCT RT-IMPOLITE-MSG,STR1,STR2 PRINTI "It isn't polite to " PRINT STR1 PRINTI " without " PRINT STR2 PRINTR "." .FUNCT RT-I-BIGBEN,HRS,MIN,SEC,YRS,MON,DAY,RET,?TMP1,?TMP2,?TMP3 FSET? CH-PLAYER,FL-ASLEEP /FALSE ZERO? GL-WAIT-BELL /?CCL5 EQUAL? GL-PRSA,V?WAIT-FOR,V?WAIT \?CCL5 SET 'RET,TRUE-VALUE JUMP ?CND3 ?CCL5: EQUAL? GL-PRSA,V?WAIT-FOR,V?WAIT \?CCL9 EQUAL? GL-PLACE-CUR,RM-CLOCK-TOWER /?CCL9 ICALL RT-DO-CLOCK-SET,GL-TIME-UPDT-INC,1,0,0 ICALL1 RT-CLOCK-INC GETB GL-TEMP-TIME,K-HRS >?TMP3 GETB GL-TEMP-TIME,K-MIN >?TMP2 GETB GL-TEMP-TIME,K-SEC >?TMP1 GETB GL-TEMP-TIME,K-DAY CALL RT-CLOCK-CMP,?TMP3,?TMP2,?TMP1,STACK EQUAL? STACK,1 \?CND12 ZERO? GL-WAIT-BELL \?CND14 CRLF PRINTI "While you wait, you hear Big Ben strike each hour." CRLF ?CND14: SET 'RET,TRUE-VALUE ?CND12: ICALL RT-DO-CLOCK-SET,GL-TIME-UPDT-INC,-1,0,0 ICALL1 RT-CLOCK-INC SET 'GL-WAIT-BELL,TRUE-VALUE JUMP ?CND3 ?CCL9: SET 'GL-WAIT-BELL,FALSE-VALUE ?CND3: CALL RT-DO-CLOCK-SET,GL-TIME-PARM,1,0,0 ICALL RT-ALARM-SET-REL,RT-I-BIGBEN,STACK ZERO? RET \FALSE GETB GL-TIME,K-HRS >HRS EQUAL? GL-PLACE-CUR,RM-CLOCK-TOWER /?CCL20 CRLF PRINTI "In the distance, you hear Big Ben strike the hour." CRLF ZERO? SOUND-QUEUED? \FALSE GRTR? HRS,12 \?CCL26 SUB HRS,12 >TH-BELL-AUX1 JUMP ?CND24 ?CCL26: SET 'TH-BELL-AUX1,HRS ?CND24: CALL SOUNDS,S-FARBEN,S-START,3,TH-BELL-AUX1 RSTACK ?CCL20: GRTR? HRS,12 \?CCL29 SUB HRS,12 >TH-BELL-AUX1 JUMP ?CND27 ?CCL29: SET 'TH-BELL-AUX1,HRS ?CND27: CALL1 RT-I-SWING-BELL RSTACK .FUNCT RT-I-SWING-BELL,OBJ,NUM,POS,WHO SET 'NUM,TH-BELL-AUX1 SET 'POS,TH-BELL-AUX2 EQUAL? GL-PLACE-CUR,RM-CLOCK-TOWER /?CND1 ICALL1 RT-RELIEF SET 'HEARD-SWING?,FALSE-VALUE SET 'TH-BELL-AUX1,0 SET 'TH-BELL-AUX2,K-BELL-AWAY ICALL1 RT-ZERO-SECONDS RFALSE ?CND1: GRTR? NUM,0 \?CND3 ICALL RT-DO-CLOCK-SET,GL-TIME-UPDT-INC,0,0,2 CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,0,2 ICALL RT-ALARM-SET-REL,RT-I-SWING-BELL,STACK ?CND3: ZERO? HEARD-SWING? \?CND5 ICALL SOUNDS,S-CLOCK,S-INIT ?CND5: CRLF PRINTI "The bell swings " ZERO? POS \?CCL9 SET 'TH-BELL-AUX2,K-BELL-TOWARDS PRINTI "towards you, " FSET? TH-COTTON-BALLS,FL-WORN \?CCL12 PRINTI "ringing loudly, but the cotton protects your ears" CALL1 RT-WHO-SAYS? >WHO ZERO? WHO /?CND13 ZERO? HEARD-SWING? \?CND13 PRINTI ". " ICALL2 RT-CTHEO-PRINT,WHO PRINTI " claps his hands to his ears in an attempt to protect them" FIRST? WHO \?CND13 ICALL RT-MOVE-ALL,WHO,RM-CLOCK-TOWER PRINTI ", dropping everything he was carrying in the process" ?CND13: PRINTI ". The clapper swings up within reach." CRLF ICALL SOUNDS,S-CLOCK,S-START,6 SET 'HEARD-SWING?,TRUE-VALUE JUMP ?CND10 ?CCL12: PRINTI "ringing unbearably loud. BONG!" ICALL2 SOUNDS,S-CLOCK ZERO? HEARD-SWING? \?CND19 FSET? TH-HANDS,FL-LOCKED /?CND19 SET 'HEARD-SWING?,TRUE-VALUE CALL1 RT-WHO-SAYS? >WHO FSET TH-HANDS,FL-LOCKED ICALL RT-MOVE-ALL-BUT-WORN,CH-PLAYER,RM-CLOCK-TOWER PRINTI " You " ZERO? WHO /?CND23 ICALL RT-MOVE-ALL,WHO,RM-CLOCK-TOWER PRINTI "and " ICALL2 DPRINT,WHO PRINTC 32 ?CND23: PRINTI "clap your hands to your ears in an attempt to protect them, dropping everything you are carrying in the process." ?CND19: CRLF ?CND10: SUB NUM,1 >TH-BELL-AUX1 RETURN TH-BELL-AUX1 ?CCL9: SET 'TH-BELL-AUX2,K-BELL-AWAY PRINTI "away from you" ZERO? NUM \?CCL27 PRINTI ", finishing the ringing of the hour." CRLF ICALL1 RT-RELIEF CALL1 RT-ZERO-SECONDS RSTACK ?CCL27: PRINTR "." .FUNCT RT-RELIEF SET 'HEARD-SWING?,FALSE-VALUE FSET? TH-HANDS,FL-LOCKED \FALSE FCLEAR TH-HANDS,FL-LOCKED PRINTR "You breath a sigh of relief as you take your hands away from your ears." .FUNCT RT-ZERO-SECONDS,SEC GETB GL-TIME,K-SEC >SEC ZERO? SEC /FALSE SUB 60,SEC ICALL RT-DO-CLOCK-SET,GL-TIME-UPDT-INC,0,0,STACK ICALL1 RT-CLOCK-INC CALL RT-COPY-TIME,GL-TIME,GL-TEMP-TIME RSTACK .FUNCT RT-I-EXHALE FSET? TH-BREATH,FL-LOCKED \FALSE CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,1,0 ICALL RT-ALARM-SET-REL,RT-I-INHALE,STACK CRLF PRINTR "You can't hold your breath much longer..." .FUNCT RT-I-INHALE FSET? TH-BREATH,FL-LOCKED \FALSE CRLF PRINTI "Your lungs scream for air. You take a deep breath." CRLF FCLEAR TH-BREATH,FL-LOCKED SET 'RUN-SMELL-ETHERIUM?,TRUE-VALUE RTRUE .FUNCT RT-I-TAKE-WATSONS-STUFF FSET? CH-AKBAR,FL-ASLEEP /FALSE CRLF PRINTI "Akbar" FSET? TH-WATSONS-HAT,FL-WORN \?CND3 PRINTI " apologizes to you," ?CND3: PRINTI " removes everything from your hands, and then hits you over the head. The last thing you see before losing consciousness is the look of defeat on Holmes's face." CRLF CRLF PRINTI "You awake sometime later to find yourself bound hand and foot. Moriarty is standing over you with a newspaper in his hand." CRLF CRLF PRINT K-FOUGHT-WELL-MSG CRLF CRLF PRINTI "Moriarty takes the Crown Jewels and departs, leaving you to ponder your defeat and the inevitable demise of the British Empire." CRLF CRLF ICALL1 RT-QSR RFALSE .FUNCT RT-I-OUT-OF-TIME CRLF FSET? GL-PLACE-CUR,FL-INDOORS \?CCL3 PRINTI "Outside you hear" JUMP ?CND1 ?CCL3: PRINTI "You see" ?CND1: PRINTI " the paper boy run through the streets shouting out, ""Crown Jewels stolen... the end is near.""" CRLF CRLF EQUAL? GL-PLACE-CUR,RM-LAIR \?CND4 ICALL2 DPRINT,CH-MORIARTY FSET? CH-MORIARTY,FL-ASLEEP \?CND6 FCLEAR CH-MORIARTY,FL-ASLEEP PRINTI " awakens from his stupor and" ?CND6: PRINTI " says, " PRINT K-FOUGHT-WELL-MSG CRLF CRLF ?CND4: CALL1 RT-QSR RSTACK .FUNCT RT-ETHERIUM-EFFECT,ASLEEP?,OBJ,TOP,CNT ASSIGNED? 'TOP /?CND1 SET 'TOP,TRUE-VALUE ?CND1: ZERO? OBJ \?PRG5 SET 'OBJ,GL-PLACE-CUR ?PRG5: ZERO? OBJ /?REP6 FSET? OBJ,FL-ALIVE \?CCL11 EQUAL? OBJ,CH-PLAYER \?CTR10 FSET? TH-BREATH,FL-LOCKED /?CCL11 ?CTR10: ZERO? ASLEEP? /?CCL18 EQUAL? OBJ,CH-HOLMES \?CCL20 FSET? TH-BREATH,FL-LOCKED /?CND7 ?CCL20: FSET OBJ,FL-ASLEEP INC 'CNT EQUAL? GL-PUPPY,OBJ \?CND7 SET 'GL-FORMER-PUPPY,OBJ SET 'GL-PUPPY,FALSE-VALUE JUMP ?CND7 ?CCL18: FCLEAR OBJ,FL-ASLEEP INC 'CNT JUMP ?CND7 ?CCL11: FIRST? OBJ \?CND7 FIRST? OBJ /?BOGUS26 ?BOGUS26: CALL RT-ETHERIUM-EFFECT,ASLEEP?,STACK,FALSE-VALUE ADD CNT,STACK >CNT ?CND7: ZERO? TOP \?REP6 NEXT? OBJ >OBJ /?PRG5 JUMP ?PRG5 ?REP6: RETURN CNT .FUNCT RT-I-WAKE-UP,OBJ LOC TH-ETHERIUM-GAS ICALL RT-ETHERIUM-EFFECT,FALSE-VALUE,STACK REMOVE TH-ETHERIUM-GAS RTRUE .FUNCT RT-SMELL-ETHERIUM? LOC TH-ETHERIUM-GAS EQUAL? GL-PLACE-CUR,STACK \FALSE FSET? TH-BREATH,FL-LOCKED /?CCL5 REMOVE TH-ETHERIUM-GAS CRLF PRINTI "The etherium knocks you out." CRLF CRLF FSET CH-PLAYER,FL-ASLEEP EQUAL? GL-PLACE-CUR,RM-LAIR \?CCL8 ICALL2 RT-ALARM-CLR,RT-I-WAKE-UP ICALL1 RT-DOES-MORIARTY-WIN RTRUE ?CCL8: CALL2 RT-ALARM-SET?,RT-I-WAKE-UP ZERO? STACK /?CCL11 COPYT GL-TIME-PARM,GL-TIME,K-A-TWDTH ICALL2 RT-ALARM-CHK,FALSE-VALUE SET 'GL-CLOCK-WAIT,TRUE-VALUE PRINT K-WAKE-UP-MSG CRLF JUMP ?CND9 ?CCL11: ICALL RT-CLOCK-JMP,6,0,0 PRINT K-WAKE-UP-MSG CRLF ?CND9: ZERO? GL-FORMER-PUPPY /TRUE IN? GL-FORMER-PUPPY,GL-PLACE-CUR \TRUE ZERO? GL-PUPPY \TRUE FCLEAR GL-FORMER-PUPPY,FL-ASLEEP SET 'GL-PUPPY,GL-FORMER-PUPPY SET 'GL-FORMER-PUPPY,FALSE-VALUE RTRUE ?CCL5: ZERO? GL-PUPPY /TRUE EQUAL? GL-PUPPY,CH-HOLMES /TRUE CALL RT-ETHERIUM-EFFECT,TRUE-VALUE,GL-PUPPY ZERO? STACK /TRUE ICALL2 RT-CTHEO-PRINT,GL-FORMER-PUPPY PRINTR " passes out." .FUNCT RT-FIND-FLAME,OBJ,TOP,FST ASSIGNED? 'TOP /?CND1 SET 'TOP,TRUE-VALUE ?CND1: ZERO? OBJ \?PRG5 SET 'OBJ,GL-PLACE-CUR ?PRG5: ZERO? OBJ /FALSE FSET? OBJ,FL-BURNABLE \?CND7 FSET? OBJ,FL-LIGHTED /TRUE ?CND7: FIRST? OBJ >FST /?BOGUS13 ?BOGUS13: ZERO? FST /?CND14 CALL RT-FIND-FLAME,FST,FALSE-VALUE ZERO? STACK \TRUE ?CND14: ZERO? TOP \FALSE NEXT? OBJ >OBJ /?PRG5 JUMP ?PRG5 .FUNCT RT-DOES-MORIARTY-WIN FSET? CH-MORIARTY,FL-LOCKED \?CCL3 FSET? CH-AKBAR,FL-LOCKED \?CCL3 ICALL RT-DO-CLOCK-SET,GL-TIME,8,30,0,20 ICALL2 RT-ALARM-CLR,RT-I-OUT-OF-TIME ICALL2 RT-ALARM-CHK,FALSE-VALUE SET 'GL-CLOCK-WAIT,TRUE-VALUE CALL RT-DO-CLOCK-SET,GL-TIME-PARM,9,0,0,20 ICALL RT-ALARM-SET-ABS,RT-I-OUT-OF-TIME,STACK PRINTI "You awaken slowly and stumble to your feet. Moriarty and Akbar have already recovered, and they are struggling fiercely to free themselves. It seems as if you were unconscious for quite a while, but it's hard to tell. You probably don't have a lot of time." CRLF FCLEAR CH-PLAYER,FL-ASLEEP FCLEAR CH-HOLMES,FL-ASLEEP FCLEAR CH-AKBAR,FL-ASLEEP FCLEAR CH-MORIARTY,FL-ASLEEP RTRUE ?CCL3: PRINTI "Unfortunately, Moriarty and Akbar recovered before you did. You find yourself bound securely to Holmes." CRLF CRLF PRINTI "Moriarty looks at you and says, " PRINT K-FOUGHT-WELL-MSG CRLF CRLF CALL1 RT-QSR RSTACK .FUNCT RT-PROCESS-PASSWORD EQUAL? GL-PLACE-CUR,RM-BAR-OF-GOLD \?CCL3 ICALL2 RT-CTHEO-PRINT,CH-DENKEEPER IN? TH-CARNATION,TH-LAPEL \?CCL6 FSET? CH-AKBAR,FL-SEEN /?CCL6 CALL RT-CLOCK-CMP,2,0,0,20 EQUAL? STACK,-1,0 \?CCL6 FSET CH-AKBAR,FL-SEEN MOVE CH-AKBAR,RM-BAR-OF-GOLD PRINTI " disappears into a back room and reappears moments later, accompanied by a tall, silent man who has dark skin and wears a white turban." CRLF CRLF PRINTI "The Indian glances at your " FSET? TH-WATSONS-HAT,FL-WORN /?CND10 PRINTI "uncovered " ?CND10: PRINTI "head and then intones, ""I am Akbar" FSET? TH-WATSONS-HAT,FL-WORN \?CND12 PRINTI ", honourable sir" ?CND12: PRINTR ". What is it that you wish?""" ?CCL6: PRINTR " says, ""Not now, mate. Can't you see I'm busy?""" ?CCL3: EQUAL? GL-PLACE-CUR,RM-BYWARD-TOWER \?CCL15 ICALL2 RT-CTHEO-PRINT,CH-TOWER-GUARD PRINTR " pauses and looks at you strangely. Then he says, ""An interesting guess. But wrong.""" ?CCL15: PRINTR "Thatsa no swordfish. Thatsa duck." .FUNCT V-SWORDFISH CALL1 RT-PROCESS-PASSWORD RSTACK .FUNCT RT-ROPE-MSG PRINTI "As" ICALL RT-YOU-MSG,STR?769,STR?770 PRINTI "for " ICALL2 RT-THEO-PRINT,TH-ROPE PRINTI ", Akbar" FSET? TH-WATSONS-HAT,FL-WORN \?CND1 PRINTI " says, ""Pardon me, honourable sir,"" and" ?CND1: PRINTI " hits you over the head." CRLF CRLF PRINTI "When you regain consciousness, you find that your hands and feet are bound. Outside you hear the paper boy run through the streets shouting out ""Crown Jewels stolen! Prime Minister resigns in disgrace!""" CRLF CALL1 RT-QSR RSTACK .FUNCT RT-INSCRIPTION-APPEARS-MSG PRINTR "After a few moments, the tomb's inscription comes through onto the piece of paper." .FUNCT RT-PROCESS-TOMB,TOMB-NUMBER EQUAL? GL-PRSA,V?READ \?CCL3 CALL2 RT-READ-INSCRIPTION,TOMB-NUMBER RSTACK ?CCL3: EQUAL? GL-PRSA,V?TRANSLATE \?CCL5 PRINTR "Unfortunately, what little Latin you remember from your school days is limited to medical matters." ?CCL5: EQUAL? GL-PRSA,V?RUB-WITH \?CCL7 PRINTR "Rubbing the paper with the crayon would probably yield better results." ?CCL7: EQUAL? GL-PRSA,V?LOOK-INSIDE,V?SEARCH \?CCL9 ICALL1 RT-CYOU-MSG ICALL RT-WOULD-HAVE-TO-MSG,STR?227,TH-IT PRINTR " first." ?CCL9: EQUAL? GL-PRSA,V?OPEN \?CCL11 PRINTR "Getting just a little bit morbid, aren't we?" ?CCL11: EQUAL? GL-PRSA,V?TOUCH \?CCL13 EQUAL? TOMB-NUMBER,1,2,3 \?CCL16 PRINTR "It feels a little sticky." ?CCL16: ICALL RT-CYOU-MSG,STR?655,STR?656 PRINTI "not feel anything " CALL2 RT-PICK-NEXT,GL-BORING-TXT PRINT STACK PRINTR "." ?CCL13: EQUAL? GL-PRSA,V?SHOOT \FALSE CALL1 RT-SHOOT-DEAD-MSG RSTACK .FUNCT RT-READ-INSCRIPTION,NUM PRINTI "The inscription" EQUAL? 2,NUM \?CCL3 PRINTI " reads, ""ISAACVS NEWTON Eques Auratus" JUMP ?CND1 ?CCL3: EQUAL? 1,NUM \?CCL5 PRINTI " reads, ""REGNO CONSORTES & VRNA HIC OBDOR MIMVS ELIZABETHA ET MARIA SORORES IN SPE RESVRRECTIONIS" JUMP ?CND1 ?CCL5: EQUAL? 7,NUM \?CCL7 PRINTI " is a long one, but in the middle of it you see the name ""GALFRIDVS CHAVCER" JUMP ?CND1 ?CCL7: EQUAL? 9,NUM \?CCL9 PRINTI "s are written in Latin, but you can make out the names ""Edward V"" and ""Richard, Duke of York" JUMP ?CND1 ?CCL9: PRINTI " is written in Latin, but you can make out the name """ EQUAL? 3,NUM \?CCL12 PRINTI "Henry V" JUMP ?CND1 ?CCL12: EQUAL? 4,NUM \?CCL14 PRINTI "Edward the Confessor" JUMP ?CND1 ?CCL14: EQUAL? 5,NUM \?CCL16 PRINTI "Alexander Pope" JUMP ?CND1 ?CCL16: EQUAL? 6,NUM \?CCL18 PRINTI "Charles Dickens" JUMP ?CND1 ?CCL18: EQUAL? 8,NUM \?CCL20 PRINTI "Anne of Cleves" JUMP ?CND1 ?CCL20: EQUAL? 10,NUM \?CCL22 PRINTI "Mary, Queen of Scots" JUMP ?CND1 ?CCL22: EQUAL? 11,NUM \?CCL24 PRINTI "Henry VII" JUMP ?CND1 ?CCL24: EQUAL? 12,NUM \?CCL26 PRINTI "Pitt" JUMP ?CND1 ?CCL26: EQUAL? 13,NUM \?CND1 PRINTI "Francis Vere" ?CND1: PRINTR ".""" .FUNCT RT-READ-PAPER,PAPER-NAME,WRITING,PHEAT ZERO? WRITING \?CCL3 PRINTR "The paper appears to be blank." ?CCL3: GETP PAPER-NAME,P?FLIPPED ZERO? STACK \?CCL6 ICALL2 RT-READ-INSCRIPTION,WRITING RTRUE ?CCL6: ZERO? PHEAT \?CCL9 PRINTR "This side appears to be blank." ?CCL9: EQUAL? 1,PHEAT \?CCL11 PRINTR "You see a faint discolouration." ?CCL11: EQUAL? 2,PHEAT \TRUE EQUAL? 1,WRITING \?CCL15 ICALL1 RT-INDENT-PRINT PRINTI "Hickory Dickory Dock." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Your enemy is the clock." CRLF ICALL1 RT-INDENT-PRINT PRINTI "When it strikes nine," CRLF ICALL1 RT-INDENT-PRINT PRINTI "The victory's mine." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Hickory Dickory Dock." CRLF CRLF ICALL1 RT-INDENT-PRINT PRINT K-ASTERISK-MSG CRLF CRLF ICALL1 RT-INDENT-PRINT PRINTI "Here comes a candle to light you to bed." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Here comes a chopper" ICALL1 RT-WRAP-PRINT PRINTI "to chop off your head." CRLF FSET PAPER-NAME,FL-LOCKED BOR TH-PACKET-OF-PAPER-AUX1,1 >TH-PACKET-OF-PAPER-AUX1 JUMP ?CND13 ?CCL15: EQUAL? 2,WRITING \?CCL17 ICALL1 RT-INDENT-PRINT PRINTI "London Bridge is falling down." CRLF ICALL1 RT-INDENT-PRINT PRINTI "All that's under it will drown." CRLF ICALL1 RT-INDENT-PRINT PRINTI "With it falls Victoria's reign." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Britannia ne'er to rule again." CRLF CRLF ICALL1 RT-INDENT-PRINT PRINT K-ASTERISK-MSG CRLF CRLF ICALL1 RT-INDENT-PRINT PRINTI "When a number you require," CRLF ICALL1 RT-INDENT-PRINT PRINTI "And you're banking all thereon." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Subtract the conquest from the fire," CRLF ICALL1 RT-INDENT-PRINT PRINTI "Half a league, half a league." ICALL1 RT-WRAP-PRINT PRINTI "Half a league on." CRLF FSET PAPER-NAME,FL-LOCKED BOR TH-PACKET-OF-PAPER-AUX1,2 >TH-PACKET-OF-PAPER-AUX1 JUMP ?CND13 ?CCL17: EQUAL? 3,WRITING \?CND13 ICALL1 RT-INDENT-PRINT PRINT K-TWINKLE-MSG CRLF ICALL1 RT-INDENT-PRINT PRINTI "Fought at sea, midst masts and spars." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Now above the world so high," CRLF ICALL1 RT-INDENT-PRINT PRINTI "Looking down with watchful eye." CRLF ICALL1 RT-INDENT-PRINT PRINT K-TWINKLE-MSG CRLF ICALL1 RT-INDENT-PRINT PRINTI "England's hero, prince of tars." CRLF CRLF ICALL1 RT-INDENT-PRINT PRINT K-ASTERISK-MSG CRLF CRLF ICALL1 RT-INDENT-PRINT PRINTI "Pussycat, pussycat," ICALL1 RT-WRAP-PRINT PRINTI "where have you been?" CRLF ICALL1 RT-INDENT-PRINT PRINTI "I've been to the Tower" ICALL1 RT-WRAP-PRINT PRINTI "to look at the Queen." CRLF ICALL1 RT-INDENT-PRINT PRINTI "Pussycat, pussycat," ICALL1 RT-WRAP-PRINT PRINTI "what did you there?" CRLF ICALL1 RT-INDENT-PRINT PRINTI "I left something for you." ICALL1 RT-WRAP-PRINT PRINTI "Go back, if you dare." CRLF FSET PAPER-NAME,FL-LOCKED BOR TH-PACKET-OF-PAPER-AUX1,4 >TH-PACKET-OF-PAPER-AUX1 ?CND13: FSET? TH-PACKET-OF-PAPER,FL-ASLEEP /?CCL21 FSET TH-PACKET-OF-PAPER,FL-ASLEEP ICALL2 RT-UPDATE-SCORE,5 RTRUE ?CCL21: EQUAL? TH-PACKET-OF-PAPER-AUX1,7 \TRUE CALL1 RT-WHO-SAYS? EQUAL? STACK,CH-HOLMES \TRUE SET 'TH-PACKET-OF-PAPER-AUX1,15 CRLF PRINTR "Holmes leans forward with an excited expression upon his hawk-like features and says, ""There is only one man in all London clever enough to plan this, Watson - Professor Moriarty. See how boldly he hides clues in public places, knowing all the while that they will remain hidden from the casual eye. Onward, Doctor. Let us solve these riddles and see what the good Professor has in mind for us.""" .FUNCT RT-PROCESS-PAPER,PAPER-NAME,WRITING,PHEAT GETP PAPER-NAME,P?INSCRIPTION >WRITING GETP PAPER-NAME,P?HEATED >PHEAT EQUAL? GL-PRSA,V?TAKE \?CCL3 LOC PAPER-NAME EQUAL? STACK,TH-ELIZABETH-TOMB,TH-NEWTON-TOMB,TH-HENRY-V-TOMB \FALSE EQUAL? WRITING,1,2,3 \FALSE PRINTI "You pick at the paper for a few seconds, but it seems to be stuck to the inscription. After a few seconds you manage to peel it off." CRLF MOVE PAPER-NAME,CH-PLAYER RTRUE ?CCL3: EQUAL? GL-PRSA,V?RAISE \?PRD12 EQUAL? GL-PRSO,PAPER-NAME \?PRD12 CALL2 RT-VISIBLE?,LG-SHAFT-OF-LIGHT ZERO? STACK \?CTR9 ?PRD12: EQUAL? GL-PRSA,V?PUT \?PRD16 EQUAL? GL-PRSO,PAPER-NAME \?PRD16 EQUAL? GL-PRSI,LG-SHAFT-OF-LIGHT /?CTR9 ?PRD16: EQUAL? GL-PRSA,V?TOUCH-TO \?CCL10 EQUAL? GL-PRSI,LG-SHAFT-OF-LIGHT /?CTR9 EQUAL? GL-PRSI,TH-LAMP \?CCL10 FSET? TH-LAMP,FL-LIGHTED \?CCL10 ?CTR9: EQUAL? PHEAT,1 \?CCL28 ICALL RT-CYOU-MSG,STR?665,STR?666 PRINTI "a discolouration" GETP PAPER-NAME,P?FLIPPED ZERO? STACK \?CND26 PRINTI " which appears to be on the back" JUMP ?CND26 ?CCL28: EQUAL? PHEAT,2 \?CCL32 PRINTI "There seems to be some writing" GETP PAPER-NAME,P?FLIPPED ZERO? STACK \?CND26 PRINTI " on the back" JUMP ?CND26 ?CCL32: EQUAL? WRITING,1,2,3 \?CCL36 ICALL RT-CYOU-MSG,STR?665,STR?666 PRINTI "a faint discolouration" JUMP ?CND26 ?CCL36: ICALL RT-CYOU-MSG,STR?665,STR?666 PRINTI "a watermark" ?CND26: PRINTR "." ?CCL10: EQUAL? GL-PRSA,V?HEAT,V?HOLD-OVER,V?LIGHT-WITH /?CTR37 EQUAL? GL-PRSA,V?BURN-WITH,V?TOUCH-TO \?CCL38 ?CTR37: IN? PAPER-NAME,GL-WINNER /?CCL43 ICALL RT-CYOU-MSG,STR?228,STR?229 PRINTI "not holding " ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTR "." ?CCL43: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH,V?TOUCH-TO /?CCL45 EQUAL? GL-PRSI,TH-BANK-OF-CANDLES \?CCL45 PRINTI "The paper is heated by the bank of candles" GETP PAPER-NAME,P?HEATED EQUAL? STACK,2 \?CCL50 EQUAL? WRITING,1,2,3 \?CCL50 PRINTI ", but nothing more appears" JUMP ?CND48 ?CCL50: EQUAL? WRITING,1,2,3 \?CND48 PUTP PAPER-NAME,P?HEATED,2 PRINTI ". Something seems to be gradually appearing on " GETP PAPER-NAME,P?FLIPPED ZERO? STACK \?CND54 PRINTI "the back of " ?CND54: ICALL2 RT-THEO-PRINT,PAPER-NAME ?CND48: PRINTR "." ?CCL45: EQUAL? GL-PRSA,V?LIGHT-WITH,V?BURN-WITH,V?TOUCH-TO /?CCL57 EQUAL? GL-PRSI,TH-PIPE,TH-TOBACCO,TH-MATCH \?CCL57 EQUAL? GL-PRSI,TH-PIPE,TH-TOBACCO \?PRD64 FSET? TH-TOBACCO,FL-LIGHTED /?CTR61 ?PRD64: EQUAL? GL-PRSI,TH-MATCH \?CCL62 FSET? TH-MATCH,FL-LIGHTED \?CCL62 ?CTR61: PRINTI "The paper is warmed by " ICALL1 RT-THEI-PRINT PRINTC 46 CRLF EQUAL? WRITING,1,2,3 \TRUE ZERO? PHEAT \TRUE PUTP PAPER-NAME,P?HEATED,1 RTRUE ?CCL62: ICALL1 RT-CTHEI-PRINT ICALL2 RT-ISNT-ARENT-MSG,GL-PRSI PRINTR "lit." ?CCL57: FSET? GL-PRSI,FL-BURNABLE \?PRD75 FSET? GL-PRSI,FL-LIGHTED /?CCL73 ?PRD75: EQUAL? GL-PRSI,TH-PIPE \?PRD78 FSET? TH-TOBACCO,FL-LIGHTED /?CCL73 ?PRD78: EQUAL? GL-PRSI,PSEUDO-OBJECT \FALSE GETP GL-PRSI,P?ACTION EQUAL? STACK,RT-AC-TH-FIREPLACE \FALSE ?CCL73: PRINTI "The paper catches fire quickly." EQUAL? WRITING,1,2,3 \?CND83 FSET? PAPER-NAME,FL-LOCKED /?CND83 PRINTI " As it burns, you catch a glimpse of writing you could swear hadn't been there before." ?CND83: CRLF CRLF ICALL2 RT-CTHEO-PRINT,PAPER-NAME PRINTI " vanishes in a poof of smoke." CRLF REMOVE PAPER-NAME RTRUE ?CCL38: EQUAL? GL-PRSA,V?READ,V?EXAMINE \?CCL88 IN? PAPER-NAME,TH-PACKET-OF-PAPER \?CND89 ICALL1 RT-CYOU-MSG PRINTR "cannot do that while it is in the pacquet of paper." ?CND89: GET GL-P-OFW,0 EQUAL? STACK,W?BACK \?CND91 ICALL RT-PERFORM,V?FLIP,GL-PRSO RTRUE ?CND91: ICALL RT-READ-PAPER,PAPER-NAME,WRITING,PHEAT RTRUE ?CCL88: EQUAL? GL-PRSA,V?FLIP \?CCL94 IN? PAPER-NAME,GL-WINNER /?CCL97 ICALL RT-CYOU-MSG,STR?228,STR?229 PRINTI "not holding " ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTR "." ?CCL97: ZERO? WRITING \?CCL99 ICALL2 RT-CTHEO-PRINT,PAPER-NAME PRINTR " seems to be blank on both sides." ?CCL99: ICALL RT-CYOU-MSG,STR?804,STR?805 ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTI " over." CRLF CRLF GETP PAPER-NAME,P?FLIPPED SUB 1,STACK PUTP PAPER-NAME,P?FLIPPED,STACK ICALL RT-READ-PAPER,PAPER-NAME,WRITING,PHEAT RTRUE ?CCL94: EQUAL? GL-PRSA,V?RUB-WITH \?CCL101 EQUAL? GL-PRSO,PAPER-NAME \FALSE EQUAL? GL-PRSI,TH-CRAYON /?CCL106 PRINTI "Rubbing the paper with " ICALL1 RT-THEI-PRINT PRINTR " doesn't do anything." ?CCL106: ZERO? WRITING /?CCL108 PRINTR "You don't really want to do that. You would mess up your inscription." ?CCL108: FIRST? PAPER-NAME \?CCL110 ICALL1 RT-CYOU-MSG PRINTI "cannot do a rubbing while there is something on " ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTR "." ?CCL110: IN? PAPER-NAME,TH-ELIZABETH-TOMB \?CCL112 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,1 RTRUE ?CCL112: IN? PAPER-NAME,TH-NEWTON-TOMB \?CCL114 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,2 RTRUE ?CCL114: IN? PAPER-NAME,TH-HENRY-V-TOMB \?CCL116 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,3 RTRUE ?CCL116: IN? PAPER-NAME,TH-EDWARD-TOMB \?CCL118 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,4 RTRUE ?CCL118: IN? PAPER-NAME,TH-POPE-TOMB \?CCL120 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,5 RTRUE ?CCL120: IN? PAPER-NAME,TH-DICKENS-TOMB \?CCL122 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,6 RTRUE ?CCL122: IN? PAPER-NAME,TH-CHAUCER-TOMB \?CCL124 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,7 RTRUE ?CCL124: IN? PAPER-NAME,TH-ANNE-OF-CLEVES-TOMB \?CCL126 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,8 RTRUE ?CCL126: IN? PAPER-NAME,TH-LITTLE-PRINCES-TOMB \?CCL128 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,9 RTRUE ?CCL128: IN? PAPER-NAME,TH-MARY-QUEEN-OF-SCOTS-TOMB \?CCL130 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,10 RTRUE ?CCL130: IN? PAPER-NAME,TH-HENRY-VII-TOMB \?CCL132 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,11 RTRUE ?CCL132: IN? PAPER-NAME,TH-PITT-TOMB \?CCL134 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,12 RTRUE ?CCL134: IN? PAPER-NAME,TH-VERE-TOMB \?CCL136 ICALL1 RT-INSCRIPTION-APPEARS-MSG PUTP PAPER-NAME,P?INSCRIPTION,13 RTRUE ?CCL136: PRINTI "Rubbing " ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTI " while it is" LOC PAPER-NAME LOC STACK EQUAL? STACK,ROOMS \?CCL139 PRINTI " on " LOC PAPER-NAME FSET? STACK,FL-INDOORS \?CCL142 ICALL1 TELL-THE-FLOOR JUMP ?CND137 ?CCL142: ICALL1 TELL-THE-GROUND JUMP ?CND137 ?CCL139: LOC PAPER-NAME ICALL2 RT-IN-ON-MSG,STACK LOC PAPER-NAME ICALL2 RT-THEO-PRINT,STACK ?CND137: PRINTI " would" ICALL1 RT-WASTE-OF-TIME-MSG RTRUE ?CCL101: EQUAL? GL-PRSA,V?LOOK-THRU \?CCL144 EQUAL? GL-PRSI,TH-MAGNIFYING-GLASS \?CCL144 PRINTI "All" ICALL RT-YOU-MSG,STR?665,STR?666 PRINTR "is a faint watermark." ?CCL144: EQUAL? GL-PRSA,V?TAKE \FALSE FIRST? PAPER-NAME \FALSE ICALL1 RT-CYOU-MSG ICALL2 RT-WOULD-HAVE-TO-MSG,STR?697 FIRST? PAPER-NAME /?BOGUS150 ?BOGUS150: ICALL2 RT-THEO-PRINT,STACK PRINTI " off of " ICALL2 RT-THEO-PRINT,PAPER-NAME PRINTR " first." .FUNCT RT-PAPER-WARMING,PAPER-NAME IN? PAPER-NAME,CH-PLAYER \FALSE GETP PAPER-NAME,P?INSCRIPTION EQUAL? STACK,1,2,3 \FALSE GETP PAPER-NAME,P?HEATED ZERO? STACK \FALSE PUTP PAPER-NAME,P?HEATED,1 RFALSE .FUNCT RT-I-FLASH-WESTMINSTER-LIGHTS ZERO? PLAYER-IN-ABBEY /FALSE CRLF PRINTR "The lights flicker off and on, and you remember that the Abbey closes at six o'clock." .FUNCT RT-I-WESTMINSTER-LIGHTS-ON FSET RM-NAVE,FL-LIGHTED FSET RM-SOUTH-AISLE,FL-LIGHTED FSET RM-JERICHO-PARLOUR,FL-LIGHTED FSET RM-JERUSALEM-CHAMBER,FL-LIGHTED FSET RM-NORTH-CLOISTER,FL-LIGHTED FSET RM-NORTH-TRANSEPT,FL-LIGHTED FSET RM-SOUTH-TRANSEPT,FL-LIGHTED FSET RM-EVANGELIST-CHAPEL,FL-LIGHTED FSET RM-NORTH-AMBULATORY,FL-LIGHTED FSET RM-SANCTUARY,FL-LIGHTED FSET RM-SOUTH-AMBULATORY,FL-LIGHTED FSET RM-POETS-CORNER,FL-LIGHTED FSET RM-NORTH-CHAPEL-AISLE,FL-LIGHTED FSET RM-HENRY-VII-CHAPEL,FL-LIGHTED FSET RM-SOUTH-CHAPEL-AISLE,FL-LIGHTED FSET RM-CONFESSOR-CHAPEL,FL-LIGHTED FSET RM-INNOCENTS-CORNER,FL-LIGHTED ZERO? PLAYER-IN-ABBEY /FALSE CRLF PRINTR "The lights come on." .FUNCT RT-I-WESTMINSTER-LIGHTS-OFF FCLEAR RM-NAVE,FL-LIGHTED FCLEAR RM-SOUTH-AISLE,FL-LIGHTED FCLEAR RM-JERICHO-PARLOUR,FL-LIGHTED FCLEAR RM-JERUSALEM-CHAMBER,FL-LIGHTED FCLEAR RM-NORTH-CLOISTER,FL-LIGHTED FCLEAR RM-NORTH-TRANSEPT,FL-LIGHTED FCLEAR RM-SOUTH-TRANSEPT,FL-LIGHTED FCLEAR RM-EVANGELIST-CHAPEL,FL-LIGHTED FCLEAR RM-NORTH-AMBULATORY,FL-LIGHTED FCLEAR RM-SANCTUARY,FL-LIGHTED FCLEAR RM-SOUTH-AMBULATORY,FL-LIGHTED FCLEAR RM-POETS-CORNER,FL-LIGHTED FCLEAR RM-NORTH-CHAPEL-AISLE,FL-LIGHTED FCLEAR RM-HENRY-VII-CHAPEL,FL-LIGHTED FCLEAR RM-SOUTH-CHAPEL-AISLE,FL-LIGHTED FCLEAR RM-CONFESSOR-CHAPEL,FL-LIGHTED FCLEAR RM-INNOCENTS-CORNER,FL-LIGHTED ZERO? PLAYER-IN-ABBEY /FALSE CRLF PRINTR "The lights go out." .FUNCT RT-I-LOCKED-IN-END-GAME ZERO? PLAYER-IN-ABBEY /FALSE CRLF PRINTI "In the distance you hear the huge door of the Abbey clang shut. You run to the Nave, only to discover that you have been locked in. After spending a spooky night in the Abbey, you emerge in the morning to discover that the theft of the Crown Jewels has been discovered." CRLF CRLF CALL1 RT-QSR RSTACK .FUNCT RT-I-OPEN-WESTMINSTER-DOOR CALL RT-DO-CLOCK-SET,GL-TIME-PARM,11,0,0 ICALL RT-ALARM-SET-REL,RT-I-CLOSE-WESTMINSTER-DOOR,STACK FSET LG-WESTMINSTER-DOOR,FL-OPENED EQUAL? GL-PLACE-CUR,RM-BROAD-SANCTUARY \?CCL3 CRLF PRINTR "A verger appears, unlocks the huge door, and pushes it open." ?CCL3: EQUAL? GL-PLACE-CUR,RM-NAVE \FALSE CRLF PRINTR "Suddenly you hear the west door opening. The sunlight streaming in the door blinds you after your night-long vigil. A verger enters, gives you a strange look, and disappears into the South Aisle." .FUNCT RT-I-CLOSE-WESTMINSTER-DOOR CALL RT-DO-CLOCK-SET,GL-TIME-PARM,13,0,0 ICALL RT-ALARM-SET-REL,RT-I-OPEN-WESTMINSTER-DOOR,STACK FCLEAR LG-WESTMINSTER-DOOR,FL-OPENED EQUAL? GL-PLACE-CUR,RM-BROAD-SANCTUARY \?CCL3 CRLF PRINTR "The verger says goodnight and closes the door." ?CCL3: EQUAL? GL-PLACE-CUR,RM-NAVE \FALSE SET 'PLAYER-IN-ABBEY,FALSE-VALUE CRLF PRINTI "A verger comes up to you and coughs deferentially. ""I'm sorry sir, but it's six o'clock and I have to close up now."" He escorts you to the door and closes it behind you as you exit." CRLF CRLF CALL2 RT-GOTO,RM-BROAD-SANCTUARY RSTACK .FUNCT RT-CF-TH-BOAT,CONTEXT EQUAL? GL-PRSA,V?WALK \?CCL3 EQUAL? GL-P-WALK-DIR,P?OUT \?CCL3 CALL RT-PERFORM,V?EXIT,TH-BOAT RSTACK ?CCL3: EQUAL? GL-PRSA,V?WALK \?CCL7 EQUAL? GL-P-WALK-DIR,P?NORTH \?CCL7 EQUAL? GL-PLACE-CUR,RM-THE-EMBANKMENT,RM-OUTSIDE-TRAITORS-GATE \?CCL7 PRINT K-GET-OUT-FIRST-MSG CRLF RTRUE ?CCL7: EQUAL? GL-PRSA,V?ENTER \FALSE EQUAL? GL-PRSO,TH-BOAT /FALSE PRINT K-GET-OUT-FIRST-MSG CRLF RTRUE .FUNCT RT-PROCESS-BOAT-ON-THAMES,UP?,WRD IN? TH-ANCHOR,TH-BOAT \?CND1 CALL2 RT-ALARM-SET?,RT-I-MOVE-DOWNSTREAM ZERO? STACK \?CND1 CALL RT-DO-CLOCK-SET,GL-TIME-PARM,0,0,0 ICALL RT-ALARM-SET-REL,RT-I-MOVE-DOWNSTREAM,STACK ?CND1: EQUAL? GL-PRSA,V?EXIT,V?SWIM \?PRD9 EQUAL? GL-PRSO,ROOMS,TH-BOAT /?CTR6 ?PRD9: EQUAL? GL-PRSA,V?LEAP,V?CLIMB-DOWN,V?ENTER \?CCL7 EQUAL? GL-PRSO,LG-WATER \?CCL7 ?CTR6: ICALL RT-CYOU-MSG,STR?813,STR?814 PRINTI "out of the boat, and then suddenly remember that you can't swim. Unable to climb back in, you cling to the boat for hours, until you are rescued by a Scotland Yard launch. Naturally, Lestrade is aboard, and as he bundles you off to the hospital to recover from the dread disease you caught while floating in the river, he tells you that he - personally - will take on the case." CRLF CRLF PRINTI "Somehow this doesn't make you feel any better." CRLF CRLF CALL1 RT-QSR RSTACK ?CCL7: EQUAL? GL-PRSA,V?ROW,V?PADDLE,V?PADDLE-WITH \?CCL15 EQUAL? GL-PRSO,FALSE-VALUE,ROOMS,TH-BOAT \?PRD20 EQUAL? GL-PRSI,FALSE-VALUE /?CTR17 ?PRD20: EQUAL? GL-PRSA,V?PADDLE-WITH \?CCL18 EQUAL? GL-PRSI,FALSE-VALUE \?CCL18 ?CTR17: ICALL2 RT-ALARM-CLR,RT-I-MOVE-DOWNSTREAM PRINTI "[Please specify a direction to " PRINTB GL-P-PRSA-WORD PRINTR ".]" ?CCL18: EQUAL? GL-PRSO,LG-UP-DOWN-STREAM /?CTR25 EQUAL? GL-PRSO,TH-INTDIR \?PRD29 EQUAL? GL-P-DIRECTION,P?WEST,P?EAST /?CTR25 ?PRD29: EQUAL? GL-PRSO,TH-BOAT \?CCL26 EQUAL? GL-PRSI,TH-INTDIR \?CCL26 ?CTR25: EQUAL? GL-PRSO,LG-UP-DOWN-STREAM \?PRD36 GETP GL-PRSO,P?OBJ-NOUN EQUAL? STACK,W?UPSTREAM /?PST35 ?PRD36: EQUAL? GL-P-DIRECTION,P?WEST /?PRD39 PUSH 0 JUMP ?PRD40 ?PRD39: PUSH 1 ?PRD40: SET 'UP?,STACK JUMP ?PEN34 ?PST35: SET 'UP?,1 ?PEN34: ICALL2 RT-ALARM-CLR,RT-I-MOVE-DOWNSTREAM IN? TH-ANCHOR,TH-BOAT /?CCL43 ICALL1 RT-CYOU-MSG PRINTI "can " PRINTB GL-P-PRSA-WORD PRINTR " like blue blazes, but the anchor is restraining the boat." ?CCL43: EQUAL? GL-PRSA,V?ROW \?CCL45 IN? TH-OAR-2,TH-OAR-LOCK /?CCL45 IN? TH-OAR-1,TH-BOAT \?CCL50 ICALL RT-CYOU-MSG,STR?815,STR?816 PRINTR "hard on the oar. The boat spins round and round. Wheeeee!" ?CCL50: ICALL RT-CYOU-MSG,STR?655,STR?656 PRINTR "not have any oars." ?CCL45: EQUAL? GL-PRSA,V?PADDLE-WITH \?CCL52 EQUAL? GL-PRSI,TH-PADDLE /?CCL52 EQUAL? GL-PRSI,TH-VIOLIN /FALSE ICALL1 RT-CYOU-MSG PRINTI "can't paddle with " ICALL1 RT-THEI-PRINT PRINTR "." ?CCL52: EQUAL? GL-PRSA,V?PADDLE,V?PADDLE-WITH \?CCL59 IN? TH-PADDLE,GL-WINNER /?CCL59 ICALL RT-CYOU-MSG,STR?655,STR?656 PRINTI "not have " ICALL2 RT-A-PRINT,TH-PADDLE PRINTR "." ?CCL59: ZERO? UP? /?CCL63 ICALL1 RT-MOVE-UPSTREAM RTRUE ?CCL63: ICALL1 RT-I-MOVE-DOWNSTREAM RTRUE ?CCL26: EQUAL? GL-PRSO,TH-INTDIR /?PRD67 EQUAL? GL-PRSI,TH-INTDIR \?CCL65 ?PRD67: EQUAL? GL-P-DIRECTION,P?NORTH \?CCL65 ICALL1 RT-LAND-BOAT RTRUE ?CCL65: EQUAL? GL-PRSO,TH-INTDIR /?CTR70 EQUAL? GL-PRSI,TH-INTDIR \?CCL71 ?CTR70: ICALL2 RT-ALARM-CLR,RT-I-MOVE-DOWNSTREAM PRINTR "There doesn't seem to be anything in that direction." ?CCL71: ICALL2 RT-ALARM-CLR,RT-I-MOVE-DOWNSTREAM PRINTI "I don't recognize the direction you are asking me to " PRINTB GL-P-PRSA-WORD PRINTR "." ?CCL15: EQUAL? GL-PRSA,V?STAND,V?STAND-ON \?CCL75 PRINTR "It isn't safe to stand in a boat." ?CCL75: EQUAL? GL-PRSA,V?SIT \?CCL77 PRINTR "You're already seated." ?CCL77: EQUAL? GL-PRSA,V?LEAP \?CCL79 PRINTR "It isn't safe to jump around in a boat." ?CCL79: EQUAL? TH-FLOOR-ETC,GL-PRSO,GL-PRSI \FALSE CALL2 RT-IDENTIFY-FLOOR?,W?FLOOR ZERO? STACK \?CCL81 CALL2 RT-IDENTIFY-FLOOR?,W?GROUND ZERO? STACK /FALSE ?CCL81: PRINTI "There is no " ICALL2 DPRINT,TH-FLOOR-ETC PRINTR " in the middle of a river." .FUNCT RT-I-MOVE-DOWNSTREAM EQUAL? GL-WINNER,CH-PLAYER \?CCL3 EQUAL? GL-PRSA,V?ROW \?CCL3 ICALL RT-CYOU-MSG,STR?817,STR?818 JUMP ?CND1 ?CCL3: EQUAL? GL-WINNER,CH-PLAYER \?CCL7 EQUAL? GL-PRSA,V?PADDLE,V?PADDLE-WITH \?CCL7 ICALL RT-CYOU-MSG,STR?819,STR?820 JUMP ?CND1 ?CCL7: CRLF PRINTI "The boat drifts " ?CND1: PRINTI "down the river" CALL1 RT-IS-LIT? >GL-NOW-LIT? LOC TH-BOAT EQUAL? STACK,RM-THAMES-ONE,RM-THAMES-TWO,RM-THAMES-THREE /?CCL11 LOC TH-BOAT EQUAL? STACK,RM-THAMES-FOUR \?CND10 ?CCL11: PRINTI ". " ?CND10: IN? TH-BOAT,RM-THAMES-ONE \?CCL16 MOVE TH-BOAT,RM-THAMES-TWO ZERO? GL-NOW-LIT? /?CND14 PRINTI "Downstream you see the London Bridge." JUMP ?CND14 ?CCL16: IN? TH-BOAT,RM-THAMES-TWO \?CCL20 MOVE TH-BOAT,RM-THAMES-THREE ZERO? GL-NOW-LIT? /?CND14 PRINTI "You pass under the London Bridge." JUMP ?CND14 ?CCL20: IN? TH-BOAT,RM-THAMES-THREE \?CCL24 MOVE TH-BOAT,RM-THAMES-FOUR ZERO? GL-NOW-LIT? /?CND14 PRINTI "To the north you see the Traitors Gate." JUMP ?CND14 ?CCL24: IN? TH-BOAT,RM-THAMES-FOUR \?CCL28 MOVE TH-BOAT,RM-THAMES-FIVE ZERO? GL-NOW-LIT? /?CND14 PRINTI "Downstream you see the open seas... the strong currents would surely leave you stranded in your small boat if you were to drift further." JUMP ?CND14 ?CCL28: IN? TH-BOAT,RM-THAMES-FIVE \?CND14 PRINTI ", and you drift out to sea." CRLF CRLF PRINTI "After drifting for several days, a passing ship rescues you. By coincidence, another passenger happens to be Lestrade, who has resigned in the wake of the Crown Jewel scandal and is retiring to the island of Pago Pago. After some reflection, you decide to join him." CRLF CRLF ICALL1 RT-QSR ?CND14: LOC TH-BOAT >GL-PLACE-CUR CRLF RTRUE .FUNCT RT-MOVE-UPSTREAM PRINTI "Fighting against the current, you " PRINTB GL-P-PRSA-WORD PRINTI " upstream. " CALL1 RT-IS-LIT? >GL-NOW-LIT? IN? TH-BOAT,RM-THAMES-ONE \?CCL3 CRLF CRLF PRINTI "As you proceed you find yourself among the flotilla of warships that have come for the celebration of the Jubilee. You quickly decide that it's too dangerous here so you turn back and head downstream." JUMP ?CND1 ?CCL3: IN? TH-BOAT,RM-THAMES-TWO \?CCL5 ZERO? GL-NOW-LIT? /?CND6 PRINTI "To the north you see the Embankment." ?CND6: MOVE TH-BOAT,RM-THAMES-ONE JUMP ?CND1 ?CCL5: IN? TH-BOAT,RM-THAMES-THREE \?CCL9 MOVE TH-BOAT,RM-THAMES-TWO JUMP ?CND1 ?CCL9: IN? TH-BOAT,RM-THAMES-FOUR \?CCL11 ZERO? GL-NOW-LIT? /?CND12 PRINTI "You pass under the London Bridge." ?CND12: MOVE TH-BOAT,RM-THAMES-THREE JUMP ?CND1 ?CCL11: IN? TH-BOAT,RM-THAMES-FIVE \?CND1 ZERO? GL-NOW-LIT? /?CND15 PRINTI "Upstream, you see the London Bridge, to the north you see the Traitors Gate." ?CND15: MOVE TH-BOAT,RM-THAMES-FOUR ?CND1: CRLF LOC TH-BOAT >GL-PLACE-CUR RTRUE .FUNCT RT-THAMES-TIDE CALL RT-CLOCK-CMP,8,32,0,18 EQUAL? STACK,1 /TRUE CALL RT-CLOCK-CMP,8,48,0,18 EQUAL? STACK,1 /FALSE CALL RT-CLOCK-CMP,14,35,0,18 EQUAL? STACK,1 \?CCL7 RETURN 3 ?CCL7: CALL RT-CLOCK-CMP,14,51,0,18 EQUAL? STACK,1 \?CCL9 RETURN 2 ?CCL9: CALL RT-CLOCK-CMP,20,38,0,18 EQUAL? STACK,1 /TRUE CALL RT-CLOCK-CMP,20,54,0,18 EQUAL? STACK,1 /FALSE CALL RT-CLOCK-CMP,2,41,0,19 EQUAL? STACK,1 \?CCL15 RETURN 3 ?CCL15: CALL RT-CLOCK-CMP,2,57,0,19 EQUAL? STACK,1 \?CCL17 RETURN 2 ?CCL17: CALL RT-CLOCK-CMP,8,44,0,19 EQUAL? STACK,1 /TRUE CALL RT-CLOCK-CMP,9,0,0,19 EQUAL? STACK,1 /FALSE CALL RT-CLOCK-CMP,14,47,0,19 EQUAL? STACK,1 \?CCL23 RETURN 3 ?CCL23: CALL RT-CLOCK-CMP,15,3,0,19 EQUAL? STACK,1 \?CCL25 RETURN 2 ?CCL25: CALL RT-CLOCK-CMP,20,50,0,19 EQUAL? STACK,1 /TRUE CALL RT-CLOCK-CMP,21,6,0,19 EQUAL? STACK,1 /FALSE CALL RT-CLOCK-CMP,2,53,0,20 EQUAL? STACK,1 \?CCL31 RETURN 3 ?CCL31: CALL RT-CLOCK-CMP,3,9,0,20 EQUAL? STACK,1 \?CCL33 RETURN 2 ?CCL33: CALL RT-CLOCK-CMP,8,56,0,20 EQUAL? STACK,1 /TRUE CALL RT-CLOCK-CMP,9,12,0,20 EQUAL? STACK,1 /FALSE RETURN 3 .FUNCT RT-TOWER-PASSWORD,WORD-NUM,PASSWORD SET 'PASSWORD,PASSWORD-ID ZERO? PASSWORD /?CTR2 EQUAL? GL-PLACE-CUR,RM-BYWARD-TOWER /?CCL3 ?CTR2: PRINTR "Wasn't she one of the six wives of Henry VIII?" ?CCL3: EQUAL? GL-PLACE-PRV,RM-OUTER-WARD \?CCL7 PRINTR """I am sorry, but I have strict orders to allow absolutely no one to leave the Tower, whether or not he knows the password. The Prime Minister himself could not get out of here before Monday morning." ?CCL7: EQUAL? WORD-NUM,PASSWORD /?CCL9 PRINTR """I am sorry but that password is no longer valid.""" ?CCL9: PRINTI "The guard steps aside as you walk in." CRLF CRLF ICALL2 RT-GOTO,RM-OUTER-WARD ICALL2 RT-UPDATE-SCORE,3 SET 'PASSWORD-ID,9 SET 'ALLOW-IN-TOWER,TRUE-VALUE RTRUE .FUNCT V-BOLEYN CALL2 RT-TOWER-PASSWORD,1 RSTACK .FUNCT V-CLEVES CALL2 RT-TOWER-PASSWORD,2 RSTACK .FUNCT V-HOWARD CALL2 RT-TOWER-PASSWORD,3 RSTACK .FUNCT V-PARR CALL2 RT-TOWER-PASSWORD,4 RSTACK .FUNCT V-ARAGON CALL2 RT-TOWER-PASSWORD,5 RSTACK .FUNCT V-SEYMOUR CALL2 RT-TOWER-PASSWORD,6 RSTACK .FUNCT RT-I-OPEN-MUSEUM-DOOR CALL RT-DO-CLOCK-SET,GL-TIME-PARM,10,0,0 ICALL RT-ALARM-SET-REL,RT-I-CLOSE-MUSEUM-DOOR,STACK FSET LG-BRITISH-MUSEUM-DOOR,FL-OPENED EQUAL? GL-PLACE-CUR,RM-GREAT-RUSSELL-ST \FALSE CRLF PRINTR "A guard opens the door and then disappears inside the museum." .FUNCT RT-I-CLOSE-MUSEUM-DOOR CALL RT-DO-CLOCK-SET,GL-TIME-PARM,14,0,0 ICALL RT-ALARM-SET-REL,RT-I-OPEN-MUSEUM-DOOR,STACK FCLEAR LG-BRITISH-MUSEUM-DOOR,FL-OPENED EQUAL? GL-PLACE-CUR,RM-GREAT-RUSSELL-ST \?CCL3 CRLF PRINTR "The guard says goodnight and closes the door." ?CCL3: EQUAL? GL-PLACE-CUR,RM-MANUSCRIPT-ROOM \?CCL5 IN? CH-LIBRARIAN,RM-MANUSCRIPT-ROOM \?CCL5 CRLF PRINTI "The librarian looks at his pocket-watch and exclaims, ""Goodness! It's closing time already! I really have enjoyed this chat, but I'm afraid you'll have to let me go. Why don't I see you out?""" CRLF CRLF PRINTI "He escorts you to the front door, discoursing all the while on the evolution of the use of mud by the Hittites. He waves goodbye as he closes the door behind you." CRLF CRLF FSET CH-LIBRARIAN,FL-ASLEEP ICALL2 RT-GOTO,RM-GREAT-RUSSELL-ST FCLEAR CH-LIBRARIAN,FL-ASLEEP RTRUE ?CCL5: EQUAL? GL-PLACE-CUR,RM-MANUSCRIPT-ROOM,RM-BRITISH-MUSEUM \FALSE CRLF PRINTI "A guard comes up to you and says, ""I'm sorry sir, its closing time. I have to lock up now."" He escorts you to the front door, and then closes it behind you as you leave." CRLF CRLF CALL2 RT-GOTO,RM-GREAT-RUSSELL-ST RSTACK .FUNCT RT-INDENT-PRINT LESS? GL-ALLSCREEN,75 /FALSE PRINTI " " RTRUE .FUNCT RT-WRAP-PRINT LESS? GL-ALLSCREEN,75 \?CCL3 CRLF PRINTI " " RTRUE ?CCL3: PRINTC 32 RTRUE .ENDI