亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
一区二区三区在线免费| 老司机免费视频一区二区| 欧美精品久久天天躁| 国产99久久久精品| 亚洲成人一区二区| 国产精品视频yy9299一区| 91精品国产麻豆国产自产在线| 成人一区二区视频| 蜜臀av亚洲一区中文字幕| 亚洲精品视频免费看| 久久综合久久综合久久| 欧美日韩黄色影视| 色综合久久综合网欧美综合网| 国产美女视频91| 美女尤物国产一区| 香港成人在线视频| 亚洲精品第1页| 日韩一区日韩二区| 中文字幕电影一区| 国产日产精品1区| 欧美成人猛片aaaaaaa| 精品动漫一区二区三区在线观看| 日本电影亚洲天堂一区| 成人sese在线| 成人性生交大合| 国产精品一品二品| 国产美女在线精品| 激情欧美日韩一区二区| 乱一区二区av| 日韩国产欧美在线视频| 亚洲一卡二卡三卡四卡五卡| 亚洲视频一区二区在线观看| 国产精品午夜春色av| 国产欧美视频在线观看| 欧美sm极限捆绑bd| 欧美大片免费久久精品三p| 69久久夜色精品国产69蝌蚪网| 精品视频一区二区不卡| 色哟哟亚洲精品| 91免费看`日韩一区二区| 成人免费va视频| 9色porny自拍视频一区二区| 99在线精品一区二区三区| 99re视频精品| 日本韩国欧美一区二区三区| 91猫先生在线| 欧美吻胸吃奶大尺度电影| 精品视频1区2区| 欧美一级二级在线观看| 欧美一区三区二区| 91精品国产麻豆国产自产在线| 欧美一区永久视频免费观看| 日韩一二在线观看| 久久综合狠狠综合久久综合88 | 久久精品噜噜噜成人88aⅴ| 天堂av在线一区| 六月婷婷色综合| 国产精品一区二区三区乱码| 成人免费高清视频在线观看| 99在线热播精品免费| 欧美性色欧美a在线播放| 欧美日韩一区二区在线观看视频| 91精品国产品国语在线不卡| 日韩视频免费直播| 国产精品网站在线| 一区二区三区四区中文字幕| 肉丝袜脚交视频一区二区| 久久精品理论片| av成人动漫在线观看| 欧美亚洲自拍偷拍| 欧美精品一区二区精品网| 欧美激情资源网| 亚洲一区二区精品视频| 麻豆成人综合网| 99亚偷拍自图区亚洲| 欧美浪妇xxxx高跟鞋交| 久久免费电影网| 亚洲精品国产无套在线观| 免费精品视频在线| 成人黄色在线看| 久久久久久夜精品精品免费| 国产精品欧美一区喷水| 亚洲成人一区二区在线观看| 国产美女在线观看一区| 在线观看三级视频欧美| 欧美α欧美αv大片| 亚洲精品中文在线影院| 男女男精品视频| 99久久久精品| 欧美精品一区二区三区很污很色的 | 久久中文字幕电影| 一区二区三区加勒比av| 国产精品中文字幕一区二区三区| 色噜噜狠狠色综合中国| 久久久久久久久久久黄色| 亚洲电影一区二区三区| 成人性生交大合| 精品欧美黑人一区二区三区| 一区二区三区免费网站| 国产盗摄一区二区| 欧美一区二区三区免费大片| 亚洲免费视频成人| 国产成人h网站| 欧美成人bangbros| 亚洲成人tv网| 99久久久精品免费观看国产蜜| 精品国产不卡一区二区三区| 亚洲国产一区二区三区| 成人av在线影院| 国产三级欧美三级| 久久精品国产免费| 欧美日韩1234| 亚洲午夜视频在线| 99久久国产综合精品女不卡| 久久噜噜亚洲综合| 麻豆精品视频在线观看免费| 欧美日韩国产一级| 一二三区精品福利视频| 成人综合婷婷国产精品久久免费| 日韩三级中文字幕| 日韩电影免费一区| 欧美伦理影视网| 亚洲一区在线观看免费| 91黄色小视频| 亚洲精品成人天堂一二三| 成人黄色综合网站| 欧美国产综合一区二区| 国产在线精品一区二区三区不卡| 欧美tk丨vk视频| 青青草国产精品97视觉盛宴 | 久久久电影一区二区三区| 麻豆精品国产传媒mv男同| 911国产精品| 五月综合激情网| 欧美一级在线免费| 日本美女一区二区三区| 欧美二区乱c少妇| 视频一区二区三区入口| 欧美日韩国产一级| 日韩成人dvd| 日韩免费观看高清完整版| 精品一区二区三区免费视频| 精品第一国产综合精品aⅴ| 黄色日韩三级电影| 国产三级精品视频| www.色综合.com| 亚洲另类中文字| 欧美日本在线观看| 蜜臀久久久久久久| 久久久不卡网国产精品一区| 国产成人欧美日韩在线电影| 亚洲一区二区三区精品在线| 欧美日韩精品高清| 日本视频一区二区三区| 欧美一区二区三区四区五区| 美女任你摸久久 | ●精品国产综合乱码久久久久| 91丨九色丨蝌蚪丨老版| 亚洲五月六月丁香激情| 91麻豆精品国产91久久久更新时间 | 91在线视频免费91| 亚洲一二三级电影| 日韩三级高清在线| 国产成人一区在线| 一区二区三区四区中文字幕| 91麻豆精品国产无毒不卡在线观看 | 免费观看在线色综合| 国产欧美日韩综合| 在线日韩国产精品| 久久国产视频网| 国产精品国产自产拍高清av王其| 一本到一区二区三区| 日本最新不卡在线| 国产精品日产欧美久久久久| 欧洲亚洲国产日韩| 激情五月播播久久久精品| 1000部国产精品成人观看| 91麻豆精品国产91久久久久久久久 | 国产免费观看久久| 欧美艳星brazzers| 国产在线一区观看| 亚洲一区av在线| 国产日韩欧美精品一区| 欧美日韩一区二区不卡| 激情六月婷婷综合| 亚洲成a人片在线不卡一二三区| 2024国产精品| 欧美日韩国产高清一区二区三区| 国产精品一区久久久久| 五月开心婷婷久久| 最新国产の精品合集bt伙计| 欧美大白屁股肥臀xxxxxx| 91丨porny丨最新| 韩日欧美一区二区三区| 一区二区三区四区中文字幕| 国产日韩三级在线| 日韩一区二区三区四区五区六区| 99re6这里只有精品视频在线观看| 午夜精品福利一区二区三区av| 亚洲欧洲成人av每日更新|