1 | ****************************************
|
---|
2 | * P O C K *
|
---|
3 | ****************************************
|
---|
4 | * kernel *
|
---|
5 | **********
|
---|
6 |
|
---|
7 | TEXTE EQU $8000 contenu du scroll
|
---|
8 | RANDOM EQU $8A00 table du hasard
|
---|
9 | FONTE EQU $9000 lettres du scroll
|
---|
10 | LEVELS EQU $90FC gains et vitesses
|
---|
11 | DESSIN EQU $9200 morceaux de pièces
|
---|
12 | FORME EQU $9344 silhouettes
|
---|
13 | CHIFF EQU $949A les 9 chiffres
|
---|
14 | PIECES EQU $94E0 7 figures de base
|
---|
15 | SYNCRO EQU $95F5 début du code ASM
|
---|
16 | DIR EQU $9D accès page direct
|
---|
17 | Z EQU $80 pour les variables
|
---|
18 |
|
---|
19 | RAMA EQU $C14F
|
---|
20 | RAMB EQU RAMA-$2000
|
---|
21 | COULIB EQU 192 couleur segmt vide
|
---|
22 | GHOST EQU 71 brique s'en allant
|
---|
23 | BORDER EQU 184 couleur tour carré
|
---|
24 | REBDEP EQU 4 anti-rebond direc@
|
---|
25 | REBROT EQU 9 anti-rebond rota@
|
---|
26 |
|
---|
27 | ORG SYNCRO
|
---|
28 |
|
---|
29 | TST $E7E7
|
---|
30 | BPL *-3
|
---|
31 | TST $E7E7
|
---|
32 | BMI *-3
|
---|
33 |
|
---|
34 | DEFIL LDX #$DE3C scroll ^
|
---|
35 | LDU #DIR*256+Z+23
|
---|
36 | LDA #5
|
---|
37 | ASL ,U+
|
---|
38 | ROL 15,X
|
---|
39 | ROL 14,X
|
---|
40 | ROL 13,X
|
---|
41 | ROL 12,X
|
---|
42 | ROL 11,X
|
---|
43 | ROL 10,X
|
---|
44 | ROL 9,X
|
---|
45 | ROL 8,X
|
---|
46 | ROL 7,X
|
---|
47 | ROL 6,X
|
---|
48 | ROL 5,X
|
---|
49 | ROL 4,X
|
---|
50 | ROL 3,X
|
---|
51 | ROL 2,X
|
---|
52 | ROL 1,X
|
---|
53 | ROL ,X
|
---|
54 | ROL -1,X
|
---|
55 | ROL -2,X
|
---|
56 | ROL -3,X
|
---|
57 | ROL -4,X
|
---|
58 | ROL -5,X
|
---|
59 | ROL -6,X
|
---|
60 | ROL -7,X
|
---|
61 | ROL -8,X
|
---|
62 | ROL -9,X
|
---|
63 | ROL -10,X
|
---|
64 | ROL -11,X
|
---|
65 | ROL -12,X
|
---|
66 | ROL -13,X
|
---|
67 | ROL -14,X
|
---|
68 | ROL -15,X
|
---|
69 | ROL -16,X
|
---|
70 | LEAX 40,X
|
---|
71 | DECA
|
---|
72 | BNE DEFIL+8
|
---|
73 | DEC <Z+28
|
---|
74 | BNE DEFILN
|
---|
75 | LDX <Z+29
|
---|
76 | LDB ,X+
|
---|
77 | BNE *+7
|
---|
78 | LDX #TEXTE
|
---|
79 | BRA *-7
|
---|
80 | STX <Z+29
|
---|
81 | LDA #5
|
---|
82 | MUL
|
---|
83 | LDU #FONTE-5
|
---|
84 | LEAU D,U
|
---|
85 | PULU D,X
|
---|
86 | STD <Z+23
|
---|
87 | STX <Z+25
|
---|
88 | LDA ,U
|
---|
89 | STA <Z+27
|
---|
90 | LDA #8
|
---|
91 | STA <Z+28
|
---|
92 |
|
---|
93 | DEFILN LDA <Z+31
|
---|
94 | BEQ EFFDEB
|
---|
95 | DEC <Z+31
|
---|
96 | LBNE SYNCRO
|
---|
97 | JMP ,Y
|
---|
98 |
|
---|
99 | **** Effacement de l'objet ***
|
---|
100 |
|
---|
101 | EFFDEB LDX <Z+2 adresse écran RAMB
|
---|
102 | LDU <Z+4 silhouette objet
|
---|
103 | LDA #4
|
---|
104 | STA <Z+1
|
---|
105 | LDA #COULIB
|
---|
106 | LDB #4
|
---|
107 | STB <Z
|
---|
108 |
|
---|
109 | EFFLIG LDB ,U+
|
---|
110 | BEQ EFFVID
|
---|
111 | STA -120,X
|
---|
112 | STA -80,X
|
---|
113 | STA -40,X
|
---|
114 | STA ,X
|
---|
115 | STA 40,X
|
---|
116 | STA 80,X
|
---|
117 | STA 120,X
|
---|
118 | STA 160,X
|
---|
119 | EFFVID LEAX 1,X
|
---|
120 | DEC <Z
|
---|
121 | BNE EFFLIG
|
---|
122 | LEAX 316,X
|
---|
123 | DEC <Z+1
|
---|
124 | BNE EFFLIG-4
|
---|
125 |
|
---|
126 | **** Rotation de l'objet ****
|
---|
127 |
|
---|
128 | LDB <Z+13
|
---|
129 | BNE ROTFIN c'est un rebond
|
---|
130 | LDA $E7CD action 0
|
---|
131 | LDX <Z+2
|
---|
132 | LDU <Z+4
|
---|
133 | BITA #64
|
---|
134 | BNE ROTFIN+2
|
---|
135 | LDU -2,U
|
---|
136 | LEAS ,U
|
---|
137 | LDA #4
|
---|
138 | STA <Z
|
---|
139 | LDB #4
|
---|
140 |
|
---|
141 | ROTLIG LDA ,S+
|
---|
142 | BEQ ROTVID
|
---|
143 | LDA -120,X haut du cube
|
---|
144 | CMPA #COULIB
|
---|
145 | BNE ROTFIN+2
|
---|
146 | LDA 160,X bas du cube
|
---|
147 | CMPA #COULIB
|
---|
148 | BNE ROTFIN+2
|
---|
149 |
|
---|
150 | ROTVID LEAX 1,X
|
---|
151 | DECB
|
---|
152 | BNE ROTLIG
|
---|
153 | LEAX 316,X
|
---|
154 | DEC <Z
|
---|
155 | BNE ROTLIG-2
|
---|
156 | STU <Z+4
|
---|
157 | LDB #REBROT
|
---|
158 | STB <Z+13
|
---|
159 | BRA *+4
|
---|
160 |
|
---|
161 | ROTFIN DEC <Z+13
|
---|
162 |
|
---|
163 | **** Déplacements latéraux ****
|
---|
164 |
|
---|
165 | LDA $E7CC joystick 0
|
---|
166 | LDX <Z+2
|
---|
167 | LDU <Z+4
|
---|
168 | BITA #4
|
---|
169 | BNE *+6
|
---|
170 | LEAX -1,X
|
---|
171 | BRA *+8
|
---|
172 | BITA #8
|
---|
173 | BNE DEPFIN
|
---|
174 | LEAX 1,X
|
---|
175 | LEAY ,X
|
---|
176 | DEC <Z+12
|
---|
177 | BGT DEPFIN+2 c'est un rebond
|
---|
178 | LDA #4
|
---|
179 | STA <Z
|
---|
180 | LDB #4
|
---|
181 |
|
---|
182 | DEPLIG LDA ,U+
|
---|
183 | BEQ DEPVID
|
---|
184 | LDA -120,Y haut du cube
|
---|
185 | CMPA #COULIB
|
---|
186 | BNE DEPFIN
|
---|
187 | LDA 160,Y bas du cube
|
---|
188 | CMPA #COULIB
|
---|
189 | BNE DEPFIN
|
---|
190 |
|
---|
191 | DEPVID LEAY 1,Y
|
---|
192 | DECB
|
---|
193 | BNE DEPLIG
|
---|
194 | LEAY 316,Y
|
---|
195 | DEC <Z
|
---|
196 | BNE DEPLIG-2
|
---|
197 | STX <Z+2
|
---|
198 | LDB #REBDEP
|
---|
199 | STB <Z+12
|
---|
200 | BRA *+4
|
---|
201 |
|
---|
202 | DEPFIN CLR <Z+12
|
---|
203 |
|
---|
204 | **** Chute de l'objet ****
|
---|
205 |
|
---|
206 | LDX <Z+2
|
---|
207 | LDA $E7CC
|
---|
208 | BITA #2
|
---|
209 | BNE CHUNAT
|
---|
210 | LDA <Z+14 flag même pression
|
---|
211 | BNE CHUNAT+2
|
---|
212 | LEAX 320,X commandée
|
---|
213 | BRA CHUFIN
|
---|
214 |
|
---|
215 | CHUNAT CLR <Z+14
|
---|
216 | LDB <Z+8 naturelle
|
---|
217 | CLRA
|
---|
218 | ADDD <Z+6 vitesse de chute
|
---|
219 | STB <Z+8
|
---|
220 | LDB #40
|
---|
221 | MUL
|
---|
222 | LEAX D,X
|
---|
223 | CHUFIN STX <Z+2
|
---|
224 |
|
---|
225 | **** Ajustage si fin de chute ****
|
---|
226 |
|
---|
227 | LDU <Z+4 forme de l'objet
|
---|
228 | LDX <Z+2 adresse écran RAMB
|
---|
229 | LEAS 12,U
|
---|
230 | LEAY 1120,X
|
---|
231 | LDA #4
|
---|
232 | STA <Z
|
---|
233 | LEAX ,Y
|
---|
234 | LEAU ,S
|
---|
235 | LDB #4
|
---|
236 |
|
---|
237 | AJUCOL LDA ,U
|
---|
238 | BEQ AJUVID
|
---|
239 | LDB #1 fin de colonne
|
---|
240 | LDA ,X bas de plancher
|
---|
241 | CMPA #COULIB
|
---|
242 | BEQ AJUVID
|
---|
243 | STB <Z+9 flag fin de chute
|
---|
244 | CLRB
|
---|
245 | LEAX -40,X
|
---|
246 | LDA ,X
|
---|
247 | INCB
|
---|
248 | CMPA #COULIB
|
---|
249 | BNE *-8
|
---|
250 | LDA #40
|
---|
251 | MUL
|
---|
252 | COMA
|
---|
253 | NEGB
|
---|
254 | LDX <Z+2
|
---|
255 | LEAX D,X
|
---|
256 | STX <Z+2
|
---|
257 | BRA AJUFIN
|
---|
258 |
|
---|
259 | AJUVID LEAX -320,X
|
---|
260 | LEAU -4,U
|
---|
261 | DECB
|
---|
262 | BNE AJUCOL
|
---|
263 | LEAU 17,U
|
---|
264 | LEAY 1,Y colonne suivante
|
---|
265 | LEAS 1,S
|
---|
266 | DEC <Z
|
---|
267 | BNE AJUCOL-6
|
---|
268 | AJUFIN
|
---|
269 |
|
---|
270 | **** Affichage de l'objet ****
|
---|
271 |
|
---|
272 | LDX <Z+2 adresse écran RAMB
|
---|
273 | LEAY $2000,X
|
---|
274 | LDS <Z+4 forme de l'objet
|
---|
275 | LDA #4
|
---|
276 | STA <Z+1
|
---|
277 | LDB #4
|
---|
278 | STB <Z
|
---|
279 |
|
---|
280 | AFFLIG LDB ,S+
|
---|
281 | BEQ AFFVID
|
---|
282 | LDA #6
|
---|
283 | MUL
|
---|
284 | LDU #DESSIN-6
|
---|
285 | LEAU D,U
|
---|
286 | PULU D
|
---|
287 | STA -120,X
|
---|
288 | STA -80,X
|
---|
289 | STA -40,X
|
---|
290 | STA ,X
|
---|
291 | STA 40,X
|
---|
292 | STA 80,X
|
---|
293 | STA 120,X
|
---|
294 | STA 160,X
|
---|
295 | STB -120,Y
|
---|
296 | PULU D
|
---|
297 | STA -80,Y
|
---|
298 | STB -40,Y
|
---|
299 | STB ,Y
|
---|
300 | STB 40,Y
|
---|
301 | STB 80,Y
|
---|
302 | LDD ,U
|
---|
303 | STA 120,Y
|
---|
304 | STB 160,Y
|
---|
305 |
|
---|
306 | AFFVID LEAX 1,X
|
---|
307 | LEAY 1,Y
|
---|
308 | DEC <Z
|
---|
309 | BNE AFFLIG
|
---|
310 | LEAX 316,X
|
---|
311 | LEAY 316,Y
|
---|
312 | DEC <Z+1
|
---|
313 | BNE AFFLIG-4
|
---|
314 | LDA <Z+9
|
---|
315 | LBEQ SYNCRO
|
---|
316 |
|
---|
317 | **** Ravages causés par l'objet ****
|
---|
318 |
|
---|
319 | CLR <Z+9 aucune ligne faite
|
---|
320 | LDU <Z+2 cube du milieu sur
|
---|
321 | LEAU 1,U la ligne du haut
|
---|
322 | LDA #4
|
---|
323 | STA <Z+1
|
---|
324 | RAVCOL LEAX ,U
|
---|
325 | LEAY ,U
|
---|
326 | LDA ,X
|
---|
327 | CMPA #BORDER
|
---|
328 | LBEQ RAVGRU déjà => hors cadre
|
---|
329 | LDA ,X+
|
---|
330 | CMPA #COULIB
|
---|
331 | LBEQ RAVGRU
|
---|
332 | CMPA #BORDER
|
---|
333 | BNE *-10
|
---|
334 | LDA ,-Y couleurs à gauche?
|
---|
335 | CMPA #COULIB
|
---|
336 | LBEQ RAVGRU
|
---|
337 | CMPA #BORDER
|
---|
338 | BNE *-10
|
---|
339 | LDA #10
|
---|
340 | STA <Z
|
---|
341 | LEAX -11,X
|
---|
342 | LEAY $2001,Y
|
---|
343 | INC <Z+9
|
---|
344 | STX <Z+18
|
---|
345 | RAVLIG LDA 200,X remodelage dessin
|
---|
346 | CMPA #BORDER des figures pour
|
---|
347 | BEQ RAVSUS cause de chute
|
---|
348 | CLRA
|
---|
349 | LDB 240,Y
|
---|
350 | BEQ *+3
|
---|
351 | INCA
|
---|
352 | STA 200,Y
|
---|
353 | RAVSUS LDA -160,X
|
---|
354 | CMPA #BORDER
|
---|
355 | BEQ RAVCUB
|
---|
356 | LDA #$FF
|
---|
357 | STA -160,Y
|
---|
358 | LDB -160,X
|
---|
359 | CMPB -161,X mm couleur gauche?
|
---|
360 | BNE *+8
|
---|
361 | LDB -241,Y
|
---|
362 | BEQ *+4
|
---|
363 | LDA #$7F mais pas de lien .
|
---|
364 | STA -200,Y
|
---|
365 | RAVCUB LDA #GHOST blanchir la ligne
|
---|
366 | STA -120,X
|
---|
367 | STA -80,X
|
---|
368 | STA -40,X
|
---|
369 | STA ,X+
|
---|
370 | STA 39,X
|
---|
371 | STA 79,X
|
---|
372 | STA 119,X
|
---|
373 | STA 159,X
|
---|
374 | LDD #$103
|
---|
375 | STA -120,Y
|
---|
376 | STB -80,Y
|
---|
377 | STB -40,Y
|
---|
378 | STB ,Y+
|
---|
379 | STB 39,Y
|
---|
380 | STB 79,Y
|
---|
381 | LDD #$7FFF
|
---|
382 | STA 119,Y
|
---|
383 | STB 159,Y
|
---|
384 | DEC <Z
|
---|
385 | LBNE RAVLIG
|
---|
386 | RAVGRU LEAU 320,U
|
---|
387 | DEC <Z+1
|
---|
388 | LBNE RAVCOL
|
---|
389 |
|
---|
390 | **** Tombée des lignes supérieures ****
|
---|
391 |
|
---|
392 | LDA <Z+9
|
---|
393 | LBEQ STATUS rien ne bouge
|
---|
394 | LDY #TOMDEB
|
---|
395 | LDA #5
|
---|
396 | STA <Z+31
|
---|
397 | JMP SYNCRO
|
---|
398 |
|
---|
399 | TOMDEB LDU <Z+18 source
|
---|
400 | LEAU -120,U haut de la ligne
|
---|
401 | LEAS 5,U destination
|
---|
402 | TOMLIG LEAU -320,U
|
---|
403 | LDA ,U
|
---|
404 | CMPA #BORDER haut du cadre
|
---|
405 | BEQ TOMDER
|
---|
406 | CMPA #GHOST
|
---|
407 | BNE TOMCPY
|
---|
408 | BRA TOMLIG
|
---|
409 |
|
---|
410 | TOMDER LDX #COULIB*256+COULIB
|
---|
411 | LEAY ,X
|
---|
412 | LDB #COULIB
|
---|
413 | LDA <Z+9
|
---|
414 | LDU #RAMB+50
|
---|
415 | PSHU Y,X,B
|
---|
416 | PSHU Y,X,B
|
---|
417 | LEAU 50,U
|
---|
418 | PSHU Y,X,B
|
---|
419 | PSHU Y,X,B
|
---|
420 | LEAU 50,U
|
---|
421 | PSHU Y,X,B
|
---|
422 | PSHU Y,X,B
|
---|
423 | LEAU 50,U
|
---|
424 | PSHU Y,X,B
|
---|
425 | PSHU Y,X,B
|
---|
426 | LEAU 50,U
|
---|
427 | PSHU Y,X,B
|
---|
428 | PSHU Y,X,B
|
---|
429 | LEAU 50,U
|
---|
430 | PSHU Y,X,B
|
---|
431 | PSHU Y,X,B
|
---|
432 | LEAU 50,U
|
---|
433 | PSHU Y,X,B
|
---|
434 | PSHU Y,X,B
|
---|
435 | LEAU 50,U
|
---|
436 | PSHU Y,X,B
|
---|
437 | PSHU Y,X,B
|
---|
438 | LEAU 50,U
|
---|
439 | DECA
|
---|
440 | BNE *-57
|
---|
441 | LDY #SCOMAJ
|
---|
442 | LDA #5
|
---|
443 | STA <Z+31
|
---|
444 | JMP SYNCRO
|
---|
445 |
|
---|
446 | TOMCPY PULU B,X,Y copie des couleurs
|
---|
447 | PSHS Y,X,B
|
---|
448 | LEAS 45,S
|
---|
449 | PSHS Y,X,B
|
---|
450 | LEAS 45,S
|
---|
451 | PSHS Y,X,B
|
---|
452 | LEAS 45,S
|
---|
453 | PSHS Y,X,B
|
---|
454 | LEAS 45,S
|
---|
455 | PSHS Y,X,B
|
---|
456 | LEAS 45,S
|
---|
457 | PSHS Y,X,B
|
---|
458 | LEAS 45,S
|
---|
459 | PSHS Y,X,B
|
---|
460 | LEAS 45,S
|
---|
461 | PSHS Y,X,B
|
---|
462 | LEAS 10,S
|
---|
463 | PULU X,Y,B
|
---|
464 | PSHS Y,X,B
|
---|
465 | LEAS -35,S
|
---|
466 | PSHS Y,X,B
|
---|
467 | LEAS -35,S
|
---|
468 | PSHS Y,X,B
|
---|
469 | LEAS -35,S
|
---|
470 | PSHS Y,X,B
|
---|
471 | LEAS -35,S
|
---|
472 | PSHS Y,X,B
|
---|
473 | LEAS -35,S
|
---|
474 | PSHS Y,X,B
|
---|
475 | LEAS -35,S
|
---|
476 | PSHS Y,X,B
|
---|
477 | LEAS -35,S
|
---|
478 | PSHS Y,X,B
|
---|
479 |
|
---|
480 | LEAU $1FF6,U
|
---|
481 | LEAS $2000,S
|
---|
482 | PULU B,X,Y copie des formes
|
---|
483 | PSHS Y,X,B
|
---|
484 | LEAS 10,S
|
---|
485 | PULU B,X,Y
|
---|
486 | PSHS Y,X,B
|
---|
487 | LEAU 30,U
|
---|
488 | LEAS 40,S
|
---|
489 | PULU B,X,Y
|
---|
490 | PSHS Y,X,B
|
---|
491 | LEAS 45,S
|
---|
492 | PSHS Y,X,B
|
---|
493 | LEAS 45,S
|
---|
494 | PSHS Y,X,B
|
---|
495 | LEAS 45,S
|
---|
496 | PSHS Y,X,B
|
---|
497 | LEAS 45,S
|
---|
498 | PSHS Y,X,B
|
---|
499 | PULU B,X,Y
|
---|
500 | LEAS 10,S
|
---|
501 | PSHS Y,X,B
|
---|
502 | LEAS -35,S
|
---|
503 | PSHS Y,X,B
|
---|
504 | LEAS -35,S
|
---|
505 | PSHS Y,X,B
|
---|
506 | LEAS -35,S
|
---|
507 | PSHS Y,X,B
|
---|
508 | LEAS -35,S
|
---|
509 | PSHS Y,X,B
|
---|
510 | LEAU 190,U
|
---|
511 | LEAS 200,S
|
---|
512 | PULU B,X,Y
|
---|
513 | PSHS Y,X,B
|
---|
514 | LEAS 10,S
|
---|
515 | PULU B,X,Y
|
---|
516 | PSHS Y,X,B
|
---|
517 | LEAU 30,U
|
---|
518 | LEAS 40,S
|
---|
519 | PULU B,X,Y
|
---|
520 | PSHS Y,X,B
|
---|
521 | LEAS 10,S
|
---|
522 | PULU B,X,Y
|
---|
523 | PSHS Y,X,B
|
---|
524 | LEAU -$2122,U
|
---|
525 | LEAS -$2258,S
|
---|
526 | JMP TOMLIG
|
---|
527 |
|
---|
528 | SCOMAJ LDX <Z+39 score bonifié
|
---|
529 | LDA <Z+9
|
---|
530 | LDB #6
|
---|
531 | MUL
|
---|
532 | LEAX D,X
|
---|
533 | LDU #DIR*256+Z+39
|
---|
534 | LDA #6
|
---|
535 | LDB ,-U
|
---|
536 | ADDB ,-X
|
---|
537 | CMPB #10
|
---|
538 | BLO *+6
|
---|
539 | SUBB #10
|
---|
540 | INC -1,U
|
---|
541 | STB ,U
|
---|
542 | DECA
|
---|
543 | BNE *-15
|
---|
544 | LDA <Z+32 au cas où 10000000
|
---|
545 | CMPA #10
|
---|
546 | BLO *+4
|
---|
547 | CLR <Z+32
|
---|
548 |
|
---|
549 | LDS #$60CC
|
---|
550 | LDB <Z+15 lignes du level
|
---|
551 | SUBB <Z+9
|
---|
552 | CMPB #252
|
---|
553 | BLO NBLMAJ-2
|
---|
554 | LDD <Z+41 numéro du level
|
---|
555 | LDU <Z+39 gains associés
|
---|
556 | LEAU 24,U
|
---|
557 | INCB
|
---|
558 | CMPB #10
|
---|
559 | BLO *+24
|
---|
560 | INC <Z+43
|
---|
561 | LDB <Z+43
|
---|
562 | LDX #$CA98 vies ^
|
---|
563 | JSR PUTC
|
---|
564 | LDA <Z+41
|
---|
565 | LDU #LEVELS
|
---|
566 | CLRB
|
---|
567 | INCA
|
---|
568 | CMPA #10
|
---|
569 | BLO *+3
|
---|
570 | CLRA
|
---|
571 | STD <Z+41
|
---|
572 | PULU D
|
---|
573 | STD <Z+6 vitesse associée
|
---|
574 | STU <Z+39
|
---|
575 | LDX #$D4D1 level ^
|
---|
576 | LDB <Z+41
|
---|
577 | BNE *+4
|
---|
578 | LDB #12
|
---|
579 | JSR PUTC
|
---|
580 | LDB <Z+42
|
---|
581 | JSR PUTC
|
---|
582 | LDB #14 lignes / level
|
---|
583 | STB <Z+15
|
---|
584 | NBLMAJ LDB <Z+22 nombre de lignes
|
---|
585 | ADDB <Z+9
|
---|
586 | CMPB #9
|
---|
587 | BHI *+6
|
---|
588 | STB <Z+22
|
---|
589 | BRA NBLAFF
|
---|
590 | SUBB #10
|
---|
591 | STB <Z+22
|
---|
592 | LDA <Z+21
|
---|
593 | INCA
|
---|
594 | CMPA #9
|
---|
595 | BHI *+6
|
---|
596 | STA <Z+21
|
---|
597 | BRA NBLAFF
|
---|
598 | SUBA #10
|
---|
599 | STA <Z+21
|
---|
600 | INC <Z+20
|
---|
601 | NBLAFF LDX #$D33F lines ^
|
---|
602 | LDB <Z+20
|
---|
603 | JSR PUTC
|
---|
604 | LDB <Z+21
|
---|
605 | JSR PUTC
|
---|
606 | LDB <Z+22
|
---|
607 | JSR PUTC
|
---|
608 |
|
---|
609 | **** Status lines ****
|
---|
610 |
|
---|
611 | STATUS LDU #DIR*256+Z+39
|
---|
612 | LDS #$60CC
|
---|
613 | CLRA
|
---|
614 | LDB ,-U
|
---|
615 | INCB
|
---|
616 | CMPB #10
|
---|
617 | BLO *+6
|
---|
618 | STA ,U
|
---|
619 | BRA *-9
|
---|
620 | STB ,U
|
---|
621 | SCOAFF LDX #$C5CA score ^
|
---|
622 | LDY #DIR*256+Z+32
|
---|
623 | LDA #7
|
---|
624 | STA <Z
|
---|
625 | LDB ,Y+
|
---|
626 | JSR PUTC
|
---|
627 | DEC <Z
|
---|
628 | BNE *-7
|
---|
629 |
|
---|
630 | **** Nouvel objet ****
|
---|
631 |
|
---|
632 | OBJNEW CLR <Z+9
|
---|
633 | LDU <Z+16 ancien "NEXT"
|
---|
634 | STU <Z+4 forme de l'objet
|
---|
635 | LEAS 8,U
|
---|
636 | LDX #RAMB-517
|
---|
637 | STX <Z+2 adresse écran
|
---|
638 | LDX #RAMB+3
|
---|
639 | CLR <Z+8 ordonnée nulle
|
---|
640 | INC <Z+14 flag même pression
|
---|
641 | LDA #2
|
---|
642 | STA <Z
|
---|
643 | LDB #4
|
---|
644 |
|
---|
645 | OBJLIG LDA ,S+
|
---|
646 | BEQ *+11
|
---|
647 | LDA ,X haut du cube
|
---|
648 | CMPA #COULIB
|
---|
649 | BEQ *+5
|
---|
650 | JMP BLKOBJ l'objet est bloqué
|
---|
651 | LEAX 1,X
|
---|
652 | DECB
|
---|
653 | BNE OBJLIG
|
---|
654 | LEAX 316,X
|
---|
655 | DEC <Z
|
---|
656 | BNE OBJLIG-2
|
---|
657 |
|
---|
658 | **** Présentation du suivant ****
|
---|
659 |
|
---|
660 | SUIDEB LDX <Z+10
|
---|
661 | LDB ,X+
|
---|
662 | ANDB #7
|
---|
663 | BNE *+7
|
---|
664 | LDX #RANDOM
|
---|
665 | BRA *-9
|
---|
666 | STX <Z+10
|
---|
667 | LDX #PIECES-2
|
---|
668 | ASLB
|
---|
669 | LDU B,X forme du suivant
|
---|
670 | STU <Z+16
|
---|
671 | LEAS 8,U
|
---|
672 | LDX #$B510 next ^
|
---|
673 | LEAY $2000,X
|
---|
674 | LDA #2
|
---|
675 | STA <Z+1
|
---|
676 | LDB #4
|
---|
677 | STB <Z
|
---|
678 |
|
---|
679 | SUILIG LDB ,S+
|
---|
680 | BNE SUICUB
|
---|
681 | LDA #COULIB
|
---|
682 | STA -120,X
|
---|
683 | STA -80,X
|
---|
684 | STA -40,X
|
---|
685 | STA ,X
|
---|
686 | STA 40,X
|
---|
687 | STA 80,X
|
---|
688 | STA 120,X
|
---|
689 | STA 160,X
|
---|
690 | BRA SUINEX
|
---|
691 | SUICUB LDA #6
|
---|
692 | MUL
|
---|
693 | LDU #DESSIN-6
|
---|
694 | LEAU D,U
|
---|
695 | PULU D
|
---|
696 | STA -120,X
|
---|
697 | STA -80,X
|
---|
698 | STA -40,X
|
---|
699 | STA ,X
|
---|
700 | STA 40,X
|
---|
701 | STA 80,X
|
---|
702 | STA 120,X
|
---|
703 | STA 160,X
|
---|
704 | STB -120,Y
|
---|
705 | PULU D
|
---|
706 | STA -80,Y
|
---|
707 | STB -40,Y
|
---|
708 | STB ,Y
|
---|
709 | STB 40,Y
|
---|
710 | STB 80,Y
|
---|
711 | PULU D
|
---|
712 | STA 120,Y
|
---|
713 | STB 160,Y
|
---|
714 | SUINEX LEAX 1,X
|
---|
715 | LEAY 1,Y
|
---|
716 | DEC <Z
|
---|
717 | BNE SUILIG
|
---|
718 | LEAX 316,X
|
---|
719 | LEAY 316,Y
|
---|
720 | DEC <Z+1
|
---|
721 | BNE SUILIG-4
|
---|
722 | JMP SYNCRO
|
---|
723 |
|
---|
724 | **** La figure est bloquée ****
|
---|
725 |
|
---|
726 | BLKOBJ DEC <Z
|
---|
727 | BNE BLKFIN
|
---|
728 | LDX #RAMB+123
|
---|
729 | LDY #RAMA+123
|
---|
730 | LEAS 12,U
|
---|
731 | LDA #4
|
---|
732 | STA <Z
|
---|
733 |
|
---|
734 | BLKLIG LDB ,S+
|
---|
735 | BEQ BLKVID
|
---|
736 | LDA #6
|
---|
737 | MUL
|
---|
738 | LDU #DESSIN-6
|
---|
739 | LEAU D,U
|
---|
740 | PULU D
|
---|
741 | STA -120,X
|
---|
742 | STA -80,X
|
---|
743 | STA -40,X
|
---|
744 | STA ,X
|
---|
745 | STA 40,X
|
---|
746 | STA 80,X
|
---|
747 | STA 120,X
|
---|
748 | STA 160,X
|
---|
749 | STB -120,Y
|
---|
750 | PULU D
|
---|
751 | STA -80,Y
|
---|
752 | STB -40,Y
|
---|
753 | STB ,Y
|
---|
754 | STB 40,Y
|
---|
755 | STB 80,Y
|
---|
756 | PULU D
|
---|
757 | STA 120,Y
|
---|
758 | STB 160,Y
|
---|
759 |
|
---|
760 | BLKVID LEAX 1,X
|
---|
761 | LEAY 1,Y
|
---|
762 | DEC <Z
|
---|
763 | BNE BLKLIG
|
---|
764 |
|
---|
765 | BLKFIN LDA #20
|
---|
766 | STA <Z+31
|
---|
767 | LDY #*+7
|
---|
768 | JMP SYNCRO
|
---|
769 | DEC <Z+43
|
---|
770 | GETRED LDS #$60CC
|
---|
771 | LDX #$CA98 vies ^
|
---|
772 | LDB <Z+43
|
---|
773 | JSR PUTC
|
---|
774 | TST <Z+43
|
---|
775 | BEQ OVER
|
---|
776 | LDX #$CD32
|
---|
777 | LDY #$40C0
|
---|
778 | LDA #32
|
---|
779 | LDU ,Y++
|
---|
780 | STU -2,X
|
---|
781 | LDU ,Y++
|
---|
782 | STU ,X
|
---|
783 | LDU ,Y++
|
---|
784 | STU 2,X
|
---|
785 | LDU ,Y++
|
---|
786 | STU 4,X
|
---|
787 | LEAX 40,X
|
---|
788 | DECA
|
---|
789 | BNE *-20
|
---|
790 | LEAS -$24FA,X
|
---|
791 | LDU #GHOST*256+GHOST
|
---|
792 | LEAX ,U
|
---|
793 | LEAY ,U
|
---|
794 | LDA #32
|
---|
795 | STA <Z
|
---|
796 | TFR X,D
|
---|
797 | PSHS U,Y,X,D
|
---|
798 | LEAS 48,S
|
---|
799 | DEC <Z
|
---|
800 | BNE *-7
|
---|
801 | LDA $E7CD
|
---|
802 | BITA #64
|
---|
803 | BNE *-5
|
---|
804 | LDB #160
|
---|
805 | LDU #COULIB*256+COULIB
|
---|
806 | LDX #RAMB+4
|
---|
807 | STU -4,X
|
---|
808 | STU -2,X
|
---|
809 | STU ,X
|
---|
810 | STU 2,X
|
---|
811 | STU 4,X
|
---|
812 | LEAX 40,X
|
---|
813 | DECB
|
---|
814 | BNE *-14
|
---|
815 | LDS #$60CC
|
---|
816 | JMP SCOAFF
|
---|
817 |
|
---|
818 | OVER LDX #$CD33 over ^
|
---|
819 | LDY #$4000
|
---|
820 | LDA #32
|
---|
821 | LDU ,Y++
|
---|
822 | STU -2,X
|
---|
823 | LDU ,Y++
|
---|
824 | STU ,X
|
---|
825 | LDU ,Y++
|
---|
826 | STU 2,X
|
---|
827 | LEAX 40,X
|
---|
828 | DECA
|
---|
829 | BNE *-16
|
---|
830 | LEAS -$24FC,X
|
---|
831 | LDU #GHOST*256+GHOST
|
---|
832 | LEAX ,U
|
---|
833 | LEAY ,U
|
---|
834 | LDA #32
|
---|
835 | PSHS U,Y,X
|
---|
836 | LEAS 46,S
|
---|
837 | DECA
|
---|
838 | BNE *-6
|
---|
839 | LDA $E7CD
|
---|
840 | BITA #64
|
---|
841 | BNE *-5
|
---|
842 | LDS #0
|
---|
843 | RTS
|
---|
844 | PUTC LDU #CHIFF
|
---|
845 | LDA #7
|
---|
846 | MUL
|
---|
847 | LEAU D,U
|
---|
848 | PULU D
|
---|
849 | STA -120,X
|
---|
850 | STB -80,X
|
---|
851 | PULU D
|
---|
852 | STA -40,X
|
---|
853 | STB ,X+
|
---|
854 | PULU D
|
---|
855 | STA 39,X
|
---|
856 | STB 79,X
|
---|
857 | LDA ,U
|
---|
858 | STA 119,X
|
---|
859 | RTS
|
---|
860 | INITAL STS PUTC-3
|
---|
861 | STD <Z+41 level
|
---|
862 | LDA #26
|
---|
863 | MUL
|
---|
864 | LDU #LEVELS
|
---|
865 | LEAU D,U
|
---|
866 | PULU D
|
---|
867 | STD <Z+6 vitesse
|
---|
868 | STU <Z+39 gains
|
---|
869 | LDD #0
|
---|
870 | STD <Z+31 score
|
---|
871 | STD <Z+33
|
---|
872 | STD <Z+35
|
---|
873 | STD <Z+37
|
---|
874 | STD <Z+20 lines
|
---|
875 | STB <Z+22
|
---|
876 | STA <Z+8 virgule
|
---|
877 | LDB <Z+42
|
---|
878 | LDA #15
|
---|
879 | MUL
|
---|
880 | TST <Z+41
|
---|
881 | BEQ *+4
|
---|
882 | ADDB #150
|
---|
883 | DECB
|
---|
884 | STB <Z+15 lignes / ce level
|
---|
885 | LDA #3
|
---|
886 | STA <Z+43 vies
|
---|
887 | LDX <Z+10
|
---|
888 | LDB ,X+ objet suivant
|
---|
889 | ANDB #7
|
---|
890 | BNE *+7
|
---|
891 | LDX #RANDOM
|
---|
892 | BRA *-9
|
---|
893 | STX <Z+10
|
---|
894 | LDX #PIECES-2
|
---|
895 | ASLB
|
---|
896 | LDU B,X
|
---|
897 | STU <Z+16
|
---|
898 | LDS #$60CC
|
---|
899 | LDX #$D4D1 level ^
|
---|
900 | LDB <Z+41
|
---|
901 | BNE *+4
|
---|
902 | LDB #12
|
---|
903 | JSR PUTC
|
---|
904 | LDB <Z+42
|
---|
905 | JSR PUTC
|
---|
906 | LDX #$D33F lines ^
|
---|
907 | CLRB
|
---|
908 | JSR PUTC
|
---|
909 | CLRB
|
---|
910 | JSR PUTC
|
---|
911 | CLRB
|
---|
912 | JSR PUTC
|
---|
913 | LDB <Z+43
|
---|
914 | LDX #$CA98 vies ^
|
---|
915 | JSR PUTC
|
---|
916 | JMP GETRED
|
---|
917 |
|
---|
918 | END
|
---|