via_ch7xxx.h revision 90b17f1b
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
91static 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
107typedef 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
118struct 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
136static struct CH7xxxTableRec
137CH7011Table[] = {
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
545static struct CH7xxxTableRec
546CH7019Table[] = {
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
710static 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
721static 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