File:  [WindowsNT SDKs] / ntddk / src / video / miniport / xga / xga.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:31:12 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntddk-nov-1993, HEAD
Microsoft Windows NT Build 511 (DDK SDK) 11-01-1993

/*++

Copyright (c) 1991-1992  Microsoft Corporation

Module Name:

    xga.h

Abstract:

    This module contains the global structures and definitions used
    by the xga driver.

Environment:

    Kernel mode

Revision History:


--*/

//
// bit field of types of board recognized by the device
//

#define XGA_TYPE_1        1  // IBM XGA 1 board
#define XGA_TYPE_2        2  // IBM XGA 2 board

//
// Resource Sizes
//

#define XGA_IO_REGS_SIZE           0x0010
#define XGA_CO_PROCESSOR_REGS_SIZE 0x0080
#define XGA_ROM_SIZE               0x1C00

//
// XGA I/O register definitions
//

#define OP_MODE_REG      0x0
#define APP_CTL_REG      0x1
#define INT_ENABLE_REG   0x4
#define INT_STATUS_REG   0x5
#define VMEM_CONTROL_REG 0x6
#define APP_INDEX_REG    0x8
#define MEMACC_MODE_REG  0x9
#define INDEX_REG        0xA
#define DATA_IN_REG      0xB
#define DATA_OUT_REG     0xC
#define INDEX_OR_REG     0xFE
#define END_OF_SWITCH    0xFF

//
// Pos register masks
//

#define ROM_MASK    0xF0
#define INST_MASK   0x0E
#define EN_MASK     0x01

#define VIDEO_MEM_MASK            0xFE
#define VIDEO_ENABLE_MASK   0x01

#define XGAOUT(reg, val)    \
  VideoPortWritePortUchar((PUCHAR)(hwDeviceExtension->IoRegBaseAddress+reg), val)


#define XGAIDXOUT(reg, index, val)  \
  VideoPortWritePortUshort((PUSHORT)(hwDeviceExtension->IoRegBaseAddress+reg), (USHORT)((val << 8) + index))


//
// Mode set tables
//

//
// Table entries on which the mode switch routine is based on.
//

typedef struct _MODE_REGISTER_DATA_TABLE {
    UCHAR Port;
    UCHAR IndexPort;
    UCHAR Data;
} MODE_REGISTER_DATA_TABLE, *PMODE_REGISTER_DATA_TABLE;


//
//  XGA 1 mode tables
//

MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_64_GR[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0x00,
OP_MODE_REG,      0x00, 0x00,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x00,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x00,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x00,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x00,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x00,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x00,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x00,
INDEX_REG,        0x21, 0x00,
INDEX_REG,        0x22, 0x00,
INDEX_REG,        0x23, 0x00,
INDEX_REG,        0x24, 0x00,
INDEX_REG,        0x25, 0x00,
INDEX_REG,        0x26, 0x00,
INDEX_REG,        0x27, 0x00,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x00,
INDEX_REG,        0x2A, 0x00,
INDEX_REG,        0x2C, 0x00,
INDEX_REG,        0x2D, 0x00,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x00,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0x00,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_256_CO[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x61,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x0C,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x0C,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xEA,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEC,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

MODE_REGISTER_DATA_TABLE XGA1_MODE_640_480_65536_CO[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x04,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x61,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x0C,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x0C,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xEA,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEC,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0xA0,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x04,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_16_GR[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0x00,
OP_MODE_REG,      0x00, 0x00,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x00,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x00,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x00,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x00,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x00,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x00,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x00,
INDEX_REG,        0x21, 0x00,
INDEX_REG,        0x22, 0x00,
INDEX_REG,        0x23, 0x00,
INDEX_REG,        0x24, 0x00,
INDEX_REG,        0x25, 0x00,
INDEX_REG,        0x26, 0x00,
INDEX_REG,        0x27, 0x00,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x00,
INDEX_REG,        0x2A, 0x00,
INDEX_REG,        0x2C, 0x00,
INDEX_REG,        0x2D, 0x00,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x00,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0x00,
END_OF_SWITCH
};

MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_16_CO[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x02,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9D,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9D,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x87,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9C,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x40,
INDEX_REG,        0x1E, 0x04,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x40,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x0D,
INDEX_REG,        0x51, 0x02,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_64_GR[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0x00,
OP_MODE_REG,      0x00, 0x00,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x00,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x00,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x00,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x00,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x00,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x00,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x00,
INDEX_REG,        0x21, 0x00,
INDEX_REG,        0x22, 0x00,
INDEX_REG,        0x23, 0x00,
INDEX_REG,        0x24, 0x00,
INDEX_REG,        0x25, 0x00,
INDEX_REG,        0x26, 0x00,
INDEX_REG,        0x27, 0x00,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x00,
INDEX_REG,        0x2A, 0x00,
INDEX_REG,        0x2C, 0x00,
INDEX_REG,        0x2D, 0x00,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x00,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0x00,
END_OF_SWITCH
};

MODE_REGISTER_DATA_TABLE XGA1_MODE_1024_768_256_CO[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9D,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9D,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x87,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9C,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x40,
INDEX_REG,        0x1E, 0x04,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x0D,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

//
// XGA 2 mode tables
//

MODE_REGISTER_DATA_TABLE XGA2_MODE_1024_768_256_CO[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xA7,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xA7,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x99,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x58, 0x80,
INDEX_OR_REG,     0x5B, 0x02,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

//
// New IBM modes
//

//
// XGA 1 modes
//

MODE_REGISTER_DATA_TABLE XGA1_640x480x8x60Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x61,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x0C,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x0C,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xEA,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEC,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA1_640x400x8x70Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x61,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0xC0,
INDEX_REG,        0x21, 0x01,
INDEX_REG,        0x22, 0x8F,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0x8F,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0xC0,
INDEX_REG,        0x27, 0x01,
INDEX_REG,        0x28, 0x9C,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0x9E,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x54, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x50, 0x47,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA1_1024x768x8x43Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9D,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9D,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x86,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9C,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x40,
INDEX_REG,        0x1E, 0x04,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x54, 0x0D,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA1_1040x768x8x43Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9D,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9D,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x87,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9D,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x54, 0x0D,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};

//
// XGA 2 mode tables
//

MODE_REGISTER_DATA_TABLE XGA2_640x480x8x60Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x54,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x60,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x0C,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x0C,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xEA,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEC,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x24,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_640x480x8x72Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x67,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x67,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x5A,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x07,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x07,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xE8,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEB,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x3D,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_640x480x8x75Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x54,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x60,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x0C,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0xDF,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0xDF,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0x0C,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0xEA,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0xEC,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x3D,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_640x400x8x70Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x54,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x60,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0xC0,
INDEX_REG,        0x21, 0x01,
INDEX_REG,        0x22, 0x8F,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0x8F,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0xC0,
INDEX_REG,        0x27, 0x01,
INDEX_REG,        0x28, 0x9C,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0x9E,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x24,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x47,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_640x400x8x84Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x67,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x67,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x55,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x5A,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0xC0,
INDEX_REG,        0x21, 0x01,
INDEX_REG,        0x22, 0x8F,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0x8F,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0xC0,
INDEX_REG,        0x27, 0x01,
INDEX_REG,        0x28, 0x9C,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0x9E,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x3D,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x47,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_640x400x8x88Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x63,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x4F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x4F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x63,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x54,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x60,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0xC0,
INDEX_REG,        0x21, 0x01,
INDEX_REG,        0x22, 0x8F,
INDEX_REG,        0x23, 0x01,
INDEX_REG,        0x24, 0x8F,
INDEX_REG,        0x25, 0x01,
INDEX_REG,        0x26, 0xC0,
INDEX_REG,        0x27, 0x01,
INDEX_REG,        0x28, 0x9C,
INDEX_REG,        0x29, 0x01,
INDEX_REG,        0x2A, 0x9E,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x50,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x3D,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x47,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_800x600x8x56Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x7F,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x63,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x63,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x7F,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x69,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x72,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x70,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0x57,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0x57,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x70,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0x58,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x5A,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x64,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x47,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_800x600x8x60Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x83,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x63,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x63,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x83,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x6B,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x7B,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x73,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0x57,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0x57,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x73,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0x58,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x5C,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x64,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x4F,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_800x600x8x72Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x81,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x63,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x63,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x81,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x70,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x7F,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x99,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0x57,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0x57,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x99,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0x7C,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x82,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x64,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x63,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_800x600x8x75Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x81,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x63,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x63,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x81,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x70,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x7F,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x99,
INDEX_REG,        0x21, 0x02,
INDEX_REG,        0x22, 0x57,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0x57,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x99,
INDEX_REG,        0x27, 0x02,
INDEX_REG,        0x28, 0x7C,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x82,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x64,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x67,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x43Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9D,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9D,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x83,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x99,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x20,
INDEX_REG,        0x1E, 0x02,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x59,
INDEX_REG,        0x54, 0x80,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x60Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xA7,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xA7,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x99,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x80,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x70Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xA5,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xA5,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x99,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8A,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x70HzxIBM[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xaa,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xaa,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x86,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xa9,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x2e,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x2e,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xff,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8D,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x72Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xA9,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xA9,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x86,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xA9,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x26,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x26,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xFF,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8E,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1024x768x8x75Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xAF,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x7F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x7F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xAF,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x86,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xAE,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xFF,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x80,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x95,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x43Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0x9F,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0x9F,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9E,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x30,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x30,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x00,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x5A,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x0F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x60Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xAA,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xAA,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x8A,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9B,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x81,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x70Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xA8,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xA8,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x8A,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0x9B,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x08,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8B,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0xC7,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x70HzDBCS[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xAD,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xAD,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xAB,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x2E,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x2E,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xFF,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8E,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x72Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xAE,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xAE,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x89,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xAD,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x26,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x26,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xFF,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x90,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1040x768x8x75Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xB2,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x81,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x81,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xB2,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x88,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xB0,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x25,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x02,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x02,
INDEX_REG,        0x26, 0x25,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0xFF,
INDEX_REG,        0x29, 0x02,
INDEX_REG,        0x2A, 0x07,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x82,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x96,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x07,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1104x828x8x69Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xBD,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x89,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x89,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xBD,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0x94,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xAD,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x5B,
INDEX_REG,        0x21, 0x03,
INDEX_REG,        0x22, 0x3B,
INDEX_REG,        0x23, 0x03,
INDEX_REG,        0x24, 0x3B,
INDEX_REG,        0x25, 0x03,
INDEX_REG,        0x26, 0x5B,
INDEX_REG,        0x27, 0x03,
INDEX_REG,        0x28, 0x3E,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0x41,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0x8A,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x99,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x87,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1280x1024x8x45Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xD1,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x9F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x9F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xD1,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0xA7,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xCF,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x44,
INDEX_REG,        0x21, 0x04,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x03,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x03,
INDEX_REG,        0x26, 0x44,
INDEX_REG,        0x27, 0x04,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x04,
INDEX_REG,        0x2A, 0x0A,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0xA0,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x91,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x4F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1280x960x8x45Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xD1,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0x9F,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0x9F,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xD1,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0xA7,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xCF,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x04,
INDEX_REG,        0x21, 0x04,
INDEX_REG,        0x22, 0xBF,
INDEX_REG,        0x23, 0x03,
INDEX_REG,        0x24, 0xBF,
INDEX_REG,        0x25, 0x03,
INDEX_REG,        0x26, 0x04,
INDEX_REG,        0x27, 0x04,
INDEX_REG,        0x28, 0xC2,
INDEX_REG,        0x29, 0x03,
INDEX_REG,        0x2A, 0xCA,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0xA0,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x8C,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x4F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


MODE_REGISTER_DATA_TABLE XGA2_1360x1024x8x45Hz[] = {

INT_ENABLE_REG,   0x00, 0x00,
INT_STATUS_REG,   0x00, 0xFF,
OP_MODE_REG,      0x00, 0x04,
INDEX_REG,        0x64, 0x00,
APP_CTL_REG,      0x00, 0x00,
APP_INDEX_REG,    0x00, 0x00,
VMEM_CONTROL_REG, 0x00, 0x00,
MEMACC_MODE_REG,  0x00, 0x03,
INDEX_REG,        0x50, 0x01,
INDEX_REG,        0x50, 0x00,
INDEX_REG,        0x10, 0xDB,
INDEX_REG,        0x11, 0x00,
INDEX_REG,        0x12, 0xA9,
INDEX_REG,        0x13, 0x00,
INDEX_REG,        0x14, 0xA9,
INDEX_REG,        0x15, 0x00,
INDEX_REG,        0x16, 0xDB,
INDEX_REG,        0x17, 0x00,
INDEX_REG,        0x18, 0xB1,
INDEX_REG,        0x19, 0x00,
INDEX_REG,        0x1A, 0xD9,
INDEX_REG,        0x1B, 0x00,
INDEX_REG,        0x1C, 0x00,
INDEX_REG,        0x1E, 0x00,
INDEX_REG,        0x20, 0x40,
INDEX_REG,        0x21, 0x04,
INDEX_REG,        0x22, 0xFF,
INDEX_REG,        0x23, 0x03,
INDEX_REG,        0x24, 0xFF,
INDEX_REG,        0x25, 0x03,
INDEX_REG,        0x26, 0x40,
INDEX_REG,        0x27, 0x04,
INDEX_REG,        0x28, 0x02,
INDEX_REG,        0x29, 0x04,
INDEX_REG,        0x2A, 0x0A,
INDEX_REG,        0x2C, 0xFF,
INDEX_REG,        0x2D, 0xFF,
INDEX_REG,        0x36, 0x00,
INDEX_REG,        0x40, 0x00,
INDEX_REG,        0x41, 0x00,
INDEX_REG,        0x42, 0x00,
INDEX_REG,        0x43, 0xAA,
INDEX_REG,        0x44, 0x00,
INDEX_REG,        0x54, 0x01,
INDEX_REG,        0x70, 0x00,
INDEX_REG,        0x51, 0x03,
INDEX_REG,        0x58, 0x95,
INDEX_REG,        0x54, 0x81,
INDEX_REG,        0x50, 0x4F,
INDEX_REG,        0x55, 0x00,
INDEX_REG,        0x60, 0x00,
INDEX_REG,        0x61, 0x00,
INDEX_REG,        0x62, 0x00,
INDEX_REG,        0x63, 0x00,
INDEX_REG,        0x64, 0xFF,
END_OF_SWITCH
};


//
// mode information tables
//

//
// Characteristics of each mode
//

typedef struct _XGA_VIDEO_MODE {
    PMODE_REGISTER_DATA_TABLE Xga1Mode;
    PMODE_REGISTER_DATA_TABLE Xga2Mode;
    ULONG minimumRequiredMemory;
    VIDEO_MODE_INFORMATION modeInformation;
} XGA_VIDEO_MODE, *PXGA_VIDEO_MODE;


//
// Video mode table - Lists the information about each individual mode
//

XGA_VIDEO_MODE XgaModes[] = {

{
  XGA1_MODE_640_480_64_GR,         // Mode setting table for XGA 1
  NULL,                            // Mode setting table for XGA 2
  0x00080000,                      // Required Video memory for this mode
    {
      sizeof(VIDEO_MODE_INFORMATION), // Size of the mode informtion structure
      0,                           // Mode index used in setting the mode
      640,                         // X Resolution, in pixels
      480,                         // Y Resolution, in pixels
      480,                         // Screen stride, in bytes (distance
                                   // between the start point of two
                                   // consecutive scan lines, in bytes)
      1,                           // Number of video memory planes
      6,                           // Number of bits per plane
      0,                           // Screen Frequency, in Hertz
      330,                         // Horizontal size of screen in millimeters
      240,                         // Vertical size of screen in millimeters
      8,                           // Number Red pixels in DAC
      8,                           // Number Green pixels in DAC
      8,                           // Number Blue pixels in DAC
      0x00000000,                  // Mask for Red Pixels in non-palette modes
      0x00000000,                  // Mask for Green Pixels in non-palette modes
      0x00000000,                  // Mask for Blue Pixels in non-palette modes
      VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE // Mode description flags.
    }
},
{
  XGA1_MODE_1024_768_16_GR,
  NULL,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      1,
      1024,
      768,
      512,
      1,
      4,
      0,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  XGA1_MODE_1024_768_64_GR,
  NULL,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      2,
      1024,
      768,
      768,
      1,
      6,
      0,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  XGA1_MODE_1024_768_16_CO,
  NULL,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      3,
      1024,
      768,
      512,
      1,
      4,
      0,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  XGA1_640x400x8x70Hz,
  XGA2_640x400x8x70Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      4,
      640,
      400,
      640,
      1,
      8,
      70,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_640x400x8x84Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      5,
      640,
      400,
      640,
      1,
      8,
      84,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_640x400x8x88Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      6,
      640,
      400,
      640,
      1,
      8,
      88,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  XGA1_640x480x8x60Hz,
  XGA2_640x480x8x60Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      7,
      640,
      480,
      640,
      1,
      8,
      60,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_640x480x8x72Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      8,
      640,
      480,
      640,
      1,
      8,
      72,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_640x480x8x75Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      9,
      640,
      480,
      640,
      1,
      8,
      75,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_800x600x8x56Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      10,
      800,
      600,
      800,
      1,
      8,
      56,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_800x600x8x60Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      11,
      800,
      600,
      800,
      1,
      8,
      60,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_800x600x8x72Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      12,
      800,
      600,
      800,
      1,
      8,
      72,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_800x600x8x75Hz,
  0x00080000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      13,
      800,
      600,
      800,
      1,
      8,
      75,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  XGA1_1024x768x8x43Hz,
  XGA2_1024x768x8x43Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      14,
      1024,
      768,
      1024,
      1,
      8,
      43,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  NULL,
  XGA2_1024x768x8x60Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      15,
      1024,
      768,
      1024,
      1,
      8,
      60,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1024x768x8x70Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      16,
      1024,
      768,
      1024,
      1,
      8,
      70,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1024x768x8x72Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      17,
      1024,
      768,
      1024,
      1,
      8,
      72,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1024x768x8x75Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      18,
      1024,
      768,
      1024,
      1,
      8,
      75,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  XGA1_1040x768x8x43Hz,
  XGA2_1040x768x8x43Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      19,
      1040,
      768,
      1040,
      1,
      8,
      43,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  NULL,
  XGA2_1040x768x8x60Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      20,
      1040,
      768,
      1040,
      1,
      8,
      60,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1040x768x8x70Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      21,
      1040,
      768,
      1040,
      1,
      8,
      70,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1040x768x8x72Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      22,
      1040,
      768,
      1040,
      1,
      8,
      72,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1040x768x8x75Hz,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      23,
      1040,
      768,
      1040,
      1,
      8,
      75,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE                        
    }
},
{
  NULL,
  XGA2_1104x828x8x69Hz,
  0x00140000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      24,
      1104,
      828,
      1104,
      1,
      8,
      69,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
},
{
  NULL,
  XGA2_1280x960x8x45Hz,
  0x00180000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      25,
      1280,
      960,
      1280,
      1,
      8,
      45,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  NULL,
  XGA2_1280x1024x8x45Hz,
  0x00180000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      26,
      1280,
      1024,
      1280,
      1,
      8,
      45,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  NULL,
  XGA2_1360x1024x8x45Hz,
  0x00180000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      27,
      1360,
      1024,
      1360,
      1,
      8,
      45,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE | VIDEO_MODE_INTERLACED
    }
},
{
  XGA1_MODE_640_480_65536_CO,
  NULL,
  0x00100000,
    {
      sizeof(VIDEO_MODE_INFORMATION),
      28,
      640,
      480,
      1280,
      1,
      16,
      0,
      330,
      240,
      8,
      8,
      8,
      0x00000000,
      0x00000000,
      0x00000000,
      VIDEO_MODE_COLOR | VIDEO_MODE_GRAPHICS | VIDEO_MODE_PALETTE_DRIVEN |
        VIDEO_MODE_MANAGED_PALETTE
    }
}

//
// *** Important ***
// New modes must only be added at the end and the mode
// number must be incremented. !!!
//

};

#define XGA_NUM_MODES (sizeof(XgaModes) / sizeof (XGA_VIDEO_MODE))


//
// Structure for VGA reseting
//

typedef struct _INDEX_REGISTER_DATA_TABLE {
    UCHAR PortIndex;
    UCHAR Data;
} INDEX_REGISTER_DATA_TABLE, *PINDEX_REGISTER_DATA_TABLE;

//
// Set of registers needed to reset the XGA in standart VGA mode.
//

INDEX_REGISTER_DATA_TABLE XgaResetToVga[] = {
    {0x64, 0xff},
    {0x50, 0x15},
    {0x50, 0x14},
    {0x51, 0x00},
    {0x54, 0x04},
    {0x70, 0x00},
    {0x2A, 0x20},
    {0xFF, 0x00}
};


//
// the device's private Device Extension
//

typedef struct _HW_DEVICE_EXTENSION {
    PHYSICAL_ADDRESS PhysicalRomBaseAddress;
    PHYSICAL_ADDRESS PhysicalCoProcessorAddress;
    PHYSICAL_ADDRESS PhysicalVideoMemoryAddress;
    PHYSICAL_ADDRESS PhysicalIoRegBaseAddress;

    UCHAR BoardType;
    UCHAR Color;
    UCHAR NumAvailableModes;
    UCHAR CurrentMode;

    ULONG IoRegBaseAddress;

    PVOID VirtualAddress;
    PVOID FrameAddress ;
    ULONG FrameLength ;
    ULONG PhysicalVideoMemoryLength;

    PVOID A0000MemoryAddress;
    PVOID PassThroughPort;

    UCHAR Valid[XGA_NUM_MODES];

} HW_DEVICE_EXTENSION, *PHW_DEVICE_EXTENSION;

//
// Settings for the default color palette.
//

UCHAR colour_default_palette[] = {
    0x00, 0x00, 0x00,
    0x00, 0x00, 0xa8,
    0x00, 0xa8, 0x00,
    0x00, 0xA8, 0xA8,
    0xA8, 0x00, 0x00,
    0xA8, 0x00, 0xa8,
    0xA8, 0x54, 0x00,
    0xA8, 0xA8, 0xA8,
    0x54, 0x54, 0x54,
    0x54, 0x54, 0xfc,
    0x54, 0xfc, 0x54,
    0x54, 0xFC, 0xFC,
    0xFC, 0x54, 0x54,
    0xFC, 0x54, 0xFC,
    0xFC, 0xFC, 0x54,
    0xFC, 0xFC, 0xFC
};

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.