Random software
Random game
Random game
  • Entry name:
     Pro Tour Golf rev. 2.3 
  • Category:
    Games
  • Publisher/Developer:
    BELLCOM - Public Domain Library
  • Year:
    1980
  • Code:
    Jerry White
  • Media format:
    Diskette, Tape
  • Maximum players:
    4
  • Programming language:
    Atari BASIC
Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3 Pro Tour Golf rev. 2.3
Listing 1
0 REM GOLF REV 2.3 13K BY JERRY WHITE
1 REM 18 HICKORY LANE LEVITTOWN NEW YORK 11756 516-731-6873 WITH REVISIONS OF 10/29/80
5 Z=1:​Z0=0:​TN=10:​GRAPHICS 18:​SETCOLOR Z0,​Z,​8:​SETCOLOR 2,​15,​4:​SETCOLOR 4,​6,​Z0
6 POSITION 4,​2:​? #6;"":​GOSUB 1400:​FOR PK=Z TO 500:​NEXT PK
7 POSITION 7,​4:​? #6;"TOUR":​GOSUB 1410:​FOR PK=Z TO 500:​NEXT PK
8 POSITION 11,​6:​? #6;"":​GOSUB 1420:​FOR PK=Z TO 900:​NEXT PK
10 DIM GR(40),​W$(7),​PN$(28),​NM(4),​P(9),​SH(4,​9),​PT(4),​H(4),​E(4),​RET$(Z),​JW$(9),​CL$(22)
20 CL$="":​GOTO 3000
50 GRAPHICS Z0:​SETCOLOR Z,​4,​TN:​SETCOLOR 2,​4,​Z0:​SETCOLOR 4,​4,​Z0
52 ?:​? "ENTER UP TO SIX POSITIONS FOR EACH":​?:​? "PLAYERS NAME THEN HIT "
60 ?:​?:​FOR JZ=Z TO PLA:​? " ";JZ;" ";:​GOSUB 990:​INPUT W$:​?
70 NM(JZ)=LEN(W$)+NM(JZ-Z):​PN$(NM(JZ-Z)+Z,​NM(JZ))=W$:​NEXT JZ
80 FOR JZ=Z TO 4:​H(JZ)=JZ:​E(JZ)=JZ:​NEXT JZ
100 FOR HOL=Z TO 9:​QQ=Z:​GOSUB 830:​POKE 752,​Z
110 FOR JZ=Z TO 5:​FOR J=Z TO PLA-Z:​X=SH(E(J),​HOL-Z):​Y=SH(E(J+Z),​HOL-Z)
120 X=SH(E(J),​HOL-Z):​Y=SH(E(J+Z),​HOL-Z)
130 IF X>Y THEN ZE=E(J):​E(J)=E(J+Z):​E(J+Z)=ZE
135 NEXT J:​NEXT JZ
140 FOR EX=Z TO PLA:​SH=Z0:​? "HOLE # ";HOL;" PAR ";P(HOL);" ";YA;" YARDS"
150 EU=E(EX):​IF PLA=Z THEN EU=Z
160 GOSUB 600:​SH(EU,​HOL)=SH:​?:​?:​FOR JZ=Z TO 3:​? ,​"IT'S ON THE GREEN"
170 FOR PK=70 TO Z0 STEP -2:​SOUND Z0,​PK,​TN,​2*JZ:​NEXT PK:​NEXT JZ:​NEXT EX
175 IF PLA=Z THEN 200
180 FOR JZ=Z TO 4:​H(JZ)=JZ:​NEXT JZ:​FOR JZ=Z TO 5:​FOR J=Z TO PLA-Z
190 IF PT(H(J))<PT(H(J+Z)) THEN ZE=H(J):​H(J)=H(J+Z):​H(J+Z)=ZE
195 NEXT J:​NEXT JZ
200 FOR EX=Z TO PLA:​SH=Z0
210 IF PLA=Z THEN EU=Z:​GOTO 220
215 EU=H(EX)
220 GOSUB 400:​FOR JZ=Z TO 444:​NEXT JZ
230 SH(EU,​HOL)=SH(EU,​HOL)+SH:​NEXT EX:​GOSUB 300:​NEXT HOL
250 POSITION 8,​21:​? "HIT  TO REPLAY":​POSITION 8,​22:​? "HIT  TO END"
260 IF PEEK(53279)=6 THEN RUN
265 GOSUB 990
270 IF PEEK(53279)=3 THEN 281
280 GOTO 260
281 FOR PK=Z TO 20:​SOUND Z0,​45,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0
282 FOR PK=Z TO TN:​NEXT PK:​FOR PK=Z TO TN:​SOUND Z0,​60,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​FOR PK=Z TO TN:​NEXT PK
283 FOR PK=Z TO TN:​SOUND Z0,​60,​TN,​8:​NEXT PK:​FOR PK=Z TO 20:​SOUND Z0,​53,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0
284 FOR PK=Z TO 20:​SOUND Z0,​60,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​FOR PK=Z TO 40:​NEXT PK
285 FOR PK=Z TO 15:​SOUND Z0,​121,​TN,​8:​SOUND Z,​96,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​SOUND Z,​Z0,​Z0,​Z0
286 FOR PK=Z TO 20:​SOUND Z0,​182,​TN,​8:​SOUND Z,​91,​TN,​8:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​SOUND Z,​Z0,​Z0,​Z0
287 GRAPHICS Z0:​END
300 GRAPHICS Z0:​SETCOLOR 2,​2,​2:​SETCOLOR 4,​2,​2:​POKE 752,​Z:​SETCOLOR Z,​2,​12:​GOSUB 1000
310 ?:​? " ":​?:​?
320 ? "":​?:​? "":​POSITION 36,​4:​? "T"
330 FOR JZ=Z TO 9:​POSITION JZ*3+6,​4:​? JZ;:​NEXT JZ
335 TP=Z0:​FOR JZ=Z TO HOL:​POSITION JZ*3+6,​6:​? P(JZ);:​TP=TP+P(JZ):​NEXT JZ
340 POSITION 36,​6:​? TP;:​FOR JZ=Z TO PLA:​POSITION 2,​JZ*2+7:​? PN$(NM(JZ-Z)+Z,​NM(JZ));
350 E=Z0:​FOR J=Z TO HOL:​E=E+SH(JZ,​J)
360 POSITION J*3+6,​JZ*2+7:​? SH(JZ,​J);:​NEXT J:​POSITION 36,​JZ*2+7:​? E;:​NEXT JZ
370 IF HOL=9 THEN RETURN
380 POSITION 6,​23:​? "HIT  TO CONTINUE...";:​GOSUB 990:​GOSUB 990
390 INPUT RET$:​RETURN
400 GRAPHICS 5:​COLOR Z:​SETCOLOR Z0,​12,​8:​SETCOLOR 4,​14,​6:​SETCOLOR 2,​Z0,​4:​POKE 752,​Z:​SETCOLOR Z,​12,​12
410 COLOR Z:​TC=INT(PT(EU)):​GR=30:​K=Z:​IF 0.5>RND(0) THEN K=-1
420 DS=RND(0)*20+TN:​R=0.7000000000000001:​I=RND(0)*20+40:​FL=INT(RND(0)*20)+45
430 FOR JZ=0 TO 78 STEP 2:​PLOT JZ,​GR:​PLOT JZ+Z,​GR:​GR(JZ/2)=GR:​PLOT JZ,​GR+Z:​PLOT JZ+Z,​GR+Z
440 IF 5>ABS(FL-JZ) THEN 470
450 IF GR>38 THEN GR=38
455 IF JZ>DS THEN K=-K:​DS=100
460 IF R<RND(0) THEN GR=GR+K
465 IF JZ>I THEN R=0.9500000000000001
470 NEXT JZ
475 B=INT(FL-TC):​COLOR 4:​PLOT FL,​GR(FL/2):​PLOT FL,​GR(FL/2)+Z
477 COLOR 2:​PLOT FL,​8:​DRAWTO FL,​GR(FL/2)-3
480 PLOT FL,​8:​DRAWTO FL+12,​4:​DRAWTO FL,​0:​POSITION FL,​7:​POKE 765,​2:​XIO 18,​#6,​0,​0,​"S:​"
482 IF PT(EU)>5 THEN 495
485 COLOR 2:​PLOT FL,​GR(FL/2)+Z:​FOR PK=Z TO 3:​? ,​"IT'S IN THE CUP":​FOR PJ=70 TO 0 STEP -2:​SOUND 0,​PJ,​10,​PK*2
490 NEXT PJ:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0
492 FOR PK=Z TO 3:​FOR PJ=15 TO Z0 STEP -0.2:​SOUND Z0,​PJ,​4,​PJ:​NEXT PJ:​NEXT PK:​RETURN
495 IF B<Z THEN B=FL
497 COLOR 2:​PLOT B,​GR(B/2)-Z
500 A=20:​SH=SH+Z:​SOUND Z0,​Z0,​Z0,​Z0
502 ?:​? PN$(NM(EU-Z)+Z,​NM(EU));"'S PUTT ON HOLE # ";HOL;" LAYING ";SH(EU,​HOL)+SH-Z
505 TRAP 505:​? "TYPE PUTT LENGTH (1=TAP TO 50=LONG) ":​? ,​"HIT ";:​INPUT JW$
510 A=VAL(JW$):​TRAP 40000
520 K=Z0:​NM=Z:​IF B>FL THEN NM=-Z
530 COLOR 4:​PLOT B,​GR(B/2)-Z:​B=B+NM:​COLOR 2:​PLOT B,​GR(B/2)-Z
535 IF B>77 THEN B=77:​GOTO 500
540 IF B<Z THEN B=Z:​GOTO 500
545 IF GR(B/2)<GR(B/2+Z) THEN A=A+INT(RND(0)*2)
550 IF GR(B/2)>GR(B/2+Z) THEN A=A-INT(RND(0)*2)
560 K=K+Z:​IF K>=A THEN 580
570 SOUND Z0,​B*2,​TN,​2:​GOTO 530
580 IF B<>FL THEN 500
590 COLOR 4:​PLOT B,​GR(B/2)-Z:​COLOR 2:​PLOT B,​GR(B/2)+Z
595 FOR JW=15 TO Z0 STEP -Z:​SOUND Z0,​20,​10,​JW:​NEXT JW:​RETURN
600 BB=EJ-2+INT(RND(0)*5):​BA=3:​COLOR 3:​PLOT BA,​BB:​Q=Z0:​K=Z:​ZE=2
605 C=K:​IF K>Z THEN C=K*8-8
610 ? PN$(NM(EU-Z)+Z,​NM(EU));"'S TURN:​ SELECT YOUR CLUB":​GOSUB 2000
615 IF QQ=Z0 THEN ?
620 ? "TYPE  FOR WOOD  FOR IRON  FOR WEDGE";:​? ,​"";:​TRAP 605:​INPUT K:​TRAP 40000
622 K=INT(K)
625 IF K>3 OR K<Z THEN ?:​?:​GOTO 620
630 QQ=Z0:​IF K=3 THEN 695
635 IF K=Z THEN C=Z:​GOTO 655
640 C=7
655 ?:​?:​?:​?:​GOSUB 2000
660 TRAP 655:​? ,​"SELECT ";CL$(C,​C+6);"":​? ,​"";:​GOSUB 990:​INPUT JW$:​?:​?
665 IF K=Z AND VAL(JW$)>4 THEN 4000
670 IF K=2 AND VAL(JW$)>9 THEN 4000
675 JZ=VAL(JW$):​IF JZ<Z OR JZ<>INT(JZ) THEN 660
680 TRAP 40000:​IF K=2 THEN 690
685 JZ=JZ*2:​LD=INT(RND(0)*20):​DS=(8-INT(JZ))*12+170+LD:​LD=20:​GOTO 700
690 DS=(TN-JZ)*15+35+RND(0)*6:​LD=TN:​GOTO 700
695 DS=35+RND(0)*6:​LD=TN
700 FJ=Z:​GJ=Z
705 QQ=Z:​?:​?:​?:​? "0=NORTH 10=EAST 20=SOUTH 30=WEST":​GOSUB 2000
710 TRAP 705:​? "";:​GOSUB 990:​INPUT JW$:​?:​?
715 IF VAL(JW$)<Z0 OR VAL(JW$)<>INT(VAL(JW$)) OR VAL(JW$)>39 OR LEN(JW$)>2 THEN ?:​?:​GOTO 705
720 DA=VAL(JW$):​TRAP 40000
725 IJ=DA:​HJ=Z0:​IF ZE=Z0 THEN HJ=INT(RND(0)*3)-Z:​IJ=DA+HJ:​IF IJ<Z0 OR IJ>39 THEN 725
730 DA=IJ:​IF ZE=Z0 THEN KJ=DS/(RND(0)+2):​DS=DS-KJ
735 IF DA<11 THEN X=DA/TN:​Y=(TN-DA)/TN:​GJ=-Z:​GOTO 755
740 IF DA<21 THEN X=(20-DA)/TN:​Y=(DA-TN)/TN:​GOTO 755
745 IF DA<31 THEN X=(DA-20)/TN:​Y=(30-DA)/TN:​FJ=-Z:​GOTO 755
750 X=(40-DA)/TN:​Y=(DA-30)/TN:​FJ=-Z:​GJ=-Z
755 KJ=DS-RND(0)*DS-15:​IF KJ<21 THEN KJ=20
760 IF ZE=3 THEN DS=KJ
762 ?:​? " YOUR SHOT WILL TRAVEL FROM":​? " ";INT(DS)-5;" TO ";INT(DS)+LD;" YARDS"
763 ? " DEPENDING ON THE BOUNCES AND":​? " PROVIDING IT STAYS ON THE FAIRWAY";
765 FOR PK=Z TO 400:​NEXT PK:​SH=SH+Z:​Q=Q+Z:​IF Y=Z0 THEN Y=0.00025
766 FOR PK=2 TO 12 STEP 2:​SOUND Z0,​20,​Z0,​PK:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0
770 IF X=Z0 THEN X=0.00025
775 COLOR ZE:​PLOT BA,​BB
780 IF X>RND(0) AND Y>RND(0) THEN BA=BA+FJ:​DS=DS-8:​BB=BB+GJ:​GOTO 795
785 IF X>RND(0) THEN BA=BA+FJ:​DS=DS-8
790 IF Y>RND(0) THEN BB=BB+GJ:​DS=DS-8
795 IF (BA>=Z) AND (BA<=78) AND (BB>=Z) AND (BB<=38) THEN 805
796 LOCATE BA,​BB,​ZE:​COLOR ZE:​PLOT BA,​BB:​IF BA<=Z THEN BA=2
797 IF BB<=Z THEN BB=Z
798 IF BA>=78 THEN BA=78
799 IF BB>=38 THEN BB=38
800 COLOR 3:​PLOT BA,​BB:​K=Z:​SH=SH+Z
801 FOR PK=Z TO 4:​? "BALL OFF COURSE - PENALTY=1 STROKE":​NEXT PK
802 GOSUB 1100:​GOTO 605
805 LOCATE BA,​BB,​ZE:​COLOR 3:​PLOT BA,​BB:​SOUND Z0,​Z0,​Z0,​Z:​?:​?
810 IF DS>Z0 THEN 775
815 IF AR<ABS(BA-JH) THEN K=Z:​GOTO 605
820 IF AR<ABS(BB-JG) THEN K=Z:​GOTO 605
825 PT(EU)=ABS(BA-JH)*7+ABS(BB-JG)*7:​RETURN
830 GRAPHICS 5:​COLOR Z:​SETCOLOR Z0,​12,​8:​SETCOLOR 4,​14,​6:​SETCOLOR 2,​0,​10:​POKE 752,​Z:​SETCOLOR Z,​12,​4
835 EJ=INT(RND(0)*28)+6:​JG=INT(RND(0)*28)+6:​AR=3
836 IF OP=Z THEN JH=INT(RND(0)*20)+25:​GOTO 840
837 JH=INT(RND(0)*40)+32
840 IF (JH<45) AND (ABS(EJ-JG)>TN) THEN 835
850 IF RND(0)<0.2 THEN 860
855 IF ABS(EJ-JG)<20 THEN 835
860 GOSUB 910
865 Y=3:​FOR X=Z0 TO 3:​COLOR 2
870 PLOT JH-X,​Y+JG:​DRAWTO JH-X,​JG-Y:​PLOT JH+X,​JG+Y:​DRAWTO JH+X,​JG-Y
875 NEXT X:​YA=JH*7+ABS(JG-EJ)*4
880 FOR X=EJ-3 TO EJ+3:​PLOT Z0,​X:​DRAWTO 5,​X:​NEXT X
885 COLOR Z:​PLOT JH,​JG:​P(HOL)=3:​IF YA>279 THEN P(HOL)=4
890 IF YA>499 THEN P(HOL)=5
895 B=INT(JG-EJ)/1.5+EJ:​M=JH-TN-RND(0)*7:​IF JH>29 THEN M=JH-10
896 IF M<16 THEN RETURN
900 COLOR 3:​PLOT M,​B:​DRAWTO M,​B+2:​PLOT M+Z,​B-Z:​DRAWTO M+Z,​B+3:​PLOT M+2,​B-2:​DRAWTO M+2,​B+4
905 PLOT M+3,​B-Z:​DRAWTO M+3,​B+3:​PLOT M+4,​B:​DRAWTO M+4,​B+2:​RETURN
910 IF JH<35 THEN BA=RND(0)+2:​GOTO 920
915 BA=RND(0)+3
920 JE=EJ-4:​JF=EJ+4:​BA=INT(JH/BA)
925 FOR JZ=Z0 TO BA:​PLOT JZ,​JE:​DRAWTO JZ,​JF
930 IF RND(0)<0.2 THEN JE=JE-Z:​IF JE<2 THEN JE=2
935 IF RND(0)<0.2 THEN JF=JF+Z:​IF JF>36 THEN JF=36
940 SOUND Z0,​(JZ+TN)*2,​TN,​2:​NEXT JZ
945 PLOT BA,​JE:​DRAWTO BA,​JF:​SOUND Z0,​(JE+8)*3+BA,​TN,​2:​BA=BA+Z:​IF BA>=76 THEN RETURN
950 IF BA>JH+4+RND(0)*7 THEN RETURN
955 IF JE>JG-8 THEN JE=JE-Z
960 IF JE<JG-8 THEN JE=JE+0.5
965 IF JE<2 THEN JE=2
970 IF JF>JG+8 THEN JF=JF-0.5
975 IF JF<JG+8 THEN JF=JF+Z
980 IF JF>76 THEN JF=76
985 GOTO 945
990 FOR PK=Z TO 2:​POKE 755,​3:​FOR PJ=Z TO 8:​NEXT PJ:​POKE 755,​2:​FOR PJ=Z TO 8:​NEXT PJ:​NEXT PK:​RETURN
1000 FOR JW=TN TO Z0 STEP -Z:​SOUND Z0,​JW,​TN,​JW:​NEXT JW:​RETURN
1100 SOUND Z0,​90,​12,​4:​FOR PK=Z TO 100:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​FOR PK=Z TO 25:​NEXT PK
1110 SOUND Z0,​85,​12,​4:​FOR PK=Z TO 50:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0
1120 SOUND Z0,​78,​12,​4:​FOR PK=Z TO 50:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​FOR PK=Z TO 50:​NEXT PK
1130 SOUND Z0,​90,​12,​4:​?:​FOR PK=Z TO 50:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​FOR PK=Z TO 200:​NEXT PK:​RETURN
1400 FOR JW=8 TO Z0 STEP -0.5:​SOUND Z0,​90,​TN,​JW:​NEXT JW:​RETURN
1410 FOR JW=8 TO Z0 STEP -0.5:​SOUND Z0,​120,​TN,​JW:​NEXT JW:​RETURN
1420 FOR JW=8 TO Z0 STEP -0.5:​SOUND Z0,​180,​TN,​JW:​NEXT JW:​RETURN
2000 FOR JW=2 TO Z0 STEP -0.5:​SOUND Z0,​19,​2,​JW:​NEXT JW:​FOR PK=Z TO 10:​NEXT PK
2020 FOR JW=2 TO Z0 STEP -0.5:​SOUND Z0,​4,​2,​JW:​NEXT JW:​RETURN
3000 GRAPHICS Z0:​SETCOLOR 2,​9,​Z0:​?:​? " PRO TOUR GOLF SHOT DIRECTIONS:​":​?
3010 COLOR 124:​POKE 766,​Z:​POKE 752,​Z
3050 POSITION 20,​3:​? "0":​POSITION 18,​4:​? "NORTH"
3060 POSITION 19,​17:​? "20":​POSITION 18,​16:​? "SOUTH"
3070 POSITION 11,​TN:​? "30":​POSITION 7,​TN:​? "WEST"
3080 POSITION 27,​TN:​? "10":​POSITION 30,​TN:​? "EAST"
3100 POSITION 25,​6:​? "5":​POSITION 24,​14:​? "15"
3120 POSITION 14,​6:​? "35":​POSITION 14,​14:​? "25"
3220 POKE 766,​Z:​PLOT 20,​5:​DRAWTO 20,​15
3240 COLOR 18:​POKE 752,​Z:​PLOT 15,​10:​DRAWTO 26,​10
3250 POSITION 20,​10:​? CHR$(20):​POKE 752,​Z:​GOSUB 1000
3300 POSITION 8,​20:​? "";:​GOSUB 990:​INPUT RET$
3400 POKE 766,​0:​? "":​?:​? " THE CLUBS IN YOUR BAG ARE:​":​?
3405 ? ,​" CLUB APPROX YARDAGE":​?
3420 ? ,​"1 WOOD 2 5 0":​? ,​"2 WOOD 2 3 0"
3440 ? ,​"3 WOOD 2 1 0":​? ,​"4 WOOD 1 9 0"
3450 ? ,​"1 IRON 1 7 5":​? ,​"2 IRON 1 6 0"
3460 ? ,​"3 IRON 1 4 5":​? ,​"4 IRON 1 3 0"
3470 ? ,​"5 IRON 1 1 5":​? ,​"6 IRON 1 0 0"
3480 ? ,​"7 IRON 8 5":​? ,​"8 IRON 7 0"
3490 ? ,​"9 IRON 5 5":​? ,​" WEDGE 4 0":​GOSUB 1000
3500 POSITION 8,​21:​? "";:​GOSUB 990:​INPUT RET$
3600 GRAPHICS 18:​? #6:​? #6;" CHOOSE COURSE":​? #6;" TYPE  OR "
3610 ? #6;" ONG HORT"
3620 CLOSE #Z:​OPEN #Z,​4,​0,​"K:​":​GET #Z,​GC
3640 IF GC=83 THEN OP=Z:​GOTO 3700
3660 IF GC=76 THEN OP=Z0:​GOTO 3700
3680 GOTO 3600
3700 ? #6:​? #6;" HOW MANY PLAYERS":​? #6;" "
3710 GET #Z,​GC:​IF GC>52 OR GC<49 THEN 3700
3720 PLA=GC-48:​CLOSE #Z:​GOTO 50
4000 ? "":​GOSUB 990
4020 FOR PK=100 TO 250:​SOUND Z0,​PK,​TN,​2:​NEXT PK:​SOUND Z0,​Z0,​Z0,​Z0:​GOSUB 990:​GOTO 610	

This is non-commercial site, its content is based on Atari 8-bit home computer contents and references.
If you feel your rights are violated by showing/using any part of contents of your product represented on this page, please contact me immediatelly so I can remove it!