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))/180 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