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

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

?? w99av2.c

?? 車載電子影音系統dvd播放系統原程序代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
        }        return TRUE;        break;        // wyc.275a, add LPCM de-emphasis code in read info function.    case    W99AV_INFO_LPCM_DEEMPHASIS:        W99AV_ReadDM (W99AV_DM_LPCM_FREQ, &_dwTemp1) ;        _dwTemp1 &= 0x40;        if (_dwTemp1)            *pdwData = TRUE;        else            *pdwData = FALSE;        return TRUE;        break;    default :        return FALSE;        break;    }}// **************************************************************************//      Function        :       W99AV_CommandN//      Description     :       It process the command that take N parameters !!!//                              Or the DSP argument is not DSP_NOCMD//                              And this function will not be called in ISR////                              The process of execute a macro command of W9926QF//                              1.Clear CACK bit of PSR//                              2.Write Command_index(15:0) and Command_arg(31:16)//                              3.Write Extended Command Argument ARG1(31:0)//                                ~ARG15(31:0) if nexessary//                              4.Set Command Interrupt bit//                              5.Waiting for Command acknowledge//      Arguments       :       bCommandID:the command ID to be executed//      Return          :       TRUE of FALSE//      Side Effect     :       When the command is called in ISR, should use//                      :       a special buffer.// *********************************************************************#pragma NOAREGS         // be called in ISR// Chuan2.80, Disable interrupt within whole function#pragma DISABLE // will disable all interrupt for the duration of function                // can't use when function return is BIT// Chuan0.86, merge the GXA and original into 1 function.BYTE W99AV_CommandN(BYTE bCommandID){    // Chuan 276 2002/08/20: directly return value    // BIT     btGenCmdErr;    BYTE    i;    BYTE    bArgNo; // record the number of arguments    if(bCommandID==0xFF)  // not define command        return FALSE;    //Kevin1.24, pause->step ?    //if (bCommandID==COMMAND_PAUSE)    //    bCommandID=COMMAND_STEP;    // Brian1.00, set Command RAM for GXA    bArgNo = (BYTE)__dwW99AVCmdArg[1]; // must assign Command_Arg to BYTE, so the 4-bit/8-bit flag is omitted.    if (bCommandID == COMMAND_GDI && (bArgNo == CMDARG_FILL_RECT || bArgNo == CMDARG_BMP_COPY))    {        extern void _GDI_SetCMDRam(void);        _GDI_SetCMDRam();    }    // following is the valid command    bArgNo=(BYTE)__dwW99AVCmdArg[0];  // get the number of command arguments    // Step 1 : clear CACK bit of PSR    // Chuan2.80p, move to W99AV_SetCommandEnable()    //W99AV_ClearInterrupt(INT_CACK);  //     set bit(5)--CACKC in ISR    // Step 2 : write ARG0(31:0)--Command index and arguments    __dwW99AVCmdArg[1]=__dwW99AVCmdArg[1]<<16;      // set ARG0(31:16)=Command_arg    //Kevin1.23, comment    //if (bCommandID==COMMAND_PAUSE)    //    __dwW99AVCmdArg[1]=__dwW99AVCmdArg[1] | (DWORD)(COMMAND_STEP); // set ARG0(15:0)=Command_index    //else        __dwW99AVCmdArg[1]=__dwW99AVCmdArg[1] | (DWORD)bCommandID; // set ARG0(15:0)=Command_index    W99AV_OutIndex(0x10000000);      //     AIR(31:0)=0x10000000    W99AV_OutData(__dwW99AVCmdArg[1]);    // Chuan2.80, Now COMMAND_PAUSE use COMMAND_STEP to implement. So directly use COMMAND_STEP instead of COMMAND_PAUSE by define    //W99AV_OutIndex(0x10000000);      //     AIR(31:0)=0x10000000    //W99AV_OutData(((__dwW99AVCmdArg[1]<<16)|(DWORD)bCommandID));#ifdef DUMP_INFORMATION	    if (__btDumpFlag)    {        if (__bDumpType&INFO_MISC)            printf("\nCMD: 0x%lx",__dwW99AVCmdArg[1]);    }#endif    // Step 3 : write Extended Command Argument    for(i=2;i<=bArgNo;i++)    {        W99AV_OutIndex (0x0FFFFFFF+i) ;        W99AV_OutData(__dwW99AVCmdArg[i]);#ifdef DUMP_INFORMATION        if (__btDumpFlag)        {            if (__bDumpType&INFO_MISC)                printf(", 0x%lx",__dwW99AVCmdArg[i]);        }#endif    }#ifdef ACK_FROM_OTHERS    // Chuan0.86, PSFB command/ JPEG command need wait BERR because system have unknown CACK when issue PSFB cmd/ JPEG cmd.    // So clear INT_BERR first.    if ( (bCommandID == COMMAND_DRAMCOPY)  ||        (bCommandID == COMMAND_JPEG) ||         (bCommandID == COMMAND_PSFB) )    {        // Brian0.86        // use BERR as ACK        W99AV_ClearInterrupt(INT_BERR);    }#endif    // Step 4 : set Command Interrupt bit    // TCC161, remove _WriteSysRegW function    W99AV_SetCommandEnable();        // Step 5 :     waiting for Command acknowledge    // Chuan 276 2002/08/20: CommandID 0x01~0x07 not to wait the acknowledge    if (bCommandID<0x01 || bCommandID>0x07)    {        dwCnt=0;        while(1)        {#ifdef ACK_FROM_OTHERS            // Brian0.83a GDI and DRAMCOPY all use 0x1C as index            // so we use command argument to identify whether it is GDI command (1~3)            // Chuan0.86, PSFB command need wait BERR because system have unknown CACK when issue PSFB cmd            if ( (bCommandID == COMMAND_DRAMCOPY)  ||                (bCommandID == COMMAND_JPEG) ||                 (bCommandID == COMMAND_PSFB) )              {                // Brian0.86                // Use BERR as ACK                if((W99AV_GetPSR() & INT_BERR)!=0)                    break;            }            else#endif            {                if((W99AV_GetPSR() & INT_CACK)!=0)                    break;            }            dwCnt++;            // LLY.276p-4, larger ACK Loop count for "preset frame buffer command"            // Chuan 277 2002/09/11: larger ACK Loop count for "DRAMCOPY"            // Chuan0.86, COMMAND_JPEG need wait larger ACK Loop count.            if( (dwCnt>ACKLOOP_PSFB) ||               ((dwCnt>ACKLOOP)&&(bCommandID!=COMMAND_PSFB)&&(bCommandID<COMMAND_DRAMCOPY)) )            {#if defined (SERIAL_DEBUG) || defined(SUPPORT_PRINTF)                printf("\n4 Wait no ACK! ");                for(i=1;i<=bArgNo;i++)                    printf("%lx, ", __dwW99AVCmdArg[i]);                //Show DSP/RISC PC, V-Rem, A-Rem                printf("DEBR:%lx V:%lx A:%lx", W99AV_ReadRegDW(DEBR), W99AV_ReadRegDW (VBRR), W99AV_ReadRegDW (ABRR));#endif                return FALSE;            }        }    }    if (bCommandID==COMMAND_PAUSE) #ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x6, 0x0000) ;      // Audio Command - Pause#else        _WriteInternalRegDW_IO (ADCMR, 0x6, 0x0000) ;      // Audio Command - Pause#endif    else if (bCommandID==COMMAND_STEP) #ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x3, 0x0000) ;      // Audio Command - Step#else        _WriteInternalRegDW_IO (ADCMR, 0x3, 0x0000) ;      // Audio Command - Step#endif                    else if(bCommandID>=COMMAND_PLAY && bCommandID<COMMAND_PAUSE)#ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x1, 0x0000) ;      // Audio Command - Play#else        _WriteInternalRegDW_IO (ADCMR, 0x1, 0x0000) ;      // Audio Command - Play#endif    return TRUE;}// **************************************************************************//      Function        :       W99AV_Command1//      Description     :       It process the command that only take 1 parameter !!!//                              And the DSP argument is DSP_NOCMD//                              And this function will be called in ISR////                              The process of execute a macro command of W9926QF//                              1.Clear CACK bit of PSR//                              2.Write Command_index(15:0) and Command_arg(31:16)//                              3.Write Extended Command Argument ARG1(31:0)//                                ~ARG15(31:0) if nexessary//                              4.Set Command Interrupt bit//                              5.Waiting for Command acknowledge//      Arguments       :       bCommandID:the command ID to be executed//                              wArg0:the command argument//      Return          :       TRUE of FALSE//      Side Effect     :       When the command is called in ISR, should use//                      :       a special buffer.// **************************************************************************#pragma NOAREGS // called in ISR#pragma DISABLE // will disable all interrupt for the duration of function                // can't use when function return is BITBYTE W99AV_Command1(BYTE bCommandID,WORD wArg0){    // Chuan 276 2002/08/20: directly return value    //BIT     btGenCmdErr;    ////////////////////////////////////////////    ///// general command procedure    if(bCommandID==0xFF)  // Not define     command        return FALSE;    //Kevin1.24, pause->step ?    //if (bCommandID==COMMAND_PAUSE)    //    bCommandID=COMMAND_STEP;    // Step 1 : clear CACK bit of PSR    // Chuan2.80p, move to W99AV_SetCommandEnable()    //W99AV_ClearInterrupt(INT_CACK);  // set bit(5)--CACKC in ISR    // Step 2 : write ARG0(31:0)--Command index and arguments    //_dwTemp1=(DWORD)wArg0;    // set ARG0(31:16)=Command_arg    // Chuan2.80, Now COMMAND_PAUSE use COMMAND_STEP to implement. So directly use COMMAND_STEP instead of COMMAND_PAUSE by define    _dwTemp1=((DWORD)wArg0)<<16;    //Kevin1.23, comment    //if (bCommandID==COMMAND_PAUSE)    //    _dwTemp1=_dwTemp1 | (DWORD)(COMMAND_STEP); // set ARG0(15:0)=Command_index    //else        _dwTemp1=_dwTemp1 | (DWORD)bCommandID;   // set ARG0(15:0)=Command_index    W99AV_OutIndex(0x10000000);  // AIR(31:0)=0x10000000    W99AV_OutData(_dwTemp1);    //W99AV_OutData(((__dwW99AVCmdArg[1]<<16)|(DWORD)bCommandID));#ifdef DUMP_INFORMATION    if (__btDumpFlag)    {        if (__bDumpType&INFO_MISC)            printf("\nCMD: 0x%lx",_dwTemp1);    }#endif    // Step 4 : set Command Interrupt bit    W99AV_SetCommandEnable();            // Step 5 : waiting for Command acknowledge    if (bCommandID<0x01 || bCommandID>0x07)    {        wCnt=0;        while(1)        {            if((W99AV_GetPSR() & INT_CACK)!=0)                break;            if(wCnt++>ACKLOOP)  // polling time out            {#if defined (SERIAL_DEBUG) || defined(SUPPORT_PRINTF)                printf("\n3 Wait no ACK! %lx",_dwTemp1);                printf(" DEBR:%lx V:%lx A:%lx", W99AV_ReadRegDW(DEBR), W99AV_ReadRegDW (VBRR), W99AV_ReadRegDW (ABRR));                #endif                return FALSE;                break;            }        }    }    //DVD016-1, combined audio command with micro command            if (bCommandID==COMMAND_PAUSE)       #ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x6, 0x0000) ;      // Audio Command - Pause#else        _WriteInternalRegDW_IO (ADCMR, 0x6, 0x0000) ;      // Audio Command - Pause#endif    else if (bCommandID==COMMAND_STEP) //Kevin1.23, DSP implement STEP command#ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x3, 0x0000) ;      // Audio Command - Step#else        _WriteInternalRegDW_IO (ADCMR, 0x3, 0x0000) ;      // Audio Command - Step#endif                    else if(bCommandID>=COMMAND_PLAY && bCommandID<COMMAND_PAUSE)#ifdef GLOBAL_BUS_IO        W99AV_WriteInternalRegDW (ADCMR, 0x1, 0x0000) ;      // Audio Command - Play#else        _WriteInternalRegDW_IO (ADCMR, 0x1, 0x0000) ;      // Audio Command - Play#endif    return TRUE;}// **************************************************************************//      Function        :       W99AV_SetBufferThreshold//      Description     :       Set the audio/video buffer overflow/underflow threshold//      Arguments       :       bType, specify audio/video buffer over/under//                      :       dwSize, the size of threshold (only 20 bit is valid), DWORD unit//      Return          :       None//      Side Effect     :// **************************************************************************void W99AV_SetBufferThreshold(BYTE bType, DWORD dwSize){    switch(bType)    {    case    W99AV_VOVERFLOW :        // Chuan1.10, Don't need multiply by 2 from 20031106 RISC code.        // dwSize<<=1;  // Chuan2.80p, VOVERSETR is word count        W99AV_WriteRegDW(VBOVERSETR, LOWORD (dwSize), HIWORD (dwSize));        break;    case    W99AV_VUNDERFLOW :        // Chuan1.10, Don't need multiply by 2 from 20031106 RISC code.        // dwSize<<=1;  // Chuan2.80p, VOVERSETR is word count              W99AV_WriteRegDW(VBUNDERSETR, LOWORD (dwSize), HIWORD (dwSize));        break;    case    W99AV_AOVERFLOW :        W99AV_WriteRegDW(ABOVERSETR, LOWORD (dwSize), HIWORD (dwSize));        break;    case    W99AV_AUNDERFLOW:        W99AV_WriteRegDW(ABUNDERSETR, LOWORD (dwSize), HIWORD (dwSize) );        break;    default :        break;    }}// DVD_173Micky, add a W99AV_DRAMCopy API.//  **********************************************************************//  Function    :   DVDW99AV_DumpCopy//  Description :   Move from one DRAM location to another DRAM location//  Arguments   :   __dwW99AV_SrcDRAM   : the source DRAM location//              :   __dwW99AV_DestDRAM  : The destination DRAM location//              :   dwLen                : DWORD to move//  Return      :   The data length of reading successfully in DWORD unit//  Side Effect ://  *********************************************************************WORD W99AV_DRAMCopy(DWORD dwLen){#ifdef NO_RISC_DRAMCOPY    //WORD    wOffset = 0; Chuan 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩人成在线播放| 美女视频一区二区| 日韩精品久久久久久| 国产激情精品久久久第一区二区| 99热精品国产| 精品少妇一区二区三区免费观看 | 日韩毛片在线免费观看| 亚洲成av人片www| 国产99久久久国产精品潘金| 欧美日本一区二区| 亚洲人成亚洲人成在线观看图片 | 日韩精品资源二区在线| 亚洲日本韩国一区| 国产精品主播直播| 日韩欧美一区二区免费| 婷婷久久综合九色国产成人| 91免费在线播放| 国产午夜精品久久久久久久 | 国产一区二区导航在线播放| 精品婷婷伊人一区三区三| 中文字幕视频一区| 成人激情免费视频| 国产欧美精品区一区二区三区| 国产精品 欧美精品| 欧美变态凌虐bdsm| 青娱乐精品在线视频| 欧美精品免费视频| 亚洲成人一区二区| 欧美专区日韩专区| 洋洋av久久久久久久一区| av电影一区二区| 中日韩av电影| 成人精品免费视频| 亚洲欧洲精品天堂一级| 成人高清免费观看| 国产精品久久久久久久久免费樱桃 | 91国偷自产一区二区三区观看 | 日韩电影网1区2区| 欧美疯狂做受xxxx富婆| 天天色 色综合| 欧美精品在线视频| 日韩成人免费在线| 日韩欧美三级在线| 国产成人在线视频免费播放| 国产女人18毛片水真多成人如厕| 国产 欧美在线| 亚洲色欲色欲www| 欧美在线啊v一区| 天涯成人国产亚洲精品一区av| 在线播放中文字幕一区| 精彩视频一区二区| 国产精品欧美综合在线| 色系网站成人免费| 日本成人在线看| 国产视频一区二区在线| 91啦中文在线观看| 天天爽夜夜爽夜夜爽精品视频| 精品国产成人在线影院 | 欧美色精品在线视频| 男女男精品网站| 国产三级欧美三级日产三级99| 成人在线视频首页| 一区二区三区在线不卡| 欧美中文字幕亚洲一区二区va在线| 亚洲精品视频一区| 99re66热这里只有精品3直播 | 男女激情视频一区| 精品国产伦一区二区三区观看方式 | 豆国产96在线|亚洲| 国产精品卡一卡二卡三| av电影在线观看一区| 亚洲一区二区三区小说| 欧美精品免费视频| 久久99精品一区二区三区| 国产精品二三区| 欧洲av一区二区嗯嗯嗯啊| 日韩精品视频网站| 欧美大片拔萝卜| 懂色av一区二区三区蜜臀| 国产精品福利在线播放| 91高清视频在线| 日本不卡在线视频| 国产日韩成人精品| 欧美一区二区三区视频在线观看 | 欧美一二三在线| 国产精品18久久久久久久久 | 午夜视频在线观看一区二区| 欧美成人艳星乳罩| 99精品久久久久久| 丝袜诱惑亚洲看片| 国产日产亚洲精品系列| 色美美综合视频| 豆国产96在线|亚洲| 亚洲国产精品久久人人爱蜜臀| 欧美一级黄色片| 成人免费毛片a| 天堂影院一区二区| 久久精品男人天堂av| 在线免费精品视频| 国产九色精品成人porny| 亚洲乱码国产乱码精品精98午夜 | 粉嫩aⅴ一区二区三区四区五区 | 136国产福利精品导航| 7777精品伊人久久久大香线蕉| 国产a久久麻豆| 热久久一区二区| 亚洲猫色日本管| 精品福利二区三区| 欧美在线免费观看视频| 琪琪一区二区三区| 亚洲123区在线观看| 中文字幕一区二区三区在线播放| 日韩欧美第一区| 在线观看亚洲一区| 成人高清av在线| 黑人精品欧美一区二区蜜桃| 亚洲成人精品一区| 亚洲欧洲日韩在线| 久久久99精品免费观看不卡| 正在播放亚洲一区| 成人动漫av在线| 国内精品伊人久久久久av一坑| 一个色在线综合| 国产精品二三区| 国产精品国产精品国产专区不蜜 | 国产麻豆日韩欧美久久| 日韩电影一二三区| 五月综合激情网| 亚洲一区二区视频在线| 亚洲手机成人高清视频| 国产精品毛片高清在线完整版| 26uuu亚洲综合色| 精品91自产拍在线观看一区| 欧美一级精品大片| 日韩久久久久久| 日韩欧美成人一区| 欧美一区二区成人| 欧美一区2区视频在线观看| 色哟哟欧美精品| 99国产精品一区| 欧美色精品在线视频| 欧美日本一区二区| 91精品久久久久久蜜臀| 欧美精品xxxxbbbb| 日韩三级在线观看| 欧美mv和日韩mv的网站| 久久综合色8888| 欧美国产丝袜视频| 成人欧美一区二区三区黑人麻豆 | 国产欧美精品一区二区色综合朱莉| 精品欧美乱码久久久久久1区2区 | 亚洲国产综合视频在线观看| 伊人开心综合网| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲一区中文日韩| 麻豆成人免费电影| 国产在线乱码一区二区三区| 韩国欧美国产一区| 成人教育av在线| 国产成人午夜高潮毛片| 欧美性高清videossexo| 精品欧美一区二区久久| 中文字幕中文字幕中文字幕亚洲无线| 久久久亚洲精华液精华液精华液| 久久久久久久电影| 国产精品不卡在线观看| 视频一区二区三区入口| 国产激情91久久精品导航| 色爱区综合激月婷婷| 欧美成人性战久久| 亚洲少妇最新在线视频| 免费观看久久久4p| 欧美精品乱码久久久久久| 日韩美一区二区三区| 亚洲电影你懂得| 成人深夜福利app| 337p亚洲精品色噜噜狠狠| 久久久国产精华| 肉肉av福利一精品导航| 国产成人免费av在线| 欧美日韩夫妻久久| 精品国产乱码久久久久久免费| 国产精品高潮呻吟久久| 麻豆国产精品官网| 久久女同精品一区二区| 丝袜美腿亚洲色图| 亚洲欧美欧美一区二区三区| 日韩电影免费一区| 99久久精品99国产精品| 精品日韩在线一区| 亚洲欧洲制服丝袜| 国产乱对白刺激视频不卡| 欧美色图12p| |精品福利一区二区三区| 美国三级日本三级久久99 | 中文字幕高清不卡| 麻豆91精品91久久久的内涵| 成人激情动漫在线观看| 精品日韩在线一区| 青青草原综合久久大伊人精品优势 |