1 /*
2  * Copyright 2005 Terry Lewis. All Rights Reserved.
3  * Copyright 2005 Philip Langdale. All Rights Reserved. (CH7011 additions)
4  * Copyright 1998-2003 VIA Technologies, Inc. All Rights Reserved.
5  * Copyright 2001-2003 S3 Graphics, Inc. All Rights Reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a
8  * copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation
10  * the rights to use, copy, modify, merge, publish, distribute, sub license,
11  * and/or sell copies of the Software, and to permit persons to whom the
12  * Software is furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the
15  * next paragraph) shall be included in all copies or substantial portions
16  * of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
21  * VIA, S3 GRAPHICS, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
22  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
23  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24  * DEALINGS IN THE SOFTWARE.
25  */
26 
27 #ifndef _VIA_CH7xxx_H_
28 #define _VIA_CH7xxx_H_ 1
29 
30 /*+#define     VIA_BIOS_MAX_NUM_TV_REG         0x80
31 +#define     VIA_BIOS_MAX_NUM_TV_CRTC        32
32 +#define     VIA_BIOS_NUM_TV_SPECIAL_REG     8
33 +#define     VIA_BIOS_MAX_NUM_TV_PATCH       8
34 +#define     VIA_BIOS_NUM_TV_OTHER           16
35 */
36 
37 #define     VIA_BIOS_TABLE_NUM_TV_REG   0x23 /* 0x00 - 0x22 */
38 
39 #define     CH_7011_MAX_NUM_REG         0x4C /* 0x00 - 0x4B */
40 #define     CH_7019_MAX_NUM_REG         0x80 /* 0x00 - 0x7F */
41 
42 #define     VIA_BIOS_MAX_NUM_TV_CRTC        32
43 #define     VIA_BIOS_NUM_TV_SPECIAL_REG     8
44 #define     VIA_BIOS_MAX_NUM_TV_PATCH       8
45 #define     VIA_BIOS_NUM_TV_OTHER           16
46 
47 struct CH7xxxModePrivate {
48     char   id[12]; /* "CH7xxx" */
49     CARD8  Standard;
50 };
51 
52 static struct CH7xxxModePrivate CH7xxxModePrivateNTSC = {
53     { 'C', 'H', '7', 'x', 'x', 'x', 0, 0, 0, 0, 0, 0 },
54     TVTYPE_NTSC,
55 };
56 
57 static struct CH7xxxModePrivate CH7xxxModePrivatePAL = {
58     { 'C', 'H', '7', 'x', 'x', 'x', 0, 0, 0, 0, 0, 0 },
59     TVTYPE_PAL,
60 };
61 
62 
63 #define MODEPREFIX(name) NULL, NULL, name, 0,M_T_DEFAULT
64 #define MODESUFFIXNTSC       0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,\
65 	sizeof(struct CH7xxxModePrivate),(void *)&CH7xxxModePrivateNTSC,0,0.0,0.0
66 #define MODESUFFIXPAL        0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,\
67 	sizeof(struct CH7xxxModePrivate),(void *)&CH7xxxModePrivatePAL,0,0.0,0.0
68 
69 /* dotclock is just for modeline validation */
70 static DisplayModeRec CH7011Modes[]={
71     { MODEPREFIX("640x480"),      23520,  640,  656,  744,  784, 0,  480,  487,  491,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
72     { MODEPREFIX("640x480"),      30000,  640,  680,  808, 1000, 0,  480,  520,  523,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
73     { MODEPREFIX("800x600"),      39900,  800,  840,  976, 1064, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
74     { MODEPREFIX("800x600"),      34500,  800,  816,  880,  920, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
75     { MODEPREFIX("1024x768"),     54810, 1024, 1032, 1088, 1160, 0,  768,  780,  792,  945, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
76     { MODEPREFIX("1024x768"),     57000, 1024, 1040, 1112, 1200, 0,  768,  829,  840,  950, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
77 
78     { MODEPREFIX("640x480Over"),    20160,  640,  648,  704,  720, 0,  480,  487,  491,  560, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
79     { MODEPREFIX("640x480Over"),    21000,  640,  664,  792,  840, 0,  480,  485,  491,  500, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
80     { MODEPREFIX("800x600Over"),    35910,  800,  840,  984, 1080, 0,  600,  601,  604,  665, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
81     { MODEPREFIX("800x600Over"),    32500,  800,  832,  928, 1000, 0,  600,  600,  604,  650, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
82     { MODEPREFIX("1024x768Over"),   50400, 1024, 1040, 1112, 1200, 0,  768,  772,  776,  840, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
83     { MODEPREFIX("1024x768Over"),   49500, 1024, 1032, 1112, 1200, 0,  768,  771,  776,  825, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
84 
85     { MODEPREFIX("720x480"),      25200,  720,  728,  776,  840, 0,  480,  511,  515,  600, 0, V_NHSYNC | V_PVSYNC, MODESUFFIXNTSC },
86     { MODEPREFIX("720x576"),      28500,  720,  728,  744,  760, 0,  576,  635,  643,  750, 0, V_NHSYNC | V_PVSYNC, MODESUFFIXPAL  },
87     { MODEPREFIX("720x480Noscale"), 27972,  720,  736,  768,  888, 0,  480,  480,  483,  525, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
88     { MODEPREFIX("720x576Noscale"), 28000,  720,  728,  864,  896, 0,  576,  576,  579,  625, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
89 };
90 
91 static DisplayModeRec CH7019Modes[]={
92     { MODEPREFIX("640x480"),      23520,  640,  656,  744,  784, 0,  480,  487,  491,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
93     { MODEPREFIX("640x480"),      30000,  640,  680,  808, 1000, 0,  480,  520,  523,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
94     { MODEPREFIX("800x600"),      39900,  800,  840,  976, 1064, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
95     { MODEPREFIX("800x600"),      34500,  800,  816,  880,  920, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
96     { MODEPREFIX("1024x768"),     54810, 1024, 1032, 1088, 1160, 0,  768,  780,  792,  945, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
97     { MODEPREFIX("1024x768"),     57000, 1024, 1040, 1112, 1200, 0,  768,  829,  840,  950, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
98     { MODEPREFIX("640x480Over"),    20160,  640,  648,  704,  720, 0,  480,  487,  491,  560, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
99     { MODEPREFIX("640x480Over"),    21000,  640,  664,  792,  840, 0,  480,  485,  491,  500, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
100     { MODEPREFIX("800x600Over"),    35910,  800,  840,  984, 1080, 0,  600,  601,  604,  665, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
101     { MODEPREFIX("800x600Over"),    32500,  800,  832,  928, 1000, 0,  600,  600,  604,  650, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
102     { MODEPREFIX("1024x768Over"),   50400, 1024, 1040, 1112, 1200, 0,  768,  772,  776,  840, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
103     { MODEPREFIX("1024x768Over"),   49500, 1024, 1032, 1112, 1200, 0,  768,  771,  776,  825, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
104 };
105 
106 
107 typedef struct _VIATVMASKTABLE {
108     CARD8   TV[VIA_BIOS_TABLE_NUM_TV_REG];
109     CARD8   CRTC1[VIA_BIOS_MAX_NUM_TV_CRTC];
110     CARD8   CRTC2[VIA_BIOS_MAX_NUM_TV_CRTC];
111     CARD8   misc1;
112     CARD8   misc2;
113     int     numTV;
114     int     numCRTC1;
115     int     numCRTC2;
116 } VIABIOSTVMASKTableRec, *VIABIOSTVMASKTablePtr;
117 
118 struct CH7xxxTableRec {
119     char*   name;
120     CARD16  Width;
121     CARD16  Height;
122     int     Standard;
123 
124     CARD8   TV[VIA_BIOS_TABLE_NUM_TV_REG];       /*35*/
125     CARD8   CRTC1[VIA_BIOS_MAX_NUM_TV_CRTC];
126     CARD8   Misc1[VIA_BIOS_NUM_TV_SPECIAL_REG];
127     CARD8   Misc2[VIA_BIOS_NUM_TV_SPECIAL_REG];
128 /*merge these three*/
129     CARD8   CRTC2_8BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
130     CARD8   CRTC2_16BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
131     CARD8   CRTC2_32BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
132     CARD16  Patch2[VIA_BIOS_MAX_NUM_TV_PATCH];
133     CARD16  DotCrawlNTSC[VIA_BIOS_NUM_TV_OTHER];
134 };
135 
136 static struct CH7xxxTableRec
137 CH7011Table[] = {
138     { "640x480", 640,  480, TVTYPE_NTSC,
139       { 0X6A, /* 0x00		Mode 17 */
140         0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
141         0X7E, /* 0x02 VBW	Default 0xBE (was 0x7E) */
142         0X8B, /* 0x03 TE	Decent Text 0x8B (was 8D) */
143         0X28, /* 0x04 SAV	Default 0x50 (was 0x21) */
144         0X2C, /* 0x05 HP	Default 0x50 (was 0x2E) */
145         0X05, /* 0x06 VP	Default 0x00 (was 0x04) */
146         0X83, /* 0x07 BL	Default 0x83 */
147         0X03, /* 0x08 CE	Default 0x03 */
148         0X80, /* 0x09 TPC	Default 0x80 */
149         0X3F, /* 0x0A PLLM	Default 0x3F */
150         0X7E, /* 0x0B PLLN	Default 0x7E */
151         0X20, /* 0x0C FSCI	Default 0x20 */
152         0X80, /* 0x0D FSCI	Default 0x80 */
153         0X00, /* 0x0E FSCI	Default 0x08 (was 00) */
154         0X00, /* 0x0F FSCI	Default 0xEB (was 00) */
155         0,    /* 0x10 CIVC */
156         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
157         0X48, /* 0x1C */
158         0X40, /* 0x1D */
159         0XD2, /* 0x1E */
160         0X80, /* 0x1F */
161         0X40, /* 0x20 */
162         0,    /* 0x21 */
163         0,    /* 0x22 */ },
164       { 0X5D, 0X4F, 0X4F, 0X81, 0X52, 0X9E, 0X56, 0XBA, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X8, 0, 0XDF, 0, 0, 0XDF, 0X57, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
165       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
166       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
167       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
168       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
169       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
170       { 0X2284, 0, 0, 0, 0, 0, 0, 0 },
171       { 0X2, 0X811, 0X9217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
172     },
173 
174     { "640x480", 640,  480, TVTYPE_PAL,
175       { 0X61, /* 0x00         PAL Mode 14 non-OS 640x480 1:1 */
176         0X27, /* 0x01 FF      Default 0x27 (was 7F) */
177         0XBE, /* 0x02 VBW     Default 0xBE (was 0x7E) */
178         0X8B, /* 0x03 TE      Decent Text 0x8B (was 8D) */
179         0X28, /* 0x04 SAV     Default 0x50 (was 0x21) */
180         0X2C, /* 0x05 HP      Default 0x50 (was 0x2E) */
181         0X05, /* 0x06 VP      Default 0x00 (was 0x04) */
182         0X83, /* 0x07 BL      Default 0x83 */
183         0X01, /* 0x08 CE      Default 0x03 */
184         0X81, /* 0x09 TPC     Default 0x80 */
185         0X04, /* 0x0A PLLM    Default 0x3F */
186         0X09, /* 0x0B PLLN    Default 0x7E */
187         0X26, /* 0x0C FSCI    Default 0x20 */
188         0X6F, /* 0x0D FSCI    Default 0x80 */
189         0X1F, /* 0x0E FSCI    Default 0x08 */
190         0XD0, /* 0x0F FSCI    Default 0xEB */
191         0,    /* 0x10 CIVC */
192         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
193         0X48, /* 0x1C */
194         0X40, /* 0x1D */
195         0XD2, /* 0x1E */
196         0X80, /* 0x1F */
197         0X40, /* 0x20 */
198         0,    /* 0x21 */
199         0,    /* 0x22 */ },
200       { 0X64, 0X4F, 0X4F, 0X88, 0X53, 0X83, 0X6F, 0XBA, 0, 0X40, 0, 0, 0, 0, 0, 0, 0X11, 0, 0XDF, 0, 0, 0XDF, 0X70, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
201       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
202       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
203       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
204       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
205       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
206       { 0X3284, 0, 0, 0, 0, 0, 0, 0 },
207       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
208     },
209 
210     { "800x600", 800,  600, TVTYPE_NTSC,
211       { 0XCF, /* 0x00		Mode 29 */
212         0X27, /* 0x01 FF	Default 0x27  (was 7F) */
213         0XBE, /* 0x02 VBW	Default 0xBE (was 0x76) */
214         0X8B, /* 0x03 TE	Decent Text 0x8B (was 8F) */
215         0X59, /* 0x04 SAV*/
216         0X3C, /* 0x05 HP */
217         0X15, /* 0x06 VP */
218         0X66, /* 0x07 BL	Default 0x83 */
219         0X3,  /* 0x08 CE	Default 0x03 */
220         0X88,
221         0X59,
222         0X2E,
223         0X19,
224         0X8B,
225         0X3A,
226         0X63,
227         0,
228         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
229         0X48,
230         0X40,
231         0XD2,
232         0X80,
233         0X40,
234         0,
235         0, },
236         { 0X80, 0X63, 0X63, 0X84, 0X69, 0X1A, 0XEC, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X5C, 0, 0X57, 0, 0, 0X57, 0XED, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
237         { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
238         { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
239         { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
240         { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
241         { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
242         { 0X5A84, 0, 0, 0, 0, 0, 0, 0 },
243         { 0X2, 0X811, 0X5117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
244     },
245 
246     { "800x600", 800,  600, TVTYPE_PAL,
247       { 0XC3, 0X7F, 0XE0, 0X8F, 0X39, 0X3F, 0X38, 0X70, 0X3, 0X81, 0X21, 0X56, 0X1F, 0X87, 0X28, 0X18,
248         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
249         0X40, 0, 0, },
250       { 0X73, 0X63, 0X63, 0X97, 0X67, 0X91, 0XEC, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X7E, 0, 0X57, 0, 0, 0X57, 0XED, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
251       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
252       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
253       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
254       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
255       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
256       { 0X3A84, 0, 0, 0, 0, 0, 0, 0 },
257       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
258     },
259 
260 /*check these two modes*/
261     { "1024x768", 1024, 768, TVTYPE_NTSC,
262       { 0XEE,
263         0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
264         0X7E,
265         0X87,
266         0X49,
267         0X32,
268         0X9,
269         0X83,
270         0X3,
271         0X88,
272         0X47,
273         0X4D,
274         0X1B,
275         0XE4,
276         0X89,
277         0X51,
278         0,
279         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280         0X48,
281         0X40,
282         0XD2,
283         0X80,
284         0X40,
285         0,
286         0, },
287       { 0X8C, 0X7F, 0X7F, 0X90, 0X81, 0X8, 0XAF, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0XC, 0, 0XFF, 0, 0, 0XFF, 0XB0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
288       { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
289       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
290       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
291       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
292       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
293       { 0X4A84, 0, 0, 0, 0, 0, 0, 0 },
294       { 0X2, 0X811, 0X6717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
295     },
296 
297     { "1024x768", 1024, 768, TVTYPE_PAL,
298       { 0XE5, 0X7F, 0XE0, 0X8F, 0XC1, 0X3E, 0X4A, 0X70, 0, 0X81, 0X7, 0X2A, 0X20, 0X6D, 0XC2, 0XD7,
299         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
300         0X40, 0, 0, },
301       { 0XAA, 0X7F, 0X7F, 0X8E, 0X83, 0X97, 0XE6, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X11, 0, 0XFF, 0, 0, 0XFF, 0XE7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
302       { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
303       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
304       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
305       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
306       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
307       { 0XC284, 0, 0, 0, 0, 0, 0, 0 },
308       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
309     },
310 
311     { "640x480Over", 640,  480, TVTYPE_NTSC,
312       { 0X69, /* 0x00 DM	Mode 16 640x480 1/1 */
313         0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
314         0X7E, /* 0x02 VBW	Default 0xBE (was 7E) */
315         0X03, /* 0x03 TE	Decent text 0x83 (was 8D) */
316         0X18, /* 0x04 SAV	Default 0x50 (was 10) */
317         0X19, /* 0x05 HP	Default 0x50 */
318         0XFB, /* 0x06 VP	Default 0x00 */
319         0X83, /* 0x07 BL	Default 0x83 (NTSC-J 66) */
320         0X03, /* 0x08 CE	Default 0x03 */
321         0X80, /* 0x09 TPC	Default 0x80 */
322         0X3F, /* 0x0A PLLM	Default 0x3F */
323         0X6E, /* 0x0B PLLN	Default 0x7E */
324         0X25, /* 0x0C FSCI	Default 0x25 */
325         0X24, /* 0x0D FSCI	Default 0x24 */
326         0X92, /* 0x0E FSCI	Default 0x9C (was 92) */
327         0X49, /* 0x0F FSCI	Default 0x7A (was 49) */
328         0X00, /* 0x10 CIVC	Default 0x01 */
329         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
330         0X48, /* 0x1C CM	Default 0x00 */
331         0X40, /* 0x1D IC	Default 0x88 */
332         0XD2, /* 0x1E GPIO	Default 0xC0 */
333         0X80, /* 0x1F IDF	Default	0x00 */
334         0X40, /* 0x20 CD */
335         0X00, /* 0x21 DC */
336         0X00, /* 0x22 BCO	Default 0x00 */ },
337 /* why is this #ifed, what's the difference? */
338 #if 0
339         { 0X55, 0X4F, 0X4F, 0X99, 0X51, 0X18, 0X2E, 0X3E, 0, 0X40, 0, 0, 0, 0, 0, 0, 0XE7, 0, 0XDF, 0, 0, 0XDF, 0X2F, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
340         { 0X20, 0X40, 0, 0, 0X87, 0X1C, 0, 0 },
341         { 0, 0, 0, 0X87, 0X1C, 0, 0, 0 },
342         { 0XCF, 0X7F, 0X7F, 0XCF, 0X92, 0X22, 0X87, 0XBC, 0X2F, 0XDF, 0XDF, 0X2F, 0X11, 0XA, 0XFF, 0X24, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
343         { 0XCF, 0X7F, 0X7F, 0XCF, 0X92, 0X22, 0X87, 0XBC, 0X2F, 0XDF, 0XDF, 0X2F, 0X11, 0XA, 0XFF, 0X24, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
344         { 0XCF, 0X7F, 0X7F, 0XCF, 0X92, 0X22, 0X87, 0XBC, 0X2F, 0XDF, 0XDF, 0X2F, 0X11, 0XA, 0XFF, 0X24, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
345         { 0X7107, 0, 0, 0, 0, 0, 0, 0 },
346         { 0X3, 0X811, 0XF416, 0X9F17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
347 #else
348         { 0X5D, 0X4F, 0X4F, 0X81, 0X52, 0X9E, 0XB, 0X3E, 0, 0X60, 0, 0, 0, 0, 0, 0, 0XEE, 0, 0XDF, 0, 0, 0XDF, 0XC, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
349         { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
350         { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
351         { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
352         { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
353         { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
354         { 0X1184, 0, 0, 0, 0, 0, 0, 0 },
355         { 0X2, 0X811, 0XAD17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
356 #endif
357     },
358 
359     { "640x480Over", 640,  480, TVTYPE_PAL,
360       { 0X60, /* 0x00 DM      Mode 13 PAL 640x480 OS 5/4 */
361         0X27, /* 0x01 FF      Default 0x27 (was 7F) */
362         0XBE, /* 0x02 VBW     Default 0xBE (was 7E) */
363         0X83, /* 0x03 TE      Decent text 0x8B (was 8D) */
364         0X10, /* 0x04 SAV     Default 0x50 */
365         0X19, /* 0x05 HP      Default 0x50 */
366         0XFB, /* 0x06 VP      Default 0x00 */
367         0X83, /* 0x07 BL      Default 0x83 */
368         0X01, /* 0x08 CE      Default 0x03 */
369         0X81, /* 0x09 TPC     Default 0x80 */
370         0X0D, /* 0x0A PLLM    Default 0x3F */
371         0X0B, /* 0x0B PLLN    Default 0x7E */
372         0X30, /* 0x0C FSCI    Default 0x25 */
373         0X0A, /* 0x0D FSCI    Default 0x24 */
374         0XE7, /* 0x0E FSCI    Default 0x9C */
375         0XC4, /* 0x0F FSCI    Default 0x7A */
376         0X00, /* 0x10 CIVC    Default 0x01 */
377         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
378         0X48, /* 0x1C CM      Default 0x00 */
379         0X40, /* 0x1D IC      Default 0x88 */
380         0XD2, /* 0x1E GPIO    Default 0xC0 */
381         0X80, /* 0x1F IDF     Default 0x00 */
382         0X40, /* 0x20 CD */
383         0X00, /* 0x21 DC */
384         0X00, /* 0x22 BCO     Default 0x00 */ },
385       { 0X64, 0X4F, 0X4F, 0X88, 0X53, 0X83, 0XF2, 0X1F, 0, 0X40, 0, 0, 0, 0, 0, 0, 0XE5, 0, 0XDF, 0, 0, 0XDF, 0XF3, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
386       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
387       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
388       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
389       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
390       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
391       { 0X3184, 0, 0, 0, 0, 0, 0, 0 },
392       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
393     },
394 
395     { "800x600Over", 800,  600, TVTYPE_NTSC,
396         { 0XCE, /* 0x00		Mode 28 */
397           0X27, /* 0x01		Default 0x27 (was 7F) */
398           0XBE, /* 0x02		Default 0xBE (was 76) */
399           0X8F, /* 0x03 */
400           0X51, /* 0x04 */
401           0X2E, /* 0x05 */
402           0X10, /* 0x06 */
403           0X83, /* 0x07 */
404           0X3,  /* 0x08 */
405           0X81, /* 0x09 */
406           0X13, /* 0x0A */
407           0X3E, /* 0x0B */
408           0X1C, /* 0x0C */
409           0,    /* 0x0D */
410           0,    /* 0x0E */
411           0,    /* 0x0F */
412           0,    /* 0x10 */
413           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414           0X48,
415           0X40,
416           0XD2,
417           0X80,
418           0X40, 0, 0, },
419         { 0X7D, 0X63, 0X63, 0X81, 0X69, 0X18, 0XBA, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X5A, 0, 0X57, 0, 0, 0X57, 0XBB, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
420         { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
421         { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
422         { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
423         { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
424         { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
425         { 0X5284, 0, 0, 0, 0, 0, 0, 0 },
426         { 0X2, 0X811, 0XD017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
427     },
428 
429     { "800x600Over", 800,  600, TVTYPE_PAL,
430         { 0XC1, 0X7F, 0XE0, 0X8F, 0X20, 0X1D, 0X36, 0X70, 0X3, 0X94, 0X39, 0X87, 0X26, 0X79, 0X8C, 0XC,
431           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
432           0X40, 0, 0, },
433       { 0X71, 0X63, 0X63, 0X95, 0X67, 0X90, 0X6F, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X57, 0, 0X57, 0, 0, 0X57, 0X70, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
434       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
435       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
436       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
437       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
438       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
439       { 0X2184, 0, 0, 0, 0, 0, 0, 0 },
440       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
441     },
442 
443     { "1024x768Over", 1024,  768, TVTYPE_NTSC,
444       { 0XED,
445         0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
446         0X7E,
447         0X87,
448         0X49,
449         0X20,
450         0,
451         0X83,
452         0X3,
453         0X90,
454         0X89,
455         0X35,
456         0X1F,
457         0X61,
458         0X1A,
459         0X7C,
460         0,
461         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
462         0X48,
463         0X40,
464         0XD2,
465         0X80,
466         0X40,
467         0,
468         0, },
469       { 0X8C, 0X7F, 0X7F, 0X90, 0X81, 0X8, 0X46, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X4, 0, 0XFF, 0, 0, 0XFF, 0X47, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
470       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
471       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
472       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
473       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
474       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
475       { 0X5084, 0, 0, 0, 0, 0, 0, 0 },
476       { 0X2, 0X811, 0X4517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
477     },
478 
479     { "1024x768Over", 1024,  768, TVTYPE_PAL,
480       { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B,
481         0X1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
482         0X40, 0, 0, },
483       { 0XAA, 0X7F, 0X7F, 0X8E, 0X84, 0X97, 0X69, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X7, 0, 0XFF, 0, 0, 0XFF, 0X6A, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
484       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
485       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
486       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
487       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
488       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
489       { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
490       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
491     },
492 
493     { "720x480", 720,  480, TVTYPE_NTSC,
494         { 0X89, /* 0x00 DM	Mode 19 720x480 1/1 */
495           0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
496           0X7E, /* 0x02 VBW	Default 0xBE (was 7E) */
497           0X03, /* 0x03 TE	Decent text 0x83 (was 8D) */
498           0X18, /* 0x04 SAV	Default 0x50 (was 10) */
499           0X19, /* 0x05 HP	Default 0x50 */
500           0XFB, /* 0x06 VP	Default 0x00 */
501           0X83, /* 0x07 BL	Default 0x83 (NTSC-J 66) */
502           0X03, /* 0x08 CE	Default 0x03 */
503           0X80, /* 0x09 TPC	Default 0x80 */
504           0X3F, /* 0x0A PLLM	Default 0x3F */
505           0X7C, /* 0x0B PLLN	Default 0x7C */
506           0X21, /* 0x0C FSCI	Default 0x25 */
507           0X04, /* 0x0D FSCI	Default 0x04 */
508           0X10, /* 0x0E FSCI	Default 0x10 */
509           0X41, /* 0x0F FSCI	Default 0x41 */
510           0X00, /* 0x10 CIVC	Default 0x01 */
511           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
512           0X48, /* 0x1C CM	Default 0x00 */
513           0X40, /* 0x1D IC	Default 0x88 */
514           0XD2, /* 0x1E GPIO	Default 0xC0 */
515           0X80, /* 0x1F IDF	Default	0x00 */
516           0X40, /* 0x20 CD */
517           0X00, /* 0x21 DC */
518           0X00, /* 0x22 BCO	Default 0x00 */ },
519         { 0X64, 0X59, 0X59, 0X88, 0X5B, 0X81, 0X56, 0X3E, 0, 0X40, 0, 0, 0, 0, 0, 0, 0XFF, 0, 0XDF, 0, 0, 0XDF, 0X57, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
520         { 0X20, 0X40, 0, 0X4, 0X87, 0X1C, 0, 0 },
521         { 0, 0, 0, 0X87, 0X1C, 0, 0, 0 },
522         { 0X47, 0XCF, 0XCF, 0X47, 0X9A, 0X23, 0XD9, 0XA, 0X57, 0XDF, 0XDF, 0X57, 0X51, 0XA, 0XFF, 0X3B, 0, 0, 0, 0, 0, 0X2D, 0X5A, 0, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
523         { 0X47, 0XCF, 0XCF, 0X47, 0X9A, 0X23, 0XD9, 0XA, 0X57, 0XDF, 0XDF, 0X57, 0X51, 0XA, 0XFF, 0X3B, 0, 0, 0, 0, 0, 0X5A, 0XB4, 0X40, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
524         { 0X47, 0XCF, 0XCF, 0X47, 0X9A, 0X23, 0XD9, 0XA, 0X57, 0XDF, 0XDF, 0X57, 0X51, 0XA, 0XFF, 0X3B, 0, 0, 0, 0, 0, 0XB4, 0X68, 0X81, 0, 0, 0X80, 0, 0X80, 0, 0, 0 },
525         { 0X6E07, 0, 0, 0, 0, 0, 0, 0 },
526         { 0X3, 0X811, 0XC316, 0X4C17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
527     },
528 
529 /* don't we want 720x576 for pal? */
530     { "720x480", 720,  480, TVTYPE_PAL,
531         { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B,
532           0X1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
533           0X40, 0, 0, },
534       { 0XAA, 0X7F, 0X7F, 0X8E, 0X84, 0X97, 0X69, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X7, 0, 0XFF, 0, 0, 0XFF, 0X6A, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
535       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
536       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
537       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
538       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
539       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
540       { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
541       { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
542     },
543 };
544 
545 static struct CH7xxxTableRec
546 CH7019Table[] = {
547     { "640x480", 640,  480, TVTYPE_NTSC,
548       { 0X6A, 0X7F, 0X7E, 0X8D, 0X21, 0X2E, 0X4, 0X83, 0X3, 0X80, 0X3F, 0X7E, 0X20, 0X80,   0,   0,
549         0,    0,    0,    0,    0,    0,   0,    0,   0,    0,    0,    0, 0X48, 0X40, 0XD2, 0X80,
550         0X40, 0, 0 },
551       { 0X5D, 0X4F, 0X4F, 0X81, 0X52, 0X9E, 0X56, 0XBA, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X8, 0, 0XDF, 0, 0, 0XDF, 0X57, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
552       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
553       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
554       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
555       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
556       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XEF, 0X57, 0XDF, 0XDF, 0X57, 0X11, 0XA, 0X8, 0X50, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
557       { 0X2284, 0, 0, 0, 0, 0, 0, 0 },
558       { 0X2, 0X811, 0X9217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
559     },
560 
561     { "640x480", 640,  480, TVTYPE_PAL,
562       { 0X61, 0X7F, 0XE0, 0X8F, 0X31, 0X35, 0X33, 0X6E, 0X3, 0X81, 0X4, 0X9, 0X26, 0X6F, 0X1F, 0XD0,
563         0,    0,    0,    0,    0,    0,    0,    0,   0,    0  , 0,   0, 0X48, 0X40, 0XD2, 0X80,
564         0X40, 0, 0 },
565       { 0X64, 0X4F, 0X4F, 0X88, 0X53, 0X83, 0X6F, 0XBA, 0, 0X40, 0, 0, 0, 0, 0, 0, 0X11, 0, 0XDF, 0, 0, 0XDF, 0X70, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
566       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
567       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
568       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
569       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
570       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0X1E, 0X70, 0XDF, 0XDF, 0X70, 0X51, 0XA, 0X11, 0X5D, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
571       { 0X3284, 0, 0, 0, 0, 0, 0, 0 },
572     },
573 
574     { "800x600", 800,  600, TVTYPE_NTSC,
575       { 0XCF, 0X7F, 0X76, 0X8F, 0X59, 0X3C, 0X15, 0X83, 0X3, 0X88, 0X59, 0X2E, 0X19, 0X8B, 0X3A, 0X63,
576         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
577         0X40, 0, 0},
578       { 0X80, 0X63, 0X63, 0X84, 0X69, 0X1A, 0XEC, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X5C, 0, 0X57, 0, 0, 0X57, 0XED, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
579       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
580       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
581       { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
582       { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
583       { 0X27, 0X1F, 0X1F, 0X27, 0XE3, 0X34, 0X48, 0XD6, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X5C, 0X5D, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
584       { 0X5A84, 0, 0, 0, 0, 0, 0, 0 },
585       { 0X2, 0X811, 0X5117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
586     },
587 
588     { "800x600", 800,  600, TVTYPE_PAL,
589       { 0XC3, 0X7F, 0XE0, 0X8F, 0X39, 0X3F, 0X38, 0X70, 0X3, 0X81, 0X21, 0X56, 0X1F, 0X87, 0X28, 0X18,
590         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
591         0X40, 0, 0},
592       { 0X73, 0X63, 0X63, 0X97, 0X67, 0X91, 0XEC, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X7E, 0, 0X57, 0, 0, 0X57, 0XED, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
593       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
594       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
595       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
596       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
597       { 0XBF, 0X1F, 0X1F, 0XBF, 0XDB, 0X33, 0X38, 0X8E, 0XED, 0X57, 0X57, 0XED, 0X52, 0X12, 0X74, 0X4D, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
598       { 0X3A84, 0, 0, 0, 0, 0, 0, 0 },
599     },
600 
601     { "1024x768", 1024,  768, TVTYPE_NTSC,
602       { 0XEE, 0X7F, 0X7E, 0X87, 0X49, 0X32, 0X9, 0X83, 0X3, 0X88, 0X47, 0X4D, 0X1B, 0XE4, 0X89, 0X51,
603         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
604         0X40, 0, 0},
605       { 0X8C, 0X7F, 0X7F, 0X90, 0X81, 0X8, 0XAF, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0XC, 0, 0XFF, 0, 0, 0XFF, 0XB0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
606       { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
607       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
608       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
609       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
610       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X3F, 0XB0, 0XFF, 0XFF, 0XB0, 0X9A, 0X13, 0XC, 0X7A, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
611       { 0X4A84, 0, 0, 0, 0, 0, 0, 0 },
612       { 0X2, 0X811, 0X6717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
613     },
614 
615     { "1024x768", 1024,  768, TVTYPE_PAL,
616       { 0XE5, 0X7F, 0XE0, 0X8F, 0XC1, 0X3E, 0X4A, 0X70, 0, 0X81, 0X7, 0X2A, 0X20, 0X6D, 0XC2, 0XD7,
617         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
618         0X40, 0, 0},
619       { 0XAA, 0X7F, 0X7F, 0X8E, 0X83, 0X97, 0XE6, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X11, 0, 0XFF, 0, 0, 0XFF, 0XE7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
620       { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
621       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
622       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
623       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
624       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XBE, 0XE7, 0XFF, 0XFF, 0XE7, 0X9A, 0X13, 0X7, 0X7B, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X8E, 0, 0, 0 },
625       { 0XC284, 0, 0, 0, 0, 0, 0, 0 },
626     },
627 
628     { "640x480Over", 640,  480, TVTYPE_NTSC,
629       { 0X69, 0X7F, 0X7E, 0X8D, 0X10, 0X19, 0, 0X83, 0X3, 0X80, 0X3F, 0X6E, 0X25, 0X24, 0X92, 0X49,
630         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
631         0X40, 0, 0},
632       { 0X5D, 0X4F, 0X4F, 0X81, 0X52, 0X9E, 0XB, 0X3E, 0, 0X60, 0, 0, 0, 0, 0, 0, 0XEE, 0, 0XDF, 0, 0, 0XDF, 0XC, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
633       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
634       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
635       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
636       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
637       { 0XF, 0X7F, 0X7F, 0XF, 0X9A, 0X23, 0X8F, 0XFF, 0XC, 0XDF, 0XDF, 0XC, 0X11, 0XA, 0XEE, 0X31, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
638       { 0X1184, 0, 0, 0, 0, 0, 0, 0 },
639       { 0X2, 0X811, 0XAD17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
640     },
641 
642     { "640x480Over", 640,  480, TVTYPE_PAL,
643       { 0X60, 0X7F, 0XE0, 0X8F, 0X31, 0X1B, 0X2D, 0X6E, 0X3, 0X81, 0XD, 0X14, 0X30, 0XA, 0XE7, 0XC4,
644         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
645         0X40, 0, 0},
646       { 0X64, 0X4F, 0X4F, 0X88, 0X53, 0X83, 0XF2, 0X1F, 0, 0X40, 0, 0, 0, 0, 0, 0, 0XE5, 0, 0XDF, 0, 0, 0XDF, 0XF3, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
647       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
648       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
649       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0X28, 0X50, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
650       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0X50, 0XA0, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
651       { 0X47, 0X7F, 0X7F, 0X47, 0X9A, 0X23, 0X95, 0XFF, 0XF3, 0XDF, 0XDF, 0XF3, 0X9, 0X9, 0XE5, 0X40, 0, 0, 0, 0, 0, 0XA0, 0X40, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
652       { 0X3184, 0, 0, 0, 0, 0, 0, 0 },
653     },
654 
655     { "800x600Over", 800,  600, TVTYPE_NTSC,
656       { 0XCE, 0X7F, 0X76, 0X8F, 0X51, 0X2E, 0X10, 0X83, 0X3, 0X81, 0X13, 0X3E, 0X1C,
657         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
658         0X40, 0, 0},
659       { 0X7D, 0X63, 0X63, 0X81, 0X69, 0X18, 0XBA, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X5A, 0, 0X57, 0, 0, 0X57, 0XBB, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
660       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
661       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
662       { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
663       { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
664       { 0XF, 0X1F, 0X1F, 0XF, 0XE3, 0X34, 0X44, 0XC6, 0XBB, 0X57, 0X57, 0XBB, 0X52, 0X12, 0X3F, 0X59, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
665       { 0X5284, 0, 0, 0, 0, 0, 0, 0 },
666       { 0X2, 0X811, 0XD017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
667     },
668 
669     { "800x600Over", 800,  600, TVTYPE_PAL,
670       { 0XC1, 0X7F, 0XE0, 0X8F, 0X20, 0X1D, 0X36, 0X70, 0X3, 0X94, 0X39, 0X87, 0X26, 0X79, 0X8C, 0XC,
671         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
672         0X40, 0, 0},
673       { 0X71, 0X63, 0X63, 0X95, 0X67, 0X90, 0X6F, 0XF0, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X57, 0, 0X57, 0, 0, 0X57, 0X70, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
674       { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
675       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
676       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0X32, 0X64, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
677       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0X64, 0XC8, 0X40, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
678       { 0XAF, 0X1F, 0X1F, 0XAF, 0XDB, 0X33, 0X35, 0X8E, 0X70, 0X57, 0X57, 0X70, 0X52, 0X12, 0X57, 0X5A, 0, 0, 0, 0, 0, 0XC8, 0X90, 0X81, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
679       { 0X2184, 0, 0, 0, 0, 0, 0, 0 },
680     },
681 
682     { "1024x768Over", 1024,  768, TVTYPE_NTSC,
683       { 0XED, 0X7F, 0X7E, 0X87, 0X49, 0X20, 0, 0X83, 0X3, 0X90, 0X89, 0X35, 0X1F, 0X61, 0X1A, 0X7C,
684         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
685         0X40, 0, 0},
686       { 0X8C, 0X7F, 0X7F, 0X90, 0X81, 0X8, 0X46, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X4, 0, 0XFF, 0, 0, 0XFF, 0X47, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
687       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
688       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
689       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
690       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
691       { 0X87, 0XFF, 0XFF, 0X87, 0X23, 0X34, 0X9, 0X38, 0X47, 0XFF, 0XFF, 0X47, 0X9A, 0X13, 0X4, 0X6F, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
692       { 0X5084, 0, 0, 0, 0, 0, 0, 0 },
693       { 0X2, 0X811, 0X4517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
694     },
695 
696     { "1024x768Over", 1024,  768, TVTYPE_PAL,
697       { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B, 0X1,
698         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
699         0X40, 0, 0},
700       { 0XAA, 0X7F, 0X7F, 0X8E, 0X84, 0X97, 0X69, 0XF5, 0, 0X60, 0, 0, 0, 0, 0, 0, 0X7, 0, 0XFF, 0, 0, 0XFF, 0X6A, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
701       { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
702       { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
703       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X40, 0X80, 0, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
704       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0X80, 0, 0X41, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
705       { 0X77, 0XFF, 0XFF, 0X77, 0X2B, 0X35, 0X1B, 0XB7, 0X6A, 0XFF, 0XFF, 0X6A, 0X9A, 0X13, 0X7, 0X77, 0, 0, 0, 0, 0, 0, 0, 0X86, 0, 0, 0X80, 0X20, 0X90, 0, 0, 0 },
706       { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
707     }
708 };
709 
710 static const VIABIOSTVMASKTableRec ch7011MaskTable = {
711     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
712       0XFF, 0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0XFF, 0XFF, 0XFF, 0XFF,
713       0XFF, 0XFF, 0XFF },
714     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,    0, 0XFF,    0,    0,    0,    0,    0,    0,
715       0XFF,    0, 0XFF,    0,    0, 0XFF, 0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0 },
716     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
717       0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0,    0 },
718     0X3F, 0X38,24,13,22
719 };
720 
721 static const VIABIOSTVMASKTableRec ch7019MaskTable = {
722     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
723       0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF, 0XFF,
724       0XFF, 0XFF, 0XFF },
725     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,    0, 0XFF,    0,    0,    0,    0,    0,    0,
726       0XFF,    0, 0XFF,    0,    0, 0XFF, 0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0 },
727     { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
728          0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0,    0 },
729     0X3F, 0X38,24,13,22
730 };
731 
732 #endif
733