Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2916 lines
82 KiB

/*++
Copyright (c) 1994 FirePower Systems, Inc.
Module Name:
psiinit.h
Abstract:
This header file includes definition of initial register values
to set for each mode.
Author:
Neil Ogura (9-7-1994)
Environment:
Version history:
--*/
/*
* Copyright (c) 1995 FirePower Systems, Inc.
* DO NOT DISTRIBUTE without permission
*
* $RCSfile: psiinit.h $
* $Revision: 1.2 $
* $Date: 1996/04/24 00:07:57 $
* $Locker: $
*/
/***** Initial values for system registers *****/
SYSTEM_REG_INIT SysRegInit[NUMBER_OF_PSI_MODELS][2] = {
{ // 0 - PowerPro -- Half width (1MB) or Full width (2MB) VRAM
{ 0x3f, // 4 cycles
0x04, // For inverting FBA address LSB
0xc0, // Half Width VRAM with 512 sam
0x30 // Slow down refresh
},
{ 0x3f, // 4 cycles
0x00, // No munge or swap for 64bit VRAM
0x40, // Full Width VRAM with 512 sam
0x30 // Slow down refresh
}
},
{ // 1 - PowerTop -- Half width (2MB) or Full width (4MB) VRAM
{ 0x4f, // 4 cycles
0x00, // No munge or swap for 64 bit VRAM
0xc0, // Half Width VRAM with 512 sam
0x30 // Slow down refresh
},
{ 0x4f, // 4 cycles
0x00, // No munge or swap for 128 bit VRAM
0x40, // Full Width VRAM with 512 sam
0x30 // Slow down refresh
}
},
};
/***** Initial values for DCC registers *****/
DCC_FIXED_REG_INIT DCCFixedRegInit[NUMBER_OF_VRAM_WIDTH_TYPES] = {
{ // for 32 bit VRAM width
0x00, // No Interrupt
0x87, // Config A 1:1 VRAM:RAMDAC, Enable h&vSync, No cSync, Frame nor Line
0x80, // Config B Halt=1, All Sync Polarity default -- Need to be set first
0x00 // Config B Halt=0, All Sync Polarity default -- Need to be set last
},
{ // for 64 bit VRAM width
0x00, // No Interrupt
0x87, // Config A 1:1 VRAM:RAMDAC, Enable h,v&cSync, No Frame nor Line
0x80, // Config B Halt=1, All Sync Polarity default -- Need to be set first
0x00 // Config B Halt=0, All Sync Polarity default -- Need to be set last
},
{ // for 128 bit VRAM width
0x00, // No Interrupt
0xc7, // Config A 1:1 VRAM:RAMDAC, Enable h&vSync, No cSync, Frame nor Line
0x80, // Config B Halt=1, All Sync Polarity default -- Need to be set first
0x00 // Config B Halt=0, All Sync Polarity default -- Need to be set last
}
};
DCC_REG_INIT DCCRegInit[2][NUMBER_OF_MODES] = {
{ // [0] 32 bit VRAM width
{ // Mode 0_0 - 640X480 8 bit 72Hz
0x07, // Timing Register A
9, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
207, // Horizontal Count
519, // Vertical Count
41, // Horizontal Blank Stop
201, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 1_1 - 640X480 8 bit 75Hz
0x07, // Timing Register A
15, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
209, // Horizontal Count
499, // Vertical Count
45, // Horizontal Blank Stop
205, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 2_2 - 640X480 15 bit 72Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
415, // Horizontal Count
519, // Vertical Count
83, // Horizontal Blank Stop
403, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 3_3 - 640X480 15 bit 75Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
419, // Horizontal Count
499, // Vertical Count
91, // Horizontal Blank Stop
411, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode X_4 - 640X480 16 bit 72Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
415, // Horizontal Count
519, // Vertical Count
83, // Horizontal Blank Stop
403, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_5 - 640X480 16 bit 75Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
419, // Horizontal Count
499, // Vertical Count
91, // Horizontal Blank Stop
411, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode 4_6 - 640X480 32 bit 72Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 5_7 - 640X480 32 bit 75Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 6_8 - 800X600 8 bit 60Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
263, // Horizontal Count
627, // Vertical Count
53, // Horizontal Blank Stop
253, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 7_9 - 800X600 8 bit 72Hz
0x07, // Timing Register A
29, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
259, // Horizontal Count
665, // Vertical Count
45, // Horizontal Blank Stop
245, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 8_10 - 800X600 8 bit 75Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
263, // Horizontal Count
624, // Vertical Count
59, // Horizontal Blank Stop
259, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 9_11 - 800X600 15 bit 60Hz
0x07, // Timing Register A
63, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
527, // Horizontal Count
627, // Vertical Count
107, // Horizontal Blank Stop
507, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 10_12 - 800X600 15 bit 72Hz
0x07, // Timing Register A
59, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
519, // Horizontal Count
665, // Vertical Count
91, // Horizontal Blank Stop
491, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 11_13 - 800X600 15 bit 75Hz
0x07, // Timing Register A
39, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
527, // Horizontal Count
624, // Vertical Count
119, // Horizontal Blank Stop
519, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode X_14 - 800X600 16 bit 60Hz
0x07, // Timing Register A
63, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
527, // Horizontal Count
627, // Vertical Count
107, // Horizontal Blank Stop
507, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_15 - 800X600 16 bit 72Hz
0x07, // Timing Register A
59, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
519, // Horizontal Count
665, // Vertical Count
91, // Horizontal Blank Stop
491, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_16 - 800X600 16 bit 75Hz
0x07, // Timing Register A
39, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
527, // Horizontal Count
624, // Vertical Count
119, // Horizontal Blank Stop
519, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode 12_17 - 800X600 32 bit 60Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 13_18 - 800X600 32 bit 72Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 14_19 - 800X600 32 bit 75Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 15_20 - 1024X768 8 bit 60Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
335, // Horizontal Count
805, // Vertical Count
73, // Horizontal Blank Stop
329, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 16_21 - 1024X768 8 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
331, // Horizontal Count
805, // Vertical Count
69, // Horizontal Blank Stop
325, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 17_22 - 1024X768 8 bit 75Hz
0x07, // Timing Register A
23, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
327, // Horizontal Count
799, // Vertical Count
67, // Horizontal Blank Stop
323, // Horizontal Data Stop
798, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 18_23 - 1024X768 15 bit 60Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 19_24 - 1024X768 15 bit 70Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 20_25 - 1024X768 15 bit 75Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#if SUPPORT_565
{ // Mode X_26 - 1024X768 16 bit 60Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode X_27 - 1024X768 16 bit 70Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode X_28 - 1024X768 16 bit 75Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#endif
{ // Mode 21_29 - 1024X768 32 bit 60Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 22_30 - 1024X768 32 bit 70Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode 23_31 - 1024X768 32 bit 75Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#if SUPPORT_NON_VESA
{ // Mode - 1152X864 8 bit 60Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
364, // Horizontal Count
911, // Vertical Count
68, // Horizontal Blank Stop
356, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 8 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
371, // Horizontal Count
906, // Vertical Count
77, // Horizontal Blank Stop
365, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 8 bit 75Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
2, // Vertical Sync Stop
32, // Vertical Blank Stop
371, // Horizontal Count
897, // Vertical Count
79, // Horizontal Blank Stop
367, // Horizontal Data Stop
896, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 15 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 15 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 15 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#if SUPPORT_565
{ // Mode - 1152X864 16 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 16 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 16 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#endif
{ // Mode - 1152X864 32 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 32 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1152X864 32 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1280X1024 8 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1280X1024 8 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#endif
{ // Mode 24_32 - 1280X1024 8 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 15 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1280X1024 15 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#endif
{ // Mode 25_33 - 1280X1024 15 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
}
#if SUPPORT_565
,
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 16 bit 60 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
{ // Mode - 1280X1024 16 bit 70 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
},
#endif
{ // Mode X_34 - 1280X1024 16 bit 75 Hz -- NOT AVAILABLE WITH 32BIT VRAM
0,0,0,0,0,0,0,0,0,0
}
#endif
},
{ // [1] 64 bit or 128 bit VRAM width
{ // Mode 0_0 - 640X480 8 bit 72Hz
0x07, // Timing Register A
4, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
103, // Horizontal Count
519, // Vertical Count
20, // Horizontal Blank Stop
100, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 1_1 - 640X480 8 bit 75Hz
0x07, // Timing Register A
7, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
104, // Horizontal Count
499, // Vertical Count
22, // Horizontal Blank Stop
102, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 2_2 - 640X480 15 bit 72Hz
0x07, // Timing Register A
9, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
207, // Horizontal Count
519, // Vertical Count
41, // Horizontal Blank Stop
201, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 3_3 - 640X480 15 bit 75Hz
0x07, // Timing Register A
15, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
209, // Horizontal Count
499, // Vertical Count
45, // Horizontal Blank Stop
205, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode X_4 - 640X480 16 bit 72Hz
0x07, // Timing Register A
9, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
207, // Horizontal Count
519, // Vertical Count
41, // Horizontal Blank Stop
201, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_5 - 640X480 16 bit 75Hz
0x07, // Timing Register A
15, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
209, // Horizontal Count
499, // Vertical Count
45, // Horizontal Blank Stop
205, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode 4_6 - 640X480 32 bit 72Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
415, // Horizontal Count
519, // Vertical Count
83, // Horizontal Blank Stop
403, // Horizontal Data Stop
510, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 5_7 - 640X480 32 bit 75Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
2, // Vertical Sync Stop
18, // Vertical Blank Stop
419, // Horizontal Count
499, // Vertical Count
91, // Horizontal Blank Stop
411, // Horizontal Data Stop
498, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 6_8 - 800X600 8 bit 60Hz
0x07, // Timing Register A
15, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
131, // Horizontal Count
627, // Vertical Count
26, // Horizontal Blank Stop
126, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 7_9 - 800X600 8 bit 72Hz
0x07, // Timing Register A
14, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
129, // Horizontal Count
665, // Vertical Count
22, // Horizontal Blank Stop
122, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 8_10 - 800X600 8 bit 75Hz
0x07, // Timing Register A
9, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
131, // Horizontal Count
624, // Vertical Count
29, // Horizontal Blank Stop
129, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 9_11 - 800X600 15 bit 60Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
263, // Horizontal Count
627, // Vertical Count
53, // Horizontal Blank Stop
253, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 10_12 - 800X600 15 bit 72Hz
0x07, // Timing Register A
29, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
259, // Horizontal Count
665, // Vertical Count
45, // Horizontal Blank Stop
245, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 11_13 - 800X600 15 bit 75Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
263, // Horizontal Count
624, // Vertical Count
59, // Horizontal Blank Stop
259, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode X_14 - 800X600 16 bit 60Hz
0x07, // Timing Register A
31, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
263, // Horizontal Count
627, // Vertical Count
53, // Horizontal Blank Stop
253, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_15 - 800X600 16 bit 72Hz
0x07, // Timing Register A
29, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
259, // Horizontal Count
665, // Vertical Count
45, // Horizontal Blank Stop
245, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_16 - 800X600 16 bit 75Hz
0x07, // Timing Register A
19, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
263, // Horizontal Count
624, // Vertical Count
59, // Horizontal Blank Stop
259, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode 12_17 - 800X600 32 bit 60Hz
0x07, // Timing Register A
63, // Horizontal Sync Stop
3, // Vertical Sync Stop
26, // Vertical Blank Stop
527, // Horizontal Count
627, // Vertical Count
107, // Horizontal Blank Stop
507, // Horizontal Data Stop
626, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 13_18 - 800X600 32 bit 72Hz
0x07, // Timing Register A
59, // Horizontal Sync Stop
5, // Vertical Sync Stop
28, // Vertical Blank Stop
519, // Horizontal Count
665, // Vertical Count
91, // Horizontal Blank Stop
491, // Horizontal Data Stop
628, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 14_19 - 800X600 32 bit 75Hz
0x07, // Timing Register A
39, // Horizontal Sync Stop
2, // Vertical Sync Stop
23, // Vertical Blank Stop
527, // Horizontal Count
624, // Vertical Count
119, // Horizontal Blank Stop
519, // Horizontal Data Stop
623, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 15_20 - 1024X768 8 bit 60Hz
0x07, // Timing Register A
16, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
167, // Horizontal Count
805, // Vertical Count
36, // Horizontal Blank Stop
164, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 16_21 - 1024X768 8 bit 70Hz
0x07, // Timing Register A
16, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
165, // Horizontal Count
805, // Vertical Count
34, // Horizontal Blank Stop
162, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 17_22 - 1024X768 8 bit 75Hz
0x07, // Timing Register A
11, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
163, // Horizontal Count
799, // Vertical Count
33, // Horizontal Blank Stop
161, // Horizontal Data Stop
798, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 18_23 - 1024X768 15 bit 60Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
335, // Horizontal Count
805, // Vertical Count
73, // Horizontal Blank Stop
329, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 19_24 - 1024X768 15 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
331, // Horizontal Count
805, // Vertical Count
69, // Horizontal Blank Stop
325, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 20_25 - 1024X768 15 bit 75Hz
0x07, // Timing Register A
23, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
327, // Horizontal Count
799, // Vertical Count
67, // Horizontal Blank Stop
323, // Horizontal Data Stop
798, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode X_26 - 1024X768 16 bit 60Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
335, // Horizontal Count
805, // Vertical Count
73, // Horizontal Blank Stop
329, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_27 - 1024X768 16 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
331, // Horizontal Count
805, // Vertical Count
69, // Horizontal Blank Stop
325, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode X_28 - 1024X768 16 bit 75Hz
0x07, // Timing Register A
23, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
327, // Horizontal Count
799, // Vertical Count
67, // Horizontal Blank Stop
323, // Horizontal Data Stop
798, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode 21_29 - 1024X768 32 bit 60Hz
0x07, // Timing Register A
67, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
671, // Horizontal Count
805, // Vertical Count
147, // Horizontal Blank Stop
659, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 22_30 - 1024X768 32 bit 70Hz
0x07, // Timing Register A
67, // Horizontal Sync Stop
5, // Vertical Sync Stop
34, // Vertical Blank Stop
663, // Horizontal Count
805, // Vertical Count
139, // Horizontal Blank Stop
651, // Horizontal Data Stop
802, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode 23_31 - 1024X768 32 bit 75Hz
0x07, // Timing Register A
47, // Horizontal Sync Stop
2, // Vertical Sync Stop
30, // Vertical Blank Stop
655, // Horizontal Count
799, // Vertical Count
135, // Horizontal Blank Stop
647, // Horizontal Data Stop
798, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_NON_VESA
{ // Mode - 1152X864 8 bit 60Hz
0x07, // Timing Register A
14, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
181, // Horizontal Count
911, // Vertical Count
34, // Horizontal Blank Stop
178, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 8 bit 70Hz
0x07, // Timing Register A
16, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
185, // Horizontal Count
906, // Vertical Count
38, // Horizontal Blank Stop
182, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 8 bit 75Hz
0x07, // Timing Register A
13, // Horizontal Sync Stop
2, // Vertical Sync Stop
32, // Vertical Blank Stop
185, // Horizontal Count
897, // Vertical Count
39, // Horizontal Blank Stop
183, // Horizontal Data Stop
896, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 15 bit 60Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
364, // Horizontal Count
911, // Vertical Count
68, // Horizontal Blank Stop
356, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 15 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
371, // Horizontal Count
906, // Vertical Count
77, // Horizontal Blank Stop
365, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 15 bit 75Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
2, // Vertical Sync Stop
32, // Vertical Blank Stop
371, // Horizontal Count
897, // Vertical Count
79, // Horizontal Blank Stop
367, // Horizontal Data Stop
896, // Vertical Data Stop
2000 // Interrupt trigger
},
#if SUPPORT_565
{ // Mode - 1152X864 16 bit 60Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
364, // Horizontal Count
911, // Vertical Count
68, // Horizontal Blank Stop
356, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 16 bit 70Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
371, // Horizontal Count
906, // Vertical Count
77, // Horizontal Blank Stop
365, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 16 bit 75Hz
0x07, // Timing Register A
28, // Horizontal Sync Stop
2, // Vertical Sync Stop
32, // Vertical Blank Stop
371, // Horizontal Count
897, // Vertical Count
79, // Horizontal Blank Stop
367, // Horizontal Data Stop
896, // Vertical Data Stop
2000 // Interrupt trigger
},
#endif
{ // Mode - 1152X864 32 bit 60Hz
0x07, // Timing Register A
58, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
728, // Horizontal Count
911, // Vertical Count
138, // Horizontal Blank Stop
714, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 32 bit 70Hz
0x07, // Timing Register A
66, // Horizontal Sync Stop
4, // Vertical Sync Stop
40, // Vertical Blank Stop
742, // Horizontal Count
906, // Vertical Count
155, // Horizontal Blank Stop
731, // Horizontal Data Stop
904, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1152X864 32 bit 75Hz
0x07, // Timing Register A
56, // Horizontal Sync Stop
2, // Vertical Sync Stop
32, // Vertical Blank Stop
742, // Horizontal Count
897, // Vertical Count
158, // Horizontal Blank Stop
734, // Horizontal Data Stop
896, // Vertical Data Stop
2000 // Interrupt trigger
},
{ // Mode - 1280X1024 8 bit 60 Hz
0x07, // Timing Register A
16, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
214, // Horizontal Count
1069, // Vertical Count
52, // Horizontal Blank Stop
212, // Horizontal Data Stop
1063, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
{ // Mode - 1280X1024 8 bit 70 Hz
0x07, // Timing Register A
16, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
211, // Horizontal Count
1066, // Vertical Count
49, // Horizontal Blank Stop
209, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
#endif
{ // Mode 24_32 - 1280X1024 8 bit 75 Hz
0x07, // Timing Register A
17, // Horizontal Sync Stop
2, // Vertical Sync Stop
40, // Vertical Blank Stop
210, // Horizontal Count
1065, // Vertical Count
48, // Horizontal Blank Stop
208, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 15 bit 60 Hz
0x07, // Timing Register A
34, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
429, // Horizontal Count
1069, // Vertical Count
105, // Horizontal Blank Stop
425, // Horizontal Data Stop
1063, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
{ // Mode - 1280X1024 15 bit 70 Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
423, // Horizontal Count
1066, // Vertical Count
99, // Horizontal Blank Stop
419, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
#endif
{ // Mode 25_33 - 1280X1024 15 bit 75 Hz
0x07, // Timing Register A
35, // Horizontal Sync Stop
2, // Vertical Sync Stop
40, // Vertical Blank Stop
421, // Horizontal Count
1065, // Vertical Count
97, // Horizontal Blank Stop
417, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
}
#if SUPPORT_565
,
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 16 bit 60 Hz
0x07, // Timing Register A
34, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
429, // Horizontal Count
1069, // Vertical Count
105, // Horizontal Blank Stop
425, // Horizontal Data Stop
1063, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
{ // Mode - 1280X1024 16 bit 70 Hz
0x07, // Timing Register A
33, // Horizontal Sync Stop
2, // Vertical Sync Stop
39, // Vertical Blank Stop
423, // Horizontal Count
1066, // Vertical Count
99, // Horizontal Blank Stop
419, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
},
#endif
{ // Mode X_34 - 1280X1024 16 bit 75 Hz
0x07, // Timing Register A
35, // Horizontal Sync Stop
2, // Vertical Sync Stop
40, // Vertical Blank Stop
421, // Horizontal Count
1065, // Vertical Count
97, // Horizontal Blank Stop
417, // Horizontal Data Stop
1064, // Vertical Data Stop
2000 // Interrupt trigger (after max for now)
}
#endif
}
};
/***** Initial values for Bt445 registers *****/
BT_FIXED_REG_INIT BtFixedRegInit = {
0xff, // Read enable for all R, G & B
0x00, // Blink disable for all R, G & B
0x00, // Overlay disable (Command reg0)
0x00, // Overlay position
0x01, // Overlay width
0x00, // Overlay disable
0x00, // Overlay blink
0x00, // Cursor position
0x01, // Cursor width
0x00, // Cursor disable
0x00, // Cursor blink
#if SUPPORT_565
0x40, // Pedestal 7.5 IRE blanking, Sparse palette (Command reg1)
#else
0x44, // Pedestal 7.5 IRE blanking, Contiguous palette (Command reg1)
#endif
0x00, // DOUT disabled
0x04, // VIDCLK enabled
0x00, // Palette bypass position
0x01 // Palette bypass width
};
BT_REG1_INIT BtReg1Init[2][NUMBER_OF_PIXEL_TYPES] = {
{ // [0] VRAM width 32 bit
{ // 8 bit pixel
0x07, // Red position
0x08, // Red width
0x07, // Green position
0x08, // Green width
0x07, // Blue position
0x08, // Blue width
0x03, // VIDCLK (4 pixel / clk)
0x03, // MPX (4 pixel / clk)
0x08, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
{ // 15 bit pixel
0x0e, // Red position
0x05, // Red width
0x09, // Green position
0x05, // Green width
0x04, // Blue position
0x05, // Blue width
0x01, // VIDCLK (2 pixel / clk)
0x01, // MPX (2 pixel / clk)
0x10, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
#if SUPPORT_565
{ // 16 bit pixel
0x0f, // Red position
0x05, // Red width
0x0a, // Green position
0x06, // Green width
0x04, // Blue position
0x05, // Blue width
0x01, // VIDCLK (2 pixel / clk)
0x01, // MPX (2 pixel / clk)
0x10, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
#endif
{ // 32 bit pixel
0x17, // Red position
0x08, // Red width
0x0f, // Green position
0x08, // Green width
0x07, // Blue position
0x08, // Blue width
0x00, // VIDCLK (1 pixel / clk)
0x00, // MPX (1 pixel / clk)
0x20, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
}
},
{ // [1] VRAM width 64 bit or 128 bit
{ // 8 bit pixel
0x07, // Red position
0x08, // Red width
0x07, // Green position
0x08, // Green width
0x07, // Blue position
0x08, // Blue width
0x07, // VIDCLK (8 pixel / clk)
0x07, // MPX (8 pixel / clk)
0x08, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
{ // 15 bit pixel
0x0e, // Red position
0x05, // Red width
0x09, // Green position
0x05, // Green width
0x04, // Blue position
0x05, // Blue width
0x03, // VIDCLK (4 pixel / clk)
0x03, // MPX (4 pixel / clk)
0x10, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
#if SUPPORT_565
{ // 16 bit pixel
0x0f, // Red position
0x05, // Red width
0x0a, // Green position
0x06, // Green width
0x04, // Blue position
0x05, // Blue width
0x03, // VIDCLK (4 pixel / clk)
0x03, // MPX (4 pixel / clk)
0x10, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
},
#endif
{ // 32 bit pixel
0x17, // Red position
0x08, // Red width
0x0f, // Green position
0x08, // Green width
0x07, // Blue position
0x08, // Blue width
0x01, // VIDCLK (2 pixel / clk)
0x01, // MPX (2 pixel / clk)
0x20, // Pixel depth
0x00, // Pixel start position = 0 for LSB unpacking
0x80 // LSB unpacking, Overlay, Cursor, Palette bypass disabled
}
}
};
BT_REG2_INIT BtReg2Init[NUMBER_OF_MODES] = {
{ // Mode 0_0 - 640X480 8 bit 72Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 1_1 - 640X480 8 bit 75Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 2_2 - 640X480 15 bit 72Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 3_3 - 640X480 15 bit 75Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
#if SUPPORT_565
{ // Mode X-4 - 640X480 16 bit 72Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode X-5 - 640X480 16 bit 75Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
#endif
{ // Mode 4_6 - 640X480 32 bit 72Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 5_7 - 640X480 32 bit 75Hz - Pixel Clock 31.5MHz
0x2c, // M=44
0x84, // L=4, N=5 makes 31.5MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 6_8 - 800X600 8 bit 60Hz - Pixel Clock 40MHz
0x1c, // M=28
0x44, // L=2, N=5 makes 40.09MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 7_9 - 800X600 8 bit 72Hz - Pixel Clock 50MHz
0x1c, // M=28
0x43, // L=2, N=4 makes 50.11MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode 8_10 - 800X600 8 bit 75Hz - Pixel Clock 49.5MHz
0x3e, // M=62
0x48, // L=2, N=9 makes 49.32MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode 9_11 - 800X600 15 bit 60Hz - Pixel Clock 40MHz
0x1c, // M=28
0x44, // L=2, N=5 makes 40.09MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 10_12 - 800X600 15 bit 72Hz - Pixel Clock 50MHz
0x1c, // M=28
0x43, // L=2, N=4 makes 50.11MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode 11_13 - 800X600 15 bit 75Hz - Pixel Clock 49.5MHz
0x3e, // M=62
0x48, // L=2, N=9 makes 49.32MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#if SUPPORT_565
{ // Mode X-14 - 800X600 16 bit 60Hz - Pixel Clock 40MHz
0x1c, // M=28
0x44, // L=2, N=5 makes 40.09MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode X-15 - 800X600 16 bit 72Hz - Pixel Clock 50MHz
0x1c, // M=28
0x43, // L=2, N=4 makes 50.11MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode X_16 - 800X600 16 bit 75Hz - Pixel Clock 49.5MHz
0x3e, // M=62
0x48, // L=2, N=9 makes 49.32MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#endif
{ // Mode 12_17 - 800X600 32 bit 60Hz - Pixel Clock 40MHz
0x1c, // M=28
0x44, // L=2, N=5 makes 40.09MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 13_18 - 800X600 32 bit 72Hz - Pixel Clock 50MHz
0x1c, // M=28
0x43, // L=2, N=4 makes 50.11MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode 14_19 - 800X600 32 bit 75Hz - Pixel Clock 49.5MHz
0x3e, // M=62
0x48, // L=2, N=9 makes 49.32MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode 15_20 - 1024X768 8 bit 60Hz - Pixel Clock 65MHz
0x37, // M=55
0x45, // L=2, N=6 makes 65.62MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 16_21 - 1024X768 8 bit 70Hz - Pixel Cloxk 75MHz
0x2a, // M=42
0x07, // L=1, N=8 makes 75.17MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 17_22 - 1024X768 8 bit 75Hz - Pixel Clock 78.75MHz
0x21, // M=33
0x05, // L=1, N=6 makes 78.75MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 18_23 - 1024X768 15 bit 60Hz - Pixel Clock 65MHz
0x37, // M=55
0x45, // L=2, N=6 makes 65.62MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 19_24 - 1024X768 15 bit 70Hz - Pixel Cloxk 75MHz
0x2a, // M=42
0x07, // L=1, N=8 makes 75.17MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 20_25 - 1024X768 15 bit 75Hz - Pixel Clock 78.75MHz
0x21, // M=33
0x05, // L=1, N=6 makes 78.75MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
#if SUPPORT_565
{ // Mode X_26 - 1024X768 16 bit 60Hz - Pixel Clock 65MHz
0x37, // M=55
0x45, // L=2, N=6 makes 65.62MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode X_27 - 1024X768 16 bit 70Hz - Pixel Cloxk 75MHz
0x2a, // M=42
0x07, // L=1, N=8 makes 75.17MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode X_28 - 1024X768 16 bit 75Hz - Pixel Clock 78.75MHz
0x21, // M=33
0x05, // L=1, N=6 makes 78.75MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
#endif
{ // Mode 21_29 - 1024X768 32 bit 60Hz - Pixel Clock 65MHz
0x37, // M=55
0x45, // L=2, N=6 makes 65.62MHz
0x84 // PLL enabled, MCLK disabled, VCO Gain range 4
},
{ // Mode 22_30 - 1024X768 32 bit 70Hz - Pixel Cloxk 75MHz
0x2a, // M=42
0x07, // L=1, N=8 makes 75.17MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode 23_31 - 1024X768 32 bit 75Hz - Pixel Clock 78.75MHz
0x21, // M=33
0x05, // L=1, N=6 makes 78.75MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
#if SUPPORT_NON_VESA
{ // Mode - 1152X864 8 bit 60Hz - Pixel Clock 79.825 MHz
0x27, // M=39
0x06, // L=1, N=7 makes 79.773 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 8 bit 70Hz - Pixel Clock 94.334 MHz
0x21, // M=33
0x04, // L=1, N=5 makes 94.5 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 8 bit 75Hz - Pixel Clock 100.08 MHz
0x1c, // M=28
0x03, // L=1, N=4 makes 100.227MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode - 1152X864 15 bit 60Hz - Pixel Clock 79.825MHz
0x27, // M=39
0x06, // L=1, N=7 makes 79.773 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 15 bit 70Hz - Pixel Clock 94.334 MHz
0x21, // M=33
0x04, // L=1, N=5 makes 94.5 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 15 bit 75Hz - Pixel Clock 100.08MHz
0x1c, // M=28
0x03, // L=1, N=4 makes 100.227MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#if SUPPORT_565
{ // Mode - 1152X864 16 bit 60Hz - Pixel Clock 79.825MHz
0x27, // M=39
0x06, // L=1, N=7 makes 79.773 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 16 bit 70Hz - Pixel Clock 94.334 MHz
0x21, // M=33
0x04, // L=1, N=5 makes 94.5 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 16 bit 75Hz - Pixel Clock 100.08MHz
0x1c, // M=28
0x03, // L=1, N=4 makes 100.227MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#endif
{ // Mode - 1152X864 32 bit 60Hz - Pixel Clock 79.825MHz
0x27, // M=39
0x06, // L=1, N=7 makes 79.773 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 32 bit 70Hz - Pixel Clock 94.334 MHz
0x21, // M=33
0x04, // L=1, N=5 makes 94.5 MHz
0x87 // PLL enabled, MCLK disabled, VCO Gain range 7
},
{ // Mode - 1152X864 32 bit 75Hz - Pixel Clock 100.08MHz
0x1c, // M=28
0x03, // L=1, N=4 makes 100.227MHz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode - 1280X1024 8 bit 60 Hz - Pixel Clock 110.28MHz
0x36, // M=54
0x06, // L=1, N=7 makes 110.455Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode - 1280X1024 8 bit 70 Hz - Pixel Clock 126.587MHz
0x35, // M=53
0x05, // L=1, N=6 makes 126.477Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#endif
{ // Mode 24_32 - 1280X1024 8 bit 75 Hz - Pixel Clock 135MHz
0x2f, // M=47
0x04, // L=1, N=5 makes 134.6MHz
0x83 // PLL enabled, MCLK disabled, VCO Gain range 3
},
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 15 bit 60 Hz - Pixel Clock 110.28MHz
0x36, // M=54
0x06, // L=1, N=7 makes 110.455Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode - 1280X1024 15 bit 70 Hz - Pixel Clock 126.587MHz
0x35, // M=53
0x05, // L=1, N=6 makes 126.477Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#endif
{ // Mode 25_33 - 1280X1024 15 bit 75 Hz - Pixel Clock 135MHz
0x2f, // M=47
0x04, // L=1, N=5 makes 134.6MHz
0x83 // PLL enabled, MCLK disabled, VCO Gain range 3
}
#if SUPPORT_565
,
#if SUPPORT_NON_VESA
{ // Mode - 1280X1024 16 bit 60 Hz - Pixel Clock 110.28MHz
0x36, // M=54
0x06, // L=1, N=7 makes 110.455Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
{ // Mode - 1280X1024 16 bit 70 Hz - Pixel Clock 126.587MHz
0x35, // M=53
0x05, // L=1, N=6 makes 126.477Mhz
0x86 // PLL enabled, MCLK disabled, VCO Gain range 6
},
#endif
{ // Mode X_34 - 1280X1024 16 bit 75 Hz - Pixel Clock 135MHz
0x2f, // M=47
0x04, // L=1, N=5 makes 134.6MHz
0x83 // PLL enabled, MCLK disabled, VCO Gain range 3
}
#endif
};
VIDEO_ACCESS_RANGE accessRanges[NUM_ACCESS_RANGE] = {
#if WRAPADDRESS
{ // for VRAM
{ 0xb0000000,
0xffffffff
},
MAX_VRAM_SIZE,
0, // Memory space
1, // Visible
1 // Sharable
},
#else // WRAPADDRESS
{ // for VRAM
{ VRAM_PHYSICAL_ADDRESS_BASE, // Low address
0 // High address
},
MAX_VRAM_SIZE,
0, // Memory space
1, // Visible
1 // Sharable
},
#endif // WRAPADDRESS
{ // for DCC
{ DCC_REGISTER_BASE, // Low address
0 // High address
},
DCC_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for Bt445
{ Bt445_REGISTER_BASE, // Low address
0 // High address
},
Bt445_SIZE,
1, // I/O space
0, // Invisible
0 // Non sharable
},
{ // for VRAM detect registers
{ VRAM_DETECT_REGISTER_BASE_1, // Low address
0 // High address
},
VRAM_DETECT_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for VRAM detect registers
{ VRAM_DETECT_REGISTER_BASE_2, // Low address
0 // High address
},
VRAM_DETECT_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for VRAM control registers
{ VRAM_CTRL_REGISTER_BASE, // Low address
0 // High address
},
VRAM_CTRL_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for Memory Bank 7 configuration register
{ MEM_BANK7_CONFIG_REGISTER_BASE, // Low address
0 // High address
},
MEM_BANK7_CONFIG_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for VRAM timing registers
{ VRAM_TIMING_REGISTER_BASE, // Low address
0 // High address
},
VRAM_TIMING_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for memory refresh interval register
{ MEM_REFRESH_REGISTER_BASE, // Low address
0 // High address
},
MEM_REFRESH_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for System interrupt register
{ SYSTEM_INTERRUPT_REGISTER_BASE, // Low address
0 // High address
},
SYSTEM_INTERRUPT_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
},
{ // for PCI ID register
{ PCI_DEVICE_ID_REGISTER_BASE, // Low address
0 // High address
},
PCI_DEVICE_ID_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
}
};
#if INVESTIGATE
VIDEO_ACCESS_RANGE TscStatusRegAccessRange =
{ // for TSC status register
{ TSC_STATUS_REGISTER_BASE, // Low address
0 // High address
},
TSC_STATUS_REGISTER_SIZE,
1, // I/O space
0, // Invisible
1 // Sharable
};
#endif
DCC_VIDEO_MODES DccModes[NUMBER_OF_MODES] = {
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_8_72, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
640, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_8_75, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
640, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_15_72, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_15_75, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#if SUPPORT_565
{
MEM1MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_16_72, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_16_75, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM2MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_32_72, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode640_480_32_75, // ModeIndex
640, // VisScreenWidth
480, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_8_60, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
800, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_8_72, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
800, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_8_75, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
800, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_15_60, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_15_72, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_15_75, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#if SUPPORT_565
{
MEM1MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_16_60, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_16_72, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_16_75, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
1600, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM2MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_32_60, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
3200, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_32_72, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
3200, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
72, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode800_600_32_75, // ModeIndex
800, // VisScreenWidth
600, // VisScreenHeight
3200, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_8_60, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
1024, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_8_70, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
1024, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_8_75, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
1024, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_15_60, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_15_70, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_15_75, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#if SUPPORT_565
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_16_60, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_16_70, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_16_75, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
2048, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_32_60, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
4096, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_32_70, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
4096, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1024_768_32_75, // ModeIndex
1024, // VisScreenWidth
768, // VisScreenHeight
4096, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#if SUPPORT_NON_VESA
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_8_60, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
1152, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_8_70, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
1152, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM1MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_8_75, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
1152, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_15_60, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_15_70, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_15_75, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#if SUPPORT_565
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_16_60, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_16_70, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_16_75, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
2304, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_32_60, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
4608, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_32_70, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
4608, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_32, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1152_864_32_75, // ModeIndex
1152, // VisScreenWidth
864, // VisScreenHeight
4608, // ScreenStride
1, // NumberOfPlanes
32, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00ff0000, // RedMask
0x0000ff00, // GreenMask
0x000000ff, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_8_60, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
{
MEM2MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_8_70, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
#endif
{
MEM2MB, // Minimum required memory
PIXEL_8, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_8_75, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
1280, // ScreenStride
1, // NumberOfPlanes
8, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00000000, // RedMask
0x00000000, // GreenMask
0x00000000, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR | VIDEO_MODE_PALETTE_DRIVEN |
VIDEO_MODE_MANAGED_PALETTE // AttributeFlags
}
},
#if SUPPORT_NON_VESA
{
MEM4MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_15_60, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_15_70, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM4MB, // Minimum required memory
PIXEL_15, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_15_75, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
15, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x00007c00, // RedMask
0x000003e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
}
#if SUPPORT_565
,
#if SUPPORT_NON_VESA
{
MEM4MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_16_60, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
60, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
{
MEM4MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_16_70, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
70, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
},
#endif
{
MEM4MB, // Minimum required memory
PIXEL_16, // Pixel type
{
sizeof(VIDEO_MODE_INFORMATION), // Length
mode1280_1024_16_75, // ModeIndex
1280, // VisScreenWidth
1024, // VisScreenHeight
2560, // ScreenStride
1, // NumberOfPlanes
16, // BitsPerPlane
75, // Frequency
330, // XMillimeter
240, // YMillimeter
8, // NumberRedBits
8, // NumberGreenBits
8, // NumberBlueBits
0x0000f800, // RedMask
0x000007e0, // GreenMask
0x0000001f, // BlueMask
VIDEO_MODE_GRAPHICS | VIDEO_MODE_COLOR // AttributeFlags
}
}
#endif
};