C64 Software  <  SCA: The C64 Software Collection / EPI4

  Run
1 IF CH=1 THEN 111
2 GOSUB 65:POKE53280,13:POKE53281,13
3 N1$="":N2$="":BK=3:LG=1:NM$=N2$:GOTO103
4 EC=0:XD=0:YD=0:LI=40:HI=24:XA=0:YA=0:GOSUB238:POKE50950,3:SYS50944
5 LG=2:NM$=N1$:GOTO103
6 POKE27158,4:POKE27204,4:POKE27551,90:FORI=96 TO 103:POKE27136+I,4:NEXTI
7 POKE25765,85:POKE25793,0:POKE25821,0:SYS 25744
8 AT=27136:TQ=27392:QL=200:UN=1:DX=2:VG=20:ZR=0:POKE6198,234
9 SC=1:X=30:Y=19:SS=4:POKE53269,15:POKE6152,02:POKE6153,234
10 GOSUB 78:RS=0
11 GOSUB 121:GOSUB 256
12 BL=0
13 GOSUB 60
14 GET A$:IF A$="" THEN 13
15 A=ASC(A$)−48:IF(A>=0) AND (A<=9) THEN SC=A:GOSUB 121:GOTO13
16 GOTO13
17 SYS49306:T=PEEK(49381)
18 IF T=8 THEN 51
19 IF T=4 THEN 42
20 IF T=1 THEN 34
21 IF T=2 THEN 24
22 IF T=16 THEN 284
23 GOTO17
24 SS=PEEK(AT+PEEK(TQ+SC*QL+(INT((Y−UN)/DX))*VG+INT(X/DX))):AP=AU:AU=ZR
25 IF SSAND4THENCO=0:GOTO 64
26 SP=PEEK(AT+PEEK(TQ+SC*QL+(INT((Y−UN)/DX)+UN)*VG+INT(X/DX)))
27 IF Y=19 THEN SC=SC+1:Y=0:GOSUB121:GOTO60
28 IF (SP AND 15)=15 THENCO=0:GOTO63
29 IF (G=0) AND (AP=1) AND((SP AND16)<>0) AND (X AND1) THEN 64
30 IF (G=1) AND (AP=1) AND((SP AND32)<>0) THEN 64
31 IF (SP AND 48) THEN G=SP/16−1
32 CO=((SP AND 48)>0)*((X+G)/2<>INT((X+G)/2))
33 Y=Y+1:GOTO60
34 SP=PEEK(AT+PEEK(TQ+SC*QL+(INT(Y/DX)−UN)*VG+INT(X/DX)))
35 IF Y=0 THEN SC=SC−1:Y=19:GOSUB121:GOTO60
36 SS=PEEK(AT+PEEK(TQ+SC*QL+(INT(Y/DX))*VG+INT(X/DX)))
37 IF (SP AND 15)=15 THEN64
38 IF (SS AND 48)=0 THEN Y=Y−1
39 IF (SP AND 48) THEN G=SP/16−1
40 CO=((SP AND 48)>0)*((X+G)/2<>INT((X+G)/2))
41 Y=Y−UN:GOTO60
42 SP=PEEK(AT+PEEK(TQ+SC*QL+INT(Y/DX)*VG+INT((X+UN)/DX)−UN))
43 IF X=0 THEN SC=SC−2:X=39:GOSUB121:GOTO60
44 IF ((SP AND 15)=15)OR CO THEN64
45 X=X−1:G=1:CO=0
46 POKE6129,X*DX+3:POKE6130,Y:POKE6135,CO:POKE6136,G
47 SYS6144:POKESO,SE
48 POKE6129,X*DX+2
49 SYS6144:POKESO,OFF
50 GOTO62
51 SP=PEEK(AT+PEEK(TQ+SC*QL+INT(Y/DX)*VG+INT((X−UN)/DX)+UN))
52 IF X=39 THEN SC=SC+2:X=0:GOSUB121:GOTO60
53 IF ((SP AND 15)=15) OR COTHEN64
54 X=X+UN:CO=0:G=0
55 POKE6129,X*DX+1:POKE6130,Y:POKE6135,CO:POKE6136,G
56 SYS6144:POKESO,SE
57 POKE6129,X*DX+2
58 SYS6144:POKESO,OFF
59 GOTO62
60 POKE6129,X*DX+2:POKE6130,Y:POKE6135,CO:POKE6136,G
61 SYS6144
62 IF CO=0  THENAU=1:GOTO24
63 IF(SC=1) AND (Y=9) AND(RS<>102) THEN 74
64 GOTO 23
65 IF PEEK(49152)<>120 THEN LOAD"",8,1
66 IF PEEK(24955)<>32 THEN LOAD"",8,1
67 IF (PEEK(27136)<>15) THEN LOAD"",8,1
68 CT=CT+1:IF CT=1 THENPOKE816,165:POKE817,244:LOAD"",8,1
69 SYS 26624
70 IF CT=2 THEN LOAD"",8,1
71 IF CT=3 THEN LOAD"",8,1
72 IF CT=4THEN LOAD"",8,1
73 RETURN
74 GOSUB 233:POKE53280,0:POKE53281,0:CLR:RUN
75 PRINT"";
76 FOR I=1 TO 4:PRINT"";:NEXTI
77 RETURN
78 REM
79 DEF FNLO(X)=X−INT(X/256)*256
80 DEF FNHI(X)=INT(X/256)
81 XS=26:YS=52
82 POKE25360,0:POKE25361,0
83 POKE25362,20:POKE25363,10
84 AB=27392
85 POKE25366,0
86 POKE25367,2:POKE25368,2
87 POKE25369,20
88 REM
89 REM
90 POKE53271,0:POKE53275,0:POKE53276,0:POKE53277,0
91 REM
92 POKE53287,1:POKE53288,10:POKE53289,0:POKE53290,6
93 REM
94 FORIY=7 TO 8
95 POKE27392+200*6+20*IY+3,89:NEXT IY
96 GOSUB 98
97 RETURN
98 POKE54296,7:POKE54272,0:POKE54273,10:POKE54278,16:POKE54277,17
99 SO=54276:SE=129:OFF=128
100 POKESO,OFF
101 RETURN
102 RETURN
103 REM
104 REM
105 REM
106 REM
107 IF NM$="" THEN 116
108 POKE53265,PEEK(53265)AND 239
109 E=0:CH=1
110 POKE53281,BK
111 E=E+1
112 POKE 53280,E−1
113 IF E=1 THEN LOAD""+NM$,8,1
114 IF E=2 THEN LOAD""+NM$,8,1
115 IF E=3 THEN LOAD""+NM$,8,1
116 CH=0
117 IF LG=1 THEN 4
118 IF LG=2 GOTO 6
119 IF LG=3 GOTO 63999
120 IF LG=4 GOTO 13
121 REM
122 REM
123 REM
124 REM
125 POKE53280,0:POKE53265,PEEK(53265)AND239
126 REM
127 AD=SC*200+27392
128 POKE25364,FNLO(AD):POKE25365,FNHI(AD):SYS 25376
129 GOTO137
130 XD=28:YD=0:LI=12:HI=24:XA=25:YA=0:EC=1:GOSUB 238
131 ON SC GOTO 132,133,134
132 GOTO135
133 XD=10:YD=4:LI=7:HI=20:XA=31:YA=2:EC=1:GOSUB 238:GOTO135
134 XD=17:YD=4:LI=11:HI=20:XA=28:YA=4:EC=1:GOSUB 238:GOTO135
135 SC=4−SC:FOR MA=1 TO 4:XA=XM(MA,SC,0):YA=XM(MA,SC,1):YD=4:XD=M(MA,SC)
136 LI=1:HI=3:EC=1:GOSUB238:NEXTMA
137 POKE53265,PEEK(53265)OR16
138 RETURN
139 REM
140 REM
141 REM
142 IF  AI(AI,SE)=1 THEN 150
143 IF TAI(AI,SE)=0 THEN RETURN
144 ON TAI(AI,SE) GOTO 146,147,148,149
145 GOTO 156
146 N1=1:N2=0:GOSUB157:GOTO156
147 N1=0:N2=1:GOSUB157:GOTO156
148 N1=1:N2=0:GOSUB157:GOTO156
149 N1=1:N2=1:GOSUB157:GOTO156
150 ON TAI(AI,SE) GOTO 152,153,154,155
151 GOTO 156
152 N1=2:N2=3:GOSUB157:GOTO156
153 N1=2:N2=3:GOSUB157:GOTO156
154 N1=5:N2=4:GOSUB157:GOTO156
155 N1=2:N2=3:GOSUB157:GOTO156
156 RETURN
157 XA=FNLO(PO(AI,SE)):YA=FNHI(PO(AI,SE))
158 POKE 25600+(3−SE)*48+YA*8+XA,N1
159 POKE 25600+(3−SE)*48+YA*8+XA+1,N2
160 XA=XA*3:YA=YA*4
161 IF SE<>SC THEN 165
162 EC=1:XD=N1*3:YD=0:LI=3:HI=4
163 GOSUB238
164 XA=XA+3:XD=N2*3:GOSUB238
165 RETURN
166 T1=TI:FORI=1 TO 10
167 A=A*200
168 NEXTI:T2=TI:PRINT(T2−T1)/60−.016666:END
169 REM
170 REM
171 REM
172 DATA 0,0,63,128,0,255,224,3,251
173 DATA 248,3,241,248,3,228,248,3
174 DATA 241,248,3,251,248,3,255,248
175 DATA 3,192,120,6,63,140,6,224
176 DATA 236,6,255,236,6,191,172,12
177 DATA 191,166,12,191,166,12,187
178 DATA 166,12,255,230,12,255,230
179 DATA 12,255,230,12,128,38,7,255
180 DATA 252
181 REM
182 DATA 0,0,1,224,0,3,240,0,7,248,0
183 DATA 15,252,0,63,30,0,126,79,0
184 DATA 198,239,3,186,79,7,117,31
185 DATA 12,218,254,25,189,124,19
186 DATA 126,184,13,239,176,4,253
187 DATA 176,2,123,96,1,54,192,0,157
188 DATA 128,0,73,128,0,51,0,0,22
189 DATA 0,0,12,0
190 REM
191 REM
192 DATA 0,7,128,0,15,192,0,31,224,0
193 DATA 63,240,0,120,252,0,242,126
194 DATA 0,247,99,0,242,93,192,248
195 DATA 174,224,127,91,48,62,189
196 DATA 152,29,126,200,13,247,176
197 DATA 13,191,32,6,222,64,3,108
198 DATA 128,1,185,0,1,146,0,0,204
199 DATA 0,0,104,0,0,48,0
200 REM
201 REM
202 REM
203 NL=1/2
204 FOR SJ=0 TO 2:READ CO
205 POKE 2040+SJ,32+SJ
206 FOR I=0 TO 62:READ V:POKE 2048+64*SJ+I,V:NEXTI
207 NL=2*NL
208 OL=255−1
209 REM
210 POKE53276,0
211 POKE53287+SJ,CO
212 POKE 53285,0
213 NEXT SJ
214 RETURN
215 REM
216 REM
217 REM
218 POKE49266,212:POKE49267,20:POKE49271,27:POKE49273,200
219 REM
220 POKE49274,24:POKE49269,00
221 REM
222 POKE 49276,15:POKE49277,0
223 REM
224 POKE49278,151
225 HO=8192
226 REM
227 POKE49268,3:POKE49269,0
228 SYS49152
229 RETURN
230 REM
231 REM
232 REM
233 SYS49296
234 RETURN
235 REM
236 REM
237 REM
238 POKE49603,EC
239 REM
240 REM
241 POKE49288,XD
242 POKE49289,YD
243 POKE49290,LI
244 POKE49291,HI
245 REM
246 REM
247 POKE49292,XA
248 POKE49293,YA
249 REM
250 SYS 50096
251 RETURN
252 EC=0:XD=0:YD=0:LI=40:HI=24:XA=0:YA=0:GOSUB238
253 GETA$:IF A$<>"" THEN253
254 EC=0:XD=0:YD=0:LI=40:HI=24:XA=0:YA=0:GOSUB238
255 RETURN
256 REM
257 REM
258 REM
259 POKE53265,PEEK(53265)OR32
260 POKE53270,PEEK(53270)OR16
261 POKE53272,PEEK(53272)OR 8
262 RETURN
263 YD=INT(S1/20)*2:XD=(S1−10*YD)*2
264 HI=2:LI=2:EC=1:GOSUB238
265 RETURN
266 HI=2:LI=2:EC=1:GOSUB238
267 REM
268 GOSUB98
269 POKE54278,28:POKESO,SE
270 POKE53265,PEEK(53265)AND247
271 POKE SO,OF
272 FOR I=1 TO 100:SX=RND(0)*8
273 POKE53265,(PEEK(53265)AND248)+SX:NEXTI
274 S1=90:FORYA=6 TO 8 STEP2:FORXA=10 TO 12 STEP2:GOSUB 263:NEXTXA,YA
275 POKE53265,PEEK(53265)OR8
276 POKE53265,(PEEK(53265)AND248)+3
277 GOSUB 233:POKE53280,0:POKE53281,0:PRINT"";
278 PRINT"";
279 PRINT"";
280 PRINT""
281 SYS49306:PRINT""PEEK(49381)"":IF PEEK(49381)=0 THEN 281
282 POKE53280,0:POKE53265,PEEK(53265)AND239:SYS50947
283 LOAD"",8
284 SP=0:AS=27392+SC*200+INT(Y/2)*20+INT(X/2):S1=PEEK(AS)
285 IF S1<96 THEN 338
286 ON S1−95 GOTO 291,296,287,287,297,302,306,322
287 POKEAS,90:BL=BL+1
288 YA=21:XA=BL*2+32:GOSUB 263
289 S1=90:YA=Y AND 254:XA=X AND 254:GOSUB 263
290 GOTO330
291 S1=97
292 XA=X AND 254:YA=Y AND 254:GOSUB263:POKEAS,S1
293 IF SC=7 THEN POKE27392+5*200+20*9+15,103:GOTO295
294 FORHT=4 TO 7:POKE27392+20*HT+16,90:NEXT HT
295 GOTO330
296 S1=96:GOTO 292
297 SP=RS:IF RS=0 THEN SP=74
298 POKEAS,SP:PI=1:RS=S1
299 YA=21:XA=27:GOSUB 263
300 S1=SP:YA=Y AND 254:XA=X AND 254:GOSUB 263
301 GOTO330
302 POKEAS,74:NY=1
303 YA=21:XA=23:GOSUB 263
304 S1=74:YA=Y AND 254:XA=X AND 254:GOSUB 263
305 GOTO330
306 SP=RS:IF RS=0 THEN SP=90
307 POKEAS,SP:CD=1:RS=S1
308 YA=21:XA=27:GOSUB 263
309 S1=SP:YA=Y AND 254:XA=X AND 254:GOSUB 263
310 FOR IY=8 TO 13
311 POKE27392+20*IY+11,95:NEXT IY
312 IF SC<>0 THEN 315
313 S1=95:YA=16:XA=22:GOSUB 263
314 YA=18:GOSUB 263
315 GOTO330
316 FOR IY=8 TO 13
317 POKE27392+20*IY+11,90:NEXT IY
318 IF SC<>0 THEN 321
319 S1=90:YA=16:XA=22:GOSUB 263
320 YA=18:GOSUB 263
321 RETURN
322 SP=RS:IF RS=0 THEN SP=74
323 POKEAS,SP:CA=1:RS=S1
324 YA=21:XA=27:GOSUB 263
325 A1=5632:FORIX=3 TO 5:FORIY=7 TO 8
326 AD=27392+200*9+20*IY+IX:POKEA1,PEEK(AD):A1=A1+1
327 POKEAD,90:NEXT IY:NEXTIX
328 S1=SP:YA=Y AND 254:XA=X AND 254:GOSUB 263
329 IF (NI=1) AND (SC=1) AND (Y=7) AND(X=<30) THEN GOTO 267
330 GOSUB331:GOTO17
331 REM
332 IF SP=102 THEN GOSUB316:GOTO337
333 IF SP<>103 GOTO337
334 A1=5632:FORIX=3TO5:FORIY=7 TO 8
335 AD=27392+200*9+20*IY+IX:POKEAD,PEEK(A1):A1=A1+1
336 NEXTIY,IX
337 RETURN
338 IF (BL=0)OR(RS<>100) THEN 345
339 SYS 24800
340 S1=120
341 YA=21:XA=BL*2+32:GOSUB 263
342 BL=BL−1
343 IF (SC=6) AND (Y=17) AND (G=1) THENGOSUB347
344 GOSUB 98
345 IF (NY=1)AND(SC=1) AND (Y=9) AND(X=<15) THEN GOTO 267
346 GOTO17
347 XA=6:S1=90:FORIY=7 TO 8:YA=IY*2:GOSUB263
348 POKE27392+200*6+20*IY+3,S1:NEXT IY
349 RETURN
READY.