亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? w99av2.c

?? 車載電子影音系統dvd播放系統原程序代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
//////////////////////////////////////////////////////////////// ***** Big Modification History Area *****// LLY2.80a,//  - remove the code while un-define "SUPPORT_48K_DAC",//    ie. default go "48K DAC" path#include "winav.h"#include "cdinfo.h"#include "ucode.h"#include "w99av.h"#include "hal.h"#include "setup.h"#include "servo.h"#include "utl.h"#include "cc.h"#include "chips.h"#include "isr.h"#ifdef USE_INITIAL_FILE#include "readini.h"#endif#include "osd.h"// Chuan1.11, remove it to support RISC CheckSum function// Micky1.11b, fix BE auto upgrade fail. Can't use RISC_CHECKSUM// Reason is unknown// Micky1.24, enable checksum by RISC, the problem is the RISC codes can't locate at last address// Alex1.25,if Support CTMAN, it will use cross bank, risc checksum will error//alex1.26-1_Begin//Alex1.26-1 Remove NO_Risc_Checksum define for dvd_T , 1.26 support risc checksum//#ifdef  SUPPORT_DVD_T//#define     NO_RISC_CHECKSUM//#endif // #ifdef  SUPPORT_DVD_T//alex1.26-1_End#define     VALUE_DM7F2         0xFFF3          // ** TCH0.42a;static BYTE code aDummy;    // Chuan1.00-2, Dummy ByteDWORD   __dwW99AVECCBASE;   // LLY.046, keep current ECCBASE usage// DVD_173Micky, add two variables for DRAM source and destination.DWORD   __dwW99AV_SrcDRAM;DWORD   __dwW99AV_DestDRAM;#ifdef SUPPORT_GZIP_COMPRESSION//Kevin1.20WORD    __wW99AV_SizeDRAM; #endif// LLY.274p, move local variable to global variable and rename itDWORD   *_pdwW99AVTmp;  // *pdwTmp;// Chuan 276 2002/08/23: move local variable to global variable and rename itstatic DWORD _dwTemp1, _dwTemp2;// Brian0.84p, GDI also use 0x1C, but need more ACK timestatic DWORD  dwCnt;static WORD   wCnt;//TCC022, record the sp/ogt typeBYTE    __bW99AVSpOgtType;BYTE    __bW99AVABuf2Def; // Chuan0.86, '0'= Audio2 addresses same as Abuio1 Buffer. So if '0', just have only one Audio Buffer else has two Audio buffers.// Chuan 276 2002/08/23: move local variable to global variable and rename itstatic BYTE  DATA   bCnt;static BYTE         _bTemp;static BYTE       * _bIdx ;BIT     _btW99AV1;      // only used in W99AV module for record the EA valueBIT     _btUcodeLoadFlag;  // download ucode success:TRUE, failure:FALSEDWORD   __dwReserveStart; // Brian1.21// Micky2.36, NV buffer address use variableDWORD   __dwNVStart;#ifdef SUPPORT_AUTO_UPGRADE    #ifdef INCLUDE_FLASH// Chuan 02/01/2002: Include Auto-Upgrade procedureBYTE code   bFlashProgram[]={#include    "flash.txt"};#endif// Chuan 172r 2002/03/15: REUse those variable. Enter Auto-Upgrade Mode, those variable all can free use.extern DWORD DATA   __dwTimeNow;  // Record the index of SRAMextern BYTE DATA    _bNum; // Record the Sector Num of Flash.binextern BYTE DATA    _bIdex; // Record the loop count.extern BYTE         _bINITIALTemp; // Record the Sector Num of Flash.bin//LJY1.20, remove DIGEST for supporting 4M flash, use __btMute instead of __btDIGEST//extern BIT          __btDIGEST; // Record whether skip sync or not. // Special Function Register#if  IO == IO_8051sfr RUN_PROGRAM = 0xc3;   // Chuan0.86, used to control PC to 4K SRAM#endif#endif                                                            //Kevin1.24a, MP3 bitrate//the 1st & last elements are avoid "divided by zero" & "array access out of range"//aMP2LSFBitrate = aMP3LSFBitrateBYTE code aMP3LSFBitrate[] = { 8, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 160}; WORD code aMP3Bitrate[] = { 32, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 320};WORD code aMP2Bitrate[] = { 32, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 384};WORD   __wW99AVAudioBitrate; //Alex1.26,20050527 ,Seperate Speed / Bank to Support Sorting and Dram Test//alex_begin//-----------------------------------------//#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON) ////alex908 #define SPEED_NUM 3 //alex908#define BANK_NUM 4 //alex908extern BIT  __btDramScan;extern BYTE __bRiscTestResult[SPEED_NUM][BANK_NUM]; //alex908#ifdef SUPPORT_DRAM_SORT //alex1.26-1extern BYTE gbDRAMType;#endif //#ifdef SUPPORT_DRAM_SORT //alex1.26-1#endif //#if defined (SUPPORT_TEST_SINGLE_MUTI_RW_FOR_BANK) || defined (SUPPORT_DRAM_SCAN_POWERON) ////alex908 //-----------------------------------------////alex_end// ************************************************************************//  Function    :   W99AV_PowerOnInitial//  Description :       Issue some action once at initial time//                      1.Issue total S/W reset//                      2.Download micro-code and initialize chip//                      3.Initial Video//                      4.Inital Audio//  Arguments   :       none//  Return      :       none//  Side Effect :// ************************************************************************// wyc1.24a, add parameter for W99AV_PowerOnInitial to decide if need to issuing W99AV_RESET_TOTAL.BIT     W99AV_PowerOnInitial(BYTE   bNeedHWReset){    // Chuan 276 2002/08/20: use _btUcodeLoadFlag instead of btRet    // BIT     btRet;    // BYTE    bCnt;        // Step 7 : Download micro-code    bCnt=0;    _btUcodeLoadFlag=TRUE;    // TCC048, end    while ( 1 )    {        if ( UCODE_Load() ) // ** 0.16;#ifdef CHECK_UCODE_LOAD            if ( UCODE_Check() )#endif            break;        bCnt++;#ifdef SUPPORT_PRINTF        printf("\nFailure : Load microcode #%u ...",bCnt);#endif        if(bCnt>3)        {            _btUcodeLoadFlag=FALSE; // LLY.101-2            break;        }    }#ifdef SUPPORT_PRINTF    printf("\nLoad microcode complete");#endif    // Step 9 :     Total s/w reset    // wyc1.24a, code to decide doing W99AV_RESET_TOTAL or not. Add it is because now we will move display LOGO code to the place that before    // W99AV_PowerOnInitial, so not need to H/W reset to avoid video become black.    if (bNeedHWReset)    	W99AV_Reset(W99AV_RESET_TOTAL);    //Brian2.32, decoding uses frame buffer     // [0x15f]:  0x0		==> FD mode  (default)    // [0x15f] : 0x10000	==> HD mode #ifdef HD_ONLY // Brian2.30    W99AV_WriteDRAMData(0x15f, 0x10000);  #else    W99AV_WriteDRAMData(0x15f, 0);#endif    // Step 10 : Initial Video and Audio    W99AV_InitialVideo();        //Kevin2.37, move out of W99AV_InitialAudio() to be called once at H/W power on to fix AC3 NEXT pop noise    //Kevin1.24, fix 1 bit shift between MICWS & PCMWS by reseting CLK circuit    W99AV_WriteDM(W99AV_DM_DIV_CLK_REG, 0);         W99AV_InitialAudio(TRUE);/*//Brian0.87, move from GDI.C#ifdef CT908_UI    GDI_ClearRegion_By_RISC(0);    GDI_ClearRegion_By_RISC(1);    GDI_ClearRegion_By_RISC(2);#endif*/    return  _btUcodeLoadFlag;}// ***********************************************************************//      Function        :       W99AV_InitialVideo//      Description     :       write DRAM and registers only to initail video//      Arguments       :       none//      Return          :       none//      Side Effect     :// ***********************************************************************void W99AV_InitialVideo(void){    extern  DWORD   _dwACR1, _dwACR2, _dwACR3; // LLY.045#ifdef USE_INITIAL_FILE#define MAX_COMMAND             10#define MAX_ARG                 5    int     pos, l, j, k, cmd_index, cmd_arg ;   // pointer to current position in option   file    char    str1[21],str2[21];    DWORD   dwArg [MAX_ARG] ;    // Read ini file and set the value    ///////////////////////////////////////    /////  Set register     value    if(!READINI_ParseFile(__strW99AVIni))    {        printf("\nThe     <%s> does not exist     !!",__strW99AVIni);        EXIT_APP_MACRO();    }    else    {        // Write System Register        if (!READINI_GoSection ("[SystemRegister]", &pos))        {            printf("\nGoto Section System Register Error !") ;            exit (0);        }        while (READINI_GetNext (&pos, str1, str2))            W99AV_WriteRegDW ((BYTE)READINI_Hex2Dec (str1), LOWORD (READINI_Hex2Dec(str2)), HIWORD (READINI_Hex2Dec (str2))) ;        // Write Command        for (l=0;l<MAX_COMMAND;l++)        {            // goto Command section            sprintf (str1, "[Command%d]", l+1) ;            if (!READINI_GoSection (str1, &pos))            {                break ;            }            // Get the index value            if (!READINI_GetEntryInt (str1, "INDEX", &cmd_index))            {                printf("\nGet Entry Int INDEX Error !") ;                exit (0);            }            // Get the command arg            if (!READINI_GetEntryInt (str1, "ARG", &cmd_arg))            {                printf("\nGet Entry Int ARG Error !") ;                exit (0);            }            sprintf (str1, "[Command%d]", l+1) ;            for (j=0;j<MAX_ARG;j++)            {                char    strItem1 [20] ;                sprintf (strItem1, "ARG%d", j+1) ;                if (!READINI_GetEntryInt (str1, strItem1, &dwArg[j]))                {                    //printf ("Get [%s] [%s] Error\n", str1, strItem1) ;                    break ;                }            }            __dwW99AVCmdArg [0] = j +1 ;            __dwW99AVCmdArg [1] = cmd_arg ;            //printf("[CADD 0]:%08lx\n",(cmd_arg<<16|cmd_index));            for (k=0;k<j;k++)            {                __dwW99AVCmdArg [2+k] = dwArg [k] ;                //printf("[CADD %d]:%08lx\n",k+1,dwArg[k]);            }            W99AV_CommandN ((BYTE)cmd_index) ;        }    }    // LLY.023, for CDDA setting    if(__bW99AVAudioType==0x3)        W99AV_WriteRegDW(CICR, CICR_CDDA, 0x0); // CDDA    else        W99AV_WriteRegDW(CICR, CICR_VALUE, 0x0);#else    // Brian2.36, VCD30 is not used, RISC code may remove the command to save code space#ifdef  SUPPORT_VCD30_FEATURE    // LLY.049, restore VCD3.0 feature's variable    __dwW99AVCmdArg[0]=3;    __dwW99AVCmdArg[1]=CMDARG_SBTAR; // command argument is 0x0009    __dwW99AVCmdArg[2]=((DWORD)__rcHALVCD30Area.wRight<<10) | (DWORD)__rcHALVCD30Area.wLeft; // ARG1    __dwW99AVCmdArg[3]=((DWORD)__rcHALVCD30Area.wBottom<<10) | (DWORD)__rcHALVCD30Area.wTop; // ARG2    W99AV_CommandN(COMMAND_SBTAR); // command index is 0x000e    // LLY.275, give the arguments to global variables directly    //HAL_VCD30_Color(__dwHALVCD30Color, __bHALVCD30CR);    HAL_VCD30_Color();#endif    __dwW99AVCmdArg [0] = 5 ;    __dwW99AVCmdArg [1] = CMDARG_SPARCR ;    __dwW99AVCmdArg [2] = MAKELONG (__wW99AVPARCTLRLow, __wW99AVPARCTLRHigh) ;    __dwW99AVCmdArg [3] = MAKELONG (__wW99AVAVIDRLow, __wW99AVAVIDRHigh) ;    __dwW99AVCmdArg [4] = MAKELONG (__wW99AVNVSUBIDRLow, __wW99AVNVSUBIDRHigh) ;    __dwW99AVCmdArg [5] = __wW99AVBSFORMATR ;    W99AV_CommandN (COMMAND_SPARCR) ;#endif    // wyc1.22, test no video reset in Ritek 6/1 <-> 6/2 video become bigger then small problem.#if 0    __dwW99AVCmdArg [0] = 5 ;    __dwW99AVCmdArg [1] = CMDARG_SVC1 ;    // LLY2.81, split CT9928AF & CT908, because the bit meaning is different    // CT908: bit[9:0]=VDW, bit[19:10]=VDS    __dwW99AVCmdArg [2] = MAKELONG ((__dwW99AVVDRR&0x3FF), ((__dwW99AVVDRR>>10)&0x3FF)) ;    __dwW99AVCmdArg [3] = MAKELONG (__wW99AVHDWR, __wW99AVHDSR) ;    if(_btUcodeLoadFlag)  // download ucode success then the border color is blue    {#ifdef  BORDER_BLUE        __dwW99AVCmdArg [4] = 0x23d460 ;    // blue border#else        __dwW99AVCmdArg [4] = 0x008080 ;    // black border#endif    }    else   // download ucode failure then the border color is red#ifdef  _DEBUG_INFO    {        __dwW99AVCmdArg [4] = 0x4164d4 ;    // red border    }#else    // Chuan 276 2002/08/20: Give gray color when release mode.    {        __dwW99AVCmdArg [4] = 0xa08080 ;    // gray border    }#endif    __dwW99AVCmdArg [5] = MAKELONG (__wW99AVSPHDS, __wW99AVSPVDS) ;    //SP    W99AV_CommandN (COMMAND_SVC1) ;#endif //    __dwW99AVCmdArg [0] = 2 ;    __dwW99AVCmdArg [1] = CMDARG_SVC2 ;    __dwW99AVCmdArg [2] = MAKELONG (__wW99AVVCRLow, __wW99AVVCRHigh) ;    W99AV_CommandN (COMMAND_SVC2) ;    // TCC022, set RL command for SP/OGT    _SetSpOgtType () ;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区日本一区韩国一区| 国产视频一区在线观看| 国产视频一区二区三区在线观看| 亚洲免费在线电影| 美女视频第一区二区三区免费观看网站| 国产不卡视频一区| 91.成人天堂一区| 综合久久给合久久狠狠狠97色 | 日韩一区和二区| 亚洲色欲色欲www| 国产精品一二三在| 欧美zozozo| 日本aⅴ亚洲精品中文乱码| 在线观看一区日韩| 国产精品成人免费在线| 国产精品系列在线播放| 欧美v亚洲v综合ⅴ国产v| 天堂一区二区在线| 欧美三级电影网| 亚洲裸体在线观看| av一区二区三区| 国产精品久久久久影院色老大| 国产一区不卡在线| 精品久久一二三区| 经典一区二区三区| 欧美α欧美αv大片| 美国av一区二区| 欧美一级xxx| 久久国产三级精品| 精品国产一区二区三区四区四| 欧美aaaaaa午夜精品| 日韩一区二区三区视频在线| 日韩中文欧美在线| 91麻豆精品国产91久久久更新时间| 亚洲在线视频网站| 欧美日韩国产乱码电影| 亚洲狠狠爱一区二区三区| 欧美中文字幕一区| 日本欧美在线看| 久久久久国产精品人| 国产99久久久国产精品免费看| 国产精品美女久久久久久久久久久| 国产91精品免费| 亚洲人成网站在线| 欧美日韩国产高清一区二区| 水野朝阳av一区二区三区| 日韩欧美国产电影| 国产成人精品免费| 亚洲少妇中出一区| 欧美高清一级片在线| 黄网站免费久久| 亚洲欧洲一区二区在线播放| 91成人免费在线视频| 天天亚洲美女在线视频| 欧美精品一区男女天堂| 99re免费视频精品全部| 亚洲h精品动漫在线观看| 欧美成人精品二区三区99精品| 国产河南妇女毛片精品久久久| 国产精品成人午夜| 7777精品伊人久久久大香线蕉完整版 | 国产成人在线视频免费播放| 亚洲欧洲另类国产综合| 欧美色偷偷大香| 激情综合色播激情啊| 国产精品久久久久国产精品日日| 在线观看日韩精品| 韩国女主播一区| 亚洲美女一区二区三区| 日韩一级大片在线观看| 成人av在线电影| 日韩电影一二三区| 国产精品福利一区二区三区| 欧美精品第1页| 99久久国产综合精品麻豆| 日本不卡一二三| 亚洲激情在线播放| 久久午夜老司机| 欧美伊人久久大香线蕉综合69| 国产揄拍国内精品对白| 午夜精品福利一区二区三区av| 亚洲国产精品ⅴa在线观看| 91精品国产入口在线| 成人一区二区三区中文字幕| 日韩不卡一区二区| 一区二区久久久久久| 国产性做久久久久久| 91精品国产欧美一区二区| 一本色道久久综合亚洲91| 国产毛片一区二区| 美洲天堂一区二卡三卡四卡视频| 综合激情成人伊人| 国产嫩草影院久久久久| 精品少妇一区二区三区日产乱码 | 国产精品99久久久久| 日韩精品91亚洲二区在线观看| 亚洲男女毛片无遮挡| 国产精品久久久久影院亚瑟| 久久久蜜臀国产一区二区| 91精品国产手机| 欧美日韩不卡视频| 91激情五月电影| 成人成人成人在线视频| 丁香网亚洲国际| 国产91丝袜在线18| 精品在线视频一区| 精品一区二区免费在线观看| 热久久一区二区| 日韩专区欧美专区| 男男gaygay亚洲| 久久国产乱子精品免费女| 日本视频在线一区| 蜜臀久久99精品久久久画质超高清 | 麻豆成人av在线| 捆绑调教一区二区三区| 奇米色777欧美一区二区| 青草国产精品久久久久久| 欧美aa在线视频| 久久99九九99精品| 久久国产精品一区二区| 国产一区二区三区蝌蚪| 高清beeg欧美| 91亚洲精品久久久蜜桃| 91麻豆123| 欧美另类高清zo欧美| 欧美一区二区成人6969| 欧美精品一区二| 欧美激情一区二区三区在线| 国产精品电影院| 亚洲最大成人网4388xx| 日精品一区二区| 国产一区日韩二区欧美三区| 福利一区二区在线观看| 色综合久久久久网| 欧美福利视频导航| 久久综合成人精品亚洲另类欧美| 国产欧美精品一区二区三区四区 | 日韩综合小视频| 国产一区二区精品在线观看| 99久久综合色| 在线这里只有精品| 欧美一区二区三区在线观看| 久久久一区二区三区| 亚洲欧美日韩综合aⅴ视频| 亚洲va欧美va人人爽午夜| 国产一区二区电影| 日本国产一区二区| 日韩一二三区不卡| 国产精品另类一区| 婷婷开心激情综合| 成人性视频网站| 欧美久久一二三四区| 久久久久国产精品麻豆| 一区二区三区在线观看国产| 蜜臀va亚洲va欧美va天堂| av中文字幕不卡| 精品少妇一区二区三区免费观看| 亚洲欧洲www| 狠狠网亚洲精品| 欧洲精品视频在线观看| 久久久久久电影| 视频在线观看一区| www.欧美.com| 久久综合狠狠综合久久综合88 | 亚洲精品免费电影| 激情成人午夜视频| 欧美精品v日韩精品v韩国精品v| 中文字幕av一区二区三区| 免费在线视频一区| 欧美午夜精品免费| 国产精品你懂的在线欣赏| 麻豆久久一区二区| 欧美在线观看你懂的| 国产精品人妖ts系列视频| 久久国内精品视频| 制服丝袜av成人在线看| 一区二区不卡在线播放 | 精品视频1区2区3区| 亚洲特级片在线| 成人性生交大片免费| 精品国产第一区二区三区观看体验 | 国产在线不卡一区| 日韩精品一区二区三区三区免费| 一区二区三区日韩精品视频| 波多野结衣精品在线| 欧美激情综合五月色丁香| 狠狠色丁香婷综合久久| 日韩午夜av一区| 日韩国产高清在线| 欧美日韩电影在线播放| 亚洲成人在线免费| 欧美午夜片在线看| 亚洲超碰精品一区二区| 欧美性欧美巨大黑白大战| 一区二区三区中文在线| 色视频欧美一区二区三区| 亚洲欧洲日韩av| 色婷婷综合久久久中文一区二区| 亚洲日本一区二区| 91视视频在线直接观看在线看网页在线看|