source: thomson/code/3rdparty/sources2-hcl/PART1.ASM@ ceffc47

main
Last change on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago

Add that collection of 3rdparty source I had lying on my disk for some time...

git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5

  • Property mode set to 100644
File size: 12.2 KB
Line 
1****************************************
2* *
3* FORUM THOMSON 91 : PART 1 *
4* *
5****************************************
6
7CODE EQU $9800 implantation prog.
8MAP EQU $A000 image CHR fixes
9FONTS EQU $8800 dessin des lettres
10TEXTE EQU $8B80 délire méga-Lô...
11COMPTS EQU $9F04 compteurs (visu)
12FNTBNK EQU 10 bank des CHR fixes
13DIR EQU $9F accès direct au
14Z EQU 0 buffer variables
15ZZ EQU DIR*256+Z idem en étendu
16HAUT EQU 256 taille totale (Y)
17BLKHIG EQU 16 hauteur d'un bloc
18TAILLE EQU HAUT/BLKHIG
19
20
21 ORG CODE
22G 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
58LETTRE 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
89RSTART LDA #BLKHIG
90 STA <$E5 sert de compteur
91 JSR SYNCRO
92
93GOON 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
105NEXLIG LDA #4
106 STA ZZ
107 ABX
108
109 LDB #TAILLE
110 LDX #VISU+15
111 LDA EXCEPT
112 SUBA #32
113 STA EXCEPT
114SCROL 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
138BITST 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
162NEXLET 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
172FINTXT LDY #TEXTE
173 PSHS X,A
174 PULS A,X
175 ABX
176RETESC LDA ,Y+ retour de ESCAPE
177 LDB #TAILLE
178 MUL
179 LDU #FONTS-16 (code de 1 à 56)
180 LEAU D,U
181
182JOIN 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
215ESCAPE 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
223AFFTXT 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
231GETPOS LDY -1,X position à l'écran
232 CMPY #$A000
233 BLO FINPGE
234 LEAX 1,X
235GETLET LDB ,X+ lettre à afficher
236 BMI GETPOS
237 JSR PUTC
238 BRA GETLET
239FINPGE 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
247SYNCRO 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
280VISU 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
309EXCEPT 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
540PUTC 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
547CHRLIN 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
559RS1 LDS #0
560 PULS X,PC
561
562CLRSCR STS RS2+2 effacement total
563 LDU #COLORS-6 de l'écran
564 PULU D,X,Y,S
565 LDU #$DF40
566CLSB FCC /6v6v6v6v6v6v6v6v6v6v/
567 FCC /6v6v6v6v6v6v6v6v6v6v/
568 FCC /6v6v6v6v6v6v6v6v6v6v/
569 FCC /6v6v6v6v6v6v6v6v6v6v/
570 CMPU #$C000
571 BNE CLSB
572 LDU #$BF40
573CLSA FCC /6v6v6v6v6v6v6v6v6v6v/
574 FCC /6v6v6v6v6v6v6v6v6v6v/
575 FCC /6v6v6v6v6v6v6v6v6v6v/
576 FCC /6v6v6v6v6v6v6v6v6v6v/
577 CMPU #$A000
578 BNE CLSA
579RS2 LDS #0
580 RTS
581
582 FCB 0,32,-32
583 FDB 0,0,0
584COLORS 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
590NORPAL FDB 0,15,240,255,3840,3855
591 FDB 4080,4095,1911
592 END
Note: See TracBrowser for help on using the repository browser.