⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 osdfont1.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 2 页
字号:
    /*    //Low DW Half    //else    {        //////if (_bPosiIndex>4)        if (_bPosiIndex&0xfc)            _bPosiIndex-=4;//5->1, 6->2, 7->3, 8->4        else            _bPosiIndex = 0;    }        */    switch  (_bPosiIndex)    {        //the line hasn't been coded. so fill four bytes of zeros         //case 0: //0 byte wide (0 pixels) for Low DW use only        case 4:        case 3:        case 2:        case 1:            //if ((_wOSDTemp1%4)==0) // Chuan 172r 2002/03/29: write two zero /////if(!(_wOSDTemp1&0x3))            if ( !(_wOSDTemp1&0x3) )             {#if  IO == IO_PCI                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);#else                OUTB(CDPR, 0x0);                OUTB(CDPR, 0x0);                OUTB(CDPR, 0x0);                 OUTB(CDPR, 0x0);        #endif                                _wOSDTemp1+=4; //0x00, 0x00, 0x00, 0x00            }            //else            //{                //do nothing                //_wOSDTemp1=_wOSDTemp1;             //}                                            break;                                //case 1: //1 byte wide (4 pixels)        case 5:            //if ((_wOSDTemp1%4)==0) // Chuan 172r 2002/03/29: write two zero /////if(!(_wOSDTemp1&0x3))            if ( !(_wOSDTemp1&0x3) )             {#if  IO == IO_PCI                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);#else                OUTB(CDPR, 0x0);                OUTB(CDPR, 0x0);                OUTB(CDPR, 0x0);        #endif                                _wOSDTemp1+=4; //0x00, 0x00, 0x00, _bIdex            }            else            {                _wOSDTemp1++; //_bIdex            }                                #if  IO == IO_PCI            W99AV_OutCacheData(_bIdex);#else            OUTB(CDPR, _bIdex);        #endif                                                  break;                        //case 2: //2 bytes wide (8 pixels)        case 6:            //if ((_wOSDTemp1%4)==0) // Chuan 172r 2002/03/29: write two zero /////if(!(_wOSDTemp1&0x3))            if ( !(_wOSDTemp1&0x3) )             {#if  IO == IO_PCI                W99AV_OutCacheData(0x00);                W99AV_OutCacheData(0x00);#else                OUTB(CDPR, 0x0);                OUTB(CDPR, 0x0);        #endif                                _wOSDTemp1+=3; //0x00, 0x00, _bIdex            }            else            {                _wOSDTemp1++; //_bIdex            }                                #if  IO == IO_PCI            W99AV_OutCacheData(_bIdex);#else            OUTB(CDPR, _bIdex);        #endif                                                     break;                    //case 3: //3 bytes wide (12 pixels)        case 7:            //if ((_wOSDTemp1%4)==0) // Chuan 172r 2002/03/29: write two zero /////if(!(_wOSDTemp1&0x3))            if ( !(_wOSDTemp1&0x3) )             {#if  IO == IO_PCI                W99AV_OutCacheData(0x00);#else                OUTB(CDPR, 0x0);#endif                                _wOSDTemp1+=2; //0x00, _bIdex            }            else            {                _wOSDTemp1++;                        }                #if  IO == IO_PCI            W99AV_OutCacheData(_bIdex);#else            OUTB(CDPR, _bIdex);        #endif                                  break;                    //case 4: //4 bytes wide (16 pixels)        case 8:            _wOSDTemp1+=1; //_bIdex#if  IO == IO_PCI            W99AV_OutCacheData(_bIdex);#else            OUTB(CDPR, _bIdex);        #endif                         break;                                default:            //add protection here            break;    }/*    if (_bPosiIndex!=0){    #if  IO == IO_PCI        W99AV_OutCacheData(_bIdex);#else        OUTB(CDPR, _bIdex);        #endif               }*/#if 0    *(_bIndexArray+(BYTE)(_wOSDTemp1%_bPosiIndex)) = _bIdex;    //_dwFontData = (_dwFontData<<8) | _bIdex;    _wOSDTemp1++;    if ((_wOSDTemp1%_bPosiIndex)==0)    {        //_dwFontData = _dwFontData << ((4-_bPosiIndex)<<3);        //_bIndexArray = (BYTE DATA*)&_dwFontData ;#if  IO == IO_PCI        _outp(CDPR_BYTE, *_bIndexArray);        _outp(CDPR_BYTE, *(_bIndexArray+1));        _outp(CDPR_BYTE, *(_bIndexArray+2));        _outp(CDPR_BYTE, *(_bIndexArray+3));        #else        OUTB(CDPR, *(_bIndexArray+3));        OUTB(CDPR, *(_bIndexArray+2));        OUTB(CDPR, *(_bIndexArray+1));        OUTB(CDPR, *_bIndexArray);        #endif                        _wOSDTemp1+=(4-_bPosiIndex);    }#endif    //if (!(_wOSDTemp1%256)||(_wOSDTemp1==_wOSDTemp))    if (!(_wOSDTemp1&0xff)||(_wOSDTemp1==_wOSDTemp))    {        return TRUE;    }/////#endif  // #ifdef COMPRESSION_OSD_FONT#endif  // #ifndef  NO_OSD    return FALSE;}  #endif  // #ifdef SUPPORT_GZIP_COMPRESSION// Brian1.25, always call this function to load font table// ************************************************************************//  Function    :   OSD_LoadFontTable//  Description :       load font table//  Arguments   :       none//  Return      :       none//  Side Effect :// ************************************************************************void OSD_LoadFontTable(void){#ifdef SUPPORT_GZIP_COMPRESSION    // Brian2.35#ifdef PROTECT_FONT_TABLE    // Unprotect font table    W99AV_WriteRegDW( UCPR2, 0x0000, 0x0000);#endif	//Kevin2.37, modify    //OSD_LoadFontTableGzip();	UCODE_Unzip(FONTTABLE);     // Brian2.35#ifdef PROTECT_FONT_TABLE    // Protect font table    // Brian2.36, fix address range    __dwTemp = 0x01000000 | ((DWORD)((OSD_DRAM_FONT_TABLE_START_0+((DWORD)FONT_NUMBER<<8))>>8) <<12) | (OSD_DRAM_FONT_TABLE_START_0>>8);    W99AV_WriteRegDW( UCPR2, LOWORD(__dwTemp), HIWORD(__dwTemp));#endif#else    OSD_LoadFontTableHDW();    OSD_LoadFontTableLDW();#endif    #ifdef SUPPORT_FONT_TABLE_CHECKSUM    // support RISC Check Sum Function from 20031208 IRAM Code.    __wFontableChecksum = OSD_FontableChecksum();    printf("Fontable checksum=%x\n", __wFontableChecksum);#endif}#ifdef SUPPORT_UNICODE// Alan2.36, always call this function to load loal font table// ************************************************************************//  Function    :   OSD_LoadLocalFontTable//  Description :       load local font table//  Arguments   :       none//  Return      :       none//  Side Effect :// ************************************************************************void OSD_LoadLocalFontTable(void){#ifdef SUPPORT_GZIP_COMPRESSION	//Kevin2.37, modify		extern  WORD    _wOSDTemp1;	_wOSDTemp1 = (OSD_DRAM_FONT_TABLE_START_1 - OSD_DRAM_FONT_TABLE_START_0) << 1;	//0    //HAL_Reset (HAL_RESET_AUDIO); //Reset audio and Issue DSP NPF command	UCODE_Unzip(LOCALFONTTABLE0);    __dwW99AV_SrcDRAM = OSD_DRAM_FONT_TABLE_START_0;    __dwW99AV_DestDRAM = FONTABLE_ADDR;    W99AV_DRAMCopy(_wOSDTemp1);	//1    //HAL_Reset (HAL_RESET_AUDIO); //Reset audio and Issue DSP NPF command	UCODE_Unzip(LOCALFONTTABLE1);    __dwW99AV_SrcDRAM = OSD_DRAM_FONT_TABLE_START_0;    __dwW99AV_DestDRAM += _wOSDTemp1;    W99AV_DRAMCopy(_wOSDTemp1);	/*	//2    HAL_Reset (HAL_RESET_AUDIO); //Reset audio and Issue DSP NPF command	UCODE_Unzip(LOCALFONTTABLE2);    __dwW99AV_SrcDRAM = OSD_DRAM_FONT_TABLE_START_0;    __dwW99AV_DestDRAM += _wOSDTemp1;    W99AV_DRAMCopy(_wOSDTemp1);	*/#endif}#endif// Brian1.25, always call this function to load font table// ************************************************************************//  Function    :   OSD_FontableChecksum//  Description :       do fontable checksum//  Arguments   :       none//  Return      :       checksum value//  Side Effect :// ************************************************************************#ifdef SUPPORT_FONT_TABLE_CHECKSUMWORD OSD_FontableChecksum(void){    // support RISC Check Sum Function from 20031208 IRAM Code.    // Fontable size  = 128K bytes ==> 131072/2352 ==> 55.7 sector    __dwW99AVCmdArg[0]=4;    __dwW99AVCmdArg[1]=CMDARG_CHECKSUM;    __dwW99AVCmdArg[2]=OSD_DRAM_FONT_TABLE_START_0;   // Starting address    __dwW99AVCmdArg[3]=55;      // number of sectors    __dwW99AVCmdArg[4]=0;       // checksum value    W99AV_CommandN(COMMAND_CHECKSUM);    W99AV_OutIndex (0x10000003) ;       // Read 3th of cmd ram.    _wOSDTemp = (WORD)W99AV_InData();    return _wOSDTemp;}#endif#ifdef SUPPORT_CHECK_FONT_TABLE// Brian20041020, by AlanWORD OSD_FontableChecksum1(void){    // support RISC Check Sum Function from 20031208 IRAM Code.    // Fontable size  = 128K bytes ==> 131072/2352 ==> 55.7 sector    __dwW99AVCmdArg[0]=4;    __dwW99AVCmdArg[1]=CMDARG_CHECKSUM;    __dwW99AVCmdArg[2]=(DWORD)OSD_DRAM_FONT_TABLE_START_0-1;    __dwW99AVCmdArg[3]=(DWORD)FONT_NUMBER*1024/2352;    //38;      // number of sectors (176 * 256 * 2 / 2352)    __dwW99AVCmdArg[4]=0;       // checksum value    W99AV_CommandN(COMMAND_CHECKSUM);    W99AV_OutIndex (0x10000003) ;       // Read 3th of cmd ram.    _wOSDTemp = (WORD)W99AV_InData();    return _wOSDTemp;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -