1  DIM L[11]
2  PRINT "WELCOME TO THE TIES TIMESHARING 18 HOLE CHAMPIONSHIP COURSE"
3  GOSUB 234
4  LET X=3
5  LET N=.8
6  LET S1=S2=T5=0
7  LET F=1
8  PRINT "WHAT IS YOUR HANDICAP ";
9  INPUT H
10  IF H>30 OR H<0 THEN 220
11  IF H>9 THEN 14
12  PRINT "OH-OH, A HOT SHOT!"
13  GOTO 16
14  IF H<20 THEN 16
15  PRINT "ANYONE FOR TENNIS?"
16  PRINT "DIFFICULTIES AT GOLF INCLUDE:"
17  PRINT "  0=HOOK, 1=SLICE, 2=POOR DISTANCE, 4=TRAP SHOTS, 5=PUTTING"
18  PRINT "WHICH IS YOUR WORST ";
19  INPUT T
20  IF T>5 OR T<0 OR T=3 THEN 18
21  FOR Z=1 TO (H+1)/(T+1)*10
22  LET R=RND(0)
23  NEXT Z
24  LET J=Q=K=L[1]=0
25  LET S2=S2+S1
26  IF F=1 THEN 40
27  GOSUB 2000
28  GOTO 1000
29  PRINT "KEEP YOUR HEAD DOWN."
30  GOTO 39
31  PRINT "A PAR. NICE GOING."
32  GOTO 39
33  PRINT "A BIRDIE, AND TWEET-TWEET TO YOU."
34  GOTO 39
35  IF P=3 THEN 38
36  PRINT "A GREAT BIG EAGLE."
37  GOTO 39
38  PRINT "A HOLE IN *O*N*E*."
39  IF F=19 THEN 208
40  LET S1=0
41  IF S1=0 THEN 193
42  IF L[1]<1 THEN 146
43  LET X=1
44  IF L[1]>5 THEN 150
45  GOSUB 2100
46  GOSUB 2200
47  GOSUB 217
48  PRINT "WHAT CLUB DO YOU WANT ";
49  INPUT C
50  IF C THEN 70
51  FOR T6=1 TO 69
52  PRINT "-";
53  NEXT T6
54  PRINT 
55  IF C=9 THEN 48
56  PRINT "HERE'S YOUR BAG OF CLUBS"
57  PRINT "WOODS (FULL SWING ONLY):  1 DRIVER  2 BRASSIE  3 SPOON"
58  PRINT "IRONS (FULL SWING ONLY):  12 TWO IRON   19 NINE IRON"
59  PRINT "IRONS (LESS THEN FULL SWING)..."
60  PRINT "22 TWO IRON - PARTIAL SWING"
61  PRINT "29 NINE IRON - PARTIAL SWING"
62  PRINT "WHEN YOU REACH THE GREEN IT WILL BE ASSUMED THAT YOU ARE"
63  PRINT "USING A PUTTER. THE PUTT POTENCY NO. REFERS TO THE STRENGTH"
64  PRINT "WITH WHICH THE BALL IS PUTTED. USE NUMBERS GREATER THAN"
65  PRINT "ZERO, INCREASING THE NUMBER FOR GREATER DISTANCE."
66  PRINT "YOU WILL BE ASKED FOR 'PERCENT FULL SWING' ON CLUBS 22-29."
67  PRINT "THIS SHOULD BE A NUMBER FROM 1 TO 99."
68  LET C=9
69  GOTO 51
70  IF C<1 OR C>29 THEN 76
71  IF C>3 THEN 78
72  IF L[1]<5 OR C=14 OR C=23 THEN 81
73  GOTO 76
74  LET S1=S1-1
75  LET W=1
76  GOSUB 234
77  GOTO 48
78  IF C<12 THEN 76
79  LET C=C-6
80  GOTO 72
81  LET S1=S1+1
82  LET W=1
83  IF C>13 THEN 114
84  IF F/3=INT(F/3) THEN 110
85  IF C<4 THEN 87
86  GOTO 88
87  IF L[1]=2 THEN 96
88  IF S1>7 THEN 99
89  LET D1=INT(((30-H)*2.5+187-((30-H)*.25+15)*C/2)+25*RND(0))
90  LET D1=INT(D1*W)
91  IF T=2 THEN 148
92  LET O=(RND(0)/.8)*(2*H+16)*ABS(TAN(D1*3.50000E-03))
93  LET D2=INT(SQR(O^2+ABS(D-D1)^2))
94  IF D-D1<0 THEN 101
95  GOTO 103
96  PRINT "YOU DUBBED IT."
97  LET D1=35
98  GOTO 92
99  IF D<200 THEN 161
100  GOTO 89
101  IF D2<20 THEN 103
102  PRINT "TOO MUCH CLUB. YOU ARE PAST HOLE."
103  LET B=D
104  LET D=D2
105  IF D2>27 THEN 128
106  IF D2>20 THEN 141
107  IF D2>.5 THEN 143
108  LET L[1]=9
109  GOTO 182
110  IF (72+((H+1)/.85))/18<S2+Q+(10*(F-1)/18) THEN 85
111  LET Q=Q+1
112  IF S1/2#INT(S1/2) THEN 124
113  GOTO 96
114  PRINT "PERCENT FULL SWING ";
115  INPUT W
116  LET W=W/100
117  LET T7=0
118  GOTO 1100
119  IF T7 THEN 114
120  IF L[1]=5 THEN 160
121  IF C=14 THEN 88
122  LET C=C-10
123  GOTO 88
124  IF D<95 THEN 96
125  GOSUB 2300
126  LET D=D-75
127  GOTO 48
128  IF O<30 OR J>0 THEN 146
129  IF T>0 THEN 135
130  IF (S2+1)/15=INT((S2+1)/15) THEN 136
131  PRINT "YOU HOOKED-";
132  LET L[1]=L[3]
133  IF O>45 THEN 139
134  GOTO 41
135  IF (S2+1)/15=INT((S2+1)/15) THEN 131
136  PRINT "YOU SLICED-";
137  LET L[1]=L[2]
138  GOTO 133
139  PRINT "BADLY."
140  GOTO 41
141  LET L[1]=5
142  GOTO 41
143  LET L[1]=8
144  LET D2=INT(D2*3)
145  GOTO 169
146  LET L[1]=1
147  GOTO 41
148  LET D1=INT(.85*D1)
149  GOTO 92
150  IF L[1]>6 THEN 158
151  PRINT "YOUR SHOT WENT INTO WATER."
152  LET S1=S1+1
153  PRINT "PENALTY STROKE ASSESSED. HIT FROM PREVIOUS LOCATION."
154  LET J=J+1
155  LET L[1]=1
156  LET D=B
157  GOTO 48
158  PRINT "YOUR SHOT WENT OUT OF BOUNDS."
159  GOTO 152
160  IF T=3 THEN 163
161  LET D2=1+(3*INT((80/(40-H))*RND(0)))
162  GOTO 169
163  IF RND(0)>N THEN 167
164  LET N=N*.2
165  PRINT "SHOT DUBBED, STILL IN TRAP."
166  GOTO 48
167  LET N=.8
168  GOTO 161
169  GOSUB 2400
170  INPUT I
171  LET T7=0
172  GOTO 1200
173  IF T7 THEN 169
174  LET S1=S1+1
175  IF S1+1-P>(H*7.20000E-02)+2 THEN 182
176  IF K>2 THEN 182
177  LET K=K+1
178  IF T=4 THEN 188
179  LET D2=D2-I*(4+2*RND(0))+1.5
180  IF D2<-2 THEN 190
181  IF D2>2 THEN 185
182  PRINT "YOU H*O*L*E*D IT"
183  LET F=F+1
184  GOTO 24
185  PRINT "PUTT SHORT."
186  LET D2=INT(D2)
187  GOTO 169
188  LET D2=D2-I*(4+RND(0))+1
189  GOTO 180
190  PRINT "PASSED BY CUP."
191  LET D2=-D2
192  GOTO 186
193  READ D,P,L[2],L[3]
194  PRINT "ENTER 1 IF READY TO GO ";
195  INPUT A9
196  IF A9#1 THEN 208
197  LET T5=T5+P
198  GOSUB 2500
199  PRINT "ON YOUR RIGHT IS ";
200  LET X=2
201  GOSUB 217
202  PRINT "ON YOUR LEFT IS ";
203  GOSUB 217
204  GOTO 48
205  DATA 361,4,4,2,389,4,3,3,206,3,4,2,500,5,7,2,408,4,2,4,359,4,6,4
206  DATA 424,4,4,2,388,4,4,4,196,3,7,2,400,4,7,2,560,5,7,2,132,3,2,2
207  DATA 357,4,4,4,294,4,2,4,475,5,2,3,375,4,4,2,180,3,6,2,550,5,6,6
208  GOSUB 2600
209  IF S2-T5 THEN 212
210  PRINT "PAR GAME"
211  END 
212  IF S2-T5>0 THEN 215
213  GOSUB 2700
214  END 
215  GOSUB 2800
216  END 
217  GOTO 1300
218  PRINT "OUT OF BOUNDS."
219  RETURN 
220  PRINT "PGA RULES HANDICAP=0-30"
221  GOTO 8
222  PRINT "FAIRWAY."
223  RETURN 
224  PRINT "ROUGH."
225  RETURN 
226  PRINT "TREES."
227  RETURN 
228  PRINT "ADJACENT FAIRWAY."
229  RETURN 
230  PRINT "TRAP."
231  RETURN 
232  PRINT "WATER."
233  RETURN 
234  PRINT "TO GET A DESCRIPTION OF CLUBS, ETC."
235  PRINT "TYPE 0 FOR A CLUB NK. WHEN REQUESTED"
236  LET T7=9
237  RETURN 
900  REM
902  REM  CONVERTED FROM "GOLF" 5-5-84ICL/A000
904  REM  LINE 17 SHORTENED TO 72 CHARS BY REMOVING SPACE
906  REM  LINES 56 TO 67 REPLACED WITH LINES FROM TSB-E VERSION
908  REM  LINE 28 WAS GOTO P-S1+3 OF 39,39,31,33,35
910  REM  REPLACED WITH GOTO 1000 TO RUN EQUIVALENT CODE
912  REM  LINES 194-196 MODIFIED TO NOT USE STRING INPUT
914  REM  LET INSERTED BEFORE VARIABLE ASSIGNS
916  REM  LINE 118 WAS GOSUB (W>0 AND W<1)+1 OF 234
918  REM  REPLACED WITH GOTO 1100 TO RUN EQUIVALENT
920  REM  RESTORED MISSING LINES 22,98,234 FROM TSB-E VERS
922  REM  234 TOO LONG, IMPROVISED
924  REM  LINE 172 WAS GOSUB 1.E+11*I+1 OF 234 (HUH???)
926  REM  REPLACED WITH GOTO 1200 TO RUN EQUIVALENT (MAYBE)
928  REM  LINE 217 WAS GOTO L[X] OF 222,224,226,228,230,232
930  REM  REPLACED WITH GOTO 1300 TO RUN EQUIVALENT
932  REM  ADDED FORMAT CONTROLLED PRINT SUB AT 9400
934  REM  REPLACED LINES 27,45,46,125,169,198,208,213,215
936  REM  WITH CALLS TO EQUIVALENT TEXT USING 9400 SUB
940  REM
1000  LET Z9=INT(P-S1+3)
1010  IF Z9=1 OR Z9=2 THEN 39
1020  IF Z9=3 THEN 31
1030  IF Z9=4 THEN 33
1040  IF Z9=5 THEN 35
1050  GOTO 29
1100  LET Z9=(W>0 AND W<1)+1
1110  IF Z9#1 THEN 119
1120  GOSUB 234
1130  GOTO 119
1200  LET Z9=INT(1.00000E+11*I+1)
1210  IF Z9#1 THEN 173
1220  GOSUB 234
1230  GOTO 173
1300  LET Z9=INT(L[X])
1310  IF Z9=1 THEN 222
1320  IF Z9=2 THEN 224
1330  IF Z9=3 THEN 226
1340  IF Z9=4 THEN 228
1350  IF Z9=5 THEN 230
1360  IF Z9=6 THEN 232
1370  GOTO 218
2000  REM 27  PRINT "YOUR SCORE ON HOLE"F-1"WAS"S1
2010  PRINT "YOUR SCORE ON HOLE ";
2020  LET Z9=F-1
2030  GOSUB 9400
2040  PRINT " WAS ";
2050  LET Z9=S1
2060  GOSUB 9400
2070  PRINT 
2080  RETURN 
2100  REM 45  PRINT "SHOT WENT"D1"YARDS - IS"D2"YARDS FROM HOLE."
2110  PRINT "SHOT WENT ";
2120  LET Z9=D1
2130  GOSUB 9400
2140  PRINT " YARDS - IS ";
2150  LET Z9=D2
2160  GOSUB 9400
2170  PRINT " YARDS FROM HOLE."
2180  RETURN 
2200  REM 46  PRINT "BALL IS"INT(O)"YARDS OFF LINE IN ";
2210  PRINT "BALL IS ";
2220  LET Z9=INT(O)
2230  GOSUB 9400
2240  PRINT " YARDS OFF LINE IN ";
2250  RETURN 
2300  REM 125  PRINT "BALL HIT TREE - BOUNCED INTO ROUGH"
2301  REM [CONTINUED]D-75"YARDS FROM HOLE."
2310  PRINT "BALL HIT TREE - BOUNCED INTO ROUGH ";
2320  LET Z9=D-75
2330  GOSUB 9400
2340  PRINT " YARDS FROM HOLE."
2350  RETURN 
2400  REM 169  PRINT "ON GREEN"D2"FEET FROM PIN. PUT POTENCY NUMBER ";
2410  PRINT "ON GREEN ";
2420  LET Z9=D2
2430  GOSUB 9400
2440  PRINT " FEET FROM PIN. PUT POTENCY NUMBER ";
2450  RETURN 
2500  REM 198  PRINT "YOU ARE AT TEE OFF HOLE"F
2501  REM [CONTINUED]", DISTANCE"D"YARDS PAR"P
2510  PRINT "YOU ARE AT TEE OFF HOLE ";
2520  LET Z9=F
2530  GOSUB 9400
2540  PRINT ", DISTANCE ";
2545  LET Z9=D
2550  GOSUB 9400
2555  PRINT " YARDS PAR ";
2560  LET Z9=P
2565  GOSUB 9400
2570  PRINT 
2580  RETURN 
2600  REM 208  PRINT "TOTAL SCORE FOR"F-1"HOLES WAS"S2
2610  PRINT "TOTAL SCORE FOR ";
2620  LET Z9=F-1
2630  GOSUB 9400
2640  PRINT " HOLES WAS ";
2650  LET Z9=S2
2660  GOSUB 9400
2670  PRINT 
2680  RETURN 
2700  REM 213  PRINT -(S2-T5)"UNDER PAR"
2710  LET Z9=-(S2-T5)
2720  GOSUB 9400
2730  PRINT " UNDER PAR"
2740  RETURN 
2800  REM 215  PRINT S2-T5"OVER PAR"
2810  LET Z9=S2-T5
2820  GOSUB 9400
2830  PRINT " OVER PAR"
2840  RETURN 
9395  REM *** INTEGER PRINT SUBROUTINE ***
9396  REM UP TO 6 DIGITS -999999 TO 999999, NO SPACES PRINTED
9397  REM NUMBER TO PRINT IN Z9, Z8 AND Z7 USED FOR TEMPS
9398  REM IF OUT OF RANGE JUST PRINTS
9399  REM IF NOT INTEGER JUST PRINTS
9400  IF ABS(Z9) <= 999999. THEN 9405
9401  IF Z9=INT(Z9) THEN 9405
9402  PRINT Z9
9403  RETURN 
9405  IF Z9 >= 0 THEN 9420
9410  PRINT "-";
9420  LET Z8=ABS(Z9)
9430  LET Z8=INT(Z8)
9440  IF Z8<10 THEN 9560
9450  IF Z8<100 THEN 9530
9460  IF Z8<1000 THEN 9500
9461  IF Z8<10000 THEN 9470
9462  IF Z8<100000. THEN 9466
9463  LET Z7=INT(Z8/100000.)
9464  LET Z8=Z8-Z7*100000.
9465  GOSUB 9700
9466  LET Z7=INT(Z8/10000)
9467  LET Z8=Z8-Z7*10000
9468  GOSUB 9700
9470  LET Z7=INT(Z8/1000)
9480  LET Z8=Z8-Z7*1000
9490  GOSUB 9700
9500  LET Z7=INT(Z8/100)
9510  LET Z8=Z8-Z7*100
9520  GOSUB 9700
9530  LET Z7=INT(Z8/10)
9540  LET Z8=Z8-Z7*10
9550  GOSUB 9700
9560  LET Z7=Z8
9570  GOSUB 9700
9580  RETURN 
9695  REM DIGIT PRINT SUBROUTINE, DIGIT IN Z7
9700  IF Z7=1 THEN 9810
9710  IF Z7=2 THEN 9830
9720  IF Z7=3 THEN 9850
9730  IF Z7=4 THEN 9870
9740  IF Z7=5 THEN 9890
9750  IF Z7=6 THEN 9910
9760  IF Z7=7 THEN 9930
9770  IF Z7=8 THEN 9950
9780  IF Z7=9 THEN 9970
9790  PRINT "0";
9800  RETURN 
9810  PRINT "1";
9820  RETURN 
9830  PRINT "2";
9840  RETURN 
9850  PRINT "3";
9860  RETURN 
9870  PRINT "4";
9880  RETURN 
9890  PRINT "5";
9900  RETURN 
9910  PRINT "6";
9920  RETURN 
9930  PRINT "7";
9940  RETURN 
9950  PRINT "8";
9960  RETURN 
9970  PRINT "9";
9980  RETURN 
9999  END 

