void InitTo330Pointer(unsigned char ChipType, struct vb_device_info *pVBInfo)
 {
-       pVBInfo->EModeIDTable = XGI330_EModeIDTable;
        pVBInfo->RefIndex = XGI330_RefIndex;
        pVBInfo->XGINEWUB_CRT1Table = XGI_CRT1Table;
 
        unsigned char tempah, SRdata;
        unsigned short i, modeflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        xgifb_reg_set(pVBInfo->P3c4, 0x00, 0x03); /* Set SR0 */
        tempah = XGI330_StandTable.SR[0];
        unsigned char ARdata;
        unsigned short i, modeflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        for (i = 0; i <= 0x13; i++) {
                ARdata = XGI330_StandTable.ATTR[i];
 {
        unsigned short tempax, tempbx, resinfo, modeflag, infoflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        tempbx = pVBInfo->RefIndex[RefreshRateTableIndex + (*i)].ModeID;
        tempax = 0;
 
        data &= 0x80;
        data = data >> 2;
 
-       i = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       i = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        i &= DoubleScanMode;
        if (i)
                data |= 0x80;
 
        unsigned char data;
 
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        tempax = pVBInfo->ModeResInfo[resindex].HTotal;
        tempbx = pVBInfo->ModeResInfo[resindex].VTotal;
 
        unsigned short temp, ah, al, temp2, i, DisplayUnit;
 
        /* GetOffset */
-       temp = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeInfo;
+       temp = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeInfo;
        temp = temp >> 8;
        temp = pVBInfo->ScreenOffset[temp];
 
        unsigned short modeflag, resinfo;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        CRT2Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC;
 
        if (pVBInfo->IF_DEF_LVDS == 0) {
        }
 
        if (HwDeviceExtension->jChipType >= XG20) {
-               if (pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag &
+               if (XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag &
                    HalfDCLK) {
                        data = xgifb_reg_get(pVBInfo->P3c4, 0x2B);
                        xgifb_reg_set(pVBInfo->P3c4, 0x2B, data);
        unsigned short data, data2, data3, infoflag = 0, modeflag, resindex,
                        xres;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        infoflag = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_InfoFlag;
 
        if (xgifb_reg_get(pVBInfo->P3d4, 0x31) & 0x01)
                data2 |= 0x20;
 
        xgifb_reg_and_or(pVBInfo->P3c4, 0x06, ~0x3F, data2);
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        xres = pVBInfo->ModeResInfo[resindex].HTotal; /* xres->ax */
 
        data = 0x0000;
        unsigned short resindex, xres, yres, modeflag;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
 
        /* si+Ext_ResInfo */
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
 
        xres = pVBInfo->ModeResInfo[resindex].HTotal;
        yres = pVBInfo->ModeResInfo[resindex].VTotal;
 
        tempbx = 0;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        i = 0;
 
 {
        unsigned short i, tempdx, tempal, modeflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        tempal = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC;
        tempal = tempal & 0x3f;
        tempdx = pVBInfo->TVInfo;
        struct XGI_LCDDesStruct const *LCDPtr = NULL;
        struct XGI330_LCDDataDesStruct2 const *LCDPtr1 = NULL;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        if (pVBInfo->LCDInfo & EnableScalingLCD)
                LCDPtr1 = XGI_GetLcdPtr(XGI_EPLLCDDesDataPtr, ModeNo,
                                        ModeIdIndex, RefreshRateTableIndex,
        unsigned char tempal;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        if ((pVBInfo->SetFlag & ProgrammingCRT2) &&
            (!(pVBInfo->LCDInfo & EnableScalingLCD))) { /* {LCDA/LCDB} */
 {
        unsigned short tempax, push, tempbx, temp, modeflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        pVBInfo->SetFlag = 0;
        pVBInfo->ModeType = modeflag & ModeTypeMask;
        tempbx = 0;
        resinfo = 0;
 
        if (pVBInfo->VBInfo & SetCRT2ToTV) {
-               modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-               resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+               modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+               resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
 
                if (pVBInfo->VBInfo & SetCRT2ToTV) {
                        temp = xgifb_reg_get(pVBInfo->P3d4, 0x35);
        pVBInfo->LCDTypeInfo = 0;
        pVBInfo->LCDInfo = 0;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        /* si+Ext_ResInfo // */
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        temp = xgifb_reg_get(pVBInfo->P3d4, 0x36); /* Get LCD Res.Info */
        tempbx = temp & 0x0F;
 
                unsigned short *ModeIdIndex, struct vb_device_info *pVBInfo)
 {
        for (*ModeIdIndex = 0;; (*ModeIdIndex)++) {
-               if (pVBInfo->EModeIDTable[*ModeIdIndex].Ext_ModeID == ModeNo)
+               if (XGI330_EModeIDTable[*ModeIdIndex].Ext_ModeID == ModeNo)
                        break;
-               if (pVBInfo->EModeIDTable[*ModeIdIndex].Ext_ModeID == 0xFF)
+               if (XGI330_EModeIDTable[*ModeIdIndex].Ext_ModeID == 0xFF)
                        return 0;
        }
 
 {
        unsigned short xres, yres, modeflag, resindex;
 
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        xres = pVBInfo->ModeResInfo[resindex].HTotal; /* xres->ax */
        yres = pVBInfo->ModeResInfo[resindex].VTotal; /* yres->bx */
        /* si+St_ModeFlag */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        if (modeflag & HalfDCLK)
                xres *= 2;
 
        pVBInfo->RVBHCMAX = 1;
        pVBInfo->RVBHCFACT = 1;
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        CRT1Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT1CRTC;
        CRT1Index &= IndexMask;
        temp1 = (unsigned short) pVBInfo->XGINEWUB_CRT1Table[CRT1Index].CR[0];
        struct SiS_LCDData const *LCDPtr = NULL;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        pVBInfo->NewFlickerMode = 0;
        pVBInfo->RVBHRS = 50;
 
        short index;
        unsigned short modeflag;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        index = (modeflag & ModeTypeMask) - ModeEGA;
 
        if (index < 0)
        unsigned short temp, colordepth, modeinfo, index, infoflag,
                        ColorDepth[] = { 0x01, 0x02, 0x04 };
 
-       modeinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeInfo;
+       modeinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeInfo;
        infoflag = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_InfoFlag;
 
        index = (modeinfo >> 8) & 0xFF;
 
        CRT1Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT1CRTC;
        CRT1Index &= IndexMask;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
 
        XGI_SetCRT2Offset(ModeNo, ModeIdIndex, RefreshRateTableIndex,
                        HwDeviceExtension, pVBInfo);
 
        CRT1Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT1CRTC;
        CRT1Index &= IndexMask;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        /* bainy change table name */
        if (modeflag & HalfDCLK) {
                        modeflag, CRT1Index;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        CRT1Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT1CRTC;
        CRT1Index &= IndexMask;
 
        unsigned long longtemp, tempeax, tempebx, temp2, tempecx;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        crt2crtc = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT2CRTC;
 
        tempax = 0;
        struct XGI_LCDDesStruct const *LCDBDesPtr = NULL;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
-       resinfo = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       resinfo = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        CRT1Index = pVBInfo->RefIndex[RefreshRateTableIndex].Ext_CRT1CRTC;
        CRT1Index &= IndexMask;
 
        unsigned short modeflag;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        xgifb_reg_set(pVBInfo->Part3Port, 0x00, 0x00);
        if (pVBInfo->TVInfo & TVSetPAL) {
        unsigned long tempebx, tempeax, templong;
 
        /* si+Ext_ResInfo */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
        temp = pVBInfo->RVBHCFACT;
        xgifb_reg_set(pVBInfo->Part4Port, 0x13, temp);
 
 {
        unsigned short xres, yres, colordepth, modeflag, resindex;
 
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        xres = pVBInfo->ModeResInfo[resindex].HTotal; /* xres->ax */
        yres = pVBInfo->ModeResInfo[resindex].VTotal; /* yres->bx */
        /* si+St_ModeFlag */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        if (!(modeflag & Charx8Dot)) {
                xres /= 9;
        else
                XGI_SetXG21FPBits(pVBInfo);
 
-       resindex = pVBInfo->EModeIDTable[ModeIdIndex].Ext_RESINFO;
+       resindex = XGI330_EModeIDTable[ModeIdIndex].Ext_RESINFO;
        xres = pVBInfo->ModeResInfo[resindex].HTotal; /* xres->ax */
        yres = pVBInfo->ModeResInfo[resindex].VTotal; /* yres->bx */
        /* si+St_ModeFlag */
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        if (!(modeflag & Charx8Dot))
                xres = xres * 8 / 9;
                return;
        }
 
-       tempal = pVBInfo->EModeIDTable[ModeIdIndex].VB_ExtTVYFilterIndex;
+       tempal = XGI330_EModeIDTable[ModeIdIndex].VB_ExtTVYFilterIndex;
        if (tempcl == 0)
                index = tempal * 4;
        else
 
        unsigned short RefreshRateTableIndex, i, modeflag, index, temp;
 
-       modeflag = pVBInfo->EModeIDTable[ModeIdIndex].Ext_ModeFlag;
+       modeflag = XGI330_EModeIDTable[ModeIdIndex].Ext_ModeFlag;
 
        index = xgifb_reg_get(pVBInfo->P3d4, 0x33);
        index = index >> pVBInfo->SelectCRT2Rate;
                }
        }
 
-       RefreshRateTableIndex = pVBInfo->EModeIDTable[ModeIdIndex].REFindex;
+       RefreshRateTableIndex = XGI330_EModeIDTable[ModeIdIndex].REFindex;
        ModeNo = pVBInfo->RefIndex[RefreshRateTableIndex].ModeID;
        if (pXGIHWDE->jChipType >= XG20) { /* for XG20, XG21, XG27 */
                if ((pVBInfo->RefIndex[RefreshRateTableIndex].XRes == 800) &&
                                                   pVBInfo))
                                return 0;
 
-               pVBInfo->ModeType = pVBInfo->EModeIDTable[ModeIdIndex].
+               pVBInfo->ModeType = XGI330_EModeIDTable[ModeIdIndex].
                                                Ext_ModeFlag & ModeTypeMask;
 
                pVBInfo->SetFlag = 0;