1 REM 1
2 DIM X1(8),Y1(8),E$(8),X9(3),TY(3),TX(3),S1(2),AD(2),SF(2)
3 DEF YT=ASC(SEG$(CF$,F+3,1))
4 DEF YS=VAL(SEG$(CF$,F+4,3))
5 DEF YR(Q)=VAL(SEG$(T$,Q,2))
6 DEF YQ(Q)=VAL(SEG$(L6$,Q,1))
7 DEF YP=((1-0+1)*RND)+0
8 DEF YO(Q)=ASC(SEG$(L6$,Q,1))
9 DEF CA(Q)=ASC(SEG$(SE$,SY+Q,1))-60
10 DEF MO$(Q)=CHR$(Q+60)
11 DEF DG(Q)=SEG$(I$,M+Q,1)=SEG$(UI$,F,1)
12 DEF QW(Q)=ASC(SEG$(ER$,WF+Q,1))-60
13 DEF YU(Q)=ASC(SEG$(CF$,F+Q,1))-60
14 SA(0)=118
15 SA(2)=113
16 AD(0)=1
17 FH=1
18 SF(0)=115
19 SF(2)=113
20 CALL CLEAR
21 K$="QP A"
22 GH=1005
23 OPEN #1:"CS1",SEQUENTIAL,INTERNAL,INPUT,FIXED 190
24 CALL CLEAR
25 CALL SCREEN(2)
26 CALL COLOR(1,2,2)
27 FOR F=1 TO 3
28 INPUT #1:J$
29 PRINT J$: :
30 NEXT F
31 CALL CHAR(42,"00FF00FF00FF00FF")
32 CALL SCREEN(5)
33 CALL COLOR(1,5,5)
34 INPUT #1:ES$
35 INPUT #1:SE$
36 INPUT #1:RR$
37 EE$=ES$&SE$
38 FOR F=1 TO 8
39 INPUT #1:E$(F)
40 NEXT F
41 FOR F=0 TO 3
42 INPUT #1:TX(F),TY(F)
43 NEXT F
44 FOR F=0 TO 8
45 INPUT #1:X1(F),Y1(F)
46 NEXT F
47 FOR F=1 TO 34
48 INPUT #1:C$
49 CALL CHAR(VAL(SEG$(C$,1,3)),SEG$(C$,4,LEN(C$)-3))
50 NEXT F
51 INPUT #1:HL$
52 INPUT #1:I$
53 CLOSE #1
54 J$=""
55 CALL CLEAR
56 SF(0)=2
57 SF(2)=0
58 SN=0
59 TL=1
60 IO=18
61 IF SC<HI THEN 64
62 HI=SC
63 HG=0
64 TY$=STR$(HI)
65 SC=0
66 VV=1
67 C$=HL$
68 X=12
69 Y=15
70 SE$=EE$
71 ER$=RR$
72 B=3
73 A1=3
74 JK=99
75 W1=98
76 CB=0
77 LK$=""
78 L=13
79 T$="13102!LFZT"
80 IZ=1
81 GOSUB 446
82 T$="15103!KPZTUJDL"
83 GOSUB 446
84 T$="1809QSFTT!2!PS!3"
85 GOSUB 446
86 CALL KEY(0,K,S)
87 IF(K<>49)*(K<>50)THEN 86 ELSE 88
88 KY=K-48
89 FE=17
90 CALL CLEAR
91 CALL SCREEN(5)
92 FOR F=1 TO 16
93 CALL COLOR(F,5,5)
94 NEXT F
95 IZ=1
96 RESTORE 428
97 READ CF$
98 GOSUB 450
99 READ CF$
100 JK=L
101 W1=L
102 YL=56
103 GOSUB 450
104 RESTORE 427
105 GOSUB 440
106 RESTORE 426
107 CALL HCHAR(24,12,129,17)
108 CALL SCREEN(2)
109 FOR F=1 TO 8
110 READ C4,C5,C6
111 CALL COLOR(C4,C5,C6)
112 NEXT F
113 P=2
114 P1=11
115 GOSUB 436
116 IZ=0
117 IF W1=JK THEN 119
118 L=INT((28-13+1)*RND)+13
119 KK=28
120 GOSUB 413
121 EL=VAL(SEG$(STR$(L),1,1))
122 EL2=VAL(SEG$(STR$(L),2,1))
123 A2=1
124 FOR F=0 TO EL2
125 EL5=ASC(SEG$(E$(EL),A2,1))-60
126 A2=A2+EL5
127 NEXT F
128 L2$=SEG$(E$(EL),A2-EL5,EL5)
129 L6$=SEG$(L2$,6,(ASC(SEG$(L2$,1,1))-60)-5)
130 L9=LEN(L6$)
131 IF L<48 THEN 152
132 U=96
133 GOSUB 457
134 L9=VAL(SEG$(L6$,1,1))
135 FOR F=1 TO L9*4 STEP 4
136 FOR J=0 TO 3
137 X9(J)=YO(F+(J+1))-80
138 NEXT J
139 RANDOMIZE YQ(LEN(L6$))
140 IF X9(0)<0 THEN 148
141 FOR I=X9(0)TO X9(3)
142 CALL HCHAR(I,X9(1)+YP,32,X9(2)-YP)
143 NEXT I
144 NEXT F
145 CALL COLOR(1,8,5)
146 CALL COLOR(9,14,5)
147 GOTO 167
148 FOR I=ABS(X9(1))TO ABS(X9(2))
149 CALL VCHAR(ABS(X9(0))+YP,I,32,ABS(X9(3))-YP)
150 NEXT I
151 GOTO 144
152 U=32
153 GOSUB 457
154 FOR F=1 TO L9
155 ON YQ(F)GOSUB 378,391,393,403,405,403,405,411
156 NEXT F
157 IF(L<>46)*(L>=44)*(L<=47)THEN 158 ELSE 145
158 RESTORE 435
159 FOR F=1 TO EL2-3
160 READ RC,RB
161 NEXT F
162 RANDOMIZE 5
163 FOR F=10 TO 19
164 CALL HCHAR(F,RC+YP,32,RB-YP)
165 NEXT F
166 GOTO 145
167 CALL HCHAR(2+(TL*2),28,58)
168 CALL HCHAR(2+(EL*2),28,105)
169 FOR SY=1 TO LEN(SE$)STEP 5
170 IF CA(1)=L THEN 174
171 NEXT SY
172 ST=5
173 GOTO 194
174 MV=CA(0)
175 XF=CA(2)
176 YF=CA(3)
177 HJ=CA(4)
178 LI=CA(1)
179 SH=SA(MV+1)
180 RESTORE 431
181 FOR F=1 TO HJ
182 READ CR$
183 NEXT F
184 FOR F=0 TO 9
185 CALL CHAR(113+F,CR$)
186 READ CR$
187 NEXT F
188 RT=INT((16-3+1)*RND)+3
189 ST=1
190 CALL HCHAR(YF,XF,SH)
191 CALL HCHAR(YF,XF+1,SH+1)
192 CALL COLOR(11,RT,5)
193 CALL COLOR(12,RT,5)
194 FOR WF=1 TO LEN(ER$)STEP 4
195 IF QW(0)=L THEN 198
196 NEXT WF
197 GOTO 200
198 CALL HCHAR(QW(1),QW(2),QW(3))
199 CALL COLOR(2,16,5)
200 RO=0
201 IZ=0
202 IF(CB=1874)*(UI=56)THEN 335
203 XK=X
204 A9=A1
205 CALL GCHAR(X,Y,TK)
206 IF TK<>96 THEN 218
207 ON A9 GOTO 218,208,208,213,218,213,208,208
208 X=X+1
209 IF X<19 THEN 205
210 X=XK
211 A9=4
212 GOTO 205
213 X=X-1
214 IF X>3 THEN 205
215 X=XK
216 A9=2
217 GOTO 205
218 IF(T>0)*(T<8)THEN 256 ELSE 255
219 X=X-X1(A1)
220 Y=Y-Y1(A1)
221 ON POS("`+>@?=(*,!",CHR$(S),1)+1 GOTO 222,353,353,223,223,223,223,315,325,339,325
222 IF(S>113)*(S<122)THEN 353 ELSE 263
223 LO=ASC(SEG$(SEG$(L2$,2,4),(S-60),1))-60
224 IF(LO=L)+(L=0)THEN 263
225 CALL HCHAR(X,Y,32)
226 TL=EL
227 UY$=SEG$(SE$,1,SY-1)
228 UT$=SEG$(SE$,SY+5,LEN(SE$)-SY+5)
229 UI=LO
230 RESTORE 425
231 FOR F=1 TO 10 STEP 2
232 READ DK,FK
233 CALL COLOR(DK,FK,5)
234 NEXT F
235 IF TY(S-61)=0 THEN 237
236 Y=TY(S-61)
237 IF TX(S-61)=0 THEN 239
238 X=TX(S-61)
239 IF(AB=0)*(ST=5)THEN 248
240 IF AB=0 THEN 246
241 LI=ASC(SEG$(SEG$(L2$,2,4),(GC-60),1))-60
242 IF TY(GC-61)=0 THEN 244
243 XF=TY(GC-61)
244 IF TX(GC-61)=0 THEN 246
245 YF=TX(GC-61)
246 SE$=UY$&MO$(MV)&MO$(LI)&MO$(XF)&MO$(YF)&MO$(HJ)&UT$
247 AB=0
248 IF RO=0 THEN 253
249 WE$=SEG$(ER$,1,WF-1)
250 WW$=SEG$(ER$,WF,3)&CHR$(RO)
251 WR$=SEG$(ER$,WF+4,LEN(ER$)-WF+4)
252 ER$=WE$&WW$&WR$
253 L=LO
254 IF UI<50 THEN 121 ELSE 421
255 FOR T=1 TO 8
256 FOR F=1 TO B
257 IF B=3 THEN 263
258 X=X+X1(A1)
259 Y=Y+Y1(A1)
260 CALL GCHAR(X,Y,S)
261 IF S<>32 THEN 219
262 CALL HCHAR(X+(X1(A1)*-1),Y+(Y1(A1)*-1),32)
263 CALL HCHAR(X,Y,143+(A1*2)-1)
264 ON KY GOTO 295,298
265 CALL HCHAR(X,Y,143+(A1*2))
266 NEXT F
267 ON ST GOTO 268,305,310,302,278,272
268 CALL GCHAR(YF,XF+MV+AD(MV+1)+MV,S8)
269 IF(S8<>32)THEN 300
270 ST=6
271 GOTO 278
272 XF=XF+MV
273 CALL HCHAR(YF,XF+(MV*-1),32,2)
274 CALL HCHAR(YF,XF,SH+SN)
275 CALL HCHAR(YF,XF+1,SH+SN+1)
276 ST=1
277 SN=SF(SN)
278 NEXT T
279 IO=IO-1
280 CALL HCHAR(23,IO+12,92)
281 IF IO=0 THEN 365 ELSE 255
282 IF S<>32 THEN 219
283 A1=A1-1
284 IF A1>0 THEN 266
285 A1=8
286 GOTO 266
287 A1=A1+1
288 IF A1<9 THEN 266
289 A1=1
290 GOTO 266
291 B=3
292 GOTO 265
293 B=2
294 GOTO 265
295 CALL KEY(3,K,S)
296 IF S=0 THEN 265
297 ON POS(K$,CHR$(K),1)+1 GOTO 265,283,287,291,293
298 CALL JOYST(1,XJ,YJ)
299 ON POS("04@<",CHR$((((XJ*2)+(YJ))+8)+48),1)+1 GOTO 265,283,293,287,291
300 ON POS("`>@?=",CHR$(S8),1)+1 GOTO 301,302,310,310,310,310
301 IF((S8>144)*(S8<159))THEN 357
302 MV=MV*-1
303 ST=2
304 GOTO 255
305 CALL HCHAR(YF,XF+SGN(1-(MV*-1)),SH+AD((MV*-1)+1))
306 CALL HCHAR(YF,XF+SGN((MV*-1)+1),SH+4)
307 ST=1
308 SH=SA(MV+1)
309 GOTO 255
310 GC=S8
311 AB=1
312 CALL HCHAR(YF,XF,32,2)
313 ST=5
314 GOTO 255
315 RO=101
316 B=3
317 SC=SC+100
318 CALL HCHAR(QW(1),QW(2),41)
319 HG=HG+1
320 CALL SOUND(10,4000,0)
321 KK=16
322 TY$=STR$(SC)
323 GOSUB 413
324 IF(T>0)*(T<8)THEN 256 ELSE 255
325 B=3
326 FOR F=IO TO 17
327 CALL SOUND(-100,-7,0)
328 CALL HCHAR(23,11+F,104)
329 NEXT F
330 IO=17
331 IF S=33 THEN 255
332 CALL HCHAR(QW(1),QW(2),43)
333 RO=103
334 GOTO 255
335 T$="0810"&C$
336 GOSUB 446
337 C$=HL$
338 GOTO 56
339 CALL SOUND(30,1000,0)
340 CALL HCHAR(QW(1),QW(2),32)
341 RO=92
342 SC=SC+200
343 HG=HG+1
344 GOTO 321
345 FE=FE-1
346 CALL HCHAR(24,13+FE-1,60)
347 FOR F=FE/2 TO 1 STEP-1
348 CALL SOUND(2,1500,5)
349 NEXT F
350 IF FE=0 THEN 352
351 B=3
352 RETURN
353 GOSUB 345
354 IF FE=0 THEN 360
355 IF(S=96)+(S=43)THEN 255
356 IF ST<>2 THEN 302
357 GOSUB 345
358 IF FE=0 THEN 360
359 IF ST<>2 THEN 302 ELSE 255
360 CALL SOUND(4000,1500,5)
361 T$="1007OP=MJGF=EFUFDUFE"
362 IZ=1
363 GOSUB 446
364 GOTO 56
365 T$="1010TVGGPDBUJPO"
366 IZ=1
367 GOSUB 446
368 GOTO 56
369 GOSUB 371
370 RETURN
371 AC$=""
372 FOR F=1 TO 11
373 AC$=AC$&CHR$(ASC(SEG$(C$,F,1))+(UI*VV))
374 NEXT F
375 C$=AC$
376 VV=VV*-1
377 RETURN
378 FOR I=2 TO 8
379 CALL HCHAR(I,4,33,23)
380 NEXT I
381 RETURN
382 RANDOMIZE YQ(F+1)
383 H1=0
384 FOR I=H5 TO 30-H5 STEP SGN((30-H5)-H5)
385 H=YP+H1
386 CALL VCHAR(20-H,I,96,H)
387 H1=H1+(YO(F+2)/100)
388 NEXT I
389 F=F+2
390 RETURN
391 H5=4
392 GOTO 382
393 H5=26
394 GOTO 382
395 RANDOMIZE YQ(F+1)
396 H1=YO(F+2)-60
397 FOR I=H5 TO 15 STEP SGN(15-H5)
398 H=((H1-(H1/2)+1)*RND)+(H1/2)
399 ON YQ(F)GOSUB 2,2,2,407,407,409,409
400 NEXT I
401 F=F+2
402 RETURN
403 H5=4
404 GOTO 395
405 H5=26
406 GOTO 395
407 CALL VCHAR(20-H,I,96,H)
408 RETURN
409 CALL VCHAR(2,I,96,H)
410 RETURN
411 CALL VCHAR(2,26,96,18)
412 RETURN
413 TP=KK-LEN(TY$)
414 IF HG<>26 THEN 417
415 ER$=RR$
416 HG=0
417 FOR F=1 TO LEN(TY$)
418 CALL HCHAR(21,TP+F,ASC(SEG$(TY$,F,1)))
419 NEXT F
420 RETURN
421 CB=CB+UI
422 IF CB>1900 THEN 121
423 GOSUB 369
424 GOTO 121
425 DATA 2,5,11,5,12,5,9,5,1,5
426 DATA 16,2,5,15,2,5,1,8,5,3,2,11,4,2,11,10,11,5,2,16,5,13,7,11
427 DATA 9,"2104TDPSF=111111","2119IJ=111111","2304PYZHFO","0528E","0828F","1128Q","1428U","1728I","2404FOFSHZ"
428 DATA "*==@073*=W@150+==@033+P=@165+Q@<026+R@<026+S@<026+T@<026*>X<018*>Y<018"
429 DATA "+SHh017*?X:016+=@=024+P@>024*=W?020"
430 DATA 19,0,2,0,0,4,0,25
431 DATA "80C0E7DF8702","80C0FEFFF8","00000187DFE7C380","0080C0FEF7FC","84CEF5FFF1110E","01037FEF3F"
432 DATA "0103E7FBE14","0000017FEF3F","0080C0E1FBE7C301","2173AFDF8F885020","F00EE31C01E21C"
433 DATA "1C3AE7E73A1C","000700001F00030C","00C62FBD5D1D2FC6","3C7EE7C3C3E77E3C"
434 DATA "385CE7E65D38","00F30CC03C837807","0063B4BBBCB8B463","00E000C0300020C0","3C66C38981C3673C"
435 DATA 8,4,13,4,0,0,13,6
436 FOR F=5 TO 8
437 CALL COLOR(F,P,P1)
438 NEXT F
439 RETURN
440 READ A
441 FOR F=1 TO A
442 READ T$
443 GOSUB 446
444 NEXT F
445 RETURN
446 FOR I=5 TO LEN(T$)
447 CALL HCHAR(YR(1),YR(3)+I-4,ASC(SEG$(T$,I,1))-IZ)
448 NEXT I
449 RETURN
450 FOR F=1 TO LEN(CF$)STEP 7
451 IF SEG$(CF$,F,1)="*" THEN 454
452 CALL HCHAR(YU(1),YU(2),YT,YS)
453 GOTO 455
454 CALL VCHAR(YU(1),YU(2),YT,YS)
455 NEXT F
456 RETURN
457 FOR F=2 TO 19
458 CALL HCHAR(F,4,U,23)
459 NEXT F
460 RETURN