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
|
]LIST
10 CLEAR :WK$ = "*":CH$ = "*":C
H% = 0:WU% = 0:R1% = 0:I = 0
:J = 0:K = 0:II = 0:IJ = 0:I
K = 0:T = 300:LT = LOG (10)
:T$ = "Taipan": GOTO 10000
90 REM
92 FOR II = 1 TO T:II = II + ( PEEK
( - 16384) > 127) * 9999: NEXT
II
94 FOR II = 1 TO T / 2:II = II +
( PEEK ( - 16384) > 127) * 9
999: NEXT II
96 FOR II = 1 TO T / 2:II = II +
( PEEK ( - 16384) > 127) * 9
999: NEXT II
98 POKE - 16368,0: RETURN
100 CALL 2560: RETURN
150 WK$ = "" + " ": CALL
2680:W = VAL (WK$):R1% = LEFT$
(WK$,1) = "A": RETURN
200 REM
210 PRINT FS$;HM$;CS$; SPC( 12 -
LEN (H$) / 2): PRINT "Firm:
";CA$;H$;CS$;", ";:X = USR
(1): PRINT
220 VTAB 2: PRINT CG$;"[";: & 4
5,26: PRINT "]": FOR II = 1 TO
5: PRINT "!"; TAB( 28);"!": NEXT
II: PRINT "(";: & 61,26: PRINT
")": FOR II = 1 TO 5: PRINT
"!"; TAB( 28);"!": NEXT II: PRINT
"<";: & 58,26: PRINT ">";CS$
230 VTAB 3: HTAB 2:X = USR (1)
+ USR (2): VTAB 4: HTAB 21
: PRINT "In use:": VTAB 6: HTAB
21: PRINT "Vacant:": VTAB 9:
HTAB 2: PRINT "Hold
Guns";
240 FOR II = 3 TO 9 STEP 6: FOR
IJ = 1 TO 4: VTAB II + IJ: HTAB
5: PRINT LEFT$ (CO$(IJ),7);
: NEXT IJ,II
250 VTAB 3: HTAB 33: PRINT "Dat
e": VTAB 6: HTAB 31:X = USR
(3): VTAB 9: HTAB 33: PRINT
"Debt": VTAB 12: HTAB 29: PRINT
" Ship status":
260 VTAB 16: HTAB 1: PRINT CG$;
: & 45,40: PRINT CS$
270 RETURN
300 REM
310 VTAB 4: HTAB 30: PRINT "15
";YE: VTAB 4: HTAB 33: PRINT
IV$; MID$ ("JanFebMarAprMayJ
unJulAugSepOctNovDec",(MO -
1) * 3 + 1,3);NV$
311 VTAB 7: HTAB 31: PRINT "
": VTAB 7: HTAB 35 - LEN
(LO$(LO)) / 2 + .5: PRINT IV
$;LO$(LO);NV$
312 VTAB 10: HTAB 29: PRINT "
": VTAB 10:WW = DW
: GOSUB 600: HTAB 35 - LEN
(WW$) / 2: PRINT IV$;WW$;NV$
313 WW = 100 - INT (DM / SC * 1
00 + .5):WW = WW * (WW > 0):
W = INT (WW / 20): VTAB 13:
HTAB 30: IF W < 2 THEN PRINT
IV$;
314 PRINT ST$(W);":";WW;: IF PEEK
(36) > 30 THEN PRINT TAB(
40);" ";
315 PRINT NV$;
316 VTAB 5: HTAB 22: PRINT "
";: HTAB 22: PRINT WS: VTAB
7: HTAB 22: PRINT " ";: HTAB
22: PRINT WC - WS
320 POKE 32,12: FOR II = 1 TO 2
: POKE 33,(II - 1) * 9 + 6:I
K = II * 6 - 3: POKE 34,IK: POKE
35,IK + 4: PRINT HM$: FOR IJ
= 1 TO 4: VTAB IK + IJ: HTAB
1: PRINT ST(II,IJ);: NEXT IJ
,II
330 PRINT FS$: VTAB 15: HTAB 1:
WW = CA: GOSUB 600: PRINT "C
ash:";WW$; TAB( 21);:WW = BA
: GOSUB 600: PRINT "Bank:";W
W$; TAB( 40);" ": VTAB 9: HTAB
22: PRINT GN;: HTAB 7: PRINT
" ";: HTAB 7
340 IF MW < 0 THEN PRINT IV$;"
Overload";NV$
350 IF MW > = 0 THEN PRINT MW
;
360 RETURN
400 REM
410 POKE 32,0: POKE 33,40: POKE
34,18: POKE 35,24: PRINT HM$
;: RETURN
480 VTAB 17: HTAB 1:X = USR (4
): RETURN
490 VTAB 17: HTAB 1:X = USR (5
): RETURN
500 REM
510 GOSUB 400:X = USR (6): GOSUB
150: IF R1% THEN W = CA
530 IF CA > = W THEN CA = CA -
W:BA = BA + W: GOSUB 300: GOTO
550
540 PRINT : PRINT : PRINT T$;:X
= USR (8): PRINT CA: PRINT
"in cash.": CALL 2518: GOSUB
94: GOTO 510
550 GOSUB 400:X = USR (7): GOSUB
150: IF R1% THEN W = BA
570 IF BA > = W THEN BA = BA -
W:CA = CA + W: GOSUB 300: GOTO
590
580 PRINT : PRINT : PRINT T$;:X
= USR (8): PRINT BA: PRINT
"in the bank.": CALL 2518: GOSUB
94: GOTO 550
590 RETURN
600 IF WW < 1E6 THEN WW$ = STR$
( INT (WW)): RETURN
610 II = INT ( LOG (WW) / LT):I
J = INT (II / 3) * 3:IK = 1
0 ^ (II - 2):WW$ = LEFT$ ( STR$
( INT (WW / IK + .5) * IK /
10 ^ IJ),4) + " "
620 IF IJ = 3 THEN W$ = "Thousa
nd"
630 IF IJ = 6 THEN W$ = "Millio
n"
640 IF IJ = 9 THEN W$ = "Billio
n"
650 IF IJ = 12 THEN W$ = "Trill
ion"
680 WW$ = WW$ + W$
690 RETURN
1000 REM
1010 IF D < > 0 THEN GOSUB 49
0: GOSUB 400:X = USR (9): PRINT
LO$(D): GOSUB 96:BA = INT (
BA + BA * .005):DW = INT (D
W + DW * .1):TI = TI + 1:MO =
MO + 1:LO = D
1020 IF MO > 12 THEN YE = YE +
1:MO = 1:EC = EC + 10:ED = E
D + .5: FOR I = 1 TO 7: FOR
J = 1 TO 4:BP%(I,J) = BP%(I,
J) + FN R(2): NEXT J,I
1030 GOSUB 400: GOSUB 480: GOSUB
300: IF LO < > 1 THEN 1500
1040 IF LI < > 0 OR CA = 0 THEN
1120
1050 WW = 0:W = 1.8: IF TI > 12 THEN
WW = FN R(1000 * TI) + 1000
* TI:W = 1
1060 I = FN R(CA / W) + WW:WW =
I: GOSUB 600: GOSUB 400:X =
USR (10): PRINT WW$;" ";:X =
USR (11):CH$ = "NY": GOSUB
100: IF CH% < > 2 THEN 1120
1065 LI = 1:CA = CA - I: IF CA >
0 THEN 1100
1070 GOSUB 400: PRINT T$;:X = USR
(12): CALL 2512: PRINT : PRINT
:X = USR (13):CH$ = "YN": GOSUB
100
1080 IF CH% = 1 THEN DW = DW -
CA:CA = 0: GOSUB 400:X = USR
(14): CALL 2521: GOSUB 94
1090 IF CH% = 2 THEN CA = 0:LI =
0: GOSUB 400:X = USR (15): PRINT
T$;".": CALL 2518: GOSUB 94
1100 GOSUB 300
1120 IF DM = 0 THEN 1210
1130 GOSUB 400: PRINT T$;:X = USR
(16):CH$ = "YN": GOSUB 100: IF
CH% = 2 THEN 1210
1140 BR = INT (( FN R(60 * (TI +
3) / 4) + 25 * (TI + 3) / 4)
* SC / 50)
1142 WW = INT (DM / SC * 100 +
.5)
1145 GOSUB 400:X = USR (17): PRINT
WW;"% damaged.": PRINT :WW =
BR * DM + 1: GOSUB 600:X = USR
(18): PRINT WW$;","
1150 X = USR (19): GOSUB 150: IF
R1% = 1 THEN W = BR * DM + 1
: IF CA < W THEN W = CA
1155 IF CA < W THEN GOSUB 400:
PRINT T$;:X = USR (12): GOSUB
96: GOTO 1142
1160 WW = INT (W / BR + .5):DM =
DM - WW:CA = CA - W:DM = INT
(DM * (DM > 0)): GOSUB 300: GOSUB
400
1210 IF DW < 10000 OR WN OR D =
0 THEN 1300
1220 GOSUB 400: PRINT "Elder Br
other Wu has sent "; FN R(10
0) + 50;" braves": PRINT "to
escort you to the Wu mansio
n, ";T$;".":WN = 1: GOSUB 94
1230 GOSUB 400:X = USR (20): GOSUB
92
1240 GOSUB 400:X = USR (21): PRINT
T$;".";: GOSUB 92
1300 REM
1310 GOSUB 400:X = USR (22):CH
$ = "NY":WU% = 1: GOSUB 100:
WU% = 0: IF CH% < > 2 THEN
1500
1320 W = 0: FOR I = 1 TO 2: FOR
J = 1 TO 4:W = W + ST(I,J): NEXT
J,I: IF CA OR BA OR W OR GN THEN
1360
1330 BL% = BL% + 1:I = INT ( FN
R(1500) + 500):J = FN R(200
0) * BL% + 1500: GOSUB 400: PRINT
"Elder Brother is aware of y
our plight, ";T$;". He is
willing to loan you an add
itional ";I;" if you will pa
y back"
1340 PRINT J;". Are you willing
, ";T$;"? ";:CH$ = "YN": GOSUB
100: IF CH% = 2 THEN GOSUB
400: PRINT : PRINT "Very wel
l, Taipan, the game is over!
": CALL 2512: GOTO 2698
1350 CA = CA + I:DW = DW + J: GOSUB
400: PRINT "Very well, ";T$;
". Good joss!!": CALL 2521:
GOSUB 300: GOSUB 96: GOTO 1
500
1360 IF DW = 0 OR CA = 0 THEN 1
400
1370 GOSUB 400:X = USR (23): GOSUB
150: IF R1% THEN W = CA: IF
CA > DW THEN W = DW
1380 IF CA > = W THEN CA = CA -
W:DW = DW - W: GOSUB 300: GOTO
1400
1390 PRINT : PRINT : PRINT T$;"
, you have only ";CA: PRINT
"in cash.": CALL 2518: GOSUB
94: GOTO 1370
1400 GOSUB 400:X = USR (24): GOSUB
150: IF R1% THEN W = 2 * CA
1420 IF CA * 2 > = W THEN CA =
CA + W:DW = DW + W: GOSUB 30
0: GOTO 1450
1430 PRINT : PRINT : PRINT "He
won't loan you so much, ";T$
;"!": CALL 2518: GOSUB 94: GOTO
1400
1450 REM
1460 IF DW > 20000 AND NOT ( FN
R(5)) THEN GOSUB 400: PRINT
"Bad joss!!": PRINT FN R(3)
+ 1;" of your bodyguards ha
ve been killed": PRINT "by c
utthroats and you have been
robbed of all your cash, ";
T$;"!!": CALL 2512:CA = 0: GOSUB
300: GOSUB 94
1500 REM
1610 I = INT (1000 + FN R(1000
* (TI + 5) / 6)) * ( INT (S
C / 50) * (DM > 0) + 1): IF
CA < I OR FN R(4) THEN 1700
1615 W$ = CHR$ (15) + CHR$ (15
) + "damaged_______" + CHR$ (15) +
CHR$ (16) + "fine":WW = I: GOSUB
600
1620 GOSUB 400: PRINT "Do you w
ish to trade in your "; MID$
(W$,(DM = 0) * 25 + 1,25): PRINT
"ship for one with 50 more c
apacity by paying an addit
ional ";WW$;", ";T$;"? ";
1630 CH$ = "YN": GOSUB 100: IF C
H% = 1 THEN CA = CA - I:MW =
MW + 50:SC = SC + 50:DM = 0:
GOSUB 300
1700 REM
1710 I = INT ( FN R(1000 * (TI +
5) / 6) + 500): IF CA < I OR
FN R(3) THEN 1900
1720 WW = I: GOSUB 600: GOSUB 40
0: PRINT "Do you wish to buy
a ship's gun": PRINT "for "
;WW$;", ";T$;"? ";:CH$ = "NY
": GOSUB 100: IF CH% = 1 THEN
1900
1730 IF MW > = 10 THEN CA = CA
- I:GN = GN + 1:MW = MW - 1
0: GOSUB 300: GOTO 1900
1740 PRINT : PRINT : PRINT "You
r ship would be overburdened
, ";T$;"!": CALL 2518: GOSUB
94
1900 IF ST(2,1) = 0 OR LO = 1 OR
FN R(18) THEN 2000
1910 I = FN R(CA / 1.8):WW = I:
GOSUB 600: GOSUB 400: CALL
2512:X = USR (25) + USR (2
6): PRINT WW$;", ";T$;"!":MW
= MW + ST(2,1):ST(2,1) = 0:
CA = CA - I: GOSUB 300: GOSUB
94
2000 W = 0: FOR J = 1 TO 4:W = W
+ ST(1,J): NEXT J: IF W = 0
OR FN R(50) THEN 2100
2030 GOSUB 400: CALL 2512:X = USR
(25) + USR (27): PRINT T$;"
!": FOR J = 1 TO 4:W = ST(1,
J):WW = FN R(W / 1.8):WS =
WS - W + WW:ST(1,J) = WW: NEXT
J: GOSUB 300: GOSUB 96
2100 FOR I = 1 TO 4:CP(I) = BP%
(LO,I) / 2 * ( FN R(3) + 1) *
10 ^ (4 - I): NEXT I
2310 LI = LI AND FN R(20): IF L
I = 0 AND LI% > 0 THEN LI% =
LI% + 1: IF LI% > 4 THEN LI%
= 0
2330 IF LI = 0 AND LO < > 1 AND
FN R(4) THEN GOSUB 400:X =
USR (28): CALL 2521: GOSUB
94
2410 IF FN R(9) THEN 2500
2420 GOSUB 400:I = FN R(4) + 1
:J = FN R(2):K = FN R(2) *
5: PRINT T$;"!! The price o
f ";CO$(I)
2430 IF J = 0 THEN CP(I) = INT
(CP(I) / 5): PRINT "has drop
ped to ";CP(I);"!!": CALL 25
18
2440 IF J = 1 THEN CP(I) = CP(I
) * ( FN R(5) + 5):WW = CP(I
): GOSUB 600: PRINT "has ris
en to ";WW$;"!!": CALL 2518
2450 GOSUB 94
2500 REM
2501 GOSUB 400: IF CA > 25000 AND
NOT ( FN R(20)) THEN I = FN
R(CA / 1.4):WW = I: GOSUB 60
0:X = USR (25): PRINT "You'
ve been beaten up and robbed
of": PRINT WW$;" in cash, "
;T$;"!!": CALL 2512:CA = CA -
I: GOSUB 300: GOSUB 94: VTAB
22: HTAB 1: PRINT CE$
2510 GOSUB 400: PRINT T$;:X = USR
(29)
2515 FOR I = 1 TO 3 STEP 2: PRINT
TAB( 4); LEFT$ (CO$(I),7);"
: ";CP(I); TAB( 18); LEFT$ (
CO$(I + 1),7);": ";CP(I + 1)
: NEXT I
2520 I = CA + BA - DW: VTAB 22: HTAB
1: PRINT CE$
2522 IF LO < > 1 THEN X = USR
(30):CH$ = "BSQ"
2524 IF LO = 1 AND I < 1E6 THEN
X = USR (31) + USR (32):CH
$ = "BSQTV"
2526 IF LO = 1 AND I > = 1E6 THEN
X = USR (31) + USR (33):CH
$ = "BSQTVR"
2528 GOSUB 100: ON CH% GOTO 253
0,2570,2700,2620,2680,2695
2530 VTAB 23: HTAB 1: PRINT CE$
;"What do you wish me to buy
, ";T$;"? ";:CH$ = "OSAG": GOSUB
100:CO$ = CO$(CH%):CP = CP(C
H%)
2540 VTAB 22: HTAB 1: PRINT CE$
,IV$;: HTAB 31: PRINT " You
can ";: VTAB 23: HTAB 31: PRINT
" afford ";: VTAB 24: HTAB
31: PRINT " ";:W = INT
(CA / CP): IF W > 1E9 THEN W
= 1E9 - 1
2542 HTAB 36 - LEN ( STR$ (W))
/ 2: PRINT W;NV$;: VTAB 23:
HTAB 1: PRINT "How much ";C
O$;" shall": PRINT "I buy, "
;T$;"? ";: GOSUB 150: IF R1%
THEN W = INT (CA / CP): IF
W > 1E9 THEN W = 1E9 - 1
2550 IF W < 0 OR CA < W * CP THEN
CALL 2524: GOTO 2540
2560 MW = MW - W:CA = CA - W * C
P:ST(2,CH%) = ST(2,CH%) + W:
GOSUB 300: VTAB 22: HTAB 1:
CALL - 958: GOTO 2520
2570 VTAB 23: HTAB 1: PRINT CE$
;"What do you wish me to sel
l, ";T$;"? ";:CH$ = "OSAG": GOSUB
100:CO$ = CO$(CH%):CP = CP(C
H%)
2580 VTAB 22: HTAB 1: PRINT CE$
: PRINT "How much ";CO$;" sh
all": PRINT "I sell, ";T$;"?
";: GOSUB 150: IF R1% THEN
W = ST(2,CH%)
2590 IF W < 0 OR ST(2,CH%) < W THEN
CALL 2524: GOTO 2580
2600 MW = MW + W:CA = CA + W * C
P:ST(2,CH%) = ST(2,CH%) - W:
GOSUB 300: VTAB 22: HTAB 1:
PRINT CE$;: GOTO 2520
2620 REM
2622 W = 0: FOR I = 1 TO 2: FOR
J = 1 TO 4:W = W + ST(I,J): NEXT
J,I: IF W = 0 THEN VTAB 22:
HTAB 1: PRINT CE$;"You have
no cargo, ";T$;".": CALL 25
18: GOSUB 94: GOTO 2520
2624 FOR J = 1 TO 4: FOR K = 1 TO
2:I = 3 - K: IF ST(I,J) = 0 THEN
2634
2626 GOSUB 400: PRINT "How much
";CO$(J);" shall I move": PRINT
MID$ ("to the warehouseaboa
rd ship",K * 16 - 15,16);",
";T$;"? ";: GOSUB 150: IF R1
% THEN W = ST(I,J): IF W > (
WC - WS) AND K = 1 THEN W =
(WC - WS)
2627 IF K = 2 THEN 2630
2628 IF W > 0 AND WS = WC THEN
PRINT : PRINT : PRINT "Your
warehouse is full, ";T$;"!"
: CALL 2518: GOSUB 94: GOTO
2626
2629 IF W > (WC - WS) THEN PRINT
: PRINT : PRINT "Your wareho
use will only hold an": PRINT
"additional ";WC - WS;", ";T
$;"!";: CALL 2518: GOSUB 94:
GOTO 2626
2630 IF W > ST(I,J) THEN PRINT
: PRINT : PRINT "You have on
ly ";ST(I,J);", ";T$;".": CALL
2518: GOSUB 94: GOTO 2626
2632 ST(I,J) = ST(I,J) - W:ST(K,
J) = ST(K,J) + W:MW = MW + SGN
(I - K) * W:WS = WS + SGN (
I - K) * W: GOSUB 300
2634 NEXT K,J: GOTO 2500
2680 REM
2690 GOSUB 500: GOTO 2500
2695 OK = 16
2696 GOSUB 400: PRINT IV$; TAB(
26): PRINT : PRINT " Y o u '
r e a"; TAB( 26): PRINT
: PRINT TAB( 26): PRINT : PRINT
" M I L L I O N A I R E ! ":
PRINT TAB( 26): PRINT NV$:
GOSUB 96
2698 : GOSUB 20000
2699 PRINT "Play again? ";:CH$ =
"NY": GOSUB 100: ON CH% GOTO
63999: RUN
2700 REM
2810 IF MW < 0 THEN GOSUB 400:
PRINT "You're ship is overl
oaded, ";T$;"!!": CALL 2518:
GOSUB 94: GOTO 2500
3010 GOSUB 400: PRINT T$;", do
you wish to go to:": PRINT "
1) Hong Kong, 2) Shanghai, 3
) Nagasaki, 4) Saigon, 5) Ma
nila, 6) Singapore, or 7) B
atavia ? ";
3020 CH$ = "1234567": GOSUB 100:
D = CH%: IF D = LO THEN PRINT
: PRINT : PRINT "You're alre
ady here, ";T$;".";: CALL 25
18: GOSUB 94: GOTO 3010
3030 LO = 0: GOSUB 300: GOSUB 40
0: GOSUB 490
3100 REM
3110 IF FN R(BP) THEN 3200
3120 SN = FN R(SC / 10 + GN) +
1: GOSUB 400: CALL 2512: PRINT
SN;" hostile ship"; MID$ ("s
",(SN = 1) + 1,1);" approach
ing, ";T$;"!!": GOSUB 96:F1 =
1: GOTO 5000
3200 REM
3210 IF FN R(4 + 8 * LI) THEN
3300
3220 GOSUB 400: PRINT "Li Yuen'
s pirates, ";T$;"!!": CALL 2
521: GOSUB 94: IF LI THEN PRINT
: PRINT "Good joss!! They le
t us be!!": CALL 2521: GOSUB
94: GOTO 3300
3230 SN = FN R(SC / 5 + GN) + 5
: GOSUB 400: PRINT SN;" ship
s of Li Yuen's pirate": PRINT
"fleet, ";T$;"!!": CALL 2512
: GOSUB 94:F1 = 2: GOTO 5000
3300 REM
3310 IF FN R(10) THEN 3350
3320 GOSUB 400: PRINT "Storm, "
;T$;"!!": CALL 2521: GOSUB 9
4: IF NOT ( FN R(30)) THEN
PRINT : PRINT " I think w
e're going down!!": CALL 252
1: GOSUB 94: IF FN R(DM / S
C * 3) THEN PRINT : PRINT "
We're going down, Taipan!!":
CALL 2512:OK = 1: GOTO 2698
3330 PRINT : PRINT " We made
it!!": CALL 2521: GOSUB 94:
IF FN R(3) THEN 3350
3340 LO = FN R(7) + 1: ON (LO =
D) GOTO 3340: GOSUB 400: PRINT
"We've been blown off course
": PRINT "to ";LO$(LO):D = L
O: GOSUB 94
3350 LO = D: GOTO 1000
5000 REM
5030 LC = 0:CMD = 0: PRINT FS$;H
M$
5050 VTAB 1: HTAB 1: PRINT "
ships attacking, ";T$;"!":
VTAB 1: HTAB 32: PRINT CG$;
"!": VTAB 2: HTAB 32: PRINT
"!": VTAB 3: HTAB 32: PRINT
"<::::::::";CS$: VTAB 2: HTAB
37: PRINT "guns": VTAB 1: HTAB
34: PRINT "We have";
5060 PRINT "Your orders are to:
"
5080 FOR I = 0 TO 9:AM%(I,0) =
0:AM%(I,1) = 0: NEXT I:SA =
SN:S0 = SN:BT = FN R(TI / 4
* 1000 * SN ^ 1.05) + FN R
(1000) + 250:SS = 0
5090 REM
5100 GOSUB 5760: GOSUB 5700:LC =
CMD: VTAB 12: HTAB 40: PRINT
MID$ ("+ ", NOT (SA) + 1,1)
5160 DM = INT (DM):WW = 100 - INT
(DM / SC * 100): IF WW < 0 THEN
WW = 0
5162 VTAB 4: PRINT "Current sea
worthiness: ";ST$( INT (WW /
20));" (";WW;"%)": GOSUB 560
0: VTAB 4: PRINT CL$
5165 IF WW = 0 THEN OK = 0: GOTO
5900
5175 GOSUB 5600
5180 ON CMD GOTO 5200,5300,5400
5190 VTAB 4: PRINT T$;", what s
hall we do??": CALL 2512: GOSUB
5600: ON (CMD = 0) + 1 GOTO
5500,5180
5200 REM
5205 VTAB 4: HTAB 1: PRINT CL$:
VTAB 4: PRINT "Aye, we'll r
un, ";T$;"!": GOSUB 96: VTAB
4: PRINT CL$
5207 IF LC = 1 OR LC = 3 THEN O
K = OK + IK:IK = IK + 1
5208 IF LC = 0 OR LC = 2 THEN O
K = 3:IK = 1
5210 IF FN R(OK) > FN R(SN) THEN
VTAB 4: PRINT "We got away
from 'em, ";T$;"!!": CALL 25
18: GOSUB 96: VTAB 4: PRINT
CL$:OK = 3: GOTO 5900
5220 VTAB 4: PRINT "Can't lose
'em!!": GOSUB 5600: VTAB 4: PRINT
CL$
5230 IF SN > 2 AND FN R(5) = 0
THEN W = FN R(SN / 2) + 1:
SN = SN - W:SA = SA - W: GOSUB
5680: GOSUB 5750: VTAB 4: PRINT
"But we escaped from ";W;" o
f 'em, ";T$;"!": GOSUB 5600:
VTAB 4: PRINT CL$
5240 GOTO 5500
5300 REM
5302 IF GN = 0 THEN VTAB 4: HTAB
1: PRINT "We have no guns, "
;T$;"!!": GOSUB 5600: VTAB 4
: PRINT CL$: GOTO 5500
5305 VTAB 4: HTAB 1: PRINT CL$:
VTAB 4: PRINT "Aye, we'll f
ight 'em, ";T$;"!": GOSUB 56
00: VTAB 4: PRINT CL$
5310 SK = 0: VTAB 4: PRINT "We'r
e firing on 'em, ";T$;"!": FOR
K = 1 TO GN: IF SN = 0 THEN
5340
5320 I = FN R(10): IF AM%(I,0) =
0 THEN 5320
5330 GOSUB 5840:AM%(I,1) = AM%(
I,1) + FN R(30) + 10: IF AM
%(I,1) > AM%(I,0) THEN AM%(I
,0) = 0:AM%(I,1) = 0: GOSUB
5860: GOSUB 5820:SK = SK + 1
:SN = SN - 1:SS = SS - 1: GOSUB
5750: IF SS = 0 THEN GOSUB
5700
5340 NEXT K: IF SK > 0 THEN VTAB
4: HTAB 1: PRINT "Sunk ";SK;
" of the buggers, ";T$;"!": CALL
2521: GOSUB 5600: VTAB 4: PRINT
CL$
5350 IF SK = 0 THEN VTAB 4: HTAB
1: PRINT "Hit 'em, but didn'
t sink 'em, ";T$;"!": GOSUB
5600: VTAB 4: PRINT CL$
5360 IF FN R(S0) < SN * .6 / F
1 OR SN = 0 OR SN = S0 OR SN
< 3 THEN 5500
5362 W = FN R(SN / 3 / F1) + 1:
SN = SN - W:SA = SA - W: GOSUB
5680
5390 VTAB 4: PRINT W;" ran away
, ";T$;"!": GOSUB 5750: CALL
2521: GOSUB 5600: VTAB 4: PRINT
CL$: GOTO 5500
5400 REM
5410 GOSUB 400: PRINT "You have
the following on board, ";T
$;":";: FOR J = 1 TO 4: VTAB
20 + (J = 3 OR J = 4): HTAB
1 + 19 * (J = 2 OR J = 4): PRINT
RIGHT$ (" " + LEFT$
(CO$(J),7),9);": ";ST(2,J): NEXT
J
5420 VTAB 4: PRINT "What shall
I throw overboard, ";T$;"? "
;:CH$ = "OSAG*": GOSUB 100: VTAB
4: HTAB 1: PRINT CL$
5430 IF CH% = 5 THEN II = 1:IJ =
4:IK = 1E9: GOTO 5450
5440 VTAB 4: PRINT "How much, "
;T$;"? ";: GOSUB 150:II = CH
%:IJ = CH%: IF R1% THEN W =
ST(2,II)
5450 WW = 0: FOR J = II TO IJ:IK
= ST(2,J): IF W > IK THEN W
= IK
5460 ST(2,J) = ST(2,J) - W:WW =
WW + W:MW = MW + W: NEXT J: VTAB
4: HTAB 1: PRINT CL$
5470 IF WW = 0 THEN VTAB 4: PRINT
"There's nothing there, ";T$
;"!": CALL 2518: GOSUB 5600:
VTAB 4: PRINT CL$
5480 GOSUB 400: IF WW > 0 THEN
RF = RF + WW / 3:OK = OK + W
W / 10: VTAB 4: PRINT "Let's
hope we lose 'em, ";T$;"!":
CALL 2521: GOSUB 5600: VTAB
4: PRINT CL$: GOTO 5210
5500 REM
5505 IF SN = 0 THEN VTAB 4: PRINT
"We got 'em all, ";T$;"!!": CALL
2521: GOSUB 5600:OK = 1: GOTO
5900
5510 VTAB 4: PRINT "They're fir
ing on us, ";T$;"!": GOSUB 5
600: VTAB 4: PRINT CL$
5540 FOR I = 1 TO 10: POKE - 1
6298,0: POKE - 16299,0: POKE
- 16297,0: POKE - 16300,0:
FOR J = 1 TO 10: NEXT J,I
5542 VTAB 4: PRINT "We've been
hit, ";T$;"!!": CALL 2512
5545 I = SN: IF I > 15 THEN I =
15
5550 IF GN THEN IF FN R(100) <
(DM / SC) * 100 OR (DM / SC)
* 100 > 80 THEN I = 1: GOSUB
5600: VTAB 4: PRINT CL$: VTAB
4: PRINT "The buggers hit a
gun, ";T$;"!!": CALL 2512:GN
= GN - 1:MW = MW + 10: GOSUB
5600: VTAB 4: PRINT CL$
5555 DM = DM + FN R(ED * I * F1
) + I / 2
5560 IF NOT ( FN R(20)) AND F1
= 1 THEN OK = 2: GOTO 5900
5590 GOTO 5090
5600 VTAB 2: HTAB 21: FOR II =
1 TO T / 3
5610 W = PEEK ( - 16384): IF W <
128 THEN NEXT II: PRINT : RETURN
5620 IF W = 210 THEN CMD = 1: PRINT
"Run "
5630 IF W = 198 THEN CMD = 2: PRINT
"Fight "
5640 IF W = 212 THEN CMD = 3: PRINT
"Throw cargo"
5650 POKE - 16368,0: PRINT
5670 RETURN
5680 IF SA > = 0 THEN RETURN
5681 I = 9: FOR IJ = SA TO - 1
5682 IF AM%(I,0) = 0 THEN I = I
- 1: GOTO 5682
5683 AM%(I,0) = 0:AM%(I,1) = 0: GOSUB
5880: GOSUB 5820:I = I - 1:S
S = SS - 1: NEXT IJ: RETURN
5700 REM
5710 FOR I = 0 TO 9: IF AM%(I,0
) THEN 5740
5720 SA = SA - 1: IF SA < 0 THEN
SA = 0: RETURN
5730 AM%(I,0) = FN R(EC) + 20:A
M%(I,1) = 0: GOSUB 5800:SS =
SS + 1
5740 NEXT I: RETURN
5750 REM
5760 VTAB 1: HTAB 1: PRINT RIGHT$
(" " + STR$ (SN),4)
5770 VTAB 2: HTAB 33: PRINT RIGHT$
(" " + STR$ (GN),3): RETURN
5800 GOSUB 5880: HTAB X: VTAB Y
: PRINT SH$: RETURN
5820 GOSUB 5880: HTAB X: VTAB Y
: PRINT SB$: RETURN
5840 GOSUB 5880: POKE 2493,(Y +
4) * 8 - 1: POKE 2494,X - 1:
FOR J = 0 TO 1:IJ = FN R(6
):II = DL%(IJ,J): HTAB X + INT
(II / 10): VTAB Y + II - INT
(II / 10) * 10: PRINT DM$(IJ
,J): NEXT J: CALL 2368: RETURN
5860 GOSUB 5880: POKE 2361,(Y +
4) * 8 - 1: POKE 2362,X - 1:
POKE 2300, FN R( FN R(192))
: CALL 2224: RETURN
5880 X = (I - INT (I / 5) * 5) *
8 + 1:Y = INT (I / 5) * 6 +
7: RETURN
5900 GOSUB 200: GOSUB 300: GOSUB
400
5910 IF OK = 0 THEN PRINT "The
buggers got us, ";T$;"!!!":
PRINT "It's all over, now!!
!":OK = 1: GOTO 2698
5920 IF OK = 1 THEN GOSUB 400:
PRINT "We've captured some
booty":WW = BT: GOSUB 600: PRINT
"It's worth ";WW$;"!": CALL
2518:CA = CA + BT: GOSUB 96:
GOTO 3300
5930 IF OK = 2 THEN PRINT "Li
Yuen's fleet drove them off!
": GOSUB 96: GOTO 3220
5940 IF OK = 3 THEN PRINT "We
made it, ";T$;"!": CALL 2518
: GOSUB 96: GOTO 3300
10000 REM
10010 CALL 6147: POKE 1013,76: POKE
1014,224: POKE 1015,9: POKE
10,76: POKE 11,16: POKE 12,1
1: POKE 1010,102: POKE 1011,
213: POKE 1012,112: DIM LO$(
7),CO$(4),CP(4),BP%(7,4),ST(
2,4),AM%(9,1),DM$(5,1),DL%(5
,1),ST$(5)
10020 DEF FN R(X) = INT ( USR
(0) * X)
10040 HM$ = CHR$ (16):CS$ = CHR$
(1) + "0":CA$ = CHR$ (1) +
"1":CG$ = CHR$ (1) + "2":BD
$ = CHR$ (2):CD$ = CHR$ (3
):DD$ = CHR$ (4):IV$ = CHR$
(9):NV$ = CHR$ (14):FS$ = CHR$
(25):CE$ = CHR$ (6):CL$ = CHR$
(5)
10045 IF PEEK (2367) = 236 THEN
10070
10050 POKE - 16368,0
10060 FOR I = 1 TO 400:CH% = PEEK
( - 16384):X = USR (0): IF
CH% < 128 THEN NEXT
10062 VTAB 20: HTAB 31: PRINT I
V$;CA$;"'ESC'";: FOR I = 1 TO
20:X = USR (0): IF PEEK ( -
16384) < > 155 THEN NEXT :
VTAB 20: HTAB 31: PRINT NV$
;CA$ + "'ESC'";: FOR I = 1 TO
20:X = USR (0): IF PEEK ( -
16384) < > 155 THEN NEXT :
GOTO 10062
10070 POKE 2367,236: POKE - 16
368,0: PRINT NV$;FS$;HM$
10110 VTAB 8: HTAB 1: PRINT CG$
;"[";: & 45,38: PRINT "]";: FOR
I = 1 TO 8: PRINT "!"; TAB(
40);"!";: NEXT I: PRINT "<";
: & 58,38: PRINT ">";CS$
10120 VTAB 10: HTAB 7: PRINT CS
$;T$;",": VTAB 12: HTAB 3: PRINT
"What will you name your": VTAB
15: HTAB 13: & 45,22: VTAB 1
4: HTAB 7: PRINT "Firm: ";CA
$;: & 32,27: VTAB 14: HTAB 1
3: POKE 33,39: CALL 2200: POKE
33,40:WK$ = MID$ (WK$,1): IF
WK$ = "" THEN CALL 2521: GOTO
10120
10130 IF LEN (WK$) > 22 THEN PRINT
: VTAB 18: PRINT IV$;: & 32,
42: PRINT "Please limit your
Firm's name to 22 chara
cters or less.";: & 32,59: PRINT
NV$: CALL 2518: GOSUB 92: VTAB
18: PRINT CE$: GOTO 10120
10140 H$ = WK$: PRINT HM$;CS$: VTAB
6: PRINT "Do you want to sta
rt . . .": PRINT : PRINT : PRINT
" 1) With cash (and a debt)
": PRINT : PRINT : PRINT ,">
> or <<": PRINT : PRINT : PRINT
" 2) With five guns and no
cash": PRINT ,"(But no debt!
)"
10150 PRINT : PRINT : PRINT TAB(
10);" ?";:CH$ = "12": GOSUB
100:MO = 1:YE = 1860:SC = 60
:BA = 0:LO = 1:TI = 1:WC = 1
0000:WS = 0
10160 IF CH% = 1 THEN DW = 5000
:CA = 400:MW = 60:GN = 0:BP =
10
10170 IF CH% = 2 THEN DW = 0:CA
= 0:MW = 10:GN = 5:BP = 7
10180 FOR I = 0 TO 7: READ LO$(
I): NEXT I: DATA At sea,Hong
Kong,Shanghai,Nagasaki,Saig
on,Manila,Singapore,Batavia
10190 FOR I = 1 TO 4: READ CO$(
I): FOR J = 1 TO 7: READ BP%
(J,I): NEXT J,I
10200 DATA Opium,11,16,15,14,1
2,10,13,Silk,11,14,15,16,10,
13,12,Arms,12,16,10,11,13,14
,15,General Cargo,10,11,12,1
3,14,15,16
10210 FOR I = 0 TO 5: READ ST$(
I): NEXT I: DATA "Critical",
" Poor"," Fair"," Good","
Prime","Perfect"
10250 SH$ = BD$ + CG$ + "ABCDEFG
" + CD$ + "HIJKLMN" + CD$ +
"OIJKLPQ" + CD$ + "RSTUVWX" +
CD$ + "YJJJJJZ" + DD$
10260 SB$ = BD$: FOR II = 1 TO 5
:SB$ = SB$ + " " + CD$
: NEXT II:SB$ = SB$ + DD$
10270 FOR I = 0 TO 5: FOR J = 0
TO 1:CH$ = BD$ + CG$
10280 READ WK$:CH$ = CH$ + WK$:
IF RIGHT$ (CH$,1) = "*" THEN
CH$ = MID$ (CH$,1, LEN (CH$
) - 1) + CD$: GOTO 10280
10290 DM$(I,J) = CH$ + DD$: READ
DL%(I,J): NEXT J,I
10300 DATA cde,20,r,3,fg*,mn,50
,tu,23,ij,11,vw,43,0,22,x*,z
,63,kl,32,12,14,pq,52,345,34
10310 EC = 20:ED = .5
10990 GOSUB 200: GOTO 1000
20000 REM
20010 WW = CA + BA - DW: GOSUB 6
00:WW = INT ((CA + BA - DW)
/ 100 / TI ^ 1.1)
20020 PRINT FS$;HM$;CS$;: PRINT
"Your final status:": PRINT
: PRINT "Net Cash: ";WW$: PRINT
: PRINT "Ship size: ";SC;" u
nits with ";GN;" guns": PRINT
20030 PRINT "You traded for "; INT
(TI / 12);" year"; MID$ ("s"
,(TI > 11 AND TI < 24) + 1,1
);" and ";TI - INT (TI / 12
) * 12;" month"; MID$ ("s",(
(TI - INT (TI / 12) * 12) =
1) + 1,1): PRINT : PRINT IV$
;"Your score is ";WW;".";NV$
20040 VTAB 14: PRINT "Your Rati
ng:": PRINT CG$;"[";: & 45,3
1: PRINT "]": FOR I = 1 TO 5
: PRINT "!";: HTAB 33: PRINT
"!": NEXT I: PRINT "<";: & 5
8,31: PRINT ">";CS$: VTAB 16
20050 HTAB 2: IF WW > 49999 THEN
PRINT IV$;
20060 PRINT "Ma Tsu";NV$;"
50,000 and over "
20070 HTAB 2: IF WW < 50000 AND
WW > 7999 THEN PRINT IV$;
20080 PRINT "Master ";T$;NV$;"
8,000 to 49,999"
20090 HTAB 2: IF WW < 8000 AND
WW > 999 THEN PRINT IV$;
20100 PRINT T$;NV$;" 1
,000 to 7,999"
20110 HTAB 2: IF WW < 1000 AND
WW > 499 THEN PRINT IV$;
20120 PRINT "Compradore";NV$;"
500 to 999"
20130 HTAB 2: IF WW < 500 THEN
PRINT IV$;
20140 PRINT "Galley Hand";NV$;"
less than 500"
20170 VTAB 11
20180 IF WW < 99 AND WW > = 0 THEN
PRINT "Have you considered
a land based job?": PRINT
20190 IF WW < 0 THEN PRINT "Th
e crew has requested that yo
u stay on shore for their sa
fety!!": PRINT
20900 VTAB 23: RETURN
63999 PRINT FS$;HM$: TEXT : HOME
: POKE 103,1: POKE 104,8: END
]
|