10 DIM B$(0)*20,D1(10),L$(4)*13 20 DIM M$(3)*20,V1(19,5) 25 DIM PT$(10),GR$(10),GT(9,5),G2(9,5),YA$(1) 26 CB$=CHR$(136)+CHR$(136)+CHR$(136)+CHR$(137)+CHR$(138)+CHR$(139)+CHR$(140) 30 PT$(0)="0000000000000000" 31 PT$(1)="00007E4242427E00" 32 PT$(2)="003C42424F423C00" 33 PT$(3)="0060783EFF3E7860" 34 PT$(4)="55AA55AA55AA55AA" 35 PT$(5)="FFFFFFFFFFFFFFFF" 36 PT$(6)="80C0E0F0F8FCFEFF" 37 PT$(7)="FFFEFCF8F0E0C080" 38 PT$(8)="0103070F1F3F7FFF" 39 PT$(9)="FF7F3F1F0F070301" 40 PT$(10)="00000000F0100000" 50 GR$(0)="0000000000000000" 51 GR$(1)="E018040202010101 52 GR$(2)="0101010101010101 53 GR$(3)="01010102020418E0 54 GR$(4)="0718204040808080 55 GR$(5)="8080808080808080 56 GR$(6)="8080804040201807 57 GR$(7)="FF00000000000000 58 GR$(8)="00000000000000FF 59 GR$(9)="0000705F70000000 60 GR$(10)="000000F818080000" 70 B$(0)="1222222223":FOR I=0 TO 9:GT(I,0)=VAL(MID$(B$(0),I+1,1)):NEXT I 71 B$(0)="7000000008":FOR I=0 TO 9:GT(I,1)=VAL(MID$(B$(0),I+1,1)):NEXT I 72 FOR J=2 TO 4:FOR I=0 TO 9:GT(I,J)=GT(I,1):NEXT I:NEXT J 73 B$(0)="4555555556":FOR I=0 TO 9:GT(I,5)=VAL(MID$(B$(0),I+1,1)):NEXT I 80 YA$(0)="081C2A0808" 81 YA$(1)="08082A1C08" 100 REM 110 M$(0)=" " 120 M$(1)=" " 130 M$(2)=M$(0)+M$(0) 170 L$(0)="Par":L$(1)="Birdie!":L$(2)="Eagle!!" 180 L$(3)="Albatross!!":L$(4)="Hole in One!!" 230 D1(0)=55:D1(1)=50:FOR I=2 TO 10:D1(I)=(190-I*10)*0.25:NEXT I 300 RESTORE:DEGREE 'R2 310 CLS:LOCATE 2,1:PRINT "PB-Super Golf2" 'R2 320 IF C>=2 THEN IF C<=18 THEN 340 'R2 330 C=1:U=0:GOTO 1000 'R2 340 LOCATE 0,3:PRINT "PLAY CONTINUE?(Y/N)":GOSUB 7200 'R2 350 H$=INKEY$:IF H$="" THEN 350 'R2 360 CLS:IF H$<>"Y" THEN IF H$<>"y" THEN 330 'R2 370 FOR I=1 TO (C-1)*7:READ B$(0):NEXT I 'R2 380 GOTO 1010 'R2 1000 GOSUB 9400 'R2 1010 B=0:G=0:S=0:GOSUB 9000:GOSUB 9100:GOSUB 9300 'R2 1100 GOSUB 7200:GOSUB 9150:GOSUB 7140:GOSUB 7200 1110 D=0:B$(0)="CLUB=W1":GOSUB 8900 1200 H$=INKEY$:IF H$="" THEN 1200 ELSE BEEP0 1210 IF H$="8" OR H$=CHR$(4) THEN D=D-1:IF D<0 THEN D=10 1220 IF H$="2" OR H$=CHR$(5) THEN D=D+1:IF D>10 THEN D=0 1230 IF H$=CHR$(13) THEN 1300 1235 FOR M=0 TO 199:NEXT M 1240 LOCATE F*14+5+F,0:PRINT MID$("W1W3I3I4I5I6I7I8I9PWSW",D*2+1,2); 1250 GOTO 1200 1300 GOSUB 7200:GOSUB 6000:GOSUB 9100 1305 IF P=0 THEN S=S+1:X1=X:Y1=Y:GOTO 1435 1310 I=D1(D):PW=(I/180)*P:R=(10+D*2)*P:F=9/P 1320 X3=Int(X/8):Y3=Int(Y/8):O=0:S=S+1 1330 I=0:J=0:W=0:M=0 1350 I=I+F:IF I>180 THEN I=180 1360 X1=Int(X+I*PW*COS(A+O)+J) 1370 Y1=Int(Y-I*PW*SIN(A+O)-R*SIN(I)) 1380 O=O+K:J=J+W:W=W+Q 1400 X4=ABS(X3) MOD 18:Y4=ABS(Y3) MOD 6 1410 GCURSOR(X4*8,Y4*8+7):GPRINT PT$(V1(X4,Y4)) 1415 X3=INT(X1/8):Y3=INT(Y1/8) 1425 PSET(X1,Y1),X 1430 IF I<180 THEN 1350 1435 X3=INT(X1/8):Y3=INT(Y1/8) 1440 IF X1>=0 THEN IF X1<=143 THEN IF Y1>=0 THEN IF Y1<=44 THEN 1450 1445 GOTO 8000 1450 IF V1(X3,Y3)=3 THEN 8000 1460 IF V1(X3,Y3)=4 THEN 8100 1470 IF V1(X3,Y3)>=5 AND V1(X3,Y3)<=9 THEN 8200 1500 B=0:X=X1:Y=Y1:GOSUB 9050:GOSUB 9100 1510 FOR I=1 TO 2 1520 PSET(X1,Y1):BEEP1:PRESET(X1,Y1):BEEP1:NEXT I 1530 IF E=0 THEN PSET(X1,Y1) ELSE PRESET(X1,Y1) 1540 IF V1(X3,Y3)=2 THEN 2000 1550 GOTO 1100 2000 REM GREEN 2005 XB=INT(X-X3*8)-1:YB=INT(Y-Y3*8)-1 2006 IF XB>=0 THEN IF XB<=5 THEN IF YB>=0 THEN IF YB<=5 THEN 2010 2008 GOTO 1100 2010 G=1:B$(0)="GREEN ON":GOSUB 8900:GOSUB 9400 2020 X=INT(XB*13.3)+(RND 12) 2030 Y=INT(YB* 8)+(RND 7) 2040 XB=X2:X2=XS*8+3 2050 YB=Y2:Y2=YS*8+5 2060 CLS:GOSUB 9200 2070 LOCATE 14,1:PRINT "GRAIN: ";V$; 2080 IF ABS(INT(X)-X2)<2 THEN IF ABS(INT(Y)-Y2)<2 THEN 2400 2100 LOCATE 14,2:PRINT "SHOT :";S+1; 2110 GOSUB 9050:GOSUB 7140 2120 GOSUB 6000:F=0.4*P:P=8*P:S=S+1 2130 GOSUB 9200:X1=X:Y1=Y:I=0:J=0 2200 X=X+P*COS(A)+GX:Y=Y-P*SIN(A)+GY 2210 IF X>=0 THEN IF X<=79 THEN IF Y>=0 THEN IF Y<=47 THEN 2220 2215 GOTO 3000 2220 P=P-F:PRESET(X1,Y1):PSET(X,Y) 2300 X1=X:Y1=Y 2310 IF P<=5 THEN IF ABS(INT(X)-X2)<2 THEN IF ABS(INT(Y)-Y2)<2 THEN 2400 2320 IF P>0 THEN 2200 2330 GOTO 2100 2400 PSET(X2,Y2) 2402 LOCATE 14,0:PRINT "CUP IN!"; 'R2 2404 LOCATE 14,2:PRINT "SHOT :";S;:GOSUB 9400 2408 J=S-T:C=C+1 'R2 2410 CLS:U=U+J:USING "###" 2412 LOCATE 1,0:PRINT C-1;"HOLE";:USING "####" 'R2 2414 LOCATE 3,2:PRINT "SCORE :";(J MOD 1000); 2416 LOCATE 3,3:PRINT "TOTAL SCORE:";(U MOD 1000); 2417 USING 2418 IF J>0 THEN 2450 2420 IF S=1 THEN J=-4 2422 FOR I=1 TO 3 2424 LOCATE 3,1:PRINT " ";:BEEP0 2425 FOR M=0 TO 99:NEXT M 2426 LOCATE 3,1:PRINT L$(-J);:BEEP1 2427 FOR M=0 TO 99:NEXT M 2428 NEXT I 2450 GOSUB 9400:IF C<=18 THEN 1010 'R2 2500 REM GAMEOVER 2510 LOCATE 0,0:PRINT " GAME OVER " 2515 LOCATE 3,1:PRINT " " 2520 LOCATE 3,2:PRINT " " 2530 C=0:GOSUB 7200:GOSUB 7300:GOTO 300 'R2 3000 X=X+1*COS(A):Y=Y-1*SIN(A):I=INT(X/10):J=INT(Y/4) 3010 IF I<0 THEN I=0 3020 IF I>7 THEN I=7 3030 IF J<0 THEN J=0 3040 IF J>7 THEN J=7 3050 X=INT(XB/8)*8+I:Y=INT(YB/8)*8+J 3070 IF X<0 THEN X=0 3080 IF X>159 THEN X=159 3090 IF Y<0 THEN Y=0 3100 IF Y>47 THEN Y=47 3110 G=0:X2=XB:Y2=YB:GOSUB 9100:GOSUB 9050:GOSUB 9300 3120 GOTO 1100 4000 FOR TM=0 TO 99:NEXT TM:RETURN 6000 J=X3:GOSUB 7200 6010 IF G=1 THEN 6100 6020 F=0:X3=0 6030 IF X<80 THEN F=1:X3=13 6040 LOCATE X3-F,0:PRINT M$(1); 6050 LOCATE X3-F,1:PRINT M$(1); 6060 LOCATE X3-F,2:PRINT M$(1); 6070 LOCATE X3+10,0:PRINT CHR$(136); 6075 IF F=0 THEN 6076 LINE(0,19)-(66,19):LINE-(68,17):LINE-(68,0) 6077 ELSE 6078 LINE(74,0)-(74,17):LINE-(76,19):LINE-(143,19) 6079 ENDIF 6080 LINE((X3+5)*6,16)-((X3+5)*6,19) 6085 LINE((X3+5)*6+2,16)-((X3+5)*6+2,19) 6090 GOTO 6200 6100 F=1:J=X3:X3=14 6110 B$(0)=" " 6120 LOCATE X3,0:PRINT B$(0); 6200 LOCATE X3,0:FL=0:FOR I=0 TO 9 6210 PRINT CHR$(142);:FOR M=0 TO 99:NEXT M 6215 IF INKEY$<>"" THEN FL=1:J=I:I=9 6220 NEXT I:IF FL=1 THEN I=J:GOTO 6300 6230 FL=0:FOR I=9 TO 0 STEP -1 6240 LOCATE X3+I,0:PRINT " ";:FOR M=0 TO 99:NEXT M 6245 IF INKEY$<>"" THEN FL=1:J=I-1:I=0 6250 NEXT I:IF FL=1 THEN I=J:GOTO 6300 6260 I=-1:GOTO 6350 6300 K=-2:FL=0 6310 K=K+1 6315 FOR M=1 TO 10 6320 IF INKEY$="" THEN FL=1:M=100 6325 NEXT M:IF FL=1 THEN 6330 6326 GOTO 6310 6330 IF K>6 THEN K=6 6335 IF K<0 THEN K=0 6340 IF I>0 THEN LOCATE X3+I,0:PRINT MID$(CB$,7-K,1); 6350 P=(I+1)*0.1:IF P>0 THEN P=P-K*0.0142 6352 IF G=1 THEN GOSUB 7200:LOCATE X3,0:PRINT B$(0);:X3=J:RETURN 6354 IF B=1 THEN P=P*(0.33-((11-D)*0.03)) 6358 GOSUB 7200:K=-1:H$=CHR$(142)+" " 6364 FL=0:FOR I=9 TO 0 STEP -1 6366 LOCATE X3+I,1:PRINT H$;:FOR M=0 TO 99:NEXT M 6367 IF INKEY$<>"" THEN K=I:FL=1:I=0 6368 NEXT I:IF FL=1 THEN 6400 6370 LOCATE X3,1:PRINT "Shot Miss ";:GOSUB 9400:P=0:GOTO 6500 6400 E=-2 6410 E=E+1 6415 FOR M=0 TO 99:NEXT M 6420 IF INKEY$<>"" THEN 6410 6430 IF E>6 THEN E=6 6440 IF E<0 THEN E=0 6450 IF K>0 THEN LOCATE X3+K,1:PRINT MID$(CB$,7-E,1); 6460 IF K=-1 THEN K=0:P=0:RETURN 6470 K=(K-5)*0.54:IF K<>0 THEN P=P*0.9 6480 K=K-(E-2)*0.072 6490 IF P=1 THEN IF K=0 THEN LOCATE X3,1:PRINT "Fine!"; 6500 X3=J:GOSUB 7200:BEEP1:RETURN 7100 H$=INKEY$:IF H$="" THEN 7100 ELSE BEEP0 7110 IF H$="2" OR H$=CHR$(5) THEN A=A-4:IF A<0 THEN A=A+360 7112 IF H$="8" OR H$=CHR$(4) THEN A=A+4:IF A>360 THEN A=A-360 7114 IF H$="6" OR H$=CHR$(14) THEN A=A-20:IF A<0 THEN A=A+360 7116 IF H$="4" OR H$=CHR$(15) THEN A=A+20:IF A>360 THEN A=A-360 7118 IF H$=CHR$(13) THEN GOSUB 7200:RETURN 7120 IF G=1 THEN GOSUB 9600 ELSE GOSUB 9500 7140 X1=X+INT(16*COS(A)):Y1=Y-INT(16*SIN(A)) 7150 X3=X+INT( 4*COS(A)):Y3=Y-INT( 4*SIN(A)) 7160 I=0:IF G=1 THEN LINE(X3,Y3)-(X1,Y1):GOTO 7180 7166 I=POINT(X1,Y1) 7170 LINE(X3,Y3)-(X1,Y1) 7180 IF I=1 THEN PRESET(X1,Y1) 7190 GOTO 7100 7200 IF INKEY$<>"" THEN 7200 7210 RETURN 7300 IF INKEY$="" THEN 7300 7310 RETURN 8000 REM OB 8010 B$(0)="OB":GOSUB 8900:S=S+1 8020 FOR I=0 TO 10:BEEP0:NEXT I:GOSUB 9400 8030 GOSUB 9050:GOSUB 9100:GOTO 1100 8100 REM BUNKER 8110 X=X1:Y=Y1:B=1:B$(0)="BUNKER":GOSUB 8900:GOSUB 9400 8120 FOR I=1 TO 5 8130 PSET(X1,Y1):BEEP0:PRESET(X1,Y1):BEEP0 8140 NEXT I:GOSUB 9050:GOSUB 9100:GOTO 1100 8200 REM IKE 8202 GCURSOR(X3*8,Y3*8+7):GPRINT PT$(V1(X3,Y3)) 8204 IF POINT(X1,Y1)=0 THEN 1500 8206 FOR I=1 TO 5 8208 PSET(X1,Y1):BEEP0:GOSUB 4000 8209 PRESET(X1,Y1):BEEP0:GOSUB 4000 8210 NEXT I 8212 X=X1:Y=Y1:GOSUB 9050:S=S+1 8214 B$(0)=CHR$(178)+CHR$(185):GOSUB 8900:GOSUB 9400:GOSUB 9100 8216 IF POINT(X,Y)=0 THEN PSET(X,Y) ELSE PRESET(X,Y) 8218 FOR I=2 TO 100 STEP 2:X1=INT(X-I*COS(A)):Y1=INT(Y+I*SIN(A)) 8220 IF X1>=0 THEN IF X1<=159 THEN IF Y1>=0 THEN IF Y1<=31 THEN 8222 8221 I=900:GOTO 8224 8222 IF POINT(X1,Y1)=0 THEN I=I+100 8224 NEXT I:IF I<900 THEN 8300 8226 I=0:J=0 8228 IF X1<0 THEN X1=0:J=SGN(Y1-Y2) 8230 IF X1>159 THEN X1=159:J=SGN(Y1-Y2) 8232 IF Y1<0 THEN Y1=0:I=SGN(X1-X2) 8234 IF Y1>31 THEN Y1=31:I=SGN(X1-X2) 8250 IF POINT(X1,Y1)=0 THEN 8300 8260 X1=X1+I:Y1=Y1+J:GOTO 8250 8300 X=X1:Y=Y1:GOSUB 9050:GOSUB 9100 8310 GOTO 1100 8900 F=0:IF X<80 THEN F=1 8910 LOCATE F*14,0:PRINT M$(0); 8920 LOCATE F*14,1:PRINT M$(0); 8921 IF F=0 THEN 8922 LINE(0,11)-(54,11):LINE-(56,9):LINE-(56,0) 8923 ELSE 8924 LINE(86,0)-(86,9):LINE-(88,11):LINE-(143,11) 8925 ENDIF 8930 LOCATE F*14+F,0:PRINT B$(0); 8940 RETURN 9000 CLS:PRINT "Wait:Loading Course":FOR I=0 TO 5:READ B$(0) 'R2 9010 FOR J=0 TO 17:V1(J,I)=VAL(MID$(B$(0),J+1,1)):M=V1(J,I) 9015 IF M=1 THEN X=J*8+3:Y=I*8+3 9025 IF M=2 THEN X2=J*8+4:Y2=I*8+3 9035 NEXT J:NEXT I:READ B$(0) 9040 T=VAL(MID$(B$(0),1,1)) 9041 XS=VAL(MID$(B$(0),2,1)):YS=VAL(MID$(B$(0),3,1))+1 9042 I=VAL(MID$(B$(0),4,1)):J =VAL(MID$(B$(0),5,1)) 9043 IF I<=1 THEN GX=I*2-1:GY=0 ELSE GX=0:GY=(I-2)*2-1 9044 GX=GX*(0.5+0.1*J):GY=GY*(0.5+0.1*J) 9045 Q=((RND 3)-2)*0.004 9046 V$=MID$("<<<>>>^^^vvv",I*3+1,J) 9047 FOR I=0 TO 9:FOR J=0 TO 5:G2(I,J)=GT(I,J):NEXT:NEXT 9048 G2(XS,YS)=9:G2(XS,YS-1)=10 9050 I=X2-X:J=Y-Y2 9052 IF I=0 THEN A=90*SGN(J):GOTO 9070 9054 IF J<>0 THEN 9060 9056 IF I<0 THEN A=180 ELSE A=0 9058 GOTO 9065 9060 A=ATN(J/ABS(I)):IF I<0 THEN A=180-A 9065 IF A<0 then A=A+360 9070 M=SQR((X2-X)^2+(Y-Y2)^2)*4 9080 RETURN 9100 FOR I=0 TO 4:FOR J=0 TO 17:GCURSOR(J*8,I*8+7):GPRINT PT$(V1(J,I)):NEXT J 9105 NEXT I 9106 FOR J=0 TO 16:GCURSOR(J*8,47):GPRINT PT$(V1(J,5)):NEXT J 9110 LINE(X2,Y2-4)-(X2,Y2-5):LINE-(X2+2,Y2-5) 9130 LINE(X,Y)-(X,Y),X 9140 RETURN 9150 LOCATE 0,0:PRINT M$(2); 9155 LOCATE 0,1:PRINT M$(2); 9156 LINE(2,0)-(2,9):LINE-(4,11):LINE-(114,11):LINE-(116,9):LINE-(116,0) 9160 LOCATE 1,0:IF S<>0 THEN 9165 9162 USING"###":PRINT C;"HOLE PAR";RIGHT$(STR$(T),1); 'R2 9165 USING"####":PRINT M;"m";:USING 9170 IF S>0 THEN PRINT " SHOT:";S; 9175 GOSUB 9400 9180 IF G=0 THEN GOSUB 9100 ELSE GOSUB 9200 9190 RETURN 9200 FOR I=0 TO 5:FOR J=0 TO 9:GCURSOR(J*8,I*8+7):GPRINT GR$(G2(J,I)) 9205 NEXT J:NEXT I 9230 IF POINT(X,Y)=0 THEN PSET(X,Y) ELSE PRESET(X,Y) 9240 RETURN 9300 IF Q=0 THEN GCURSOR(136,47):GPRINT PT$(V1(17,5)):RETURN 9310 GCURSOR(139,47) 9320 IF Q<0 THEN GPRINT YA$(0):RETURN 9330 GPRINT YA$(1):RETURN 9400 IF INKEY$<>"" THEN 9400 9410 FOR I=0 TO 1000 9420 IF INKEY$<>"" THEN I=5000 9430 NEXT I:RETURN 9500 REM In X1,Y1,X,Y ADD 9510 X4=INT(X1/8):X5=INT(X/8):I=SGN(X5-X4) 9520 Y4=INT(Y1/8):Y5=INT(Y/8):J=SGN(Y5-Y4) 9522 IF I=0 THEN I=1 9524 IF J=0 THEN J=1 9526 X5=X5+I:Y5=Y5+J 9528 IF X4<0 THEN X4=0 ELSE IF X4>17 THEN X4=17 9530 IF X5<0 THEN X5=0 ELSE IF X5>17 THEN X5=17 9532 IF Y4<0 THEN Y4=0 ELSE IF Y4>5 THEN Y4=5 9534 IF Y5<0 THEN Y5=0 ELSE IF Y5>5 THEN Y5=5 9536 IF X59 THEN X4=9 9630 IF X5<0 THEN X5=0 ELSE IF X5>9 THEN X5=9 9632 IF Y4<0 THEN Y4=0 ELSE IF Y4>5 THEN Y4=5 9634 IF Y5<0 THEN Y5=0 ELSE IF Y5>5 THEN Y5=5 9536 IF X5