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 |
|
---|
11 | NL EQU 200 nombre de lignes
|
---|
12 | VIT 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 |
|
---|
20 | G 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
|
---|
81 | GOON LDY #NL Nombre de lignes
|
---|
82 |
|
---|
83 | COPPER 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
|
---|
113 | DECALB 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
|
---|
118 | DECALH 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/
|
---|
128 | TOUCHE * La touche frappée
|
---|
129 |
|
---|
130 | END
|
---|