-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathship.zap
More file actions
2148 lines (1977 loc) · 54.1 KB
/
Copy pathship.zap
File metadata and controls
2148 lines (1977 loc) · 54.1 KB
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 SHIP-F
EQUAL? PRSA,V?EXAMINE \?CCL3
CALL SHIP-BOARD,HERE
ZERO? STACK /?CCL6
CALL V-LOOK
RSTACK
?CCL6: EQUAL? HERE,CABIN,DEUX-DECK \?CCL8
CALL ADJ-USED,A?HELENA
ZERO? STACK \?CTR10
CALL NOUN-USED,W?LOUISE,SHIP
ZERO? STACK /?CCL11
?CTR10: CALL PERFORM,V?LOOK-INSIDE,WINDOW
RTRUE
?CCL11: CALL V-LOOK
RSTACK
?CCL8: EQUAL? HERE,CELL-1,CELL-2 /?CTR14
EQUAL? HERE,LAFS-ROOM,BEACH,LAGOON /?CTR14
EQUAL? HERE,SHALLOWS \?CCL15
?CTR14: FSET? SHIP,MUNGBIT \?CCL21
PRINT YOU-CANT
PRINTI "see"
CALL TPRINT,SHIP
PRINTI " anywhere, but a lot of debris floats in the lagoon"
PRINT PCR
RTRUE
?CCL21: CALL CTPRINT,SHIP
PRINTI " floats, silent and serene, some distance out in the lagoon"
PRINT PCR
RTRUE
?CCL15: PRINT YOU-CANT
PRINTI "see"
CALL TPRINT,SHIP
PRINTR " from here."
?CCL3: EQUAL? PRSA,V?POINT \?CCL23
ZERO? PRSI \FALSE
CALL PROPOSE
RSTACK
?CCL23: EQUAL? PRSA,V?PUT \FALSE
EQUAL? PRSO,MIRROR,TRAY \FALSE
CALL IMPOSSIBLES
RSTACK
.FUNCT GEN-BOAT
CALL GLOBAL-IN?,OBJ-QUARTERS,HERE
ZERO? STACK /?CCL3
RETURN OBJ-QUARTERS
?CCL3: LOC SKIFF
EQUAL? STACK,HERE /?CTR4
RETURN SHIP
?CTR4: RETURN SKIFF
.FUNCT DEBRIS-F
FSET? SHIP,MUNGBIT /?CCL3
PRINT YOU-CANT-SEE-ANY
PRINTD DEBRIS
PRINTR " here!"
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE,V?SEARCH,V?EXAMINE \?CCL5
PRINT INDENT
CALL PICK-ONE,DEBRIS-BITS
PRINT STACK
EQUAL? HERE,BEACH,SHALLOWS \?CCL8
PRINTR "bobs briefly in the waves."
?CCL8: PRINTR "floats by you."
?CCL5: EQUAL? PRSA,V?TAKE \FALSE
PRINTI "You reconsider, thinking of"
CALL TPRINT,SHIP
PRINTR " as it was, whole and proud."
.FUNCT SHIP-BOARD,RM
EQUAL? RM,CAPT-QUARTERS,LANDING,SLEEPING-CUPBOARD /TRUE
EQUAL? RM,AFT-HOLD,HOLD,CREWS-QUARTERS /TRUE
EQUAL? RM,POOP,QUARTERDECK,MAIN-DECK /TRUE
EQUAL? RM,FOCSLE,GALLEY,BOWSPRIT /TRUE
EQUAL? RM,CROWS-NEST /TRUE
EQUAL? RM,BY-SHIP,ON-LADDER,RIGGING-ROOM /TRUE
RFALSE
.FUNCT INNER-DECK,RM
EQUAL? RM,SLEEPING-CUPBOARD,LANDING,AFT-HOLD /TRUE
EQUAL? RM,HOLD,CREWS-QUARTERS,GALLEY /TRUE
RFALSE
.FUNCT CABIN-EXIT
IN? HERO,HERE \?CCL3
GRTR? HERO-CTR,3 \?CCL6
CALL DEQUEUE,I-MEET-HERO
CALL DEQUEUE,I-PIRATE-ATTACK
PRINT CTHE-PIRATE-CAPTAIN
PRINTI "follows you through"
CALL TRPRINT,DOOR
CRLF
RETURN DEUX-DECK
?CCL6: PRINT SINEWY-ARM
CRLF
RFALSE
?CCL3: IN? HERO,DEUX-DECK \?CCL8
RETURN DEUX-DECK
?CCL8: IN? CRULLEY,HERE \?CCL10
PRINTI """Not that way, me pretty,"" says"
CALL TPRINT,CRULLEY
PRINTI ", blocking your way"
PRINT PCR
RFALSE
?CCL10: CALL CTPRINT,DOOR
PRINT IS-CLOSED
PRINT PCR
CALL THIS-IS-IT,DOOR
RFALSE
.FUNCT DEUX-DECK-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
MOVE HERO,HERE
PRINTI "The deck is an avalanche of noise and blood. Lit by roaring fires, silhouetted forms crash swords, dancing around the screaming wounded."
RTRUE
?CCL3: EQUAL? RARG,M-ENTER \FALSE
CALL QUEUE,I-END-PROLOGUE,1
RSTACK
.FUNCT COFFER-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It is a small heavy chest, with a "
FSET? COFFER,MUNGBIT \?CND4
PRINTI "smashed "
?CND4: PRINTI "lock. It is"
CALL TELL-OPEN/CLOSED,PRSO
PRINTI ".
"
RTRUE
?CCL3: EQUAL? PRSA,V?TAKE \?CCL7
EQUAL? PRSO,COFFER \FALSE
FSET? COFFER,NDESCBIT /?CCL13
FSET COFFER,TAKEBIT
CALL DEQUEUE,I-COFFER
MOVE COFFER,PROTAGONIST
FCLEAR COFFER,NDESCBIT
PRINTR "Taken."
?CCL13: PRINT HUH
RTRUE
?CCL7: EQUAL? PRSA,V?MUNG \?CCL15
EQUAL? PRSO,WINDOW \?CCL15
CALL PERFORM,V?PUT-THROUGH,COFFER,WINDOW
RTRUE
?CCL15: EQUAL? PRSA,V?STAND-ON,V?BOARD \?CCL19
CALL CTPRINT,COFFER
PRINTR " is too small to stand on."
?CCL19: EQUAL? PRSA,V?SHAKE \FALSE
FSET? COFFER,LOCKEDBIT \FALSE
PRINTI "It seems to be full of small, heavy objects"
PRINT PCR
RTRUE
.FUNCT LETTER-F
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
CALL CTPRINT,LETTER
PRINTI " is in dear Papa's handwriting:
""Dearest child,
You are in gravest danger! Lafond is a viper with the smile of a saint, my most particular enemy. I have only now learned the depth of his deception. Should Lafond get you in his power... It is unspeakable!
I have sided with Nicholas Jamison, a sea captain and a gentleman, whose circumstances have driven him to extreme measures, even branding him a pirate. Nevertheless, I trust him and so may you.
You will be safe -- but there is another for whom I fear! My horse is waiting and I ride to her rescue. Jamison will deliver this to you. Should anything happen to me, you must rely on him. I remain, with love,"
CALL TPRINT,DAD
PRINTI "."""
CRLF
CRLF
RTRUE
.FUNCT INVITE-F
EQUAL? PRSA,V?EXAMINE,V?READ \?CCL3
CALL CTPRINT,INVITE
PRINTI " is addressed to ""Davis"":
In Honor of Jean Lafond,
recently proclaimed
Governor of "
PRINTD ISLAND
PRINTI "
A Dance at his Mansion
Ananas Road, "
PRINTD ISLAND
PRINTI "
Formal Dress and Invitation Required"
PRINT PCR
CRLF
FSET? INVITE,MUNGBIT /FALSE
FSET INVITE,MUNGBIT
PRINT INDENT
PRINTR "A ball! You haven't been to a ball in months!"
?CCL3: EQUAL? PRSA,V?SGIVE,V?SSHOW \FALSE
EQUAL? PRSO,BUTLER \FALSE
CALL PERFORM,V?GIVE,INVITE,BUTLER
RTRUE
.FUNCT I-COFFER
CALL HELD?,COFFER
ZERO? STACK \FALSE
FCLEAR COFFER,NDESCBIT
FSET COFFER,TAKEBIT
CALL THIS-IS-IT,COFFER
PRINT INDENT
PRINTI "Suddenly, the ship lurches to one side, throwing you "
LOC PROTAGONIST
EQUAL? STACK,CABIN-BED \?CCL6
MOVE PROTAGONIST,HERE
PRINTI "out of the bed. "
JUMP ?CND4
?CCL6: PRINTI "off balance. "
?CND4: FSET? COFFER,TOUCHBIT \?CCL9
CALL CTPRINT,COFFER
JUMP ?CND7
?CCL9: PRINTI "A "
PRINTD COFFER
PRINTI " slides from under the bed and"
?CND7: PRINTR " bumps against your foot."
.FUNCT CAPT-QUARTERS-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
IN? LEDGE,ON-LADDER \?CCL6
MOVE LEDGE,CAPT-QUARTERS
RTRUE
?CCL6: FSET? CAPT-QUARTERS,TOUCHBIT /FALSE
MOVE PROTAGONIST,CAPT-BED
SET 'HERO-CTR,0
CALL QUEUE,I-HSHIP,2
PRINTI "TWO DAYS LATER"
PRINT ELLIPSIS
PRINT INDENT
PRINTI "You blear awake from a bored nap, focusing on something shiny. You discern it to be"
CALL APRINT,HRING
PRINTI ", on a strong hand in the act of tying a ribbon onto"
CALL ARPRINT,RAPIER
PRINT INDENT
PRINTI "The man with"
CALL TPRINT,RAPIER
PRINTI " and the ring turns, ""Sorry, I tried not to wake you."" You sit up as if the bed had caught fire, for this is the Falcon, changed from his rags to a finery all red velvet and white lace -- and in your presence!"
CRLF
CRLF
RTRUE
?CCL3: EQUAL? RARG,M-LOOK \FALSE
FSET? HERE,MUNGBIT /?CND11
FSET HERE,MUNGBIT
PRINTI "You are in the captain's "
PRINTD OBJ-QUARTERS
PRINTI " of the "
PRINTD SHIP
PRINTI ", where you have been trapped these past days since your ""rescue"" from the Lafond Deux. "
?CND11: PRINTI "The room has a masculine air, with ebony panelling, a large messy table, and a rumpled bed"
LOC PROTAGONIST
EQUAL? STACK,CAPT-BED \?CND13
PRINTI " (upon which you lie)"
?CND13: PRINTI ". A curtain masks the forward exit and "
FSET? LEDGE,MUNGBIT \?CCL17
PRINTI "air breezes in over the ledge"
JUMP ?CND15
?CCL17: PRINTI "gilded woodwork decorates the sill of the tall window looking"
?CND15: PRINTI " aft."
RTRUE
.FUNCT I-HERO-TO-ISLAND
EQUAL? HERE,CAPT-QUARTERS \?CND1
PRINT INDENT
PRINTI "Men clomp about overhead and a rope ladder unfurls itself past the window. Jamison climbs down it, entering"
CALL TPRINT,SKIFF
PRINTI " that awaits him below. He rows to the island as the men above "
PRINTD HEAD
PRINTI " disperse, calling farewells to their captain"
PRINT PCR
?CND1: SET 'SKIFF-LOC,1
SET 'SKIFF-TIED,FALSE-VALUE
REMOVE HERO
SET 'LADDER-HANGING,TRUE-VALUE
CALL QUEUE,I-SEE-LADDER,-1
RSTACK
.FUNCT I-SEE-LADDER
EQUAL? HERE,CAPT-QUARTERS \?CCL3
CALL QUEUE,I-SEE-LADDER,-1
RANDOM 100
LESS? 40,STACK /FALSE
PRINT INDENT
PRINTI "The end of a rope ladder blows "
LOC PROTAGONIST
EQUAL? STACK,CAPT-BED,CAPT-QUARTERS \?CCL9
PRINTR "past the window."
?CCL9: PRINTR "by."
?CCL3: CALL DEQUEUE,I-SEE-LADDER
RSTACK
.FUNCT PAPERS-F
CALL UNIMPORTANT-THING
RSTACK
.FUNCT ON-LADDER-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
MOVE LEDGE,HERE
CALL DEQUEUE,I-SEE-LADDER
RSTACK
?CCL3: EQUAL? RARG,M-BEG \?CCL5
EQUAL? PRSA,V?LEAP-OFF,V?LEAP /?CTR4
EQUAL? PRSA,V?DROP \?CCL5
EQUAL? PRSO,LADDER \?CCL5
?CTR4: CALL DO-WALK,P?DOWN
RSTACK
?CCL5: EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are clinging to a slimy ladder, tied to a rail of the poop deck above you. Not far from your feet,"
ZERO? SKIFF-TIED /?CCL16
CALL APRINT,SKIFF
PRINTI " bobs in the water"
JUMP ?CND14
?CCL16: PRINTI " waves kiss the stern of the ship"
?CND14: FSET? ON-LADDER,TOUCHBIT /?CND17
PRINTI ". The ladder twists under your weight"
?CND17: PRINTC 46
RTRUE
.FUNCT OBJ-QUARTERS-F
EQUAL? PRSA,V?EXAMINE \?CCL3
CALL NOUN-USED,W?QUARTE,OBJ-QUARTERS
ZERO? STACK /?CCL6
EQUAL? HERE,POOP,LANDING \?CCL6
PRINTR "Why don't you go there and look?"
?CCL6: CALL V-LOOK
RSTACK
?CCL3: EQUAL? PRSA,V?ENTER,V?CLIMB,V?BOARD \FALSE
EQUAL? HERE,DEUX-DECK,ON-LADDER \FALSE
CALL DO-WALK,P?IN
RSTACK
.FUNCT I-LADDER-BLOWS
INC 'BLOWING-LADDER-C
LESS? BLOWING-LADDER-C,2 /TRUE
PRINT INDENT
EQUAL? BLOWING-LADDER-C,2,5 \?CCL5
PRINTI "All air is driven out of you as"
CALL TPRINT,LADDER
PRINTR " slams into the stern."
?CCL5: EQUAL? BLOWING-LADDER-C,3,6 \?CCL7
PRINTI "Rebounding,"
CALL TPRINT,LADDER
PRINTI " twists you around to face"
CALL TRPRINT,SHIP
RSTACK
?CCL7: EQUAL? BLOWING-LADDER-C,4 \?CCL9
PRINTI "The ladder swings back towards"
CALL TRPRINT,SHIP
RSTACK
?CCL9: EQUAL? BLOWING-LADDER-C,7 \FALSE
CALL JIGS-UP,STR?302
RSTACK
.FUNCT LADDER-EXIT,CRUFTY-KLUDGE=0
CALL DEQUEUE,I-LADDER-BLOWS
PRINTI "You pull "
PRINTD ME
PRINTI " over"
CALL TPRINT,LEDGE
PRINTI ", tumbling head over heels into Jamison's "
PRINTD OBJ-QUARTERS
PRINT PCR
CRLF
ZERO? CRUFTY-KLUDGE \?CTR2
RETURN CAPT-QUARTERS
?CTR2: CALL GOTO,CAPT-QUARTERS
RSTACK
.FUNCT CURTAIN-EXIT
IN? HERO,HERE \?CCL3
PRINT SINEWY-ARM
CRLF
RFALSE
?CCL3: LOC PROTAGONIST
EQUAL? STACK,LEDGE \?CCL5
RETURN CAPT-QUARTERS
?CCL5: FSET? LANDING,TOUCHBIT /?CND6
CALL CTPRINT,CUPBOARD-OBJECT
PRINT ISNT-FLUSH
?CND6: PRINTI "You"
PRINT SQUEEZE-THRU
PRINT PCR
CRLF
EQUAL? P-WALK-DIR,P?SOUTH \?CCL10
ZERO? LADDER-HANGING /?CND11
CALL QUEUE,I-SEE-LADDER,-1
?CND11: FSET PILE-OF-CLOTHES,NDESCBIT
MOVE CUPBOARD-OBJECT,CAPT-QUARTERS
RETURN CAPT-QUARTERS
?CCL10: FCLEAR PILE-OF-CLOTHES,NDESCBIT
MOVE CUPBOARD-OBJECT,LANDING
CALL DEQUEUE,I-SEE-LADDER
RETURN LANDING
.FUNCT WINDOW-EXIT
CALL PERFORM,V?BOARD,LEDGE
RFALSE
.FUNCT LEDGE-F,VARG=0
EQUAL? VARG,M-BEG \?CCL3
EQUAL? PRSA,V?TAKE-OFF,V?CLIMB-DOWN,V?DISEMBARK \?CCL6
EQUAL? PRSO,DRESS,LADDER /?CCL6
MOVE PROTAGONIST,HERE
FSET LADDER,TRYTAKEBIT
PRINTR "You clamber off the sill to safety."
?CCL6: EQUAL? PRSA,V?LEAP-OFF,V?LEAP /?CTR9
EQUAL? PRSA,V?ENTER \?CCL10
EQUAL? PRSO,SEA \?CCL10
?CTR9: PRINT SUICIDE
RTRUE
?CCL10: EQUAL? PRSA,V?WALK \FALSE
EQUAL? P-WALK-DIR,P?NORTH \?CCL19
CALL PERFORM,V?DISEMBARK,LEDGE
RTRUE
?CCL19: EQUAL? P-WALK-DIR,P?UP /FALSE
CALL DO-FIRST,STR?303,LEDGE
RSTACK
?CCL3: ZERO? VARG \FALSE
EQUAL? PRSA,V?EXAMINE \?CCL25
FSET? LEDGE,MUNGBIT \?CCL28
PRINTI "Glass shards decorate"
CALL TRPRINT,LEDGE
RSTACK
?CCL28: PRINTI "Tall panes of glass are inset into"
CALL TRPRINT,LEDGE
RSTACK
?CCL25: EQUAL? PRSA,V?MUNG \?CCL30
ZERO? PRSI \?CCL30
CALL PROPOSE
RSTACK
?CCL30: EQUAL? PRSA,V?LEAP-OFF \?CCL34
FSET? LEDGE,MUNGBIT \?CCL37
CALL DO-FIRST,STR?255,LEDGE
RSTACK
?CCL37: PRINT SUICIDE
RTRUE
?CCL34: EQUAL? PRSA,V?DISEMBARK,V?CLIMB-ON,V?BOARD /?CCL39
EQUAL? PRSA,V?ENTER,V?STAND-ON \FALSE
?CCL39: EQUAL? HERE,CAPT-QUARTERS \?CCL44
FSET? LEDGE,MUNGBIT /?CCL47
PRINTI "The available ledge on this side of the window is hardly deep enough to sit on"
PRINT PCR
RTRUE
?CCL47: PRINTI "You climb onto the ledge. "
FSET? POOP,TOUCHBIT /?CND48
FSET LADDER,TAKEBIT
?CND48: ZERO? LADDER-HANGING /?CND50
CALL QUEUE,I-SEE-LADDER,2
CALL CTPRINT,LADDER
PRINTI " drifts within reach."
?CND50: CRLF
MOVE PROTAGONIST,LEDGE
RTRUE
?CCL44: EQUAL? HERE,ON-LADDER \FALSE
CALL LADDER-EXIT,TRUE-VALUE
RTRUE
.FUNCT GEN-BED
RETURN CAPT-BED
.FUNCT LANDING-F,RARG
EQUAL? RARG,M-LOOK \FALSE
PRINTI "You are on the landing of a steep stairway heading up and down. A "
PRINTD CUPBOARD-OBJECT
PRINTI " against the aft wall blocks the doorway to the captain's "
PRINTD OBJ-QUARTERS
PRINTC 46
RTRUE
.FUNCT SLEEPING-CUPBOARD-F,RARG
EQUAL? RARG,M-LOOK \?CCL3
PRINTI "The bed is softer than it looks, plumped up with fresh straw. A soft, if somewhat cramped, bunk for the tall bulk of Jamison. The cupboard opens to the fore."
RTRUE
?CCL3: EQUAL? RARG,M-BEG \FALSE
EQUAL? PRSA,V?DISEMBARK \FALSE
EQUAL? PRSO,CUPBOARD-OBJECT \FALSE
CALL DO-WALK,P?OUT
RSTACK
.FUNCT CUPBOARD-EXIT
FSET? CUPBOARD-OBJECT,OPENBIT /?CCL3
EQUAL? P-WALK-DIR,P?IN \?CCL6
CALL DO-FIRST,STR?265,CUPBOARD-OBJECT
RFALSE
?CCL6: FSET CUPBOARD-OBJECT,OPENBIT
PRINTI "You open"
CALL TPRINT,CUPBOARD-OBJECT
PRINTI " and clamber out"
PRINT PCR
CRLF
MOVE CUPBOARD-OBJECT,LANDING
RETURN LANDING
?CCL3: EQUAL? P-WALK-DIR,P?IN \?CCL9
IN? PILE-OF-CLOTHES,CUPBOARD-OBJECT \?CND10
MOVE PILE-OF-CLOTHES,SLEEPING-CUPBOARD
?CND10: MOVE CUPBOARD-OBJECT,SLEEPING-CUPBOARD
RETURN SLEEPING-CUPBOARD
?CCL9: IN? PILE-OF-CLOTHES,SLEEPING-CUPBOARD \?CND12
MOVE PILE-OF-CLOTHES,CUPBOARD-OBJECT
?CND12: MOVE CUPBOARD-OBJECT,LANDING
RETURN LANDING
.FUNCT CUPBOARD-OBJECT-F
EQUAL? PRSA,V?MOVE,V?PUSH \?CCL3
CALL CTPRINT,CUPBOARD-OBJECT
PRINT ISNT-FLUSH
PRINT SQUEEZE-AROUND
RTRUE
?CCL3: EQUAL? PRSA,V?CLOSE,V?OPEN \?CCL5
EQUAL? HERE,CAPT-QUARTERS \?CCL5
CALL CTPRINT,DOOR
PRINTI " is on the other side of"
CALL TRPRINT,CUPBOARD-OBJECT
RSTACK
?CCL5: EQUAL? PRSA,V?SEARCH,V?LOOK-INSIDE,V?EXAMINE \?CCL9
EQUAL? HERE,SLEEPING-CUPBOARD \?CCL12
CALL V-LOOK
RSTACK
?CCL12: EQUAL? HERE,CAPT-QUARTERS \?CCL14
PRINT YOU-SEE
PRINT THE-BACK
CALL TPRINT,CUPBOARD-OBJECT
PRINTI ". "
PRINT SQUEEZE-AROUND
RTRUE
?CCL14: FSET? CUPBOARD-OBJECT,OPENBIT \?CCL16
PRINTI "It is a dark messy bed, set entirely within and filling"
CALL TPRINT,CUPBOARD-OBJECT
PRINTI ". A cabin boy must sleep here when Jamison isn't using it."
FSET? PILE-OF-CLOTHES,TOUCHBIT /?CND17
PRINTC 32
GETP PILE-OF-CLOTHES,P?FDESC
PRINT STACK
?CND17: CRLF
RTRUE
?CCL16: PRINTI "It"
PRINT IS-CLOSED
PRINT PCR
RTRUE
?CCL9: EQUAL? PRSA,V?BOARD,V?ENTER \?CCL20
EQUAL? HERE,SLEEPING-CUPBOARD \?CCL23
PRINT LOOK-AROUND
RTRUE
?CCL23: EQUAL? HERE,CAPT-QUARTERS \?CCL25
PRINT YOU-CANT-SEE-ANY
PRINT WAY-TO-DO-THAT
RTRUE
?CCL25: CALL DO-WALK,P?IN
RSTACK
?CCL20: EQUAL? PRSA,V?PUT \FALSE
PRINT YOULL-HAVE-TO
PRINTI "get in the "
PRINTD CUPBOARD-OBJECT
PRINTI " to do that"
PRINT PCR
RTRUE
.FUNCT HOLD-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
FSET? HERE,TOUCHBIT /?CCL3
FSET? POOP,TOUCHBIT /?CCL3
PRINTI "You hear a scuffling noise ahead, and scraping up near the ceiling. You would think it was caused by rats, but for the definite curse you heard before all the movement"
PRINT PCR
CRLF
RTRUE
?CCL3: EQUAL? RARG,M-END \?CCL8
ZERO? FUSE-LIT /?CCL8
FSET? FUSE,TOUCHBIT /?CCL8
CALL DEQUEUE,I-SMELL-SMOKE
CALL I-SMELL-SMOKE
RFALSE
?CCL8: EQUAL? RARG,M-LOOK \FALSE
CALL HATCH-DESC
PRINTI " above. Rats' scratchings counterpoint the lullaby of bilge water sloshing in the bulkheads, punctuated by footsteps slapping the deck overhead. You may move fore or aft.
Behind a high fence, decorated by a sign, are stacked"
CALL TPRINT,SUPPLIES
PRINTI "; casks of rum, water, flour and salt meat interspersed with kegs of gunpowder and shot. A closed gate is the only way in."
RTRUE
.FUNCT HATCH-F
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? HERE,HOLD \?CCL6
CALL HATCH-DESC
PRINT PCR
RTRUE
?CCL6: FSET? HATCH,OPENBIT \?CCL9
PRINT STEEP-STAIRS
PRINTR "into murky darkness."
?CCL9: PRINTI "Canvas stretches across"
CALL TRPRINT,HATCH
RSTACK
?CCL3: EQUAL? PRSA,V?LOOK-INSIDE \?CCL11
FSET? HATCH,OPENBIT \?CCL14
CALL PERFORM,V?EXAMINE,HATCH
RTRUE
?CCL14: CALL CTPRINT,HATCH
PRINT IS-CLOSED
PRINT PCR
RTRUE
?CCL11: EQUAL? PRSA,V?OPEN \FALSE
FSET? HATCH,OPENBIT /FALSE
EQUAL? HERE,MAIN-DECK \?CCL21
FSET HATCH,OPENBIT
PRINTI "You pull a corner of canvas out of the frame. "
CALL PERFORM,V?EXAMINE,HATCH
RTRUE
?CCL21: PRINT YOU-CANT-SEE-ANY
PRINT WAY-TO-DO-THAT
RTRUE
.FUNCT HATCH-DESC
FSET? HATCH,OPENBIT \?CCL3
PRINTI "Moonlight shines down the stairs through an open corner of the canvas hatch"
RTRUE
?CCL3: PRINTI "Steep stairs lead up in the dimness to a canvas hatch"
RTRUE
.FUNCT FENCE-F
EQUAL? PRSA,V?LOOK-INSIDE,V?LOOK-BEHIND \?CCL3
CALL CTPRINT,SUPPLIES
PRINTI " are kept locked behind the fence. "
ZERO? FUSE-LIT /?CCL6
CALL PERFORM,V?EXAMINE,FUSE
RTRUE
?CCL6: CRLF
RTRUE
?CCL3: EQUAL? PRSA,V?EXAMINE \?CCL8
CALL CTPRINT,FENCE
PRINTR " is made of thick, finely woven wire mesh, uncuttable and unclimbable. Except for a gap of about 6 inches over the closed gate, the cage is secure from ceiling to damp floorboards."
?CCL8: EQUAL? PRSA,V?THROW-OVER \?CCL10
PRINTI "You'd best throw"
CALL TPRINT-PRSO
PRINTI " over"
CALL TRPRINT,GATE
RSTACK
?CCL10: EQUAL? PRSA,V?CLIMB \?CCL12
PRINTI "You can't get a toehold in"
CALL TRPRINT,FENCE
RSTACK
?CCL12: EQUAL? PRSA,V?CLOSE,V?OPEN \FALSE
PRINT YOULL-HAVE-TO
PRINTI "do that to the gate in"
CALL TRPRINT,FENCE
RSTACK
.FUNCT GATE-MADE-SAME,STR
PRINTI "The gate is made of the same "
PRINT STR
PRINTI " wire as"
CALL TPRINT,FENCE
RSTACK
.FUNCT GATE-F
EQUAL? PRSA,V?EXAMINE \?CCL3
PRINTI "It has a huge iron lock. Between"
CALL TPRINT,GATE
PRINTR " and the ceiling, however, is a gap of about 6 inches."
?CCL3: EQUAL? PRSA,V?ENTER \?CCL5
CALL NOUN-USED,W?GAP,GATE
ZERO? STACK /?CCL5
CALL PERFORM,V?CLIMB,GATE
RTRUE
?CCL5: EQUAL? PRSA,V?EXIT,V?CLIMB-OVER,V?CLIMB \?CCL9
CALL GATE-MADE-SAME,STR?304
PRINTI ", and you cannot get a foothold"
PRINT PCR
RTRUE
?CCL9: EQUAL? PRSA,V?CUT \?CCL11
CALL GATE-MADE-SAME,STR?305
PRINT PCR
RTRUE
?CCL11: EQUAL? PRSA,V?LOOK-BEHIND \?CCL13
CALL PERFORM-PRSA,FENCE
RSTACK
?CCL13: EQUAL? PRSA,V?THROW-OVER \?CCL15
PRINTI "You throw"
EQUAL? PRSO,RAG \?CCL18
REMOVE RAG
FCLEAR RAG,TOUCHBIT
CALL TPRINT,RAG
PRINTI " over the gate. "
ZERO? FUSE-LIT \?CCL21
PRINTI "It falls to the floor amongst the food supplies"
PRINT PCR
RTRUE
?CCL21: EQUAL? WET-RAG,FALSE-VALUE \?CCL23
PRINTI "It flaps haplessly in the air, settling to the floor not far from the burning fuse"
PRINT PCR
RTRUE
?CCL23: PRINTI "Luckily, it lands directly on the burning end of the fuse. "
EQUAL? WET-RAG,RUM \?CCL26
CALL QUEUE,I-SHIP-EXPLODES,9
CALL DEQUEUE,I-TEAR-RAG
PRINTI "Unluckily, it is soaked with flammable rum, and flares up, making the fuse burn much faster. You have perhaps 3 minutes to live."
CRLF
JUMP ?CND24
?CCL26: EQUAL? WET-RAG,WATER \?CND24
CALL DEQUEUE,I-SHIP-EXPLODES
CALL DEQUEUE,I-TEAR-RAG
SET 'FUSE-LIT,FALSE-VALUE
FSET FUSE,NDESCBIT
INC 'SCORE
PRINTI "With a sputter and a sigh, the flame dies."
CRLF
?CND24: SET 'WET-RAG,FALSE-VALUE
RTRUE
?CCL18: EQUAL? PRSO,DRESS \?CCL29
CALL TPRINT,DRESS
PRINTI " up, "
ZERO? WET-DRESS /?CCL32
MOVE DRESS,HOLD
PRINTI "its soaked skirt slapping "
PRINTD HEAD
PRINTI ". Too heavy and bulky to make it over the gate, it squelches to the floor nearby. A cold tear of "
PRINTD WET-DRESS
PRINTI " dribbles down the back of your neck"
PRINT PCR
RTRUE
?CCL32: MOVE DRESS,HERE
PRINTI "but it billows out and catches on the top of the gate. It floats to the floor near you"
PRINT PCR
RTRUE
?CCL29: REMOVE PRSO
CALL TPRINT-PRSO
PRINTI " into the ammunition area. It skids into the darkness"
ZERO? FUSE-LIT /?CND33
PRINTI ", over the burning end of the fuse. The fuse falters, spits and resumes burning"
?CND33: PRINT PCR
RTRUE
?CCL15: EQUAL? PRSA,V?THROW,V?PUT-THROUGH,V?PUT \FALSE
CALL NOUN-USED,W?GAP,GATE
ZERO? STACK /FALSE
CALL PERFORM,V?THROW-OVER,PRSO,GATE
RTRUE
.FUNCT KEG-F
CALL TOUCHING?,KEG
ZERO? STACK \?CCL3
CALL TOUCHING?,SUPPLIES
ZERO? STACK /FALSE
?CCL3: CALL CANT-REACH,SUPPLIES
RSTACK
.FUNCT SIGN-F
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
PRINTR "The sign proclaims ""Thieves be keel-hauled"" in uncertain lettering."
.FUNCT I-SMELL-SMOKE
CALL QUEUED?,I-SHIP-EXPLODES
ZERO? STACK \?CND1
SET 'FUSE-LIT,TRUE-VALUE
FCLEAR FUSE,NDESCBIT
CALL QUEUE,I-TEAR-RAG,85
?CND1: FSET? FUSE,TOUCHBIT /FALSE
EQUAL? HERE,MAIN-DECK \?PRD8
FSET? HATCH,OPENBIT /?CCL4
?PRD8: EQUAL? HERE,HOLD \FALSE
?CCL4: FSET FUSE,TOUCHBIT
FCLEAR FUSE,INVISIBLE
PRINT INDENT
PRINTI "You gradually notice a familiar, worrying smell, sniff, and identify it as smoke. "
EQUAL? HERE,MAIN-DECK \?CCL13
PRINTI "It appears to come from below decks."
CRLF
RFALSE
?CCL13: EQUAL? HERE,HOLD \FALSE
PRINT TINY-GLOW
PRINT PCR
RFALSE
.FUNCT I-TEAR-RAG
CALL QUEUE,I-SHIP-EXPLODES,15
LOC RAG
ZERO? STACK \FALSE
ZERO? FUSE-LIT /FALSE
FSET? DRESS,WORNBIT /?CTR7
IN? DRESS,PROTAGONIST \?CCL8
?CTR7: ZERO? WET-DRESS /?CND11
SET 'WET-RAG,TRUE-VALUE
?CND11: FSET DRESS,MUNGBIT
PRINT INDENT
PRINTI "Your frock"
JUMP ?CND6
?CCL8: IN? SHIRT,PROTAGONIST \?CCL14
FSET SHIRT,MUNGBIT
PRINT INDENT
PRINTI "The tail of your shirt"
JUMP ?CND6
?CCL14: FSET? CHEMISE,EVERYBIT /TRUE
FSET CHEMISE,MUNGBIT
PRINT INDENT
PRINTI "Your chemise"
?CND6: LOC PROTAGONIST
MOVE RAG,STACK
PRINTR " suddenly catches on something, tearing the fabric. A large scrap flutters to your feet."
.FUNCT I-SHIP-EXPLODES
ZERO? FUSE-LIT /FALSE
FSET SHIP,MUNGBIT
SET 'SHIP-LOC,10
CALL DEQUEUE,I-SHIP-EXPLODES
CALL DEQUEUE,I-TEAR-RAG
CALL SHIP-BOARD,HERE
ZERO? STACK \?CTR5
EQUAL? HERE,BY-SHIP \?CCL6
?CTR5: CALL JIGS-UP,STR?306
RSTACK
?CCL6: LOC PROTAGONIST
EQUAL? STACK,SKIFF,CASK,BEACH \?CCL10
PRINT INDENT
PRINTI "A huge wave "
EQUAL? HERE,BEACH \?CCL13
PRINTI "rolls up the beach"
JUMP ?CND11
?CCL13: PRINTI "rocks"
LOC PROTAGONIST
CALL TPRINT,STACK
?CND11: PRINTI " as"
CALL TPRINT,SHIP
PRINTI " explodes into flames across the lagoon"
PRINT PCR
RTRUE
?CCL10: PRINT INDENT
PRINTI "You hear a noise like a huge explosion in the distance, and the ground shakes beneath your feet. There should be good beachcombing tomorrow"
PRINT PCR
RTRUE
.FUNCT FUSE-F,OARG=0,C=0,X=0
ZERO? OARG /?CCL3
EQUAL? OARG,M-DESC? /TRUE
PRINT INDENT
PRINT TINY-GLOW
PRINTC 46
RTRUE
?CCL3: EQUAL? PRSA,V?PUT-ON,V?POUR \?CCL7
EQUAL? PRSO,DRESS,RAG \?CCL7
CALL PROPOSE
RSTACK
?CCL7: EQUAL? PRSA,V?TAKE,V?MOVE \?CCL11
CALL CANT-REACH,FUSE
RSTACK
?CCL11: EQUAL? PRSA,V?POUR,V?OFF,V?ON /?CTR12
EQUAL? PRSA,V?CUT,V?PUT-ON /?CTR12
CALL TOUCHING?,FUSE
ZERO? STACK /?CCL13
?CTR12: PRINT YOU-ARENT
PRINTI "anywhere near"
CALL TPRINT,FUSE
PRINTR "!"
?CCL13: EQUAL? PRSA,V?EXAMINE \?CCL18
ZERO? FUSE-LIT /?CCL21
PRINTI "The burning fuse is "
CALL QUEUED?,I-SHIP-EXPLODES >C
ZERO? C /?CCL24
GET C,C-TICK
SUB 15,STACK >X
GRTR? X,12 \?CCL27
PRINTI "boring a hole through the largest powder keg"
PRINT PCR
RTRUE
?CCL27: GRTR? X,7 \?CCL29
PRINTI "mere inches"
JUMP ?CND22
?CCL29: PRINTI "only a foot"
JUMP ?CND22
?CCL24: CALL QUEUED?,I-TEAR-RAG >C
GET C,C-TICK
SUB 85,STACK >X
GRTR? X,70 \?CCL32
PRINTI "a few feet"
JUMP ?CND22
?CCL32: GRTR? X,60 \?CCL34
PRINTI "several feet"
JUMP ?CND22
?CCL34: GRTR? X,45 \?CCL36
PRINTI "a few yards"
JUMP ?CND22
?CCL36: PRINTI "quite near the fence, several yards"
?CND22: PRINTI " from the pile of gunpowder kegs opposite"
CALL TRPRINT,GATE
RSTACK
?CCL21: PRINT YOU-SEE
PRINT DARKNESS
CALL TRPRINT,FENCE
RSTACK
?CCL18: EQUAL? PRSA,V?THROW-AT,V?THROW-OVER,V?THROW \FALSE
EQUAL? PRSO,DRESS,RAG \FALSE
CALL PERFORM,V?THROW-OVER,PRSO,GATE
RTRUE
.FUNCT CREWS-QUARTERS-F,RARG
EQUAL? RARG,M-ENTER \?CCL3
ZERO? HEARD-CRULLEY \?CCL3
CALL QUEUE,I-OVERHEAR-CRULLEY,2
RSTACK
?CCL3: EQUAL? RARG,M-LOOK \FALSE
PRINTI "The crew sleeps, in shifts, in this cramped space under the forecastle. A breeze blows in on a moonbeam through a grate in the ceiling. A low doorsill is abaft.
"
PRINT INDENT
FSET? MESS,TOUCHBIT /?CND8
FSET MESS,TOUCHBIT
PRINTI "This area must also serve as sickroom. "
?CND8: PRINTI "Strewn about the floor are various powders and spills of malodorous potions. In one corner, a large blood stain indicates an amputation; in another is the smear of a leech, dropped off a bloodletting."
RTRUE
.FUNCT GRATE-F
EQUAL? PRSA,V?LOOK-INSIDE \FALSE
EQUAL? HERE,CREWS-QUARTERS \?CCL6
CALL PERFORM,V?EXAMINE,CEILING
RTRUE
?CCL6: PRINT YOU-SEE
PRINT DARKNESS
CALL TRPRINT,GRATE
RSTACK
.FUNCT MIRROR-F
EQUAL? PRSA,V?LOOK-INSIDE \?CCL3
PRINTI "You are aglow with excitement"
PRINT PCR
RTRUE
?CCL3: EQUAL? PRSA,V?POINT,V?PUT \?CCL5
EQUAL? PRSI,MOONBEAM,SHUTTERS,SHIP /?CTR4
EQUAL? PRSI,WINDOW \?CCL5
?CTR4: CALL SIGNAL-SHIP,MIRROR
RTRUE
?CCL5: EQUAL? PRSA,V?EXAMINE \FALSE
PRINTI "Probably a remnant of a pirated lady's boudoir,"
CALL TPRINT,MIRROR
PRINTI "'s edges are dulled from use"
PRINT PCR
RTRUE
.FUNCT SIGNAL-SHIP,THING
FSET? HERE,INDOORSBIT \?CCL3
CALL GLOBAL-IN?,HERE,WINDOW
ZERO? STACK \?CCL3
EQUAL? HERE,LAFS-ROOM,CAPT-QUARTERS /?CCL3
PRINT YOU-CANT-SEE-ANY
PRINT WAY-TO-DO-THAT
RTRUE
?CCL3: MOVE THING,PROTAGONIST
IN? CHICKEN,THING \?CND7
REMOVE CHICKEN
REMOVE SPICES
PRINTI "You scrape everything off"
CALL TPRINT,TRAY
PRINTI " into the bushes below. "
?CND7: EQUAL? HERE,BEDROOM \?CND9
PRINT YOU-CANT
PRINTI "quite catch the moon, just peeking over the house, in the little mirror"
PRINT PCR
RTRUE
?CND9: PRINTI "You roll"
CALL TPRINT,THING
PRINTI " around in the beam of moonlight till it glows silver-white. "
EQUAL? HERE,LAFS-ROOM \?CCL13
FSET? SHIP,MUNGBIT \?CCL16
PRINTI "The breeze picks up, howling off"
CALL TRPRINT,SEA
RTRUE