Glitch Floppy: progolf1.dsk
Item Preview
Share or Embed This Item
Flag this item for
Glitch Floppy: progolf1.dsk
- Language
- English
Notes
Disk info for progolf1.dsk:
File Name: glitch_progolf1/progolf1.dsk
Disk Name: RDOS 3.3 BY KRAKOWICZ
Physical Size (bytes): 143360
Free Space (bytes): 13056
Used Space (bytes): 103424
Physical Size (KB): 140
Free Space (KB): 12
Used Space (KB): 101
Archive Order: DOS
Disk Format: RDOS 2.1
Total Blocks: 455
Free Blocks: 51
Used Blocks: 404
Disk directory for progolf1.dsk:
glitch_progolf1/progolf1.dsk RDOS 3.3 BY KRAKOWICZ
B 026 RDOS 2.1 COPYRIGHT 1981 6,656 000
T 001 SYSTEMBOOT 256 026
A 030 GS 6,575 027
A 060 GP 13,771 057
B 032 GU 8,088 117
B 008 GSC 2,048 149
B 006 PS 1,370 157
T 002 GST 512 163
T 001 GCO 256 165
T 001 << APPLE TREE COURSE >> 256 166
T 006 GCD.1 1,536 167
B 006 H1.1 1,400 173
B 003 H2.1 630 179
B 007 H3.1 1,713 182
B 009 H4.1 2,169 189
B 006 H5.1 1,426 198
B 003 H6.1 560 204
B 006 H7.1 1,524 207
B 007 H8.1 1,774 213
B 008 H9.1 1,878 220
B 011 H10.1 2,570 228
B 006 H11.1 1,351 239
B 004 H12.1 985 245
B 010 H13.1 2,475 249
B 007 H14.1 1,661 259
B 007 H15.1 1,620 266
B 004 H16.1 943 273
B 008 H17.1 1,811 277
B 007 H18.1 1,779 285
T 001 <> 256 292
T 006 GCD.2 1,536 293
B 006 H1.2 1,308 299
B 005 H2.2 1,082 305
B 007 H3.2 1,552 310
B 006 H4.2 1,385 317
B 005 H5.2 1,154 323
B 004 H6.2 1,007 328
B 003 H7.2 661 332
B 006 H8.2 1,524 335
B 004 H9.2 908 341
B 006 H10.2 1,322 345
B 008 H11.2 1,801 351
B 004 H12.2 900 359
B 005 H13.2 1,205 363
B 012 H14.2 2,925 368
B 005 H15.2 1,279 380
B 006 H16.2 1,369 385
B 003 H17.2 634 391
B 005 H18.2 1,033 394
A 001 HELLO 72 399
B 003 SSI.INIT 768 400
B 001 QWERTY 48 403
RDOS 2.1 format; 13,056 bytes free; 103,424 bytes used.
Text found in progolf1.dsk/GCD.1.txt:
DRIVER
2-WOOD
3-WOOD
4-WOOD
1-IRON
2-IRON
3-IRON
4-IRON
5-IRON
6-IRON
7-IRON
8-IRON
9-IRON
P.WEDGE
CHIP
***
S.WEDGE
4
180
1
124
120
3
54
1
100
120
2
173
1
0
41
3
173
1.5
0
41
2
185
1.5
0
41
167
186
1
0
70
2
33
1.5
0
53
6
185
1.5
0
41
2
163
1.5
0
41
2
176
1.5
0
41
2
173
1.5
90
6
4
92
1
90
6
2
158
1.5
0
41
2
153
1.5
90
6
2
125
1.5
90
6
196
167
1
0
41
3
180
1.5
65
6
2
164
1.5
0
41
265
62
253
70
269
70
263
74
179
60
165
61
167
50
173
55
255
18
257
21
245
23
249
17
251
28
245
20
251
21
251
32
235
38
245
45
243
41
239
37
177
30
169
30
165
25
159
22
265
85
263
91
263
81
259
85
211
52
209
40
223
37
219
45
259
60
261
70
253
64
265
66
247
12
243
24
243
19
251
18
251
161
245
165
251
168
243
163
193
89
211
89
207
102
207
97
237
22
237
13
223
17
223
29
249
66
245
70
247
77
253
76
259
134
255
122
249
122
249
131
183
53
195
40
207
52
195
48
241
24
241
15
239
19
231
22
189
43
209
47
203
58
199
50
345
172
403
561
428
161
410
382
457
531
410
199
497
419
375
121
425
435
313
0
0
0
327
270
0
327
0
357
338
0
0
358
0
270
337
0
146
24
0
0
175
55
0
0
248
165
0
0
193
162
201
29
130
94
0
0
169
26
0
0
190
39
0
0
140
103
0
0
202
158
0
0
180
147
192
26
188
106
0
0
207
96
0
0
210
149
226
53
202
134
0
0
166
124
0
0
192
48
0
0
194
87
0
0
194
158
0
0
2000
0
2000
3000
2000
2500
5000
3000
6000
1
1.03
1.03
1.01
.97
1
.98
1.04
1
1.01
.95
1.02
1.06
1
1.01
1.02
.96
1.01
212321222321322122
158
0
0
180
147
192
26
188
106
0
0
207
96
0
0
210
149
226
53
202
134
0
0
166
124
0
0
192
48
0
0
194
87
0
0
194
158
0
0
2000
0
2000
3000
2000
2500
5000
3000
6000
Text found in progolf1.dsk/GCD.2.txt:
DRIVER
2-WOOD
3-WOOD
4-WOOD
1-IRON
2-IRON
3-IRON
4-IRON
5-IRON
6-IRON
7-IRON
8-IRON
9-IRON
P.WEDGE
CHIP
***
S.WEDGE
2
100
1.5
90
6
2
180
1.8
124
150
2
162
1.5
90
6
2
188
1.1
80
6
2
112
1
90
6
2
188
1.8
80
6
185
188
1
0
41
2
61
1.5
80
6
2
188
1.5
124
144
2
188
1.5
125
140
2
169
1.5
90
6
2
110
1
90
6
2
188
1.4
124
141
2
188
1.7
124
130
2
105
1.6
90
6
2
115
1.6
90
6
2
126
1
90
6
2
188
1.7
124
158
241
146
241
154
253
157
247
152
243
30
247
27
249
34
243
34
233
98
233
86
237
90
245
91
247
26
257
26
249
32
257
17
193
118
187
115
179
104
191
104
241
22
249
22
247
28
253
32
179
66
197
66
197
62
187
76
261
144
249
159
249
152
257
154
237
24
251
24
247
15
247
20
235
20
245
20
245
31
241
27
251
119
251
125
257
127
259
123
201
102
211
99
219
116
205
97
235
30
231
27
233
23
237
26
239
26
239
19
245
17
245
22
249
97
247
103
253
106
253
100
245
111
249
116
251
107
255
115
209
130
221
125
221
114
231
116
253
24
249
15
263
17
261
21
385
507
368
335
180
527
120
425
450
436
380
205
400
555
406
400
218
540
358
327
0
328
0
328
270
3
328
323
342
0
330
302
0
354
0
335
182
108
0
0
143
96
223
50
195
137
0
0
184
60
0
0
184
109
0
0
132
101
221
29
188
66
0
0
170
68
0
0
170
80
0
0
152
73
0
0
159
122
0
0
214
107
0
0
186
89
0
0
94
58
207
25
186
101
0
0
171
97
0
0
221
122
0
0
175
110
243
47
2000
0
2000
3000
2000
2500
5000
3000
6000
1.03
.99
1
1.04
.97
1
1.05
1.06
1
1
.98
.99
1
1.02
1.04
1.03
1.04
1.02
232213122221232213
0
170
80
0
0
152
73
0
0
159
122
0
0
214
107
0
0
186
89
0
0
94
58
207
25
186
101
0
0
171
97
0
0
221
122
0
0
175
110
243
47
Text found in progolf1.dsk/GCO.txt:
2
0
APPLE TREE
PEBBLE BEACH
Text found in progolf1.dsk/GP.bas:
100 ONERR GOTO 10000
120 CALL 3114: SCALE= 1: ROT= 0:PL% = 1: GOTO 5000
140 IF YD(PL%) = YO%(H%) THEN DR%(PL%) = A9%(H%): RETURN
160 S = (XL(PL%) -HX%(H%))/(YD(PL%)/SC(H%)):C = (YL(PL%) -HY%(H%))/(YD(PL%)/SC(H%)): IF C = 0 THEN C = 1E -09
180 A% = ATN(S/ ABS(C))/RA +.5: IF S < = 0 AND C < = 0 THEN DR%(PL%) = 90 +A%: RETURN
200 IF S < = 0 AND C > = 0 THEN DR%(PL%) = 270 -A%: RETURN
220 IF S > = 0 AND C > = 0 THEN DR%(PL%) = 270 -A%: RETURN
240 IF S > = 0 AND C < = 0 THEN DR%(PL%) = 90 +A%: RETURN
260 C%(PL% -1,14,1) = YD(PL%): IF C%(PL% -1,14,1) >C%(PL% -1,0,1) THEN C%(PL% -1,14,1) = C%(PL% -1,0,1)
280 I = C%(PL% -1,14,1)/C%(PL% -1,0,1):C%(PL% -1,14,2) = C%(PL% -1,0,2) *I: IF C%(PL% -1,14,2) <7 THEN C%(PL% -1,14,2) = 7
300 C%(PL% -1,14,3) = C%(PL% -1,0,3) *I: IF C%(PL% -1,14,3) <10 THEN C%(PL% -1,14,3) = 10
320 RETURN
321 C%(PL% -1,17,1) = YD(PL%): IF C%(PL% -1,17,1) >50 THEN C%(PL% -1,17,1) = 50
323 I = C%(PL% -1,17,1)/C%(PL% -1,18,1):C%(PL% -1,17,2) = C%(PL% -1,18,2) *I: IF C%(PL% -1,17,2) <7 THEN C%(PL% -1,17,2) = 7
325 C%(PL% -1,17,3) = C%(PL% -1,18,3) *I: IF C%(PL% -1,17,3) <10 THEN C%(PL% -1,17,3) = 10
327 RETURN
340 C%(PL% -1,15,1) = YD(PL%): IF C%(PL% -1,15,1) >50 THEN C%(PL% -1,15,1) = 50
360 I = C%(PL% -1,15,1)/50:C%(PL% -1,15,2) = C%(PL% -1,16,2) *I: IF C%(PL% -1,15,2) <2 THEN C%(PL% -1,15,2) = 2
380 C%(PL% -1,15,3) = C%(PL% -1,16,3) *I: IF C%(PL% -1,15,3) <2 THEN C%(PL% -1,15,3) = 2
400 RETURN
420 FL% = 1: IF S%(H% +(H% >9),PL%) < = VAL( MID$ (G$,H%,1)) THEN GH%(PL%) = GH%(PL%) +1
440 PD% = 3 *YD(PL%) +.5:PF% = S%(H% +(H% >9),PL%) +1: POKE 3516,16: CALL 3120: POKE 3516,64: POKE 10,0: CALL 3099: IF PD% >115 THEN PD% = 115
460 FOR I = 78 TO 86 STEP 8: POKE 226,I: POKE 224,75: POKE 225,0:Q$ = PL$(PL%): CALL 3078: NEXT : POKE 226,70: POKE 224,195: POKE 225,0:Q$ = STR$(DF(H%)): IF DF(H%) <1 THEN Q$ = "0" +Q$
480 IF Q$ = "1" THEN Q$ = Q$ +".00"
500 CALL 3078: GOSUB 820:BX% = 245 -(2 *PD%):BY% = 49: GOSUB 840: IF ID$(PL%) < >"C" GOTO 560
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
680 ON X% GOTO 700,720: IF RND(1) >.5 THEN 720
700 PR% = PD% -(.75 + RND(1) *ZB/(1 +(PN <3)) +(PN = 3) *(1 + RND(1))): GOTO 740
720 PR% = PD% +(.75 + RND(1) *ZB/(1 +(PN <3)) +(PN = 3) *(1 + RND(1)))
740 PR% = 2 *PR%: IF PN = 1 THEN PR% = PD% *2
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"
830 CALL 3078: POKE 224,195: POKE 225,0: POKE 226,86:Q$ = STR$(PF%): CALL 3078: RETURN
840 HCOLOR= 3: DRAW 66 AT BX%,BY%: DRAW 60 AT BX%,BY% -2:Q$ = STR$(H%): POKE 226,25: POKE 225,0: POKE 224,(253 -3 *(H% >9)): CALL 3078: RETURN
860 S%(21,PL%) = S%(21,PL%) +1:S%(H% +(H% >9),PL%) = S%(H% +(H% >9),PL%) +1:S%(10 +10 *(H% >9),PL%) = S%(10 +10 *(H% >9),PL%) +1: RETURN
880 Q$ = Q$(1): PRINT "": 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 "": 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
940 X = XL(PL%):Y = YL(PL%):X% = LX%:Y% = LY%: CALL 3096:CO = PEEK(5)
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 "": 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 "": 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 "": 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
1200 IF A1 < = 90 THEN A2 = A1/90:A3 = 1 -A2:WX% = A2 *WV%/SC(H%):WZ% = -A3 *WV%/SC(H%): GOTO 1280
1220 IF A1 < = 180 THEN A1 = A1 -90:A3 = A1/90:A2 = 1 -A3:WX% = A2 *WV%/SC(H%):WZ% = A3 *WV%/SC(H%): GOTO 1280
1240 IF A1 < = 270 THEN A1 = A1 -180:A2 = A1/90:A3 = 1 -A2:WX% = -A2 *WV%/SC(H%):WZ% = A3 *WV%/SC(H%): GOTO 1280
1260 A1 = A1 -270:A3 = A1/90:A2 = 1 -A3:WX% = -A2 *WV%/SC(H%):WZ% = -A3 *WV%/SC(H%)
1280 IF CL% <14 THEN DE = DE +WX%:D = D +WZ%: RETURN
1300 IF YD(PL%) <51 THEN RETURN
1320 WX% = WX% *C%(PL% -1,14,1)/C%(PL% -1,0,1):WZ% = WZ% *C%(PL% -1,14,1)/C%(PL% -1,0,1):DE = DE +WX%: IF WZ% = 0 THEN RETURN
1340 I = C%(PL% -1,0,1) +WZ%:DV = D -YD(PL%): IF YD(PL%) >C%(PL% -1,0,1) THEN DV = D -C%(PL% -1,0,1)
1360 IF I P1% AND CO%(PL%) = 1) OR T%(PL%) = 2) THEN P% = P% +1: GOTO 2040
2080 ZZ$ = "": IF CO%(PL%) = 1 GOTO 420
2100 XDRAW 67 AT XL(PL%),YL(PL%): IF CO%(PL%) = 1 THEN 2140
2120 ZZ$ = "-" + STR$( INT(YD(PL%) +.5)) +" YDS": IF CO%(PL%) = 3 OR CO%(PL%) = 7 THEN ZZ$ = ZZ$ +" *"
2130 IF CO%(PL%) = 15 THEN ZZ$ = ZZ$ +" **"
2140 POKE 10,1:Q$ = PL$(PL%) +Q$(6) +ZZ$: CALL 3072:LN% = LN% +8: XDRAW 69 AT HX%(H%),HY%(H%): IF CO%(PL%) = 1 GOTO 420
2160 POKE -16368,0:Q$ = Q$(7): IF ID$(PL%) = "C" THEN GOSUB 6000: GOTO 2980
2170 IF (CO%(PL%) = 7 OR CO%(PL%) = 3 OR CO%(PL%) = 15) AND YD(PL%) <51 THEN CL% = 17: GOSUB 321: GOTO 2420
2180 GOSUB 1140: IF PEEK( -16384) = 161 AND T%(PL%) < >1 THEN POKE -16384,0: POKE -16368,0: GOTO 2180
2200 GET T$: IF ASC(T$) = 27 THEN GOSUB 20000: GOTO 2160
2220 IF T$ < >"R" THEN CL$ = T$:T$ = "N": GOTO 2300
2240 Q$ = Q$ +"(R)":CO%(PL%) = 7:T$ = "R": POKE -16368,0
2260 GOSUB 1140: IF PEEK( -16384) = 161 AND T%(PL%) < >1 THEN POKE -16384,0: POKE -16368,0: GOTO 2260
2280 GET CL$: IF ASC(CL$) = 27 THEN GOSUB 20000: POKE -16368,0: GOTO 2260
2300 CL% = ASC(CL$): IF (CL% <37 AND CL% >32) THEN CL% = CL% -32: GOTO 2420
2320 IF (CL% <58 AND CL% >48) THEN CL% = CL% -44: GOTO 2420
2340 IF CL% = 87 THEN CL% = 14: GOSUB 260: GOTO 2420
2360 IF CL% = 67 THEN CL% = 15: GOSUB 340: GOTO 2420
2380 IF T$ = "R" THEN 2260
2400 GOTO 2160
2420 Q$ = Q$ +CL$(CL%): POKE 10,1: CALL 3072:LN% = LN% +8
2440 GOSUB 140:Q$ = Q$(8) + STR$(DR%(PL%)) +Q$(20): POKE -16368,0:A$ = " ":DZ = 6 * LEN(Q$)
2460 GOSUB 1140: GET CL$: IF ASC(CL$) < >8 THEN 2520
2480 IF LEN(A$) = 1 GOTO 2460
2500 CL$ = RIGHT$(A$,1):A$ = LEFT$(A$, LEN(A$) -1):DZ = DZ -6: HCOLOR= 0: DRAW ( ASC(CL$) -31) AT PH%(H%) +DZ,PV%(H%) +LN%: HCOLOR= 3: GOTO 2460
2520 IF (( ASC(CL$) <48 OR ASC(CL$) >57) AND ASC(CL$) < >13 AND ASC(CL$) < >27) GOTO 2460
2540 IF ASC(CL$) = 27 THEN GOSUB 20000: GOTO 2460
2560 IF ASC(CL$) = 13 GOTO 2580
2565 DRAW ( ASC(CL$) -31) AT PH%(H%) +DZ,PV%(H%) +LN%:DZ = DZ +6:A$ = A$ +CL$: IF LEN(A$) >4 GOTO 2620
2570 GOTO 2460
2580 IF A$ = " " GOTO 2460
2620 DI% = VAL(A$):Q$ = Q$ + RIGHT$(A$, LEN(A$) -1)
2640 IF DI% >360 THEN POKE 10,1: HCOLOR= 0: CALL 3072: HCOLOR= 3: GOTO 2440
2660 D1 = DI% *RA:D = C%(PL% -1,CL%,1)/SC(H%):X% = XL(PL%) +D * COS(D1):Y% = YL(PL%) +D * SIN(D1): POKE -16368,0: IF X% <1 THEN X% = 1
2680 IF X% >278 THEN X% = 278
2700 IF Y% <1 THEN Y% = 1
2720 IF Y% >190 THEN Y% = 190
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
2900 IF ASC(CL$) = 27 THEN GOSUB 20000: GOTO 2800
2920 GOTO 2800
2940 Q$ = Q$ +" " +CL$: POKE 10,1: CALL 3072:LN% = LN% +8:Q$ = Q$(15): POKE -16368,0
2960 GOSUB 1140: GET A$: POKE -16368,0: IF ASC(A$) = 27 THEN GOSUB 20000: GOTO 2960
2980 CALL 3102: XDRAW 69 AT HX%(H%),HY%(H%): XDRAW 67 AT XL(PL%),YL(PL%):LN% = 0: IF A$ = "C" THEN XDRAW 69 AT HX%(H%),HY%(H%): GOTO 2140
3000 D = C%(PL% -1,CL%,1) -C%(PL% -1,CL%,2):J = C%(PL% -1,CL%,0)
3010 IF T$ = "R" THEN J = INT(J/3 +.5)
3011 IF CO%(PL%) < >3 AND CO%(PL%) < >7 AND CO%(PL%) < >15 THEN 3019
3012 IF CO%(PL%) = 3 OR CO%(PL%) = 7 THEN J = C%(PL% -1,18 -(YD(PL%) <51),0)
3014 IF CO%(PL%) = 15 THEN J = INT(C%(PL% -1,18 -(YD(PL%) <51),0)/3 +.5)
3019 IF J = 0 THEN J = 1
3020 DV = 0: FOR I = 1 TO J:DV = DV + RND(1): NEXT :DV = 2 *DV/(J +.1): IF DV <1.41 THEN 3040
3025 IF CL% < >17 AND CL% < >15 AND (CL% < >14 AND YD(PL%) <51) THEN 3020
3040 D = INT((D +DV *C%(PL% -1,CL%,2))/SC(H%)):DV = 0: IF D <1 THEN D = 1
3060 FOR I = 1 TO J:DV = DV + RND(1): NEXT :DV = DV/J:DE = INT(( -C%(PL% -1,CL%,3) +2 *DV *C%(PL% -1,CL%,3) +DE *C%(PL% -1,CL%,3) *2 *DV +.5)/SC(H%) +.05): ON WF% GOSUB 1180
3080 DI% = DI% -1 + RND(1) *2 +.05:D1 = DI% *RA:D2 = SGN(DE) *PI/2:E1 = SIN(D1):E2 = COS(D1):E3 = SIN(D1 +D2):E4 = COS(D1 +D2):S = D/25 -.0001:LX% = XL(PL%):LY% = YL(PL%):DL = 0:I = PEEK( -16336) - PEEK( -16336) + PEEK( -16336):FL% = 1:B = 1: FOR D0 = S TO D STEP S
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 .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
4180 O% = O3%(I):O3%(I) = O3%(I +1):O3%(I +1) = O%:O% = O2%(I):O2%(I) = O2%(I +1):O2%(I +1) = O%:F% = 1
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
5055 IF I = 147 THEN 5100
5060 POKE 230,32: CALL 3120: ON WF% GOSUB 1400: CALL 3099: POKE -16304,0: POKE -16302,0: GOTO 2000
5100 IF H% >17 THEN 5060
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 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%) 50 THEN GOSUB 1180
6100 HX%(H%) = AP%(0,0):HY%(H%) = AP%(0,1):YD(PL%) = AP%(0,2):D = (D2 -WZ%) *SC(H%):K = WX% *SC(H%):WZ% = WZ% *SC(H%):S = C%(PL% -1,0,1) +WZ%
6120 IF S >YD(PL%) THEN S = YD(PL%)
6140 IF YD(PL%) >50 GOTO 6200
6150 IF CO%(PL%) = 3 OR CO%(PL%) = 7 OR CO%(PL%) = 15 THEN CL% = 17: GOSUB 321:I = 0:DE = 0: GOTO 6720
6160 GOSUB 340:D2 = YD(PL%)/SC(H%):S = D2/25 -.0001:D1 = DI% *RA:I1 = 1:E1 = COS(D1):E2 = SIN(D1): FOR I = 13 TO 25:D0 = I *S:X% = XL(PL%) +D0 *E1:Y% = YL(PL%) +D0 *E2: CALL 3096:CO = PEEK(5): IF CO = 3 OR CO = 7 OR CO = 6 THEN I1 = 0:I = 25
6180 NEXT :DE = 0:CL% = 14 +I1:I = 0: GOTO 6720
6200 CL% = 14: FOR I = 1 TO 14: IF C%(PL% -1,I,1) >D GOTO 6240
6220 CL% = I:I = 14
6240 NEXT : FOR I = 0 TO 2: FOR J = 0 TO 3:CS(I,J) = 20000: NEXT : NEXT :I1 = 1:D = C%(PL% -1,CL%,1) +WZ%: IF CL% = 14 THEN D = S
6260 D1 = DI% *RA: GOSUB 6580:I9 = D0:DE = DI%:DV = DI%
6280 DV = DV -1: IF DV <0 THEN DV = DV +360
6300 D1 = DV *RA: GOSUB 6580: IF D0 360 THEN DV = DV -360
6360 D1 = DV *RA: GOSUB 6580: IF D0 360 THEN DV = DV -360
6520 D1 = DV *RA: GOSUB 6580: IF D0 1 AND Y >1 AND X <278 AND Y <190 THEN CALL 3096:CO = PEEK(5)
6600 D0 = SQR((X -AX%) *(X -AX%) +(Y -AY%) *(Y -AY%)) *SC(H%): IF I1 THEN RETURN
6620 D0 = D0 +CF%(CO):D2 = D *C%(PL% -1,I,4)/25: GOSUB 6680:CO = 8: IF X >1 AND Y >1 AND X <278 AND Y <190 THEN CALL 3096:CO = PEEK(5)
6640 IF CO = 0 OR CO = 2 THEN CO = 1
6660 D0 = D0 +CF%(CO): RETURN
6680 X = XL(PL%) +( COS(D1) *D2 + COS(D1 + SGN(K) *PI/2) * ABS(K))/SC(H%):X% = X:Y = YL(PL%) +( SIN(D1) *D2 + SIN(D1 + SGN(K) *PI/2) * ABS(K))/SC(H%):Y% = Y: RETURN
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 "YOU HAVE THE WRONG DISK!";: FOR I = 1 TO 2000: NEXT I: PRINT : PRINT "INSERT PROPER DISK AND PRESS ";: 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
20040 IF PEEK( -16384) <128 THEN 20040
20060 POKE -16304,0: POKE -16300,0: POKE -16368,0: RETURN
Text found in progolf1.dsk/GS.bas:
0 REM ==>GOLF.STARTUP
5 IF PEEK(103) +256 * PEEK(104) < >24576 THEN POKE 103,0: POKE 104,96: POKE 24576,0: & RUN "GS"
10 LOMEM: 38600
20 CLEAR :X% = 0:Y% = 0:H% = 0:LN% = 0:PX% = 0:PY% = 0:Q$ = ""
25 ONERR GOTO 12000
26 ER = 0
30 & RECALL "GU"
60 POKE 232,0: POKE 233,28
70 HOME : POKE 34,0
80 CALL 4045
90 POKE -16297,0: POKE -16304,0: POKE -16302,0: POKE -16300,0
100 REM DEMO
120 FOR I = 1 TO 2500: NEXT : CALL 4082
150 SCALE= 1: ROT= 0: POKE 230,32
190 FOR I = 1 TO 2000: NEXT
200 HCOLOR= 3: DRAW 60 AT 130,81: DRAW 66 AT 131,84
210 FOR I = 1 TO 1400: NEXT I
220 FOR I = 63 TO 65: XDRAW I AT 131,76: FOR J = 1 TO 100: NEXT J: XDRAW I AT 131,76: NEXT I
230 FOR I = 65 TO 64 STEP -1: XDRAW I AT 131,76: FOR J = 1 TO 100: NEXT J: XDRAW I AT 131,76
240 XDRAW 63 AT 131,76
250 I = PEEK( -16336) - PEEK( -16336)
260 FOR I = 131 TO 238: HCOLOR= 3: DRAW 66 AT I,84: FOR J = 1 TO 10: NEXT : HCOLOR= 1: DRAW 66 AT I,84: NEXT I
270 HCOLOR= 0: DRAW 66 AT 237,84: DRAW 66 AT 238,84:I = PEEK( -16336) - PEEK( -16336)
350 POKE 230,32: HCOLOR= 3
370 FOR I = 1 TO 3000: NEXT
900 TEXT : HOME : VTAB 11: PRINT SPC( 9);"PROFESSIONAL TOUR GOLF": VTAB 13: HTAB 20: PRINT "BY": VTAB 15: HTAB 12: PRINT "HENRY L. RICHBOURG": POKE 34,18: VTAB 22
905 PRINT "IS THIS A NEW OR CONTINUED GAME -->";: FLASH : PRINT " ";: NORMAL : POKE -16368,0: POKE -16384,0
910 IF PEEK( -16384) < >195 AND PEEK( -16384) < >206 THEN 910
915 IF PEEK( -16384) = 206 THEN 1000
919 POKE 216,0: TEXT : HOME : VTAB 5
920 PRINT "INSERT YOUR ";: INVERSE : PRINT "SSI SAVE GAME DISK";: NORMAL : PRINT " AND": PRINT "PRESS THE TO CONTINUE ";: INVERSE : PRINT " ": NORMAL : POKE -16368,0: POKE -16384,0
922 IF PEEK( -16384) < >160 THEN 922
923 ONERR GOTO 919
924 & READ "GAME.CAT"
925 INPUT GC$: & END
926 HOME : INVERSE : PRINT SPC( 9)"SAVE GAME DISK CATALOG" SPC( 9): NORMAL : FOR I = 1 TO 10: PRINT "GAME # "I;: HTAB 12: IF MID$ (GC$,I,1) = "0" THEN PRINT "FREE";: GOTO 928
927 PRINT "IN USE";
928 HTAB 21: PRINT "GAME # "I +10;: HTAB 32: IF MID$ (GC$,I +10,1) = "0" THEN PRINT "FREE": GOTO 930
929 PRINT "IN USE"
930 NEXT : PRINT : PRINT "PRESS FOR A NEW GAME OR": INPUT "ENTER NUMBER OF GAME TO CONTINUE ";A$: IF A$ = "" THEN TEXT : HOME : GOTO 1000
931 IF VAL(A$) <1 OR VAL(A$) >20 THEN 926
934 I = VAL(A$): IF MID$ (GC$,I,1) = "0" THEN PRINT : PRINT "GAME # "I" DOES NOT EXIST.": FOR I = 1 TO 1000: NEXT : GOTO 926
935 POKE 0,I
936 CLEAR
937 & RECALL "REG." + STR$( PEEK(0))
938 & RECALL "GAME." + STR$( PEEK(0))
939 I = CB%
940 HOME : VTAB 5: PRINT "INSERT THE MASTER GOLF DISK OR COURSE MODULE DISK ON WHICH THE SUSPENDED GAME WAS BEING PLAYED AND PRESS THE TO CONTINUE": POKE -16384,0: POKE -16368,0
941 IF PEEK( -16384) < >160 THEN 941
945 ONERR GOTO 940
950 & READ "GCO"
955 INPUT NC%: INPUT CB%: & END
960 IF I < >CB% THEN FLASH : PRINT "ERROR. YOU DO NOT HAVE THE RIGHT DISK!!": NORMAL : FOR J = 1 TO 2500: NEXT : GOTO 940
965 & RECALL "GSC"
967 I = VAL( RIGHT$(CO$, LEN(CO$) -1)): POKE 251,12 +4 *I: CALL 3117
968 & RECALL "PS"
969 INVERSE : VTAB 1: FOR I = 1 TO P1%: HTAB 12 +I *6: PRINT PL$(I);: NEXT : NORMAL
970 FOR I = 1 TO H% -1: VTAB (I +1 +(I >9)): FOR J = 1 TO P1%: HTAB 13 +6 *J: PRINT S%(I +(I >9),J);: NEXT : NEXT : INVERSE : VTAB 11: FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(10,J) <10 THEN PRINT " ";
971 PRINT S%(10,J);: NEXT : NORMAL : IF H% -1 <10 THEN 974
972 VTAB 21: INVERSE : FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(20,J) <10 THEN PRINT " ";
973 PRINT S%(20,J);: NEXT : NORMAL
974 VTAB 22: FOR J = 1 TO P1%: HTAB 12 +6 *J: IF S%(21,J) <10 THEN PRINT " ";
975 PRINT S%(21,J);: NEXT : VTAB 24: POKE 34,23
980 CALL 3111: & RUN "GP"
1000 REM INITIALIZE
1050 CLEAR :X% = 0:Y% = 0:H% = 0:LN% = 0:PX% = 0:PY% = 0:Q$ = ""
1100 POKE -16368,0: PRINT : POKE 232,0: POKE 233,28
1150 POKE -16303,0: POKE 34,18: HOME : POKE 34,0
1200 VTAB 22: HTAB 1: PRINT "HOW MANY PLAYERS IN YOUR GROUP (1-4) ";: GET A$: PRINT : IF ASC(A$) <49 OR ASC(A$) >52 THEN PRINT "GROUPS ARE RESTRICTED TO 1-4 PLAYERS": GOTO 1200
1250 P1% = VAL(A$): POKE -16368,0
1300 DIM C%(3,18,4),S%(21,4),PL$(4),CL$(17),O1%(4),O2%(4),CO%(4),YD(4),DR%(4),XL(4),YL(4),PU(3,2,8,2),TX%(18),TY%(18),HX%(18),HY%(18),SC(18),PH%(18),PV%(18),HO%(1,3),T%(4),O3%(4),YE(4),YO%(18),A9%(18)
1350 DIM Q$(80),ID$(4),CS(2,3),AP%(18,3),CF%(8),DF(18),GH%(4),TP%(4),IG%(4)
1400 HOME : VTAB 6: PRINT "PLEASE ENTER ";: INVERSE : PRINT "EXACTLY THREE";: NORMAL : PRINT " INITIALS FOR EACH PLAYER IN THE DESIRED ORDER OF PLAYFOR THE FIRST HOLE:": VTAB 10: POKE -16368,0: FOR I = 1 TO P1%:PL$(I) = "": PRINT "PLAYER NO. ";I;" -> ";: FOR J = 1 TO 3
1450 GET A$: POKE -16368,0: IF ( ASC(A$) = 13 OR ( ASC(A$) = 8 AND J = 1)) GOTO 1450
1500 IF ASC(A$) < >8 GOTO 1650
1550 J = J -1: PRINT A$;: IF J = 1 THEN PL$(I) = "": GOTO 1450
1600 PL$(I) = LEFT$(PL$(I),J -1): GOTO 1450
1650 PRINT A$;:PL$(I) = PL$(I) +A$: NEXT J: PRINT : NEXT I: POKE -16368,0: POKE -16384,0
1700 VTAB 22: HTAB 8: PRINT " INSERT PLAYER DISK THEN ": PRINT SPC( 12);"PRESS ";: FOR I = 0 TO 750: NEXT : VTAB 22: HTAB 1: PRINT SPC( 78);: FOR I = 0 TO 40: IF PEEK( -16384) < >141 THEN NEXT : GOTO 1700
1750 I = 40: NEXT : POKE -16368,0: POKE -16384,0
1800 ER = 1: ONERR GOTO 12000
1850 & READ "PLAYER.NAMES"
1900 FOR I = 1 TO 80: INPUT Q$(I): NEXT
1950 & END
1960 I = 0:I1 = 1:I2 = 20: TEXT : HOME : GOTO 2000
1970 IF I1 = 1 THEN I1 = 41:I2 = 60: GOTO 2000
1980 I1 = 1:I2 = 20
2000 POKE 34,0: VTAB 1: HTAB 1: FOR J = I1 TO I2:A$ = " " + STR$(J):A$ = RIGHT$(A$,2): HTAB 1: CALL -868: PRINT A$" "Q$(J);: HTAB 21: PRINT J +20" "Q$(J +20): NEXT : INVERSE : PRINT " PRESS FOR MORE PLAYERS ": NORMAL : POKE 34,21: VTAB 22
2050 HOME : PRINT PL$(I +1);: PRINT " SELECT CHARACTERISTICS ("I1"-"I2 +20;: INPUT ") ";A$:J = VAL(A$): IF A$ = "" THEN 1970
2060 IF J I2 +20 THEN 2050
2070 IF Q$(J) = "" THEN 12100
2100 IG%(I +1) = J
2150 ER = 2: ONERR GOTO 12000
2200 A$ = "PD." + STR$(J): & READ A$
2250 FOR J = 0 TO 18: FOR K = 0 TO 4: INPUT C%(I,J,K): NEXT K,J: FOR J = 0 TO 2: FOR K = 0 TO 8: FOR I9 = 0 TO 2: INPUT PU(I,J,K,I9): NEXT : NEXT : NEXT : & END
2300 PRINT "HUMAN OR COMPUTER ";: POKE -16368,0
2350 GET A$: IF A$ < >"C" AND A$ < >"H" THEN 2350
2400 PRINT A$:ID$(I +1) = A$
2450 I = I +1: IF I ";: FOR I = 0 TO 500: NEXT : HTAB 1: CALL -868: FOR I = 0 TO 40: IF PEEK( -16384) < >141 THEN NEXT : GOTO 2700
2750 I = 50: NEXT : POKE -16368,0: POKE -16384,0: HOME
2800 DIM A$(3)
2850 ER = 3: ONERR GOTO 12000
2900 REM => J=#COURSES ON DISK I1=COURSE BASE #
2950 & READ "GCO"
3000 INPUT NC%: INPUT CB%
3050 FOR I = 1 TO NC%: INPUT A$(I): NEXT
3100 & END
3150 ER = 4: ONERR GOTO 12000
3200 & RECALL "GSC"
3250 POKE 232,0: POKE 233,28: POKE -16368,0
3300 VTAB 6: PRINT " WHICH COURSE WOULD YOU LIKE TO PLAY?": PRINT : FOR I = 1 TO NC%: HTAB 9: PRINT I" - "A$(I): NEXT
3350 VTAB 12: HTAB 9: PRINT "ENTER COURSE NUMBER";: FOR I = 0 TO 500: NEXT : HTAB 1: CALL -868: FOR I = 0 TO 20: IF PEEK( -16384) <177 OR PEEK( -16384) >176 +NC% THEN NEXT : GOTO 3350
3400 I = 20: NEXT : GET CO$: POKE -16368,0: POKE -16384,0
3450 REM => CN%=COURSE NUMBER FOR RECORD UPDATE
3500 CN% = CB% + VAL(CO$)
3550 IF CO$ = "1" THEN POKE 251,16: POKE 1928,49: GOTO 3750
3600 IF CO$ = "2" THEN POKE 251,20: POKE 1072,50: GOTO 3750
3650 IF CO$ = "3" THEN POKE 251,24: POKE 1200,51: GOTO 3750
3700 GOTO 3350
3750 PRINT SPC( 6);"DO YOU WANT WIND EFFECT?";: FOR I = 0 TO 500: NEXT : HTAB 1: CALL -868: FOR I = 0 TO 40: IF PEEK( -16384) <128 THEN NEXT : GOTO 3750
3800 I = 50: NEXT : GET A$:WF% = (A$ = "Y"):J = WF% *2 +11: PRINT SPC( J);"WIND ";: IF A$ < >"Y" THEN INVERSE : PRINT "NOT";: NORMAL : PRINT " ";
3850 PRINT "IN PLAY"
3900 CO$ = "." +CO$: POKE -16368,0
3950 VTAB 17: HTAB 9: PRINT "PRESS TO BEGIN";: FOR I = 1 TO 500: NEXT : HTAB 8: CALL -868: FOR I = 1 TO 25:J = RND(1): IF PEEK( -16384) < >141 THEN NEXT : GOTO 3950
4000 I = 25: NEXT : POKE -16384,0: POKE -16368,0
4050 CALL 3117: INVERSE : VTAB 1: FOR I = 1 TO P1%: HTAB 12 +I *6: PRINT PL$(I);: NEXT I: VTAB 24: HTAB 10: PRINT "LOADING COURSE DATA";: NORMAL : HTAB 38: POKE 33,2: POKE 32,37: POKE 34,23: PRINT : PRINT
4100 ER = 5: ONERR GOTO 12000
4150 A$ = "GCD" +CO$: & READ A$
4200 FOR I = 1 TO 17: INPUT CL$(I): NEXT : FOR I = 1 TO 18: INPUT TX%(I): INPUT TY%(I): INPUT SC(I): INPUT PH%(I): INPUT PV%(I): NEXT I
4250 FOR I = 1 TO 18: FOR J = 0 TO 3: INPUT HO%(0,J): INPUT HO%(1,J): NEXT J:J = INT( RND(1) *4):HX%(I) = HO%(0,J):HY%(I) = HO%(1,J): NEXT I
4300 FOR I = 1 TO 18: INPUT YO%(I): NEXT : FOR I = 1 TO 18: INPUT A9%(I): NEXT
4350 FOR I = 1 TO 18: FOR J = 0 TO 3: INPUT AP%(I,J): NEXT J,I
4400 FOR I = 0 TO 8: INPUT CF%(I): NEXT
4450 FOR I = 1 TO 18: INPUT DF(I): NEXT
4500 INPUT G$
4550 & END
4560 & READ "GST"
4570 FOR I = 0 TO 30: INPUT Q$(I): NEXT
4580 & END
4600 POKE 32,0: POKE 33,40
4650 W% = WF% *(5 + RND(1) *11):WG% = WF% *(3 + RND(1) *3)
4700 & RECALL "PS"
4750 ER = 6: ONERR GOTO 12000
4800 H% = 1: CALL 3111: & RUN "GP
11000 FOR I = 1 TO LEN(Q$):F = ASC( MID$ (Q$,I,1)) -31: HCOLOR= 3: DRAW F AT X +(I -1) *7,Y:F = PEEK( -16336): NEXT : RETURN
12000 REM =>ERROR HANDLING
12010 ON ER GOTO 12020,12070,12020,12020,12070,12020
12020 IF PEEK(222) < >1 GOTO 12130
12030 POKE -16303,0: POKE 32,0: POKE 33,40: POKE 216,0: PRINT : PRINT "YOU DO NOT HAVE THE PROPER DISK!";: FOR EQ = 1 TO 2000: NEXT : PRINT : INPUT "INSERT PROPER DISK AND PRESS ";ER$
12040 ONERR GOTO 12000
12050 ON ER GOTO 1800,2150,2850,3150,4100,4750
12060 RESUME
12070 IF PEEK(222) < >1 AND PEEK(222) < >5 GOTO 12130
12080 IF PEEK(222) = 1 GOTO 12030
12090 POKE 216,0: IF ER = 5 GOTO 12120
12100 PRINT : PRINT "REQUESTED PLAYER FILE DOES NOT EXIST!";: FOR EQ = 1 TO 2000: NEXT : PRINT
12110 GOTO 2050
12120 TEXT : HOME : PRINT "COURSE DATA FILE READ ERROR!": END
12130 TEXT : HOME : PRINT "ERROR NUMBER "; PEEK(222);" IN LINE "; PEEK(218) +256 * PEEK(219);"": END
Text found in progolf1.dsk/GST.txt:
SELECT PUTTING STROKE
YOU CAUGHT THE TRAP!
IN THE WATER!
IN THE HOLE!!
OUT OF BOUNDS!
YOU HIT THE TREE!
'S SHOT
SELECT CLUB -
DIRECTION (
DEVIATION -
STRAIGHT
HOOK
SLICE
DRAW
FADE
CHANGE OR EXECUTE?
PRESS TO UPDATE PLAYER RECORDS
INSERT GOLF UTILITY SIDE AND PRESS
PRESS FOR NEXT HOLE
STAT.UPDATE
) -
E
SE
S
SW
W
NW
N
NE
WIND
E!
'S SHOT
SELECT CLUB -
DIRECTION (
DEVIATION -
STRAIGHT
HOOK
SLICE
DRAW
FADE
CHANGE OR EXECUTE?
PRESS TO UPDATE PLAYER RECORDS
Text found in progolf1.dsk/HELLO.bas:
0 REM HELLO
1 & RECALL "QWERTY": CALL 768
2 IF PEEK(0) THEN CALL -1052: GOTO 2
3 & RUN "GS"
65535 DATA 0
Text found in progolf1.dsk/QWERTY.txt:
Offset Hex Data Characters
======= ================================================ =================
$000000 AE F1 BA BD 89 C0 A9 00 20 1E BD A9 00 85 00 C6 .q:=.@). .=)...F
$000010 00 F0 17 20 65 BC B0 F7 C1 00 C1 00 EA EA BD 8E .p. e<0w A.A.jj=.
$000020 C0 BD 8C C0 10 FB 49 EE A9 00 85 00 60 00 00 00 @=.@.{In )...`...
** END **
- Addeddate
- 2014-09-30 10:12:03
- Emulator
- apple2e
- Emulator_ext
- dsk
- Identifier
- glitch_progolf1
- Scanner
- Internet Archive Python library 0.7.2