diff options
-rw-r--r-- | src/drivers/trident/Kconfig | 1 | ||||
-rw-r--r-- | src/drivers/trident/Makefile.inc | 1 | ||||
-rw-r--r-- | src/drivers/trident/blade3d/Kconfig | 2 | ||||
-rw-r--r-- | src/drivers/trident/blade3d/Makefile.inc | 1 | ||||
-rw-r--r-- | src/drivers/trident/blade3d/blade3d.c | 1027 |
5 files changed, 0 insertions, 1032 deletions
diff --git a/src/drivers/trident/Kconfig b/src/drivers/trident/Kconfig deleted file mode 100644 index 1dcd5f3382..0000000000 --- a/src/drivers/trident/Kconfig +++ /dev/null @@ -1 +0,0 @@ -source src/drivers/trident/blade3d/Kconfig diff --git a/src/drivers/trident/Makefile.inc b/src/drivers/trident/Makefile.inc deleted file mode 100644 index 730f8aba77..0000000000 --- a/src/drivers/trident/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -subdirs-y += blade3d diff --git a/src/drivers/trident/blade3d/Kconfig b/src/drivers/trident/blade3d/Kconfig deleted file mode 100644 index c5e2de0c2f..0000000000 --- a/src/drivers/trident/blade3d/Kconfig +++ /dev/null @@ -1,2 +0,0 @@ -config DRIVERS_TRIDENT_BLADE3D - bool diff --git a/src/drivers/trident/blade3d/Makefile.inc b/src/drivers/trident/blade3d/Makefile.inc deleted file mode 100644 index c4a8c8c7ba..0000000000 --- a/src/drivers/trident/blade3d/Makefile.inc +++ /dev/null @@ -1 +0,0 @@ -ramstage-$(CONFIG_DRIVERS_TRIDENT_BLADE3D) += blade3d.c diff --git a/src/drivers/trident/blade3d/blade3d.c b/src/drivers/trident/blade3d/blade3d.c deleted file mode 100644 index dfc77b9bfa..0000000000 --- a/src/drivers/trident/blade3d/blade3d.c +++ /dev/null @@ -1,1027 +0,0 @@ -/* - * firmware initialization code for Trident Blade3d graphics adapter - * written by Fuger Shen 2003-10-10 - * (C) 2003 XGI Technology Inc. - * This code is released under GPL with permission from XGI - */ -#include <delay.h> -#include <stdlib.h> -#include <string.h> -#include <arch/io.h> - -#include <console/console.h> -#include <device/device.h> -#include <device/pci.h> -#include <device/pci_ids.h> -#include <device/pci_ops.h> - - -//----------------------------------------------------------------------------// -// init chip 9880 -// Fuger Shen 2003-10-10 -//----------------------------------------------------------------------------// - -#define inp inb -#define outp(port,val) outb(val, port) - -#define WORD unsigned int -#define BYTE unsigned char -#define DWORD unsigned long - -#define SGRAMTimg 0x27 -#define CHIPREV 0x3 //1,RA 2,RB,3,RC - -#define Port_SRX 0x3c4 -#define Port_CRX 0x3d4 -#define Port_GRX 0x3ce -#define Port_BRX 0x3c0 - -static BYTE Mem_Clk_Table[][2] = { - //For EDO, 3x5.2a.3:2=01 3x4.28.2:0 - { 0x50, 0x46 }, //000, F_78 - { 0xCF, 0x51 }, //001, F_81 = 81.011Mhz - { 0x30, 0x83 }, //010, F_40 = 40.006Mhz - { 0x1B, 0x43 }, //011, F_50 = 49.999MHz - { 0x22, 0x43 }, //100, F_60 = 59.999MHz - { 0x42, 0x46 }, //101, F_66 = 65.988MHz - { 0x33, 0x44 }, //110, F_70 = 69.999Mhz - { 0x22, 0x42 }, //111, F_75 = 74,999Mhz - //for SGRAM, 3x5.2a.3:2=1x - { 0x3A, 0x05 }, //000, F_135 - { 0x38, 0x05 }, //001, F_130 - { 0x44, 0x44 }, //010, F_90 = 89.999MHz - { 0x22, 0x04 }, //011, F_100=100.227MHz - { 0x0E, 0x01 }, //100, F_105 - { 0x3D, 0x07 }, //101, F_110=109.989Mhz - { 0x22, 0x03 }, //110, F_120=119.999MHz - { 0x36, 0x05 }, //111, F_125 -}; - - -typedef struct Reg_struct { - WORD rPort; - BYTE rIndex; - BYTE rValue; - BYTE rMask; -} Def_Reg_struct; - -typedef Def_Reg_struct* lpDef_Reg_struct; -// , *pDef_Reg_struct, far * lpDef_Reg_struct; - -static Def_Reg_struct Mode3_temp[] = { //mode3 temp - //port index value mask - {Port_CRX, 0x00, 0x5F, 0x00}, - {Port_CRX, 0x01, 0x4F, 0x00}, - {Port_CRX, 0x02, 0x50, 0x00}, - {Port_CRX, 0x03, 0x82, 0x00}, - {Port_CRX, 0x04, 0x55, 0x00}, - {Port_CRX, 0x05, 0x81, 0x00}, - {Port_CRX, 0x06, 0xBF, 0x00}, - {Port_CRX, 0x07, 0x1F, 0x00}, - {Port_CRX, 0x08, 0x00, 0x00}, - {Port_CRX, 0x09, 0xC7, 0x00}, - {Port_CRX, 0x0a, 0x06, 0x00}, - {Port_CRX, 0x0b, 0x07, 0x00}, - {Port_CRX, 0x0c, 0x00, 0x00}, - {Port_CRX, 0x0d, 0x00, 0x00}, - {Port_CRX, 0x0e, 0x00, 0x00}, - {Port_CRX, 0x0f, 0x00, 0x00}, - {Port_CRX, 0x10, 0x9C, 0x00}, - {Port_CRX, 0x11, 0x8E, 0x00}, - {Port_CRX, 0x12, 0x8F, 0x00}, - {Port_CRX, 0x13, 0x28, 0x00}, - {Port_CRX, 0x14, 0x1F, 0x00}, - {Port_CRX, 0x15, 0x96, 0x00}, - {Port_CRX, 0x16, 0xB9, 0x00}, - {Port_CRX, 0x17, 0xA3, 0x00}, - {Port_CRX, 0x18, 0xFF, 0x00}, -}; - -WORD Length_Mode3_temp = sizeof(Mode3_temp) / sizeof(Def_Reg_struct); - -Def_Reg_struct Mode3_reg[] = { //mode3 - //port index value mask - {Port_CRX, 0x00, 0x5F, 0x00}, //3d5 - {Port_CRX, 0x01, 0x4F, 0x00}, - {Port_CRX, 0x02, 0x50, 0x00}, - {Port_CRX, 0x03, 0x82, 0x00}, - {Port_CRX, 0x04, 0x55, 0x00}, - {Port_CRX, 0x05, 0x81, 0x00}, - {Port_CRX, 0x06, 0xBF, 0x00}, - {Port_CRX, 0x07, 0x1F, 0x00}, - {Port_CRX, 0x08, 0x00, 0x00}, - {Port_CRX, 0x09, 0x4F, 0x00}, - {Port_CRX, 0x0a, 0x0D, 0x00}, - {Port_CRX, 0x0b, 0x0E, 0x00}, - {Port_CRX, 0x0c, 0x00, 0x00}, - {Port_CRX, 0x0d, 0x00, 0x00}, - {Port_CRX, 0x0e, 0x00, 0x00}, - {Port_CRX, 0x0f, 0x00, 0x00}, - {Port_CRX, 0x10, 0x9C, 0x00}, - {Port_CRX, 0x11, 0x8E, 0x00}, - {Port_CRX, 0x12, 0x8F, 0x00}, - {Port_CRX, 0x13, 0x28, 0x00}, - {Port_CRX, 0x14, 0x1F, 0x00}, - {Port_CRX, 0x15, 0x96, 0x00}, - {Port_CRX, 0x16, 0xB9, 0x00}, - {Port_CRX, 0x17, 0xA3, 0x00}, - {Port_CRX, 0x18, 0xFF, 0x00}, - - //brx - {Port_BRX, 0x00, 0x00, 0x00}, - {Port_BRX, 0x01, 0x01, 0x00}, - {Port_BRX, 0x02, 0x02, 0x00}, - {Port_BRX, 0x03, 0x03, 0x00}, - {Port_BRX, 0x04, 0x04, 0x00}, - {Port_BRX, 0x05, 0x05, 0x00}, - {Port_BRX, 0x06, 0x14, 0x00}, - {Port_BRX, 0x07, 0x07, 0x00}, - {Port_BRX, 0x08, 0x38, 0x00}, - {Port_BRX, 0x09, 0x39, 0x00}, - {Port_BRX, 0x0a, 0x3A, 0x00}, - {Port_BRX, 0x0b, 0x3B, 0x00}, - {Port_BRX, 0x0c, 0x3C, 0x00}, - {Port_BRX, 0x0d, 0x3D, 0x00}, - {Port_BRX, 0x0e, 0x3E, 0x00}, - {Port_BRX, 0x0f, 0x3F, 0x00}, - {Port_BRX, 0x10, 0x0C, 0x00}, - {Port_BRX, 0x11, 0x00, 0x00}, - {Port_BRX, 0x12, 0x0F, 0x00}, - {Port_BRX, 0x13, 0x08, 0x00}, - {Port_BRX, 0x14, 0x00, 0x00}, - - {Port_SRX, 0x00, 0x03, 0x00}, - {Port_SRX, 0x01, 0x00, 0x00}, - {Port_SRX, 0x02, 0x03, 0x00}, - {Port_SRX, 0x03, 0x00, 0x00}, - {Port_SRX, 0x04, 0x02, 0x00}, - {Port_SRX, 0x18, 0xa6, 0x00}, //VCLK - {Port_SRX, 0x19, 0xc9, 0x00}, - {Port_SRX, 0x0D, 0x20, 0x00}, - {Port_SRX, 0x12, 0x11, 0x00}, - - {Port_CRX, 0x19, 0x4a, 0x00}, - //{Port_CRX, 0x20, 0x20, 0x00}, - //{Port_CRX, 0x23, 0x00, 0x00}, - //{Port_CRX, 0x1E, 0x89, 0x00}, - {Port_CRX, 0x21, 0xce, 0x00}, - //{Port_CRX, 0x25, 0x07, 0x00}, - //{Port_CRX, 0x27, 0x08, 0x00}, - //{Port_CRX, 0x2B, 0x00, 0x00}, - //{Port_CRX, 0x29, 0x04, 0x00}, - //{Port_CRX, 0x2F, 0x22, 0x00}, - {Port_CRX, 0x37, 0x81, 0x00}, - //{Port_CRX, 0x38, 0x00, 0x00}, - //{Port_CRX, 0x3b, 0x01, 0x00}, - {Port_CRX, 0x56, 0x00, 0x00}, - {Port_CRX, 0x57, 0x54, 0x00}, - - {Port_GRX, 0x05, 0x10, 0x00}, - {Port_GRX, 0x06, 0x0e, 0x00}, // - {Port_GRX, 0x0F, 0x20, 0x00}, - //{Port_GRX, 0x31, 0x06, 0x00}, - //{Port_GRX, 0x33, 0x30, 0x00}, - //{Port_GRX, 0x52, 0x10, 0x00}, -}; - -static WORD Length_Mode3_reg = sizeof(Mode3_reg) / sizeof(Def_Reg_struct); - -static Def_Reg_struct Init_reg[] = { - //port index value mask - {Port_GRX, 0x25, 0x00, 0x00}, - {Port_GRX, 0x21, 0x00, 0x00}, - {Port_GRX, 0x22, 0x00, 0x00}, - {Port_GRX, 0x26, 0x08, 0x00}, - {Port_GRX, 0x27, 0x00, 0x00}, - {Port_GRX, 0x28, 0xFF, 0x00}, - {Port_GRX, 0x29, 0x00, 0x00}, - {Port_GRX, 0x2A, 0x00, 0x00}, - {Port_GRX, 0x2C, 0x06, 0x00}, - {Port_GRX, 0x2E, 0x00, 0x00}, - {Port_GRX, 0x2F, 0x00, 0x00}, - {Port_GRX, 0x20, 0x80, 0x00}, - - {Port_SRX, 0x24, 0x0F, 0x00}, - {Port_SRX, 0x37, 0x30, 0x00}, - {Port_SRX, 0x38, 0x04, 0x00}, - - {Port_GRX, 0x23, 0x00, 0x00}, - {Port_GRX, 0x33, 0x20, 0x00}, - {Port_GRX, 0x30, 0x00, 0x00}, - // - {Port_GRX, 0x28, 0x18, 0x00}, - - {Port_CRX, 0x0F, 0x20, 0x40}, - {Port_CRX, 0x1F, 0x00, 0x00}, - {Port_CRX, 0x20, 0x30, 0x00}, - {Port_CRX, 0x23, 0x10, 0x00}, - {Port_CRX, 0x25, 0x86, 0x00}, - {Port_CRX, 0x2F, 0x1F, 0x00}, - {Port_CRX, 0x30, 0x0F, 0x00}, - {Port_CRX, 0x33, 0x00, 0x00}, - {Port_CRX, 0x38, 0x10, 0x00}, - {Port_CRX, 0x39, 0x00, 0x00}, - {Port_CRX, 0x5E, 0x00, 0x00}, - {Port_CRX, 0x29, 0x04, 0x00}, - - {Port_GRX, 0x5C, 0x00, 0x80}, - {Port_GRX, 0x62, 0x00, 0x08}, - - {Port_SRX, 0x20, 0x04, 0x00}, - {Port_GRX, 0x2F, 0x23, 0x00}, - {Port_SRX, 0x0B, 0x00, 0x00}, - {Port_SRX, 0x0D, 0x28, 0x00}, -}; - -static WORD Length_Init_reg = sizeof(Init_reg) / sizeof(Def_Reg_struct); - -static BYTE C8x16_Char[][8] = { - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //;0 - { 0x00, 0x00, 0x7E, 0x81, 0xA5, 0x81, 0x81, 0xBD }, - { 0x99, 0x81, 0x81, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //;1 - { 0x00, 0x00, 0x7E, 0xFF, 0xDB, 0xFF, 0xFF, 0xC3 }, - { 0xE7, 0xFF, 0xFF, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //;2 - { 0x00, 0x00, 0x00, 0x00, 0x6C, 0xFE, 0xFE, 0xFE }, - { 0xFE, 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }, //;3 - { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x7C, 0xFE }, - { 0x7C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }, //;4 - { 0x00, 0x00, 0x00, 0x18, 0x3C, 0x3C, 0xE7, 0xE7 }, - { 0xE7, 0x99, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //;5 - { 0x00, 0x00, 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF }, - { 0x7E, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //;6 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x3C }, - { 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //;7 - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xC3 }, - { 0xC3, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, //;8 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x42 }, - { 0x42, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 }, //;9 - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x99, 0xBD }, - { 0xBD, 0x99, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, ////10 - { 0x00, 0x00, 0x1E, 0x0E, 0x1A, 0x32, 0x78, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00 }, //11 - { 0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x66, 0x3C }, - { 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //12 - { 0x00, 0x00, 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x30 }, - { 0x30, 0x70, 0xF0, 0xE0, 0x00, 0x00, 0x00, 0x00 }, //13 - { 0x00, 0x00, 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x63 }, - { 0x63, 0x67, 0xE7, 0xE6, 0xC0, 0x00, 0x00, 0x00 }, //14 - { 0x00, 0x00, 0x00, 0x18, 0x18, 0xDB, 0x3C, 0xE7 }, - { 0x3C, 0xDB, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //15 - { 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFE, 0xF8 }, - { 0xF0, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00 }, //16 - { 0x00, 0x02, 0x06, 0x0E, 0x1E, 0x3E, 0xFE, 0x3E }, - { 0x1E, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00 }, //17 - { 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18 }, - { 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00 }, //18 - { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66 }, - { 0x66, 0x00, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 }, //19 - { 0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B }, - { 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00 }, //20 - { 0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6 }, - { 0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00 }, //21 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0xFE, 0xFE, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //22 - { 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18 }, - { 0x18, 0x7E, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00 }, //23 - { 0x00, 0x00, 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //24 - { 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, - { 0x18, 0x7E, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00 }, //25 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0xFE }, - { 0x0C, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //26 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x60, 0xFE }, - { 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //27 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0 }, - { 0xC0, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //28 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6C, 0xFE }, - { 0x6C, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //29 - { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x38, 0x7C }, - { 0x7C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 }, //30 - { 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFE, 0x7C, 0x7C }, - { 0x38, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }, //31 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //32 - { 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18 }, - { 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //33 - { 0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //34 - { 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C }, - { 0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00 }, //35 - { 0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06 }, - { 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00 }, //36 - { 0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18 }, - { 0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00 }, //37 - { 0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //38 - { 0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //39 - { 0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30 }, - { 0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00 }, //40 - { 0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C }, - { 0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00 }, //41 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF }, - { 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //42 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E }, - { 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //43 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00 }, //44 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //45 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //46 - { 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18 }, - { 0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00 }, //47 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //48 - { 0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //49 - { 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30 }, - { 0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //50 - { 0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06 }, - { 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //51 - { 0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE }, - { 0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00 }, //52 - { 0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x0E }, - { 0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //53 - { 0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //54 - { 0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18 }, - { 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00 }, //55 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //56 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06 }, - { 0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00 }, //57 - { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00 }, - { 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, //58 - { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00 }, - { 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00 }, //59 - { 0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60 }, - { 0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00 }, //60 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00 }, - { 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //61 - { 0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06 }, - { 0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00 }, //62 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18 }, - { 0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //63 - { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE }, - { 0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //64 - { 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE }, - { 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //65 - { 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66 }, - { 0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00 }, //66 - { 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0 }, - { 0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //67 - { 0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66 }, - { 0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00 }, //68 - { 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68 }, - { 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //69 - { 0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68 }, - { 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }, //70 - { 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE }, - { 0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00 }, //71 - { 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //72 - { 0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //73 - { 0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C }, - { 0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00 }, //74 - { 0x00, 0x00, 0xE6, 0x66, 0x6C, 0x6C, 0x78, 0x78 }, - { 0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }, //75 - { 0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60 }, - { 0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //76 - { 0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //77 - { 0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE }, - { 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //78 - { 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00 }, //79 - { 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60 }, - { 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }, //80 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00 }, //81 - { 0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C }, - { 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }, //82 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C }, - { 0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //83 - { 0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //84 - { 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //85 - { 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }, //86 - { 0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6 }, - { 0xD6, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00 }, //87 - { 0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x6C, 0x38, 0x38 }, - { 0x6C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //88 - { 0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //89 - { 0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30 }, - { 0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //90 - { 0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30 }, - { 0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //91 - { 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x70, 0x38 }, - { 0x1C, 0x0E, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00 }, //92 - { 0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C }, - { 0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //93 - { 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //94 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00 }, //95 - { 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //96 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //97 - { 0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66 }, - { 0x66, 0x66, 0x66, 0xDC, 0x00, 0x00, 0x00, 0x00 }, //98 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0 }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //99 - { 0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //100 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //101 - { 0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60 }, - { 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }, //102 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00 }, //103 - { 0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66 }, - { 0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }, //104 - { 0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //105 - { 0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06 }, - { 0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00 }, //106 - { 0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78 }, - { 0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00 }, //107 - { 0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //108 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6 }, - { 0xD6, 0xD6, 0xD6, 0xD6, 0x00, 0x00, 0x00, 0x00 }, //109 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66 }, - { 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 }, //110 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //111 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66 }, - { 0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00 }, //112 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00 }, //113 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x62 }, - { 0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00 }, //114 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60 }, - { 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //115 - { 0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30 }, - { 0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00 }, //116 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //117 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66 }, - { 0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00 }, //118 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6 }, - { 0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00 }, //119 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38 }, - { 0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //120 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00 }, //121 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18 }, - { 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //122 - { 0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18 }, - { 0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00 }, //123 - { 0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //124 - { 0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18 }, - { 0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00 }, //125 - { 0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //126 - { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6 }, - { 0xC6, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 }, //127 - { 0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0 }, - { 0xC2, 0x66, 0x3C, 0x0C, 0x06, 0x7C, 0x00, 0x00 }, //128 - { 0x00, 0x00, 0xCC, 0xCC, 0x00, 0xCC, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //129 - { 0x00, 0x0C, 0x18, 0x30, 0x00, 0x7C, 0xC6, 0xFE }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //130 - { 0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //131 - { 0x00, 0x00, 0xCC, 0xCC, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //132 - { 0x00, 0x60, 0x30, 0x18, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //133 - { 0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //134 - { 0x00, 0x00, 0x00, 0x00, 0x3C, 0x66, 0x60, 0x60 }, - { 0x66, 0x3C, 0x0C, 0x06, 0x3C, 0x00, 0x00, 0x00 }, //135 - { 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //136 - { 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xFE }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //137 - { 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xFE }, - { 0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //138 - { 0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //139 - { 0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //140 - { 0x00, 0x60, 0x30, 0x18, 0x00, 0x38, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //141 - { 0x00, 0xC6, 0xC6, 0x10, 0x38, 0x6C, 0xC6, 0xC6 }, - { 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //142 - { 0x38, 0x6C, 0x38, 0x00, 0x38, 0x6C, 0xC6, 0xC6 }, - { 0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //143 - { 0x18, 0x30, 0x60, 0x00, 0xFE, 0x66, 0x60, 0x7C }, - { 0x60, 0x60, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //144 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36 }, - { 0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00 }, //145 - { 0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00 }, //146 - { 0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //147 - { 0x00, 0x00, 0xC6, 0xC6, 0x00, 0x7C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //148 - { 0x00, 0x60, 0x30, 0x18, 0x00, 0x7C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //149 - { 0x00, 0x30, 0x78, 0xCC, 0x00, 0xCC, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //150 - { 0x00, 0x60, 0x30, 0x18, 0x00, 0xCC, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //151 - { 0x00, 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0x78, 0x00 }, //152 - { 0x00, 0xC6, 0xC6, 0x00, 0x38, 0x6C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00 }, //153 - { 0x00, 0xC6, 0xC6, 0x00, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //154 - { 0x00, 0x18, 0x18, 0x3C, 0x66, 0x60, 0x60, 0x60 }, - { 0x66, 0x3C, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //155 - { 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60, 0x60 }, - { 0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00 }, //156 - { 0x00, 0x00, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18 }, - { 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //157 - { 0x00, 0xF8, 0xCC, 0xCC, 0xF8, 0xC4, 0xCC, 0xDE }, - { 0xCC, 0xCC, 0xCC, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //158 - { 0x00, 0x0E, 0x1B, 0x18, 0x18, 0x18, 0x7E, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0xD8, 0x70, 0x00, 0x00 }, //159 - { 0x00, 0x18, 0x30, 0x60, 0x00, 0x78, 0x0C, 0x7C }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //160 - { 0x00, 0x0C, 0x18, 0x30, 0x00, 0x38, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //161 - { 0x00, 0x18, 0x30, 0x60, 0x00, 0x7C, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //162 - { 0x00, 0x18, 0x30, 0x60, 0x00, 0xCC, 0xCC, 0xCC }, - { 0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //163 - { 0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66 }, - { 0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00 }, //164 - { 0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE }, - { 0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //165 - { 0x00, 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //166 - { 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //167 - { 0x00, 0x00, 0x30, 0x30, 0x00, 0x30, 0x30, 0x60 }, - { 0xC0, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00 }, //168 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xC0 }, - { 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00 }, //169 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06 }, - { 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00 }, //170 - { 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30 }, - { 0x60, 0xCE, 0x93, 0x06, 0x0C, 0x1F, 0x00, 0x00 }, //171 - { 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0xCC, 0x18, 0x30 }, - { 0x66, 0xCE, 0x9A, 0x3F, 0x06, 0x0F, 0x00, 0x00 }, //172 - { 0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18 }, - { 0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00 }, //173 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x66, 0xCC }, - { 0x66, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //174 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x66, 0x33 }, - { 0x66, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //175 - { 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44 }, - { 0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44 }, //176 - { 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA }, - { 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA }, //177 - { 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77 }, - { 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77, 0xDD, 0x77 }, //178 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //179 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //180 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //181 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //182 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //183 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0xF8 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //184 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xF6 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //185 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //186 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06, 0xF6 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //187 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0xF6, 0x06, 0xFE }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //188 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFE }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //189 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0xF8 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //190 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //191 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //192 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //193 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //194 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //195 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //196 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //197 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //198 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x37 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //199 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x3F }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //200 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x30, 0x37 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //201 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //202 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xF7 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //203 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x30, 0x37 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //204 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //205 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0xF7, 0x00, 0xF7 }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //206 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //207 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //208 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //209 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //210 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x3F }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //211 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x1F }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //212 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x1F }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //213 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //214 - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0xFF }, - { 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36 }, //215 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0xFF }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //216 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0xF8 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //217 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //218 - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, //219 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF }, - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, //220 - { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 }, - { 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0 }, //221 - { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }, - { 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F }, //222 - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //223 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0xD8 }, - { 0xD8, 0xD8, 0xDC, 0x76, 0x00, 0x00, 0x00, 0x00 }, //224 - { 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xDC, 0xC6 }, - { 0xC3, 0xC3, 0xC3, 0xCE, 0x00, 0x00, 0x00, 0x00 }, //225 - { 0x00, 0x00, 0xFE, 0xC6, 0xC6, 0xC0, 0xC0, 0xC0 }, - { 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00 }, //226 - { 0x00, 0x00, 0x00, 0x00, 0x80, 0xFE, 0x6C, 0x6C }, - { 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00 }, //227 - { 0x00, 0x00, 0x00, 0xFE, 0xC6, 0x60, 0x30, 0x18 }, - { 0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00 }, //228 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xD8, 0xD8 }, - { 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00 }, //229 - { 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66, 0x66 }, - { 0x66, 0x7C, 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00 }, //230 - { 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00 }, //231 - { 0x00, 0x00, 0x00, 0x7E, 0x18, 0x3C, 0x66, 0x66 }, - { 0x66, 0x3C, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //232 - { 0x00, 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xFE }, - { 0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00 }, //233 - { 0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C }, - { 0x6C, 0x6C, 0x6C, 0xEE, 0x00, 0x00, 0x00, 0x00 }, //234 - { 0x00, 0x00, 0x1E, 0x30, 0x18, 0x0C, 0x3E, 0x66 }, - { 0x66, 0x66, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00 }, //235 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xDB, 0xDB }, - { 0xDB, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //236 - { 0x00, 0x00, 0x00, 0x03, 0x06, 0x7E, 0xCF, 0xDB }, - { 0xF3, 0x7E, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00 }, //237 - { 0x00, 0x00, 0x1C, 0x30, 0x60, 0x60, 0x7C, 0x60 }, - { 0x60, 0x60, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00 }, //238 - { 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6 }, - { 0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00 }, //239 - { 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0xFE }, - { 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00 }, //240 - { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18 }, - { 0x18, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00 }, //241 - { 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x06, 0x0C }, - { 0x18, 0x30, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //242 - { 0x00, 0x00, 0x00, 0x0C, 0x18, 0x30, 0x60, 0x30 }, - { 0x18, 0x0C, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00 }, //243 - { 0x00, 0x00, 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18 }, - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, //244 - { 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18 }, - { 0xD8, 0xD8, 0xD8, 0x70, 0x00, 0x00, 0x00, 0x00 }, //245 - { 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x7E }, - { 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 }, //246 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDC, 0x00 }, - { 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //247 - { 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //248 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18 }, - { 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //249 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //250 - { 0x00, 0x0F, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0xEC }, - { 0x6C, 0x6C, 0x3C, 0x1C, 0x00, 0x00, 0x00, 0x00 }, //251 - { 0x00, 0xD8, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //252 - { 0x00, 0x70, 0x98, 0x30, 0x60, 0xC8, 0xF8, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //253 - { 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7C, 0x7C, 0x7C }, - { 0x7C, 0x7C, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00 }, //254 - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, - { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, //255 -}; - -static void config_OEM_regs(void); -static void unprotect_reg(void); -static void reprotect_reg(void); -static void set_memCLK(BYTE mem_Type, BYTE mem_MD); -static void init_SGRAM(void); -static void config_video_memory(void); -static void set_video_mode(void); -static void clear_MEM(void); -static void set_font(void); - -static int init9880(void) -{ - unprotect_reg(); - - //if use SDRAM - //outp(Port_CRX, 0x2a); - //outp(Port_CRX+1, (inp(Port_CRX+1) & ~0x0c) | 0x08); - //disable other card - - //enable VGA - outp(0x3c3, 0x01); - outp(0x4e68, 0x08); - - outp(0x3c2, 0x23); - - //if chip revB - if (CHIPREV == 0x02) { - printk(BIOS_DEBUG, "blade3d: chip revision B\n"); - outp(Port_CRX, 0xc0); - outp(Port_CRX + 1, 0x00); - } - config_OEM_regs(); - init_SGRAM(); - //config_video_memory(); - set_video_mode(); - reprotect_reg(); - //screen on - outp(Port_SRX, 0x01); - outp(Port_SRX + 1, inp(Port_SRX + 1) & ~0x20); - - return 0; -} - -static void config_OEM_regs(void) -{ - BYTE CRX_2A, Old_value; - BYTE mem_Type; - BYTE mem_MD; - WORD i; - - lpDef_Reg_struct lpMode3_temp; - lpDef_Reg_struct lpInit_reg; - lpMode3_temp = &Mode3_temp[0]; - lpInit_reg = &Init_reg[0]; - - printk(BIOS_DEBUG, "blade3d: config_OEM_regs()\n"); - - outp(Port_GRX, 0x24); - outp(Port_GRX + 1, 0xe0); - //MCLK VCLK to 16 bit - outp(Port_CRX, 0xcf); - outp(Port_CRX + 1, inp(Port_CRX + 1) | 0x03); - //3c5.0e - //outp(Port_SRX, 0x3b); - //outp(Port_SRX+1, inp(Port_SRX+1) | 0x20); - // - outp(Port_CRX, 0x3b); - outp(Port_CRX + 1, inp(Port_CRX + 1) | 0x20); - // - outp(Port_CRX, 0x1a); - outp(Port_CRX + 1, inp(Port_CRX + 1) & 0x08); - // - outp(Port_CRX, 0x2a); - CRX_2A = inp(Port_CRX + 1); - outp(Port_CRX + 1, CRX_2A & ~0x20); - - mem_Type = (CRX_2A & ~0x20) & 0x08; - - outp(Port_GRX, 0x0f); - if (0x08 == mem_Type) - outp(Port_GRX + 1, inp(Port_GRX + 1) | 0x20); - else - outp(Port_GRX + 1, inp(Port_GRX + 1) & ~0x20); - - outp(Port_CRX, 0x28); - mem_MD = inp(Port_CRX + 1) & 0x07; - - set_memCLK(mem_Type, mem_MD); - delay(100); - - if (0x08 == mem_Type) { - outp(Port_CRX, 0x2e); - outp(Port_CRX + 1, 0x00); - delay(100); - outp(Port_CRX, 0x2d); - outp(Port_CRX + 1, 0x92); - } else { - outp(Port_CRX, 0x2d); - outp(Port_CRX + 1, 0x82); - } - - for (i = 0; i < Length_Mode3_temp; i++) { - outp(lpMode3_temp[i].rPort, lpMode3_temp[i].rIndex); - Old_value = inp(lpMode3_temp[i].rPort + 1); - outp(lpMode3_temp[i].rPort + 1, - lpMode3_temp[i].rValue | (Old_value & lpMode3_temp[i]. - rMask)); - } - //screen off - outp(Port_SRX, 0x01); - outp(Port_SRX + 1, inp(Port_SRX + 1) | 0x20); - - for (i = 0; i < Length_Init_reg; i++) { - outp(lpInit_reg[i].rPort, lpInit_reg[i].rIndex); - Old_value = inp(lpInit_reg[i].rPort + 1); - outp(lpInit_reg[i].rPort + 1, - lpInit_reg[i].rValue | (Old_value & lpInit_reg[i]. - rMask)); - } - delay(10); - init_SGRAM(); - - outp(Port_CRX, 0x1a); - if (0x08 == inp(Port_CRX + 1)) { - outp(Port_CRX, 0x20); - outp(Port_CRX + 1, inp(Port_CRX + 1) | 0x04); - } - -} //end config_OEM_reg - -//---------------------------------------------------------------------------// - -static void unprotect_reg(void) -{ - outp(Port_SRX, 0x11); - outp(Port_SRX + 1, 0x92); -} - -static void reprotect_reg(void) -{ - outp(Port_SRX, 0x11); - outp(Port_SRX + 1, 0x87); -} - -static void set_memCLK(BYTE mem_Type, BYTE mem_MD) -{ - BYTE Index; - - Index = ((mem_Type + mem_MD) << 0x01) & 0xf; - outp(Port_SRX, 0x16); - outp(Port_SRX + 1, Mem_Clk_Table[Index][0]); - outp(Port_SRX, 0x17); - outp(Port_SRX + 1, Mem_Clk_Table[Index][1]); - -} - -static void init_SGRAM(void) -{ - BYTE Temp, i; - - outp(Port_CRX, 0x2a); - if (inp(Port_CRX + 1) & 0x08) //SGRAM - { - outp(Port_CRX, 0x28); - if (inp(Port_CRX + 1) & 0x08) { - outp(Port_CRX, 0x1c); - outp(Port_CRX + 1, 0x7a); - } else { - outp(Port_CRX, 0x1c); - outp(Port_CRX + 1, 0x3a); - } - outp(Port_CRX, 0x1b); - outp(Port_CRX + 1, SGRAMTimg); - if (CHIPREV >= 0x03) { - outp(Port_CRX, 0x1a); - outp(Port_CRX + 1, inp(Port_CRX + 1) | 0x01); - } else { - outp(Port_CRX, 0x1a); - outp(Port_CRX + 1, 0x16); - outp(Port_CRX + 1, inp(Port_CRX + 1) | 0x16); - for (i = 0; i < 10; i++) { - outp(Port_CRX, 0x1c); - outp(Port_CRX + 1, - inp(Port_CRX + 1) | 0x40); - } - delay(100); - outp(Port_CRX, 0x1c); - Temp = (inp(Port_CRX + 1) | 0x20) & 0x3c; - outp(Port_CRX + 1, Temp); - outp(Port_CRX + 1, Temp & 0x08); - } - - } else { //SGRAM - printk(BIOS_DEBUG, "blade3d: No SGRAM found.\n"); - } -} - -static void config_video_memory(void) -{ - printk(BIOS_DEBUG, "blade3d: Error: no video memory init\n"); -} - -static void set_video_mode(void) -{ - BYTE i; - BYTE Old_value; - lpDef_Reg_struct lpMode3_reg; - lpMode3_reg = &Mode3_reg[0]; - - printk(BIOS_DEBUG, "blade3d: setting video mode\n"); - outp(0x3c2, 0x67); - for (i = 0; i < Length_Mode3_reg; i++) { - if (lpMode3_reg[i].rPort == Port_BRX) { - inp(0x3DA); - delay(3); - outp(lpMode3_reg[i].rPort, lpMode3_reg[i].rIndex); - outp(lpMode3_reg[i].rPort, lpMode3_reg[i].rValue); - } else { - outp(lpMode3_reg[i].rPort, lpMode3_reg[i].rIndex); - Old_value = inp(lpMode3_reg[i].rPort + 1); - outp(lpMode3_reg[i].rPort + 1, - lpMode3_reg[i]. - rValue | (Old_value & lpMode3_reg[i].rMask)); - } - } - //set_font(); - //clear_MEM(); -} - -static void set_font(void) -{ - - printk(BIOS_DEBUG, "blade3d: setting font (not implemented)\n"); -} - -static void clear_MEM(void) -{ - //_fmemset(MK_FP(0xb800,0),0x720,0x4000); - __asm__("push %ax\n\t" - "push %cx\n\t" - "push %di\n\t" - "push %es\n\t" - "mov %ax, 0xb800\n\t" - "mov %es, %ax\n\t" - "mov %ax, 0x720\n\t" - "mov %cx, 0x4000\n\t" - "xor %di, %di\n\t" - "rep stosw\n\t" - "pop %es\n\t" - "pop %di\n\t" - "pop %cx\n\t" - "pop %ax\n\t" - ); -} - - -static void trident_blade3d_init(struct device *dev) -{ - printk(BIOS_INFO, "blade3d: initializing video card\n"); - init9880(); -} - -static struct device_operations trident_blade3d_ops = { - .read_resources = pci_dev_read_resources, - .set_resources = pci_dev_set_resources, - .enable_resources = pci_dev_enable_resources, - .init = trident_blade3d_init, - .scan_bus = 0, -}; - -static const struct pci_driver trident_blade3d_driver __pci_driver = { - .ops = &trident_blade3d_ops, - .vendor = 0x1023, - .device = 0x9880, -}; |