sherlock/puzzles.zap
historicalsource d327e7626d Release Version
2019-04-16 09:16:28 -04:00

1801 lines
54 KiB
Plaintext

.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