1 | ****************************************
|
---|
2 | * *
|
---|
3 | * FORUM THOMSON 91 : PART 1 *
|
---|
4 | * *
|
---|
5 | ****************************************
|
---|
6 |
|
---|
7 | CODE EQU $9800 implantation prog.
|
---|
8 | MAP EQU $A000 image CHR fixes
|
---|
9 | FONTS EQU $8800 dessin des lettres
|
---|
10 | TEXTE EQU $8B80 délire méga-Lô...
|
---|
11 | COMPTS EQU $9F04 compteurs (visu)
|
---|
12 | FNTBNK EQU 10 bank des CHR fixes
|
---|
13 | DIR EQU $9F accès direct au
|
---|
14 | Z EQU 0 buffer variables
|
---|
15 | ZZ EQU DIR*256+Z idem en étendu
|
---|
16 | HAUT EQU 256 taille totale (Y)
|
---|
17 | BLKHIG EQU 16 hauteur d'un bloc
|
---|
18 | TAILLE EQU HAUT/BLKHIG
|
---|
19 |
|
---|
20 |
|
---|
21 | ORG CODE
|
---|
22 | G ORCC #80
|
---|
23 | LDA $E7E6
|
---|
24 | PSHS A,DP
|
---|
25 | LDD #32 palettes en noir
|
---|
26 | STA $E7DB
|
---|
27 | STA $E7DA
|
---|
28 | DECB
|
---|
29 | BNE *-4
|
---|
30 | LDA #$7B
|
---|
31 | STA $E7DC
|
---|
32 | CLR $E7DD
|
---|
33 | LDX #MAP décompacte fontes
|
---|
34 | STX $616B
|
---|
35 | LDD #$FF0E
|
---|
36 | STA $6249
|
---|
37 | STB $616D
|
---|
38 | INCB
|
---|
39 | STB $E7E5
|
---|
40 | LDD #$100
|
---|
41 | STD $61D6
|
---|
42 | CLR $6288
|
---|
43 | LDB #69
|
---|
44 | JSR $EC0C
|
---|
45 |
|
---|
46 | LDA #$60+FNTBNK traite fontes
|
---|
47 | STA $E7E6 lettre par lettre
|
---|
48 | CLR $E7E5
|
---|
49 | LDY #0
|
---|
50 | LDX #$A001
|
---|
51 | LDD #$500+DIR
|
---|
52 | TFR B,DP
|
---|
53 | STA <Z 5 rangées
|
---|
54 | LDB #8
|
---|
55 | STB <Z+1 8 lettres / rangée
|
---|
56 | LDA #37 37 lignes / lettre
|
---|
57 | STA <Z+2
|
---|
58 | LETTRE LDA -1,X 5*2 octets / ligne
|
---|
59 | STA ,Y+
|
---|
60 | LDD ,X
|
---|
61 | STD ,Y++
|
---|
62 | LDD 2,X
|
---|
63 | STD ,Y++
|
---|
64 | LDA $1FFF,X
|
---|
65 | STA ,Y+
|
---|
66 | LDD $2000,X
|
---|
67 | STD ,Y++
|
---|
68 | LDD $2002,X
|
---|
69 | STD ,Y++
|
---|
70 | LEAX 40,X
|
---|
71 | DEC <Z+2
|
---|
72 | BNE LETTRE
|
---|
73 | LEAX -37*40+5,X
|
---|
74 | DEC <Z+1
|
---|
75 | BNE LETTRE-4
|
---|
76 | LEAX 37*40,X
|
---|
77 | DEC <Z
|
---|
78 | BNE LETTRE-8
|
---|
79 |
|
---|
80 | CLR $E7E5 début des choses
|
---|
81 | JSR CLRSCR sérieuses...
|
---|
82 | LDB #$E7
|
---|
83 | TFR B,DP
|
---|
84 | LDD #$40A
|
---|
85 | STD ZZ
|
---|
86 | CLR ZZ+3
|
---|
87 | LDY #TEXTE où dans le scroll
|
---|
88 | LDU #FONTS caractère courant
|
---|
89 | RSTART LDA #BLKHIG
|
---|
90 | STA <$E5 sert de compteur
|
---|
91 | JSR SYNCRO
|
---|
92 |
|
---|
93 | GOON LDX #0
|
---|
94 | JSR VISU
|
---|
95 | LDB #BLKHIG
|
---|
96 | STB <$E5 l'horreur totale !
|
---|
97 | DEC ZZ
|
---|
98 | BEQ NEXLIG
|
---|
99 |
|
---|
100 | LDX #314 même écran, décalé
|
---|
101 | LEAX -1,X
|
---|
102 | BNE *-2
|
---|
103 | JMP JOIN
|
---|
104 |
|
---|
105 | NEXLIG LDA #4
|
---|
106 | STA ZZ
|
---|
107 | ABX
|
---|
108 |
|
---|
109 | LDB #TAILLE
|
---|
110 | LDX #VISU+15
|
---|
111 | LDA EXCEPT
|
---|
112 | SUBA #32
|
---|
113 | STA EXCEPT
|
---|
114 | SCROL LDA -10,X
|
---|
115 | STA -12,X
|
---|
116 | LDA -8,X
|
---|
117 | STA -10,X
|
---|
118 | LDA -6,X
|
---|
119 | STA -8,X
|
---|
120 | LDA -4,X
|
---|
121 | STA -6,X
|
---|
122 | LDA -2,X
|
---|
123 | STA -4,X
|
---|
124 | LDA ,X
|
---|
125 | STA -2,X
|
---|
126 | LDA 2,X
|
---|
127 | STA ,X
|
---|
128 | LDA 4,X
|
---|
129 | STA 2,X
|
---|
130 | LDA 6,X
|
---|
131 | STA 4,X
|
---|
132 | LDA 8,X
|
---|
133 | STA 6,X
|
---|
134 | LDA 10,X
|
---|
135 | STA 8,X
|
---|
136 | LDA 12,X
|
---|
137 | STA 10,X
|
---|
138 | BITST LDA #128
|
---|
139 | BITA ,U+ forme du caractère
|
---|
140 | BNE *+6
|
---|
141 | LDA #$97 bloc vide
|
---|
142 | BRA *+6
|
---|
143 | LDA #$D7 bloc plein
|
---|
144 | BRA *+2
|
---|
145 | STA 12,X
|
---|
146 | LEAX 33,X
|
---|
147 | DECB
|
---|
148 | BNE SCROL
|
---|
149 | LDA EXCEPT
|
---|
150 | ADDA #32
|
---|
151 | STA EXCEPT
|
---|
152 |
|
---|
153 | LEAU -TAILLE,U
|
---|
154 | LSR BITST+1
|
---|
155 | DEC ZZ+1 encore x bits
|
---|
156 | BEQ NEXLET
|
---|
157 | LDX #9
|
---|
158 | LEAX -1,X
|
---|
159 | BNE *-2
|
---|
160 | BRA JOIN
|
---|
161 |
|
---|
162 | NEXLET LDD #$A80
|
---|
163 | STA ZZ+1
|
---|
164 | STB BITST+1
|
---|
165 | LDA ,Y+ caractère suivant
|
---|
166 | BLT ESCAPE affiche page texte
|
---|
167 | BEQ FINTXT
|
---|
168 | TST ,X
|
---|
169 | PSHS Y,X,A
|
---|
170 | PULS A,X,Y
|
---|
171 | BRA RETESC+2
|
---|
172 | FINTXT LDY #TEXTE
|
---|
173 | PSHS X,A
|
---|
174 | PULS A,X
|
---|
175 | ABX
|
---|
176 | RETESC LDA ,Y+ retour de ESCAPE
|
---|
177 | LDB #TAILLE
|
---|
178 | MUL
|
---|
179 | LDU #FONTS-16 (code de 1 à 56)
|
---|
180 | LEAU D,U
|
---|
181 |
|
---|
182 | JOIN LDX #4
|
---|
183 | LEAX -1,X
|
---|
184 | BNE *-2
|
---|
185 |
|
---|
186 | LDB ZZ+3 décalage palette
|
---|
187 | LDX #COLORS-9 effet de la
|
---|
188 | LDA <$CC direction du JOY0
|
---|
189 | ANDA #3
|
---|
190 | ADDB A,X
|
---|
191 | STB ZZ+3
|
---|
192 | LDX #COLORS
|
---|
193 | ABX
|
---|
194 | CLR <$DB
|
---|
195 | LDA #16 nouvelles palettes
|
---|
196 | STA ZZ+4
|
---|
197 | LDD ,X++
|
---|
198 | STB <$DA
|
---|
199 | STA <$DA
|
---|
200 | DEC ZZ+4
|
---|
201 | BNE *-9
|
---|
202 | LDA B,X
|
---|
203 | TST <$C8
|
---|
204 | LBEQ GOON
|
---|
205 |
|
---|
206 | LDD #0
|
---|
207 | STD $E7DC
|
---|
208 | LDA #-1
|
---|
209 | LDX #NORPAL
|
---|
210 | JSR $EC00
|
---|
211 | PULS DP,A
|
---|
212 | STA $E7E6
|
---|
213 | RTS
|
---|
214 |
|
---|
215 | ESCAPE CMPA #128
|
---|
216 | BNE AFFTXT permutation pages:
|
---|
217 | LDB VISU+1 celle affichée
|
---|
218 | EORB #128 est 0 ou 2
|
---|
219 | STB VISU+1
|
---|
220 | TST ,X j'V pas tt refaire
|
---|
221 | BRA RETESC cette routine:26 #
|
---|
222 |
|
---|
223 | AFFTXT PSHS Y crée nouvelle page
|
---|
224 | CLRA
|
---|
225 | LDB VISU+1 on modifie la
|
---|
226 | BNE *+4 fenêtre qui n'est
|
---|
227 | LDA #2
|
---|
228 | STA $E7E5 pas affichée.
|
---|
229 | JSR CLRSCR effacement fenêtre
|
---|
230 | PULS X
|
---|
231 | GETPOS LDY -1,X position à l'écran
|
---|
232 | CMPY #$A000
|
---|
233 | BLO FINPGE
|
---|
234 | LEAX 1,X
|
---|
235 | GETLET LDB ,X+ lettre à afficher
|
---|
236 | BMI GETPOS
|
---|
237 | JSR PUTC
|
---|
238 | BRA GETLET
|
---|
239 | FINPGE LDA ,X+ on prépare déja le
|
---|
240 | LDB #TAILLE caractère suivant
|
---|
241 | MUL
|
---|
242 | LDU #FONTS-16 (code de 1 à 56)
|
---|
243 | LEAU D,U
|
---|
244 | LEAY ,X
|
---|
245 | JMP RSTART
|
---|
246 |
|
---|
247 | SYNCRO LDA #32
|
---|
248 | BITA <$E7
|
---|
249 | BEQ *-2
|
---|
250 | BITA <$E7
|
---|
251 | BNE *-2
|
---|
252 | PSHS A
|
---|
253 | MUL
|
---|
254 | MUL
|
---|
255 | MUL
|
---|
256 | MUL
|
---|
257 | PULS A
|
---|
258 | BITA <$E7
|
---|
259 | BEQ *-10
|
---|
260 | MUL
|
---|
261 | MUL
|
---|
262 | MUL
|
---|
263 | MUL
|
---|
264 | MUL
|
---|
265 | TST <$E7
|
---|
266 | BPL *-7
|
---|
267 | MUL
|
---|
268 | MUL
|
---|
269 | MUL
|
---|
270 | MUL
|
---|
271 | MUL
|
---|
272 | TST <$E7
|
---|
273 | BMI *-7
|
---|
274 | LDX #$276
|
---|
275 | LEAX -1,X
|
---|
276 | BNE *-2
|
---|
277 | TST ,X
|
---|
278 | RTS
|
---|
279 |
|
---|
280 | VISU LDD #$00C1
|
---|
281 | STA <$DD ligne 0
|
---|
282 | STA <$DD
|
---|
283 | STA <$DD
|
---|
284 | STA <$DD
|
---|
285 | STA <$DD
|
---|
286 | STA <$DD
|
---|
287 | STA <$DD
|
---|
288 | STA <$DD
|
---|
289 | STA <$DD
|
---|
290 | STA <$DD
|
---|
291 | STA <$DD
|
---|
292 | STA <$DD
|
---|
293 | STA <$DD
|
---|
294 | LEAX -1,X
|
---|
295 | CMPX #$FFF0
|
---|
296 | BNE *-31
|
---|
297 | STA <$DD ligne 1
|
---|
298 | STA <$DD
|
---|
299 | STA <$DD
|
---|
300 | STA <$DD
|
---|
301 | STA <$DD
|
---|
302 | STA <$DD
|
---|
303 | STA <$DD
|
---|
304 | STA <$DD
|
---|
305 | STA <$DD
|
---|
306 | STA <$DD
|
---|
307 | STA <$DD
|
---|
308 | STA <$DD
|
---|
309 | EXCEPT STA $E7DD
|
---|
310 | LEAX 1,X
|
---|
311 | LBNE *-29
|
---|
312 | STA <$DD ligne 2
|
---|
313 | STA <$DD
|
---|
314 | STA <$DD
|
---|
315 | STA <$DD
|
---|
316 | STA <$DD
|
---|
317 | STA <$DD
|
---|
318 | STA <$DD
|
---|
319 | STA <$DD
|
---|
320 | STA <$DD
|
---|
321 | STA <$DD
|
---|
322 | STA <$DD
|
---|
323 | STA <$DD
|
---|
324 | STA <$DD
|
---|
325 | LEAX 1,X
|
---|
326 | CMPX #16
|
---|
327 | BNE *-31
|
---|
328 | STA <$DD ligne 3
|
---|
329 | STA <$DD
|
---|
330 | STA <$DD
|
---|
331 | STA <$DD
|
---|
332 | STA <$DD
|
---|
333 | STA <$DD
|
---|
334 | STA <$DD
|
---|
335 | STA <$DD
|
---|
336 | STA <$DD
|
---|
337 | STA <$DD
|
---|
338 | STA <$DD
|
---|
339 | STA <$DD
|
---|
340 | STA <$DD
|
---|
341 | LEAX -1,X
|
---|
342 | CMPX #0
|
---|
343 | BNE *-31
|
---|
344 | STA <$DD ligne 4
|
---|
345 | STA <$DD
|
---|
346 | STA <$DD
|
---|
347 | STA <$DD
|
---|
348 | STA <$DD
|
---|
349 | STA <$DD
|
---|
350 | STA <$DD
|
---|
351 | STA <$DD
|
---|
352 | STA <$DD
|
---|
353 | STA <$DD
|
---|
354 | STA <$DD
|
---|
355 | STA <$DD
|
---|
356 | STA <$DD
|
---|
357 | LEAX 1,X
|
---|
358 | CMPX #16
|
---|
359 | BNE *-31
|
---|
360 | STA <$DD ligne 5
|
---|
361 | STA <$DD
|
---|
362 | STA <$DD
|
---|
363 | STA <$DD
|
---|
364 | STA <$DD
|
---|
365 | STA <$DD
|
---|
366 | STA <$DD
|
---|
367 | STA <$DD
|
---|
368 | STA <$DD
|
---|
369 | STA <$DD
|
---|
370 | STA <$DD
|
---|
371 | STA <$DD
|
---|
372 | STA <$DD
|
---|
373 | LEAX -1,X
|
---|
374 | CMPX #0
|
---|
375 | BNE *-31
|
---|
376 | STA <$DD ligne 6
|
---|
377 | STA <$DD
|
---|
378 | STA <$DD
|
---|
379 | STA <$DD
|
---|
380 | STA <$DD
|
---|
381 | STA <$DD
|
---|
382 | STA <$DD
|
---|
383 | STA <$DD
|
---|
384 | STA <$DD
|
---|
385 | STA <$DD
|
---|
386 | STA <$DD
|
---|
387 | STA <$DD
|
---|
388 | STA <$DD
|
---|
389 | LEAX 1,X
|
---|
390 | CMPX #16
|
---|
391 | BNE *-31
|
---|
392 | STA <$DD ligne 7
|
---|
393 | STA <$DD
|
---|
394 | STA <$DD
|
---|
395 | STA <$DD
|
---|
396 | STA <$DD
|
---|
397 | STA <$DD
|
---|
398 | STA <$DD
|
---|
399 | STA <$DD
|
---|
400 | STA <$DD
|
---|
401 | STA <$DD
|
---|
402 | STA <$DD
|
---|
403 | STA <$DD
|
---|
404 | STA <$DD
|
---|
405 | LEAX -1,X
|
---|
406 | CMPX #-4
|
---|
407 | BNE *-31
|
---|
408 | STA <$DD ligne 8
|
---|
409 | STA <$DD
|
---|
410 | STA <$DD
|
---|
411 | STA <$DD
|
---|
412 | STA <$DD
|
---|
413 | STA <$DD
|
---|
414 | STA <$DD
|
---|
415 | STA <$DD
|
---|
416 | STA <$DD
|
---|
417 | STA <$DD
|
---|
418 | STA <$DD
|
---|
419 | STA <$DD
|
---|
420 | STA <$DD
|
---|
421 | LEAX 1,X
|
---|
422 | CMPX #16
|
---|
423 | BNE *-31
|
---|
424 | STA <$DD ligne 9
|
---|
425 | STA <$DD
|
---|
426 | STA <$DD
|
---|
427 | STA <$DD
|
---|
428 | STA <$DD
|
---|
429 | STA <$DD
|
---|
430 | STA <$DD
|
---|
431 | STA <$DD
|
---|
432 | STA <$DD
|
---|
433 | STA <$DD
|
---|
434 | STA <$DD
|
---|
435 | STA <$DD
|
---|
436 | STA <$DD
|
---|
437 | LEAX -1,X
|
---|
438 | CMPX #0
|
---|
439 | BNE *-31
|
---|
440 | STA <$DD ligne 10
|
---|
441 | STA <$DD
|
---|
442 | STA <$DD
|
---|
443 | STA <$DD
|
---|
444 | STA <$DD
|
---|
445 | STA <$DD
|
---|
446 | STA <$DD
|
---|
447 | STA <$DD
|
---|
448 | STA <$DD
|
---|
449 | STA <$DD
|
---|
450 | STA <$DD
|
---|
451 | STA <$DD
|
---|
452 | STA <$DD
|
---|
453 | LEAX 1,X
|
---|
454 | CMPX #16
|
---|
455 | BNE *-31
|
---|
456 | STA <$DD ligne 11
|
---|
457 | STA <$DD
|
---|
458 | STA <$DD
|
---|
459 | STA <$DD
|
---|
460 | STA <$DD
|
---|
461 | STA <$DD
|
---|
462 | STA <$DD
|
---|
463 | STA <$DD
|
---|
464 | STA <$DD
|
---|
465 | STA <$DD
|
---|
466 | STA <$DD
|
---|
467 | STA <$DD
|
---|
468 | STA <$DD
|
---|
469 | LEAX -1,X
|
---|
470 | CMPX #0
|
---|
471 | BNE *-31
|
---|
472 | STA <$DD ligne 12
|
---|
473 | STA <$DD
|
---|
474 | STA <$DD
|
---|
475 | STA <$DD
|
---|
476 | STA <$DD
|
---|
477 | STA <$DD
|
---|
478 | STA <$DD
|
---|
479 | STA <$DD
|
---|
480 | STA <$DD
|
---|
481 | STA <$DD
|
---|
482 | STA <$DD
|
---|
483 | STA <$DD
|
---|
484 | STA <$DD
|
---|
485 | LEAX 1,X
|
---|
486 | CMPX #16
|
---|
487 | BNE *-31
|
---|
488 | STA <$DD ligne 13
|
---|
489 | STA <$DD
|
---|
490 | STA <$DD
|
---|
491 | STA <$DD
|
---|
492 | STA <$DD
|
---|
493 | STA <$DD
|
---|
494 | STA <$DD
|
---|
495 | STA <$DD
|
---|
496 | STA <$DD
|
---|
497 | STA <$DD
|
---|
498 | STA <$DD
|
---|
499 | STA <$DD
|
---|
500 | STA <$DD
|
---|
501 | DEC <$E5
|
---|
502 | LBNE *-28
|
---|
503 | NOP
|
---|
504 | STA <$DD ligne 14
|
---|
505 | STA <$DD
|
---|
506 | STA <$DD
|
---|
507 | STA <$DD
|
---|
508 | STA <$DD
|
---|
509 | STA <$DD
|
---|
510 | STA <$DD
|
---|
511 | STA <$DD
|
---|
512 | STA <$DD
|
---|
513 | STA <$DD
|
---|
514 | STA <$DD
|
---|
515 | STA <$DD
|
---|
516 | STA <$DD
|
---|
517 | LEAX -1,X
|
---|
518 | CMPX #0
|
---|
519 | BNE *-31
|
---|
520 | STA <$DD ligne 15
|
---|
521 | STA <$DD
|
---|
522 | STA <$DD
|
---|
523 | STA <$DD
|
---|
524 | STA <$DD
|
---|
525 | STA <$DD
|
---|
526 | STA <$DD
|
---|
527 | STA <$DD
|
---|
528 | STA <$DD
|
---|
529 | STA <$DD
|
---|
530 | STA <$DD
|
---|
531 | STA <$DD
|
---|
532 | STA <$DD
|
---|
533 | LEAX 1,X
|
---|
534 | CMPX #16
|
---|
535 | BNE *-31
|
---|
536 | STA <$DD
|
---|
537 | NOP
|
---|
538 | RTS
|
---|
539 |
|
---|
540 | PUTC PSHS X affiche une lettre
|
---|
541 | STS RS1+2 (reg B) à l'écran
|
---|
542 | LDX #0 (reg Y). X sauvé
|
---|
543 | LDA #5*37
|
---|
544 | MUL
|
---|
545 | LEAS D,X
|
---|
546 | LDB #37
|
---|
547 | CHRLIN PULS A,X,U
|
---|
548 | STA -1,Y
|
---|
549 | STX ,Y
|
---|
550 | STU 2,Y
|
---|
551 | PULS A,X,U
|
---|
552 | STA $1FFF,Y
|
---|
553 | STX $2000,Y
|
---|
554 | STU $2002,Y
|
---|
555 | LEAY 40,Y
|
---|
556 | DECB
|
---|
557 | BNE CHRLIN
|
---|
558 | LEAY -37*40+5,Y
|
---|
559 | RS1 LDS #0
|
---|
560 | PULS X,PC
|
---|
561 |
|
---|
562 | CLRSCR STS RS2+2 effacement total
|
---|
563 | LDU #COLORS-6 de l'écran
|
---|
564 | PULU D,X,Y,S
|
---|
565 | LDU #$DF40
|
---|
566 | CLSB FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
567 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
568 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
569 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
570 | CMPU #$C000
|
---|
571 | BNE CLSB
|
---|
572 | LDU #$BF40
|
---|
573 | CLSA FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
574 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
575 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
576 | FCC /6v6v6v6v6v6v6v6v6v6v/
|
---|
577 | CMPU #$A000
|
---|
578 | BNE CLSA
|
---|
579 | RS2 LDS #0
|
---|
580 | RTS
|
---|
581 |
|
---|
582 | FCB 0,32,-32
|
---|
583 | FDB 0,0,0
|
---|
584 | COLORS FDB 0,$F00,$2F,$3F,$4F,$5F,$6F
|
---|
585 | FDB $7F,$8F,$9F,$AF,$BF,$CF
|
---|
586 | FDB $DF,$EF,$800
|
---|
587 | FDB 0,15,$222,$333,$444,$555
|
---|
588 | FDB $666,$777,$888,$999,$AAA
|
---|
589 | FDB $BBB,$CCC,$DDD,$EEE,8
|
---|
590 | NORPAL FDB 0,15,240,255,3840,3855
|
---|
591 | FDB 4080,4095,1911
|
---|
592 | END
|
---|