xref: /netbsd-src/sys/arch/amiga/dev/grfabs_ccglb.c (revision 1ca5c1b28139779176bd5c13ad7c5f25c0bcd5f8)
1 /*	$NetBSD: grfabs_ccglb.c,v 1.9 1999/03/25 21:55:17 is Exp $	*/
2 
3 /*
4  * Copyright (c) 1994 Christian E. Hopps
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  * 3. All advertising materials mentioning features or use of this software
16  *    must display the following acknowledgement:
17  *      This product includes software developed by Christian E. Hopps.
18  * 4. The name of the author may not be used to endorse or promote products
19  *    derived from this software without specific prior written permission
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
22  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
23  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
24  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
26  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
30  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #include "opt_amigaccgrf.h"
34 
35 #include <sys/types.h>
36 #include <sys/queue.h>
37 
38 #include <amiga/amiga/cc.h>
39 #include <amiga/dev/grfabs_reg.h>
40 #include <amiga/dev/grfabs_ccreg.h>
41 
42 /* the custom thips monitor */
43 monitor_t *cc_monitor;
44 
45 cop_t std_copper_list[] = {
46     {{{ CI_WAIT (0, 12), 0xfffe }}},
47 #if defined (GRF_ECS) || defined (GRF_AGA)
48 #if defined (GRF_AGA)
49     {{{ R_FMODE, 0x0000 }}},
50 #endif
51     {{{ R_BEAMCON0, 0x0000 }}},
52     {{{ R_BPLCON3, 0x0020 }}},			  /* enable border blank */
53 #endif
54     /* bit plane pointers */
55     {{{ R_BPL0PTH, 0x0000 }}},    {{{ R_BPL0PTL, 0x0000 }}},
56     {{{ R_BPL1PTH, 0x0000 }}},    {{{ R_BPL1PTL, 0x0000 }}},
57     {{{ R_BPL2PTH, 0x0000 }}},    {{{ R_BPL2PTL, 0x0000 }}},
58     {{{ R_BPL3PTH, 0x0000 }}},    {{{ R_BPL3PTL, 0x0000 }}},
59     {{{ R_BPL4PTH, 0x0000 }}},    {{{ R_BPL4PTL, 0x0000 }}},
60     {{{ R_BPL5PTH, 0x0000 }}},    {{{ R_BPL5PTL, 0x0000 }}},
61     {{{ R_BPL6PTH, 0x0000 }}},    {{{ R_BPL6PTL, 0x0000 }}},
62     {{{ R_BPL7PTH, 0x0000 }}},    {{{ R_BPL7PTL, 0x0000 }}},
63     /* view specific stuff. */
64     {{{ R_BPL1MOD, 0x0000 }}},
65     {{{ R_BPL2MOD, 0x0000 }}},
66     {{{ R_DIWSTRT, 0xffff }}},
67     {{{ R_BPLCON0, 0x0000 }}},
68     {{{ R_DIWSTOP, 0x0000 }}},
69 #if defined (GRF_ECS) || defined (GRF_AGA)
70     {{{ R_DIWHIGH, 0x0000 }}},
71 #endif
72     {{{ R_DDFSTRT, 0x0000 }}},
73     {{{ R_DDFSTOP, 0x0000 }}},
74     {{{ R_BPLCON1, 0x0000 }}},
75     /* colors */
76     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
77     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
78     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
79     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
80     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
81     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
82     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
83     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
84     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
85     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
86     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
87     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
88     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
89     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
90     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
91     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
92     {{{ R_COP1LCH, 0x0000 }}},    {{{ R_COP1LCL, 0x0000 }}},
93     {{{ 0xffff, 0xfffe }}},       {{{ 0xffff, 0xfffe }}}  /* COPEND, COPEND */
94 };
95 
96 /* standard custom chips copper list. */
97 int std_copper_list_len = sizeof (std_copper_list) / sizeof (cop_t);
98 int std_copper_list_size = sizeof (std_copper_list);
99 
100 
101 #ifdef GRF_AGA
102 cop_t aga_copper_list[] = {
103     {{{ CI_WAIT (0, 12), 0xfffe }}},
104     {{{ R_FMODE, 0x0000 }}},
105     {{{ R_HTOTAL, 0x0071 }}},
106     {{{ R_HBSTRT, 0x0008 }}},
107     {{{ R_HBSTOP, 0x001c }}},
108     {{{ R_HSSTRT, 0x000c }}},
109     {{{ R_HSSTOP, 0x001e }}},
110     {{{ R_HCENTER, 0x0046 }}},
111     {{{ R_VSSTRT, 0x0001 }}},
112     {{{ R_VSSTOP, 0x0003 }}},
113     {{{ R_VBSTRT, 0x0000 }}},
114     {{{ R_VBSTOP, 0x000f }}},
115     {{{ R_VTOTAL, 0x020c }}},
116     {{{ R_BEAMCON0, 0x0000 }}},
117     /* bit plane pointers */
118     {{{ R_BPL0PTH, 0x0000 }}},    {{{ R_BPL0PTL, 0x0000 }}},
119     {{{ R_BPL1PTH, 0x0000 }}},    {{{ R_BPL1PTL, 0x0000 }}},
120     {{{ R_BPL2PTH, 0x0000 }}},    {{{ R_BPL2PTL, 0x0000 }}},
121     {{{ R_BPL3PTH, 0x0000 }}},    {{{ R_BPL3PTL, 0x0000 }}},
122     {{{ R_BPL4PTH, 0x0000 }}},    {{{ R_BPL4PTL, 0x0000 }}},
123     {{{ R_BPL5PTH, 0x0000 }}},    {{{ R_BPL5PTL, 0x0000 }}},
124     {{{ R_BPL6PTH, 0x0000 }}},    {{{ R_BPL6PTL, 0x0000 }}},
125     {{{ R_BPL7PTH, 0x0000 }}},    {{{ R_BPL7PTL, 0x0000 }}},
126     /* view specific stuff. */
127     {{{ R_BPL1MOD, 0x0000 }}},
128     {{{ R_BPL2MOD, 0x0000 }}},
129     {{{ R_DIWSTRT, 0xffff }}},
130     {{{ R_BPLCON0, 0x0000 }}},
131     {{{ R_DIWSTOP, 0x0000 }}},
132     {{{ R_DIWHIGH, 0x0000 }}},
133     {{{ R_DDFSTRT, 0x0000 }}},
134     {{{ R_DDFSTOP, 0x0000 }}},
135     {{{ R_BPLCON1, 0x0000 }}},
136      /* colors - bank 0 high */
137     {{{ R_BPLCON3, 0x0020 }}},
138     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
139     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
140     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
141     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
142     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
143     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
144     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
145     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
146     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
147     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
148     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
149     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
150     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
151     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
152     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
153     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
154     /* colors - bank 0 low */
155     {{{ R_BPLCON3, 0x0220 }}},
156     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
157     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
158     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
159     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
160     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
161     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
162     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
163     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
164     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
165     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
166     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
167     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
168     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
169     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
170     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
171     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
172     /* colors - bank 1 high */
173     {{{ R_BPLCON3, 0x2020 }}},
174     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
175     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
176     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
177     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
178     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
179     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
180     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
181     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
182     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
183     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
184     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
185     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
186     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
187     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
188     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
189     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
190     /* colors - bank 1 low */
191     {{{ R_BPLCON3, 0x2220 }}},
192     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
193     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
194     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
195     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
196     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
197     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
198     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
199     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
200     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
201     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
202     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
203     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
204     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
205     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
206     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
207     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
208     /* colors - bank 2 high */
209     {{{ R_BPLCON3, 0x4020 }}},
210     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
211     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
212     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
213     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
214     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
215     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
216     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
217     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
218     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
219     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
220     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
221     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
222     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
223     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
224     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
225     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
226     /* colors - bank 2 low */
227     {{{ R_BPLCON3, 0x4220 }}},
228     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
229     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
230     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
231     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
232     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
233     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
234     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
235     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
236     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
237     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
238     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
239     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
240     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
241     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
242     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
243     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
244     /* colors - bank 3 high */
245     {{{ R_BPLCON3, 0x6020 }}},
246     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
247     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
248     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
249     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
250     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
251     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
252     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
253     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
254     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
255     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
256     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
257     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
258     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
259     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
260     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
261     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
262     /* colors - bank 3 low */
263     {{{ R_BPLCON3, 0x6220 }}},
264     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
265     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
266     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
267     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
268     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
269     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
270     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
271     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
272     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
273     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
274     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
275     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
276     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
277     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
278     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
279     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
280     /* colors - bank 4 high */
281     {{{ R_BPLCON3, 0x8020 }}},
282     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
283     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
284     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
285     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
286     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
287     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
288     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
289     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
290     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
291     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
292     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
293     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
294     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
295     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
296     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
297     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
298     /* colors - bank 4 low */
299     {{{ R_BPLCON3, 0x8220 }}},
300     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
301     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
302     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
303     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
304     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
305     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
306     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
307     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
308     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
309     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
310     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
311     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
312     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
313     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
314     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
315     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
316     /* colors - bank 5 high */
317     {{{ R_BPLCON3, 0xa020 }}},
318     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
319     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
320     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
321     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
322     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
323     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
324     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
325     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
326     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
327     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
328     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
329     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
330     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
331     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
332     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
333     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
334     /* colors - bank 5 low */
335     {{{ R_BPLCON3, 0xa220 }}},
336     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
337     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
338     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
339     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
340     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
341     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
342     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
343     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
344     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
345     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
346     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
347     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
348     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
349     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
350     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
351     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
352     /* colors - bank 6 high */
353     {{{ R_BPLCON3, 0xc020 }}},
354     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
355     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
356     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
357     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
358     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
359     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
360     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
361     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
362     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
363     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
364     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
365     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
366     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
367     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
368     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
369     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
370     /* colors - bank 6 low */
371     {{{ R_BPLCON3, 0xc220 }}},
372     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
373     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
374     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
375     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
376     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
377     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
378     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
379     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
380     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
381     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
382     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
383     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
384     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
385     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
386     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
387     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
388     /* colors - bank 7 high */
389     {{{ R_BPLCON3, 0xe020 }}},
390     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
391     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
392     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
393     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
394     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
395     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
396     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
397     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
398     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
399     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
400     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
401     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
402     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
403     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
404     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
405     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
406     /* colors - bank 7 low */
407     {{{ R_BPLCON3, 0xe220 }}},
408     {{{ R_COLOR00, 0x0779 }}},    {{{ R_COLOR01, 0x0000 }}},
409     {{{ R_COLOR02, 0x0FFF }}},    {{{ R_COLOR03, 0x068B }}},
410     {{{ R_COLOR04, 0x000f }}},    {{{ R_COLOR05, 0x0f0f }}},
411     {{{ R_COLOR06, 0x00ff }}},    {{{ R_COLOR07, 0x0fff }}},
412     {{{ R_COLOR08, 0x0620 }}},    {{{ R_COLOR09, 0x0e50 }}},
413     {{{ R_COLOR0A, 0x09f1 }}},    {{{ R_COLOR0B, 0x0eb0 }}},
414     {{{ R_COLOR0C, 0x055f }}},    {{{ R_COLOR0D, 0x092f }}},
415     {{{ R_COLOR0E, 0x00f8 }}},    {{{ R_COLOR0F, 0x0ccc }}},
416     {{{ R_COLOR10, 0x0e44 }}},    {{{ R_COLOR11, 0x0e44 }}},
417     {{{ R_COLOR12, 0x0000 }}},    {{{ R_COLOR13, 0x0eec }}},
418     {{{ R_COLOR14, 0x0444 }}},    {{{ R_COLOR15, 0x0555 }}},
419     {{{ R_COLOR16, 0x0666 }}},    {{{ R_COLOR17, 0x0777 }}},
420     {{{ R_COLOR18, 0x0888 }}},    {{{ R_COLOR19, 0x0999 }}},
421     {{{ R_COLOR1A, 0x0aaa }}},    {{{ R_COLOR1B, 0x0bbb }}},
422     {{{ R_COLOR1C, 0x0ccc }}},    {{{ R_COLOR1D, 0x0ddd }}},
423     {{{ R_COLOR1E, 0x0eee }}},    {{{ R_COLOR1F, 0x0fff }}},
424     /* colors - whew! */
425     {{{ R_BPLCON3, 0x0020 }}},			  /* enable border blank */
426     {{{ R_COP1LCH, 0x0000 }}},    {{{ R_COP1LCL, 0x0000 }}},
427     {{{ 0xffff, 0xfffe }}},       {{{ 0xffff, 0xfffe }}}  /* COPEND, COPEND */
428 };
429 
430 /* AGA custom chips copper list. */
431 int aga_copper_list_len = sizeof (aga_copper_list) / sizeof (cop_t);
432 int aga_copper_list_size = sizeof (aga_copper_list);
433 #endif
434 
435 #if defined (GRF_A2024)
436 cop_t std_dlace_copper_list[] = {
437     {{{ CI_WAIT(0,12), 0xfffe }}},			  /* WAIT (0, 12) */
438 #if defined (GRF_ECS) || defined (GRF_AGA)
439     {{{ R_BEAMCON0, 0x0000 }}},
440     {{{ R_BPLCON3, 0x0020 }}},			  /* enable border blank */
441 #endif
442     /* colors */
443     {{{ R_COLOR00, 0x0000 }}},    {{{ R_COLOR01, 0x0000 }}},
444     {{{ R_COLOR02, 0x0000 }}},    {{{ R_COLOR03, 0x0000 }}},
445     {{{ R_COLOR04, 0x0000 }}},    {{{ R_COLOR05, 0x0000 }}},
446     {{{ R_COLOR06, 0x0000 }}},    {{{ R_COLOR07, 0x0000 }}},
447     {{{ R_COLOR08, 0x0000 }}},    {{{ R_COLOR09, 0x0000 }}},
448     {{{ R_COLOR0A, 0x0000 }}},    {{{ R_COLOR0B, 0x0000 }}},
449     {{{ R_COLOR0C, 0x0000 }}},    {{{ R_COLOR0D, 0x0000 }}},
450     {{{ R_COLOR0E, 0x0000 }}},    {{{ R_COLOR0F, 0x0000 }}},
451     {{{ R_COLOR10, 0x0009 }}},    {{{ R_COLOR11, 0x0009 }}},
452     {{{ R_COLOR12, 0x0001 }}},    {{{ R_COLOR13, 0x0809 }}},
453     {{{ R_COLOR14, 0x0009 }}},    {{{ R_COLOR15, 0x0009 }}},
454     {{{ R_COLOR16, 0x0001 }}},    {{{ R_COLOR17, 0x0809 }}},
455     {{{ R_COLOR18, 0x0008 }}},    {{{ R_COLOR19, 0x0008 }}},
456     {{{ R_COLOR1A, 0x0000 }}},    {{{ R_COLOR1B, 0x0808 }}},
457     {{{ R_COLOR1C, 0x0089 }}},    {{{ R_COLOR1D, 0x0089 }}},
458     {{{ R_COLOR1E, 0x0081 }}},    {{{ R_COLOR1F, 0x0889 }}},
459     /* set the registers up. */
460     {{{ R_DIWSTRT, 0xffff }}},
461     {{{ R_BPLCON0, 0x0000 }}},
462     {{{ R_DIWSTOP, 0x0000 }}},
463 #if defined (GRF_ECS) || defined (GRF_AGA)
464     {{{ R_DIWHIGH, 0x0000 }}},
465 #endif
466     {{{ R_DDFSTRT, 0x0000 }}},
467     {{{ R_DDFSTOP, 0x0000 }}},
468     {{{ R_BPLCON1, 0x0000 }}},
469     /* view specific stuff. */
470     {{{ R_BPL1MOD, 0x0000 }}},
471     {{{ R_BPL2MOD, 0x0000 }}},
472     /* bit plane pointers */
473     {{{ R_BPL0PTH, 0x0000 }}},    {{{ R_BPL0PTL, 0x0000 }}},
474     {{{ R_BPL1PTH, 0x0000 }}},    {{{ R_BPL1PTL, 0x0000 }}},
475     {{{ R_BPL2PTH, 0x0000 }}},    {{{ R_BPL2PTL, 0x0000 }}},
476     {{{ R_BPL3PTH, 0x0000 }}},    {{{ R_BPL3PTL, 0x0000 }}},
477 #if defined (GRF_AGA)
478     {{{ R_FMODE, 0x0000}}},
479 #endif
480     {{{ R_COP1LCH, 0x0000 }}},    {{{ R_COP1LCL, 0x0000 }}},
481     {{{ 0xffff, 0xfffe }}},       {{{ 0xffff, 0xfffe }}}  /* COPEND, COPEND */
482 };
483 int std_dlace_copper_list_len = sizeof (std_dlace_copper_list) / sizeof (cop_t);
484 int std_dlace_copper_list_size = sizeof (std_dlace_copper_list);
485 
486 cop_t std_a2024_copper_list[] = {
487     {{{ CI_WAIT(0,12), 0xfffe }}},			  /* WAIT (0, 12) */
488 #if defined (GRF_ECS) || defined (GRF_AGA)
489     {{{ R_BEAMCON0, 0x0000 }}},
490 #endif
491     /* hedley card init setup section */
492     {{{ R_COLOR00, 0x0f00 }}},
493     {{{ R_BPL0PTH, 0x0000 }}}, {{{ R_BPL0PTL, 0x0000 }}}, /* init plane of 1's with first set for centering */
494     {{{ R_DIWSTRT, 0x1561 }}}, {{{ R_DIWSTOP, 0x16d1 }}},
495 #if defined (GRF_ECS) || defined (GRF_AGA)
496     {{{ R_DIWHIGH, 0x2000 }}},
497 #endif
498     {{{ R_DDFSTRT, 0x0040 }}}, {{{ R_DDFSTOP, 0x00d0 }}},
499     {{{ R_BPLCON0, 0x9200 }}},
500     /* actual data that will be latched by hedley card. */
501     {{{ R_COLOR01, 0x0001 }}},			  /* Stuff1 */
502     {{{ CI_WAIT(126,21), 0xfffe }}}, {{{ R_COLOR01, 0x0001 }}}, /* Display Quadrent */
503     {{{ CI_WAIT(158,21), 0xfffe }}}, {{{ R_COLOR01, 0x08f0 }}}, /* Stuff */
504     {{{ CI_WAIT(190,21), 0xfffe }}}, {{{ R_COLOR01, 0x0ff1 }}}, /* Stuff2 */
505     {{{ CI_WAIT(0,22), 0xfffe }}},
506     {{{ R_COLOR00, 0x0000 }}}, {{{ R_BPLCON0, 0x0000 }}},
507     {{{ CI_WAIT(0,43), 0xfffe }}},
508     /* set the registers up. */
509     {{{ R_COLOR00, 0x0009 }}}, {{{ R_COLOR01, 0x0001 }}},
510     {{{ R_COLOR02, 0x0008 }}}, {{{ R_COLOR03, 0x0000 }}},
511     {{{ R_COLOR04, 0x0809 }}}, {{{ R_COLOR05, 0x0801 }}},
512     {{{ R_COLOR06, 0x0808 }}}, {{{ R_COLOR07, 0x0800 }}},
513     {{{ R_COLOR08, 0x0089 }}}, {{{ R_COLOR09, 0x0081 }}},
514     {{{ R_COLOR0A, 0x0088 }}}, {{{ R_COLOR0B, 0x0080 }}},
515     {{{ R_COLOR0C, 0x0889 }}}, {{{ R_COLOR0D, 0x0881 }}},
516     {{{ R_COLOR0E, 0x0888 }}}, {{{ R_COLOR0F, 0x0880 }}},
517     {{{ R_COLOR10, 0x0009 }}}, {{{ R_COLOR11, 0x0009 }}},
518     {{{ R_COLOR12, 0x0001 }}}, {{{ R_COLOR13, 0x0809 }}},
519     {{{ R_COLOR14, 0x0009 }}}, {{{ R_COLOR15, 0x0009 }}},
520     {{{ R_COLOR16, 0x0001 }}}, {{{ R_COLOR17, 0x0809 }}},
521     {{{ R_COLOR18, 0x0008 }}}, {{{ R_COLOR19, 0x0008 }}},
522     {{{ R_COLOR1A, 0x0000 }}}, {{{ R_COLOR1B, 0x0808 }}},
523     {{{ R_COLOR1C, 0x0089 }}}, {{{ R_COLOR1D, 0x0089 }}},
524     {{{ R_COLOR1E, 0x0081 }}}, {{{ R_COLOR1F, 0x0889 }}},
525     /* window size. */
526     {{{ R_DIWSTRT, 0x2c81 }}}, {{{ R_BPLCON0, 0x0000 }}},
527     {{{ R_DIWSTOP, 0xf481 }}},
528     /* datafetch */
529     {{{ R_DDFSTRT, 0x0038 }}}, {{{ R_DDFSTOP, 0x00b8 }}},
530     {{{ R_BPLCON1, 0x0000 }}},
531     {{{ R_BPL1MOD, 0x00bc }}}, {{{ R_BPL2MOD, 0x00bc }}},
532     /* bitplanes */
533     {{{ R_BPL0PTH, 0x0000 }}}, {{{ R_BPL0PTL, 0x0000 }}},
534     {{{ R_BPL1PTH, 0x0000 }}}, {{{ R_BPL1PTL, 0x0000 }}},
535     {{{ R_BPL2PTH, 0x0000 }}}, {{{ R_BPL2PTL, 0x0000 }}},
536     {{{ R_BPL3PTH, 0x0000 }}}, {{{ R_BPL3PTL, 0x0000 }}},
537 #if defined (GRF_ECS) || defined (GRF_AGA)
538     {{{ R_DIWHIGH, 0x2000 }}},
539 #if defined (GRF_AGA)
540     {{{ R_FMODE, 0x0000}}},
541 #endif
542 #endif
543     {{{ R_COP1LCH, 0x0000 }}}, {{{ R_COP1LCL, 0x0000 }}},
544     {{{ 0xffff, 0xfffe }}}, {{{ 0xffff, 0xfffe }}}  /* COPEND, COPEND */
545 };
546 int std_a2024_copper_list_len = sizeof (std_a2024_copper_list) / sizeof (cop_t);
547 int std_a2024_copper_list_size = sizeof (std_a2024_copper_list);
548 
549 cop_t std_pal_a2024_copper_list[] = {
550     {{{ CI_WAIT(0,20), 0xfffe }}},			  /* WAIT (0, 12) */
551 #if defined (GRF_ECS) || defined (GRF_AGA)
552     {{{ R_BEAMCON0, STANDARD_PAL_BEAMCON }}},
553 #endif
554     /* hedley card init setup section */
555     {{{ R_COLOR00, 0x0f00 }}},
556     {{{ R_BPL0PTH, 0x0000 }}}, {{{ R_BPL0PTL, 0x0000 }}}, /* init plane of 1's with first set for centering */
557     {{{ R_DIWSTRT, 0x1d61 }}}, {{{ R_DIWSTOP, 0x1ed1 }}},
558 #if defined (GRF_ECS) || defined (GRF_AGA)
559     {{{ R_DIWHIGH, 0x2000 }}},
560 #endif
561     {{{ R_DDFSTRT, 0x0040 }}}, {{{ R_DDFSTOP, 0x00d0 }}},
562     {{{ R_BPLCON0, 0x9200 }}},
563     /* actual data that will be latched by hedley card. */
564     {{{ R_COLOR01, 0x0001 }}},			  /* Stuff1 */
565     {{{ CI_WAIT(126,29), 0xfffe }}}, {{{ R_COLOR01, 0x0001 }}}, /* Display Quadrent */
566     {{{ CI_WAIT(158,29), 0xfffe }}}, {{{ R_COLOR01, 0x08f0 }}}, /* Stuff */
567     {{{ CI_WAIT(190,29), 0xfffe }}}, {{{ R_COLOR01, 0x0ff1 }}}, /* Stuff2 */
568     {{{ CI_WAIT(0,30), 0xfffe }}},
569     {{{ R_COLOR00, 0x0000 }}}, {{{ R_BPLCON0, 0x0000 }}},
570     {{{ CI_WAIT(0,43), 0xfffe }}},
571 
572     /* set the registers up. */
573     {{{ R_COLOR00, 0x0009 }}}, {{{ R_COLOR01, 0x0001 }}},
574     {{{ R_COLOR02, 0x0008 }}}, {{{ R_COLOR03, 0x0000 }}},
575     {{{ R_COLOR04, 0x0809 }}}, {{{ R_COLOR05, 0x0801 }}},
576     {{{ R_COLOR06, 0x0808 }}}, {{{ R_COLOR07, 0x0800 }}},
577     {{{ R_COLOR08, 0x0089 }}}, {{{ R_COLOR09, 0x0081 }}},
578     {{{ R_COLOR0A, 0x0088 }}}, {{{ R_COLOR0B, 0x0080 }}},
579     {{{ R_COLOR0C, 0x0889 }}}, {{{ R_COLOR0D, 0x0881 }}},
580     {{{ R_COLOR0E, 0x0888 }}}, {{{ R_COLOR0F, 0x0880 }}},
581     {{{ R_COLOR10, 0x0009 }}}, {{{ R_COLOR11, 0x0009 }}},
582     {{{ R_COLOR12, 0x0001 }}}, {{{ R_COLOR13, 0x0809 }}},
583     {{{ R_COLOR14, 0x0009 }}}, {{{ R_COLOR15, 0x0009 }}},
584     {{{ R_COLOR16, 0x0001 }}}, {{{ R_COLOR17, 0x0809 }}},
585     {{{ R_COLOR18, 0x0008 }}}, {{{ R_COLOR19, 0x0008 }}},
586     {{{ R_COLOR1A, 0x0000 }}}, {{{ R_COLOR1B, 0x0808 }}},
587     {{{ R_COLOR1C, 0x0089 }}}, {{{ R_COLOR1D, 0x0089 }}},
588     {{{ R_COLOR1E, 0x0081 }}}, {{{ R_COLOR1F, 0x0889 }}},
589     /* window size. */
590     {{{ R_DIWSTRT, 0x2c81 }}}, {{{ R_BPLCON0, 0x0000 }}},
591     {{{ R_DIWSTOP, 0x2c81 }}},
592     /* datafetch */
593     {{{ R_DDFSTRT, 0x0038 }}}, {{{ R_DDFSTOP, 0x00b8 }}},
594     {{{ R_BPLCON1, 0x0000 }}},
595     {{{ R_BPL1MOD, 0x00bc }}}, {{{ R_BPL2MOD, 0x00bc }}},
596     /* bitplanes */
597     {{{ R_BPL0PTH, 0x0000 }}}, {{{ R_BPL0PTL, 0x0000 }}},
598     {{{ R_BPL1PTH, 0x0000 }}}, {{{ R_BPL1PTL, 0x0000 }}},
599     {{{ R_BPL2PTH, 0x0000 }}}, {{{ R_BPL2PTL, 0x0000 }}},
600     {{{ R_BPL3PTH, 0x0000 }}}, {{{ R_BPL3PTL, 0x0000 }}},
601 #if defined (GRF_ECS) || defined (GRF_AGA)
602     {{{ R_DIWHIGH, 0x2100 }}},
603 #if defined (GRF_AGA)
604     {{{ R_FMODE, 0x0000}}},
605 #endif
606 #endif
607     {{{ R_COP1LCH, 0x0000 }}}, {{{ R_COP1LCL, 0x0000 }}},
608     {{{ 0xffff, 0xfffe }}}, {{{ 0xffff, 0xfffe }}}  /* COPEND, COPEND */
609 };
610 int std_pal_a2024_copper_list_len = sizeof (std_pal_a2024_copper_list) / sizeof (cop_t);
611 int std_pal_a2024_copper_list_size = sizeof (std_pal_a2024_copper_list);
612 
613 /* color tables for figuring color regs for 2024 */
614 u_short a2024_color_value_line0[4] = {
615     A2024_L0_BLACK,
616     A2024_L0_DGREY,
617     A2024_L0_LGREY,
618     A2024_L0_WHITE
619 };
620 
621 u_short a2024_color_value_line1[4] = {
622     A2024_L1_BLACK,
623     A2024_L1_DGREY,
624     A2024_L1_LGREY,
625     A2024_L1_WHITE
626 };
627 
628 #endif /* GRF_A2024 */
629 
630 u_short cc_default_colors[32] = {
631 	0xAAA, 0x000, 0x68B, 0xFFF,
632 	0x369, 0x963, 0x639, 0x936,
633 	0x000, 0x00F, 0x0F0, 0xF00,
634 	0x0FF, 0xFF0, 0xF0F, 0xFFF,
635 	0x000, 0x111, 0x222, 0x333,
636 	0x444, 0x555, 0x666, 0x777,
637 	0x888, 0x999, 0xAAA, 0xBBB,
638 	0xCCC, 0xDDD, 0xEEE, 0xFFF
639 };
640 #if defined (GRF_A2024)
641 u_short cc_a2024_default_colors[4] = {
642 	0x2,			/* LGREY */
643 	0x0,			/* BLACK */
644 	0x3,			/* WHITE */
645 	0x1			/* DGREY */
646 };
647 #endif /* GRF_A2024 */
648