-
Notifications
You must be signed in to change notification settings - Fork 14
/
tower.zap
1309 lines (1148 loc) · 33.3 KB
/
tower.zap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
.FUNCT TELL-IN-BROCHURE
PRINTI "[This is described in the "
PRINTD BROCHURE
PRINTR ".]"
.FUNCT BROCHURE-PSEUDO
EQUAL? PRSA,V?EXAMINE \?CCL3
CALL TELL-IN-BROCHURE
RSTACK
?CCL3: CALL RANDOM-PSEUDO
RSTACK
.FUNCT MEMENTO-F
EQUAL? PRSA,V?TAKE \?CCL3
PRINTR "But that would spoil the display!"
?CCL3: CALL BROCHURE-PSEUDO
RSTACK
.FUNCT OLD-GREAT-HALL-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTR "Your footfalls echo across the ancient stone floor."
?CCL3: EQUAL? RARG,P?WEST,P?UP \?CCL7
PRINT STAIRS-UP-RIGHT
RTRUE
?CCL7: ZERO? RARG \FALSE
CALL NOUN-USED?,W?DOOR
ZERO? STACK /FALSE
EQUAL? PRSA,V?UNLOCK \?CCL16
EQUAL? HERE,OLD-GREAT-HALL \?CCL16
CALL OKAY,PRSO,STR?68
RSTACK
?CCL16: EQUAL? PRSA,V?EXAMINE \FALSE
CALL CHECK-DOOR,PRSO
RSTACK
.FUNCT JUNCTION-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The two halves of "
PRINTD CASTLE
PRINTR " meet here, as the past meets the present."
?CCL3: EQUAL? RARG,P?NORTH,P?DOWN \FALSE
PRINT STAIRS-DOWN-LEFT
RTRUE
.FUNCT BASEMENT-ENTER
ZERO? BRICKS-DOWN /?CCL3
RETURN CRYPT
?CCL3: RETURN DUNGEON
.FUNCT BASEMENT-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The "
PRINTD BASEMENT
PRINTI " of the tower keep still holds traces of the medieval past -- such as an "
PRINTD WELL
PRINTI ". The "
PRINTD BASEMENT
PRINTI " now stores both Lionel's expedition gear and the castle wine cellar"
EQUAL? VARIATION,PAINTER-C \?PRG10
PRINTI " (a rack full of wine bottles)"
?PRG10: PRINTI ".
The brick walls are damp and mossy"
EQUAL? VARIATION,FRIEND-C \?PRG18
FSET? CLUE-4,TOUCHBIT \?PRG18
PRINTI ", and some bricks look loose"
?PRG18: PRINTR ". A stairway lies north, and doors lead east and west."
?CCL3: EQUAL? RARG,P?NORTH,P?UP \FALSE
PRINT STAIRS-UP-RIGHT
RTRUE
.FUNCT WINE-RACK-F,X
FCLEAR WINE-RACK,NDESCBIT
EQUAL? PRSA,V?TAKE \?CCL3
IN? BOTTLE,WINE-RACK \FALSE
CALL NOUN-USED?,W?WINE
ZERO? STACK /FALSE
CALL PERFORM,PRSA,BOTTLE
RTRUE
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \FALSE
CALL TELL-AS-WELL-AS,WINE-RACK,STR?254
RTRUE
.FUNCT BOTTLE-F
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CTR2
EQUAL? PRSA,V?READ,V?LOOK-INSIDE,V?EXAMINE \?CCL3
?CTR2: CALL NOT-HOLDING?,BOTTLE
ZERO? STACK \TRUE
PRINTI "The label says it's wine from a Cornish winery called Our Own Vintage."
EQUAL? VARIATION,PAINTER-C \?CND10
PRINTR " Someone has drawn a star in red ink over the word ""OUR."""
?CND10: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?SHAKE,V?OPEN,V?MUNG /?CTR14
EQUAL? PRSA,V?EMPTY,V?EAT,V?DRINK \?CCL15
?CTR14: EQUAL? PRSO,BOTTLE \FALSE
PRINTR "You instantly realize that you don't need any wine -- or any more, as the case may be."
?CCL15: EQUAL? PRSA,V?FILL /?CTR23
EQUAL? PRSA,V?PUT-IN \?CCL24
EQUAL? PRSI,BOTTLE \?CCL24
?CTR23: CALL TOO-BAD-BUT,BOTTLE,STR?61
RSTACK
?CCL24: CALL ATTACK-VERB?
ZERO? STACK /FALSE
CALL NO-VIOLENCE?,BOTTLE
RTRUE
.FUNCT BRICKS-D,X
PRINTI "There's a "
PRINTD BRICKS
ZERO? BRICKS-DOWN /?PRG7
PRINTC 32
CALL GROUND-DESC
PRINT STACK
PRINTI ", and a hole"
?PRG7: PRINTR " in the wall."
.FUNCT BRICKS-F
EQUAL? PRSA,V?SEARCH /?CTR2
EQUAL? PRSA,V?RUB,V?KNOCK,V?EXAMINE \?CCL3
?CTR2: FCLEAR BRICKS,NDESCBIT
FSET BRICKS,SEENBIT
CALL BRICKS-D
RSTACK
?CCL3: EQUAL? PRSA,V?TURN,V?TAKE /?CCL8
EQUAL? PRSA,V?SLAP,V?PUSH,V?OPEN /?CCL8
EQUAL? PRSA,V?MUNG,V?MOVE-DIR,V?MOVE \FALSE
?CCL8: EQUAL? VARIATION,FRIEND-C \FALSE
ZERO? BRICKS-DOWN \FALSE
FCLEAR BRICKS,NDESCBIT
SET 'BRICKS-DOWN,TRUE-VALUE
FCLEAR HOLE-IN-WALL,INVISIBLE
PRINTI "You manage to pull them down into a pile "
CALL GROUND-DESC
PRINT STACK
PRINTR ", making a large hole in the wall."
.FUNCT HOLE-IN-WALL-F,RM
EQUAL? PRSA,V?CLOSE \?CCL3
CALL YOU-CANT
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE,V?EXAMINE \?CCL5
EQUAL? HERE,BASEMENT \?CCL8
PRINTR "Through the dusty air, you can see only dark inside. But the hole looks big enough to climb through."
?CCL8: CALL ROOM-PEEK,BASEMENT,TRUE-VALUE
RTRUE
?CCL5: EQUAL? PRSA,V?THROUGH,V?DISEMBARK,V?BOARD \FALSE
EQUAL? HERE,BASEMENT \?CCL15
SET 'RM,CRYPT
JUMP ?CND13
?CCL15: SET 'RM,BASEMENT
?CND13: CALL GOTO,RM
ZERO? STACK /TRUE
CALL OKAY
RTRUE
.FUNCT WELL-F
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?PRG7
EQUAL? PRSA,V?LOOK-INSIDE,V?LOOK-DOWN,V?EXAMINE \?CCL3
?PRG7: PRINTR "It's deep and dark."
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL10
CALL YOU-CANT
RSTACK
?CCL10: EQUAL? PRSA,V?THROUGH,V?CLIMB-DOWN,V?BOARD \?CCL12
PRINTI "After a moment's thought, you remember "
PRINTD LOVER
PRINTR "'s fate and decide that's much too dangerous."
?CCL12: EQUAL? PRSA,V?PUT-IN,V?PUT \FALSE
EQUAL? PRSI,WELL \FALSE
PRINTI "As you watch,"
CALL PRINTT,PRSO
PRINTI " disappears into the dark well shaft. After a second or two, you hear a remote splash.
"
CALL REMOVE-CAREFULLY,PRSO
RTRUE
.FUNCT CRYPT-F,RARG=0
EQUAL? RARG,M-LOOK \FALSE
PRINTI "This space at the bottom of the tower is so gloomy and musty that you should be glad there's an exit to the "
PRINTD BASEMENT
PRINTR "."
.FUNCT SKELETON-F
EQUAL? PRSA,V?SEARCH-FOR /?CCL3
EQUAL? PRSA,V?SEARCH,V?LOOK-UNDER,V?EXAMINE \FALSE
?CCL3: IN? NECKLACE,SKELETON \?PRG12
FSET? NECKLACE,SECRETBIT \?PRG12
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?EXAMINE \?PRG12
CALL DISCOVER,NECKLACE,SKELETON
RTRUE
?PRG12: PRINTR "Just old bones moldering in the dark."
.FUNCT DUNGEON-F,ARG=0
EQUAL? ARG,M-LOOK \FALSE
PRINTI "In the northwest corner is an ancient door called a """
PRINTD PRIEST-DOOR
PRINTI "."" Another exit is east to the "
PRINTD BASEMENT
PRINTR "."
.FUNCT IRON-MAIDEN-F,X
EQUAL? PRSA,V?OPEN,V?CLOSE \?CCL3
PRINTR "It has no door!"
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?EXAMINE \?CCL7
PRINTR "The inner surface of this medieval torture device is covered with spikes. The space is just big enough to hold an unfortunate victim."
?CCL7: EQUAL? PRSA,V?PUT-IN \?CCL11
CALL WONT-HELP
RSTACK
?CCL11: EQUAL? PRSA,V?RUB,V?KISS \?CCL13
PRINTR "Ouch!"
?CCL13: EQUAL? PRSA,V?THROUGH,V?CLIMB-ON,V?BOARD \FALSE
EQUAL? WINNER,PLAYER /?PRG22
PRINTR """No thank you!"""
?PRG22: PRINTI "As you step on the bottom of the "
PRINTD IRON-MAIDEN
PRINTI ", it "
EQUAL? HERE,DUNGEON \?CCL26
SET 'X,TOMB
PRINTI "sinks downward into"
JUMP ?PRG31
?CCL26: SET 'X,DUNGEON
PRINTI "rises again to"
?PRG31: CALL PRINTT,X
PRINTI ". You step out again.
"
MOVE IRON-MAIDEN,X
CALL GOTO,X
RTRUE
.FUNCT COFFIN-F
EQUAL? PRSA,V?SIT,V?LIE,V?BOARD \?CCL3
FSET? COFFIN,OPENBIT /FALSE
CALL FIRST-YOU,STR?66,COFFIN
RFALSE
?CCL3: EQUAL? PRSA,V?CLOSE \?CCL7
IN? PLAYER,COFFIN \FALSE
PRINTR "The air is stifling, so you open it again."
?CCL7: EQUAL? PRSA,V?SEARCH-FOR /?CCL14
EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \FALSE
?CCL14: IN? CLUE-4,COFFIN \?CCL19
FSET? CLUE-4,SECRETBIT \?CCL19
FSET? COFFIN,OPENBIT /?CND22
CALL FIRST-YOU,STR?66,COFFIN
?CND22: CALL DISCOVER,CLUE-4,COFFIN
RTRUE
?CCL19: IN? PLAYER,COFFIN \FALSE
PRINTI "All you can see is "
PRINTD PLAYER
PRINTR "."
.FUNCT LOVER-PATH-LOSE-N
CALL LOVER-PATH-LOSE,P?NORTH
RFALSE
.FUNCT LOVER-PATH-LOSE,X
CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?256
PRINTI " to follow the path, but it's too tricky in the dim light"
PRINTI ", so"
CALL HE-SHE-IT,WINNER,0,STR?161
PRINTR " back."
.FUNCT LOVER-PATH-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "This is an area behind shrubbery by a steep cliff overlooking the sea. In the dim light, you can barely see a path leading north along the cliff. "
CALL LEVER-AND-DOOR,PRIEST-DOOR,P?OUT
RTRUE
?CCL3: ZERO? RARG \FALSE
EQUAL? PRSA,V?FOLLOW \FALSE
CALL DO-WALK,P?NORTH
RTRUE
.FUNCT CORR-2-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The "
PRINTD CORR-2
PRINTI " is lined with doors. To the west, a heavy oak door with ancient wrought-iron fittings b"
FSET? CREST,NDESCBIT \?PRG11
PRINTI "ears"
JUMP ?PRG13
?PRG11: PRINTI "ore"
?PRG13: PRINTI " a bronze bas-relief of the "
PRINT TRESYLLIAN
PRINTC 32
PRINTD CREST
PRINTI ", marking this as the "
PRINTD JACK-ROOM
PRINTR " of the castle. Other doors lead to the northwest, east, northeast, and southeast. Stairways go up at the south end and down at the north end."
?CCL3: EQUAL? RARG,P?NORTH,P?DOWN,P?OUT \?CCL16
PRINT STAIRS-DOWN-LEFT
RTRUE
?CCL16: EQUAL? RARG,P?SOUTH,P?UP \FALSE
PRINT STAIRS-UP-RIGHT
RTRUE
.FUNCT CREST-F
EQUAL? PRSA,V?SEARCH,V?READ,V?EXAMINE \?CCL3
PRINTI "The "
PRINTD CREST
PRINTI " features a wyvern with wings raised."
EQUAL? VARIATION,LORD-C \?CND6
PRINTR " It seems to be loosely mounted on the door."
?CND6: CRLF
RTRUE
?CCL3: EQUAL? VARIATION,LORD-C \FALSE
EQUAL? PRSA,V?TAKE-OFF /?PRD16
EQUAL? PRSA,V?TAKE,V?REMOVE,V?MOVE-DIR /?PRD16
EQUAL? PRSA,V?MOVE,V?LOOK-UNDER,V?LOOK-BEHIND \?CCL14
?PRD16: IN? JACK-TAPE,HERE /?CCL14
MOVE JACK-TAPE,HERE
FSET CREST,TAKEBIT
FCLEAR CREST,NDESCBIT
PRINTI "By removing the "
PRINTD CREST
PRINTI " from its place, you can see that a small "
PRINTD JACK-TAPE
PRINTR " is built into the door."
?CCL14: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSI,JACK-TAPE,JACK-ROOM \FALSE
IN? JACK-TAPE,HERE \FALSE
MOVE JACK-TAPE,LOCAL-GLOBALS
FSET CREST,NDESCBIT
PRINTI "The "
PRINTD CREST
PRINTI " fits neatly over the "
PRINTD JACK-TAPE
PRINTR "."
.FUNCT TV-PSEUDO
EQUAL? PRSA,V?LOOK-INSIDE,V?LAMP-ON,V?EXAMINE \?CCL3
PRINTR "It's boring compared to this mystery."
?CCL3: EQUAL? PRSA,V?LAMP-OFF \FALSE
CALL ALREADY,PRSO,STR?65
RSTACK
.FUNCT JACK-ROOM-F,RARG=0
EQUAL? RARG,M-BEG,M-EXIT \?CCL3
CALL SECRET-CHECK,RARG
ZERO? STACK \TRUE
RFALSE
?CCL3: EQUAL? RARG,P?SW,P?IN,P?DOWN \?CCL8
CALL ENTER-PASSAGE
RTRUE
?CCL8: EQUAL? RARG,M-LOOK \?CCL10
PRINTI "The "
PRINTD JACK-ROOM
PRINTI " has a canopied four-poster bed on a circular dais, a marble-topped console and mirror, two oversized "
PRINTD WARDROBE
PRINTI "s, cheval glass, tallboy, commode, overstuffed chair and color TV."
CALL OPEN-DOOR?,SECRET-JACK-DOOR
CRLF
RTRUE
?CCL10: ZERO? RARG \FALSE
EQUAL? PRSA,V?SEARCH,V?READ,V?EXAMINE \FALSE
EQUAL? HERE,CORR-2 \FALSE
FSET? CREST,NDESCBIT \FALSE
CALL PERFORM,PRSA,CREST,PRSI
RTRUE
.FUNCT NOT-FOUND,OBJ,WT=0
EQUAL? PRSA,V?WALK-TO \?CND1
SET 'WT,TRUE-VALUE
?CND1: ZERO? WT \?PRG8
SET 'CLOCK-WAIT,TRUE-VALUE
PRINTI "(Y"
JUMP ?PRG10
?PRG8: PRINTI "But y"
?PRG10: PRINTI "ou haven't found"
CALL HIM-HER-IT,OBJ
PRINTI " yet!"
ZERO? WT \?CND12
PRINTC 41
?CND12: CRLF
RTRUE
.FUNCT FREE-VERB?
CALL GAME-VERB?
ZERO? STACK \TRUE
CALL DIVESTMENT?,PRSO
ZERO? STACK \TRUE
EQUAL? PRSA,V?YES,V?YELL,V?WAIT-UNTIL /TRUE
EQUAL? PRSA,V?WAIT-FOR,V?SORRY,V?SLAP /TRUE
EQUAL? PRSA,V?SIT,V?SSHOW,V?SHOW /TRUE
EQUAL? PRSA,V?SHOOT,V?READ,V?PUSH /TRUE
EQUAL? PRSA,V?NO,V?LOOK-UP,V?LOOK-THROUGH /TRUE
EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-ON,V?LOOK-INSIDE /TRUE
EQUAL? PRSA,V?LOOK-DOWN,V?LOOK,V?LIE /TRUE
EQUAL? PRSA,V?KILL,V?INVENTORY,V?HELLO /TRUE
EQUAL? PRSA,V?EXAMINE,V?CHASTISE,V?ATTACK /TRUE
RFALSE
.FUNCT SECRET-CHECK,RARG=0,OBJ=0,PER=0,RM,GT
EQUAL? DISCOVERED-HERE,HERE \?CND1
CALL ZMEMQ,HERE,CHAR-ROOM-TABLE
SUB STACK,1
GET CHARACTER-TABLE,STACK >PER
FSET? PER,MUNGBIT /?CCL4
EQUAL? PER,CONFESSED /?CCL4
CALL META-LOC,PER
EQUAL? STACK,HERE /?CND1
?CCL4: SET 'PER,FALSE-VALUE
?CND1: EQUAL? RARG,M-BEG \?CCL10
EQUAL? PRSA,V?WALK /FALSE
EQUAL? PRSA,V?THROUGH,V?FOLLOW,V?WALK-TO \?CCL13
CALL META-LOC,PRSO
EQUAL? HERE,STACK \FALSE
?CCL13: ZERO? PER /FALSE
GETP PER,P?LINE
ZERO? STACK \?PRD22
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH \FALSE
?PRD22: EQUAL? PER,PRSO,PRSI /FALSE
CALL FREE-VERB?
ZERO? STACK \FALSE
CALL START-SENTENCE,PER
PRINTI " prevents"
CALL HIM-HER-IT,WINNER,FALSE-VALUE,TRUE-VALUE
PRINTR " action!"
?CCL10: EQUAL? RARG,M-EXIT \FALSE
ZERO? PER /FALSE
CALL GENERIC-CLOSET,0 >RM
GETP PER,P?CHARACTER
GET GOAL-TABLES,STACK >GT
EQUAL? PRSA,V?WALK \?CCL34
SET 'OBJ,PRSO
JUMP ?CND32
?CCL34: EQUAL? PRSA,V?THROUGH,V?FOLLOW,V?WALK-TO \?CND32
CALL META-LOC,PRSO >OBJ
EQUAL? OBJ,HERE /FALSE
EQUAL? OBJ,LOCAL-GLOBALS \?CCL38
FSET? PRSO,DOORBIT \FALSE
?CCL38: EQUAL? PRSA,V?THROUGH \?CCL44
EQUAL? OBJ,RM,LOCAL-GLOBALS \?CND45
GET GT,GOAL-F
CALL ESTABLISH-GOAL,PER,STACK
SET 'DISCOVERED-HERE,FALSE-VALUE
RFALSE
?CND45: SET 'OBJ,P?OUT
JUMP ?CND32
?CCL44: CALL DIR-FROM,HERE,OBJ >OBJ
?CND32: CALL DIR-EQV?,HERE,OBJ,P?OUT
ZERO? STACK /?CND47
GETP PER,P?LINE
ZERO? STACK /?CND47
CALL HE-SHE-IT,PER,TRUE-VALUE
PRINTI " blocks"
CALL HIM-HER-IT,WINNER,FALSE-VALUE,TRUE-VALUE
PRINTR " exit!"
?CND47: EQUAL? PER,GHOST-NEW \?CND53
MOVE PER,RM
?CND53: GET GT,GOAL-F
CALL ESTABLISH-GOAL,PER,STACK
SET 'DISCOVERED-HERE,FALSE-VALUE
RFALSE
.FUNCT OPEN-SECRET,ACT,OBJ,DR
PRINTI "As"
CALL HE-SHE-IT,WINNER,FALSE-VALUE,ACT
ZERO? ACT \?CND3
PRINTC 32
CALL VERB-PRINT
?CND3: GRTR? OBJ,0 \?CCL9
LESS? OBJ,256 \?CCL9
CALL PRINTT,OBJ
FCLEAR OBJ,SECRETBIT
JUMP ?PRG14
?CCL9: PRINT OBJ
?PRG14: PRINTC 44
FSET? DR,TOUCHBIT /?PRG37
FSET DR,TOUCHBIT
CALL QUEUE,I-FOUND-PASSAGES,1
CALL GENERIC-CLOSET,0 >ACT
ZERO? ACT /?CCL22
PUT FOUND-PASSAGES,PLAYER-C,ACT
JUMP ?CND20
?CCL22: PUT FOUND-PASSAGES,PLAYER-C,TRUE-VALUE
?CND20: FSET PASSAGE,SEENBIT
EQUAL? OBJ,HISTORY-BOOK \?PRG28
FSET HISTORY-BOOK,TAKEBIT
FCLEAR HISTORY-BOOK,TRYTAKEBIT
CALL PRINTT,BOOKCASE
JUMP ?CND16
?PRG28: PRINTI " a section of the "
EQUAL? OBJ,WYVERN \?PRG35
PRINTD WYVERN
JUMP ?CND16
?PRG35: PRINTI "wall"
JUMP ?CND16
?PRG37: CALL PRINTT,DR
?CND16: CALL OPEN-CLOSE,DR,FALSE-VALUE
RSTACK
.FUNCT TELESCOPE-F
EQUAL? PRSA,V?LOOK-THROUGH,V?LOOK-INSIDE \?CCL3
PRINTR "All you can see is the wall."
?CCL3: EQUAL? PRSA,V?TURN,V?TAKE,V?PUSH /?CCL7
EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?AIM \FALSE
?CCL7: CALL OPEN-SECRET,STR?259,TELESCOPE,SECRET-JACK-DOOR
RSTACK
.FUNCT LIBRARY-F,RARG=0
EQUAL? RARG,M-BEG \?CCL3
CALL SECRET-CHECK,RARG
RSTACK
?CCL3: EQUAL? RARG,P?NE,P?IN \?CCL5
CALL ENTER-PASSAGE
RTRUE
?CCL5: EQUAL? RARG,M-LOOK \FALSE
PRINTI "Dusty bookcases tower all around you. There is a table with reading lamp and chair, and an armchair near the "
PRINTD FIREPLACE
PRINTC 46
CALL OPEN-DOOR?,SECRET-LIBRARY-DOOR
CRLF
RTRUE
.FUNCT BOOKS-GLOBAL-F,X
EQUAL? PRSA,V?TAKE /?PRG6
EQUAL? PRSA,V?READ,V?OPEN,V?LOOK-INSIDE \?CCL3
?PRG6: PRINTR "You pick one at random. It's frightfully obscure, so you put it back."
?CCL3: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?EXAMINE \FALSE
PRINTI "Some of the books date as far back as the 16th century. Although some are fiction, most of the books are scientific, covered with vellum or leather. Some are in foreign languages, and many have pictures of skulls or spirits."
CRLF
CALL FIND-FLAG,BOOKCASE,SECRETBIT >X
ZERO? X /?CCL14
CALL DISCOVER,X
RTRUE
?CCL14: FIRST? BOOKCASE >X \?CCL16
FSET X,TAKEBIT
FCLEAR X,NDESCBIT
CALL START-SENTENCE,X
PRINTR " catches your eye."
?CCL16: IN? JOURNAL,TABLE-LIBRARY \TRUE
FCLEAR JOURNAL,SECRETBIT
PRINTI "There are many books of adventure and exploration, as well as the bound volumes of "
PRINTD COUSIN
PRINTR "'s expedition journals."
.FUNCT BOOKCASE-F,X
EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \?CCL3
CALL PERFORM,V?EXAMINE,BOOKS-GLOBAL
RTRUE
?CCL3: EQUAL? PRSA,V?TURN /?CCL5
EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \FALSE
?CCL5: FSET? SECRET-LIBRARY-DOOR,OPENBIT \FALSE
CALL OPEN-SECRET,STR?261,BOOKCASE,SECRET-LIBRARY-DOOR
RTRUE
.FUNCT HISTORY-BOOK-F
EQUAL? PRSA,V?MOVE-DIR,V?MOVE /?CTR2
EQUAL? PRSA,V?PUT-IN \?CCL3
EQUAL? PRSI,BOOKCASE \?CCL3
MOVE HISTORY-BOOK,BOOKCASE
?CTR2: CALL OPEN-SECRET,STR?261,HISTORY-BOOK,SECRET-LIBRARY-DOOR
RTRUE
?CCL3: EQUAL? PRSA,V?TAKE,V?READ /?CCL10
EQUAL? PRSA,V?LOOK-UP,V?OPEN,V?EXAMINE \FALSE
?CCL10: IN? HISTORY-BOOK,BOOKCASE \?CCL15
MOVE HISTORY-BOOK,WINNER
CALL OPEN-SECRET,STR?261,HISTORY-BOOK,SECRET-LIBRARY-DOOR
RTRUE
?CCL15: EQUAL? PRSA,V?TAKE /FALSE
CALL NOT-HOLDING?,HISTORY-BOOK
ZERO? STACK \TRUE
PRINTI "This book contains a detailed history of "
PRINTD CASTLE
PRINTI " and the "
PRINT TRESYLLIAN
PRINTI " family, including the bitter fate of Lady Arabella "
PRINT TRESYLLIAN
PRINTI ", who was accused of infidelity and, by her husband's command, was buried alive in the wall of the tower keep. The book also describes the layout of the tower and residential wing, including the various rooms and "
PRINTD PASSAGE
PRINTR "s."
.FUNCT JOURNAL-F
EQUAL? PRSA,V?READ /?CCL3
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
?CCL3: CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
PRINTI "This is a journal of Lionel's "
EQUAL? VARIATION,LORD-C \?CCL12
PRINTI "African"
JUMP ?PRG21
?CCL12: EQUAL? VARIATION,DOCTOR-C \?PRG19
PRINTI "Amazon"
JUMP ?PRG21
?PRG19: PRINTI "South Pacific"
?PRG21: PRINTI " expedition. As you leaf through it, "
EQUAL? VARIATION,PAINTER-C \?PRG27
PRINTR "no clues appear."
?PRG27: PRINTI "you find a description of a treasure: "
EQUAL? VARIATION,LORD-C \?CCL31
CALL DESCRIBE-WAR-CLUB
PRINTR "It also served as his royal sceptre."
?CCL31: EQUAL? VARIATION,FRIEND-C \?PRG38
PRINTI "a "
PRINTD NECKLACE
PRINTR "."
?PRG38: PRINTD MOONMIST
PRINTI ", a drug taken from a rare Amazon plant called the Moonflower. The natives use it to tip their"
PRINT POISON-DART
PRINTI "s, but it could also be a valuable medicine. They insist that the plant should be gathered only when the "
PRINTD MOON
PRINTI " is misted over."
CRLF
IN? MOONMIST,INKWELL \TRUE
FSET? INKWELL,TOUCHBIT \TRUE
FCLEAR MOONMIST,SECRETBIT
RTRUE
.FUNCT OFFICE-F,ARG=0
EQUAL? ARG,M-LOOK \FALSE
PRINTI "This small office gets little light and less air. In one corner is a computer. By the "
PRINTD FIREPLACE
PRINTI ", there is a tall "
PRINTD DESK
PRINTI " with"
FIRST? DESK \?PRG10
CALL PRINT-CONTENTS,DESK
PRINTI ", and"
?PRG10: PRINTR " a tall stool."
.FUNCT INKWELL-F
IN? MOONMIST,INKWELL \FALSE
EQUAL? PRSA,V?EMPTY \?CCL6
FCLEAR MOONMIST,SECRETBIT
CALL PERFORM,V?POUR,MOONMIST,PRSI
RTRUE
?CCL6: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CCL8
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
?CCL8: FSET? MOONMIST,SECRETBIT \FALSE
CALL DISCOVER,MOONMIST
RTRUE
.FUNCT COMPUTER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTR "It looks just like the computer you're using now!"
?CCL3: EQUAL? PRSA,V?LAMP-OFF \?CCL7
CALL OKAY,COMPUTER,STR?65
RTRUE
?CCL7: EQUAL? PRSA,V?USE,V?PLAY,V?LAMP-ON \FALSE
CALL HE-SHE-IT,COMPUTER,TRUE-VALUE
PRINTI " starts running an interactive mystery from Infocom called """
EQUAL? VARIATION,LORD-C \?CCL15
PRINTI "DEADLINE (R"
JUMP ?PRG28
?CCL15: EQUAL? VARIATION,PAINTER-C \?CCL19
PRINTI "THE WITNESS (R"
JUMP ?PRG28
?CCL19: EQUAL? VARIATION,FRIEND-C \?PRG26
PRINTI "SUSPECT (TM"
JUMP ?PRG28
?PRG26: PRINTI "BALLYHOO (TM"
?PRG28: PRINTI "),"" but you decide that "
PRINTD MOONMIST
PRINTR " (TM) is easier, so you turn it off."
.FUNCT TAMARA-ROOM-F,RARG=0
EQUAL? RARG,M-BEG,M-EXIT \?CCL3
CALL SECRET-CHECK,RARG
RSTACK
?CCL3: EQUAL? RARG,P?SE,P?IN,P?DOWN \?CCL5
CALL ENTER-PASSAGE
RTRUE
?CCL5: EQUAL? RARG,M-LOOK \FALSE
PRINTI "The room is utterly feminine in its decoration, yet neater than you might expect for a young woman of "
PRINTD FRIEND
PRINTI "'s age. "
CALL DRESSING-TABLE-TAM
CALL OPEN-DOOR?,SECRET-TAMARA-DOOR
CRLF
RTRUE
.FUNCT DRESSING-TABLE-TAM
PRINTI "Even her "
PRINTD DRESSING-TABLE-LG
PRINTI " is in apple-pie order, with her hand mirror, comb, brush, makeup kit and "
PRINTD JEWELRY-CASE
PRINTI " all precisely placed on its gleaming surface."
RTRUE
.FUNCT TAMARA-BED-F,OBJ
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTD FRIEND
PRINTR " has a curtained four-poster bed on a circular dais. You notice that the knob on one bedpost looks loose."
?CCL3: EQUAL? PRSA,V?SEARCH,V?LOOK-UNDER \?CCL7
CALL FIND-FLAG,TAMARA-BED,NDESCBIT,PLAYER >OBJ
ZERO? OBJ /FALSE
CALL DISCOVER,OBJ
RSTACK
?CCL7: EQUAL? PRSA,V?PUT-UNDER \?CCL12
EQUAL? PRSI,TAMARA-BED \FALSE
FSET PRSO,NDESCBIT
MOVE PRSO,TAMARA-BED
CALL OKAY
RSTACK
?CCL12: EQUAL? PRSA,V?TURN,V?RUB /?CCL17
EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \FALSE
?CCL17: CALL OPEN-SECRET,STR?161,STR?162,SECRET-TAMARA-DOOR
RSTACK
.FUNCT JEWELRY-CASE-F
EQUAL? PRSA,V?TAKE \?CCL3
EQUAL? PRSO,JEWELRY-CASE \FALSE
CALL YOU-SHOULDNT
RTRUE
?CCL3: EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
CALL TELL-AS-WELL-AS,JEWELRY-CASE,STR?262
IN? EARRING,JEWELRY-CASE \TRUE
FSET? EARRING,NDESCBIT \TRUE
FCLEAR EARRING,NDESCBIT
FCLEAR EARRING,SECRETBIT
CALL THIS-IS-IT,EARRING
PRINTI "Almost the first thing you notice is a delicate "
PRINTD EARRING
PRINTR "."
.FUNCT EARRING-F
EQUAL? PRSA,V?PUT-IN /?PRD5
EQUAL? PRSA,V?PUT,V?HOLD-UP,V?COMPARE \FALSE
?PRD5: EQUAL? JEWEL,PRSO,PRSI \FALSE
FSET EARRING,LOCKED
PRINTI "The jewel fits the empty "
PRINTD EARRING
PRINTI " perfectly."
EQUAL? PRSA,V?PUT-IN,V?PUT \?CND10
PRINTI " You remove the jewel again."
?CND10: CRLF
ZERO? EVIDENCE-FOUND \TRUE
CALL CONGRATS
RTRUE
.FUNCT CORR-3-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The "
PRINTD CORR-3
PRINTR " has doors leading to the north, south, and southeast. Stairways go up at the east end and down at the west end."
?CCL3: EQUAL? RARG,P?WEST,P?DOWN,P?OUT \?CCL7
PRINT STAIRS-DOWN-LEFT
RTRUE
?CCL7: EQUAL? RARG,P?EAST,P?UP \FALSE
PRINT STAIRS-UP-RIGHT
RTRUE
.FUNCT CAGE-PSEUDO
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE \?CCL3
PRINTR "It's empty."
?CCL3: CALL RANDOM-PSEUDO
RSTACK
.FUNCT LUMBER-ROOM-F,RARG=0
EQUAL? RARG,M-BEG \?CCL3
CALL SECRET-CHECK,RARG
ZERO? STACK \TRUE
EQUAL? PRSA,V?LOOK-DOWN \FALSE
FSET? LUMBER-RING,TOUCHBIT \?CCL11
CALL PERFORM,V?LOOK-THROUGH,PEEPHOLE-2
RTRUE
?CCL11: FSET? LUMBER-CHEST,TOUCHBIT \FALSE
CALL PERFORM,V?MOVE,LUMBER-RING
RTRUE
?CCL3: EQUAL? RARG,M-ENTER \?CCL15
IN? PEEPHOLE-2,LUMBER-ROOM \FALSE
PUTP LUMBER-ROOM,P?CORRIDOR,4
RFALSE
?CCL15: EQUAL? RARG,M-EXIT \?CCL19
PUTP LUMBER-ROOM,P?CORRIDOR,0
RFALSE
?CCL19: EQUAL? RARG,M-LOOK \FALSE
PRINTI "This is lumber in the British sense, meaning useless stuff like old "
PRINTD MAGAZINE
PRINTI "s, an ornate bird cage, an "
PRINTD LUMBER-CHEST
PRINTR " from the 1700's, and a broken Victorian hobby horse."
.FUNCT LUMBER-CHEST-F
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE \?CCL3
CALL TOO-BAD-BUT,PRSO,STR?264
RSTACK
?CCL3: EQUAL? PRSA,V?TURN /?CCL5
EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \FALSE
?CCL5: IN? LUMBER-RING,LUMBER-ROOM /FALSE
MOVE LUMBER-RING,LUMBER-ROOM
PRINTI "You reveal"
CALL PRINTT,LUMBER-RING
PRINTR " in the stone floor."
.FUNCT LUMBER-RING-F,P
EQUAL? PRSA,V?TAKE,V?PUSH /?CTR2
EQUAL? PRSA,V?OPEN,V?MOVE-DIR,V?MOVE \?CCL3
?CTR2: IN? PEEPHOLE-2,LUMBER-ROOM \?CND6
CALL ALREADY,LUMBER-RING,STR?66
RTRUE
?CND6: MOVE PEEPHOLE-2,LUMBER-ROOM
PUTP LUMBER-ROOM,P?CORRIDOR,4
PRINTI "As you pull up on"
CALL PRINTT,LUMBER-RING
PRINTI ", you reveal"
CALL PRINTT,PEEPHOLE-2
PRINTI ", enabling you to peer directly downward at "
PRINTD TAMARA-ROOM
PRINTI " below.
"
CALL FIND-FLAG-HERE-NOT,PERSONBIT,MUNGBIT,PLAYER >P
ZERO? P /TRUE
CALL HE-SHE-IT,P,TRUE-VALUE
PRINTI " says, ""So that explains the ghostly face that "
EQUAL? P,FRIEND \?PRG19
PRINTC 73
JUMP ?PRG21
?PRG19: PRINTD FRIEND
?PRG21: PRINTR " saw peering down that night."""
?CCL3: EQUAL? PRSA,V?CLOSE \FALSE
IN? PEEPHOLE-2,LUMBER-ROOM /?CND25
CALL ALREADY,LUMBER-RING,STR?61
RTRUE
?CND25: MOVE PEEPHOLE-2,LOCAL-GLOBALS
PUTP LUMBER-ROOM,P?CORRIDOR,0
CALL OKAY,LUMBER-RING,STR?61
RTRUE
.FUNCT PEEPHOLE-2-F
EQUAL? PRSA,V?LOOK-THROUGH /?CTR2
EQUAL? PRSA,V?LOOK-OUTSIDE,V?LOOK-INSIDE,V?EXAMINE \?CCL3
?CTR2: CALL ROOM-PEEK,TAMARA-ROOM,TRUE-VALUE
RTRUE
?CCL3: EQUAL? PRSA,V?THROUGH \FALSE
CALL TOO-BAD-BUT,PEEPHOLE-2,STR?265
RTRUE
.FUNCT MAGAZINE-F
EQUAL? PRSA,V?READ /?CCL3
EQUAL? PRSA,V?OPEN,V?LOOK-INSIDE,V?EXAMINE \FALSE
?CCL3: CALL NOT-HOLDING?,PRSO
ZERO? STACK \TRUE
PRINTI "This is a"
EQUAL? VARIATION,PAINTER-C \?PRG15
PRINTR " copy of ""Reader's Digest"" for Sept. 1976. As you leaf through it, you find an article about the skull of Peking Man, which disappeared after the Pearl Harbor Attack, when it was shipped from China. Once it was mysteriously offered for sale for a million dollars, as reported in the New York Times."
?PRG15: PRINTR "n old copy of ""Punch,"" good for a laugh or two."
.FUNCT CHAPEL-F,RARG=0
EQUAL? RARG,M-LOOK \FALSE
PRINTI "A bare and austere yet poignantly atmospheric relic of the medieval past, the chapel contains an altar, pulpit, font, and family pews of elaborately carved oak. The most memorable feature is a splendid "
PRINTD STAINED-WINDOW
PRINTI ". "
GETP STAINED-WINDOW,P?TEXT
PRINT STACK
CRLF
RTRUE
.FUNCT STAINED-WINDOW-F
EQUAL? PRSA,V?SEARCH-FOR /?PRD5
EQUAL? PRSA,V?SEARCH,V?TAKE,V?EXAMINE \?CCL3
?PRD5: IN? CLUE-3,STAINED-WINDOW \?CCL3
FSET? CLUE-3,SECRETBIT \?CCL3
CALL DISCOVER,CLUE-3
RTRUE
?CCL3: EQUAL? PRSA,V?MUNG \FALSE
CALL YOU-SHOULDNT
RSTACK
.FUNCT BILLIARD-PSEUDO
EQUAL? PRSA,V?LOOK-ON \?CCL3
CALL WONT-HELP
RSTACK
?CCL3: EQUAL? PRSA,V?PLAY \FALSE
CALL HE-SHE-IT,WINNER,TRUE-VALUE,STR?267
PRINTR " the balls around for a minute before getting bored."
.FUNCT BUFFALO-HEAD-F
CALL NOUN-USED?,W?EYE
ZERO? STACK /FALSE
CALL ADJ-USED?,FALSE-VALUE
ZERO? STACK /FALSE
CALL VISIBLE?,GLASS-EYE
ZERO? STACK /FALSE
CALL DO-INSTEAD-OF,GLASS-EYE,BUFFALO-HEAD
RTRUE
.FUNCT RHINO-HEAD-F
EQUAL? PRSA,V?FIX,V?LOOK-INSIDE,V?OPEN /?CCL3
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?EXAMINE \FALSE
?CCL3: IN? CLUE-3,RHINO-HEAD \FALSE
FSET? CLUE-3,SECRETBIT \FALSE
FSET GLASS-EYE,TAKEBIT
FCLEAR GLASS-EYE,TRYTAKEBIT
FCLEAR GLASS-EYE,NDESCBIT
FSET GLASS-EYE,SEENBIT
PRINTI "There's something odd about this trophy. One of the "
PRINTD GLASS-EYE
PRINTR "s is backwards."
.FUNCT GLASS-EYE-F
EQUAL? PRSO,GLASS-EYE \FALSE
IN? RHINO-HEAD,HERE \FALSE
EQUAL? PRSA,V?TAKE /?CCL3
EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH,V?OPEN /?CCL3
EQUAL? PRSA,V?MOVE-DIR,V?MOVE,V?LOOK-INSIDE /?CCL3
EQUAL? PRSA,V?LOOK-BEHIND,V?FIX,V?EXAMINE \FALSE
?CCL3: IN? CLUE-3,RHINO-HEAD \FALSE
FSET RHINO-HEAD,OPENBIT
FCLEAR GLASS-EYE,NDESCBIT
FCLEAR GLASS-EYE,TRYTAKEBIT
FSET GLASS-EYE,TAKEBIT
EQUAL? PRSA,V?TAKE \?CND15
CALL V-TAKE
?CND15: CALL DISCOVER,CLUE-3
RTRUE
.FUNCT DECK-F,RARG=0
EQUAL? RARG,M-LOOK \?CCL3
PRINTR "The ""roof"" of the tower keep has a stone floor and battlements all around. Far below, the faint sound of the sea cries from the darkness. In the moonlight you see a huge bell mounted on a heavy frame."
?CCL3: EQUAL? RARG,P?SOUTH,P?DOWN,P?IN \FALSE
PRINT STAIRS-DOWN-LEFT
RTRUE
.FUNCT BELL-F,N=0,P,GT
EQUAL? PRSA,V?TURN /?CTR2
EQUAL? PRSA,V?PUSH,V?MOVE-DIR,V?MOVE \?CCL3
?CTR2: CALL TOO-BAD-BUT,BELL,STR?269
RSTACK
?CCL3: EQUAL? PRSA,V?SEARCH-FOR,V?SEARCH /?CTR6
EQUAL? PRSA,V?LOOK-UNDER,V?LOOK-INSIDE,V?EXAMINE \?CCL7
?CTR6: EQUAL? VARIATION,PAINTER-C \?CCL12
FSET? SKULL,SECRETBIT \?CCL12
CALL DISCOVER,SKULL
RTRUE
?CCL12: IN? CLUE-3,BELL \?CCL16
FSET? CLUE-3,SECRETBIT \?CCL16
CALL DISCOVER,CLUE-3
RTRUE
?CCL16: CALL TELL-AS-WELL-AS,BELL,STR?270
RTRUE
?CCL7: EQUAL? PRSA,V?RING \FALSE
ZERO? PLAYER-RANG-BELL? \?CND21
IN? BUTLER,LOCAL-GLOBALS /?CCL25
IN? BUTLER,KITCHEN /?CND21
CALL GO-TO-SOUND,KITCHEN,BUTLER
JUMP ?CND21
?CCL25: ZERO? LIONEL-SPEAKS-COUNTER \?CND21
SET 'MASS-SAID,FALSE-VALUE
?PRG29: IGRTR? 'N,DEB-C /?CND21
GET CHARACTER-TABLE,N >P
EQUAL? P,CONFESSED,CAPTOR /?PRG29
EQUAL? P,GHOST-NEW,SEARCHER /?PRG29