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