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

📄 vander.c

📁 一个完整DVDROM代码(使用日立PICKUP)
💻 C
字号:
/*=============================================================================
* Copyright (C) 2001 Acer Labs, Inc. All Rights Reserved.
*
* File:         VANDER.C
*
* Contents:     -
*
* History:
*   04/18/2001  develop 5705
******************************************************************************/
#include <reg52.h>
#include "typedef.h"
#include "defs.h"
#include "extern.h"
#include "bufalloc.h"
#include "function.h"
#include "macro.h"
#include "regdef.h"
                         
BYTE code   VerTBL[24]="5705-02E4PD03r2509-hanyc";   
BYTE code	stamp1[11]="model:PD-03";
BYTE code	stamp2[12]="version:v1.0";
BYTE code	stamp3[23]="programmer:hanyongcheng";
BYTE code	stamp4[15]="date:2002-08-01";
#define VersionTable[24] VerTBL[24];

//1b02a25j extern BYTE code    VerTBL[24];                 //R1719_COM_03 
/*-----------------------------------------------------------------------------
 Function:  make maker version number
 Input:     -
 Output:    -
-----------------------------------------------------------------------------*/
void MakeVanderTable(void)
{
BYTE    i,length;
    length=sizeof(VerTBL);                     //R1719_COM_03 
    SetAddressReg((DWORD)(TABLE_BASE_ADDRESS+IDENTIFY_DEVICE_TABLE+54));
    for(i=0;i<length;i+=2)
    {
        WrReg(LUPDATA,VerTBL[i+1]);            //R1719_COM_03 
        WrReg(UUPDATA,VerTBL[i]);              //R1719_COM_03 
        WrReg(UP_TRIG,WRITE_TO_RAM);
        while(!(RdReg(UPCTL)&0x01));
    }

    SetAddressReg((DWORD)(TABLE_BASE_ADDRESS+INQUIRY_TABLE+8));
    for(i=0;i<length;i+=2)
    {
        WrReg(LUPDATA,VerTBL[i]);              //R1719_COM_03  
        WrReg(UUPDATA,VerTBL[i+1]);            //R1719_COM_03 
        WrReg(UP_TRIG,WRITE_TO_RAM);
        while(!(RdReg(UPCTL)&0x01));
    }
}

/*-----------------------------------------------------------------------------
 Function:  vander unique command
 Input:     -
 Output:    -
-----------------------------------------------------------------------------*/
BYTE VanderCmd(void)
{
    switch(bCommandPacket[0])
    {
    case 0x78:
        SendPIPO();
        break;

    default:
        return ERROR;
    }
    return READY;
}

/*-----------------------------------------------------------------------------
 Function:  vander unique command state
 Input:     -
 Output:    -
-----------------------------------------------------------------------------*/
void VanderState(void)
{
    switch(bCommandPacket[0])
    {
    case 0x78:
        TP_BYTE_0=RdReg(UEFMPTR); //R1815_COM_01***
        TP_BYTE_1=RdReg(LEFMPTR); 
        if(TP_WORD_0<0x10)       
            //TP_WORD_0=TP_WORD_0+0xD0-0x10;
            TP_WORD_0=TP_WORD_0+DVD_MAX_SECTOR-0x10;
        else
            TP_WORD_0-=0x10;
            
        WrReg(UHIPTR,TP_BYTE_0);
        WrReg(LHIPTR,TP_BYTE_1); //R1815_COM_01&&& 
        break;
    }
}

⌨️ 快捷键说明

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