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

📄 global.h

📁 一个完整DVDROM代码(使用日立PICKUP)
💻 H
字号:
/*=============================================================================
* Copyright (C) 2001 Acer Labs, Inc. All Rights Reserved.
*
* File:         GLOBAL.H
*
* Contents:     -
*
* History:
*   04/18/2001  develop 5705
******************************************************************************/

//=== bit addressable variable =========
BYTE bdata              bbIntFromFirstLevel1;
BYTE bdata              bbIntFromFirstLevel2;
BYTE bdata              bbCurrentFrmType;

//bbIntFromFirstLevel1
sbit fDSPErrInt         =bbIntFromFirstLevel1^0;
sbit fTargetCompErr     =bbIntFromFirstLevel1^1;
sbit fHeadIn            =bbIntFromFirstLevel1^2;
sbit fECCErr            =bbIntFromFirstLevel1^3;
sbit fXDone             =bbIntFromFirstLevel1^4;
sbit fBufferFullInt     =bbIntFromFirstLevel1^5;
sbit fPktCmdInt         =bbIntFromFirstLevel1^6;
sbit fATACmdInt         =bbIntFromFirstLevel1^7;

//bbIntFromFirstLevel2
sbit fCDIRQInt          =bbIntFromFirstLevel2^0;
sbit fHIInt             =bbIntFromFirstLevel2^1;
sbit fHIAuthInt         =bbIntFromFirstLevel2^2;
sbit fOtherInt          =bbIntFromFirstLevel2^3;
sbit fEDCErrInt         =bbIntFromFirstLevel2^4;

//bfCurrentFrmType
sbit fMode1Frm          =bbCurrentFrmType^0;
sbit fMode2Frm          =bbCurrentFrmType^1;
sbit fAudioFrm          =bbCurrentFrmType^2;
sbit fCDIFrm            =bbCurrentFrmType^3;
sbit fCDRW              =bbCurrentFrmType^4;
sbit fCDDisc            =bbCurrentFrmType^5;
sbit fDVDDual           =bbCurrentFrmType^6;
sbit fDVDDisc           =bbCurrentFrmType^7;

//=== array & table ====================
DWORD code MinFrame[] = {
      0,   4500,   9000,  13500,  18000,  22500,  27000,  31500,//0-7
  36000,  40500,  45000,  49500,  54000,  58500,  63000,  67500,//8-15
  72000,  76500,  81000,  85500,  90000,  94500,  99000, 103500,//16-23
 108000, 112500, 117000, 121500, 126000, 130500, 135000, 139500,//24-31
 144000, 148500, 153000, 157500, 162000, 166500, 171000, 175500,//32-39
 180000, 184500, 189000, 193500, 198000, 202500, 207000, 211500,//40-47
 216000, 220500, 225000, 229500, 234000, 238500, 243000, 247500,//48-55
 252000, 256500, 261000, 265500, 270000, 274500, 279000, 283500,//56-63
 288000, 292500, 297000, 301500, 306000, 310500, 315000, 319500,//64-71
 324000, 328500, 333000, 337500, 342000, 346500, 351000, 355500,//72-79
 360000, 364500, 369000, 373500, 378000, 382500, 387000, 391500,//80-87
 396000, 400500, 405000, 409500, 414000, 418500, 423000, 427500,//88-95
 432000, 436500, 441000, 445500                                 //96-99
};

WORD code SecFrame[] = {
    0,   75,  150,  225,  300,  375,  450,  525,  600,  675,  750,
  825,  900,  975, 1050, 1125, 1200, 1275, 1350, 1425, 1500, 1575,
 1650, 1725, 1800, 1875, 1950, 2025, 2100, 2175, 2250, 2325, 2400,
 2475, 2550, 2625, 2700, 2775, 2850, 2925, 3000, 3075, 3150, 3225,
 3300, 3375, 3450, 3525, 3600, 3675, 3750, 3825, 3900, 3975, 4050,
 4125, 4200, 4275, 4350, 4425
};

BYTE code DivMin[] = {
   0,   0,   1,   2,   3,   4,   5,   6,   7,   8,
   9,  10,  10,  11,  12,  13,  14,  15,  16,  17,
  18,  19,  20,  20,  21,  22,  23,  24,  25,  26,
  27,  28,  29,  30,  30,  31,  32,  33,  34,  35,
  36,  37,  38,  39,  40,  40,  41,  42,  43,  44,
  45,  46,  47,  48,  49,  50,  50,  51,  52,  53,
  54,  55,  56,  57,  58,  59,  60,  60,  61,  62,
  63,  64,  65,  66,  67,  68,  69,  70,  70,  71,
  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,
  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,
  91,  91,  92,  93,  94,  95,  96,  97,  98,  99
};

BYTE code DivSec[] = {
   0,   0,   1,   2,   3,   4,   5,   5,   6,   7,
   8,   9,  10,  11,  11,  12,  13,  14,  15,  16,
  17,  17,  18,  19,  20,  21,  22,  23,  23,  24,
  25,  26,  27,  28,  29,  29,  30,  31,  32,  33,
  34,  34,  35,  36,  37,  38,  39,  40,  40,  41,
  42,  43,  44,  45,  46,  46,  47,  48,  49,  50,
  51,  52,  52,  53,  54,  55,  56,  57,  58,  58,
  59,  59
};

//=== structure & union ================
UNION_STORE             STORE;
UNION_XLENGTH idata     UXL;
UNION_ALBA idata        UALBA;
UNION_TEMP_WORD idata   UTempWord;
Q_TYPE idata            Q;
//1906a02j TIME idata              Ending;
TIME idata              Target;
TIME idata              Current;

//=== do not change the order ==========
WORD idata              iwIdleTimer;    //first timer
WORD idata              iwSpeedTimer;
WORD idata              iwStsTimer;
WORD idata              iwHostCmdTimer;
BYTE idata              ibServoTimer;   //boundary
BYTE idata              ibServoSubTimer;
BYTE idata              ibRdQTimer;
BYTE idata              ibSeekTimer;
BYTE idata              ibDSPCmdTimer;
BYTE idata              ibDecoderTimer;
BYTE idata              ibLEDTimer;     //last timer
//=== do not change the order ==========


extern bit          LED;
extern bit          EJ_KEY;


//1906a02j
sbit fRuninJ        =P1^7;      
//sbit DiscInSW         =P1^5;  //p1.5 

sbit SW1		=P1^0;
sbit SW2		=P1^4;
sbit SW3		=P1^3;
//sbit TrayInSW       =P1^3;
//sbit TrayOutSW      =P1^4;
sbit SLED_SW        =P1^6;

sbit TP0            =P3^0;
sbit TP1            =P3^1;
sbit TP2            =P3^3;
sbit TP3            =P3^5;

//======================================
DWORD idata     ilLeadOut;
DWORD idata     ilBuffStartALBA;
DWORD idata     ilMiddle;
DWORD idata     ilLastID;

WORD idata      iwMaxTOCCount;
WORD idata      iwSectorLength;
WORD idata      iwTrackNumber;
WORD idata      iwTotalSector;
WORD idata      iwLastHIPtr;
WORD idata      iwMaxSector;
WORD idata      iwErrorRate;

BYTE data       bCommandPacket[12];
BYTE data       bTargetErrTimes;
BYTE data       bECCErrTimes;
BYTE data       bRetryTimes;
BYTE data       bTempIntErr;
BYTE data       bBOFPhase;
BYTE data       bBOFCount;

BYTE data       bPStatus;
BYTE data       bDecoderState;
BYTE data       bServoState;
BYTE data       bASUState;
BYTE data       bASKState;
BYTE data       bPhase;
BYTE data       bSubPhase;
BYTE data       bSUPhase;
BYTE data       bSUSubPhase;
BYTE data       bSKPhase;
BYTE data       bSKSubPhase;
BYTE data       bRdQPhase;
BYTE data       bReseekFlowNo;
BYTE data       bStateFlowNo;

//1906a02j BYTE idata      ibAGIDRegion;
BYTE idata      ibDiscRegion;
BYTE idata      ibMFTRegion;
BYTE idata      ibMediaEvent;
BYTE idata      ibReadDVDStructureType;
#ifdef BANKMODE //1906a02j
    BYTE idata      ibTempIE;
#endif          //1906a02j
BYTE idata      ibRecordTOCFlag;
BYTE idata      ibTrackToPlay;
BYTE idata      ibCurrentSpeed;
BYTE idata      ibAGID;
BYTE idata      ibUsingAGID;
BYTE idata      ibKeyFormat;
BYTE idata      ibDVDReadReqOffset;
BYTE idata      ibBufferFullMissTargetCounter;
BYTE idata      ibExpSectorType;
BYTE idata      ibXType;
BYTE idata      ibSubChannalBit;
BYTE idata      ibErrData[16];
BYTE idata      ibErrIndex;
BYTE idata      ibPIPOType;
BYTE idata      ibCTOffset;
BYTE idata      ibCBR;
//R1606_COM_05 BYTE idata      ibTRCR;
//R1606_COM_05 BYTE idata      ibTRCR_1;
BYTE idata      ibDelta_0;//R1606_COM_05 
BYTE idata      ibDelta_1;//R1606_COM_05
BYTE idata      ibFTGR;
BYTE idata      ibFTGR_1;
BYTE idata      ibASL;
BYTE idata      ibASL_1;
BYTE idata      ibSeekOffset;
BYTE idata      ibLongJumpErr;
BYTE idata      ibFirstSessionLastTrack;
BYTE idata      ibXferCount;
BYTE idata      ibCheckA0;
//BYTE idata	    ibUpSpeedCnt; //R1606_COM_06



bit             fSaveNum;
bit             fSBvsSH;
bit             fLongJump;
bit             fJumpTrack;
bit             fJumpLayer;
bit             fFormBit;
bit             fS0,fS1;
bit             fDir;
bit             fOTPType;
bit             fCurrentLayer;
bit             fLayerNumber;
bit             fTOC;
bit             fB0Found;
bit             fNextB0;
bit             fSearchB0;
bit             fDiscKeyOK;
bit             fDMA;
bit             fUDMA;
bit             fPreAllow;
bit             fUnitAttention;
bit             fPowerOnUnitAttention;
bit             fRead10Exed;
bit             fReadCDExed;
bit             fASFErr;
bit             fKey2Err;
bit             fTitleKeyErr;
bit             fPlayFail;
bit             fTrayDir;
bit             fTrayFail;
bit             fEjectPressed;
bit             fLEDToggle;
bit             fBufferFull;
bit             fDSPErr;
bit             fEDCErr;
bit             fCDIRQ;
bit             fLastID;
bit             fAutoAdj;
bit             fChkHead;
bit             fDisRdQ;
bit             fTuneASL;
bit             fTuneFTGR;
bit             fChgASL;
bit             fMultiSession;
bit             fServoDieFlag;
bit             fNoSledHome;
bit             fNewID;
bit             fTurnErrDir;
bit             fTuneErrhaverun;
bit             fMaster;
bit             fCheckFlashCD=1;       //1911a01j
bit             fDisSleep;
bit             fChkLeadIn;
bit             fSectorDataReady;
//bit			   fMediaChange; //R1719_Tohei_01
bit			   fMiniDisc=0;  //R1719_Tohei_01
bit				fDiscWait=0;
bit				fPowerOnI=1;
bit 			fNeedDiscOut=0;
//1906a02j bit             fOldDiscInSW;            //R1719_Tohei_01
//1906a02j bit             fOldTrayOutSW;           //R1719_Tohei_01 
//R1606_COM_05 bit             fChkMaskEN;

DWORD idata ioldLastID;//R1703_COM_02
bit fCHKID;//R1703_COM_02
BYTE idata ibCER;                        //R1726_H1120_01 
BYTE idata ibCER_1;                      //R1726_H1120_01 
bit fDVDPlusRW=0;                        //R1726_COM_01
bit fDVCDDisc;                           //R1808_COM_01
BYTE idata  ibSDRAM16M=0;                         //1828a01j                                                                                       
bit         fFlashCD=0;//1911a01j
bit         fTrayInSPBRK;//1912a01j
bit         fSB;//1912a01j
//bit 		fDiscError;

⌨️ 快捷键说明

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