520 IF FL% = 2 THEN X% = 0: FOR I = 1 TO 750: NEXT : GOTO 620
540 GOSUB 7000:X% = VAL(A$) -1: FOR I = 1 TO 750: NEXT : GOTO 620
560 Q$ = Q$(0): POKE -16368,0: POKE -16384,0
580 POKE 224,58: POKE 225,0: POKE 226,180: CALL 3090: FOR I = 1 TO 600: NEXT : POKE 224,58: POKE 225,0: CALL 3090: FOR I = 1 TO 25:J = PEEK( -16384): IF J <177 OR J >179 THEN J = RND(1): NEXT : GOTO 580
600 I = 40: NEXT : GET A$: POKE -16368,0:X% = VAL(A$) -1
620 J = 123 +15 *X%: FOR I = J TO J +8: FOR I1 = 72 TO 78: XDRAW 15 AT I1,I: NEXT : NEXT : ON FL% -1 GOTO 680:ZB = 8: FOR I1 = 0 TO 7: IF PD% < = PU(PL% -1,0,I1,0) THEN ZB = I1:I1 = 7
640 NEXT :PZ = RND(1):ZA = 3: FOR I = 1 TO 2: IF PU(PL% -1,X%,ZB,I)/DF(H%) >PZ THEN ZA = I:I = 2
660 NEXT I: FOR I = 1 TO ZA: GOSUB 860: NEXT :PN = ZA:T%(PL%) = 2:TP%(PL%) = TP%(PL%) +ZA
760 FOR I = 63 TO 65: XDRAW I AT BX%,BY% -9: FOR I1 = 1 TO 20: NEXT : XDRAW I AT BX%,BY% -9: NEXT : FOR I = 65 TO 63 STEP -1: XDRAW I AT BX%,BY% -9: FOR I1 = 1 TO 20: NEXT : XDRAW I AT BX%,BY% -9: NEXT : XDRAW 63 AT BX%,BY% -9:I1 = -16336:I = PEEK(I1) - PEEK(I1): FOR I = BX% TO BX% +PR%: HCOLOR= 3: DRAW 66 AT I,BY%: FOR I1 = 1 TO 15: NEXT : HCOLOR= 0: DRAW 66 AT I,BY%: NEXT : HCOLOR= 3: DRAW 66 AT I -1,BY%
780 PN = PN -1: IF PN = 0 THEN I9 = 500 *( RND(1) >.95): FOR I1 = 1 TO 1 +I9: NEXT :I1 = -16336:I1 = PEEK(I1) - PEEK(I1): HCOLOR= 0: DRAW 62 AT 245,BY%: DRAW 66 AT I -1,BY%: HCOLOR= 3: DRAW 66 AT 247,BY% +4: FOR I = 1 TO 2500: NEXT : POKE 10,1: GOTO 4000
800 FOR I = 1 TO 750: NEXT :PD% = ABS(PD% -(PR%/2)):PF% = PF% +1:FL% = 2:ZB = ((PD% >2) +(PD% >5)): CALL 3102: GOTO 460
820 POKE 224,195: POKE 225,0: POKE 226,78:Q$ = STR$(PD%) +" FT": IF PD% = 0 THEN Q$ = "<1 FT"
880 Q$ = Q$(1): PRINT "<CTRL-G>": POKE 10,1: FOR J = 1 TO 5: CALL 3078: FOR I9 = 1 TO 400: NEXT : CALL 3078: FOR I9 = 1 TO 300: NEXT : NEXT :CO = 3 +12 *( RND(1) >.9): IF FL% = 2 THEN XDRAW 67 AT X,Y: GOTO 3280
900 D0 = D: GOTO 3260
920 Q$ = Q$(2): PRINT "<CTRL-G><CTRL-G>": POKE 10,1: FOR J = 1 TO 5: CALL 3072: FOR I9 = 1 TO 400: NEXT : CALL 3078: FOR I9 = 1 TO 300: NEXT : NEXT : IF FL% = 2 THEN X = LX%:Y = LY%:X% = X:Y% = Y:DL = 0:E3 = 0:E4 = 0: CALL 3096:CO = PEEK(5): GOTO 960
960 DL = DL +1:X% = X +E2 *DL +(E4 * ABS(DE) *(DL ^2/D ^2)):Y% = Y +E1 *DL +(E3 * ABS(DE) *(DL ^2/D ^2)): CALL 3096: IF PEEK(5) < >6 THEN CO = PEEK(5):LX% = X%:LY% = Y%: GOTO 960
980 X% = LX%:Y% = LY%:X = X%:Y = Y%: GOSUB 860:D0 = D +1: NEXT D0: GOTO 3280
1000 Q$ = Q$(3): PRINT "<CTRL-G><CTRL-G><CTRL-G>": POKE 10,1: FOR J = 1 TO 5: CALL 3078: FOR I9 = 1 TO 400: NEXT : CALL 3078: FOR I9 = 1 TO 300: NEXT : NEXT :T%(PL%) = 2: GOSUB 860:D0 = D: NEXT D0:CO%(PL%) = 1:GH%(PL%) = GH%(PL%) +(S%(H% +(H% >9),PL%) < = VAL( MID$ (G$,H%,1))): GOTO 3300
1020 Q$ = Q$(4): PRINT "<CTRL-G><CTRL-G>": POKE 10,1: FOR J = 1 TO 5: CALL 3078: FOR I9 = 1 TO 400: NEXT : CALL 3078: FOR I9 = 1 TO 300: NEXT : NEXT : GOSUB 860: GOSUB 860: CALL 3102: GOTO 2040
1040 FL% = 2: IF ( RND(1) >.8 OR ( RND(1) >.25 AND T$ = "R") OR ( RND(1) >.4 AND ID$(PL%) = "C") OR (CL% = 15 AND RND(1) >.1)) GOTO 3260
1060 Q$ = Q$(5): PRINT "<CTRL-G>": POKE 10,1: FOR J = 1 TO 5: CALL 3078: FOR I9 = 1 TO 400: NEXT : CALL 3078: FOR I9 = 1 TO 300: NEXT : NEXT :LX% = X%:LY% = Y%:DV = INT((10 + RND(1) *30)/SC(H%)):DI = RND(1) *2 *PI:E2 = COS(DI):E1 = SIN(DI):X = X%:Y = Y%: FOR DL = 0 TO DV STEP DV/5:X% = X +DL *E2:Y% = Y +DL *E1
1070 IF (X% <0 OR X% >279 OR Y% <0 OR Y% >191) GOTO 1020
1080 CALL 3096:CO = PEEK(5): XDRAW 67 AT X%,Y%: IF CO < >6 THEN LX% = X%:LY% = Y%
1100 : FOR I = 1 TO 100: NEXT : NEXT :X = X%:Y = Y%: ON CO +1 GOTO 3280,3280,3280,880,3280,3280,920,880
1120 J = INT( SQR((TX%(H%) -HX%(H%)) ^2 +(TY%(H%) -HY%(H%)) ^2)): FOR I = 1 TO P1%:YD(I) = J: NEXT : RETURN
1140 POKE 10,1: CALL 3072: XDRAW 67 AT XL(PL%),YL(PL%): CALL 3078: FOR I9 = 1 TO 50: NEXT : XDRAW 67 AT XL(PL%),YL(PL%): CALL 3072: FOR I9 = 1 TO 50: IF PEEK( -16384) <128 THEN NEXT : GOTO 1140
1160 I9 = 50: NEXT I9: RETURN
1180 A1 = DR%(PL%) -WD%: IF A1 <0 THEN A1 = A1 +360
2740 POKE 10,1: CALL 3072: XDRAW 67 AT XL(PL%),YL(PL%): XDRAW 68 AT X%,Y%: CALL 3078: FOR I9 = 1 TO 50: NEXT : XDRAW 67 AT XL(PL%),YL(PL%): XDRAW 68 AT X%,Y%: CALL 3072: FOR I9 = 1 TO 50: IF PEEK( -16384) <128 THEN NEXT : GOTO 2740
2760 I9 = 50: NEXT I9: GET A$: PRINT : IF ASC(A$) < >13 THEN DI% = 361: GOTO 2640
2780 LN% = LN% +8:Q$ = Q$(9): POKE -16368,0
2800 GOSUB 1140: GET CL$: IF CL$ = "N" THEN CL$ = Q$(10):DE = 0: GOTO 2940
2820 IF CL$ = "H" THEN CL$ = Q$(11):DE = - RND(1): GOTO 2940
2840 IF CL$ = "S" THEN CL$ = Q$(12):DE = RND(1): GOTO 2940
2860 IF CL$ = "D" THEN CL$ = Q$(13):DE = - RND(1)/2: GOTO 2940
2880 IF CL$ = "F" THEN CL$ = Q$(14):DE = RND(1)/2: GOTO 2940
3100 X = XL(PL%) +E2 *D0 +(E4 * ABS(DE) *(D0 ^2/D ^2)):X% = X:Y = YL(PL%) +E1 *D0 +(E3 * ABS(DE) *(D0 ^2/D ^2)):Y% = Y: IF X <0 OR Y <0 OR X >279 OR Y >191 GOTO 1020
3120 CALL 3096:CO = PEEK(5): IF CO < >6 THEN LX% = X%:LY% = Y%:DL = D0
3140 XDRAW 67 AT X%,Y%: IF (B <3 OR (B >7 AND B <21) OR B >23) GOTO 3180
3160 IF CO = 5 GOTO 1040
3180 IF B <C%(PL% -1,CL%,4) GOTO 3260
3200 IF CO = 3 OR CO = 7 GOTO 880
3220 IF CO = 6 GOTO 920
3240 IF (CO = 1 AND ABS(X -HX%(H%)) <.08 AND ABS(Y -HY%(H%)) <.08 AND RND(1) >.6) THEN XDRAW 69 AT HX%(H%),HY%(H%): GOTO 1000
3260 B = B +1: NEXT D0: XDRAW 67 AT X%,Y%
3280 XL(PL%) = X:YL(PL%) = Y:T%(PL%) = 0:YD(PL%) = SQR((X -HX%(H%)) ^2 +(Y -HY%(H%)) ^2) *SC(H%):CO%(PL%) = CO: GOSUB 860: FOR I = 1 TO 3: XDRAW 67 AT X%,Y%: FOR J = 1 TO 150: NEXT : XDRAW 67 AT X%,Y%: FOR J = 1 TO 100: NEXT J,I: IF YD(PL%) <3 THEN CO%(PL%) = 1
3300 CALL 3102
4000 P% = P% +1: IF P% >P1% THEN 4040
4020 IF T%(O1%(P%)) = 1 THEN 2040
4040 P2% = 0: FOR I = 1 TO P1%:P2% = P2% +T%(I): NEXT : IF P2%/2 = P1% GOTO 4120
4060 FOR I = 1 TO P1%:YE(I) = YD(I): NEXT : FOR I = 1 TO P1%:O% = 1: FOR J = 1 TO P1%: IF YD(J) < = YD(O%) GOTO 4100
4080 O% = J
4100 NEXT J:O1%(I) = O%:YD(O%) = -1: NEXT I: FOR I = 1 TO P1%:YD(I) = YE(I): NEXT : GOTO 2020
4120 IF P1% = 1 THEN 4220
4140 FOR I = 1 TO P1%:O3%(I) = S%(H% +(H% >9),O2%(I)): NEXT
4160 F% = 0: FOR I = 1 TO (P1% -1): IF O3%(I) < = O3%(I +1) THEN 4200
4200 NEXT : ON F% GOTO 4160: FOR I = 1 TO P1%:O1%(I) = O2%(I): NEXT
4220 POKE -16303,0: POKE 34,0: VTAB (H% +1 +(H% >9)): FOR J = 1 TO P1%: HTAB 13 +6 *J: PRINT S%(H% +(H% >9),J);: NEXT J: INVERSE : VTAB 11: FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(10,J) <10 THEN PRINT " ";
4240 PRINT S%(10,J);: NEXT J: NORMAL : IF H% <10 THEN 4300
4260 VTAB 21: INVERSE : FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(20,J) <10 THEN PRINT " ";
4280 PRINT S%(20,J);: NEXT J: NORMAL
4300 VTAB 22: FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(21,J) <10 THEN PRINT " ";
4320 PRINT S%(21,J);: NEXT J: VTAB 24: POKE 34,23:H% = H% +1: IF H% <19 GOTO 5000
4340 POKE 4096,P1%: POKE 4097,CN%: POKE 4098,CB%: POKE 4099,NC%: FOR I = 1 TO P1%: POKE 4099 +I,S%(21,I)
4360 POKE 4104 +I,GH%(I): POKE 4109 +I,TP%(I):I1 = 4115 +(I -1) *5: POKE I1,IG%(I): FOR J = 1 TO 3: POKE I1 +J, ASC( MID$ (PL$(I),J,1)): NEXT : NEXT : FOR I = 1 TO NC%:I1 = 4135 +(I -1) *30: POKE I1, LEN(A$(I)): FOR J = 1 TO LEN(A$(I)): POKE I1 +J, ASC( MID$ (A$(I),J,1)): NEXT : NEXT
4380 A$ = Q$(16): POKE -16384,0: POKE -16368,0: FOR J = 0 TO 1E +20: VTAB 24: HTAB 1: PRINT A$;: HTAB 1: FOR I = 1 TO 750: NEXT : CALL -868: FOR I = 1 TO 40: IF PEEK( -16384) < >141 THEN NEXT : NEXT : END
4400 I = 40: NEXT :J = 1E +21: NEXT : TEXT : HOME
4420 ONERR GOTO 4480
4440 VTAB 11: PRINT " "Q$(17):A$ = Q$(21): POKE -16384,0: POKE -16368,0: FOR J = 0 TO 1E +20: VTAB 13: HTAB 15: PRINT A$;: HTAB 14: FOR I = 1 TO 500: NEXT : CALL -868: FOR I = 1 TO 40: IF PEEK( -16384) < >141 THEN NEXT : NEXT : END
4460 I = 40: NEXT :J = 1E +21: NEXT : PRINT : HOME : & RUN Q$(19): END
4480 HOME : POKE 216,0: GOTO 4420
5000 PRINT :A$ = "H" + STR$(H%) +CO$: & RECALL A$: POKE -16384,0: POKE -16368,0:I1 = 1: FOR I = 1 TO P1%: IF ID$(I) < >"C" THEN I1 = 0:I = P1%
5020 NEXT : IF NOT I1 THEN 5040
5030 FOR I = 1 TO 5000: NEXT : IF PEEK( -16384) = 147 THEN 5100
5035 GOTO 5060
5040 VTAB 24: HTAB 7: PRINT Q$(18);: HTAB 1: FOR I = 1 TO 750: NEXT : CALL -868: FOR I = 1 TO 25: IF PEEK( -16384) < >155 AND PEEK( -16384) < >141 AND PEEK( -16384) < >147 THEN NEXT : GOTO 5040
5050 I = 25: NEXT :I = PEEK( -16384): POKE -16384,0: POKE -16368,0: IF I = 155 THEN GOSUB 20000: POKE -16300,0: POKE -16303,0: GOTO 5040
5105 VTAB 24: HTAB 7: PRINT "REALLY SAVE GAME (Y OR N)";: POKE -16368,0: POKE -16384,0
5110 GET A$: IF A$ = "N" THEN 5040
5120 IF A$ < >"Y" THEN 5110
5130 TEXT : HOME : VTAB 10: PRINT "MAKE SURE THE UTILITY SIDE OF THE GOLF DISK IS IN THE DRIVE BEFORE PRESSING THE <RETURN> KEY ";: FLASH : PRINT " ";: POKE -16384,0: POKE -16368,0
5140 IF PEEK( -16384) < >141 THEN 5140
5150 ONERR GOTO 5130
5160 & GOTO "SAVE.GAME"
5170 END
6000 T$ = "N": IF YO%(H%) <249 THEN AX% = HX%(H%):AY% = HY%(H%): GOTO 6080
6020 IF T%(PL%) = 1 THEN AX% = AP%(H%,0):AY% = AP%(H%,1): GOTO 6080
6040 IF YD(PL%) <C%(PL% -1,2,1) OR YO%(H%) <470 THEN AX% = HX%(H%):AY% = HY%(H%): GOTO 6080
6700 CL% = CS(J,0):DI% = CS(J,1):DE = 0:I = 0: IF CL% = 1 AND T%(PL%) < >1 THEN I = 1
6720 Q$ = Q$(7) +CL$(CL% +I): CALL 3072:LN% = LN% +8:Q$ = Q$(8) + STR$(DR%(PL%)) +Q$(20) + STR$(DI%): CALL 3072:LN% = LN% +8:Q$ = Q$(9) +Q$(10): CALL 3072: FOR I = 1 TO 1500: NEXT : RETURN
7000 J = RND(1):I = PD%: IF I >2 THEN 7060
7020 A$ = "3": IF J >.85 THEN A$ = "1"
7040 RETURN
7060 IF I >5 THEN 7120
7080 A$ = "3": IF J >.5 THEN A$ = "1"
7100 RETURN
7120 IF I >10 THEN 7200
7140 A$ = "1": IF J >.85 THEN A$ = "3"
7160 IF J <.001 THEN A$ = "2"
7180 RETURN
7200 IF I >16 THEN 7280
7220 A$ = "1": IF J >.9 THEN A$ = "3"
7240 IF J <.01 THEN A$ = "2"
7260 RETURN
7280 IF I >24 THEN 7360
7300 A$ = "1": IF J >.95 THEN A$ = "3"
7320 IF J <.05 THEN A$ = "2"
7340 RETURN
7360 IF I >35 THEN 7440
7380 A$ = "1": IF J >.975 THEN A$ = "3"
7400 IF J <.25 THEN A$ = "2"
7420 RETURN
7440 IF I >50 THEN 7520
7460 A$ = "1": IF J >.99 THEN A$ = "3"
7480 IF J <.3 THEN A$ = "2"
7500 RETURN
7520 IF I >75 THEN 7600
7540 A$ = "2": IF J >.999 THEN A$ = "3"
7560 IF J <.35 THEN A$ = "1"
7580 RETURN
7600 A$ = "2": IF J >.9995 THEN A$ = "3"
7620 IF J <.25 THEN A$ = "1"
7640 RETURN
10000 REM ==>ERROR HANDLING
10020 IF PEEK(222) = 1 THEN VTAB 24: HTAB 1: PRINT "<CTRL-G>YOU HAVE THE WRONG DISK<CTRL-G>!";: FOR I = 1 TO 2000: NEXT I: PRINT : PRINT "INSERT PROPER DISK AND PRESS <RETURN>";: GET A$: PRINT : GOTO 5000
10200 TEXT : HOME :EN = PEEK(222):EL = PEEK(218) + PEEK(219) *256: PRINT "PROGRAM ERROR NUMBER ";EN: PRINT "IN LINE NUMBER ";EL: PRINT "PROGRAM ABORTED.....": END
20000 POKE -16303,0: POKE -16299,0: FOR I = 5 TO 18:J = 40 * INT((I -1)/8) +128 *(8 *((I -1)/8 - INT((I -1)/8))) +2048:K = I -4: IF K = 14 THEN K = 0
20020 CL$ = " " + STR$(C%(PL% -1,K,1)):CL$ = RIGHT$(CL$,3): FOR K = 0 TO 2: POKE J +16 +K, ASC( MID$ (CL$,K +1,1)) +128: NEXT : NEXT : POKE -16368,0