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