cim_modes.c revision f29dbc25
1/*
2 * Copyright (c) 2006 Advanced Micro Devices, Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 * DEALINGS IN THE SOFTWARE.
21 *
22 * Neither the name of the Advanced Micro Devices, Inc. nor the names of its
23 * contributors may be used to endorse or promote products derived from this
24 * software without specific prior written permission.
25 */
26
27 /*
28  * Cimarron mode tables.
29  */
30
31/*-------------------------------*/
32/*  PREDEFINED DISPLAY TIMINGS   */
33/*-------------------------------*/
34
35static const VG_DISPLAY_MODE CimarronDisplayModes[] = {
36    /* 320 x 240 PANEL */
37
38    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
39            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
40            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
41            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
42            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
43            VG_MODEFLAG_QVGA,          /* QVGA Panel size.     */
44            320, 240,                  /* No scaling.          */
45            320, 240,                  /* 320x240 active       */
46            320, 240,                  /* 320x240 panel        */
47            0, 0, 0, 0, 0,             /* No panel registers   */
48            0x0140, 0x0148, 0x0162, 0x0180, 0x0188, 0x0190,     /* horiz timings   */
49            0x00F0, 0x00F4, 0x00F9, 0x00FD, 0x00FF, 0x0104,     /* vertical timings */
50            (31L << 16) | ((2000L * 65536L) / 10000L),  /* freq = 31.2000 MHz */
51        }
52    ,
53
54    /* 640 x 400 */
55
56    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 60    */
57            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
58            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
59            VG_SUPPORTFLAG_32BPP,
60            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
61            VG_MODEFLAG_NEG_HSYNC,     /* negative HSYNC       */
62            640, 400,                  /* No scaling.          */
63            0, 0,                      /* No mode dimensions.  */
64            0, 0,                      /* No panel dimensions. */
65            0, 0, 0, 0, 0,             /* No panel registers   */
66            0x280, 0x288, 0x290, 0x2F0, 0x318, 0x320,   /* horiz timings   */
67            0x190, 0x197, 0x19C, 0x19E, 0x1BA, 0x1C1,   /* vertical timings */
68            0, 0, 0, 0, 0, 0,          /* No even timings      */
69            (25L << 16) | ((1750L * 65536L) / 10000L),  /* freq = 25.175 MHz    */
70        }
71    ,
72
73    /* 640x480 */
74
75    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
76            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
77            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
78            VG_SUPPORTFLAG_32BPP,
79            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
80            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
81            640, 480,                  /* No scaling.          */
82            0, 0,                      /* No mode dimensions.  */
83            0, 0,                      /* No panel dimensions. */
84            0, 0, 0, 0, 0,             /* No panel registers   */
85            0x0280, 0x0288, 0x0290, 0x02E8, 0x0318, 0x0320,     /* horiz timings   */
86            0x01E0, 0x01E8, 0x01EA, 0x01EC, 0x0205, 0x020D,     /* vertical timings */
87            0, 0, 0, 0, 0, 0,          /* No even timings      */
88            (25L << 16) | ((1750L * 65536L) / 10000L),  /* freq = 25.175 MHz    */
89        }
90    ,
91
92    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
93            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
94            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
95            VG_SUPPORTFLAG_32BPP,
96            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
97            0,
98            640, 480,                  /* No scaling.          */
99            0, 0,                      /* No mode dimensions.  */
100            0, 0,                      /* No panel dimensions. */
101            0, 0, 0, 0, 0,             /* No panel registers   */
102            0x0280, 0x0280, 0x0298, 0x02D8, 0x0330, 0x0330,     /* horiz timings   */
103            0x01E0, 0x01E0, 0x01E2, 0x01E5, 0x01F4, 0x01F4,     /* vertical timings */
104            0, 0, 0, 0, 0, 0,          /* No even timings      */
105            (28L << 16) | ((5600L * 65536L) / 10000L),  /* freq = 28.560 MHz    */
106        }
107    ,
108
109    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
110            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
111            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
112            VG_SUPPORTFLAG_32BPP,
113            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
114            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
115            640, 480,                  /* No scaling.          */
116            0, 0,                      /* No mode dimensions.  */
117            0, 0,                      /* No panel dimensions. */
118            0, 0, 0, 0, 0,             /* No panel registers   */
119            0x0280, 0x0288, 0x0298, 0x02c0, 0x0338, 0x0340,     /* horiz timings   */
120            0x01e0, 0x01e8, 0x01e9, 0x01ec, 0x0200, 0x0208,     /* vertical timings */
121            0, 0, 0, 0, 0, 0,          /* No even timings      */
122            (31L << 16) | ((5000L * 65536L) / 10000L),  /* freq = 31.5 MHz      */
123        }
124    ,
125
126    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
127            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
128            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
129            VG_SUPPORTFLAG_32BPP,
130            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
131            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
132            640, 480,                  /* No scaling.          */
133            0, 0,                      /* No mode dimensions.  */
134            0, 0,                      /* No panel dimensions. */
135            0, 0, 0, 0, 0,             /* No panel registers   */
136            0x0280, 0x0280, 0x0290, 0x02D0, 0x0348, 0x0348,     /* horiz timings   */
137            0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01F4, 0x01F4,     /* vertical timings */
138            0, 0, 0, 0, 0, 0,          /* No even timings      */
139            (31L << 16) | ((5000L * 65536L) / 10000L),  /* freq = 31.5 MHz      */
140        }
141    ,
142
143    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
144            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
145            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
146            VG_SUPPORTFLAG_32BPP,
147            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
148            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
149            640, 480,                  /* No scaling.          */
150            0, 0,                      /* No mode dimensions.  */
151            0, 0,                      /* No panel dimensions. */
152            0, 0, 0, 0, 0,             /* No panel registers   */
153            0x0280, 0x0280, 0x02B8, 0x02F0, 0x0340, 0x0340,     /* horiz timings   */
154            0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FD, 0x01FD,     /* vertical timings */
155            0, 0, 0, 0, 0, 0,          /* No even timings      */
156            (36L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 36.0 MHz      */
157        }
158    ,
159
160    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
161            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
162            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
163            VG_SUPPORTFLAG_32BPP,
164            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
165            0,
166            640, 480,                  /* No scaling.          */
167            0, 0,                      /* No mode dimensions.  */
168            0, 0,                      /* No panel dimensions. */
169            0, 0, 0, 0, 0,             /* No panel registers   */
170            0x0280, 0x0280, 0x02A0, 0x02E0, 0x0340, 0x0340,     /* horiz timings   */
171            0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FA, 0x01FA,     /* vertical timings */
172            0, 0, 0, 0, 0, 0,          /* No even timings      */
173            (37L << 16) | ((8890L * 65536L) / 10000L),  /* freq = 37.889 MHz    */
174        }
175    ,
176
177    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
178            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
179            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
180            VG_SUPPORTFLAG_32BPP,
181            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
182            0,
183            640, 480,                  /* No scaling.          */
184            0, 0,                      /* No mode dimensions.  */
185            0, 0,                      /* No panel dimensions. */
186            0, 0, 0, 0, 0,             /* No panel registers   */
187            0x0280, 0x0280, 0x02A8, 0x02E8, 0x0350, 0x0350,     /* horiz timings   */
188            0x01E0, 0x01E0, 0x01E1, 0x01E4, 0x01FD, 0x01FD,     /* vertical timings */
189            0, 0, 0, 0, 0, 0,          /* No even timings      */
190            (43L << 16) | ((1630L * 65536L) / 10000L),  /* freq = 43.163 MHz    */
191        }
192    ,
193
194    /* 640 x 480 PANEL */
195
196    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
197            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
198            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
199            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
200            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
201            640, 480,                  /* No scaling.          */
202            640, 480,                  /* 640x480 active       */
203            640, 480,                  /* 640x480 panel        */
204            0, 0, 0, 0, 0,             /* No panel registers   */
205            0x0280, 0x0280, 0x0290, 0x02E8, 0x0318, 0x0320,     /* horiz timings   */
206            0x01E0, 0x01E0, 0x01EA, 0x01EC, 0x0205, 0x020D,     /* vertical timings */
207            0, 0, 0, 0, 0, 0,          /* No even timings      */
208            (25L << 16) | ((1750L * 65536L) / 10000L),  /* freq = 25.175 MHz    */
209        }
210    ,
211
212    /* 800x600 */
213
214    {VG_SUPPORTFLAG_56HZ |             /* refresh rate = 56    */
215            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
216            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
217            VG_SUPPORTFLAG_32BPP,
218            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
219            0,
220            800, 600,                  /* No scaling.          */
221            0, 0,                      /* No mode dimensions.  */
222            0, 0,                      /* No panel dimensions. */
223            0, 0, 0, 0, 0,             /* No panel registers   */
224            0x0320, 0x0320, 0x0338, 0x0380, 0x0400, 0x0400,     /* horiz timings   */
225            0x0258, 0x0258, 0x0259, 0x025B, 0x0271, 0x0271,     /* vertical timings */
226            0, 0, 0, 0, 0, 0,          /* No even timings      */
227            (36L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 36.0 MHz      */
228        }
229    ,
230
231    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
232            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
233            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
234            VG_SUPPORTFLAG_32BPP,
235            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
236            0,
237            800, 600,                  /* No scaling.          */
238            0, 0,                      /* No mode dimensions.  */
239            0, 0,                      /* No panel dimensions. */
240            0, 0, 0, 0, 0,             /* No panel registers   */
241            0x0320, 0x0328, 0x0348, 0x03D0, 0x0418, 0x0420,     /* horiz timings   */
242            0x0258, 0x0258, 0x0259, 0x025D, 0x0274, 0x0274,     /* vertical timings */
243            0, 0, 0, 0, 0, 0,          /* No even timings      */
244            (40L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 40.00 MHz     */
245        }
246    ,
247
248    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
249            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
250            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
251            VG_SUPPORTFLAG_32BPP,
252            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
253            0,
254            800, 600,                  /* No scaling.          */
255            0, 0,                      /* No mode dimensions.  */
256            0, 0,                      /* No panel dimensions. */
257            0, 0, 0, 0, 0,             /* No panel registers   */
258            0x0320, 0x0320, 0x0348, 0x0398, 0x0410, 0x0410,     /* horiz timings   */
259            0x0258, 0x0258, 0x025c, 0x025F, 0x0274, 0x0274,     /* vertical timings */
260            0, 0, 0, 0, 0, 0,          /* No even timings      */
261            (45L << 16) | ((7200L * 65536L) / 10000L),  /* freq = 45.72 MHz     */
262        }
263    ,
264
265    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
266            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
267            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
268            VG_SUPPORTFLAG_32BPP,
269            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
270            0,
271            800, 600,                  /* No scaling.          */
272            0, 0,                      /* No mode dimensions.  */
273            0, 0,                      /* No panel dimensions. */
274            0, 0, 0, 0, 0,             /* No panel registers   */
275            0x0320, 0x0320, 0x0358, 0x03D0, 0x0410, 0x0410,     /* horiz timings   */
276            0x0258, 0x0258, 0x027D, 0x0283, 0x029A, 0x029A,     /* vertical timings */
277            0, 0, 0, 0, 0, 0,          /* No even timings      */
278            (49L << 16) | ((5000L * 65536L) / 10000L),  /* freq = 49.5 MHz      */
279        }
280    ,
281
282    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
283            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
284            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
285            VG_SUPPORTFLAG_32BPP,
286            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
287            0,
288            800, 600,                  /* No scaling.          */
289            0, 0,                      /* No mode dimensions.  */
290            0, 0,                      /* No panel dimensions. */
291            0, 0, 0, 0, 0,             /* No panel registers   */
292            0x0320, 0x0320, 0x0330, 0x0380, 0x0420, 0x0420,     /* horiz timings   */
293            0x0258, 0x0258, 0x0259, 0x025C, 0x0271, 0x0271,     /* vertical timings */
294            0, 0, 0, 0, 0, 0,          /* No even timings      */
295            (49L << 16) | ((5000L * 65536L) / 10000L),  /* freq = 49.5 MHz      */
296        }
297    ,
298
299    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
300            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
301            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
302            VG_SUPPORTFLAG_32BPP,
303            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
304            0,
305            800, 600,                  /* No scaling.          */
306            0, 0,                      /* No mode dimensions.  */
307            0, 0,                      /* No panel dimensions. */
308            0, 0, 0, 0, 0,             /* No panel registers   */
309            0x0320, 0x0320, 0x0340, 0x0380, 0x0418, 0x0418,     /* horiz timings   */
310            0x0258, 0x0258, 0x0259, 0x025C, 0x0277, 0x0277,     /* vertical timings */
311            0, 0, 0, 0, 0, 0,          /* No even timings      */
312            (56L << 16) | ((2500L * 65536L) / 10000L),  /* freq = 56.25 MHz     */
313        }
314    ,
315
316    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
317            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
318            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
319            VG_SUPPORTFLAG_32BPP,
320            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
321            0,
322            800, 600,                  /* No scaling.          */
323            0, 0,                      /* No mode dimensions.  */
324            0, 0,                      /* No panel dimensions. */
325            0, 0, 0, 0, 0,             /* No panel registers   */
326            0x0320, 0x0320, 0x0348, 0x03A0, 0x0420, 0x0420,     /* horiz timings   */
327            0x0258, 0x0258, 0x0259, 0x025C, 0x0278, 0x0278,     /* vertical timings */
328            0, 0, 0, 0, 0, 0,          /* No even timings      */
329            (60L << 16) | ((650L * 65536L) / 10000L),   /* freq = 60.065 MHz    */
330        }
331    ,
332
333    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
334            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
335            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
336            VG_SUPPORTFLAG_32BPP,
337            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
338            0,
339            800, 600,                  /* No scaling.          */
340            0, 0,                      /* No mode dimensions.  */
341            0, 0,                      /* No panel dimensions. */
342            0, 0, 0, 0, 0,             /* No panel registers   */
343            0x0320, 0x0320, 0x0350, 0x03A8, 0x0430, 0x0430,     /* horiz timings   */
344            0x0258, 0x0258, 0x0259, 0x025C, 0x0277, 0x027C,     /* vertical timings */
345            0, 0, 0, 0, 0, 0,          /* No even timings      */
346            (68L << 16) | ((1790L * 65536L) / 10000L),  /* freq = 68.179 MHz    */
347        }
348    ,
349
350    /* 800x600 PANEL */
351
352    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
353            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
354            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
355            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
356            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
357            800, 600,                  /* No scaling.          */
358            800, 600,                  /* 800x600 active.      */
359            800, 600,                  /* 800x600 panel        */
360            0, 0, 0, 0, 0,             /* No panel registers   */
361            0x0320, 0x0320, 0x0348, 0x03C8, 0x0420, 0x0420,     /* horiz timings   */
362            0x0258, 0x0258, 0x0259, 0x025D, 0x0274, 0x0274,     /* vertical timings */
363            0, 0, 0, 0, 0, 0,          /* No even timings      */
364            (40L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 40.00 MHz     */
365        }
366    ,
367
368    /* 1024x768 */
369
370    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
371            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
372            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
373            VG_SUPPORTFLAG_32BPP,
374            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
375            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
376            1024, 768,                 /* No scaling.          */
377            0, 0,                      /* No mode dimensions.  */
378            0, 0,                      /* No panel dimensions. */
379            0, 0, 0, 0, 0,             /* No panel registers   */
380            0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540,     /* horiz timings   */
381            0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326,     /* vertical timings */
382            0, 0, 0, 0, 0, 0,          /* No even timings      */
383            (65L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 65.00 MHz     */
384        }
385    ,
386
387    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
388            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
389            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
390            VG_SUPPORTFLAG_32BPP,
391            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
392            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
393            1024, 768,                 /* No scaling.          */
394            0, 0,                      /* No mode dimensions.  */
395            0, 0,                      /* No panel dimensions. */
396            0, 0, 0, 0, 0,             /* No panel registers   */
397            0x0400, 0x0400, 0x0418, 0x04A0, 0x0530, 0x0530,     /* horiz timings   */
398            0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326,     /* vertical timings */
399            0, 0, 0, 0, 0, 0,          /* No even timings      */
400            (75L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 75.0 MHz      */
401        }
402    ,
403
404    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
405            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
406            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
407            VG_SUPPORTFLAG_32BPP,
408            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
409            0,
410            1024, 768,                 /* No scaling.          */
411            0, 0,                      /* No mode dimensions.  */
412            0, 0,                      /* No panel dimensions. */
413            0, 0, 0, 0, 0,             /* No panel registers   */
414            0x0400, 0x0400, 0x0438, 0x04A8, 0x0550, 0x0550,     /* horiz timings   */
415            0x0300, 0x0300, 0x0304, 0x0307, 0x0324, 0x0324,     /* vertical timings */
416            0, 0, 0, 0, 0, 0,          /* No even timings      */
417            (78L << 16) | ((7500L * 65536L) / 10000L),  /* freq = 78.75 MHz     */
418        }
419    ,
420
421    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
422            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
423            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
424            VG_SUPPORTFLAG_32BPP,
425            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
426            0,
427            1024, 768,                 /* No scaling.          */
428            0, 0,                      /* No mode dimensions.  */
429            0, 0,                      /* No panel dimensions. */
430            0, 0, 0, 0, 0,             /* No panel registers   */
431            0x0400, 0x0400, 0x0410, 0x0470, 0x0520, 0x0520,     /* horiz timings   */
432            0x0300, 0x0300, 0x0301, 0x0304, 0x0320, 0x0320,     /* vertical timings */
433            0, 0, 0, 0, 0, 0,          /* No even timings      */
434            (78L << 16) | ((7500L * 65536L) / 10000L),  /* freq = 78.75 MHz     */
435        }
436    ,
437
438    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
439            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
440            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
441            VG_SUPPORTFLAG_32BPP,
442            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
443            0,
444            1024, 768,                 /* No scaling.          */
445            0, 0,                      /* No mode dimensions.  */
446            0, 0,                      /* No panel dimensions. */
447            0, 0, 0, 0, 0,             /* No panel registers   */
448            0x0400, 0x0400, 0x0430, 0x0490, 0x0560, 0x0560,     /* horiz timings   */
449            0x0300, 0x0300, 0x0301, 0x0304, 0x0328, 0x0328,     /* vertical timings */
450            0, 0, 0, 0, 0, 0,          /* No even timings      */
451            (94L << 16) | ((5000L * 65536L) / 10000L),  /* freq = 94.50 MHz     */
452        }
453    ,
454
455    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
456            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
457            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
458            VG_SUPPORTFLAG_32BPP,
459            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
460            0,
461            1024, 768,                 /* No scaling.          */
462            0, 0,                      /* No mode dimensions.  */
463            0, 0,                      /* No panel dimensions. */
464            0, 0, 0, 0, 0,             /* No panel registers   */
465            0x0400, 0x0400, 0x0440, 0x04B0, 0x0560, 0x0560,     /* horiz timings   */
466            0x0300, 0x0300, 0x0301, 0x0304, 0x0329, 0x0329,     /* vertical timings */
467            0, 0, 0, 0, 0, 0,          /* No even timings      */
468            (100L << 16) | ((1870L * 65536L) / 10000L), /* freq = 100.187 MHz   */
469        }
470    ,
471
472    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
473            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
474            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
475            VG_SUPPORTFLAG_32BPP,
476            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
477            0,
478            1024, 768,                 /* No scaling.          */
479            0, 0,                      /* No mode dimensions.  */
480            0, 0,                      /* No panel dimensions. */
481            0, 0, 0, 0, 0,             /* No panel registers   */
482            0x0400, 0x0400, 0x0448, 0x04B8, 0x0570, 0x0570,     /* horiz timings   */
483            0x0300, 0x0300, 0x0301, 0x0304, 0x032E, 0x032E,     /* vertical timings */
484            0, 0, 0, 0, 0, 0,          /* No even timings      */
485            (113L << 16) | ((3100L * 65536L) / 10000L), /* freq = 113.31 MHz    */
486        }
487    ,
488
489    /* 1024x768 PANEL */
490
491    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
492            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
493            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
494            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
495            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
496            1024, 768,                 /* No scaling.          */
497            1024, 768,                 /* 1024x768 active.     */
498            1024, 768,                 /* 1024x768 panel       */
499            0, 0, 0, 0, 0,             /* No panel registers   */
500            0x0400, 0x0400, 0x0418, 0x04A0, 0x0540, 0x0540,     /* horiz timings   */
501            0x0300, 0x0300, 0x0303, 0x0309, 0x0326, 0x0326,     /* vertical timings */
502            0, 0, 0, 0, 0, 0,          /* No even timings      */
503            (65L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 65.00 MHz     */
504        }
505    ,
506
507    /* 1152x864 */
508
509    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
510            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
511            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
512            VG_SUPPORTFLAG_32BPP,
513            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
514            0,
515            1152, 864,                 /* No scaling.          */
516            0, 0,                      /* No mode dimensions.  */
517            0, 0,                      /* No panel dimensions. */
518            0, 0, 0, 0, 0,             /* No panel registers   */
519            0x0480, 0x0480, 0x04C0, 0x0538, 0x05F0, 0x05F0,     /* horiz timings   */
520            0x0360, 0x0360, 0x0361, 0x0364, 0x037F, 0x037F,     /* vertical timings */
521            0, 0, 0, 0, 0, 0,          /* No even timings      */
522            (81L << 16) | ((6000L * 65536L) / 10000L),  /* freq = 81.60 MHz     */
523        }
524    ,
525
526    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
527            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
528            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
529            VG_SUPPORTFLAG_32BPP,
530            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
531            0,
532            1152, 864,                 /* No scaling.          */
533            0, 0,                      /* No mode dimensions.  */
534            0, 0,                      /* No panel dimensions. */
535            0, 0, 0, 0, 0,             /* No panel registers   */
536            0x0480, 0x0480, 0x04C8, 0x0540, 0x0600, 0x0600,     /* horiz timings   */
537            0x0360, 0x0360, 0x0368, 0x036B, 0x038B, 0x038B,     /* vertical timings */
538            0, 0, 0, 0, 0, 0,          /* No even timings      */
539            (97L << 16) | ((5200L * 65536L) / 10000L),  /* freq = 97.52 MHz     */
540        }
541    ,
542
543    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
544            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
545            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
546            VG_SUPPORTFLAG_32BPP,
547            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
548            0,
549            1152, 864,                 /* No scaling.          */
550            0, 0,                      /* No mode dimensions.  */
551            0, 0,                      /* No panel dimensions. */
552            0, 0, 0, 0, 0,             /* No panel registers   */
553            0x0480, 0x0480, 0x04C8, 0x0548, 0x0610, 0x0610,     /* horiz timings   */
554            0x0360, 0x0360, 0x0367, 0x036A, 0x038B, 0x038B,     /* vertical timings */
555            0, 0, 0, 0, 0, 0,          /* No even timings      */
556            (101L << 16) | ((4200L * 65536L) / 10000L), /* freq = 101.42 MHz    */
557        }
558    ,
559
560    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
561            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
562            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
563            VG_SUPPORTFLAG_32BPP,
564            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
565            0,
566            1152, 864,                 /* No scaling.          */
567            0, 0,                      /* No mode dimensions.  */
568            0, 0,                      /* No panel dimensions. */
569            0, 0, 0, 0, 0,             /* No panel registers   */
570            0x0480, 0x0480, 0x04C0, 0x0540, 0x0640, 0x0640,     /* horiz timings   */
571            0x0360, 0x0360, 0x0361, 0x0364, 0x0384, 0x0384,     /* vertical timings */
572            0, 0, 0, 0, 0, 0,          /* No even timings      */
573            (108L << 16) | ((0000L * 65536L) / 10000L), /* freq = 108.00 MHz    */
574        }
575    ,
576
577    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
578            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
579            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
580            VG_SUPPORTFLAG_32BPP,
581            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
582            0,
583            1152, 864,                 /* No scaling.          */
584            0, 0,                      /* No mode dimensions.  */
585            0, 0,                      /* No panel dimensions. */
586            0, 0, 0, 0, 0,             /* No panel registers   */
587            0x0480, 0x0480, 0x04C8, 0x0548, 0x0610, 0x0610,     /* horiz timings   */
588            0x0360, 0x0360, 0x0363, 0x0366, 0x038B, 0x038B,     /* vertical timings */
589            0, 0, 0, 0, 0, 0,          /* No even timings      */
590            (119L << 16) | ((6500L * 65536L) / 10000L), /* freq = 119.65 MHz    */
591        }
592    ,
593
594    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
595            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
596            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
597            VG_SUPPORTFLAG_32BPP,
598            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
599            0,
600            1152, 864,                 /* No scaling.          */
601            0, 0,                      /* No mode dimensions.  */
602            0, 0,                      /* No panel dimensions. */
603            0, 0, 0, 0, 0,             /* No panel registers   */
604            0x0480, 0x0480, 0x04D0, 0x0550, 0x0620, 0x0620,     /* horiz timings   */
605            0x0360, 0x0360, 0x0369, 0x036C, 0x0396, 0x0396,     /* vertical timings */
606            0, 0, 0, 0, 0, 0,          /* No even timings      */
607            (129L << 16) | ((6000L * 65536L) / 10000L), /* freq = 129.60 MHz    */
608        }
609    ,
610
611    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
612            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
613            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
614            VG_SUPPORTFLAG_32BPP,
615            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
616            0,
617            1152, 864,                 /* No scaling.          */
618            0, 0,                      /* No mode dimensions.  */
619            0, 0,                      /* No panel dimensions. */
620            0, 0, 0, 0, 0,             /* No panel registers   */
621            0x0480, 0x0480, 0x04D0, 0x0550, 0x0620, 0x0620,     /* horiz timings   */
622            0x0360, 0x0360, 0x0363, 0x0366, 0x0396, 0x0396,     /* vertical timings */
623            0, 0, 0, 0, 0, 0,          /* No even timings      */
624            (144L << 16) | ((0000L * 65536L) / 10000L), /* freq = 144.00 MHz    */
625        }
626    ,
627
628    /* 1152x864 PANEL */
629
630    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
631            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
632            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
633            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
634            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
635            1152, 864,                 /* No scaling.          */
636            1152, 864,                 /* 1152x864 active.     */
637            1152, 864,                 /* 1152x864 panel. */
638            0, 0, 0, 0, 0,             /* No panel registers   */
639            0x0480, 0x0480, 0x04C0, 0x0538, 0x05F0, 0x05F0,     /* horiz timings   */
640            0x0360, 0x0360, 0x0361, 0x0364, 0x037F, 0x037F,     /* vertical timings */
641            0, 0, 0, 0, 0, 0,          /* No even timings      */
642            (81L << 16) | ((6000L * 65536L) / 10000L),  /* freq = 81.60 MHz     */
643        }
644    ,
645
646    /* 1280x1024 */
647
648    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
649            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
650            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
651            VG_SUPPORTFLAG_32BPP,
652            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
653            0,
654            1280, 1024,                /* No scaling.          */
655            0, 0,                      /* No mode dimensions.  */
656            0, 0,                      /* No panel dimensions. */
657            0, 0, 0, 0, 0,             /* No panel registers   */
658            0x0500, 0x0500, 0x0530, 0x05A0, 0x0698, 0x0698,     /* horiz timings   */
659            0x0400, 0x0400, 0x0401, 0x0404, 0x042A, 0x042A,     /* vertical timings */
660            0, 0, 0, 0, 0, 0,          /* No even timings      */
661            (108L << 16) | ((0000L * 65536L) / 10000L), /* freq = 108.00 MHz    */
662        }
663    ,
664
665    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
666            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
667            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
668            VG_SUPPORTFLAG_32BPP,
669            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
670            0,
671            1280, 1024,                /* No scaling.          */
672            0, 0,                      /* No mode dimensions.  */
673            0, 0,                      /* No panel dimensions. */
674            0, 0, 0, 0, 0,             /* No panel registers   */
675            0x0500, 0x0500, 0x0558, 0x05E0, 0x06C0, 0x06C0,     /* horiz timings   */
676            0x0400, 0x0400, 0x0406, 0x0409, 0x042F, 0x042F,     /* vertical timings */
677            0, 0, 0, 0, 0, 0,          /* No even timings      */
678            (129L << 16) | ((6000L * 65536L) / 10000L), /* freq = 129.60 MHz    */
679        }
680    ,
681
682    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
683            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
684            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
685            VG_SUPPORTFLAG_32BPP,
686            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
687            0,
688            1280, 1024,                /* No scaling.          */
689            0, 0,                      /* No mode dimensions.  */
690            0, 0,                      /* No panel dimensions. */
691            0, 0, 0, 0, 0,             /* No panel registers   */
692            0x0500, 0x0500, 0x0558, 0x05E0, 0x06C0, 0x06C0,     /* horiz timings   */
693            0x0400, 0x0400, 0x0407, 0x040A, 0x0431, 0x0431,     /* vertical timings */
694            0, 0, 0, 0, 0, 0,          /* No even timings      */
695            (133L << 16) | ((5000L * 65536L) / 10000L), /* freq = 133.50 MHz    */
696        }
697    ,
698
699    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
700            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
701            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
702            VG_SUPPORTFLAG_32BPP,
703            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
704            0,
705            1280, 1024,                /* No scaling.          */
706            0, 0,                      /* No mode dimensions.  */
707            0, 0,                      /* No panel dimensions. */
708            0, 0, 0, 0, 0,             /* No panel registers   */
709            0x0500, 0x0500, 0x0510, 0x05A0, 0x0698, 0x0698,     /* horiz timings   */
710            0x0400, 0x0400, 0x0401, 0x0404, 0x042A, 0x042A,     /* vertical timings */
711            0, 0, 0, 0, 0, 0,          /* No even timings      */
712            (135L << 16) | ((0000L * 65536L) / 10000L), /* freq = 135.0 MHz     */
713        }
714    ,
715
716    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
717            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
718            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
719            VG_SUPPORTFLAG_32BPP,
720            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
721            0,
722            1280, 1024,                /* No scaling.          */
723            0, 0,                      /* No mode dimensions.  */
724            0, 0,                      /* No panel dimensions. */
725            0, 0, 0, 0, 0,             /* No panel registers   */
726            0x0500, 0x0500, 0x0540, 0x05E0, 0x06C0, 0x06C0,     /* horiz timings   */
727            0x0400, 0x0400, 0x0401, 0x0404, 0x0430, 0x0430,     /* vertical timings */
728            0, 0, 0, 0, 0, 0,          /* No even timings      */
729            (157L << 16) | ((5000L * 65536L) / 10000L), /* freq = 157.5 MHz     */
730        }
731    ,
732
733    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
734            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
735            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
736            VG_SUPPORTFLAG_32BPP,
737            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
738            0,
739            1280, 1024,                /* No scaling.          */
740            0, 0,                      /* No mode dimensions.  */
741            0, 0,                      /* No panel dimensions. */
742            0, 0, 0, 0, 0,             /* No panel registers   */
743            0x0500, 0x0500, 0x0560, 0x05F0, 0x06E0, 0x06E0,     /* horiz timings   */
744            0x0400, 0x0400, 0x040C, 0x040F, 0x0442, 0x0442,     /* vertical timings */
745            0, 0, 0, 0, 0, 0,          /* No even timings      */
746            (172L << 16) | ((8000L * 65536L) / 10000L), /* freq = 172.80 MHz    */
747        }
748    ,
749
750    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
751            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
752            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
753            VG_SUPPORTFLAG_32BPP,
754            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
755            0,
756            1280, 1024,                /* No scaling.          */
757            0, 0,                      /* No mode dimensions.  */
758            0, 0,                      /* No panel dimensions. */
759            0, 0, 0, 0, 0,             /* No panel registers   */
760            0x0500, 0x0500, 0x0560, 0x05F0, 0x06E0, 0x06E0,     /* horiz timings   */
761            0x0400, 0x0400, 0x0406, 0x0409, 0x0442, 0x0442,     /* vertical timings */
762            0, 0, 0, 0, 0, 0,          /* No even timings      */
763            (192L << 16) | ((0000L * 65536L) / 10000L), /* freq = 192.00 MHz    */
764        }
765    ,
766
767    /* 1280x1024 PANEL */
768
769    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
770            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
771            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
772            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
773            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
774            1280, 1024,                /* No scaling.          */
775            1280, 1024,                /* 1280x1024 active.    */
776            1280, 1024,                /* 1280x1024 panel      */
777            0, 0, 0, 0, 0,             /* No panel registers   */
778            0x0500, 0x0500, 0x0530, 0x05A0, 0x0698, 0x0698,     /* horiz timings   */
779            0x0400, 0x0400, 0x0401, 0x0404, 0x042A, 0x042A,     /* vertical timings */
780            0, 0, 0, 0, 0, 0,          /* No even timings      */
781            (108L << 16) | ((0000L * 65536L) / 10000L), /* freq = 108.00 MHz    */
782        }
783    ,
784
785    /* 1600 x 1200 */
786
787    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
788            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
789            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
790            VG_SUPPORTFLAG_32BPP,
791            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
792            0,
793            1600, 1200,                /* No scaling.          */
794            0, 0,                      /* No mode dimensions.  */
795            0, 0,                      /* No panel dimensions. */
796            0, 0, 0, 0, 0,             /* No panel registers   */
797            0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870,     /* horiz timings   */
798            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2,     /* vertical timings */
799            0, 0, 0, 0, 0, 0,          /* No even timings      */
800            (162L << 16) | ((0000L * 65536L) / 10000L), /* freq = 162.0 MHz     */
801        }
802    ,
803
804    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
805            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
806            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
807            VG_SUPPORTFLAG_32BPP,
808            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
809            0,
810            1600, 1200,                /* No scaling.          */
811            0, 0,                      /* No mode dimensions.  */
812            0, 0,                      /* No panel dimensions. */
813            0, 0, 0, 0, 0,             /* No panel registers   */
814            0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870,     /* horiz timings   */
815            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2,     /* vertical timings */
816            0, 0, 0, 0, 0, 0,          /* No even timings      */
817            (189L << 16) | ((0000L * 65536L) / 10000L), /* freq = 189.0 MHz     */
818        }
819    ,
820
821    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 72    */
822            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
823            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
824            VG_SUPPORTFLAG_32BPP,
825            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
826            0,
827            1600, 1200,                /* No scaling.          */
828            0, 0,                      /* No mode dimensions.  */
829            0, 0,                      /* No panel dimensions. */
830            0, 0, 0, 0, 0,             /* No panel registers   */
831            0x0640, 0x0640, 0x06B0, 0x0760, 0x0880, 0x0880,     /* horiz timings   */
832            0x04B0, 0x04B0, 0x04BD, 0x04C0, 0x04EF, 0x04EF,     /* vertical timings */
833            0, 0, 0, 0, 0, 0,          /* No even timings      */
834            (198L << 16) | ((0000L * 65536L) / 10000L), /* freq = 198.0 MHz     */
835        }
836    ,
837
838    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
839            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
840            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
841            VG_SUPPORTFLAG_32BPP,
842            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
843            0,
844            1600, 1200,                /* No scaling.          */
845            0, 0,                      /* No mode dimensions.  */
846            0, 0,                      /* No panel dimensions. */
847            0, 0, 0, 0, 0,             /* No panel registers   */
848            0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870,     /* horiz timings   */
849            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2,     /* vertical timings */
850            0, 0, 0, 0, 0, 0,          /* No even timings      */
851            (202L << 16) | ((5000L * 65536L) / 10000L), /* freq = 202.5 MHz     */
852        }
853    ,
854
855    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
856            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
857            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
858            VG_SUPPORTFLAG_32BPP,
859            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
860            0,
861            1600, 1200,                /* No scaling.          */
862            0, 0,                      /* No mode dimensions.  */
863            0, 0,                      /* No panel dimensions. */
864            0, 0, 0, 0, 0,             /* No panel registers   */
865            0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870,     /* horiz timings   */
866            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2,     /* vertical timings */
867            0, 0, 0, 0, 0, 0,          /* No even timings      */
868            (229L << 16) | ((5000L * 65536L) / 10000L), /* freq = 229.5 MHz     */
869        }
870    ,
871
872    {VG_SUPPORTFLAG_90HZ |             /* refresh rate = 90    */
873            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
874            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
875            VG_SUPPORTFLAG_32BPP,
876            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
877            0,
878            1600, 1200,                /* No scaling.          */
879            0, 0,                      /* No mode dimensions.  */
880            0, 0,                      /* No panel dimensions. */
881            0, 0, 0, 0, 0,             /* No panel registers   */
882            0x0640, 0x0640, 0x06C0, 0x0770, 0x08A0, 0x08A0,     /* horiz timings   */
883            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04F0, 0x04F0,     /* vertical timings */
884            0, 0, 0, 0, 0, 0,          /* No even timings      */
885            (251L << 16) | ((1820L * 65536L) / 10000L), /* freq = 251.182 MHz   */
886        }
887    ,
888
889    {VG_SUPPORTFLAG_100HZ |            /* refresh rate = 100   */
890            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
891            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
892            VG_SUPPORTFLAG_32BPP,
893            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
894            0,
895            1600, 1200,                /* No scaling.          */
896            0, 0,                      /* No mode dimensions.  */
897            0, 0,                      /* No panel dimensions. */
898            0, 0, 0, 0, 0,             /* No panel registers   */
899            0x0640, 0x0640, 0x06C0, 0x0770, 0x08A0, 0x08A0,     /* horiz timings   */
900            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04F7, 0x04F7,     /* vertical timings */
901            0, 0, 0, 0, 0, 0,          /* No even timings      */
902            (280L << 16) | ((6400L * 65536L) / 10000L), /* freq = 280.64 MHz    */
903        }
904    ,
905
906    /* 1600 x 1200  PANEL */
907
908    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
909            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PANEL,      /* Panel Mode.          */
910            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
911            VG_MODEFLAG_PANELOUT |     /* Panel output.        */
912            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC,      /* negative syncs */
913            1600, 1200,                /* No scaling.          */
914            1600, 1200,                /* 1600x1200 Active.    */
915            1600, 1200,                /* 1600x1200 Panel.     */
916            0, 0, 0, 0, 0,             /* No panel registers   */
917            0x0640, 0x0640, 0x0680, 0x0740, 0x0870, 0x0870,     /* horiz timings   */
918            0x04B0, 0x04B0, 0x04B1, 0x04B4, 0x04E2, 0x04E2,     /* vertical timings */
919            0, 0, 0, 0, 0, 0,          /* No even timings      */
920            (162L << 16) | ((0000L * 65536L) / 10000L), /* freq = 162.0 MHz     */
921        }
922    ,
923
924    /* 1920x1440 */
925
926    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
927            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
928            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
929            VG_SUPPORTFLAG_32BPP,
930            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
931            0,
932            1920, 1440,                /* No scaling.          */
933            0, 0,                      /* No mode dimensions.  */
934            0, 0,                      /* No panel dimensions. */
935            0, 0, 0, 0, 0,             /* No panel registers   */
936            0x0780, 0x0780, 0x0800, 0x08D0, 0x0A28, 0x0A28,     /* horiz timings   */
937            0x05A0, 0x05A0, 0x05A1, 0x05A4, 0x05DC, 0x05DC,     /* vertical timings */
938            0, 0, 0, 0, 0, 0,          /* No even timings      */
939            (234L << 16) | ((0000L * 65536L) / 10000L), /* freq = 234.0 MHz     */
940        }
941    ,
942
943    {VG_SUPPORTFLAG_70HZ |             /* refresh rate = 70    */
944            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
945            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
946            VG_SUPPORTFLAG_32BPP,
947            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
948            0,
949            1920, 1440,                /* No scaling.          */
950            0, 0,                      /* No mode dimensions.  */
951            0, 0,                      /* No panel dimensions. */
952            0, 0, 0, 0, 0,             /* No panel registers   */
953            0x0780, 0x0780, 0x0818, 0x08E8, 0x0A50, 0x0A50,     /* horiz timings   */
954            0x05A0, 0x05A0, 0x05A8, 0x05AB, 0x05E2, 0x05E2,     /* vertical timings */
955            0, 0, 0, 0, 0, 0,          /* No even timings      */
956            (278L << 16) | ((4000L * 65536L) / 10000L), /* freq = 278.4 MHz     */
957        }
958    ,
959
960    {VG_SUPPORTFLAG_72HZ |             /* refresh rate = 70    */
961            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
962            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
963            VG_SUPPORTFLAG_32BPP,
964            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
965            0,
966            1920, 1440,                /* No scaling.          */
967            0, 0,                      /* No mode dimensions.  */
968            0, 0,                      /* No panel dimensions. */
969            0, 0, 0, 0, 0,             /* No panel registers   */
970            0x0780, 0x0780, 0x0818, 0x08E8, 0x0A50, 0x0A50,     /* horiz timings   */
971            0x05A0, 0x05A0, 0x05A4, 0x05A7, 0x05EB, 0x05EB,     /* vertical timings */
972            0, 0, 0, 0, 0, 0,          /* No even timings      */
973            (288L << 16) | ((0000L * 65536L) / 10000L), /* freq = 288.0 MHz     */
974        }
975    ,
976
977    {VG_SUPPORTFLAG_75HZ |             /* refresh rate = 75    */
978            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
979            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
980            VG_SUPPORTFLAG_32BPP,
981            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
982            0,
983            1920, 1440,                /* No scaling.          */
984            0, 0,                      /* No mode dimensions.  */
985            0, 0,                      /* No panel dimensions. */
986            0, 0, 0, 0, 0,             /* No panel registers   */
987            0x0780, 0x0780, 0x0810, 0x08F0, 0x0A50, 0x0A50,     /* horiz timings   */
988            0x05A0, 0x05A0, 0x05A1, 0x05A4, 0x05DC, 0x05DC,     /* vertical timings */
989            0, 0, 0, 0, 0, 0,          /* No even timings      */
990            (297L << 16) | ((0000L * 65536L) / 10000L), /* freq = 297.0 MHz     */
991        }
992    ,
993
994    {VG_SUPPORTFLAG_85HZ |             /* refresh rate = 85    */
995            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP
996            | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP |
997            VG_SUPPORTFLAG_32BPP,
998            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
999            0,
1000            1920, 1440,                /* No scaling.          */
1001            0, 0,                      /* No mode dimensions.  */
1002            0, 0,                      /* No panel dimensions. */
1003            0, 0, 0, 0, 0,             /* No panel registers   */
1004            0x0780, 0x0780, 0x0818, 0x08F0, 0x0A60, 0x0A60,     /* horiz timings   */
1005            0x05A0, 0x05A0, 0x05A1, 0x05A4, 0x05E8, 0x05E8,     /* vertical timings */
1006            0, 0, 0, 0, 0, 0,          /* No even timings      */
1007            (341L << 16) | ((3490L * 65536L) / 10000L), /* freq = 341.35 MHz    */
1008        }
1009    ,
1010
1011/*-------------------------------*/
1012/*     PREDEFINED TV TIMINGS     */
1013/*-------------------------------*/
1014
1015    /* 720 x 480i NTSC */
1016
1017    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1018            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_NTSC |      /* NTSC Mode.           */
1019            VG_SUPPORTFLAG_ADV7171 | VG_SUPPORTFLAG_SAA7127 |
1020            VG_SUPPORTFLAG_ADV7300 | VG_SUPPORTFLAG_TVOUT,
1021            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1022            VG_MODEFLAG_INTERLACED | VG_MODEFLAG_TVOUT |        /* Interlaced TV output */
1023            VG_MODEFLAG_HALFCLOCK |    /* DotPLL = 1/2 VOP     */
1024            VG_MODEFLAG_INT_FLICKER,   /* Flicker Filter Out   */
1025            720, 480,                  /* No downscaling.      */
1026            0, 0,                      /* No mode dimensions.  */
1027            0, 0,                      /* No panel dimensions. */
1028            0, 0, 0, 0, 0,             /* No panel registers   */
1029            0x02D0, 0x02D0, 0x02E1, 0x0320, 0x035A, 0x035A,     /* horiz timings   */
1030            0x00F0, 0x00F0, 0x00F4, 0x00F8, 0x0107, 0x0107,     /* vertical timings */
1031            0x00F0, 0x00F0, 0x00F4, 0x00F8, 0x0106, 0x0106,     /*Even field timings */
1032            (27L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 27.0 MHz      */
1033        }
1034    ,
1035
1036    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1037            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_NTSC |      /* NTSC Mode.           */
1038            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1039            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1040            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1041            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* TFT Output. */
1042            640, 480,                  /* No downscaling.      */
1043            640, 480,                  /* 640x480 active.      */
1044            640, 480,                  /* 640x480 panel.       */
1045            0, 0, 0, 0, 0,             /* No panel registers   */
1046            0x0280, 0x0280, 0x0333, 0x0373, 0x03A8, 0x03A8,     /* horiz timings   */
1047            0x01E0, 0x01E0, 0x01F5, 0x01F7, 0x020D, 0x020D,     /* vertical timings */
1048            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1049            (25L << 16) | ((1750L * 65536L) / 10000L),  /* freq = 25.175 MHz    */
1050        }
1051    ,
1052
1053    /* 800 x 600 NTSC */
1054
1055    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1056            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_8X6_NTSC |  /* 800x600 NTSC.        */
1057            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1058            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1059            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1060            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1061            800, 600,                  /* No downscaling.      */
1062            800, 600,                  /* 800x600 active.      */
1063            800, 600,                  /* 800x600 active.      */
1064            0, 0, 0, 0, 0,             /* No panel registers   */
1065            0x0320, 0x0320, 0x03A7, 0x03E7, 0x03F0, 0x03F0,     /* horiz timings   */
1066            0x0258, 0x0258, 0x026A, 0x0272, 0x028A, 0x028A,     /* vertical timings */
1067            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1068            (40L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 40.000 MHz    */
1069        }
1070    ,
1071
1072    /* 1024 x 768 NTSC */
1073
1074    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1075            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_10X7_NTSC | /* 1024x768 NTSC.       */
1076            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1077            VG_MODEFLAG_AVG_BAND |     /* Low bandwidth mode.  */
1078            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1079            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1080            1024, 768,                 /* No downscaling.      */
1081            1024, 768,                 /* 1024x768 active.     */
1082            1024, 768,                 /* 1024x768 active.     */
1083            0, 0, 0, 0, 0,             /* No panel registers   */
1084            0x0400, 0x0400, 0x0490, 0x04D0, 0x04E0, 0x04E0,     /* horiz timings   */
1085            0x0300, 0x0300, 0x031B, 0x031D, 0x0339, 0x0339,     /* vertical timings */
1086            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1087            (65L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 65.00 MHz     */
1088        }
1089    ,
1090
1091    /* 720 x 576i PAL */
1092
1093    {VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PAL |      /* PAL Mode.            */
1094            VG_SUPPORTFLAG_ADV7171 | VG_SUPPORTFLAG_SAA7127 | VG_SUPPORTFLAG_ADV7300 | VG_SUPPORTFLAG_TVOUT,    /* TV Mode.             */
1095            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1096            VG_MODEFLAG_TVOUT | VG_MODEFLAG_INTERLACED |        /* Interlaced TV out. */
1097            VG_MODEFLAG_HALFCLOCK |    /* DotPLL = 1/2 VOP     */
1098            VG_MODEFLAG_INT_FLICKER,   /* Flicker Filter Out   */
1099            720, 576,                  /* No downscaling.      */
1100            0, 0,                      /* No mode dimensions.  */
1101            0, 0,                      /* No panel dimensions. */
1102            0, 0, 0, 0, 0,             /* No panel registers   */
1103            0x02D0, 0x02D0, 0x02E4, 0x0324, 0x0360, 0x0360,     /* horiz timings   */
1104            0x0120, 0x0120, 0x0123, 0x0127, 0x0139, 0x0139,     /* vertical timings */
1105            0x0120, 0x0120, 0x0123, 0x0127, 0x0138, 0x0138,     /* Even timings */
1106            (27L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 27.0 MHz      */
1107        }
1108    ,
1109
1110    {VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_PAL |      /* PAL Mode.            */
1111            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1112            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1113            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1114            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1115            640, 480,                  /* No downscaling.      */
1116            640, 480,                  /* No mode dimensions.  */
1117            640, 480,                  /* 640x480 active.      */
1118            0, 0, 0, 0, 0,             /* 640x480 panel.       */
1119            0x0280, 0x0280, 0x030F, 0x034F, 0x0360, 0x0360,     /* horiz timings   */
1120            0x01E0, 0x01E0, 0x01F5, 0x01F7, 0x020D, 0x020D,     /* vertical timings */
1121            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1122            (25L << 16) | ((1750L * 65536L) / 10000L),  /* freq = 25.175 MHz    */
1123        }
1124    ,
1125
1126    /* 800 x 600 PAL */
1127
1128    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1129            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_8X6_PAL |   /* 800x600 PAL.         */
1130            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1131            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1132            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1133            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1134            800, 600,                  /* No downscaling.      */
1135            800, 600,                  /* 800x600 active.      */
1136            800, 600,                  /* 800x600 active.      */
1137            0, 0, 0, 0, 0,             /* No panel registers   */
1138            0x0320, 0x0320, 0x03A7, 0x03E7, 0x03F0, 0x03F0,     /* horiz timings   */
1139            0x0258, 0x0258, 0x0270, 0x0272, 0x028A, 0x028A,     /* vertical timings */
1140            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1141            (40L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 40.000 MHz    */
1142        }
1143    ,
1144
1145    /* 1024 x 768 PAL */
1146
1147    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1148            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_10X7_PAL |  /* 1024x768 NTSC.       */
1149            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1150            VG_MODEFLAG_AVG_BAND |     /* Low bandwidth mode.  */
1151            VG_MODEFLAG_NEG_HSYNC | VG_MODEFLAG_NEG_VSYNC |     /* negative syncs */
1152            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1153            1024, 768,                 /* No downscaling.      */
1154            1024, 768,                 /* 1024x768 active.     */
1155            1024, 768,                 /* 1024x768 active.     */
1156            0, 0, 0, 0, 0,             /* No panel registers   */
1157            0x0400, 0x0400, 0x0490, 0x04d0, 0x04e0, 0x04e0,     /* horiz timings   */
1158            0x0300, 0x0300, 0x031b, 0x031d, 0x0339, 0x0339,     /* vertical timings */
1159            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1160            (65L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 65.00 MHz     */
1161        }
1162    ,
1163
1164    /* 720 x 480p HDTV */
1165
1166    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1167            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_480P |      /* 720x480P.            */
1168            VG_SUPPORTFLAG_ADV7300 | VG_SUPPORTFLAG_TVOUT,      /* TV Mode. */
1169            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1170            VG_MODEFLAG_TVOUT,         /* Progressive TV out.  */
1171            720, 480,                  /* No scaling.          */
1172            0, 0,                      /* No mode dimensions.  */
1173            0, 0,                      /* No panel dimensions. */
1174            0, 0, 0, 0, 0,             /* No panel registers   */
1175            0x02D0, 0x02D0, 0x02E0, 0x0328, 0x035A, 0x035A,     /* horiz timings   */
1176            0x01E0, 0x01E0, 0x01E1, 0x01E3, 0x020D, 0x020D,     /* vertical timings */
1177            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1178            (27L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 27.0 MHz      */
1179        }
1180    ,
1181
1182    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1183            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_480P |      /* 720x480P.            */
1184            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1185            VG_MODEFLAG_LOW_BAND |     /* Low bandwidth mode.  */
1186            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1187            720, 480,                  /* No scaling.          */
1188            720, 480,                  /* 720x480 active.      */
1189            720, 480,                  /* 720x480 panel.       */
1190            0, 0, 0, 0, 0,             /* No panel registers   */
1191            0x02D0, 0x02D0, 0x02E3, 0x0323, 0x035A, 0x035A,     /* horiz timings   */
1192            0x01E0, 0x01E0, 0x01E4, 0x01EA, 0x020D, 0x020D,     /* vertical timings */
1193            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1194            (27L << 16) | ((0000L * 65536L) / 10000L),  /* freq = 27.0 MHz      */
1195        }
1196    ,
1197
1198    /* 1280x720p HDTV */
1199
1200    {VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_720P |     /* 1280x720P            */
1201            VG_SUPPORTFLAG_ADV7300 | VG_SUPPORTFLAG_TVOUT,      /* TV Mode. */
1202            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
1203            VG_MODEFLAG_TVOUT,         /* Progressive TV out   */
1204            1280, 720,                 /* No scaling.          */
1205            0, 0,                      /* No mode dimensions.  */
1206            0, 0,                      /* No panel dimensions. */
1207            0, 0, 0, 0, 0,             /* No panel registers   */
1208            0x0500, 0x0500, 0x0546, 0x0596, 0x0672, 0x0672,     /* horiz timings   */
1209            0x02D0, 0x02D0, 0x02D3, 0x02D8, 0x02EE, 0x02EE,     /* vertical timings */
1210            0, 0, 0, 0, 0, 0,          /* even timings         */
1211            (74L << 16) | ((2500L * 65536L) / 10000L),  /* freq = 74.25 MHz     */
1212        }
1213    ,
1214
1215    {VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_720P |     /* 1280x720P            */
1216            VG_SUPPORTFLAG_FS454 | VG_SUPPORTFLAG_TVOUT,        /* TV Mode. */
1217            VG_MODEFLAG_AVG_BAND |     /* Avg bandwidth mode.  */
1218            VG_MODEFLAG_PANELOUT | VG_MODEFLAG_INVERT_SHFCLK,   /* Panel output */
1219            1280, 720,                 /* No scaling.          */
1220            1280, 720,                 /* 1280x720 active.     */
1221            1280, 720,                 /* 1280x720 panel.      */
1222            0, 0, 0, 0, 0,             /* No panel registers   */
1223            0x0500, 0x0500, 0x0547, 0x0597, 0x0672, 0x0672,     /* horiz timings   */
1224            0x02D0, 0x02D0, 0x02D4, 0x02D9, 0x02EE, 0x02EE,     /* vertical timings */
1225            0, 0, 0, 0, 0, 0,          /* No even timings.     */
1226            (74L << 16) | ((2500L * 65536L) / 10000L),  /* freq = 74.25 MHz     */
1227        }
1228    ,
1229
1230    /* 1920x1080i HDTV */
1231
1232    {VG_SUPPORTFLAG_60HZ |             /* refresh rate = 60    */
1233            VG_SUPPORTFLAG_8BPP | VG_SUPPORTFLAG_12BPP | VG_SUPPORTFLAG_15BPP | VG_SUPPORTFLAG_16BPP | VG_SUPPORTFLAG_24BPP | VG_SUPPORTFLAG_32BPP | VG_SUPPORTFLAG_1080I |     /* 1920x1080i Mode.     */
1234            VG_SUPPORTFLAG_ADV7300 | VG_SUPPORTFLAG_FS454 |
1235            VG_SUPPORTFLAG_TVOUT,
1236            VG_MODEFLAG_HIGH_BAND |    /* High bandwidth mode. */
1237            VG_MODEFLAG_INTERLACED | VG_MODEFLAG_TVOUT |        /* Interlaced TV out */
1238            /* Interlaced addressing */
1239            VG_MODEFLAG_INT_ADDRESS | VG_MODEFLAG_INVERT_SHFCLK,
1240            1920, 1080,                /* 2:1 downscaling.     */
1241            0, 0,                      /* No mode dimensions.  */
1242            0, 0,                      /* No panel dimensions. */
1243            0, 0, 0, 0, 0,             /* No panel registers   */
1244            0x0780, 0x0780, 0x07AD, 0x0805, 0x0898, 0x0898,     /* horiz timings   */
1245            0x021C, 0x021C, 0x021E, 0x0226, 0x0233, 0x0233,     /* vertical timings */
1246            0x021C, 0x021C, 0x021E, 0x0226, 0x0232, 0x0232,     /*even field timings */
1247            (74L << 16) | ((2500L * 65536L) / 10000L),  /* freq = 74.25 MHz     */
1248        }
1249    ,
1250};
1251
1252#define NUM_CIMARRON_DISPLAY_MODES sizeof(CimarronDisplayModes) / \
1253									sizeof(VG_DISPLAY_MODE)
1254
1255/*-----------------------------------*/
1256/*  PREDEFINED PLL FREQUENCIES       */
1257/*-----------------------------------*/
1258
1259static const PLL_FREQUENCY CimarronPLLFrequencies[] = {
1260    {0x000031AC, (24L << 16) | ((9230L * 65536L) / 10000L)}
1261    ,                                  /* 24.9230, - 4,27,13 */
1262    {0x0000215D, (25L << 16) | ((1750L * 65536L) / 10000L)}
1263    ,                                  /* 25.1750, - 3,22,14 */
1264    {0x00001087, (27L << 16) | ((0000L * 65536L) / 10000L)}
1265    ,                                  /* 27.0000, - 2, 9, 8 */
1266    {0x0000216C, (28L << 16) | ((3220L * 65536L) / 10000L)}
1267    ,                                  /* 28.3220, - 3,23,13 */
1268    {0x0000218D, (28L << 16) | ((5600L * 65536L) / 10000L)}
1269    ,                                  /* 28.5600, - 3,25,14 */
1270    {0x000010C9, (31L << 16) | ((2000L * 65536L) / 10000L)}
1271    ,                                  /* 31.2000, - 2,13,10 */
1272    {0x00003147, (31L << 16) | ((5000L * 65536L) / 10000L)}
1273    ,                                  /* 31.5000, - 4,21, 8 */
1274    {0x000010A7, (33L << 16) | ((320L * 65536L) / 10000L)}
1275    ,                                  /* 33.0320, - 2,11, 8 */
1276    {0x00002159, (35L << 16) | ((1120L * 65536L) / 10000L)}
1277    ,                                  /* 35.1120, - 3,22,10 */
1278    {0x00004249, (35L << 16) | ((5000L * 65536L) / 10000L)}
1279    ,                                  /* 35.5000, - 5,37,10 */
1280    {0x00000057, (36L << 16) | ((0000L * 65536L) / 10000L)}
1281    ,                                  /* 36.0000, - 1, 6, 8 */
1282    {0x0000219A, (37L << 16) | ((8890L * 65536L) / 10000L)}
1283    ,                                  /* 37.8890, - 3,26,11 */
1284    {0x00002158, (39L << 16) | ((1680L * 65536L) / 10000L)}
1285    ,                                  /* 39.1680, - 3,22, 9 */
1286    {0x00000045, (40L << 16) | ((0000L * 65536L) / 10000L)}
1287    ,                                  /* 40.0000, - 1, 5, 6 */
1288    {0x00000089, (43L << 16) | ((1630L * 65536L) / 10000L)}
1289    ,                                  /* 43.1630, - 1, 9,10 */
1290    {0x000010E7, (44L << 16) | ((9000L * 65536L) / 10000L)}
1291    ,                                  /* 44.9000, - 2,15, 8 */
1292    {0x00002136, (45L << 16) | ((7200L * 65536L) / 10000L)}
1293    ,                                  /* 45.7200, - 3,20, 7 */
1294    {0x00003207, (49L << 16) | ((5000L * 65536L) / 10000L)}
1295    ,                                  /* 49.5000, - 4,33, 8 */
1296    {0x00002187, (50L << 16) | ((0000L * 65536L) / 10000L)}
1297    ,                                  /* 50.0000, - 3,25, 8 */
1298    {0x00004286, (56L << 16) | ((2500L * 65536L) / 10000L)}
1299    ,                                  /* 56.2500, - 5,41, 7 */
1300    {0x000010E5, (60L << 16) | ((650L * 65536L) / 10000L)}
1301    ,                                  /* 60.0650, - 2,15, 6 */
1302    {0x00004214, (65L << 16) | ((0000L * 65536L) / 10000L)}
1303    ,                                  /* 65.0000, - 5,34, 5 */
1304    {0x00001105, (68L << 16) | ((1790L * 65536L) / 10000L)}
1305    ,                                  /* 68.1790, - 2,17, 6 */
1306    {0x000031E4, (74L << 16) | ((2500L * 65536L) / 10000L)}
1307    ,                                  /* 74.2500, - 4,31, 5 */
1308    {0x00003183, (75L << 16) | ((0000L * 65536L) / 10000L)}
1309    ,                                  /* 75.0000, - 4,25, 4 */
1310    {0x00004284, (78L << 16) | ((7500L * 65536L) / 10000L)}
1311    ,                                  /* 78.7500, - 5,41, 5 */
1312    {0x00001104, (81L << 16) | ((6000L * 65536L) / 10000L)}
1313    ,                                  /* 81.6000, - 2,17, 5 */
1314    {0x00006363, (94L << 16) | ((5000L * 65536L) / 10000L)}
1315    ,                                  /* 94.5000, - 7,55, 4 */
1316    {0x00005303, (97L << 16) | ((5200L * 65536L) / 10000L)}
1317    ,                                  /* 97.5200, - 6,49, 4 */
1318    {0x00002183, (100L << 16) | ((1870L * 65536L) / 10000L)}
1319    ,                                  /* 100.187, - 3,25, 4 */
1320    {0x00002122, (101L << 16) | ((4200L * 65536L) / 10000L)}
1321    ,                                  /* 101.420, - 3,19, 3 */
1322    {0x00001081, (108L << 16) | ((0000L * 65536L) / 10000L)}
1323    ,                                  /* 108.00,  - 2, 9, 2 */
1324    {0x00006201, (113L << 16) | ((3100L * 65536L) / 10000L)}
1325    ,                                  /* 113.31,  - 7,33, 2 */
1326    {0x00000041, (119L << 16) | ((6500L * 65536L) / 10000L)}
1327    ,                                  /* 119.65,  - 1, 5, 2 */
1328    {0x000041A1, (129L << 16) | ((6000L * 65536L) / 10000L)}
1329    ,                                  /* 129.60,  - 5,27, 2 */
1330    {0x00002182, (133L << 16) | ((5000L * 65536L) / 10000L)}
1331    ,                                  /* 133.50,  - 3,25, 3 */
1332    {0x000041B1, (135L << 16) | ((0000L * 65536L) / 10000L)}
1333    ,                                  /* 135.00,  - 5,28, 2 */
1334    {0x00000051, (144L << 16) | ((0000L * 65536L) / 10000L)}
1335    ,                                  /* 144.00,  - 1, 6, 2 */
1336    {0x000041E1, (148L << 16) | ((5000L * 65536L) / 10000L)}
1337    ,                                  /* 148.50,  - 5,31, 2 */
1338    {0x000062D1, (157L << 16) | ((5000L * 65536L) / 10000L)}
1339    ,                                  /* 157.50,  - 7,46, 2 */
1340    {0x000031A1, (162L << 16) | ((0000L * 65536L) / 10000L)}
1341    ,                                  /* 162.00,  - 4,27, 2 */
1342    {0x00000061, (169L << 16) | ((2030L * 65536L) / 10000L)}
1343    ,                                  /* 169.203, - 1, 7, 2 */
1344    {0x00004231, (172L << 16) | ((8000L * 65536L) / 10000L)}
1345    ,                                  /* 172.800, - 5,36, 2 */
1346    {0x00002151, (175L << 16) | ((5000L * 65536L) / 10000L)}
1347    ,                                  /* 175.50,  - 3,22, 2 */
1348    {0x000052E1, (189L << 16) | ((0000L * 65536L) / 10000L)}
1349    ,                                  /* 189.00,  - 6,47, 2 */
1350    {0x00000071, (192L << 16) | ((0000L * 65536L) / 10000L)}
1351    ,                                  /* 192.00,  - 1, 8, 2 */
1352    {0x00003201, (198L << 16) | ((0000L * 65536L) / 10000L)}
1353    ,                                  /* 198.00,  - 4,33, 2 */
1354    {0x00004291, (202L << 16) | ((5000L * 65536L) / 10000L)}
1355    ,                                  /* 202.50,  - 5,42, 2 */
1356    {0x00001101, (204L << 16) | ((7500L * 65536L) / 10000L)}
1357    ,                                  /* 204.75,  - 2,17, 2 */
1358    {0x00007481, (218L << 16) | ((2500L * 65536L) / 10000L)}
1359    ,                                  /* 218.25,  - 8,73, 2 */
1360    {0x00004170, (229L << 16) | ((5000L * 65536L) / 10000L)}
1361    ,                                  /* 229.50,  - 5,24, 1 */
1362    {0x00006210, (234L << 16) | ((0000L * 65536L) / 10000L)}
1363    ,                                  /* 234.00,  - 7,34, 1 */
1364    {0x00003140, (251L << 16) | ((1820L * 65536L) / 10000L)}
1365    ,                                  /* 251.182, - 4,21, 1 */
1366    {0x00006250, (261L << 16) | ((0000L * 65536L) / 10000L)}
1367    ,                                  /* 261.00,  - 7,38, 1 */
1368    {0x000041C0, (278L << 16) | ((4000L * 65536L) / 10000L)}
1369    ,                                  /* 278.40,  - 5,29, 1 */
1370    {0x00005220, (280L << 16) | ((6400L * 65536L) / 10000L)}
1371    ,                                  /* 280.64,  - 6,35, 1 */
1372    {0x00000050, (288L << 16) | ((0000L * 65536L) / 10000L)}
1373    ,                                  /* 288.00,  - 1, 6, 1 */
1374    {0x000041E0, (297L << 16) | ((0000L * 65536L) / 10000L)}
1375    ,                                  /* 297.00,  - 5,31, 1 */
1376    {0x00002130, (320L << 16) | ((2070L * 65536L) / 10000L)}
1377    ,                                  /* 320.207, - 3,20, 1 */
1378    {0x00006310, (341L << 16) | ((3490L * 65536L) / 10000L)}
1379    /* 341.349, - 7,50, 1 */
1380};
1381
1382#define NUM_CIMARRON_PLL_FREQUENCIES sizeof(CimarronPLLFrequencies) / \
1383										sizeof(PLL_FREQUENCY)
1384
1385/*-----------------------------------*/
1386/*  PREDEFINED FILTER COEFFICIENTS   */
1387/*-----------------------------------*/
1388
1389static const unsigned long CimarronHorizontalGraphicsFilter[][2] = {
1390    {0x1284A7D5, 0x000017D5},          /*  -43,  297,  296,  -43,    5  */
1391    {0x12A497D7, 0x000013D6},          /*  -41,  293,  298,  -42,    4  */
1392    {0x12D48BD7, 0x000013D6},          /*  -41,  290,  301,  -42,    4  */
1393    {0x13147FD7, 0x000013D5},          /*  -41,  287,  305,  -43,    4  */
1394    {0x133473D8, 0x000013D5},          /*  -40,  284,  307,  -43,    4  */
1395    {0x136467D8, 0x000013D5},          /*  -40,  281,  310,  -43,    4  */
1396    {0x13945FD8, 0x000013D4},          /*  -40,  279,  313,  -44,    4  */
1397    {0x13B453D9, 0x000013D4},          /*  -39,  276,  315,  -44,    4  */
1398    {0x13E447D9, 0x000013D4},          /*  -39,  273,  318,  -44,    4  */
1399    {0x14143BDA, 0x000013D3},          /*  -38,  270,  321,  -45,    4  */
1400    {0x143433DA, 0x000013D3},          /*  -38,  268,  323,  -45,    4  */
1401    {0x146427DA, 0x000013D3},          /*  -38,  265,  326,  -45,    4  */
1402    {0x14941BDB, 0x000013D2},          /*  -37,  262,  329,  -46,    4  */
1403    {0x14C40FDB, 0x000013D2},          /*  -37,  259,  332,  -46,    4  */
1404    {0x14F407DA, 0x000017D1},          /*  -38,  257,  335,  -47,    5  */
1405    {0x1503FBDC, 0x000013D2},          /*  -36,  254,  336,  -46,    4  */
1406    {0x1543F3DB, 0x000017D0},          /*  -37,  252,  340,  -48,    5  */
1407    {0x1563E3DD, 0x000013D1},          /*  -35,  248,  342,  -47,    4  */
1408    {0x1593D7DD, 0x000013D1},          /*  -35,  245,  345,  -47,    4  */
1409    {0x15B3CFDD, 0x000013D1},          /*  -35,  243,  347,  -47,    4  */
1410    {0x15E3C3DE, 0x000013D0},          /*  -34,  240,  350,  -48,    4  */
1411    {0x1613B7DE, 0x000013D0},          /*  -34,  237,  353,  -48,    4  */
1412    {0x1633ABDF, 0x000013D0},          /*  -33,  234,  355,  -48,    4  */
1413    {0x16639FDF, 0x000013D0},          /*  -33,  231,  358,  -48,    4  */
1414    {0x167397E0, 0x000013D0},          /*  -32,  229,  359,  -48,    4  */
1415    {0x16B38BE0, 0x000013CF},          /*  -32,  226,  363,  -49,    4  */
1416    {0x16E383DF, 0x000017CE},          /*  -33,  224,  366,  -50,    5  */
1417    {0x170373E1, 0x000013CF},          /*  -31,  220,  368,  -49,    4  */
1418    {0x17236BE1, 0x000013CF},          /*  -31,  218,  370,  -49,    4  */
1419    {0x17435FE2, 0x000013CF},          /*  -30,  215,  372,  -49,    4  */
1420    {0x177353E2, 0x000013CF},          /*  -30,  212,  375,  -49,    4  */
1421    {0x17B34BE1, 0x000017CD},          /*  -31,  210,  379,  -51,    5  */
1422    {0x17C33FE3, 0x000013CE},          /*  -29,  207,  380,  -50,    4  */
1423    {0x17F333E3, 0x000013CE},          /*  -29,  204,  383,  -50,    4  */
1424    {0x181327E4, 0x000013CE},          /*  -28,  201,  385,  -50,    4  */
1425    {0x18431FE3, 0x000017CD},          /*  -29,  199,  388,  -51,    5  */
1426    {0x186313E4, 0x000013CE},          /*  -28,  196,  390,  -50,    4  */
1427    {0x188307E5, 0x000013CE},          /*  -27,  193,  392,  -50,    4  */
1428    {0x18B2FBE5, 0x000013CE},          /*  -27,  190,  395,  -50,    4  */
1429    {0x18C2F3E6, 0x000013CE},          /*  -26,  188,  396,  -50,    4  */
1430    {0x18F2E7E6, 0x000013CE},          /*  -26,  185,  399,  -50,    4  */
1431    {0x1912DBE7, 0x000013CE},          /*  -25,  182,  401,  -50,    4  */
1432    {0x1952D3E6, 0x000017CC},          /*  -26,  180,  405,  -52,    5  */
1433    {0x1972CBE6, 0x000017CC},          /*  -26,  178,  407,  -52,    5  */
1434    {0x1992BFE7, 0x000017CC},          /*  -25,  175,  409,  -52,    5  */
1435    {0x19C2B3E7, 0x000017CC},          /*  -25,  172,  412,  -52,    5  */
1436    {0x19D2A7E9, 0x000013CD},          /*  -23,  169,  413,  -51,    4  */
1437    {0x1A029FE8, 0x000017CC},          /*  -24,  167,  416,  -52,    5  */
1438    {0x1A1293E9, 0x000013CE},          /*  -23,  164,  417,  -50,    4  */
1439    {0x1A3287EA, 0x000013CE},          /*  -22,  161,  419,  -50,    4  */
1440    {0x1A627FE9, 0x000017CD},          /*  -23,  159,  422,  -51,    5  */
1441    {0x1A7273EB, 0x000013CE},          /*  -21,  156,  423,  -50,    4  */
1442    {0x1AA267EB, 0x000013CE},          /*  -21,  153,  426,  -50,    4  */
1443    {0x1AC25FEB, 0x000013CE},          /*  -21,  151,  428,  -50,    4  */
1444    {0x1AE253EC, 0x000013CE},          /*  -20,  148,  430,  -50,    4  */
1445    {0x1B124BEB, 0x000017CD},          /*  -21,  146,  433,  -51,    5  */
1446    {0x1B223FED, 0x000013CE},          /*  -19,  143,  434,  -50,    4  */
1447    {0x1B5237EC, 0x000017CD},          /*  -20,  141,  437,  -51,    5  */
1448    {0x1B622BED, 0x000013CF},          /*  -19,  138,  438,  -49,    4  */
1449    {0x1B821FEE, 0x000013CF},          /*  -18,  135,  440,  -49,    4  */
1450    {0x1BA217EE, 0x000013CF},          /*  -18,  133,  442,  -49,    4  */
1451    {0x1BC20BEF, 0x000013CF},          /*  -17,  130,  444,  -49,    4  */
1452    {0x1BE203EF, 0x000013CF},          /*  -17,  128,  446,  -49,    4  */
1453    {0x1C01FBEE, 0x000017CF},          /*  -18,  126,  448,  -49,    5  */
1454    {0x1C11EFF0, 0x000013D0},          /*  -16,  123,  449,  -48,    4  */
1455    {0x1C41E7EF, 0x000017CF},          /*  -17,  121,  452,  -49,    5  */
1456    {0x1C61DFEF, 0x000017CF},          /*  -17,  119,  454,  -49,    5  */
1457    {0x1C61D3F1, 0x000013D1},          /*  -15,  116,  454,  -47,    4  */
1458    {0x1C91CBF0, 0x000017D0},          /*  -16,  114,  457,  -48,    5  */
1459    {0x1CA1BFF2, 0x000013D1},          /*  -14,  111,  458,  -47,    4  */
1460    {0x1CC1B3F2, 0x000013D2},          /*  -14,  108,  460,  -46,    4  */
1461    {0x1CE1AFF1, 0x000017D1},          /*  -15,  107,  462,  -47,    5  */
1462    {0x1CF1A3F3, 0x000013D2},          /*  -13,  104,  463,  -46,    4  */
1463    {0x1D1197F3, 0x000013D3},          /*  -13,  101,  465,  -45,    4  */
1464    {0x1D3197F2, 0x000013D2},          /*  -14,  101,  467,  -46,    4  */
1465    {0x1D518BF3, 0x000013D2},          /*  -13,   98,  469,  -46,    4  */
1466    {0x1D6183F3, 0x000013D3},          /*  -13,   96,  470,  -45,    4  */
1467    {0x1D817BF3, 0x000013D3},          /*  -13,   94,  472,  -45,    4  */
1468    {0x1D916FF4, 0x000013D4},          /*  -12,   91,  473,  -44,    4  */
1469    {0x1DB167F4, 0x000013D4},          /*  -12,   89,  475,  -44,    4  */
1470    {0x1DC15FF4, 0x000013D5},          /*  -12,   87,  476,  -43,    4  */
1471    {0x1DE153F5, 0x000013D5},          /*  -11,   84,  478,  -43,    4  */
1472    {0x1DF14BF5, 0x000013D6},          /*  -11,   82,  479,  -42,    4  */
1473    {0x1E1143F5, 0x000013D6},          /*  -11,   80,  481,  -42,    4  */
1474    {0x1E1137F7, 0x00000FD8},          /*   -9,   77,  481,  -40,    3  */
1475    {0x1E3133F6, 0x000013D7},          /*  -10,   76,  483,  -41,    4  */
1476    {0x1E412BF6, 0x000013D8},          /*  -10,   74,  484,  -40,    4  */
1477    {0x1E611FF7, 0x000013D8},          /*   -9,   71,  486,  -40,    4  */
1478    {0x1E7117F7, 0x000013D9},          /*   -9,   69,  487,  -39,    4  */
1479    {0x1E810FF7, 0x000013DA},          /*   -9,   67,  488,  -38,    4  */
1480    {0x1E9107F8, 0x000013DA},          /*   -8,   65,  489,  -38,    4  */
1481    {0x1EA0FFF8, 0x000013DB},          /*   -8,   63,  490,  -37,    4  */
1482    {0x1EB0F3F9, 0x00000FDD},          /*   -7,   60,  491,  -35,    3  */
1483    {0x1ED0EFF8, 0x000013DC},          /*   -8,   59,  493,  -36,    4  */
1484    {0x1EE0E7F9, 0x00000FDD},          /*   -7,   57,  494,  -35,    3  */
1485    {0x1EF0DFF9, 0x00000FDE},          /*   -7,   55,  495,  -34,    3  */
1486    {0x1F00D7F9, 0x00000FDF},          /*   -7,   53,  496,  -33,    3  */
1487    {0x1F10CFFA, 0x00000FDF},          /*   -6,   51,  497,  -33,    3  */
1488    {0x1F20C7FA, 0x00000FE0},          /*   -6,   49,  498,  -32,    3  */
1489    {0x1F20C3FA, 0x00000FE1},          /*   -6,   48,  498,  -31,    3  */
1490    {0x1F30BBFA, 0x00000FE2},          /*   -6,   46,  499,  -30,    3  */
1491    {0x1F40AFFB, 0x00000FE3},          /*   -5,   43,  500,  -29,    3  */
1492    {0x1F50A7FB, 0x00000FE4},          /*   -5,   41,  501,  -28,    3  */
1493    {0x1F60A3FB, 0x00000FE4},          /*   -5,   40,  502,  -28,    3  */
1494    {0x1F709BFB, 0x00000FE5},          /*   -5,   38,  503,  -27,    3  */
1495    {0x1F7093FC, 0x00000FE6},          /*   -4,   36,  503,  -26,    3  */
1496    {0x1F808FFC, 0x00000BE7},          /*   -4,   35,  504,  -25,    2  */
1497    {0x1F9087FC, 0x00000BE8},          /*   -4,   33,  505,  -24,    2  */
1498    {0x1F9083FC, 0x00000BE9},          /*   -4,   32,  505,  -23,    2  */
1499    {0x1FA077FD, 0x00000BEA},          /*   -3,   29,  506,  -22,    2  */
1500    {0x1FA073FD, 0x00000BEB},          /*   -3,   28,  506,  -21,    2  */
1501    {0x1FB06BFD, 0x00000BEC},          /*   -3,   26,  507,  -20,    2  */
1502    {0x1FC063FD, 0x00000BED},          /*   -3,   24,  508,  -19,    2  */
1503    {0x1FC05BFE, 0x00000BEE},          /*   -2,   22,  508,  -18,    2  */
1504    {0x1FC057FE, 0x00000BEF},          /*   -2,   21,  508,  -17,    2  */
1505    {0x1FD053FE, 0x000007F0},          /*   -2,   20,  509,  -16,    1  */
1506    {0x1FD04BFE, 0x000007F2},          /*   -2,   18,  509,  -14,    1  */
1507    {0x1FE043FE, 0x000007F3},          /*   -2,   16,  510,  -13,    1  */
1508    {0x1FE03BFF, 0x000007F4},          /*   -1,   14,  510,  -12,    1  */
1509    {0x1FE037FF, 0x000007F5},          /*   -1,   13,  510,  -11,    1  */
1510    {0x1FE033FF, 0x000007F6},          /*   -1,   12,  510,  -10,    1  */
1511    {0x1FF02BFF, 0x000007F7},          /*   -1,   10,  511,   -9,    1  */
1512    {0x1FF027FF, 0x000003F9},          /*   -1,    9,  511,   -7,    0  */
1513    {0x1FF01C00, 0x000003FA},          /*    0,    7,  511,   -6,    0  */
1514    {0x1FF01800, 0x000003FB},          /*    0,    6,  511,   -5,    0  */
1515    {0x1FF01400, 0x000003FC},          /*    0,    5,  511,   -4,    0  */
1516    {0x1FF00C00, 0x000003FE},          /*    0,    3,  511,   -2,    0  */
1517    {0x1FF00800, 0x000003FF},          /*    0,    2,  511,   -1,    0  */
1518    {0x1FF00400, 0x00000000},          /*    0,    1,  511,    0,    0  */
1519    {0x1FFFFC00, 0x00000002},          /*    0,   -1,  511,    2,    0  */
1520    {0x1FFFF800, 0x00000003},          /*    0,   -2,  511,    3,    0  */
1521    {0x1FFFF000, 0x00000005},          /*    0,   -4,  511,    5,    0  */
1522    {0x1FFFEC00, 0x00000006},          /*    0,   -5,  511,    6,    0  */
1523    {0x1FFFE800, 0x00000007},          /*    0,   -6,  511,    7,    0  */
1524    {0x1FFFE400, 0x000FFC09},          /*    0,   -7,  511,    9,   -1  */
1525    {0x1FFFDC01, 0x000FFC0A},          /*    1,   -9,  511,   10,   -1  */
1526    {0x1FEFDC01, 0x000FFC0B},          /*    1,   -9,  510,   11,   -1  */
1527    {0x1FEFD401, 0x000FFC0D},          /*    1,  -11,  510,   13,   -1  */
1528    {0x1FEFD001, 0x000FFC0E},          /*    1,  -12,  510,   14,   -1  */
1529    {0x1FEFCC01, 0x000FF810},          /*    1,  -13,  510,   16,   -2  */
1530    {0x1FDFCC01, 0x000FF811},          /*    1,  -13,  509,   17,   -2  */
1531    {0x1FDFC401, 0x000FF813},          /*    1,  -15,  509,   19,   -2  */
1532    {0x1FCFC002, 0x000FF814},          /*    2,  -16,  508,   20,   -2  */
1533    {0x1FCFB802, 0x000FF816},          /*    2,  -18,  508,   22,   -2  */
1534    {0x1FCFB402, 0x000FF418},          /*    2,  -19,  508,   24,   -3  */
1535    {0x1FBFB402, 0x000FF419},          /*    2,  -19,  507,   25,   -3  */
1536    {0x1FAFB002, 0x000FF41B},          /*    2,  -20,  506,   27,   -3  */
1537    {0x1FAFA802, 0x000FF41D},          /*    2,  -22,  506,   29,   -3  */
1538    {0x1F9FA802, 0x000FF01F},          /*    2,  -22,  505,   31,   -4  */
1539    {0x1F9FA402, 0x000FF020},          /*    2,  -23,  505,   32,   -4  */
1540    {0x1F8FA002, 0x000FF022},          /*    2,  -24,  504,   34,   -4  */
1541    {0x1F7F9803, 0x000FF024},          /*    3,  -26,  503,   36,   -4  */
1542    {0x1F7F9403, 0x000FEC26},          /*    3,  -27,  503,   38,   -5  */
1543    {0x1F6F9003, 0x000FEC28},          /*    3,  -28,  502,   40,   -5  */
1544    {0x1F5F9003, 0x000FEC29},          /*    3,  -28,  501,   41,   -5  */
1545    {0x1F4F8C03, 0x000FEC2B},          /*    3,  -29,  500,   43,   -5  */
1546    {0x1F3F8C03, 0x000FE82D},          /*    3,  -29,  499,   45,   -6  */
1547    {0x1F2F8803, 0x000FE82F},          /*    3,  -30,  498,   47,   -6  */
1548    {0x1F2F8003, 0x000FE831},          /*    3,  -32,  498,   49,   -6  */
1549    {0x1F1F7C03, 0x000FE833},          /*    3,  -33,  497,   51,   -6  */
1550    {0x1F0F7C03, 0x000FE435},          /*    3,  -33,  496,   53,   -7  */
1551    {0x1EFF7803, 0x000FE437},          /*    3,  -34,  495,   55,   -7  */
1552    {0x1EEF7403, 0x000FE439},          /*    3,  -35,  494,   57,   -7  */
1553    {0x1EDF7004, 0x000FE03B},          /*    4,  -36,  493,   59,   -8  */
1554    {0x1EBF7403, 0x000FE43C},          /*    3,  -35,  491,   60,   -7  */
1555    {0x1EAF6C04, 0x000FE03F},          /*    4,  -37,  490,   63,   -8  */
1556    {0x1E9F6804, 0x000FE041},          /*    4,  -38,  489,   65,   -8  */
1557    {0x1E8F6804, 0x000FDC43},          /*    4,  -38,  488,   67,   -9  */
1558    {0x1E7F6404, 0x000FDC45},          /*    4,  -39,  487,   69,   -9  */
1559    {0x1E6F6004, 0x000FDC47},          /*    4,  -40,  486,   71,   -9  */
1560    {0x1E4F6404, 0x000FD849},          /*    4,  -39,  484,   73,  -10  */
1561    {0x1E3F6004, 0x000FD84B},          /*    4,  -40,  483,   75,  -10  */
1562    {0x1E1F6003, 0x000FDC4D},          /*    3,  -40,  481,   77,   -9  */
1563    {0x1E1F5804, 0x000FD450},          /*    4,  -42,  481,   80,  -11  */
1564    {0x1DFF5804, 0x000FD452},          /*    4,  -42,  479,   82,  -11  */
1565    {0x1DEF5404, 0x000FD454},          /*    4,  -43,  478,   84,  -11  */
1566    {0x1DCF5804, 0x000FD056},          /*    4,  -42,  476,   86,  -12  */
1567    {0x1DBF5004, 0x000FD059},          /*    4,  -44,  475,   89,  -12  */
1568    {0x1D9F5004, 0x000FD05B},          /*    4,  -44,  473,   91,  -12  */
1569    {0x1D8F5004, 0x000FCC5D},          /*    4,  -44,  472,   93,  -13  */
1570    {0x1D6F5004, 0x000FCC5F},          /*    4,  -44,  470,   95,  -13  */
1571    {0x1D5F4804, 0x000FCC62},          /*    4,  -46,  469,   98,  -13  */
1572    {0x1D3F4C04, 0x000FC864},          /*    4,  -45,  467,  100,  -14  */
1573    {0x1D1F4C04, 0x000FCC65},          /*    4,  -45,  465,  101,  -13  */
1574    {0x1CFF4804, 0x000FCC68},          /*    4,  -46,  463,  104,  -13  */
1575    {0x1CEF4405, 0x000FC46B},          /*    5,  -47,  462,  107,  -15  */
1576    {0x1CCF4804, 0x000FC86C},          /*    4,  -46,  460,  108,  -14  */
1577    {0x1CAF4404, 0x000FC86F},          /*    4,  -47,  458,  111,  -14  */
1578    {0x1C9F4005, 0x000FC072},          /*    5,  -48,  457,  114,  -16  */
1579    {0x1C6F4404, 0x000FC474},          /*    4,  -47,  454,  116,  -15  */
1580    {0x1C6F3C05, 0x000FBC77},          /*    5,  -49,  454,  119,  -17  */
1581    {0x1C4F3C05, 0x000FBC79},          /*    5,  -49,  452,  121,  -17  */
1582    {0x1C1F4004, 0x000FC07B},          /*    4,  -48,  449,  123,  -16  */
1583    {0x1C0F3C05, 0x000FB87E},          /*    5,  -49,  448,  126,  -18  */
1584    {0x1BEF3C04, 0x000FBC80},          /*    4,  -49,  446,  128,  -17  */
1585    {0x1BCF3C04, 0x000FBC82},          /*    4,  -49,  444,  130,  -17  */
1586    {0x1BAF3C04, 0x000FB885},          /*    4,  -49,  442,  133,  -18  */
1587    {0x1B8F3C04, 0x000FB887},          /*    4,  -49,  440,  135,  -18  */
1588    {0x1B6F3C04, 0x000FB48A},          /*    4,  -49,  438,  138,  -19  */
1589    {0x1B5F3405, 0x000FB08D},          /*    5,  -51,  437,  141,  -20  */
1590    {0x1B2F3804, 0x000FB48F},          /*    4,  -50,  434,  143,  -19  */
1591    {0x1B1F3405, 0x000FAC92},          /*    5,  -51,  433,  146,  -21  */
1592    {0x1AEF3804, 0x000FB094},          /*    4,  -50,  430,  148,  -20  */
1593    {0x1ACF3804, 0x000FAC97},          /*    4,  -50,  428,  151,  -21  */
1594    {0x1AAF3804, 0x000FAC99},          /*    4,  -50,  426,  153,  -21  */
1595    {0x1A7F3804, 0x000FAC9C},          /*    4,  -50,  423,  156,  -21  */
1596    {0x1A6F3405, 0x000FA49F},          /*    5,  -51,  422,  159,  -23  */
1597    {0x1A3F3804, 0x000FA8A1},          /*    4,  -50,  419,  161,  -22  */
1598    {0x1A1F3804, 0x000FA4A4},          /*    4,  -50,  417,  164,  -23  */
1599    {0x1A0F3005, 0x000FA0A7},          /*    5,  -52,  416,  167,  -24  */
1600    {0x19DF3404, 0x000FA4A9},          /*    4,  -51,  413,  169,  -23  */
1601    {0x19CF3005, 0x000F9CAC},          /*    5,  -52,  412,  172,  -25  */
1602    {0x199F3005, 0x000F9CAF},          /*    5,  -52,  409,  175,  -25  */
1603    {0x197F3005, 0x000F98B2},          /*    5,  -52,  407,  178,  -26  */
1604    {0x195F3005, 0x000F98B4},          /*    5,  -52,  405,  180,  -26  */
1605    {0x191F3804, 0x000F9CB6},          /*    4,  -50,  401,  182,  -25  */
1606    {0x18FF3804, 0x000F98B9},          /*    4,  -50,  399,  185,  -26  */
1607    {0x18CF3804, 0x000F98BC},          /*    4,  -50,  396,  188,  -26  */
1608    {0x18BF3804, 0x000F94BE},          /*    4,  -50,  395,  190,  -27  */
1609    {0x188F3804, 0x000F94C1},          /*    4,  -50,  392,  193,  -27  */
1610    {0x186F3804, 0x000F90C4},          /*    4,  -50,  390,  196,  -28  */
1611    {0x184F3405, 0x000F8CC7},          /*    5,  -51,  388,  199,  -29  */
1612    {0x181F3804, 0x000F90C9},          /*    4,  -50,  385,  201,  -28  */
1613    {0x17FF3804, 0x000F8CCC},          /*    4,  -50,  383,  204,  -29  */
1614    {0x17CF3804, 0x000F8CCF},          /*    4,  -50,  380,  207,  -29  */
1615    {0x17BF3405, 0x000F84D2},          /*    5,  -51,  379,  210,  -31  */
1616    {0x177F3C04, 0x000F88D4},          /*    4,  -49,  375,  212,  -30  */
1617    {0x174F3C04, 0x000F88D7},          /*    4,  -49,  372,  215,  -30  */
1618    {0x172F3C04, 0x000F84DA},          /*    4,  -49,  370,  218,  -31  */
1619    {0x170F3C04, 0x000F84DC},          /*    4,  -49,  368,  220,  -31  */
1620    {0x16EF3805, 0x000F7CE0},          /*    5,  -50,  366,  224,  -33  */
1621    {0x16BF3C04, 0x000F80E2},          /*    4,  -49,  363,  226,  -32  */
1622    {0x167F4004, 0x000F80E5},          /*    4,  -48,  359,  229,  -32  */
1623    {0x166F4004, 0x000F7CE7},          /*    4,  -48,  358,  231,  -33  */
1624    {0x163F4004, 0x000F7CEA},          /*    4,  -48,  355,  234,  -33  */
1625    {0x161F4004, 0x000F78ED},          /*    4,  -48,  353,  237,  -34  */
1626    {0x15EF4004, 0x000F78F0},          /*    4,  -48,  350,  240,  -34  */
1627    {0x15BF4404, 0x000F74F3},          /*    4,  -47,  347,  243,  -35  */
1628    {0x159F4404, 0x000F74F5},          /*    4,  -47,  345,  245,  -35  */
1629    {0x156F4404, 0x000F74F8},          /*    4,  -47,  342,  248,  -35  */
1630    {0x154F4005, 0x000F6CFC},          /*    5,  -48,  340,  252,  -37  */
1631    {0x150F4804, 0x000F70FE},          /*    4,  -46,  336,  254,  -36  */
1632    {0x14FF4405, 0x000F6901},          /*    5,  -47,  335,  257,  -38  */
1633    {0x14CF4804, 0x000F6D03},          /*    4,  -46,  332,  259,  -37  */
1634    {0x149F4804, 0x000F6D06},          /*    4,  -46,  329,  262,  -37  */
1635    {0x146F4C04, 0x000F6909},          /*    4,  -45,  326,  265,  -38  */
1636    {0x143F4C04, 0x000F690C},          /*    4,  -45,  323,  268,  -38  */
1637    {0x141F4C04, 0x000F690E},          /*    4,  -45,  321,  270,  -38  */
1638    {0x13EF5004, 0x000F6511},          /*    4,  -44,  318,  273,  -39  */
1639    {0x13BF5004, 0x000F6514},          /*    4,  -44,  315,  276,  -39  */
1640    {0x139F5004, 0x000F6117},          /*    4,  -44,  313,  279,  -40  */
1641    {0x136F5404, 0x000F6119},          /*    4,  -43,  310,  281,  -40  */
1642    {0x133F5404, 0x000F611C},          /*    4,  -43,  307,  284,  -40  */
1643    {0x131F5404, 0x000F5D1F},          /*    4,  -43,  305,  287,  -41  */
1644    {0x12DF5C04, 0x000F5D21},          /*    4,  -41,  301,  289,  -41  */
1645    {0x12AF5C04, 0x000F5D24},          /*    4,  -41,  298,  292,  -41  */
1646};
1647
1648static const unsigned long CimarronVerticalGraphicsFilter[] = {
1649    0x3F840D05,                        /* 261, 259,  -8  */
1650    0x3F841D01,                        /* 257, 263,  -8  */
1651    0x3F8428FE,                        /* 254, 266,  -8  */
1652    0x3F8438FA,                        /* 250, 270,  -8  */
1653    0x3F8444F7,                        /* 247, 273,  -8  */
1654    0x3F8450F4,                        /* 244, 276,  -8  */
1655    0x3F845CF1,                        /* 241, 279,  -8  */
1656    0x3F8468EE,                        /* 238, 282,  -8  */
1657    0x3F8474EB,                        /* 235, 285,  -8  */
1658    0x3F8480E8,                        /* 232, 288,  -8  */
1659    0x3F7490E5,                        /* 229, 292,  -9  */
1660    0x3F749CE2,                        /* 226, 295,  -9  */
1661    0x3F74ACDE,                        /* 222, 299,  -9  */
1662    0x3F74B8DB,                        /* 219, 302,  -9  */
1663    0x3F74C0D9,                        /* 217, 304,  -9  */
1664    0x3F74CCD6,                        /* 214, 307,  -9  */
1665    0x3F74D8D3,                        /* 211, 310,  -9  */
1666    0x3F74E8CF,                        /* 207, 314,  -9  */
1667    0x3F74F4CC,                        /* 204, 317,  -9  */
1668    0x3F7500C9,                        /* 201, 320,  -9  */
1669    0x3F750CC6,                        /* 198, 323,  -9  */
1670    0x3F7518C3,                        /* 195, 326,  -9  */
1671    0x3F7520C1,                        /* 193, 328,  -9  */
1672    0x3F7530BD,                        /* 189, 332,  -9  */
1673    0x3F753CBA,                        /* 186, 335,  -9  */
1674    0x3F7548B7,                        /* 183, 338,  -9  */
1675    0x3F6558B4,                        /* 180, 342, -10  */
1676    0x3F6560B2,                        /* 178, 344, -10  */
1677    0x3F656CAF,                        /* 175, 347, -10  */
1678    0x3F6578AC,                        /* 172, 350, -10  */
1679    0x3F6584A9,                        /* 169, 353, -10  */
1680    0x3F658CA7,                        /* 167, 355, -10  */
1681    0x3F6598A4,                        /* 164, 358, -10  */
1682    0x3F65A8A0,                        /* 160, 362, -10  */
1683    0x3F65B09E,                        /* 158, 364, -10  */
1684    0x3F65BC9B,                        /* 155, 367, -10  */
1685    0x3F65C499,                        /* 153, 369, -10  */
1686    0x3F65D096,                        /* 150, 372, -10  */
1687    0x3F55E093,                        /* 147, 376, -11  */
1688    0x3F55E891,                        /* 145, 378, -11  */
1689    0x3F55F48E,                        /* 142, 381, -11  */
1690    0x3F56008B,                        /* 139, 384, -11  */
1691    0x3F560C88,                        /* 136, 387, -11  */
1692    0x3F561486,                        /* 134, 389, -11  */
1693    0x3F562083,                        /* 131, 392, -11  */
1694    0x3F562881,                        /* 129, 394, -11  */
1695    0x3F56347E,                        /* 126, 397, -11  */
1696    0x3F56407B,                        /* 123, 400, -11  */
1697    0x3F564879,                        /* 121, 402, -11  */
1698    0x3F465876,                        /* 118, 406, -12  */
1699    0x3F466074,                        /* 116, 408, -12  */
1700    0x3F466872,                        /* 114, 410, -12  */
1701    0x3F46746F,                        /* 111, 413, -12  */
1702    0x3F467C6D,                        /* 109, 415, -12  */
1703    0x3F46846B,                        /* 107, 417, -12  */
1704    0x3F468C69,                        /* 105, 419, -12  */
1705    0x3F469866,                        /* 102, 422, -12  */
1706    0x3F46A064,                        /* 100, 424, -12  */
1707    0x3F46AC61,                        /*  97, 427, -12  */
1708    0x3F46B45F,                        /*  95, 429, -12  */
1709    0x3F46BC5D,                        /*  93, 431, -12  */
1710    0x3F46C45B,                        /*  91, 433, -12  */
1711    0x3F46CC59,                        /*  89, 435, -12  */
1712    0x3F36DC56,                        /*  86, 439, -13  */
1713    0x3F36E454,                        /*  84, 441, -13  */
1714    0x3F36EC52,                        /*  82, 443, -13  */
1715    0x3F36F450,                        /*  80, 445, -13  */
1716    0x3F36FC4E,                        /*  78, 447, -13  */
1717    0x3F37004D,                        /*  77, 448, -13  */
1718    0x3F370C4A,                        /*  74, 451, -13  */
1719    0x3F371448,                        /*  72, 453, -13  */
1720    0x3F371C46,                        /*  70, 455, -13  */
1721    0x3F372444,                        /*  68, 457, -13  */
1722    0x3F372C42,                        /*  66, 459, -13  */
1723    0x3F373440,                        /*  64, 461, -13  */
1724    0x3F37383F,                        /*  63, 462, -13  */
1725    0x3F37403D,                        /*  61, 464, -13  */
1726    0x3F37483B,                        /*  59, 466, -13  */
1727    0x3F375039,                        /*  57, 468, -13  */
1728    0x3F375438,                        /*  56, 469, -13  */
1729    0x3F375C36,                        /*  54, 471, -13  */
1730    0x3F376434,                        /*  52, 473, -13  */
1731    0x3F376833,                        /*  51, 474, -13  */
1732    0x3F377031,                        /*  49, 476, -13  */
1733    0x3F377430,                        /*  48, 477, -13  */
1734    0x3F377C2E,                        /*  46, 479, -13  */
1735    0x3F37842C,                        /*  44, 481, -13  */
1736    0x3F37882B,                        /*  43, 482, -13  */
1737    0x3F47882A,                        /*  42, 482, -12  */
1738    0x3F479028,                        /*  40, 484, -12  */
1739    0x3F479427,                        /*  39, 485, -12  */
1740    0x3F479C25,                        /*  37, 487, -12  */
1741    0x3F47A024,                        /*  36, 488, -12  */
1742    0x3F47A822,                        /*  34, 490, -12  */
1743    0x3F47AC21,                        /*  33, 491, -12  */
1744    0x3F47B020,                        /*  32, 492, -12  */
1745    0x3F57B01F,                        /*  31, 492, -11  */
1746    0x3F57B81D,                        /*  29, 494, -11  */
1747    0x3F57BC1C,                        /*  28, 495, -11  */
1748    0x3F57C01B,                        /*  27, 496, -11  */
1749    0x3F57C41A,                        /*  26, 497, -11  */
1750    0x3F67C818,                        /*  24, 498, -10  */
1751    0x3F67CC17,                        /*  23, 499, -10  */
1752    0x3F67D016,                        /*  22, 500, -10  */
1753    0x3F67D415,                        /*  21, 501, -10  */
1754    0x3F67D814,                        /*  20, 502, -10  */
1755    0x3F77D813,                        /*  19, 502,  -9  */
1756    0x3F77DC12,                        /*  18, 503,  -9  */
1757    0x3F77E011,                        /*  17, 504,  -9  */
1758    0x3F87E010,                        /*  16, 504,  -8  */
1759    0x3F87E40F,                        /*  15, 505,  -8  */
1760    0x3F87E80E,                        /*  14, 506,  -8  */
1761    0x3F97E80D,                        /*  13, 506,  -7  */
1762    0x3F97EC0C,                        /*  12, 507,  -7  */
1763    0x3F97F00B,                        /*  11, 508,  -7  */
1764    0x3FA7F00A,                        /*  10, 508,  -6  */
1765    0x3FA7F409,                        /*   9, 509,  -6  */
1766    0x3FB7F408,                        /*   8, 509,  -5  */
1767    0x3FB7F408,                        /*   8, 509,  -5  */
1768    0x3FC7F806,                        /*   6, 510,  -4  */
1769    0x3FC7F806,                        /*   6, 510,  -4  */
1770    0x3FD7F805,                        /*   5, 510,  -3  */
1771    0x3FD7FC04,                        /*   4, 511,  -3  */
1772    0x3FE7FC03,                        /*   3, 511,  -2  */
1773    0x3FE7FC03,                        /*   3, 511,  -2  */
1774    0x3FF7FC02,                        /*   2, 511,  -1  */
1775    0x3FF7FC02,                        /*   2, 511,  -1  */
1776    0x0007FC01,                        /*   1, 511,   0  */
1777    0x0007FC01,                        /*   1, 511,   0  */
1778    0x0007FC01,                        /*   1, 511,   0  */
1779    0x0027FFFF,                        /*  -1, 511,   2  */
1780    0x0027FFFF,                        /*  -1, 511,   2  */
1781    0x0037FFFE,                        /*  -2, 511,   3  */
1782    0x0037FFFE,                        /*  -2, 511,   3  */
1783    0x0047FFFD,                        /*  -3, 511,   4  */
1784    0x0047FBFE,                        /*  -2, 510,   4  */
1785    0x0057FBFD,                        /*  -3, 510,   5  */
1786    0x0067FBFC,                        /*  -4, 510,   6  */
1787    0x0077F7FC,                        /*  -4, 509,   7  */
1788    0x0077F7FC,                        /*  -4, 509,   7  */
1789    0x0087F7FB,                        /*  -5, 509,   8  */
1790    0x0097F3FB,                        /*  -5, 508,   9  */
1791    0x00A7F3FA,                        /*  -6, 508,  10  */
1792    0x00B7EFFA,                        /*  -6, 507,  11  */
1793    0x00C7EBFA,                        /*  -6, 506,  12  */
1794    0x00D7EBF9,                        /*  -7, 506,  13  */
1795    0x00E7E7F9,                        /*  -7, 505,  14  */
1796    0x00F7E3F9,                        /*  -7, 504,  15  */
1797    0x0107E3F8,                        /*  -8, 504,  16  */
1798    0x0117DFF8,                        /*  -8, 503,  17  */
1799    0x0127DBF8,                        /*  -8, 502,  18  */
1800    0x0137DBF7,                        /*  -9, 502,  19  */
1801    0x0147D7F7,                        /*  -9, 501,  20  */
1802    0x0157D3F7,                        /*  -9, 500,  21  */
1803    0x0167CFF7,                        /*  -9, 499,  22  */
1804    0x0177CBF7,                        /*  -9, 498,  23  */
1805    0x0197C7F6,                        /* -10, 497,  25  */
1806    0x01A7C3F6,                        /* -10, 496,  26  */
1807    0x01B7BFF6,                        /* -10, 495,  27  */
1808    0x01C7BBF6,                        /* -10, 494,  28  */
1809    0x01E7B3F6,                        /* -10, 492,  30  */
1810    0x01F7B3F5,                        /* -11, 492,  31  */
1811    0x0207AFF5,                        /* -11, 491,  32  */
1812    0x0217ABF5,                        /* -11, 490,  33  */
1813    0x0237A3F5,                        /* -11, 488,  35  */
1814    0x02479FF5,                        /* -11, 487,  36  */
1815    0x026797F5,                        /* -11, 485,  38  */
1816    0x027793F5,                        /* -11, 484,  39  */
1817    0x02978BF5,                        /* -11, 482,  41  */
1818    0x02A78BF4,                        /* -12, 482,  42  */
1819    0x02B787F4,                        /* -12, 481,  43  */
1820    0x02D77FF4,                        /* -12, 479,  45  */
1821    0x02F777F4,                        /* -12, 477,  47  */
1822    0x030773F4,                        /* -12, 476,  48  */
1823    0x03276BF4,                        /* -12, 474,  50  */
1824    0x033767F4,                        /* -12, 473,  51  */
1825    0x03575FF4,                        /* -12, 471,  53  */
1826    0x037757F4,                        /* -12, 469,  55  */
1827    0x038753F4,                        /* -12, 468,  56  */
1828    0x03A74BF4,                        /* -12, 466,  58  */
1829    0x03C743F4,                        /* -12, 464,  60  */
1830    0x03E73BF4,                        /* -12, 462,  62  */
1831    0x040737F3,                        /* -13, 461,  64  */
1832    0x04272FF3,                        /* -13, 459,  66  */
1833    0x044727F3,                        /* -13, 457,  68  */
1834    0x04671FF3,                        /* -13, 455,  70  */
1835    0x048717F3,                        /* -13, 453,  72  */
1836    0x04A70FF3,                        /* -13, 451,  74  */
1837    0x04C703F4,                        /* -12, 448,  76  */
1838    0x04D6FFF4,                        /* -12, 447,  77  */
1839    0x04F6F7F4,                        /* -12, 445,  79  */
1840    0x0516EFF4,                        /* -12, 443,  81  */
1841    0x0536E7F4,                        /* -12, 441,  83  */
1842    0x0556DFF4,                        /* -12, 439,  85  */
1843    0x0586CFF5,                        /* -11, 435,  88  */
1844    0x05A6C7F5,                        /* -11, 433,  90  */
1845    0x05C6BFF5,                        /* -11, 431,  92  */
1846    0x05F6B7F4,                        /* -12, 429,  95  */
1847    0x0616AFF4,                        /* -12, 427,  97  */
1848    0x0636A3F5,                        /* -11, 424,  99  */
1849    0x06569BF5,                        /* -11, 422, 101  */
1850    0x06868FF5,                        /* -11, 419, 104  */
1851    0x06A687F5,                        /* -11, 417, 106  */
1852    0x06C67FF5,                        /* -11, 415, 108  */
1853    0x06E677F5,                        /* -11, 413, 110  */
1854    0x07166BF5,                        /* -11, 410, 113  */
1855    0x073663F5,                        /* -11, 408, 115  */
1856    0x07665BF4,                        /* -12, 406, 118  */
1857    0x07964BF5,                        /* -11, 402, 121  */
1858    0x07B643F5,                        /* -11, 400, 123  */
1859    0x07D637F6,                        /* -10, 397, 125  */
1860    0x08062BF6,                        /* -10, 394, 128  */
1861    0x082623F6,                        /* -10, 392, 130  */
1862    0x085617F6,                        /* -10, 389, 133  */
1863    0x08760FF6,                        /* -10, 387, 135  */
1864    0x08B603F5,                        /* -11, 384, 139  */
1865    0x08D5F7F6,                        /* -10, 381, 141  */
1866    0x0905EBF6,                        /* -10, 378, 144  */
1867    0x0925E3F6,                        /* -10, 376, 146  */
1868    0x0955D3F7,                        /*  -9, 372, 149  */
1869    0x0985C7F7,                        /*  -9, 369, 152  */
1870    0x09A5BFF7,                        /*  -9, 367, 154  */
1871    0x09D5B3F7,                        /*  -9, 364, 157  */
1872    0x0A05ABF6,                        /* -10, 362, 160  */
1873    0x0A359BF7,                        /*  -9, 358, 163  */
1874    0x0A658FF7,                        /*  -9, 355, 166  */
1875    0x0A9587F6,                        /* -10, 353, 169  */
1876    0x0AB57BF7,                        /*  -9, 350, 171  */
1877    0x0AE56FF7,                        /*  -9, 347, 174  */
1878    0x0B1563F7,                        /*  -9, 344, 177  */
1879    0x0B455BF6,                        /* -10, 342, 180  */
1880    0x0B754BF7,                        /*  -9, 338, 183  */
1881    0x0BA53FF7,                        /*  -9, 335, 186  */
1882    0x0BD533F7,                        /*  -9, 332, 189  */
1883    0x0C0523F8,                        /*  -8, 328, 192  */
1884    0x0C251BF8,                        /*  -8, 326, 194  */
1885    0x0C550FF8,                        /*  -8, 323, 197  */
1886    0x0C9503F7,                        /*  -9, 320, 201  */
1887    0x0CC4F7F7,                        /*  -9, 317, 204  */
1888    0x0CF4EBF7,                        /*  -9, 314, 207  */
1889    0x0D24DBF8,                        /*  -8, 310, 210  */
1890    0x0D54CFF8,                        /*  -8, 307, 213  */
1891    0x0D84C3F8,                        /*  -8, 304, 216  */
1892    0x0DB4BBF7,                        /*  -9, 302, 219  */
1893    0x0DE4AFF7,                        /*  -9, 299, 222  */
1894    0x0E149FF8,                        /*  -8, 295, 225  */
1895    0x0E4493F8,                        /*  -8, 292, 228  */
1896    0x0E7483F9,                        /*  -7, 288, 231  */
1897    0x0EA477F9,                        /*  -7, 285, 234  */
1898    0x0ED46BF9,                        /*  -7, 282, 237  */
1899    0x0F045FF9,                        /*  -7, 279, 240  */
1900    0x0F4453F8,                        /*  -8, 276, 244  */
1901    0x0F7447F8,                        /*  -8, 273, 247  */
1902    0x0FA43BF8,                        /*  -8, 270, 250  */
1903    0x0FD42BF9,                        /*  -7, 266, 253  */
1904    0x10041FF9,                        /*  -7, 263, 256  */
1905};
1906