1dfe64dd3Smacallan/*
2dfe64dd3Smacallan * Global data and definitions
3dfe64dd3Smacallan *
4dfe64dd3Smacallan * Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria
5dfe64dd3Smacallan *
6dfe64dd3Smacallan * Redistribution and use in source and binary forms, with or without
7dfe64dd3Smacallan * modification, are permitted provided that the following conditions
8dfe64dd3Smacallan * are met:
9dfe64dd3Smacallan * 1) Redistributions of source code must retain the above copyright
10dfe64dd3Smacallan *    notice, this list of conditions and the following disclaimer.
11dfe64dd3Smacallan * 2) Redistributions in binary form must reproduce the above copyright
12dfe64dd3Smacallan *    notice, this list of conditions and the following disclaimer in the
13dfe64dd3Smacallan *    documentation and/or other materials provided with the distribution.
14dfe64dd3Smacallan * 3) The name of the author may not be used to endorse or promote products
15dfe64dd3Smacallan *    derived from this software without specific prior written permission.
16dfe64dd3Smacallan *
17dfe64dd3Smacallan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSED OR
18dfe64dd3Smacallan * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19dfe64dd3Smacallan * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20dfe64dd3Smacallan * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21dfe64dd3Smacallan * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22dfe64dd3Smacallan * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23dfe64dd3Smacallan * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24dfe64dd3Smacallan * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25dfe64dd3Smacallan * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26dfe64dd3Smacallan * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27dfe64dd3Smacallan *
28dfe64dd3Smacallan * Author:     	Thomas Winischhofer <thomas@winischhofer.net>
29dfe64dd3Smacallan *
30dfe64dd3Smacallan */
31dfe64dd3Smacallan
32dfe64dd3Smacallan
33dfe64dd3Smacallan/* For calculating refresh rate index (CR33) */
34dfe64dd3Smacallanstatic const struct _xgi_vrate {
35dfe64dd3Smacallan    CARD16 idx;
36dfe64dd3Smacallan    CARD16 xres;
37dfe64dd3Smacallan    CARD16 yres;
38dfe64dd3Smacallan    CARD16 refresh;
39dfe64dd3Smacallan    BOOLEAN XGI730valid32bpp;
40dfe64dd3Smacallan} xgix_vrate[] = {
41dfe64dd3Smacallan	{1,  320,  200,  70,  TRUE},
42dfe64dd3Smacallan	{1,  320,  240,  60,  TRUE},
43dfe64dd3Smacallan	{1,  400,  300,  60,  TRUE},
44dfe64dd3Smacallan    {1,  512,  384,  60,  TRUE},
45dfe64dd3Smacallan	{1,  640,  400,  72,  TRUE},
46dfe64dd3Smacallan	{1,  640,  480,  60,  TRUE},
47dfe64dd3Smacallan	{2,  640,  480,  72,  TRUE},
48dfe64dd3Smacallan	{3,  640,  480,  75,  TRUE},
49dfe64dd3Smacallan	{4,  640,  480,  85,  TRUE},
50dfe64dd3Smacallan	{5,  640,  480, 100,  TRUE},
51dfe64dd3Smacallan	{6,  640,  480, 120,  TRUE},
52dfe64dd3Smacallan	{7,  640,  480, 160, FALSE},
53dfe64dd3Smacallan	{8,  640,  480, 200, FALSE},
54dfe64dd3Smacallan	{1,  720,  480,  60,  TRUE},
55dfe64dd3Smacallan	{1,  720,  576,  58,  TRUE},
56dfe64dd3Smacallan	{1,  768,  576,  58,  TRUE},
57dfe64dd3Smacallan	{1,  800,  480,  60,  TRUE},
58dfe64dd3Smacallan	{2,  800,  480,  75,  TRUE},
59dfe64dd3Smacallan	{3,  800,  480,  85,  TRUE},
60dfe64dd3Smacallan	{1,  800,  600,  56,  TRUE},
61dfe64dd3Smacallan	{2,  800,  600,  60,  TRUE},
62dfe64dd3Smacallan	{3,  800,  600,  72,  TRUE},
63dfe64dd3Smacallan	{4,  800,  600,  75,  TRUE},
64dfe64dd3Smacallan	{5,  800,  600,  85,  TRUE},
65dfe64dd3Smacallan	{6,  800,  600, 105,  TRUE},
66dfe64dd3Smacallan	{7,  800,  600, 120, FALSE},
67dfe64dd3Smacallan	{8,  800,  600, 160, FALSE},
68dfe64dd3Smacallan	{1,  848,  480,  39,  TRUE},
69dfe64dd3Smacallan	{2,  848,  480,  60,  TRUE},
70dfe64dd3Smacallan	{1,  856,  480,  39,  TRUE},
71dfe64dd3Smacallan	{2,  856,  480,  60,  TRUE},
72dfe64dd3Smacallan	{1, 1024,  576,  60,  TRUE},
73dfe64dd3Smacallan	{2, 1024,  576,  75,  TRUE},
74dfe64dd3Smacallan	{3, 1024,  576,  85,  TRUE},
75dfe64dd3Smacallan	{1, 1024,  600,  60,  TRUE},
76dfe64dd3Smacallan	{1, 1024,  768,  43,  TRUE},
77dfe64dd3Smacallan	{2, 1024,  768,  60,  TRUE},
78dfe64dd3Smacallan	{3, 1024,  768,  70, FALSE},
79dfe64dd3Smacallan	{4, 1024,  768,  75, FALSE},
80dfe64dd3Smacallan	{5, 1024,  768,  85,  TRUE},
81dfe64dd3Smacallan	{6, 1024,  768, 100,  TRUE},
82dfe64dd3Smacallan	{7, 1024,  768, 120,  TRUE},
83dfe64dd3Smacallan	{1, 1152,  768,  60,  TRUE},
84dfe64dd3Smacallan	{1, 1152,  864,  75,  TRUE},
85dfe64dd3Smacallan	{2, 1152,  864,  84, FALSE},
86dfe64dd3Smacallan	{1, 1280,  720,  60,  TRUE},
87dfe64dd3Smacallan	{2, 1280,  720,  75, FALSE},
88dfe64dd3Smacallan	{3, 1280,  720,  85,  TRUE},
89dfe64dd3Smacallan	{1, 1280,  768,  60,  TRUE},
90dfe64dd3Smacallan	{1, 1280,  800,  60,  TRUE},
91dfe64dd3Smacallan	{1, 1280,  960,  60,  TRUE},
92dfe64dd3Smacallan	{2, 1280,  960,  85,  TRUE},
93dfe64dd3Smacallan	{1, 1280, 1024,  43, FALSE},
94dfe64dd3Smacallan	{2, 1280, 1024,  60,  TRUE},
95dfe64dd3Smacallan	{3, 1280, 1024,  75, FALSE},
96dfe64dd3Smacallan	{4, 1280, 1024,  85,  TRUE},
97dfe64dd3Smacallan	{1, 1360,  768,  60,  TRUE},
98dfe64dd3Smacallan	{1, 1400, 1050,  60,  TRUE},
99dfe64dd3Smacallan	{2, 1400, 1050,  75,  TRUE},
100dfe64dd3Smacallan	{1, 1600, 1200,  60,  TRUE},
101dfe64dd3Smacallan	{2, 1600, 1200,  65,  TRUE},
102dfe64dd3Smacallan	{3, 1600, 1200,  70,  TRUE},
103dfe64dd3Smacallan	{4, 1600, 1200,  75,  TRUE},
104dfe64dd3Smacallan	{5, 1600, 1200,  85,  TRUE},
105dfe64dd3Smacallan	{6, 1600, 1200, 100,  TRUE},
106dfe64dd3Smacallan	{7, 1600, 1200, 120,  TRUE},
107dfe64dd3Smacallan	{1, 1680, 1050,  60,  TRUE},
108dfe64dd3Smacallan	{1, 1920, 1440,  60,  TRUE},
109dfe64dd3Smacallan	{2, 1920, 1440,  65,  TRUE},
110dfe64dd3Smacallan	{3, 1920, 1440,  70,  TRUE},
111dfe64dd3Smacallan	{4, 1920, 1440,  75,  TRUE},
112dfe64dd3Smacallan	{5, 1920, 1440,  85,  TRUE},
113dfe64dd3Smacallan	{6, 1920, 1440, 100,  TRUE},
114dfe64dd3Smacallan	{1, 2048, 1536,  60,  TRUE},
115dfe64dd3Smacallan	{2, 2048, 1536,  65,  TRUE},
116dfe64dd3Smacallan	{3, 2048, 1536,  70,  TRUE},
117dfe64dd3Smacallan	{4, 2048, 1536,  75,  TRUE},
118dfe64dd3Smacallan	{5, 2048, 1536,  85,  TRUE},
119dfe64dd3Smacallan	{0,    0,    0,   0, FALSE}
120dfe64dd3Smacallan};
121dfe64dd3Smacallan
122dfe64dd3Smacallan
123dfe64dd3Smacallan/*     TV filters for video bridges
124dfe64dd3Smacallan */
125dfe64dd3Smacallanstatic const struct _XGITVFilter301 {
126dfe64dd3Smacallan	unsigned char filter[7][4];
127dfe64dd3Smacallan} XGITVFilter301[] = {
128dfe64dd3Smacallan	{{ {0x00,0xE0,0x10,0x60},   /* NTSCFilter - 320 */
129dfe64dd3Smacallan	   {0x00,0xEE,0x10,0x44},
130dfe64dd3Smacallan	   {0x00,0xF4,0x10,0x38},
131dfe64dd3Smacallan	   {0xF8,0xF4,0x18,0x38},
132dfe64dd3Smacallan	   {0xFC,0xFB,0x14,0x2A},
133dfe64dd3Smacallan	   {0x00,0x00,0x10,0x20},
134dfe64dd3Smacallan	   {0x00,0x04,0x10,0x18} }},
135dfe64dd3Smacallan	{{ {0xF5,0xEE,0x1B,0x44},   /* NTSCFilter - 640 */
136dfe64dd3Smacallan	   {0xF8,0xF4,0x18,0x38},
137dfe64dd3Smacallan	   {0xEB,0x04,0x25,0x18},
138dfe64dd3Smacallan	   {0xF1,0x05,0x1F,0x16},
139dfe64dd3Smacallan	   {0xF6,0x06,0x1A,0x14},
140dfe64dd3Smacallan	   {0xFA,0x06,0x16,0x14},
141dfe64dd3Smacallan	   {0x00,0x04,0x10,0x18} }},
142dfe64dd3Smacallan	{{ {0xEB,0x04,0x25,0x18},   /* NTSCFilter - 720 */
143dfe64dd3Smacallan	   {0xE7,0x0E,0x29,0x04},
144dfe64dd3Smacallan	   {0xEE,0x0C,0x22,0x08},
145dfe64dd3Smacallan	   {0xF6,0x0B,0x1A,0x0A},
146dfe64dd3Smacallan	   {0xF9,0x0A,0x17,0x0C},
147dfe64dd3Smacallan	   {0xFC,0x0A,0x14,0x0C},
148dfe64dd3Smacallan	   {0x00,0x08,0x10,0x10} }},
149dfe64dd3Smacallan	{{ {0xEC,0x02,0x24,0x1C},   /* NTSCFilter - 800/400 */
150dfe64dd3Smacallan	   {0xF2,0x04,0x1E,0x18},
151dfe64dd3Smacallan	   {0xEB,0x15,0x25,0xF6},
152dfe64dd3Smacallan	   {0xF4,0x10,0x1C,0x00},
153dfe64dd3Smacallan	   {0xF8,0x0F,0x18,0x02},
154dfe64dd3Smacallan	   {0x00,0x04,0x10,0x18},
155dfe64dd3Smacallan	   {0x01,0x06,0x0F,0x14} }},
156dfe64dd3Smacallan	{{ {0x00,0xE0,0x10,0x60},   /* PALFilter - 320 */
157dfe64dd3Smacallan	   {0x00,0xEE,0x10,0x44},
158dfe64dd3Smacallan	   {0x00,0xF4,0x10,0x38},
159dfe64dd3Smacallan	   {0xF8,0xF4,0x18,0x38},
160dfe64dd3Smacallan	   {0xFC,0xFB,0x14,0x2A},
161dfe64dd3Smacallan	   {0x00,0x00,0x10,0x20},
162dfe64dd3Smacallan	   {0x00,0x04,0x10,0x18} }},
163dfe64dd3Smacallan	{{ {0xF5,0xEE,0x1B,0x44},   /* PALFilter - 640 */
164dfe64dd3Smacallan	   {0xF8,0xF4,0x18,0x38},
165dfe64dd3Smacallan	   {0xF1,0xF7,0x1F,0x32},
166dfe64dd3Smacallan	   {0xF5,0xFB,0x1B,0x2A},
167dfe64dd3Smacallan	   {0xF9,0xFF,0x17,0x22},
168dfe64dd3Smacallan	   {0xFB,0x01,0x15,0x1E},
169dfe64dd3Smacallan	   {0x00,0x04,0x10,0x18} }},
170dfe64dd3Smacallan	{{ {0xF5,0xEE,0x1B,0x2A},   /* PALFilter - 720 */
171dfe64dd3Smacallan	   {0xEE,0xFE,0x22,0x24},
172dfe64dd3Smacallan	   {0xF3,0x00,0x1D,0x20},
173dfe64dd3Smacallan	   {0xF9,0x03,0x17,0x1A},
174dfe64dd3Smacallan	   {0xFB,0x02,0x14,0x1E},
175dfe64dd3Smacallan	   {0xFB,0x04,0x15,0x18},
176dfe64dd3Smacallan	   {0x00,0x06,0x10,0x14} }},
177dfe64dd3Smacallan	{{ {0xF5,0xEE,0x1B,0x44},   /* PALFilter - 800/400 */
178dfe64dd3Smacallan	   {0xF8,0xF4,0x18,0x38},
179dfe64dd3Smacallan	   {0xFC,0xFB,0x14,0x2A},
180dfe64dd3Smacallan	   {0xEB,0x05,0x25,0x16},
181dfe64dd3Smacallan	   {0xF1,0x05,0x1F,0x16},
182dfe64dd3Smacallan	   {0xFA,0x07,0x16,0x12},
183dfe64dd3Smacallan	   {0x00,0x07,0x10,0x12} }}
184dfe64dd3Smacallan};
185dfe64dd3Smacallan
186dfe64dd3Smacallanstatic const struct _XGITVFilter301B {
187dfe64dd3Smacallan	unsigned char filter[7][7];
188dfe64dd3Smacallan} XGITVFilter301B[] = {
189dfe64dd3Smacallan	{{ {0x01,0x02,0xfb,0xf8,0x06,0x27,0x3a},   /* NTSC - 640 */
190dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
191dfe64dd3Smacallan	   {0x01,0x01,0x00,0xf6,0x00,0x28,0x40},
192dfe64dd3Smacallan	   {0xff,0x03,0x02,0xf6,0xfc,0x27,0x46},
193dfe64dd3Smacallan	   {0xff,0x01,0x04,0xf8,0xfa,0x27,0x46},
194dfe64dd3Smacallan	   {0xff,0x01,0x05,0xf9,0xf7,0x26,0x4a},
195dfe64dd3Smacallan	   {0xff,0xff,0x05,0xfc,0xf4,0x24,0x52} }},
196dfe64dd3Smacallan	{{ {0x01,0x00,0xfb,0xfb,0x0b,0x25,0x32},   /* NTSC - 720 (?) */
197dfe64dd3Smacallan	   {0x01,0x01,0xfb,0xf9,0x09,0x26,0x36},
198dfe64dd3Smacallan	   {0x01,0x02,0xfc,0xf8,0x06,0x27,0x38},
199dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
200dfe64dd3Smacallan	   {0x01,0x03,0xff,0xf6,0x00,0x27,0x40},
201dfe64dd3Smacallan	   {0xff,0x03,0x02,0xf6,0xfe,0x27,0x42},
202dfe64dd3Smacallan	   {0xff,0x02,0x03,0xf7,0xfb,0x27,0x46} }},
203dfe64dd3Smacallan	{{ {0x01,0xfe,0xfb,0xfe,0x0e,0x23,0x2e},   /* NTSC - 800 */
204dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfc,0x0c,0x25,0x30},
205dfe64dd3Smacallan	   {0x01,0x00,0xfb,0xfa,0x0a,0x26,0x34},
206dfe64dd3Smacallan	   {0x01,0x01,0xfc,0xf8,0x08,0x26,0x38},
207dfe64dd3Smacallan	   {0x01,0x02,0xfd,0xf7,0x06,0x27,0x38},
208dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
209dfe64dd3Smacallan	   {0xff,0x03,0x00,0xf6,0x00,0x27,0x42} }},
210dfe64dd3Smacallan	{{ {0xff,0xfd,0xfe,0x05,0x11,0x1e,0x24},   /* NTSC - 1024 */
211dfe64dd3Smacallan	   {0xff,0xfd,0xfd,0x04,0x11,0x1f,0x26},
212dfe64dd3Smacallan	   {0xff,0xfd,0xfc,0x02,0x10,0x22,0x28},
213dfe64dd3Smacallan	   {0xff,0xff,0xfc,0x00,0x0f,0x22,0x28},
214dfe64dd3Smacallan	   {0x01,0xfe,0xfb,0xff,0x0e,0x23,0x2c},
215dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfd,0x0d,0x24,0x2e},
216dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfb,0x0c,0x25,0x32} }},
217dfe64dd3Smacallan	{{ {0x01,0x02,0xfb,0xf8,0x06,0x27,0x3a},   /* PAL - 640 */
218dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
219dfe64dd3Smacallan	   {0x01,0x01,0x00,0xf6,0x00,0x28,0x40},
220dfe64dd3Smacallan	   {0xff,0x03,0x02,0xf6,0xfc,0x27,0x46},
221dfe64dd3Smacallan	   {0xff,0x01,0x04,0xf8,0xfa,0x27,0x46},
222dfe64dd3Smacallan	   {0xff,0x01,0x05,0xf9,0xf7,0x26,0x4a},
223dfe64dd3Smacallan	   {0xff,0xff,0x05,0xfc,0xf4,0x24,0x52} }},
224dfe64dd3Smacallan	{{ {0x01,0x00,0xfb,0xfb,0x0b,0x25,0x32},   /* PAL - 720/768 */
225dfe64dd3Smacallan	   {0x01,0x01,0xfb,0xf9,0x09,0x26,0x36},
226dfe64dd3Smacallan	   {0x01,0x02,0xfc,0xf8,0x06,0x27,0x38},
227dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
228dfe64dd3Smacallan	   {0x01,0x03,0xff,0xf6,0x00,0x27,0x40},
229dfe64dd3Smacallan	   {0xff,0x03,0x02,0xf6,0xfe,0x27,0x42},
230dfe64dd3Smacallan	   {0xff,0x02,0x03,0xf7,0xfb,0x27,0x46} }},
231dfe64dd3Smacallan	{{ {0x01,0xfe,0xfb,0xfe,0x0e,0x23,0x2e},   /* PAL - 800 */
232dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfc,0x0c,0x25,0x30},
233dfe64dd3Smacallan	   {0x01,0x00,0xfb,0xfa,0x0a,0x26,0x34},
234dfe64dd3Smacallan	   {0x01,0x01,0xfc,0xf8,0x08,0x26,0x38},
235dfe64dd3Smacallan	   {0x01,0x02,0xfd,0xf7,0x06,0x27,0x38},
236dfe64dd3Smacallan	   {0x01,0x02,0xfe,0xf7,0x03,0x27,0x3c},
237dfe64dd3Smacallan	   {0xff,0x03,0x00,0xf6,0x00,0x27,0x42} }},
238dfe64dd3Smacallan	{{ {0xff,0xfd,0xfe,0x05,0x11,0x1e,0x24},   /* PAL - 1024 */
239dfe64dd3Smacallan	   {0xff,0xfd,0xfd,0x04,0x11,0x1f,0x26},
240dfe64dd3Smacallan	   {0xff,0xfd,0xfc,0x02,0x10,0x22,0x28},
241dfe64dd3Smacallan	   {0xff,0xff,0xfc,0x00,0x0f,0x22,0x28},
242dfe64dd3Smacallan	   {0x01,0xfe,0xfb,0xff,0x0e,0x23,0x2c},
243dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfd,0x0d,0x24,0x2e},
244dfe64dd3Smacallan	   {0x01,0xff,0xfb,0xfb,0x0c,0x25,0x32} }}
245dfe64dd3Smacallan};
246dfe64dd3Smacallan
247dfe64dd3Smacallan/*     TV scaling data for video bridges
248dfe64dd3Smacallan */
249dfe64dd3Smacallantypedef struct _XGITVVScale {
250dfe64dd3Smacallan        unsigned short ScaleVDE;
251dfe64dd3Smacallan	int sindex;
252dfe64dd3Smacallan	unsigned short RealVDE;
253dfe64dd3Smacallan	unsigned short reg[24];
254dfe64dd3Smacallan} MyXGITVVScale, *MyXGITVVScalePtr;
255dfe64dd3Smacallan
256dfe64dd3Smacallanstatic const MyXGITVVScale XGITVVScale[] = {
257dfe64dd3Smacallan      { 0x01D6, 3, 480,					/* NTSC 640 */
258dfe64dd3Smacallan        { 0x037C, 0x02B0, 0x00EF, 0x01FA, 0x01E7, 0x01E9,
259dfe64dd3Smacallan          0x0000, 0x004C, 0x008F, 0x037C, 0x01FB, 0x00D4,
260dfe64dd3Smacallan	  0x037C, 0x02CB, 0x0049, 0x01FB, 0x01EE, 0x01F0,
261dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x037C, 0x01FB, 0x00E0 }
262dfe64dd3Smacallan      },
263dfe64dd3Smacallan      { 0x01CC, 2, 480,
264dfe64dd3Smacallan        { 0x0369, 0x02AD, 0x00E7, 0x01FF, 0x01E8, 0x01EB,
265dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0369, 0x0200, 0x00D4,
266dfe64dd3Smacallan	  0x0369, 0x02C6, 0x003A, 0x0200, 0x01F0, 0x01F3,
267dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0369, 0x0200, 0x00E0 }
268dfe64dd3Smacallan      },
269dfe64dd3Smacallan      { 0x01C2, 1, 480,
270dfe64dd3Smacallan        { 0x0356, 0x02AB, 0x00E0, 0x0204, 0x01E9, 0x01EC,
271dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0356, 0x0205, 0x00D4,
272dfe64dd3Smacallan	  0x0356, 0x02C1, 0x002B, 0x0205, 0x01F3, 0x01F6,
273dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0356, 0x0205, 0x00E0 }
274dfe64dd3Smacallan      },
275dfe64dd3Smacallan      { 0x01B8, 0, 480, /* default */
276dfe64dd3Smacallan        { 0x0343, 0x02A9, 0x00DA, 0x0209, 0x01EA, 0x01ED,
277dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0343, 0x020A, 0x00D4,
278dfe64dd3Smacallan	  0x0343, 0x02BD, 0x001F, 0x020A, 0x01F5, 0x01F8,
279dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0343, 0x020A, 0x00E0 }
280dfe64dd3Smacallan      },
281dfe64dd3Smacallan      { 0x01AE, -1, 480,
282dfe64dd3Smacallan        { 0x035B, 0x02AC, 0x00E3, 0x020E, 0x01EC, 0x01F0,
283dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x035B, 0x020F, 0x0152,
284dfe64dd3Smacallan	  0x035B, 0x02C3, 0x0031, 0x020F, 0x01F8, 0x01FC,
285dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x035B, 0x020F, 0x015E }
286dfe64dd3Smacallan      },
287dfe64dd3Smacallan      { 0x01A4, -2, 480,
288dfe64dd3Smacallan        { 0x0347, 0x02A9, 0x00DB, 0x0213, 0x01ED, 0x01F1,
289dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0347, 0x0214, 0x0102,
290dfe64dd3Smacallan	  0x0347, 0x02BE, 0x0022, 0x0214, 0x01FA, 0x01FE,
291dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0347, 0x0214, 0x010E }
292dfe64dd3Smacallan      },
293dfe64dd3Smacallan      { 0x019A, -3, 480,
294dfe64dd3Smacallan        { 0x0333, 0x02A7, 0x00D4, 0x0218, 0x01EE, 0x01F2,
295dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0333, 0x0219, 0x016A,
296dfe64dd3Smacallan	  0x0333, 0x02B9, 0x0013, 0x0219, 0x01FD, 0x0201,
297dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0333, 0x0219, 0x016A }
298dfe64dd3Smacallan      },
299dfe64dd3Smacallan      { 0x01D6, 3, 480,					/* NTSC 720 */
300dfe64dd3Smacallan        { 0x037C, 0x0307, 0x005D, 0x01FB, 0x01EE, 0x01F0,
301dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x037C, 0x01FB, 0x0090 }
302dfe64dd3Smacallan      },
303dfe64dd3Smacallan      { 0x01CC, 2, 480,
304dfe64dd3Smacallan        { 0x0369, 0x0302, 0x004E, 0x0200, 0x01F0, 0x01F3,
305dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0369, 0x0200, 0x0090 }
306dfe64dd3Smacallan      },
307dfe64dd3Smacallan      { 0x01C2, 1, 480,
308dfe64dd3Smacallan        { 0x0356, 0x02FD, 0x003F, 0x0205, 0x01F3, 0x01F6,
309dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0356, 0x0205, 0x0090 }
310dfe64dd3Smacallan      },
311dfe64dd3Smacallan      { 0x01B8, 0, 480, /* default */
312dfe64dd3Smacallan        { 0x0343, 0x02F9, 0x0033, 0x020A, 0x01F5, 0x01F8,
313dfe64dd3Smacallan	  0x0000, 0x004C, 0x008F, 0x0343, 0x020A, 0x0090 }
314dfe64dd3Smacallan      },
315dfe64dd3Smacallan      { 0x01AE, -1, 480,
316dfe64dd3Smacallan        { 0x035B, 0x02FF, 0x0045, 0x020F, 0x01F8, 0x01FC,
317dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x035B, 0x020F, 0x010E }
318dfe64dd3Smacallan      },
319dfe64dd3Smacallan      { 0x01A4, -2, 480,
320dfe64dd3Smacallan        { 0x0347, 0x02FA, 0x0036, 0x0214, 0x01FA, 0x01FE,
321dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0347, 0x0214, 0x00BE }
322dfe64dd3Smacallan      },
323dfe64dd3Smacallan      { 0x019A, -3, 480,
324dfe64dd3Smacallan        { 0x0333, 0x02F5, 0x0027, 0x0219, 0x01FD, 0x0201,
325dfe64dd3Smacallan	  0x0000, 0x0050, 0x008F, 0x0333, 0x0219, 0x0136 }
326dfe64dd3Smacallan      },
327dfe64dd3Smacallan      { 0x01D6, 3, 600,					/* NTSC 800 */
328dfe64dd3Smacallan        { 0x0438, 0x0353, 0x0099, 0x0272, 0x025F, 0x0261,
329dfe64dd3Smacallan	  0x0000, 0x0073, 0x008F, 0x0438, 0x0273, 0x020A,
330dfe64dd3Smacallan	  0x0438, 0x0372, 0x00FE, 0x0273, 0x0266, 0x0268,
331dfe64dd3Smacallan	  0x0000, 0x0073, 0x008F, 0x0438, 0x0273, 0x020A }
332dfe64dd3Smacallan      },
333dfe64dd3Smacallan      { 0x01CC, 2, 600,
334dfe64dd3Smacallan        { 0x0421, 0x0350, 0x0090, 0x0277, 0x0260, 0x0263,
335dfe64dd3Smacallan	  0x0000, 0x0073, 0x008F, 0x0421, 0x0278, 0x020A,
336dfe64dd3Smacallan	  0x0421, 0x036C, 0x00EC, 0x0278, 0x0268, 0x026B,
337dfe64dd3Smacallan	  0x0000, 0x0073, 0x008F, 0x0421, 0x0278, 0x020A }
338dfe64dd3Smacallan      },
339dfe64dd3Smacallan      { 0x01C2, 1, 600,
340dfe64dd3Smacallan        { 0x0413, 0x034F, 0x008C, 0x027C, 0x0261, 0x0264,
341dfe64dd3Smacallan	  0x0000, 0x0074, 0x008F, 0x0413, 0x027D, 0x01FE,
342dfe64dd3Smacallan	  0x0413, 0x0369, 0x00E3, 0x027D, 0x026B, 0x026E,
343dfe64dd3Smacallan	  0x0000, 0x0074, 0x008F, 0x0413, 0x027D, 0x020C }
344dfe64dd3Smacallan      },
345dfe64dd3Smacallan      { 0x01B8, 0, 600, /* default */
346dfe64dd3Smacallan        { 0x041F, 0x0350, 0x0090, 0x0281, 0x0262, 0x0265,
347dfe64dd3Smacallan	  0x0000, 0x0078, 0x008F, 0x041F, 0x0282, 0x0220,
348dfe64dd3Smacallan	  0x041F, 0x036C, 0x00EC, 0x0282, 0x026D, 0x0270,
349dfe64dd3Smacallan	  0x0001, 0x0078, 0x008F, 0x041F, 0x0282, 0x0220 }
350dfe64dd3Smacallan      },
351dfe64dd3Smacallan      { 0x01AE, -1, 600,
352dfe64dd3Smacallan        { 0x0407, 0x034D, 0x0087, 0x0286, 0x0264, 0x0268,
353dfe64dd3Smacallan	  0x0000, 0x0078, 0x008F, 0x0407, 0x0287, 0x0220,
354dfe64dd3Smacallan	  0x0407, 0x0366, 0x00DA, 0x0287, 0x0270, 0x0274,
355dfe64dd3Smacallan	  0x0001, 0x0078, 0x008F, 0x0407, 0x0287, 0x0220 }
356dfe64dd3Smacallan      },
357dfe64dd3Smacallan      { 0x01A4, -2, 600,
358dfe64dd3Smacallan        { 0x03EF, 0x034A, 0x007E, 0x028B, 0x0265, 0x0269,
359dfe64dd3Smacallan	  0x0000, 0x0078, 0x008F, 0x03EF, 0x028C, 0x0220,
360dfe64dd3Smacallan	  0x03EF, 0x0360, 0x00C8, 0x028C, 0x0272, 0x0276,
361dfe64dd3Smacallan	  0x0001, 0x0078, 0x008F, 0x03EF, 0x028C, 0x0220 }
362dfe64dd3Smacallan      },
363dfe64dd3Smacallan      { 0x019A, -3, 600,
364dfe64dd3Smacallan        { 0x0429, 0x0351, 0x0093, 0x0290, 0x0266, 0x026A,
365dfe64dd3Smacallan	  0x0000, 0x0082, 0x008F, 0x0429, 0x0291, 0x024E,
366dfe64dd3Smacallan	  0x0429, 0x036E, 0x00F2, 0x0291, 0x0275, 0x0279,
367dfe64dd3Smacallan	  0x0001, 0x0082, 0x008F, 0x0429, 0x0291, 0x024E }
368dfe64dd3Smacallan      },
369dfe64dd3Smacallan      { 0x0230, 3, 480,					/* PAL 640 */
370dfe64dd3Smacallan        { 0x0371, 0x02AE, 0x00EA, 0x01FF, 0x01E8, 0x01EB,
371dfe64dd3Smacallan	  0x0000, 0x0007, 0x0010, 0x0371, 0x0200, 0x0032,
372dfe64dd3Smacallan  	  0x0371, 0x02C8, 0x0040, 0x0200, 0x01F0, 0x01F3,
373dfe64dd3Smacallan	  0x0000, 0x000E, 0x0020, 0x0371, 0x0200, 0x0032 }
374dfe64dd3Smacallan      },
375dfe64dd3Smacallan      { 0x0226, 2, 480,
376dfe64dd3Smacallan        { 0x0383, 0x02B1, 0x00F2, 0x0204, 0x01E9, 0x01EC,
377dfe64dd3Smacallan	  0x0000, 0x0005, 0x000B, 0x0383, 0x0205, 0x0032,
378dfe64dd3Smacallan	  0x0383, 0x02CD, 0x004F, 0x0205, 0x01F3, 0x01F6,
379dfe64dd3Smacallan	  0x0000, 0x0005, 0x000B, 0x0383, 0x0205, 0x0032 }
380dfe64dd3Smacallan      },
381dfe64dd3Smacallan      { 0x021C, 1, 480,
382dfe64dd3Smacallan        { 0x035F, 0x02AC, 0x00E4, 0x0209, 0x01EA, 0x01ED,
383dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x035F, 0x020A, 0x0032,
384dfe64dd3Smacallan	  0x035F, 0x02C4, 0x0034, 0x020A, 0x01F5, 0x01F8,
385dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x035F, 0x020A, 0x0032 }
386dfe64dd3Smacallan      },
387dfe64dd3Smacallan      { 0x0212, 0, 480, /* default */
388dfe64dd3Smacallan        { 0x034F, 0x02AA, 0x00DE, 0x020E, 0x01EC, 0x01F0,
389dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x034F, 0x020F, 0x0032,
390dfe64dd3Smacallan	  0x034F, 0x02C0, 0x0028, 0x020F, 0x01F8, 0x01FC,
391dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x034F, 0x020F, 0x0032 }
392dfe64dd3Smacallan      },
393dfe64dd3Smacallan      { 0x0208, -1, 480,
394dfe64dd3Smacallan        { 0x033F, 0x02A8, 0x00D8, 0x0213, 0x01ED, 0x01F1,
395dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x033F, 0x0214, 0x0032,
396dfe64dd3Smacallan	  0x033F, 0x02BC, 0x001C, 0x0214, 0x01FA, 0x01FE,
397dfe64dd3Smacallan	  0x0000, 0x0004, 0x0009, 0x033F, 0x0214, 0x0032 }
398dfe64dd3Smacallan      },
399dfe64dd3Smacallan      { 0x01FE, -2, 480,
400dfe64dd3Smacallan        { 0x0395, 0x02B3, 0x00F8, 0x0218, 0x01EE, 0x01F2,
401dfe64dd3Smacallan	  0x0000, 0x0001, 0x0002, 0x0395, 0x0219, 0x0032,
402dfe64dd3Smacallan	  0x0395, 0x02D1, 0x005B, 0x0219, 0x01FD, 0x0201,
403dfe64dd3Smacallan	  0x0000, 0x0001, 0x0002, 0x0395, 0x0219, 0x0032 }
404dfe64dd3Smacallan      },
405dfe64dd3Smacallan      { 0x01F4, -3, 480,
406dfe64dd3Smacallan        { 0x0383, 0x02B1, 0x00F2, 0x021D, 0x01EF, 0x01F3,
407dfe64dd3Smacallan	  0x0000, 0x0001, 0x0002, 0x0383, 0x021E, 0x0032,
408dfe64dd3Smacallan	  0x0383, 0x02CD, 0x004F, 0x021E, 0x01FF, 0x0203,
409dfe64dd3Smacallan	  0x0000, 0x0001, 0x0002, 0x0383, 0x021E, 0x0032 }
410dfe64dd3Smacallan      },
411dfe64dd3Smacallan      { 0x0230, 2, 576,					/* PAL 720 */
412dfe64dd3Smacallan        { 0x03BF, 0x0318, 0x0090, 0x0260, 0x0250, 0x0253,
413dfe64dd3Smacallan	  0x0000, 0x0004, 0x0007, 0x03BF, 0x0260, 0x00E0,
414dfe64dd3Smacallan	  0x6954, 0x6C6C, 0x5320, 0x666F, 0x6169, 0x4220,
415dfe64dd3Smacallan	  0x7265, 0x746E, 0x7373, 0x6E6F, 0x0260, 0x00E0 }
416dfe64dd3Smacallan      },
417dfe64dd3Smacallan      { 0x0226, 1, 576,
418dfe64dd3Smacallan        { 0x03DD, 0x031F, 0x00A5, 0x0265, 0x0253, 0x0256,
419dfe64dd3Smacallan	  0x0000, 0x0003, 0x0005, 0x03DD, 0x0265, 0x013B,
420dfe64dd3Smacallan	  0x7242, 0x756F, 0x6867, 0x2074, 0x6F74, 0x7920,
421dfe64dd3Smacallan	  0x756F, 0x6220, 0x2079, 0x6F6E, 0x2074, 0x2061  }
422dfe64dd3Smacallan      },
423dfe64dd3Smacallan      { 0x021C, 0, 576, /* default */
424dfe64dd3Smacallan        { 0x0437, 0x0336, 0x00EA, 0x026A, 0x0255, 0x0258,
425dfe64dd3Smacallan	  0x0000, 0x0002, 0x0003, 0x0437, 0x026A, 0x0180,
426dfe64dd3Smacallan	  0x656D, 0x6572, 0x5720, 0x7A69, 0x7261, 0x2064,
427dfe64dd3Smacallan	  0x7562, 0x2074, 0x6874, 0x2065, 0x0274, 0x01CE }
428dfe64dd3Smacallan      },
429dfe64dd3Smacallan      { 0x0212, -1, 576,
430dfe64dd3Smacallan        { 0x0423, 0x0331, 0x00DB, 0x026F, 0x0258, 0x025C,
431dfe64dd3Smacallan	  0x0001, 0x0002, 0x0003, 0x0423, 0x026F, 0x01CA,
432dfe64dd3Smacallan	  0x6957, 0x617A, 0x6472, 0x4520, 0x7478, 0x6172,
433dfe64dd3Smacallan	  0x726F, 0x6964, 0x616E, 0x7269, 0x3A65, 0x01CE }
434dfe64dd3Smacallan      },
435dfe64dd3Smacallan      { 0x0208, -2, 576,
436dfe64dd3Smacallan        { 0x040F, 0x032C, 0x00CC, 0x0274, 0x025A, 0x025E,
437dfe64dd3Smacallan	  0x0000, 0x0002, 0x0003, 0x040F, 0x0274, 0x01CA,
438dfe64dd3Smacallan	  0x6854, 0x6D6F, 0x7361, 0x5720, 0x6E69, 0x7369,
439dfe64dd3Smacallan	  0x6863, 0x6F68, 0x6566, 0x2172, 0x027E, 0x01CA }
440dfe64dd3Smacallan      },
441dfe64dd3Smacallan      { 0x01FE, -3, 576,
442dfe64dd3Smacallan        { 0x03FB, 0x0327, 0x00BD, 0x0279, 0x025D, 0x0261,
443dfe64dd3Smacallan	  0x0000, 0x0002, 0x0003, 0x03FB, 0x0279, 0x01CA,
444dfe64dd3Smacallan	   }
445dfe64dd3Smacallan      },
446dfe64dd3Smacallan      { 0x01F4, -4, 576,
447dfe64dd3Smacallan        { 0x03E7, 0x0322, 0x00AE, 0x027E, 0x025F, 0x0263,
448dfe64dd3Smacallan	  0x0000, 0x0002, 0x0003, 0x03E7, 0x027E, 0x01CA,
449dfe64dd3Smacallan	  0x6854, 0x7369, 0x7320, 0x6170, 0x6563, 0x6620,
450dfe64dd3Smacallan	  0x726F, 0x7320, 0x6C61, 0x0365, 0x027F, 0x01FE }
451dfe64dd3Smacallan      },
452dfe64dd3Smacallan      { 0x0230, 3, 600,					/* PAL 800 */
453dfe64dd3Smacallan        { 0x047F, 0x035C, 0x00B4, 0x0277, 0x0260, 0x0263,
454dfe64dd3Smacallan	  0x0000, 0x0005, 0x0007, 0x047F, 0x0278, 0x0170,
455dfe64dd3Smacallan	  0x047F, 0x0384, 0x0034, 0x0278, 0x0268, 0x026B,
456dfe64dd3Smacallan	  0x0000, 0x0005, 0x0007, 0x047F, 0x0278, 0x017E }
457dfe64dd3Smacallan      },
458dfe64dd3Smacallan      { 0x0226, 2, 600,
459dfe64dd3Smacallan        { 0x044B, 0x0356, 0x00A1, 0x027C, 0x0261, 0x0264,
460dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x044B, 0x027D, 0x0150,
461dfe64dd3Smacallan	  0x044B, 0x0377, 0x000D, 0x027D, 0x026B, 0x026E,
462dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x044B, 0x027D, 0x015E }
463dfe64dd3Smacallan      },
464dfe64dd3Smacallan      { 0x021C, 1, 600,
465dfe64dd3Smacallan        { 0x0437, 0x0353, 0x0099, 0x0281, 0x0262, 0x0265,
466dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x0437, 0x0282, 0x0150,
467dfe64dd3Smacallan	  0x0437, 0x0372, 0x00FE, 0x0282, 0x026D, 0x0270,
468dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x0437, 0x0282, 0x015E }
469dfe64dd3Smacallan      },
470dfe64dd3Smacallan      { 0x0212, 0, 600, /* default */
471dfe64dd3Smacallan        { 0x0423, 0x0351, 0x0092, 0x0286, 0x0264, 0x0268,
472dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x0423, 0x0287, 0x01C8,
473dfe64dd3Smacallan	  0x0423, 0x036D, 0x00EF, 0x0287, 0x0270, 0x0274,
474dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x0423, 0x0287, 0x01D6 }
475dfe64dd3Smacallan      },
476dfe64dd3Smacallan      { 0x0208, -1, 600,
477dfe64dd3Smacallan        { 0x040F, 0x034E, 0x008A, 0x028B, 0x0265, 0x0269,
478dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x040F, 0x028C, 0x01A0,
479dfe64dd3Smacallan	  0x040F, 0x0368, 0x00E0, 0x028C, 0x0272, 0x0276,
480dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x040F, 0x028C, 0x01AE }
481dfe64dd3Smacallan      },
482dfe64dd3Smacallan      { 0x01FE, -2, 600,
483dfe64dd3Smacallan        { 0x03FB, 0x034C, 0x0083, 0x0290, 0x0266, 0x026A,
484dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x03FB, 0x0291, 0x01C8,
485dfe64dd3Smacallan	  0x03FB, 0x0363, 0x00D1, 0x0291, 0x0275, 0x0279,
486dfe64dd3Smacallan	  0x0000, 0x0019, 0x0024, 0x03FB, 0x0291, 0x01D6 }
487dfe64dd3Smacallan      },
488dfe64dd3Smacallan      { 0x01F4, -3, 600,
489dfe64dd3Smacallan        { 0x0437, 0x0353, 0x0099, 0x0295, 0x0267, 0x026B,
490dfe64dd3Smacallan	  0x0000, 0x0003, 0x0004, 0x0437, 0x0296, 0x01BF,
491dfe64dd3Smacallan	  0x0437, 0x0372, 0x00FE, 0x0296, 0x0277, 0x027B,
492dfe64dd3Smacallan	  0x0000, 0x0003, 0x0004, 0x0437, 0x0296, 0x01BA }
493dfe64dd3Smacallan      },
494dfe64dd3Smacallan};
495dfe64dd3Smacallan
496098ad5bdSmacallanstatic unsigned const char XGIScalingP1Regs[] = {
497dfe64dd3Smacallan	0x08,0x09,0x0b,0x0c,0x0d,0x0e,0x10,0x11,0x12
498dfe64dd3Smacallan};
499098ad5bdSmacallanstatic unsigned const char XGIScalingP4Regs[] = {
500dfe64dd3Smacallan	0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b
501dfe64dd3Smacallan};
502dfe64dd3Smacallan
503dfe64dd3Smacallanstatic const unsigned char XGI301CScaling[] = {
504dfe64dd3Smacallan
505dfe64dd3Smacallan    /* NTSC/PAL-M/525ip 640x480 */
506dfe64dd3Smacallan
507dfe64dd3Smacallan    0x03,0x1C,0x03,0x7E,0x01,0x1C,0x05,0x7E,0x00,0x1C,0x06,0x7E,0x7F,0x1B,0x09,0x7D,
508dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7D,0x19,0x0D,0x7D,0x7D,0x18,0x0F,0x7C,0x7C,0x16,0x12,0x7C,
509dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x0F,0x18,0x7D,0x7C,0x0D,0x19,0x7E,
510dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7E,0x06,0x1C,0x00,0x7E,0x05,0x1C,0x01,
511dfe64dd3Smacallan
512dfe64dd3Smacallan    0x03,0x1B,0x03,0x7F,0x02,0x1B,0x05,0x7E,0x00,0x1B,0x07,0x7E,0x7F,0x1B,0x09,0x7D,
513dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7D,0x19,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7C,0x16,0x12,0x7C,
514dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x19,0x7E,
515dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7E,0x07,0x1B,0x00,0x7E,0x05,0x1B,0x02,
516dfe64dd3Smacallan
517dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D,
518dfe64dd3Smacallan    0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C,
519dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F,
520dfe64dd3Smacallan    0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02,
521dfe64dd3Smacallan
522dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D,0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D,
523dfe64dd3Smacallan    0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C,0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C,
524dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E,
525dfe64dd3Smacallan    0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02,
526dfe64dd3Smacallan
527dfe64dd3Smacallan    0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x19,0x0A,0x7C,
528dfe64dd3Smacallan    0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x10,0x7C,0x7D,0x15,0x11,0x7D,
529dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x15,0x7D,0x7D,0x10,0x16,0x7D,0x7D,0x0E,0x17,0x7E,
530dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
531dfe64dd3Smacallan
532dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x19,0x07,0x7C,0x02,0x18,0x08,0x7E,0x01,0x18,0x0A,0x7D,
533dfe64dd3Smacallan    0x00,0x17,0x0C,0x7D,0x7F,0x17,0x0E,0x7C,0x7E,0x15,0x0F,0x7E,0x7E,0x14,0x11,0x7D,
534dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x17,0x7E,
535dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x18,0x03,0x7D,0x07,0x19,0x03,
536dfe64dd3Smacallan
537dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x18,0x07,0x7D,0x03,0x18,0x09,0x7C,0x02,0x17,0x0A,0x7D,
538dfe64dd3Smacallan    0x01,0x17,0x0C,0x7C,0x00,0x16,0x0E,0x7C,0x7F,0x15,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
539dfe64dd3Smacallan    0x7E,0x12,0x12,0x7E,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x16,0x7F,
540dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x17,0x02,0x7D,0x09,0x18,0x02,0x7D,0x07,0x18,0x04,
541dfe64dd3Smacallan
542dfe64dd3Smacallan    /* NTSC/PAL-M/525ip 720x480 */
543dfe64dd3Smacallan
544dfe64dd3Smacallan    0x03,0x1C,0x03,0x7E,0x01,0x1C,0x05,0x7E,0x00,0x1C,0x06,0x7E,0x7F,0x1B,0x09,0x7D,
545dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7D,0x19,0x0D,0x7D,0x7D,0x18,0x0F,0x7C,0x7C,0x16,0x12,0x7C,
546dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x0F,0x18,0x7D,0x7C,0x0D,0x19,0x7E,
547dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7E,0x06,0x1C,0x00,0x7E,0x05,0x1C,0x01,
548dfe64dd3Smacallan
549dfe64dd3Smacallan    0x03,0x1B,0x03,0x7F,0x02,0x1B,0x05,0x7E,0x00,0x1B,0x07,0x7E,0x7F,0x1B,0x09,0x7D,
550dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7D,0x19,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7C,0x16,0x12,0x7C,
551dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x19,0x7E,
552dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7E,0x07,0x1B,0x00,0x7E,0x05,0x1B,0x02,
553dfe64dd3Smacallan
554dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D,
555dfe64dd3Smacallan    0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C,
556dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F,
557dfe64dd3Smacallan    0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02,
558dfe64dd3Smacallan
559dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D,0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D,
560dfe64dd3Smacallan    0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C,0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C,
561dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E,
562dfe64dd3Smacallan    0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02,
563dfe64dd3Smacallan
564dfe64dd3Smacallan    0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x19,0x0A,0x7C,
565dfe64dd3Smacallan    0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x10,0x7C,0x7D,0x15,0x11,0x7D,
566dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x15,0x7D,0x7D,0x10,0x16,0x7D,0x7D,0x0E,0x17,0x7E,
567dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
568dfe64dd3Smacallan
569dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x19,0x07,0x7C,0x02,0x18,0x08,0x7E,0x01,0x18,0x0A,0x7D,
570dfe64dd3Smacallan    0x00,0x17,0x0C,0x7D,0x7F,0x17,0x0E,0x7C,0x7E,0x15,0x0F,0x7E,0x7E,0x14,0x11,0x7D,
571dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x17,0x7E,
572dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x18,0x03,0x7D,0x07,0x19,0x03,
573dfe64dd3Smacallan
574dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x18,0x07,0x7D,0x03,0x18,0x09,0x7C,0x02,0x17,0x0A,0x7D,
575dfe64dd3Smacallan    0x01,0x17,0x0C,0x7C,0x00,0x16,0x0E,0x7C,0x7F,0x15,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
576dfe64dd3Smacallan    0x7E,0x12,0x12,0x7E,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x16,0x7F,
577dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x17,0x02,0x7D,0x09,0x18,0x02,0x7D,0x07,0x18,0x04,
578dfe64dd3Smacallan
579dfe64dd3Smacallan    /* NTSC/PAL-M/525i 800x600 */
580dfe64dd3Smacallan
581dfe64dd3Smacallan    0x07,0x15,0x07,0x7D,0x05,0x15,0x08,0x7E,0x04,0x15,0x09,0x7E,0x03,0x15,0x0B,0x7D,
582dfe64dd3Smacallan    0x02,0x14,0x0C,0x7E,0x01,0x14,0x0D,0x7E,0x00,0x13,0x0F,0x7E,0x00,0x12,0x10,0x7E,
583dfe64dd3Smacallan    0x7F,0x11,0x11,0x7F,0x7E,0x10,0x12,0x00,0x7E,0x0F,0x13,0x00,0x7E,0x0D,0x14,0x01,
584dfe64dd3Smacallan    0x7D,0x0C,0x14,0x03,0x7D,0x0B,0x15,0x03,0x7D,0x09,0x15,0x05,0x7D,0x08,0x15,0x06,
585dfe64dd3Smacallan
586dfe64dd3Smacallan    0x07,0x15,0x07,0x7D,0x06,0x15,0x08,0x7D,0x05,0x15,0x09,0x7D,0x04,0x14,0x0B,0x7D,
587dfe64dd3Smacallan    0x03,0x14,0x0C,0x7D,0x02,0x13,0x0D,0x7E,0x01,0x13,0x0E,0x7E,0x00,0x12,0x10,0x7E,
588dfe64dd3Smacallan    0x7F,0x11,0x11,0x7F,0x7F,0x10,0x12,0x7F,0x7E,0x0E,0x13,0x01,0x7E,0x0D,0x13,0x02,
589dfe64dd3Smacallan    0x7E,0x0C,0x14,0x02,0x7D,0x0B,0x14,0x04,0x7D,0x09,0x15,0x05,0x7D,0x08,0x15,0x06,
590dfe64dd3Smacallan
591dfe64dd3Smacallan    0x07,0x14,0x07,0x7E,0x06,0x14,0x08,0x7E,0x05,0x14,0x0A,0x7D,0x04,0x14,0x0B,0x7D,
592dfe64dd3Smacallan    0x03,0x13,0x0C,0x7E,0x02,0x13,0x0D,0x7E,0x01,0x12,0x0E,0x7F,0x00,0x11,0x0F,0x00,
593dfe64dd3Smacallan    0x00,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01,0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x13,0x02,
594dfe64dd3Smacallan    0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x14,0x03,0x7D,0x0A,0x14,0x05,0x7D,0x08,0x14,0x07,
595dfe64dd3Smacallan
596dfe64dd3Smacallan    0x07,0x14,0x07,0x7E,0x06,0x14,0x09,0x7D,0x05,0x14,0x0A,0x7D,0x04,0x13,0x0B,0x7E,
597dfe64dd3Smacallan    0x03,0x13,0x0C,0x7E,0x02,0x12,0x0D,0x7F,0x01,0x12,0x0E,0x7F,0x01,0x11,0x0F,0x7F,
598dfe64dd3Smacallan    0x00,0x10,0x10,0x00,0x7F,0x0F,0x11,0x01,0x7F,0x0E,0x12,0x01,0x7E,0x0D,0x12,0x03,
599dfe64dd3Smacallan    0x7E,0x0C,0x13,0x03,0x7E,0x0B,0x13,0x04,0x7E,0x0A,0x14,0x04,0x7D,0x09,0x14,0x06,
600dfe64dd3Smacallan
601dfe64dd3Smacallan    0x08,0x13,0x08,0x7D,0x07,0x13,0x09,0x7D,0x05,0x13,0x0A,0x7E,0x04,0x13,0x0B,0x7E,
602dfe64dd3Smacallan    0x04,0x12,0x0C,0x7E,0x03,0x12,0x0D,0x7E,0x02,0x11,0x0E,0x7F,0x01,0x10,0x0F,0x00,
603dfe64dd3Smacallan    0x00,0x10,0x10,0x00,0x00,0x0F,0x10,0x01,0x7F,0x0E,0x11,0x02,0x7F,0x0D,0x12,0x02,
604dfe64dd3Smacallan    0x7E,0x0C,0x12,0x04,0x7E,0x0B,0x13,0x04,0x7E,0x0A,0x13,0x05,0x7E,0x09,0x13,0x06,
605dfe64dd3Smacallan
606dfe64dd3Smacallan    0x08,0x13,0x08,0x7D,0x07,0x13,0x09,0x7D,0x06,0x12,0x0A,0x7E,0x05,0x12,0x0B,0x7E,
607dfe64dd3Smacallan    0x04,0x12,0x0C,0x7E,0x03,0x11,0x0D,0x7F,0x02,0x11,0x0E,0x7F,0x01,0x10,0x0E,0x01,
608dfe64dd3Smacallan    0x01,0x0F,0x0F,0x01,0x00,0x0E,0x10,0x02,0x00,0x0E,0x11,0x01,0x7F,0x0D,0x11,0x03,
609dfe64dd3Smacallan    0x7F,0x0C,0x12,0x03,0x7E,0x0B,0x12,0x05,0x7E,0x0A,0x12,0x06,0x7E,0x09,0x13,0x06,
610dfe64dd3Smacallan
611dfe64dd3Smacallan    0x08,0x12,0x08,0x7E,0x07,0x12,0x09,0x7E,0x06,0x12,0x0A,0x7E,0x05,0x12,0x0B,0x7E,
612dfe64dd3Smacallan    0x04,0x11,0x0C,0x7F,0x03,0x11,0x0D,0x7F,0x02,0x10,0x0D,0x01,0x02,0x10,0x0E,0x00,
613dfe64dd3Smacallan    0x01,0x0F,0x0F,0x01,0x00,0x0E,0x10,0x02,0x00,0x0D,0x10,0x03,0x7F,0x0D,0x11,0x03,
614dfe64dd3Smacallan    0x7F,0x0C,0x11,0x04,0x7F,0x0B,0x12,0x04,0x7E,0x0A,0x12,0x06,0x7E,0x09,0x12,0x07,
615dfe64dd3Smacallan
616dfe64dd3Smacallan    /* PAL/PAL-N 640x480 */
617dfe64dd3Smacallan
618dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
619dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
620dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
621dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
622dfe64dd3Smacallan
623dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
624dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
625dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
626dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
627dfe64dd3Smacallan
628dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
629dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
630dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
631dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
632dfe64dd3Smacallan
633dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
634dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
635dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
636dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
637dfe64dd3Smacallan
638dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
639dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
640dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
641dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
642dfe64dd3Smacallan
643dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
644dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
645dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
646dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
647dfe64dd3Smacallan
648dfe64dd3Smacallan    0x00,0x20,0x00,0x00,0x7F,0x20,0x02,0x7F,0x7D,0x20,0x04,0x7F,0x7D,0x1F,0x06,0x7E,
649dfe64dd3Smacallan    0x7C,0x1D,0x09,0x7E,0x7C,0x1B,0x0B,0x7E,0x7C,0x19,0x0E,0x7D,0x7C,0x17,0x11,0x7C,
650dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x11,0x17,0x7C,0x7D,0x0E,0x19,0x7C,0x7E,0x0B,0x1B,0x7C,
651dfe64dd3Smacallan    0x7E,0x09,0x1D,0x7C,0x7F,0x06,0x1F,0x7C,0x7F,0x04,0x20,0x7D,0x00,0x02,0x20,0x7E,
652dfe64dd3Smacallan
653dfe64dd3Smacallan    /* PAL/PAL-N 720x576, 768x576 */
654dfe64dd3Smacallan
655dfe64dd3Smacallan    0x03,0x1C,0x03,0x7E,0x01,0x1C,0x05,0x7E,0x00,0x1C,0x07,0x7D,0x7F,0x1B,0x09,0x7D,
656dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7D,0x19,0x0D,0x7D,0x7D,0x18,0x0F,0x7C,0x7C,0x16,0x12,0x7C,
657dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x0F,0x18,0x7D,0x7C,0x0D,0x19,0x7E,
658dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7E,0x07,0x1C,0x7F,0x7E,0x05,0x1C,0x01,
659dfe64dd3Smacallan
660dfe64dd3Smacallan    0x03,0x1B,0x03,0x7F,0x02,0x1B,0x05,0x7E,0x01,0x1B,0x07,0x7D,0x7F,0x1B,0x09,0x7D,
661dfe64dd3Smacallan    0x7E,0x1A,0x0B,0x7D,0x7E,0x19,0x0D,0x7C,0x7D,0x17,0x10,0x7C,0x7C,0x16,0x12,0x7C,
662dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x16,0x7C,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x19,0x7E,
663dfe64dd3Smacallan    0x7D,0x0B,0x1A,0x7E,0x7D,0x09,0x1B,0x7F,0x7D,0x07,0x1B,0x01,0x7E,0x05,0x1B,0x02,
664dfe64dd3Smacallan
665dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x02,0x1B,0x05,0x7E,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D,
666dfe64dd3Smacallan    0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C,
667dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F,
668dfe64dd3Smacallan    0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1B,0x02,
669dfe64dd3Smacallan
670dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D,0x01,0x1A,0x08,0x7D,0x00,0x1A,0x09,0x7D,
671dfe64dd3Smacallan    0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0E,0x7C,0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C,
672dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E,
673dfe64dd3Smacallan    0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02,
674dfe64dd3Smacallan
675dfe64dd3Smacallan    0x04,0x19,0x04,0x7F,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x19,0x0A,0x7C,
676dfe64dd3Smacallan    0x7F,0x18,0x0C,0x7D,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x10,0x7C,0x7D,0x15,0x11,0x7D,
677dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x15,0x7D,0x7C,0x10,0x16,0x7E,0x7C,0x0E,0x17,0x7F,
678dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
679dfe64dd3Smacallan
680dfe64dd3Smacallan    0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D,
681dfe64dd3Smacallan    0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
682dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E,
683dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
684dfe64dd3Smacallan
685dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x18,0x07,0x7D,0x03,0x18,0x08,0x7D,0x01,0x18,0x0A,0x7D,
686dfe64dd3Smacallan    0x00,0x17,0x0C,0x7D,0x7F,0x16,0x0E,0x7D,0x7F,0x15,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
687dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x16,0x7F,
688dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x18,0x03,0x7D,0x07,0x18,0x04,
689dfe64dd3Smacallan
690dfe64dd3Smacallan    /* PAL/PAL-N 800x600 */
691dfe64dd3Smacallan
692dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x02,0x1A,0x05,0x7F,0x01,0x1A,0x07,0x7E,0x00,0x1A,0x09,0x7D,
693dfe64dd3Smacallan    0x7F,0x19,0x0B,0x7D,0x7E,0x18,0x0D,0x7D,0x7D,0x17,0x10,0x7C,0x7D,0x15,0x12,0x7C,
694dfe64dd3Smacallan    0x7C,0x14,0x14,0x7C,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0D,0x18,0x7F,
695dfe64dd3Smacallan    0x7D,0x0B,0x19,0x7F,0x7D,0x09,0x1A,0x00,0x7D,0x07,0x1A,0x02,0x7E,0x05,0x1A,0x03,
696dfe64dd3Smacallan
697dfe64dd3Smacallan    0x04,0x1A,0x04,0x7E,0x03,0x1A,0x06,0x7D,0x01,0x1A,0x08,0x7D,0x00,0x19,0x0A,0x7D,
698dfe64dd3Smacallan    0x7F,0x19,0x0C,0x7C,0x7E,0x18,0x0E,0x7C,0x7E,0x17,0x10,0x7B,0x7D,0x15,0x12,0x7C,
699dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7C,0x12,0x15,0x7D,0x7C,0x10,0x17,0x7D,0x7C,0x0E,0x18,0x7E,
700dfe64dd3Smacallan    0x7D,0x0C,0x19,0x7E,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x1A,0x01,0x7E,0x06,0x1A,0x02,
701dfe64dd3Smacallan
702dfe64dd3Smacallan    0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x19,0x0A,0x7C,
703dfe64dd3Smacallan    0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x10,0x7C,0x7D,0x15,0x11,0x7D,
704dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x15,0x7D,0x7C,0x10,0x16,0x7E,0x7C,0x0E,0x17,0x7F,
705dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x19,0x00,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
706dfe64dd3Smacallan
707dfe64dd3Smacallan    0x05,0x19,0x05,0x7D,0x03,0x19,0x06,0x7E,0x02,0x19,0x08,0x7D,0x01,0x18,0x0A,0x7D,
708dfe64dd3Smacallan    0x00,0x18,0x0C,0x7C,0x7F,0x17,0x0E,0x7C,0x7E,0x16,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
709dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x16,0x7E,0x7D,0x0E,0x17,0x7E,
710dfe64dd3Smacallan    0x7D,0x0C,0x18,0x7F,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x19,0x02,0x7D,0x06,0x19,0x04,
711dfe64dd3Smacallan
712dfe64dd3Smacallan    0x05,0x18,0x05,0x7E,0x04,0x18,0x07,0x7D,0x03,0x18,0x08,0x7D,0x01,0x18,0x0A,0x7D,
713dfe64dd3Smacallan    0x00,0x17,0x0C,0x7D,0x7F,0x16,0x0E,0x7D,0x7F,0x15,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
714dfe64dd3Smacallan    0x7D,0x13,0x13,0x7D,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x16,0x7F,
715dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x18,0x01,0x7D,0x08,0x18,0x03,0x7D,0x07,0x18,0x04,
716dfe64dd3Smacallan
717dfe64dd3Smacallan    0x06,0x18,0x06,0x7C,0x04,0x18,0x07,0x7D,0x03,0x18,0x09,0x7C,0x02,0x17,0x0A,0x7D,
718dfe64dd3Smacallan    0x01,0x17,0x0C,0x7C,0x00,0x16,0x0E,0x7C,0x7F,0x15,0x0F,0x7D,0x7E,0x14,0x11,0x7D,
719dfe64dd3Smacallan    0x7E,0x12,0x12,0x7E,0x7D,0x11,0x14,0x7E,0x7D,0x0F,0x15,0x7F,0x7D,0x0E,0x16,0x7F,
720dfe64dd3Smacallan    0x7D,0x0C,0x17,0x00,0x7D,0x0A,0x17,0x02,0x7D,0x09,0x18,0x02,0x7D,0x07,0x18,0x04,
721dfe64dd3Smacallan
722dfe64dd3Smacallan    0x06,0x17,0x06,0x7D,0x05,0x17,0x07,0x7D,0x03,0x17,0x09,0x7D,0x02,0x17,0x0A,0x7D,
723dfe64dd3Smacallan    0x01,0x16,0x0C,0x7D,0x00,0x15,0x0E,0x7D,0x7F,0x14,0x0F,0x7E,0x7F,0x13,0x11,0x7D,
724dfe64dd3Smacallan    0x7E,0x12,0x12,0x7E,0x7E,0x11,0x13,0x7E,0x7D,0x0F,0x14,0x00,0x7D,0x0E,0x15,0x00,
725dfe64dd3Smacallan    0x7D,0x0C,0x16,0x01,0x7D,0x0A,0x17,0x02,0x7D,0x09,0x17,0x03,0x7D,0x07,0x17,0x05
726dfe64dd3Smacallan};
727dfe64dd3Smacallan
728dfe64dd3Smacallan
729dfe64dd3Smacallan/* Mandatory functions */
730dfe64dd3Smacallanstatic void XGIIdentify(int flags);
731dfe64dd3Smacallanstatic Bool XGIPreInit(ScrnInfoPtr pScrn, int flags);
732dfe64dd3Smacallanstatic Bool XGIScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
733dfe64dd3Smacallanstatic Bool XGIEnterVT(int scrnIndex, int flags);
734dfe64dd3Smacallanstatic void XGILeaveVT(int scrnIndex, int flags);
735dfe64dd3Smacallanstatic Bool XGICloseScreen(int scrnIndex, ScreenPtr pScreen);
736dfe64dd3Smacallanstatic Bool XGISaveScreen(ScreenPtr pScreen, int mode);
737dfe64dd3Smacallanstatic Bool XGISwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
738dfe64dd3Smacallanstatic void XGIAdjustFrame(int scrnIndex, int x, int y, int flags);
739dfe64dd3Smacallanstatic Bool XGISaveScreenDH(ScreenPtr pScreen, int mode);
740dfe64dd3Smacallan
741dfe64dd3Smacallan/* Optional functions */
742dfe64dd3Smacallanstatic void       XGIFreeScreen(int scrnIndex, int flags);
743dfe64dd3Smacallan
744dfe64dd3Smacallanstatic int      XGIValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose,
745dfe64dd3Smacallan                             int flags);
746dfe64dd3Smacallan/* Internally used functions */
747dfe64dd3Smacallanstatic Bool    XGIMapMem(ScrnInfoPtr pScrn);
748dfe64dd3Smacallanstatic Bool    XGIUnmapMem(ScrnInfoPtr pScrn);
749dfe64dd3Smacallanstatic void    XGISave(ScrnInfoPtr pScrn);
750dfe64dd3Smacallanstatic void    XGIRestore(ScrnInfoPtr pScrn);
751dfe64dd3Smacallanstatic Bool    XGIModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
752dfe64dd3Smacallanstatic void    XGIModifyModeInfo(DisplayModePtr mode);
753dfe64dd3Smacallanstatic void    XGIPreSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode, int viewmode);
754dfe64dd3Smacallanstatic void    XGIPostSetMode(ScrnInfoPtr pScrn, XGIRegPtr xgiReg);
755dfe64dd3Smacallan
756dfe64dd3Smacallan/* static Bool    InRegion(int x, int y, region r); */
757dfe64dd3Smacallan/* #ifdef XGIMERGED
758dfe64dd3Smacallanstatic void    XGIMergePointerMoved(int scrnIndex, int x, int y);
759dfe64dd3Smacallan#endif */
760dfe64dd3SmacallanUSHORT XGI_CalcModeIndex(ScrnInfoPtr pScrn, DisplayModePtr mode,
761dfe64dd3Smacallan    unsigned long VBFlags);
762dfe64dd3Smacallanunsigned char  XGI_GetSetBIOSScratch(ScrnInfoPtr pScrn, USHORT offset, unsigned char value);
763dfe64dd3Smacallan#ifdef DEBUG
764dfe64dd3Smacallanstatic void    XGIDumpModeInfo(ScrnInfoPtr pScrn, DisplayModePtr mode);
765dfe64dd3Smacallan#endif
766dfe64dd3Smacallan
767dfe64dd3Smacallanextern BOOLEAN XGIBIOSSetMode(VB_DEVICE_INFO *XGI_Pr,
768dfe64dd3Smacallan    PXGI_HW_DEVICE_INFO HwDeviceExtension, ScrnInfoPtr pScrn,
769dfe64dd3Smacallan    DisplayModePtr mode);
770dfe64dd3Smacallan
771dfe64dd3Smacallanextern void     XGI_New_GetVBType(VB_DEVICE_INFO *XGI_Pr, PXGI_HW_DEVICE_INFO);
772dfe64dd3Smacallan
773dfe64dd3Smacallanextern BOOLEAN 	XGIBIOSSetModeCRT1(VB_DEVICE_INFO *XGI_Pr,
774dfe64dd3Smacallan    PXGI_HW_DEVICE_INFO HwDeviceExtension, ScrnInfoPtr pScrn,
775dfe64dd3Smacallan    DisplayModePtr mode);
776