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

📄 hddi60_89k.h

📁 MTK1389L的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
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  BIT   _fgHybridSACD;
extern  BIT   _fg8CMDisk;
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  BYTE bdata  _bServoFlag1;
extern  BIT  _fgHybridSACD;
extern  BIT  _fg8CMDisk;
extern  BIT  _fgAbort;

   #ifdef SUPPORT_UNFINALIZE_WITH_FILESYS  // [A863.7]
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

extern  BIT  _fgAbort;
  #endif

 #else    // for DECODER Firmware
// Interface functions
extern  void    SRVInit(void);
extern  void    SRVHandleTimer(void);
extern  void    SRVTrayOut(void);     // [0811 Gary] Tray Function
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);     // [0811 Gary] Tray Function
extern  void    SRVDelay20ms(BYTE);

 #define SRVDelay100ms(bValue)                          \
{                                              \
  SRVDelay20ms(bValue * 5);                    \
}

  #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   _fgHybridSACD;
extern  BIT   _fg8CMDisk;

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  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

extern  BIT  _fgAbort;

  #ifdef SUPPORT_UNFINALIZE_WITH_FILESYS // [A863.7]
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;           // [1201 Gary] 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 + -