]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 ]