via_ch7xxx.h revision 7e6fb56f
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
47struct CH7xxxModePrivate {
48    char   id[12]; /* "CH7xxx" */
49    CARD8  Standard;
50};
51
52static struct CH7xxxModePrivate CH7xxxModePrivateNTSC = {
53    { 'C', 'H', '7', 'x', 'x', 'x', 0, 0, 0, 0, 0, 0 },
54    TVTYPE_NTSC,
55};
56
57static 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 */
70static 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    { MODEPREFIX(NULL), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, MODESUFFIXNTSC },
91};
92
93static DisplayModeRec CH7019Modes[]={
94    { MODEPREFIX("640x480"),      23520,  640,  656,  744,  784, 0,  480,  487,  491,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
95    { MODEPREFIX("640x480"),      30000,  640,  680,  808, 1000, 0,  480,  520,  523,  600, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
96    { MODEPREFIX("800x600"),      39900,  800,  840,  976, 1064, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
97    { MODEPREFIX("800x600"),      34500,  800,  816,  880,  920, 0,  600,  604,  620,  750, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
98    { MODEPREFIX("1024x768"),     54810, 1024, 1032, 1088, 1160, 0,  768,  780,  792,  945, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
99    { MODEPREFIX("1024x768"),     57000, 1024, 1040, 1112, 1200, 0,  768,  829,  840,  950, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
100    { MODEPREFIX("640x480Over"),    20160,  640,  648,  704,  720, 0,  480,  487,  491,  560, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
101    { MODEPREFIX("640x480Over"),    21000,  640,  664,  792,  840, 0,  480,  485,  491,  500, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
102    { MODEPREFIX("800x600Over"),    35910,  800,  840,  984, 1080, 0,  600,  601,  604,  665, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXNTSC },
103    { MODEPREFIX("800x600Over"),    32500,  800,  832,  928, 1000, 0,  600,  600,  604,  650, 0, V_PHSYNC | V_PVSYNC, MODESUFFIXPAL  },
104    { MODEPREFIX("1024x768Over"),   50400, 1024, 1040, 1112, 1200, 0,  768,  772,  776,  840, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXNTSC },
105    { MODEPREFIX("1024x768Over"),   49500, 1024, 1032, 1112, 1200, 0,  768,  771,  776,  825, 0, V_NHSYNC | V_NVSYNC, MODESUFFIXPAL  },
106
107    { MODEPREFIX(NULL), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, MODESUFFIXNTSC },
108};
109
110
111typedef struct _VIATVMASKTABLE {
112    CARD8   TV[VIA_BIOS_TABLE_NUM_TV_REG];
113    CARD8   CRTC1[VIA_BIOS_MAX_NUM_TV_CRTC];
114    CARD8   CRTC2[VIA_BIOS_MAX_NUM_TV_CRTC];
115    CARD8   misc1;
116    CARD8   misc2;
117    int     numTV;
118    int     numCRTC1;
119    int     numCRTC2;
120} VIABIOSTVMASKTableRec, *VIABIOSTVMASKTablePtr;
121
122struct CH7xxxTableRec {
123    char*   name;
124    CARD16  Width;
125    CARD16  Height;
126    int     Standard;
127
128    CARD8   TV[VIA_BIOS_TABLE_NUM_TV_REG];       /*35*/
129    CARD8   CRTC1[VIA_BIOS_MAX_NUM_TV_CRTC];
130    CARD8   Misc1[VIA_BIOS_NUM_TV_SPECIAL_REG];
131    CARD8   Misc2[VIA_BIOS_NUM_TV_SPECIAL_REG];
132/*merge these three*/
133    CARD8   CRTC2_8BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
134    CARD8   CRTC2_16BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
135    CARD8   CRTC2_32BPP[VIA_BIOS_MAX_NUM_TV_CRTC];
136    CARD16  Patch2[VIA_BIOS_MAX_NUM_TV_PATCH];
137    CARD16  DotCrawlNTSC[VIA_BIOS_NUM_TV_OTHER];
138};
139
140
141static struct CH7xxxTableRec
142CH7011Table[] = {
143    { "640x480", 640,  480, TVTYPE_NTSC,
144      { 0X6A, /* 0x00		Mode 17 */
145        0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
146        0X7E, /* 0x02 VBW	Default 0xBE (was 0x7E) */
147        0X8B, /* 0x03 TE	Decent Text 0x8B (was 8D) */
148        0X28, /* 0x04 SAV	Default 0x50 (was 0x21) */
149        0X2C, /* 0x05 HP	Default 0x50 (was 0x2E) */
150        0X05, /* 0x06 VP	Default 0x00 (was 0x04) */
151        0X83, /* 0x07 BL	Default 0x83 */
152        0X03, /* 0x08 CE	Default 0x03 */
153        0X80, /* 0x09 TPC	Default 0x80 */
154        0X3F, /* 0x0A PLLM	Default 0x3F */
155        0X7E, /* 0x0B PLLN	Default 0x7E */
156        0X20, /* 0x0C FSCI	Default 0x20 */
157        0X80, /* 0x0D FSCI	Default 0x80 */
158        0X00, /* 0x0E FSCI	Default 0x08 (was 00) */
159        0X00, /* 0x0F FSCI	Default 0xEB (was 00) */
160        0,    /* 0x10 CIVC */
161        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
162        0X48, /* 0x1C */
163        0X40, /* 0x1D */
164        0XD2, /* 0x1E */
165        0X80, /* 0x1F */
166        0X40, /* 0x20 */
167        0,    /* 0x21 */
168        0,    /* 0x22 */ },
169      { 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 },
170      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
171      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
172      { 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 },
173      { 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 },
174      { 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 },
175      { 0X2284, 0, 0, 0, 0, 0, 0, 0 },
176      { 0X2, 0X811, 0X9217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
177    },
178
179    { "640x480", 640,  480, TVTYPE_PAL,
180      { 0X61, /* 0x00         PAL Mode 14 non-OS 640x480 1:1 */
181        0X27, /* 0x01 FF      Default 0x27 (was 7F) */
182        0XBE, /* 0x02 VBW     Default 0xBE (was 0x7E) */
183        0X8B, /* 0x03 TE      Decent Text 0x8B (was 8D) */
184        0X28, /* 0x04 SAV     Default 0x50 (was 0x21) */
185        0X2C, /* 0x05 HP      Default 0x50 (was 0x2E) */
186        0X05, /* 0x06 VP      Default 0x00 (was 0x04) */
187        0X83, /* 0x07 BL      Default 0x83 */
188        0X01, /* 0x08 CE      Default 0x03 */
189        0X81, /* 0x09 TPC     Default 0x80 */
190        0X04, /* 0x0A PLLM    Default 0x3F */
191        0X09, /* 0x0B PLLN    Default 0x7E */
192        0X26, /* 0x0C FSCI    Default 0x20 */
193        0X6F, /* 0x0D FSCI    Default 0x80 */
194        0X1F, /* 0x0E FSCI    Default 0x08 */
195        0XD0, /* 0x0F FSCI    Default 0xEB */
196        0,    /* 0x10 CIVC */
197        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
198        0X48, /* 0x1C */
199        0X40, /* 0x1D */
200        0XD2, /* 0x1E */
201        0X80, /* 0x1F */
202        0X40, /* 0x20 */
203        0,    /* 0x21 */
204        0,    /* 0x22 */ },
205      { 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 },
206      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
207      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
208      { 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 },
209      { 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 },
210      { 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 },
211      { 0X3284, 0, 0, 0, 0, 0, 0, 0 },
212      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
213    },
214
215    { "800x600", 800,  600, TVTYPE_NTSC,
216      { 0XCF, /* 0x00		Mode 29 */
217        0X27, /* 0x01 FF	Default 0x27  (was 7F) */
218        0XBE, /* 0x02 VBW	Default 0xBE (was 0x76) */
219        0X8B, /* 0x03 TE	Decent Text 0x8B (was 8F) */
220        0X59, /* 0x04 SAV*/
221        0X3C, /* 0x05 HP */
222        0X15, /* 0x06 VP */
223        0X66, /* 0x07 BL	Default 0x83 */
224        0X3,  /* 0x08 CE	Default 0x03 */
225        0X88,
226        0X59,
227        0X2E,
228        0X19,
229        0X8B,
230        0X3A,
231        0X63,
232        0,
233        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
234        0X48,
235        0X40,
236        0XD2,
237        0X80,
238        0X40,
239        0,
240        0, },
241        { 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 },
242        { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
243        { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
244        { 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 },
245        { 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 },
246        { 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 },
247        { 0X5A84, 0, 0, 0, 0, 0, 0, 0 },
248        { 0X2, 0X811, 0X5117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
249    },
250
251    { "800x600", 800,  600, TVTYPE_PAL,
252      { 0XC3, 0X7F, 0XE0, 0X8F, 0X39, 0X3F, 0X38, 0X70, 0X3, 0X81, 0X21, 0X56, 0X1F, 0X87, 0X28, 0X18,
253        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
254        0X40, 0, 0, },
255      { 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 },
256      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
257      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
258      { 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 },
259      { 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 },
260      { 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 },
261      { 0X3A84, 0, 0, 0, 0, 0, 0, 0 },
262      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
263    },
264
265/*check these two modes*/
266    { "1024x768", 1024, 768, TVTYPE_NTSC,
267      { 0XEE,
268        0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
269        0X7E,
270        0X87,
271        0X49,
272        0X32,
273        0X9,
274        0X83,
275        0X3,
276        0X88,
277        0X47,
278        0X4D,
279        0X1B,
280        0XE4,
281        0X89,
282        0X51,
283        0,
284        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
285        0X48,
286        0X40,
287        0XD2,
288        0X80,
289        0X40,
290        0,
291        0, },
292      { 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 },
293      { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
294      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
295      { 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 },
296      { 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 },
297      { 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 },
298      { 0X4A84, 0, 0, 0, 0, 0, 0, 0 },
299      { 0X2, 0X811, 0X6717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
300    },
301
302    { "1024x768", 1024, 768, TVTYPE_PAL,
303      { 0XE5, 0X7F, 0XE0, 0X8F, 0XC1, 0X3E, 0X4A, 0X70, 0, 0X81, 0X7, 0X2A, 0X20, 0X6D, 0XC2, 0XD7,
304        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
305        0X40, 0, 0, },
306      { 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 },
307      { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
308      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
309      { 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 },
310      { 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 },
311      { 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 },
312      { 0XC284, 0, 0, 0, 0, 0, 0, 0 },
313      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
314    },
315
316    { "640x480Over", 640,  480, TVTYPE_NTSC,
317      { 0X69, /* 0x00 DM	Mode 16 640x480 1/1 */
318        0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
319        0X7E, /* 0x02 VBW	Default 0xBE (was 7E) */
320        0X03, /* 0x03 TE	Decent text 0x83 (was 8D) */
321        0X18, /* 0x04 SAV	Default 0x50 (was 10) */
322        0X19, /* 0x05 HP	Default 0x50 */
323        0XFB, /* 0x06 VP	Default 0x00 */
324        0X83, /* 0x07 BL	Default 0x83 (NTSC-J 66) */
325        0X03, /* 0x08 CE	Default 0x03 */
326        0X80, /* 0x09 TPC	Default 0x80 */
327        0X3F, /* 0x0A PLLM	Default 0x3F */
328        0X6E, /* 0x0B PLLN	Default 0x7E */
329        0X25, /* 0x0C FSCI	Default 0x25 */
330        0X24, /* 0x0D FSCI	Default 0x24 */
331        0X92, /* 0x0E FSCI	Default 0x9C (was 92) */
332        0X49, /* 0x0F FSCI	Default 0x7A (was 49) */
333        0X00, /* 0x10 CIVC	Default 0x01 */
334        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
335        0X48, /* 0x1C CM	Default 0x00 */
336        0X40, /* 0x1D IC	Default 0x88 */
337        0XD2, /* 0x1E GPIO	Default 0xC0 */
338        0X80, /* 0x1F IDF	Default	0x00 */
339        0X40, /* 0x20 CD */
340        0X00, /* 0x21 DC */
341        0X00, /* 0x22 BCO	Default 0x00 */ },
342/* why is this #ifed, what's the difference? */
343#if 0
344        { 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 },
345        { 0X20, 0X40, 0, 0, 0X87, 0X1C, 0, 0 },
346        { 0, 0, 0, 0X87, 0X1C, 0, 0, 0 },
347        { 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 },
348        { 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 },
349        { 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 },
350        { 0X7107, 0, 0, 0, 0, 0, 0, 0 },
351        { 0X3, 0X811, 0XF416, 0X9F17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
352#else
353        { 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 },
354        { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
355        { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
356        { 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 },
357        { 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 },
358        { 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 },
359        { 0X1184, 0, 0, 0, 0, 0, 0, 0 },
360        { 0X2, 0X811, 0XAD17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
361#endif
362    },
363
364    { "640x480Over", 640,  480, TVTYPE_PAL,
365      { 0X60, /* 0x00 DM      Mode 13 PAL 640x480 OS 5/4 */
366        0X27, /* 0x01 FF      Default 0x27 (was 7F) */
367        0XBE, /* 0x02 VBW     Default 0xBE (was 7E) */
368        0X83, /* 0x03 TE      Decent text 0x8B (was 8D) */
369        0X10, /* 0x04 SAV     Default 0x50 */
370        0X19, /* 0x05 HP      Default 0x50 */
371        0XFB, /* 0x06 VP      Default 0x00 */
372        0X83, /* 0x07 BL      Default 0x83 */
373        0X01, /* 0x08 CE      Default 0x03 */
374        0X81, /* 0x09 TPC     Default 0x80 */
375        0X0D, /* 0x0A PLLM    Default 0x3F */
376        0X0B, /* 0x0B PLLN    Default 0x7E */
377        0X30, /* 0x0C FSCI    Default 0x25 */
378        0X0A, /* 0x0D FSCI    Default 0x24 */
379        0XE7, /* 0x0E FSCI    Default 0x9C */
380        0XC4, /* 0x0F FSCI    Default 0x7A */
381        0X00, /* 0x10 CIVC    Default 0x01 */
382        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
383        0X48, /* 0x1C CM      Default 0x00 */
384        0X40, /* 0x1D IC      Default 0x88 */
385        0XD2, /* 0x1E GPIO    Default 0xC0 */
386        0X80, /* 0x1F IDF     Default 0x00 */
387        0X40, /* 0x20 CD */
388        0X00, /* 0x21 DC */
389        0X00, /* 0x22 BCO     Default 0x00 */ },
390      { 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 },
391      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
392      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
393      { 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 },
394      { 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 },
395      { 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 },
396      { 0X3184, 0, 0, 0, 0, 0, 0, 0 },
397      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
398    },
399
400    { "800x600Over", 800,  600, TVTYPE_NTSC,
401        { 0XCE, /* 0x00		Mode 28 */
402          0X27, /* 0x01		Default 0x27 (was 7F) */
403          0XBE, /* 0x02		Default 0xBE (was 76) */
404          0X8F, /* 0x03 */
405          0X51, /* 0x04 */
406          0X2E, /* 0x05 */
407          0X10, /* 0x06 */
408          0X83, /* 0x07 */
409          0X3,  /* 0x08 */
410          0X81, /* 0x09 */
411          0X13, /* 0x0A */
412          0X3E, /* 0x0B */
413          0X1C, /* 0x0C */
414          0,    /* 0x0D */
415          0,    /* 0x0E */
416          0,    /* 0x0F */
417          0,    /* 0x10 */
418          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419          0X48,
420          0X40,
421          0XD2,
422          0X80,
423          0X40, 0, 0, },
424        { 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 },
425        { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
426        { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
427        { 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 },
428        { 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 },
429        { 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 },
430        { 0X5284, 0, 0, 0, 0, 0, 0, 0 },
431        { 0X2, 0X811, 0XD017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
432    },
433
434    { "800x600Over", 800,  600, TVTYPE_PAL,
435        { 0XC1, 0X7F, 0XE0, 0X8F, 0X20, 0X1D, 0X36, 0X70, 0X3, 0X94, 0X39, 0X87, 0X26, 0X79, 0X8C, 0XC,
436          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
437          0X40, 0, 0, },
438      { 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 },
439      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
440      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
441      { 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 },
442      { 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 },
443      { 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 },
444      { 0X2184, 0, 0, 0, 0, 0, 0, 0 },
445      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
446    },
447
448    { "1024x768Over", 1024,  768, TVTYPE_NTSC,
449      { 0XED,
450        0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
451        0X7E,
452        0X87,
453        0X49,
454        0X20,
455        0,
456        0X83,
457        0X3,
458        0X90,
459        0X89,
460        0X35,
461        0X1F,
462        0X61,
463        0X1A,
464        0X7C,
465        0,
466        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467        0X48,
468        0X40,
469        0XD2,
470        0X80,
471        0X40,
472        0,
473        0, },
474      { 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 },
475      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
476      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
477      { 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 },
478      { 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 },
479      { 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 },
480      { 0X5084, 0, 0, 0, 0, 0, 0, 0 },
481      { 0X2, 0X811, 0X4517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
482    },
483
484    { "1024x768Over", 1024,  768, TVTYPE_PAL,
485      { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B,
486        0X1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
487        0X40, 0, 0, },
488      { 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 },
489      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
490      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
491      { 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 },
492      { 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 },
493      { 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 },
494      { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
495      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
496    },
497
498    { "720x480", 720,  480, TVTYPE_NTSC,
499        { 0X89, /* 0x00 DM	Mode 19 720x480 1/1 */
500          0X3F, /* 0x01 FF	Default 0x27 (was 7F) */
501          0X7E, /* 0x02 VBW	Default 0xBE (was 7E) */
502          0X03, /* 0x03 TE	Decent text 0x83 (was 8D) */
503          0X18, /* 0x04 SAV	Default 0x50 (was 10) */
504          0X19, /* 0x05 HP	Default 0x50 */
505          0XFB, /* 0x06 VP	Default 0x00 */
506          0X83, /* 0x07 BL	Default 0x83 (NTSC-J 66) */
507          0X03, /* 0x08 CE	Default 0x03 */
508          0X80, /* 0x09 TPC	Default 0x80 */
509          0X3F, /* 0x0A PLLM	Default 0x3F */
510          0X7C, /* 0x0B PLLN	Default 0x7C */
511          0X21, /* 0x0C FSCI	Default 0x25 */
512          0X04, /* 0x0D FSCI	Default 0x04 */
513          0X10, /* 0x0E FSCI	Default 0x10 */
514          0X41, /* 0x0F FSCI	Default 0x41 */
515          0X00, /* 0x10 CIVC	Default 0x01 */
516          0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* We don't touch these */
517          0X48, /* 0x1C CM	Default 0x00 */
518          0X40, /* 0x1D IC	Default 0x88 */
519          0XD2, /* 0x1E GPIO	Default 0xC0 */
520          0X80, /* 0x1F IDF	Default	0x00 */
521          0X40, /* 0x20 CD */
522          0X00, /* 0x21 DC */
523          0X00, /* 0x22 BCO	Default 0x00 */ },
524        { 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 },
525        { 0X20, 0X40, 0, 0X4, 0X87, 0X1C, 0, 0 },
526        { 0, 0, 0, 0X87, 0X1C, 0, 0, 0 },
527        { 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 },
528        { 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 },
529        { 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 },
530        { 0X6E07, 0, 0, 0, 0, 0, 0, 0 },
531        { 0X3, 0X811, 0XC316, 0X4C17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
532    },
533
534/* don't we want 720x576 for pal? */
535    { "720x480", 720,  480, TVTYPE_PAL,
536        { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B,
537          0X1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
538          0X40, 0, 0, },
539      { 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 },
540      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
541      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
542      { 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 },
543      { 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 },
544      { 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 },
545      { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
546      { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
547    },
548};
549
550static struct CH7xxxTableRec
551CH7019Table[] = {
552    { "640x480", 640,  480, TVTYPE_NTSC,
553      { 0X6A, 0X7F, 0X7E, 0X8D, 0X21, 0X2E, 0X4, 0X83, 0X3, 0X80, 0X3F, 0X7E, 0X20, 0X80,   0,   0,
554        0,    0,    0,    0,    0,    0,   0,    0,   0,    0,    0,    0, 0X48, 0X40, 0XD2, 0X80,
555        0X40, 0, 0 },
556      { 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 },
557      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
558      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
559      { 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 },
560      { 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 },
561      { 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 },
562      { 0X2284, 0, 0, 0, 0, 0, 0, 0 },
563      { 0X2, 0X811, 0X9217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
564    },
565
566    { "640x480", 640,  480, TVTYPE_PAL,
567      { 0X61, 0X7F, 0XE0, 0X8F, 0X31, 0X35, 0X33, 0X6E, 0X3, 0X81, 0X4, 0X9, 0X26, 0X6F, 0X1F, 0XD0,
568        0,    0,    0,    0,    0,    0,    0,    0,   0,    0  , 0,   0, 0X48, 0X40, 0XD2, 0X80,
569        0X40, 0, 0 },
570      { 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 },
571      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
572      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
573      { 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 },
574      { 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 },
575      { 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 },
576      { 0X3284, 0, 0, 0, 0, 0, 0, 0 },
577    },
578
579    { "800x600", 800,  600, TVTYPE_NTSC,
580      { 0XCF, 0X7F, 0X76, 0X8F, 0X59, 0X3C, 0X15, 0X83, 0X3, 0X88, 0X59, 0X2E, 0X19, 0X8B, 0X3A, 0X63,
581        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
582        0X40, 0, 0},
583      { 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 },
584      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
585      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
586      { 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 },
587      { 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 },
588      { 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 },
589      { 0X5A84, 0, 0, 0, 0, 0, 0, 0 },
590      { 0X2, 0X811, 0X5117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
591    },
592
593    { "800x600", 800,  600, TVTYPE_PAL,
594      { 0XC3, 0X7F, 0XE0, 0X8F, 0X39, 0X3F, 0X38, 0X70, 0X3, 0X81, 0X21, 0X56, 0X1F, 0X87, 0X28, 0X18,
595        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
596        0X40, 0, 0},
597      { 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 },
598      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
599      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
600      { 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 },
601      { 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 },
602      { 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 },
603      { 0X3A84, 0, 0, 0, 0, 0, 0, 0 },
604    },
605
606    { "1024x768", 1024,  768, TVTYPE_NTSC,
607      { 0XEE, 0X7F, 0X7E, 0X87, 0X49, 0X32, 0X9, 0X83, 0X3, 0X88, 0X47, 0X4D, 0X1B, 0XE4, 0X89, 0X51,
608        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
609        0X40, 0, 0},
610      { 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 },
611      { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
612      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
613      { 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 },
614      { 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 },
615      { 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 },
616      { 0X4A84, 0, 0, 0, 0, 0, 0, 0 },
617      { 0X2, 0X811, 0X6717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
618    },
619
620    { "1024x768", 1024,  768, TVTYPE_PAL,
621      { 0XE5, 0X7F, 0XE0, 0X8F, 0XC1, 0X3E, 0X4A, 0X70, 0, 0X81, 0X7, 0X2A, 0X20, 0X6D, 0XC2, 0XD7,
622        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
623        0X40, 0, 0},
624      { 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 },
625      { 0, 0X40, 0X80, 0XE, 0X47, 0X1C, 0, 0 },
626      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
627      { 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 },
628      { 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 },
629      { 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 },
630      { 0XC284, 0, 0, 0, 0, 0, 0, 0 },
631    },
632
633    { "640x480Over", 640,  480, TVTYPE_NTSC,
634      { 0X69, 0X7F, 0X7E, 0X8D, 0X10, 0X19, 0, 0X83, 0X3, 0X80, 0X3F, 0X6E, 0X25, 0X24, 0X92, 0X49,
635        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
636        0X40, 0, 0},
637      { 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 },
638      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
639      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
640      { 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 },
641      { 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 },
642      { 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 },
643      { 0X1184, 0, 0, 0, 0, 0, 0, 0 },
644      { 0X2, 0X811, 0XAD17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
645    },
646
647    { "640x480Over", 640,  480, TVTYPE_PAL,
648      { 0X60, 0X7F, 0XE0, 0X8F, 0X31, 0X1B, 0X2D, 0X6E, 0X3, 0X81, 0XD, 0X14, 0X30, 0XA, 0XE7, 0XC4,
649        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
650        0X40, 0, 0},
651      { 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 },
652      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
653      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
654      { 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 },
655      { 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 },
656      { 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 },
657      { 0X3184, 0, 0, 0, 0, 0, 0, 0 },
658    },
659
660    { "800x600Over", 800,  600, TVTYPE_NTSC,
661      { 0XCE, 0X7F, 0X76, 0X8F, 0X51, 0X2E, 0X10, 0X83, 0X3, 0X81, 0X13, 0X3E, 0X1C,
662        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
663        0X40, 0, 0},
664      { 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 },
665      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
666      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
667      { 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 },
668      { 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 },
669      { 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 },
670      { 0X5284, 0, 0, 0, 0, 0, 0, 0 },
671      { 0X2, 0X811, 0XD017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
672    },
673
674    { "800x600Over", 800,  600, TVTYPE_PAL,
675      { 0XC1, 0X7F, 0XE0, 0X8F, 0X20, 0X1D, 0X36, 0X70, 0X3, 0X94, 0X39, 0X87, 0X26, 0X79, 0X8C, 0XC,
676        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
677        0X40, 0, 0},
678      { 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 },
679      { 0X20, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
680      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
681      { 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 },
682      { 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 },
683      { 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 },
684      { 0X2184, 0, 0, 0, 0, 0, 0, 0 },
685    },
686
687    { "1024x768Over", 1024,  768, TVTYPE_NTSC,
688      { 0XED, 0X7F, 0X7E, 0X87, 0X49, 0X20, 0, 0X83, 0X3, 0X90, 0X89, 0X35, 0X1F, 0X61, 0X1A, 0X7C,
689        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
690        0X40, 0, 0},
691      { 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 },
692      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
693      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
694      { 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 },
695      { 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 },
696      { 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 },
697      { 0X5084, 0, 0, 0, 0, 0, 0, 0 },
698      { 0X2, 0X811, 0X4517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
699    },
700
701    { "1024x768Over", 1024,  768, TVTYPE_PAL,
702      { 0XE4, 0X7F, 0XA0, 0X8F, 0XB1, 0X28, 0X37, 0X70, 0, 0X81, 0X10, 0X4C, 0X25, 0XF, 0XBA, 0X1B, 0X1,
703        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0X48, 0X40, 0XD2, 0X80,
704        0X40, 0, 0},
705      { 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 },
706      { 0, 0X40, 0X80, 0, 0X47, 0X1C, 0, 0 },
707      { 0, 0, 0, 0X47, 0X1C, 0, 0, 0 },
708      { 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 },
709      { 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 },
710      { 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 },
711      { 0XB184, 0, 0, 0, 0, 0, 0, 0 },
712    }
713};
714
715static const VIABIOSTVMASKTableRec ch7011MaskTable = {
716    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
717      0XFF, 0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0XFF, 0XFF, 0XFF, 0XFF,
718      0XFF, 0XFF, 0XFF },
719    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,    0, 0XFF,    0,    0,    0,    0,    0,    0,
720      0XFF,    0, 0XFF,    0,    0, 0XFF, 0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0 },
721    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
722      0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0,    0 },
723    0X3F, 0X38,24,13,22
724};
725
726static const VIABIOSTVMASKTableRec ch7019MaskTable = {
727    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
728      0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF, 0XFF,
729      0XFF, 0XFF, 0XFF },
730    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,    0, 0XFF,    0,    0,    0,    0,    0,    0,
731      0XFF,    0, 0XFF,    0,    0, 0XFF, 0XFF,    0,    0,    0,    0,    0,    0,    0,    0,    0 },
732    { 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
733         0,    0,    0,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0, 0XFF, 0XFF, 0XFF,    0,    0,    0 },
734    0X3F, 0X38,24,13,22
735};
736
737#endif
738