source: thomson/code/3rdparty/sources2-hcl/COPPER.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: 4.0 KB
Line 
1 **************************************
2** - C O P P E R - **
3* permet de changer la palette de la *
4* couleur 0 à chaque ligne. On obtient *
5* ainsi des images (fixes) en plus de *
6* 2 0 0 T E I N T E S *
7* Laurent HIRIART , Les ENVERSGOUTTES *
8** 67420 COLROY-LA-ROCHE **
9 **************************************
10
11NL EQU 200 nombre de lignes
12VIT EQU 0 vitesse défilement
13
14* Palettes à partir de $DF5E et + bas...
15* 16 bits chacune: (0 bleu vert rouge)
16
17
18 ORG $DF60
19
20G ORCC #80 Stop interruptions
21 PSHS DP On récupèrera DP
22 LDB #$E7 à la sortie !
23 TFR B,DP Pour accès rapides
24
25* SYNCRONISATION - REGLAGE COLONNE *****
26* b5 de $E7E7 : situation en ligne INILN
27
28 LDX #*+4
29 LDA #32
30
31 BITA <$E7 sort quand
32 BEQ *-2 spot dans fenêtre
33
34 BITA <$E7 sort quand
35 BNE *-2 spot entre border
36
37 STA ,X+ 5
38 MUL 11 boucle de 63
39 MUL 11 cycles dont on
40 MUL 11 sort quand le
41 MUL 11 spot est sur la
42 LDA ,-X 5 dernière
43 BITA <$E7 4 C O L O N N E
44 BEQ *-10 3 de la fenêtre
45
46* SYNCRONISATION - REGLAGE LIGNE *******
47* b7 de $E7E7 : situation en trame INITN
48
49 MUL 11 boucle de 64
50 MUL 11 cycles dont on
51 MUL 11 sort quand le
52 MUL 11 spot est sur
53 MUL 11 une ligne
54 TST <$E7 6 DANS le border
55 BPL *-7 3
56
57 MUL 11 boucle de 64
58 MUL 11 cycles dont on
59 MUL 11 sort quand le
60 MUL 11 spot est sur la
61 MUL 11 dernière
62 TST <$E7 6 L I G N E
63 BMI *-7 3 de la fenêtre
64
65 LDX #(211-NL/2)*8-3
66 LEAX -1,X Pour centrer les
67 BNE *-2 lignes de copper.
68
69* Pour pousser les bandes noires dans le
70* border afin qu'on ne puisse les voir
71* ni à gauche ni à droite.
72* Varie selon les moniteurs : régler le
73* nombre de cycles machine ...
74
75 TST A,X 7 Temporisation
76
77* Changement de la palette d'une couleur
78* tous les 64 cycles (i.e. chaque ligne)
79
80 LDX #G Déb liste palettes
81GOON LDY #NL Nombre de lignes
82
83COPPER LDD ,--X 8 Chargement et
84 CLR <$DB 6 affectation de
85 STB <$DA 4 la nouvelle
86 STA <$DA 4 palette->coul0
87 MUL 11 Temporisation
88 MUL 11 Temporisation
89 NOP 2 Temporisation
90 CMPX #G-2*NL 4 Fin dans liste
91 BEQ *+4 3 des couleurs ?
92 BRA *+5 3 non:rien, oui:
93 LDX #G 3 repart début.
94 LEAY -1,Y 5 200ème ligne ?
95 BNE COPPER 3 non: on boucle
96
97 LDY #(311-NL)*8-1 4 Cf + bas.
98 CLRA 2 A la fin des NL
99 NOP 2 lignes de copper
100 CLR <$DB 6 on remet vite
101 STA <$DA 4 la couleur 0 en
102 STA <$DA 4 noir (palette=0)
103 LEAY -1,Y 5 On patiente
104 BNE *-2 3 dans le border.
105
106* LEAX 2*VIT,X 5 Donne la vitesse
107 FDB $3088 Sinon l'assembleur
108 FCB 2*VIT risque d'optimiser
109 CMPX #G 4 Pointeur couleur
110 BHI DECALB 3 dépasse en haut?
111 LDA A,X 5 non:
112 BRA *+6 3 temporisation
113DECALB LEAX -2*NL,X 8 oui:décale bas.
114 CMPX #G-2*NL 4 Pointeur couleur
115 BLS DECALH 3 dépasse en bas ?
116 LDA A,X 5 non:
117 BRA *+6 3 temporisation
118DECALH LEAX 2*NL,X 8 oui:décale haut.
119 NOP 2 Temporisation
120 TST <$C8 6 clavier frappé ?
121 BEQ GOON 3 non -> boucle
122
123 JSR $E806 Recconnaît le code
124 STB TOUCHE ASCII de la touche
125 PULS DP Et on sort,heureux
126 RTS
127 FCC /(c)HCL91/
128TOUCHE * La touche frappée
129
130 END
Note: See TracBrowser for help on using the repository browser.