-
Notifications
You must be signed in to change notification settings - Fork 16
/
erasmus.zap
2577 lines (2400 loc) · 79.7 KB
/
erasmus.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
.SEGMENT "ERASMUS"
.FUNCT COMPASS-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE,V?READ \FALSE
PRINTI "The compass points north.From it you can see that the course is "
ICALL2 TELL-DIRECTION,SHIP-DIRECTION
PRINTR " and that the wind is out of the east, perhaps a point or two south of east."
.FUNCT DECK-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
CALL NOUN-USED?,PRSO,W?WATCH
ZERO? STACK /FALSE
FSET? MAETSUKKER,SCOREBIT \?CCL9
PRINTR "The men on watch are tired."
?CCL9: PRINTR "The watch is as fresh as can be expected."
?CCL3: EQUAL? PRSA,V?TAKE \?CCL11
CALL NOUN-USED?,PRSO,W?WATCH
ZERO? STACK /?CCL14
PRINTR "You are too tired to take the watch yourself."
?CCL14: PRINTR "You can't take that."
?CCL11: EQUAL? PRSA,V?RELEASE \?CCL16
EQUAL? HERE,BELOW-DECKS \?CCL19
PRINTR "You should probably send some of these men out to relieve the watch."
?CCL19: PRINT YOU-HAVE-TO
PRINTR "send some fresh crewmen out to do that."
?CCL16: EQUAL? PRSA,V?WALK-UNDER \?CCL21
CALL2 DO-WALK,P?FORE
RSTACK
?CCL21: EQUAL? PRSA,V?STEP-ON,V?BOARD \FALSE
CALL2 DO-WALK,P?OUT
RSTACK
.FUNCT REEF-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
EQUAL? SCENE,S-ANJIRO,S-RODRIGUES \?CCL6
PRINTR "The reefs are over the horizon, invisible."
?CCL6: ZERO? REEF-FLAG \?CCL8
PRINTR "You've been avoiding reefs for days.Right now the visibility is terrible; only a few hundred yards.You couldn't see a reef unless you were almost on top of it.A horrible thought!"
?CCL8: EQUAL? SHIP-X,8 \?CCL10
EQUAL? SHIP-Y,2 \?CCL10
PRINT STR?326
CRLF
RTRUE
?CCL10: EQUAL? SHIP-X,6 \?CCL14
EQUAL? SHIP-Y,2 \?CCL14
PRINTR "The gap in the reef is to port."
?CCL14: EQUAL? SHIP-Y,1 \?CCL18
EQUAL? SHIP-X,5 \?CCL18
PRINTR "The neck of the pass is right here, right to starboard, a maelstrom of foaming sea and crashing combers."
?CCL18: EQUAL? SHIP-Y,1 \?CCL22
GRTR? SHIP-X,0 \?CCL22
LESS? SHIP-Y,5 \?CCL22
PRINTR "The reef surrounds you on both sides, a terrifyingly narrow channel hemmed in by rocks and smashed by waves."
?CCL22: EQUAL? REEF-X,REEF-Y \?CCL27
PRINTI "The reef is barely two hundred yards "
ICALL1 TELL-REEF-DIR
PRINTI ", great black claws of rocks pounded by the hungry sea.A foaming line of surf looms "
ICALL1 TELL-REEF-DIR
PRINTI ", broken intermittently "
EQUAL? SHIP-DIRECTION,P?WEST,P?NW \?CCL30
PRINTI "to port"
JUMP ?CND28
?CCL30: EQUAL? SHIP-DIRECTION,P?SW \?CCL32
PRINTI "to starboard"
JUMP ?CND28
?CCL32: PRINTI "by too-narrow channels"
?CND28: PRINTR "."
?CCL27: PRINTR "The reef is off to the west, veiled in storm but revealed by breakers."
?CCL3: EQUAL? PRSA,V?TURN-AROUND \?CCL34
PRINT YOU-HAVE-TO
PRINT STR?158
CRLF
RTRUE
?CCL34: EQUAL? PRSA,V?TURN-TOWARD,V?TURN-AWAY,V?AVOID \FALSE
ZERO? REEF-FLAG /FALSE
EQUAL? PRSA,V?TURN-TOWARD \?CCL42
SET 'P-DIRECTION,P?STARBOARD
JUMP ?CND40
?CCL42: SET 'P-DIRECTION,P?PORT
?CND40: ICALL PERFORM,V?TURN,WHEEL,INTDIR
RTRUE
.FUNCT TELL-REEF-DIR:ANY:0:0
EQUAL? SHIP-DIRECTION,P?WEST \?CCL3
PRINTI "ahead"
RTRUE
?CCL3: EQUAL? SHIP-DIRECTION,P?SW \?CCL5
PRINTI "to starboard"
RTRUE
?CCL5: EQUAL? SHIP-DIRECTION,P?NW \?CCL7
PRINTI "to port"
RTRUE
?CCL7: PRINTI "away"
RTRUE
.FUNCT FORESAILS-F:ANY:0:0
EQUAL? PRSA,V?EXAMINE \?CCL3
FSET? FORESAILS,TRYTAKEBIT \?CCL6
PRINTR "The foremast has snapped.You may be able to survive without it for a while, though."
?CCL6: PRINTI "In this storm, only the barest storm sails are necessary, but you can't get by with none.The foresails "
FSET? PRSO,RMUNGBIT \?CCL9
PRINTR "have been torn away!"
?CCL9: PRINTR "are barely hanging together."
?CCL3: EQUAL? PRSA,V?ASK-ABOUT \?CCL11
EQUAL? PRSI,FORESAILS \?CCL11
ICALL1 DPRINT-PRSO
PRINTR " replies, ""Foresails only in a storm like this, by God!Anything more and we'd lose the mast!"""
?CCL11: EQUAL? PRSA,V?LOWER \?CCL15
FSET? FORESAILS,RMUNGBIT /?CTR17
FSET? FORESAILS,TRYTAKEBIT \?CCL18
?CTR17: PRINTR "No need for that!"
?CCL18: PRINTR "Without foresails, there would be no control, and the ship would be doomed.You wisely reconsider."
?CCL15: EQUAL? PRSA,V?RAISE,V?REPAIR \FALSE
FSET? FORESAILS,TRYTAKEBIT \?CCL25
PRINTR "The mast itself has snapped, there's no way to repair the sails!"
?CCL25: FSET? FORESAILS,RMUNGBIT /?CCL27
FSET? FORESAILS,SCOREBIT \?CCL30
PRINTR "The foresails are still holding on, the maximum sail that the ship can tolerate in this terrific gale."
?CCL30: PRINTR "The new foresails have already been raised."
?CCL27: ZERO? CREW-ON-DECK? /?CCL32
FCLEAR FORESAILS,RMUNGBIT
PRINTI "You yell to the crewmen, ""Fores'ls ho!""Foot by foot they haul themselves into the shrouds of the foremast rigging, dragging new sails aloft as others below lean on the ropes to give them a hand.They curse the sail out of its ropes.It falls open, cracking like a cannonade as the wind fills it, and the ship lurches.Now you have some control!"
CRLF
CALL2 SCORE-OBJECT,FORESAILS
RSTACK
?CCL32: IN? HENDRIK,ON-DECK /?CTR33
IN? GINSEL,ON-DECK /?CTR33
IN? VINCK,ON-DECK /?CTR33
IN? MAETSUKKER,ON-DECK \?CCL34
?CTR33: ICALL QUEUE,I-HANDS,2
PRINTR "The crewmen on deck try to obey, but there are too few of them!You need more crew on deck!They ring the bell.""All hands on deck!"" someone screams."
?CCL34: PRINTR "There's no one here to carry out your order!"
.FUNCT LG-ERASMUS-F:ANY:0:1,RARG
EQUAL? RARG,M-SUBJ /FALSE
EQUAL? PRSA,V?TELL,V?ASK-ABOUT \?CCL5
EQUAL? PRSO,LG-ERASMUS \?CCL5
PRINTR "You have been at sea too long!"
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL9
EQUAL? SCENE,S-ANJIRO \?CCL12
EQUAL? HERE,ANJIRO,ANJIRO-WATERFRONT,ANJIRO-HARBOR /?CTR14
EQUAL? HERE,AT-ERASMUS \?CCL15
?CTR14: PRINTI "The "
ICALL2 PRINTUNDER,STR?7
PRINTI " is anchored neatly, fifty yards from shore, in good water, with three bow cables.You can see native men aboard."
CRLF
FSET? RUTTER,RMUNGBIT /TRUE
FSET RUTTER,RMUNGBIT
CRLF
PRINTR "With a start you realize you don't know where your rutters are!Can they still be on the ship?They are your most precious possessions, and the stolen Portuguese one is a death sentence in any Catholic country!"
?CCL15: PRINTR "You are surprised at how neat the ship is.The tattered sails are down and tied in place.But the lashings are different from any you've ever seen.You presume the Japaners have made the vessel secure."
?CCL12: FSET? FORESAILS,TRYTAKEBIT \?CCL21
PRINTR "The ship is without a foremast!"
?CCL21: FSET? FORESAILS,RMUNGBIT \?CCL23
PRINTI "Right now, the "
ICALL2 PRINTUNDER,STR?7
PRINTR " is missing her foresails."
?CCL23: PRINTI "The "
ICALL2 PRINTUNDER,STR?7
PRINTR " is a pisscutter of a ship, lean and taut as a greyhound.If she can make it to port, God willing, all will be well.Otherwise, you're a dead man."
?CCL9: EQUAL? PRSA,V?DROP \?CCL25
EQUAL? P-PRSA-WORD,W?ABANDON \?CCL25
EQUAL? SCENE,S-ERASMUS \?CCL25
PRINT STR?327
CRLF
RTRUE
?CCL25: EQUAL? PRSA,V?WALK-TO \?CCL30
EQUAL? SCENE,S-ANJIRO,S-RODRIGUES \FALSE
IN? PLAYER,SMALL-BOAT /FALSE
PRINT YOU-HAVE-TO
PRINTR "use a boat to do that."
?CCL30: EQUAL? PRSA,V?LEAP,V?DIVE \?CCL37
EQUAL? HERE,ON-DECK,BRIDGE-OF-ERASMUS \?CCL40
EQUAL? SCENE,S-ERASMUS \?CCL43
PRINT STR?327
CRLF
RTRUE
?CCL43: PRINTI "You hurry over the side and down the gangway!"
CRLF
CRLF
CALL2 DO-WALK,P?DOWN
RSTACK
?CCL40: PRINTR "You can hardly jump overboard from here!"
?CCL37: EQUAL? PRSA,V?DISEMBARK,V?EXIT \?CCL45
EQUAL? SCENE,S-ANJIRO,S-RODRIGUES \?CCL45
CALL2 DO-WALK,P?DOWN
RSTACK
?CCL45: EQUAL? PRSA,V?POINT \?CCL49
EQUAL? OMI-QUESTION,1,2 \?CCL52
PRINTR """That's no answer, heretic!"""
?CCL52: IN? SEBASTIO,HERE \FALSE
PRINTR """Your ship has been well cared for, pirate!"""
?CCL49: EQUAL? PRSA,V?BOARD,V?CLIMB-ON,V?THROUGH /?CTR55
EQUAL? PRSA,V?CLIMB-UP \?CCL56
?CTR55: EQUAL? HERE,AT-ERASMUS \?CCL61
CALL2 DO-WALK,P?UP
RSTACK
?CCL61: EQUAL? HERE,ON-DECK,BRIDGE-OF-ERASMUS,PASSAGEWAY /?CTR62
EQUAL? HERE,PILOTS-CABIN,MATES-CABIN,CAPTAINS-CABIN \?CCL63
?CTR62: PRINTR "You already are!"
?CCL63: CALL2 YOULL-HAVE-TO,STR?328
RSTACK
?CCL56: EQUAL? PRSA,V?TURN \?CCL67
EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL70
ICALL PERFORM,V?TURN,WHEEL,PRSI
RTRUE
?CCL70: EQUAL? SCENE,S-ERASMUS \FALSE
ICALL1 ARENT-WHERE-PRSO-IS
FSET? HENDRIK,DEAD \?CCL75
PUSH VINCK
JUMP ?CND73
?CCL75: PUSH HENDRIK
?CND73: CALL2 FRUSTRATED,STACK
RSTACK
?CCL67: EQUAL? PRSA,V?REPAIR \?CCL77
CALL1 MORE-SPECIFIC
RSTACK
?CCL77: CALL1 HOSTILE-VERB?
ZERO? STACK /FALSE
PRINTR "What an infantile idea."
.FUNCT ARENT-WHERE-PRSO-IS:ANY:0:0
PRINTI "You aren't on the bridge, where "
ICALL1 THE-PRINT-PRSO
PRINTI " is."
RTRUE
.FUNCT GANGWAY-F:ANY:0:0
EQUAL? PRSA,V?CLIMB-UP \?CCL3
CALL2 DO-WALK,P?UP
RSTACK
?CCL3: EQUAL? PRSA,V?CLIMB-DOWN \?CCL5
CALL2 DO-WALK,P?DOWN
RSTACK
?CCL5: EQUAL? PRSA,V?CLIMB-FOO,V?CLIMB-ON \FALSE
EQUAL? HERE,AT-ERASMUS,WHARF \?CCL10
CALL2 DO-WALK,P?UP
RSTACK
?CCL10: EQUAL? HERE,ON-DECK,MAIN-DECK \FALSE
CALL2 DO-WALK,P?DOWN
RSTACK
.FUNCT QUEUE-STORM:ANY:0:0,S,DONE?
GET SCENE-LOCS,SCENE
GETPT STACK,P?SCORE >S
GETB S,0 >S
CALL1 DONE-BELOW? >DONE?
LESS? STORM-DELAY?,0 \?CCL3
INC 'STORM-DELAY?
CALL QUEUE,I-STORM,30
RSTACK
?CCL3: ZERO? STORM-DELAY? /?CCL5
FSET? BELL,SCOREBIT \?CCL5
GRTR? S,STORM-DELAY? \?CCL5
ZERO? DONE? \?CCL5
SET 'STORM-DELAY?,S
ICALL QUEUE,I-STORM,10
RFALSE
?CCL5: FSET? HERE,OUTSIDE /?CTR10
ZERO? DONE? /?CCL11
?CTR10: SET 'STORM-DELAY?,S
ZERO? REEF-FLAG \?CTR15
EQUAL? S,7 \?CCL16
?CTR15: PUSH 4
JUMP ?CND14
?CCL16: FSET? HERE,OUTSIDE \?CCL20
ZERO? DONE? /?CCL20
PUSH 3
JUMP ?CND14
?CCL20: PUSH 9
?CND14: CALL QUEUE,I-STORM,STACK
RSTACK
?CCL11: EQUAL? SHIP-COURSE,P?PORT,P?STARBOARD \?CCL24
FSET? WHEEL,RMUNGBIT /?CCL24
FSET? HENDRIK,TRYTAKEBIT /?CCL24
CALL QUEUE,I-STORM,2
RSTACK
?CCL24: SET 'STORM-DELAY?,S
ZERO? REEF-FLAG /?CCL30
PUSH 7
JUMP ?CND28
?CCL30: PUSH 15
?CND28: CALL QUEUE,I-STORM,STACK
RSTACK
.FUNCT I-STORM:ANY:0:0
CALL1 QUEUE-STORM
ZERO? STACK /FALSE
EQUAL? SHIP-COURSE,P?FORE /?CND3
EQUAL? SHIP-COURSE,P?PORT \?CCL6
EQUAL? SHIP-DIRECTION,P?WEST \?CCL9
SET 'SHIP-DIRECTION,P?SW
JUMP ?CND3
?CCL9: EQUAL? SHIP-DIRECTION,P?SW \?CCL11
SET 'SHIP-DIRECTION,P?SOUTH
JUMP ?CND3
?CCL11: EQUAL? SHIP-DIRECTION,P?NW \?CCL13
SET 'SHIP-DIRECTION,P?WEST
JUMP ?CND3
?CCL13: EQUAL? SHIP-DIRECTION,P?NORTH \?CND3
SET 'SHIP-DIRECTION,P?NW
JUMP ?CND3
?CCL6: EQUAL? SHIP-COURSE,P?STARBOARD \?CND3
EQUAL? SHIP-DIRECTION,P?WEST \?CCL18
SET 'SHIP-DIRECTION,P?NW
JUMP ?CND3
?CCL18: EQUAL? SHIP-DIRECTION,P?SW \?CCL20
SET 'SHIP-DIRECTION,P?WEST
JUMP ?CND3
?CCL20: EQUAL? SHIP-DIRECTION,P?NW \?CCL22
SET 'SHIP-DIRECTION,P?NORTH
JUMP ?CND3
?CCL22: EQUAL? SHIP-DIRECTION,P?SOUTH \?CND3
SET 'SHIP-DIRECTION,P?SW
?CND3: EQUAL? SHIP-DIRECTION,P?WEST \?CCL26
FSET? FORESAILS,RMUNGBIT /?CTR28
EQUAL? SHIP-Y,1 \?CCL29
GRTR? SHIP-X,7 /?CCL29
?CTR28: DEC 'SHIP-X
JUMP ?CND24
?CCL29: SUB SHIP-X,2 >SHIP-X
JUMP ?CND24
?CCL26: EQUAL? SHIP-DIRECTION,P?SW \?CCL35
DEC 'SHIP-X
DEC 'SHIP-Y
JUMP ?CND24
?CCL35: EQUAL? SHIP-DIRECTION,P?NW \?CCL37
DEC 'SHIP-X
INC 'SHIP-Y
JUMP ?CND24
?CCL37: EQUAL? SHIP-DIRECTION,P?NORTH,P?SOUTH \?CND24
ICALL1 SHIP-BROADSIDE
?CND24: CALL1 REEF-DISTANCE
ZERO? STACK \?CND39
GRTR? SHIP-X,6 \?CCL43
CRLF
PRINTI "The waiting spines of the reef tear into the ship!"
FSET? HERE,OUTSIDE \?CND44
PRINTI "The gap is tantalizingly close, but you missed it."
?CND44: PRINTI "Two years out from England, and it ends here in a watery grave."
CRLF
ICALL1 JIGS-UP
RETURN M-FATAL
?CCL43: EQUAL? SHIP-X,6 \?CCL47
CRLF
PRINTI "The ship smashes into the "
FSET? HERE,OUTSIDE \?CND48
PRINTI "side of the gap in the "
?CND48: PRINTI "reef, tearing a huge rent in the hull.Water pours in, and the stern crashes against the rocks"
FSET? HERE,OUTSIDE \?CND50
PRINTI ", throwing you to the deck.Suddenly the mainmast gives way.It's crashing down upon you"
?CND50: PRINTC 33
CRLF
ICALL1 JIGS-UP
RETURN M-FATAL
?CCL47: CRLF
FSET? HERE,OUTSIDE \?CCL54
PRINTI "You steer"
JUMP ?CND52
?CCL54: PRINTI "The ship steers"
?CND52: PRINTI " directly into the waiting rocks!"
CRLF
ICALL1 JIGS-UP
RETURN M-FATAL
?CND39: LESS? SHIP-X,19 \?CND55
GETP BLACKTHORNE,P?HEALTH
ZERO? STACK \?CND55
ICALL QUEUE,I-TIRED-WARNING,5,TRUE-VALUE
ICALL QUEUE,I-TIRED,10,TRUE-VALUE
?CND55: ZERO? REEF-FLAG \?CND59
CALL1 REEF-SIGHTED?
ZERO? STACK /?CND59
SET 'REEF-FLAG,TRUE-VALUE
CRLF
FSET? HERE,OUTSIDE \?CCL64
IN? GINSEL,BELOW-DECKS \?CCL67
PRINTI "The bow lookout"
JUMP ?CND65
?CCL67: PRINTI "Ginsel, the bow lookout,"
?CND65: PRINTI " yells ""Rotz vooruit!""Reef ahead!A foaming line of surf stretches ahead of you, broken intermittently to port!"
CRLF
EQUAL? HERE,BRIDGE-OF-ERASMUS \TRUE
FSET? HENDRIK,RMUNGBIT \TRUE
FCLEAR HENDRIK,RMUNGBIT
CRLF
PRINTR "The yelling wakes Hendrik."
?CCL64: FCLEAR HENDRIK,RMUNGBIT
PRINTI "Faintly, over the roar of the storm, you hear the terrified cry ""Rotz vooruit!""Reef ahead!"
EQUAL? HERE,BELOW-DECKS \?CCL74
PRINTI "The crewmen pull themselves painfully from their bunks.""We're dead men!"" screams one."
IN? VINCK,HERE \?CCL77
MOVE VINCK,ON-DECK
PRINTR """We'd better go above, Pilot,"" urges Vinck as he shuffles toward the door."
?CCL77: CRLF
RTRUE
?CCL74: EQUAL? HERE,CAPTAINS-CABIN \?CCL79
PRINTR """Get out there, Pilot!"" Spillbergen orders you.""We'll all die thanks to you!Out!"""
?CCL79: PRINTI "You sense from the terror in the voice that the reefs are close."
IN? GINSEL,BELOW-DECKS \?CND80
PRINTR "Has the watch been asleep?All too likely!"
?CND80: CRLF
RTRUE
?CND59: EQUAL? SHIP-Y,9 \?CCL84
EQUAL? SHIP-X,19 \?CCL84
ICALL QUEUE,I-HENDRIK,-1
FCLEAR WHEEL,ONBIT
CRLF
PRINTI "The ship heels in a sudden squall, throwing you "
FSET? WHEEL,RMUNGBIT \?CCL89
EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL92
PRINTR "from your post at the wheel."
?CCL92: PRINTR "to the deck."
?CCL89: EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL95
PRINTI "from your post at the wheel, which"
JUMP ?CND93
?CCL95: PRINTI "to the deck.The wheel"
?CND93: SET 'SHIP-COURSE,P?PORT
SET 'SHIP-DIRECTION,P?SW
ICALL QUEUE,I-BROADSIDE,4
ICALL QUEUE,I-SHIP-BROADSIDE,8
PRINTR ", uncontrolled, begins to turn to port."
?CCL84: EQUAL? SHIP-X,18 /?CTR96
EQUAL? SHIP-Y,9 \?CCL97
EQUAL? SHIP-X,17 \?CCL97
?CTR96: CRLF
PRINTR "The wind freshens even more, and the ship lurches."
?CCL97: EQUAL? SHIP-Y,8 \?CCL103
EQUAL? SHIP-X,14 \?CCL103
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "A forepeak halliard snaps, and the highest top gallant spar is carried away into the sea, "
EQUAL? SHIP-DIRECTION,P?SW \?CCL111
PRINTR "but the ship is now making way parallel to the reef."
?CCL111: PRINTR "and the ship continues to approach the waiting reef."
?CCL103: EQUAL? SHIP-Y,7 \?CCL113
EQUAL? SHIP-X,13 \?CCL113
FSET? HERE,OUTSIDE \FALSE
CRLF
EQUAL? SHIP-DIRECTION,P?SW \?CCL121
PRINTR "The ship runs parallel to the reef, barely staying away from it, and a huge following wave towers over the ship!"
?CCL121: PRINTR "The ship is being carried still closer to the reef, and a huge wave is approaching from the starboard side!"
?CCL113: EQUAL? SHIP-Y,6 \?CCL123
EQUAL? SHIP-X,12 \?CCL123
EQUAL? SHIP-DIRECTION,P?SW /?CND126
FSET LG-ERASMUS,RMUNGBIT
?CND126: FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "Another halliard gives, block and tackle swinging wildly.The wave breaks over the ship!"
EQUAL? SHIP-DIRECTION,P?SW \?CCL133
PRINTR "It looks for a moment like you're going to founder, but she shakes it off."
?CCL133: PRINTR "The force of the wave drives the ship onto the reef, the sharp rocks tearing into the wooden hull!In what seems like an instant, she's sinking!"
?CCL123: EQUAL? SHIP-Y,5 \?CCL135
EQUAL? SHIP-X,11 \?CCL135
FSET FORESAILS,RMUNGBIT
FSET? HERE,OUTSIDE \FALSE
CRLF
EQUAL? SHIP-DIRECTION,P?SW \?CCL143
PRINTR "Another following sea towers above the ship.The ship is wallowing, and the foresails are torn away by the tempest."
?CCL143: ICALL2 JIGS-UP,STR?329
RETURN M-FATAL
?CCL135: EQUAL? SHIP-Y,4 \?CCL145
EQUAL? SHIP-X,10 \?CCL145
FSET HENDRIK,DEAD
MOVE HENDRIK,GENERIC-OBJECTS
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "This wave comes in stronger than the last.Hendrik is caught and lifted, gasping and struggling, into the sea."
CRLF
CRLF
PRINTR "A giant comber throws Hendrik high above the ship, then takes him away and pulps him against a rock spine."
?CCL145: EQUAL? SHIP-Y,2 \?CCL152
EQUAL? SHIP-X,8 \?CCL152
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINT STR?326
CRLF
RTRUE
?CCL152: EQUAL? SHIP-Y,2 \?CCL159
EQUAL? SHIP-X,6 \?CCL159
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "The gulch through the reef is three points to windward, and you aren't gaining way!You search desperately for another channel but know there is none.The "
ICALL2 PRINTUNDER,STR?7
PRINTR " is heading for the rocks starboard of the gap!"
?CCL159: EQUAL? SHIP-Y,1 \?CCL166
EQUAL? SHIP-X,7 \?CCL166
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTR "The ship is being swept past the gap in the reef!"
?CCL166: EQUAL? SHIP-Y,1 \?CCL173
EQUAL? SHIP-X,5 \?CCL173
EQUAL? HERE,BRIDGE-OF-ERASMUS,ON-DECK \?CCL178
MOVE VINCK,HERE
JUMP ?CND176
?CCL178: MOVE VINCK,BRIDGE-OF-ERASMUS
?CND176: FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "The ship is gaining way, helped by the fall off from the wind.You are holding course parallel to the reef and approaching a narrow gap which heads to starboard."
CRLF
CRLF
PRINTR "You see Vinck making his way up the companionway to the bridge."
?CCL173: EQUAL? SHIP-Y,1 \?CCL183
EQUAL? SHIP-X,4 \?CCL183
EQUAL? SHIP-DIRECTION,P?WEST \?CCL183
CRLF
PRINTI "There is a wailing, tormented shudder as the keel scrapes the razor spines of the reef below!"
FSET? WHEEL,RMUNGBIT /FALSE
SET 'WHEEL-SPINNING?,TRUE-VALUE
ICALL2 DEQUEUE,I-BROADSIDE
FSET? WHEEL,ONBIT \?CCL192
FCLEAR WHEEL,ONBIT
FSET? HERE,OUTSIDE \FALSE
PRINTI "The"
PRINT STR?330
CRLF
RTRUE
?CCL192: PRINTR "The wheel begins spinning wildly!"
?CCL183: EQUAL? SHIP-Y,1 \?CCL197
EQUAL? SHIP-X,3 \?CCL197
EQUAL? SHIP-DIRECTION,P?WEST \?CCL197
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "The ship is sucked into a narrow vortex between the rocks."
FSET? WHEEL,ONBIT /?CND204
FSET? WHEEL,RMUNGBIT /?CND204
PRINTI "The wheel spins from side to side, out of control!"
?CND204: FSET FORESAILS,TRYTAKEBIT
PRINTR "The bowsprit catches a rock and is torn loose!The foremast snaps!The men on deck fall on the rigging with axes and cut it adrift as the ship founders down the channel."
?CCL197: EQUAL? SHIP-Y,1 \?CCL209
EQUAL? SHIP-X,2 \?CCL209
EQUAL? SHIP-DIRECTION,P?WEST \?CCL209
FSET? WHEEL,ONBIT /?CCL215
FSET? WHEEL,RMUNGBIT /?CCL215
CRLF
ICALL2 JIGS-UP,STR?331
RETURN M-FATAL
?CCL215: FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTR "The ship is pulled by the waves deeper into the strait, and then pushed back by the return, but she's making some progress."
?CCL209: EQUAL? SHIP-Y,1 \?CCL221
EQUAL? SHIP-X,1 \?CCL221
EQUAL? SHIP-DIRECTION,P?WEST \?CCL221
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTR "For an instant, the strait broadens.Ahead, it narrows ominously and turns to port."
?CCL221: ZERO? SHIP-Y \FALSE
ZERO? SHIP-X \FALSE
EQUAL? SHIP-DIRECTION,P?SW \FALSE
ICALL2 DEQUEUE,I-STORM
FSET? HERE,OUTSIDE \FALSE
CRLF
PRINTI "The sea race quickens.The ship is in the neck and dead, but then the keel scrapes a mud shoal, and the shock turns her head.The rudder bites into the sea, the wind and sea join to help, and before the wind she speeds through the pass to safety.Into the bay beyond."
CRLF
IN? COMPASS,BLACKTHORNE \?CND236
REMOVE COMPASS
?CND236: IN? QUILL,BLACKTHORNE \?CND238
REMOVE QUILL
?CND238: REMOVE APPLE
ICALL2 SCORE-OBJECT,REEF
CRLF
CALL1 NEXT-SCENE
RSTACK
.FUNCT REEF-SIGHTED?:ANY:0:0
ZERO? REEF-FLAG \FALSE
GRTR? REEF-X,2 \TRUE
GRTR? REEF-Y,2 /FALSE
RTRUE
.FUNCT REEF-DISTANCE:ANY:0:0,?TMP1
SET 'REEF-X,0
SET 'REEF-Y,0
ZERO? SHIP-X \?CCL3
ZERO? SHIP-Y \FALSE
SET 'REEF-X,1000
SET 'REEF-Y,1000
JUMP ?CND1
?CCL3: ZERO? SHIP-Y \?CCL8
GRTR? SHIP-X,0 \?CCL8
LESS? SHIP-X,7 /FALSE
?CCL8: EQUAL? SHIP-Y,1 \?CCL13
EQUAL? SHIP-X,6 /FALSE
?CCL13: EQUAL? SHIP-Y,0,1 \?CCL17
EQUAL? SHIP-X,7 \?CCL17
SET 'REEF-X,1
SUB 3,SHIP-Y >REEF-Y
JUMP ?CND1
?CCL17: EQUAL? SHIP-Y,1 \?CCL21
GRTR? SHIP-X,5 /?CCL21
SET 'REEF-X,SHIP-X
SET 'REEF-Y,1
JUMP ?CND1
?CCL21: GRTR? SHIP-Y,1 /?CCL25
LESS? SHIP-X,7 /FALSE
SUB SHIP-X,6 >REEF-X
SUB 0,SHIP-Y >?TMP1
SUB SHIP-X,4
ADD ?TMP1,STACK >REEF-Y
JUMP ?CND1
?CCL25: LESS? SHIP-Y,11 /?CCL30
SUB SHIP-X,15 >REEF-X
GRTR? SHIP-X,15 \?CCL33
SET 'REEF-Y,1000
JUMP ?CND1
?CCL33: SET 'REEF-Y,0
JUMP ?CND1
?CCL30: EQUAL? SHIP-Y,2 \?CCL35
EQUAL? SHIP-X,6,7 \?CCL35
SUB SHIP-X,5 >REEF-X
SET 'REEF-Y,1
JUMP ?CND1
?CCL35: LESS? SHIP-Y,2 /?CND1
SUB SHIP-X,6 >?TMP1
SUB SHIP-Y,2
SUB ?TMP1,STACK >REEF-X
SUB SHIP-X,4
SUB STACK,SHIP-Y >REEF-Y
?CND1: GRTR? REEF-X,0 \?CTR40
GRTR? REEF-Y,0 /TRUE
?CTR40: SET 'REEF-X,0
SET 'REEF-Y,0
RFALSE
.FUNCT CREWMEN-DESC:ANY:0:2,RARG,OBJ
EQUAL? RARG,M-OBJDESC? \?CCL3
EQUAL? HERE,BELOW-DECKS,VILLAGE-SQUARE /TRUE
RFALSE
?CCL3: EQUAL? RARG,M-OBJDESC \FALSE
EQUAL? HERE,BELOW-DECKS \?CCL11
ZERO? CREW-ON-DECK? /?CCL14
PRINTI "A few of the worst-off crewmen are still here."
RTRUE
?CCL14: ZERO? REEF-FLAG /?CCL16
PRINTI "Most of the surviving crewmen are preparing to go on deck."
RTRUE
?CCL16: PRINTI "Most of the survivors of the crew are here in bunks and hammocks, some sleeping, some awake."
RTRUE
?CCL11: EQUAL? HERE,VILLAGE-SQUARE \FALSE
PRINTI "The rabble of the ship's crew kneel behind you, guards watching them."
RTRUE
.FUNCT LG-CREWMEN-F:ANY:0:1,RARG
EQUAL? RARG,M-SUBJ /FALSE
EQUAL? SCENE,S-ERASMUS,S-YABU \?CCL5
EQUAL? RARG,M-WINNER \?CCL8
EQUAL? HERE,PILOTS-CABIN,CAPTAINS-CABIN,PASSAGEWAY /?CTR10
EQUAL? HERE,BELOW-DECKS \?CCL11
ZERO? CREW-ON-DECK? /?CCL11
?CTR10: PRINTR "There are no crewmen here."
?CCL11: EQUAL? PRSA,V?WHO \?CCL17
EQUAL? PRSO,YOU \?CCL17
SET 'WINNER,PLAYER
ICALL PERFORM,V?WHO,CREWMEN
ICALL1 END-QUOTE
RETURN M-FATAL
?CCL17: EQUAL? HERE,BELOW-DECKS,MATES-CABIN \?CCL21
PRINT STR?332
CRLF
RTRUE
?CCL21: EQUAL? PRSA,V?RAISE,V?REPAIR,V?LOWER /?PRD25
EQUAL? PRSA,V?REPLACE \?CCL23
?PRD25: EQUAL? PRSO,FORESAILS /FALSE
?CCL23: IN? VINCK,HERE \?CCL29
EQUAL? PRSA,V?HELP \?CCL29
EQUAL? PRSA,V?TAKE \?CCL29
EQUAL? PRSO,WHEEL \?CCL29
SET 'WINNER,VINCK
ICALL PERFORM,PRSA,PRSO,PRSI
RTRUE
?CCL29: EQUAL? HERE,BELOW-DECKS \?CCL35
CALL1 SEND-HIM-OUT?
ZERO? STACK /?CCL35
PRINTR "The crewmen mutter among themselves, but no one moves."
?CCL35: CALL2 CURSES-IN,STR?333
RSTACK
?CCL8: EQUAL? PRSA,V?EXAMINE,V?WHO \?CCL39
ICALL LIST-PEOPLE,CREWMAN?,STR?334,STR?335
EQUAL? HERE,BELOW-DECKS \?CCL42
IN? VINCK,BELOW-DECKS \?CCL45
IN? GINSEL,BELOW-DECKS \?CCL48
IN? MAETSUKKER,BELOW-DECKS \?CCL51
PRINTI "Vinck, Ginsel, and Maetsukker are"
JUMP ?CND43
?CCL51: PRINTI "Vinck and Ginsel are"
JUMP ?CND43
?CCL48: IN? MAETSUKKER,BELOW-DECKS \?CCL53
PRINTI "Vinck and Maetsukker are"
JUMP ?CND43
?CCL53: PRINTI "Vinck is"
JUMP ?CND43
?CCL45: IN? GINSEL,BELOW-DECKS \?CCL55
IN? MAETSUKKER,BELOW-DECKS \?CCL58
PRINTI "Ginsel and Maetsukker are"
JUMP ?CND43
?CCL58: PRINTI "Ginsel is"
JUMP ?CND43
?CCL55: IN? MAETSUKKER,BELOW-DECKS \?CCL60
PRINTI "Maetsukker is"
?CND43: PRINTR " in the best condition, although everyone is badly off."
?CCL60: CRLF
RTRUE
?CCL42: EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL62
PRINTC 11
ICALL LIST-PEOPLE,CREWMAN?,STR?334,STR?335,ON-DECK,STR?336
JUMP ?CND40
?CCL62: EQUAL? HERE,ON-DECK \?CND40
PRINTC 11
ICALL LIST-PEOPLE,CREWMAN?,STR?334,STR?335,BRIDGE-OF-ERASMUS,STR?337
?CND40: CRLF
RTRUE
?CCL39: EQUAL? PRSA,V?TELL \?CCL65
ZERO? CREW-ON-DECK? /?CCL65
EQUAL? HERE,BRIDGE-OF-ERASMUS,ON-DECK /FALSE
?CCL65: CALL1 CREW-HERE?
ZERO? STACK \?CCL70
PRINT STR?338
CRLF
EQUAL? PRSA,V?TELL \TRUE
ICALL1 END-QUOTE
RETURN M-FATAL
?CCL70: EQUAL? HERE,BELOW-DECKS \?CCL75
EQUAL? PRSA,V?SEND \?CCL75
PRINT STR?332
CRLF
RTRUE
?CCL75: EQUAL? PRSA,V?WAKE \FALSE
EQUAL? HERE,BELOW-DECKS \FALSE
PRINTR "You cuff a few of the sleepers into wakefulness, but most are too far gone to do more than curse feebly."
?CCL5: EQUAL? SCENE,S-PIT \?CCL83
EQUAL? PRSA,V?EXAMINE \FALSE
PRINTR "They look scared."
?CCL83: EQUAL? SCENE,S-RODRIGUES \?CCL88
PRINTR "There are no longer any crewmen aboard."
?CCL88: EQUAL? SCENE,S-VOYAGE \?CCL90
EQUAL? RARG,M-WINNER \FALSE
EQUAL? PRSA,V?DROP,V?THROW,V?PUT /?PRD98
EQUAL? PRSA,V?LOWER \?CCL96
?PRD98: EQUAL? PRSO,ANCHOR /FALSE
?CCL96: CALL2 CURSES-IN,STR?339
RSTACK
?CCL90: EQUAL? SCENE,S-MARIKO \FALSE
CALL1 ABSTRACT-VERB?
ZERO? STACK \FALSE
ICALL2 CTHE-PRINT,LG-CREWMEN
PRINTI " aren't here."
CRLF
EQUAL? PRSA,V?TELL \TRUE
ICALL1 END-QUOTE
RETURN M-FATAL
.FUNCT CURSES-IN:ANY:1:1,L
PRINTI "The only responses are muttered curses in "
PRINT L
PRINTR "."
.FUNCT CREW-HERE?:ANY:0:0,F
FIRST? HERE >F /?PRG2
?PRG2: ZERO? F /FALSE
EQUAL? F,CREWMEN /?CND4
FSET? F,DUTCHBIT /TRUE
?CND4: NEXT? F >F /?PRG2
JUMP ?PRG2
.FUNCT HENDRIK-DESC:ANY:2:2,RARG,OBJ
EQUAL? RARG,M-OBJDESC? \?CCL3
FSET? HENDRIK,RMUNGBIT /TRUE
FSET? HENDRIK,TRYTAKEBIT /TRUE
RFALSE
?CCL3: EQUAL? RARG,M-OBJDESC \FALSE
PRINTI "Hendrik Specz "
FSET? HENDRIK,RMUNGBIT \?CCL13
PRINTI "is asleep at"
JUMP ?CND11
?CCL13: PRINTI "has"
?CND11: PRINTI " the wheel."
RTRUE
.FUNCT HENDRIK-F:ANY:0:1,RARG
EQUAL? RARG,M-SUBJ /FALSE
EQUAL? RARG,M-WINNER \?CCL5
EQUAL? PRSA,V?FOLLOW,V?WALK,V?WALK-TO /?CTR7
EQUAL? PRSA,V?WALK-UNDER \?CCL8
?CTR7: FSET? WHEEL,ONBIT \?CCL13
PRINTR """Pilot, it's my watch.Let me take the wheel.You must rest."""
?CCL13: PRINTR """One of us must stay and hold the God-cursed wheel, or we all die!"""
?CCL8: EQUAL? PRSA,V?TAKE-OVER \?PRD17
EQUAL? PRSO,FALSE-VALUE,WHEEL,DECK /?CTR14
?PRD17: EQUAL? PRSA,V?TAKE,V?TURN \?CCL15
EQUAL? PRSO,WHEEL,DECK \?CCL15
?CTR14: FSET HENDRIK,TRYTAKEBIT
ICALL1 HENDRIK-TAKES-WHEEL
PRINTR """Aye, Pilot, I take the wheel."""
?CCL15: EQUAL? PRSA,V?RAISE,V?REPAIR,V?LOWER \?CCL23
EQUAL? PRSO,FORESAILS /FALSE
?CCL23: EQUAL? PRSO,WHEEL \?CCL27
PRINTR """If you want the wheel, take it,"" snarls Hendrik."
?CCL27: EQUAL? PRSA,V?SHUT-UP \?PRD31
EQUAL? PRSO,ROOMS /?CTR28
?PRD31: EQUAL? PRSA,V?BE \?CCL29
EQUAL? PRSO,INTADJ \?CCL29
GET PARSE-RESULT,11
EQUAL? STACK,W?QUIET \?CCL29
?CTR28: PRINTR """We'll all be quiet soon enough!"""
?CCL29: EQUAL? PRSA,V?TELL-ME-ABOUT \?CCL38
EQUAL? PRSO,JAPAN \?CCL41
PRINTR """You're the one who said it's here.Between latitudes thirty and forty north, you said.Well, I don't see it."""
?CCL41: EQUAL? PRSO,SPILLBERGEN \?CCL43
PRINTR """He's a maggot-eaten fool and we'll all be dead because of him."""
?CCL43: PRINTR "He doesn't answer."
?CCL38: CALL1 I-DONT-KNOW?
ZERO? STACK /?CCL45
PRINTR """You don't know?You're the God-cursed Pilot, you'd better know!"""
?CCL45: PRINTR "Hendrik's reply is a mixture of whining and curses."
?CCL5: EQUAL? PRSA,V?TELL \?CCL47
FSET? HENDRIK,RMUNGBIT \FALSE
PRINTI "Hendrik is asleep."
CRLF
CALL1 END-QUOTE
RSTACK
?CCL47: EQUAL? PRSA,V?EXAMINE \?CCL52
PRINTR "Hendrik, like all the crew members, is suffering from scurvy.His face is gray, his eyes are sunken, and his skin is blotched and sallow.He is dying."
?CCL52: EQUAL? PRSA,V?GIVE \?CCL54
FSET? HENDRIK,RMUNGBIT \?CCL57
CALL2 YOULL-HAVE-TO,STR?340
RSTACK
?CCL57: EQUAL? PRSO,WHEEL \FALSE
SET 'WINNER,HENDRIK
ICALL PERFORM,V?TAKE,WHEEL
SET 'WINNER,PLAYER
RTRUE
?CCL54: EQUAL? PRSA,V?SOOTHE \?CCL61
PRINTR "He remains skeptical, muttering quietly to himself."
?CCL61: CALL1 HOSTILE-VERB?
ZERO? STACK \?CCL63
EQUAL? PRSA,V?WAKE \FALSE
FSET? PRSO,RMUNGBIT \FALSE
?CCL63: FSET? PRSO,RMUNGBIT \?CCL70
FCLEAR PRSO,RMUNGBIT
PRINTI "You awaken Hendrik."
ZERO? REEF-FLAG /?CCL73
PRINTR """We're lost,"" he screams.""Oh, Lord Jesus help us!"""
?CCL73: PRINTR """I wasn't asleep,"" he says, sheepishly."
?CCL70: PRINTR "You realize it's only your fatigue making you want to hurt him, and refrain."
.FUNCT I-HENDRIK:ANY:0:0
INC 'HENDRIK-CNT
EQUAL? HENDRIK-CNT,1 \?CCL5
MOVE HENDRIK,HERE
CRLF
PRINTI "Hendrik Specz, the third mate, appears on deck, pulling himself painfully up the gangway."
ICALL2 THIS-IS-IT,HENDRIK
EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL8
PRINTR "He joins you on the bridge.""Go below, Pilot.I take this watch if it pleases you.""Gray with fatigue, he leans heavily against the binnacle and retches.""Blessed Lord Jesus help me!"""
?CCL8: PRINTR """God curse you, Pilot!Have you gone mad at last!No one is at the wheel!We'll head onto the reef, God rot your bones!"""
?CCL5: EQUAL? HENDRIK-CNT,2 \?CCL10
EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL13
MOVE HENDRIK,HERE
SET 'QCONTEXT,HENDRIK
CRLF
PRINTR """Where's the landfall you promised us?Where's the Japans?Where is it, I ask?"""
?CCL13: EQUAL? HERE,ON-DECK \FALSE
FSET? WHEEL,RMUNGBIT /?CCL18
FSET? WHEEL,ONBIT /?CCL18
FSET? HENDRIK,TRYTAKEBIT /?CCL18
CRLF
PRINTI """You'll drown us all, you crazy Englishman!"" Hendrik screams"
IN? HENDRIK,BRIDGE-OF-ERASMUS /?CCL24
MOVE HENDRIK,BRIDGE-OF-ERASMUS
PRINTR " as he rushes to the bridge."
?CCL24: PRINTR "."
?CCL18: CRLF
PRINT STR?341
CRLF
RTRUE
?CCL10: EQUAL? HENDRIK-CNT,3 \?CCL26
SET 'QCONTEXT,FALSE-VALUE
EQUAL? HERE,BRIDGE-OF-ERASMUS \?CCL29
MOVE HENDRIK,HERE
CRLF
PRINTI """Perhaps there is no Japans,"" Hendrik mutters scornfully.""It's just a "
ICALL2 PRINTUNDER,STR?342
PRINTR " legend."""
?CCL29: EQUAL? HERE,ON-DECK \FALSE
CRLF
PRINT STR?341
CRLF
RTRUE
?CCL26: EQUAL? HENDRIK-CNT,4 \FALSE
ICALL2 DEQUEUE,I-HENDRIK
MOVE HENDRIK,BRIDGE-OF-ERASMUS
FSET? WHEEL,RMUNGBIT /?CND34
FSET? WHEEL,ONBIT /?CND34
FSET? HENDRIK,TRYTAKEBIT /?CND34
ICALL1 HENDRIK-SAVES-THE-DAY
?CND34: FSET? HERE,OUTSIDE \?CND39
EQUAL? HERE,ON-DECK /?CND39
ICALL QUEUE,I-TIRED-WARNING,4,TRUE-VALUE
ICALL QUEUE,I-TIRED,8,TRUE-VALUE
?CND39: CRLF
PRINTI "You are tired, deathly tired, and near starving."
IN? VINCK,BELOW-DECKS /?CCL44
IN? GINSEL,BELOW-DECKS /?CCL44
IN? MAETSUKKER,BELOW-DECKS \?CND43
?CCL44: IN? VINCK,BELOW-DECKS \?CCL50
IN? GINSEL,BELOW-DECKS \?CCL50
IN? MAETSUKKER,BELOW-DECKS \?CCL50
PRINTI "With a start, you realize it's time to "
FSET? HERE,OUTSIDE \?CND54
PRINTI "go below and "
?CND54: PRINTI "send out replacements for the men on watch, by now freezing and windburned."
JUMP ?CND43
?CCL50: PRINTI "You know more men are needed on watch."
?CND43: GETP BLACKTHORNE,P?HEALTH
ZERO? STACK \?CND56
PRINTI "It's past time to eat some of your meager cache of food; a few shrivelled apples."
?CND56: FSET? FLAGON,SCOREBIT \?CND58
PRINTI "Time, too, for the unpleasant task of visiting Captain Spillbergen, still in nominal command but deathly sick, confined to his cabin."
?CND58: FSET? RUTTER,SCOREBIT \?CND60
PRINTR "It's also time to write in your rutter, though God knows there is nothing new since yesterday; nothing, that is, but death."
?CND60: CRLF
RTRUE
.FUNCT HENDRIK-TAKES-WHEEL:ANY:0:0
FSET HENDRIK,TRYTAKEBIT
SET 'SHIP-COURSE,P?FORE
SET 'SHIP-DIRECTION,P?WEST
ICALL2 DEQUEUE,I-BROADSIDE
CALL2 DEQUEUE,I-SHIP-BROADSIDE
RSTACK
.FUNCT HENDRIK-SAVES-THE-DAY:ANY:0:0
FCLEAR WHEEL,SCOREBIT
ICALL1 HENDRIK-TAKES-WHEEL
EQUAL? HERE,ON-DECK,BRIDGE-OF-ERASMUS \FALSE
CRLF
PRINTR "Hendrik grabs the wheel, muttering vile curses on you and your kin."
.FUNCT MAETSUKKER-F:ANY:0:1,RARG
EQUAL? RARG,M-SUBJ /FALSE
EQUAL? RARG,M-WINNER \?CCL5
EQUAL? PRSA,V?RAISE,V?REPAIR,V?LOWER \?CCL8
EQUAL? PRSO,FORESAILS /FALSE
?CCL8: CALL1 SEND-HIM-OUT?
ZERO? STACK /?CCL12
SET 'WINNER,PLAYER
ICALL PERFORM,V?SEND,MAETSUKKER,ROOMS
RTRUE
?CCL12: PRINTR "Maetsukker makes an almost inaudible remark about your mother."
?CCL5: EQUAL? PRSA,V?EXAMINE \?CCL14
PRINTR "Maetsukker is a small, sharp-featured man.He is in better shape than most of the crew members."
?CCL14: EQUAL? PRSA,V?SEND \?CCL16
EQUAL? PRSO,MAETSUKKER \?CCL16
EQUAL? SCENE,S-ERASMUS \?CCL16
EQUAL? HERE,BELOW-DECKS /?CCL22
PRINTR """I'm already on watch, Pilot!"" he snarls."
?CCL22: FSET? MAETSUKKER,RMUNGBIT /?CCL24
FSET MAETSUKKER,RMUNGBIT
PRINTR """I'm near death,"" the small, sharp-featured man says, and cringes away from you.""I'm sick.Look, the scurvy's taken all my teeth.Take someone else!""Other members of the crew take up the refrain.They are all sick, all scurvied, all tired unto death."
?CCL24: PRINTR """I'm a merchant, not a seaman!I'm not part of the crew!Take someone else!""Other crewmen nod in agreement.None of them want to go on deck if they can avoid it."
?CCL16: EQUAL? PRSA,V?TAKE /?CCL26
CALL1 HOSTILE-VERB?
ZERO? STACK /FALSE
?CCL26: EQUAL? HERE,BELOW-DECKS /?CCL31
PRINTR "The two of you begin fighting, but before you can do any damage, the other crewmen pull you apart."
?CCL31: FSET? MAETSUKKER,RMUNGBIT \?CCL33
MOVE MAETSUKKER,ON-DECK
PRINTI "Maetsukker screams as you "
EQUAL? PRSA,V?KICK \?CCL36
PRINTI "kick him like a dog and then "
JUMP ?CND34
?CCL36: EQUAL? PRSA,V?HIT,V?SWING \?CCL38
PRINTI "punch him in the stomach and then "
JUMP ?CND34
?CCL38: EQUAL? PRSA,V?BITE \?CND34
PRINTI "growl, baring your teeth, and then "
?CND34: PRINTI "jerk him to his feet.Blood flecks his mouth as he pulls the door open and flees in agony.The other crewmen grumble, but seem to accept this assertion of your authority."
CRLF