📄 0715dsv.h
字号:
BIT _fgNofilesys;
BIT _fgCheckFileSys;
BYTE xdata _bBlankCheck;
BYTE xdata _bMovesledinCnt;
BYTE xdata _bUNFINALCNT;
BYTE xdata _bFilesyscnt;
BYTE xdata _bLeadIncnt;
DWRD xdata _dwRSAT_Sector;
#endif
strucQCode data _rQCode; // for CD
extern DWRD _dTarSector;
extern DWRD _dPreSector;
#define _dSectorID _dPreSector // define _dSectorID = _dPreSector
#define _bTarSec3 (*((BYTE *)&_dTarSector))
#define _bTarSec2 (*((BYTE *)&_dTarSector+1))
#define _bTarSec1 (*((BYTE *)&_dTarSector+2))
#define _bTarSec0 (*((BYTE *)&_dTarSector+3))
#define _bPreSec3 (*((BYTE *)&_dPreSector))
#define _bPreSec2 (*((BYTE *)&_dPreSector+1))
#define _bPreSec1 (*((BYTE *)&_dPreSector+2))
#define _bPreSec0 (*((BYTE *)&_dPreSector+3))
#define _bTarMin _bTarSec2 // use for save target time of seek and
#define _bTarSec _bTarSec1 // pauses mode , they are in MSB HEX format
#define _bTarBlk _bTarSec0
#define _bAbsMin _bPreSec2 // use for save current time, they are converted
#define _bAbsSec _bPreSec1 // after read q code and in MSB HEX format
#define _bAbsBlk _bPreSec0
// NOTE, fgForceSRVOff and _fgAbort need re-arrange
#else // _SERVO_F1_
extern BYTE bdata _bMediaType;
extern BIT _fgDiskIsDVDRW; // DVD-RW/+RW
extern BIT _fgDiskIsDVDMRW; // DVD-RW
extern BIT _fgDiskIsDVDR;
extern BIT _fgDiskIsDVD;
extern BIT _fgLowReflect;
extern BIT _fgDualLayer;
extern BIT _fgOppTrack;
extern BIT _fgDiskIsDVCD;
extern BIT _fgDiskIsCDRW;
extern BYTE data _bWdCnt;
extern BYTE xdata _bMaxSpeed;
extern BYTE xdata _bOptimumSpeed;
extern BYTE xdata _bDriveSpeed;
extern BYTE data _bPlayerStatus;
extern BYTE bdata _bServoStatus;
extern BIT _fgDiscStatus;
extern BIT _fgSpinStatus;
extern BIT _fgPauseStatus;
extern BIT _fgFocusStatus;
extern BIT _fgQIDStatus;
extern BIT _fgCalStatus;
extern BIT _fgSpeedStatus;
extern BIT _fgDmonStatus;
extern BIT _fgHybridSACD;
extern BIT _fg8CMDisk;
extern BIT _fgAbort;
#ifdef SUPPORT_UNFINALIZE_WITH_FILESYS
extern BIT _fgUnfinalize;
extern BIT _fgNofilesys;
extern BIT _fgCheckFileSys;
extern BYTE xdata _bBlankCheck;
extern BYTE xdata _bMovesledinCnt;
extern BYTE xdata _bUNFINALCNT;
extern BYTE xdata _bFilesyscnt;
extern BYTE xdata _bLeadIncnt;
extern DWRD xdata _dwRSAT_Sector;
#endif
extern strucQCode data _rQCode;
extern DWRD _dTarSector;
extern DWRD _dPreSector;
#define _dSectorID _dPreSector // define _dSectorID = _dPreSector
#define _bTarSec3 (*((BYTE *)&_dTarSector))
#define _bTarSec2 (*((BYTE *)&_dTarSector+1))
#define _bTarSec1 (*((BYTE *)&_dTarSector+2))
#define _bTarSec0 (*((BYTE *)&_dTarSector+3))
#define _bPreSec3 (*((BYTE *)&_dPreSector))
#define _bPreSec2 (*((BYTE *)&_dPreSector+1))
#define _bPreSec1 (*((BYTE *)&_dPreSector+2))
#define _bPreSec0 (*((BYTE *)&_dPreSector+3))
#define _bTarMin _bTarSec2 // use for save target time of seek and
#define _bTarSec _bTarSec1 // pauses mode , they are in MSB HEX format
#define _bTarBlk _bTarSec0
#define _bAbsMin _bPreSec2 // use for save current time, they are converted
#define _bAbsSec _bPreSec1 // after read q code and in MSB HEX format
#define _bAbsBlk _bPreSec0
#endif
#else // for DECODER Firmware
// Interface functions
extern void SRVInit(void);
extern void SRVHandleTimer(void);
extern void SRVTrayOut(void);
extern void SRVTrayIn(void);
extern void SRVTrayStop(void);
extern void SRVStartUp(void);
extern void SRVStop(void);
extern void SRVFree(void);
extern void SRVPauseOn(void);
extern void SRVPauseOff(void);
extern void SRVSetSpeed(BYTE);
extern void SRVSeek(BYTE,BYTE,BYTE,BYTE);
extern void SRVRoutineWork(void);
extern void SRVSetDVDBookType(BYTE);
extern BIT fgSRVAlive(void);
extern void SRVDelay10us(void);
extern void SRVDelay500us(BYTE);
extern void SRVDelay1ms(BYTE);
extern void SRVDelay20ms(BYTE);
#ifdef POWER_MANAGE // Power Down function
extern void SRVPowerDown(BIT);
extern void SRVWakeUp(void);
#endif
#ifdef SUPPORT_BCA
extern void SRVSeekToBCA(BIT, BYTE);
extern void SRVLeaveBCA(void);
#endif
#ifdef SUPPORT_UNFINALIZE_PLUS_VRMODE// [A863.7]
extern void SRVSeekToEnd(void);
#endif
extern DWRD dSRVGetVer(void);
// Interface variables
extern BYTE bdata _bMediaType;
extern BIT _fgDiskIsDVDRW; // DVD-RW/+RW
extern BIT _fgDiskIsDVDMRW; // DVD-RW
extern BIT _fgDiskIsDVDR;
extern BIT _fgDiskIsDVD;
extern BIT _fgLowReflect;
extern BIT _fgDualLayer;
extern BIT _fgOppTrack;
extern BIT _fgDiskIsDVCD;
extern BIT _fgDiskIsCDRW;
extern BIT _fgServoBUSY; // [0807 Gary] Disable long timr VFD Communication
extern BIT _fgDiscExist; // [0725 Gary] Disc is Exist or not and show on OSD
extern BIT _fgDiscIDSWLaser; // [0725 Gary] Disc is Exist or not and show on OSD
extern BYTE data _bWdCnt;
extern BYTE xdata _bMaxSpeed;
extern BYTE xdata _bOptimumSpeed;
extern BYTE xdata _bDriveSpeed;
extern BYTE data _bPlayerStatus;
extern BYTE bdata _bServoStatus;
extern BIT _fgDiscStatus;
extern BIT _fgSpinStatus;
extern BIT _fgPauseStatus;
extern BIT _fgFocusStatus;
extern BIT _fgQIDStatus;
extern BIT _fgCalStatus;
extern BIT _fgSpeedStatus;
extern BIT _fgDmonStatus;
extern BIT _fgHybridSACD;
extern BIT _fg8CMDisk;
extern BIT _fgAbort;
extern strucQCode data _rQCode;
extern DWRD _dTarSector;
extern DWRD _dPreSector;
#define _dSectorID _dPreSector // define _dSectorID = _dPreSector
#define _bTarSec3 (*((BYTE *)&_dTarSector))
#define _bTarSec2 (*((BYTE *)&_dTarSector+1))
#define _bTarSec1 (*((BYTE *)&_dTarSector+2))
#define _bTarSec0 (*((BYTE *)&_dTarSector+3))
#define _bPreSec3 (*((BYTE *)&_dPreSector))
#define _bPreSec2 (*((BYTE *)&_dPreSector+1))
#define _bPreSec1 (*((BYTE *)&_dPreSector+2))
#define _bPreSec0 (*((BYTE *)&_dPreSector+3))
#define _bTarMin _bTarSec2 // use for save target time of seek and
#define _bTarSec _bTarSec1 // pauses mode , they are in MSB HEX format
#define _bTarBlk _bTarSec0
#define _bAbsMin _bPreSec2 // use for save current time, they are converted
#define _bAbsSec _bPreSec1 // after read q code and in MSB HEX format
#define _bAbsBlk _bPreSec0
#ifdef SUPPORT_UNFINALIZE_WITH_FILESYS
extern BIT _fgUnfinalize;
extern BIT _fgNofilesys;
extern BIT _fgCheckFileSys;
extern DWRD xdata _dwRSAT_Sector;
#endif
// Register definition
#define RW_P06 0x06 // Cassette status 0x01: LED ON
#define RW_POWDN 0x08
#define RW_CLKCTL 0x09
#define RW_IPCK 0x0A
#define RW_DMCLK 0x0B
#define RW_DEMOCTL 0x35
#define RW_AUCT 0x2B
#define RW_AUCT2 0x48
#define RW_ICEMODE 0x78
#define RW_VIRAMCTL 0x79
#define RW_UPCLKCTL 0x7C
#define CIRC_STRATEGY_CHANGE
#ifdef CIRC_STRATEGY_CHANGE
extern BYTE xdata _bCIRCA;
#endif
/********* Only for DC Motor Model use ***********/
#ifdef DC_MOTOR_ADJUST
extern BIT _fgDCMOTORADJ; // New DCMotorCal Flow
extern int xdata _bADINOffset;
#endif
/*****************************************************************************
Function : Servo Register Access
*****************************************************************************/
extern BYTE bReadInDirCmd1(BYTE bCmdIdx);
extern void WriteInDirCmd1(BYTE bCmdIdx, BYTE bData);
extern BYTE bReadInDirCmd2(BYTE bCmdIdx);
extern void WriteInDirCmd2(BYTE bCmdIdx, BYTE bData);
extern void WriteDSP1Cmd(BYTE bCmdIdx, BYTE bData);
extern void WriteDSP2B0Cmd(BYTE bCmdIdx, BYTE bHdata, BYTE bLdata);
extern void WriteDSP2B1Cmd(BYTE bCmdIdx, BYTE bHdata, BYTE bLdata);
extern WORD wReadDSP2Cmd(BYTE bBank,BYTE bIndex);
extern void WriteReg8(BYTE bIndex, BYTE bData);
extern BYTE bReadReg8H(BYTE bIndex);
extern WORD wReadReg16(BYTE bIndex);
extern void WriteReg16(BYTE bIndex, BYTE bHdata, BYTE bLdata);
#define bReadDSVOCmd(bCmdIdx) bReadInDirCmd2(bCmdIdx)
#define WriteDSVOCmd(bCmdIdx,bData) WriteInDirCmd2(bCmdIdx,bData)
#define bReadRFInDirCmd(bCmdIdx) bReadInDirCmd2(bCmdIdx)
#define WriteRFInDirCmd(bCmdIdx,bData) WriteInDirCmd2(bCmdIdx,bData)
#define bReadPLLCmd(bCmdIdx) bReadInDirCmd1(bCmdIdx)
#define WritePLLCmd(bCmdIdx,bData) WriteInDirCmd1(bCmdIdx,bData)
#define bReadPRMLCmd(wReg) (XBYTE[wReg])
#define WritePRMLCmd(wReg,bData) (XBYTE[wReg] = bData)
#define bReadDPUCmd(wReg) (XBYTE[wReg])
#define WriteDPUCmd(wReg,bData) (XBYTE[wReg] = bData)
#endif
#endif // _H_SRV2DEC_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -