📄 drv_dsp_error.c
字号:
/******************************************************************************/
/* [NAME] :Drv_DSP_Error.c */
/* [OUTLINE]: */
/* [HISTORY]: */
/* [NOTE] :TAB=4 */
/******************************************************************************/
//#include <machine.h> /* Z80梡 */
#include "BU18703.h" /* CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include <string.h>
/*----------------------------------------------------------------------------*/
//偙偺僼傽僀儖偺拞梡僌儘乕僶儖
/*============================================================================*/
/* static */
/*============================================================================*/
/*----------------------------------------------------------------------------*/
//Sxxx 20041101 SAHAIversion
// 偡偭偒傝丅専弌晹偲暅婣晹傪暘棧丅偟偐傕攔懠丅
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_TimeLag */
/* [FUNCTION] : */
/* [RETURN] :UINT08 */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_TimeLag( void )
{
switch(gu08_scc_TimeLag)
{
// case 0:
// //梫媮柍偟乮亖僠僃僢僋偱偒傞忬懺偱偼側偄乯
// break;
case 1:
DrvDSP_CheckTimeLag(); //僘儗僠僃僢僋幚巤
break;
case 2:
DrvDSP_WaitTimeLag(); //僘儗桳傝丅廋惓梫媮懸偪
break;
case 3:
DrvDSP_RecoverTimeLag(); //僘儗廋惓幚巤
break;
}
}
//==============================================================================
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_CheckTimeLag */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_CheckTimeLag( void )
{ //僘儗専弌張棟
#if 0 //[dyna041225]
if(( gu08_scc_Search != 0 )||( gu08_sts_SearchRelease != 0 ))
{ //SERCH張棟幚峴拞偼帪娫嵎僠僃僢僋偟側偄
}
else
#else
if(( gu08_scc_Search == 0 ) && ( gu08_sts_SearchRelease == 0 ))
#endif
{
if( gu08_sts_Subq_valid == VALID )
{ //subQ庢傟偨弰夞
//帪娫嵎傪僠僃僢僋
if(( stSubq_bcd.tno == LEAD_IN )||( gu32_frame_atime < gu32_val_TargetFrame )||((gu32_frame_atime - gu32_val_TargetFrame) >20))
{ //TNO==00偵偄傞丅 //栠偭偰偄傞 //峴偒偡偓
//僘儗専弌丅儕僇僶儕乕偵擖傞
//俤俽俹嶌傞偲偒偵廋惓昁梫丅
gu08_GotoMsfSC=1;
gu08_scc_TimeLag = 3;
gu08_sts_DISPLAY = 0; //DISABLE
DrvDSP_Mute_On();
}
else
{ //僘儗柍偟丅尰嵼帪娫傪婰壇
gu32_val_TargetFrame = gu32_frame_atime;
}
}
}
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_WaitTimeLag */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_WaitTimeLag( void )
{ //僘儗廋惓梫
gu08_GotoMsfSC=1;
gu08_scc_TimeLag = 3;
gu08_sts_DISPLAY = 0; //DISABLE
}
//僘儗廔椆懸偪
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_RecoverTimeLag */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_RecoverTimeLag( void )
{ //僘儗廋惓張棟
if(gu08_GotoMsfSC==0)
{ //僘儗廋惓偺傾僋僙僗姰椆
gu08_scc_TimeLag = 1; //専弌儌乕僪傊丅
gu08_sts_DISPLAY = 1; //昞帵 enable
//if(!CDROM)丂敾抐傪捛壛偡傞偙偲
if( gu08_scc_Pause | gu08_sts_PauseRelease
| gu08_scc_Search | gu08_sts_SearchRelease )
{
return; //-> pause
}
// v. PLAY
DrvDSP_Mute_Off();
}
return;
}
//==============================================================================
#if ERR_DETECT // SDC 20041218
//UINT08 c1_sts;
/*----------------------------------------------------------------------------*/
/* [NAME] :RecoverRetryInc */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void RecoverRetryInc( void )
{
// c1_sts = DrvDSP_BIOS_ReadRegMP3( 0xC1 );
if( toc_f &&
//YTC TEST (( stInfoArea.PlayType == TYPE_ESP ) && get_mp3reg_zanryo() ) || // SDC 20041223
(( stInfoArea.PlayType == TYPE_ESP ) && (( gu08_sccd_ESPctrl != 0) && (get_mp3reg_zanryo()!=0))) || //YTC A2X 20050311 No.31
// (( stInfoArea.PlayType == TYPE_MP3 ) && !( DrvDSP_BIOS_ReadRegMP3( 0xC1 ) & 0x02 )))
(( stInfoArea.PlayType == TYPE_MP3 ) && !( DrvDSP_BIOS_ReadRegMP3( 0xC1 ) & 0x80 ))) // SDC 20050114 No.407
{
gu08_num_RecoverRetry = 1; // 巆検柍偔側偭偰偐傜僇僂儞僩偡傞
// 扐偟丄弶夞(=0)偼摿暿張棟偺堊丄侾傪僙僢僩偡傞
}else
{
gu08_num_RecoverRetry++;
gu08_sts_DISPLAY = 0; // 昞帵嬛巭
DrvDSP_Mute_On();
//YTC00G trap
if( gu08_scc_PlayTitle != 9)
{
gu08_sts_DISPLAY = 0; // 昞帵嬛巭
}
}
}
#endif
//Sxxx 僒乕儃偺僄儔乕専弌乛暅婣
// 専弌偲暅婣偼摉慠攔懠丅
// 埵抲僘儗傛傝桪愭搙崅偄乮僒乕儃偐偐偭偰偄側偗傟偽僘儗廋惓傕弌棃側偄乯
// 搊応恖暔
// gu08_scc_ServoError 侽丗NoWork 侾:DETECT 俀:RECOVER 偙傟偱専弌丒暅婣偑攔懠偵側傞
// gu08_sts_Error 専弌偟偨僄儔乕偺庬椶 0:柍偟 1:FOK 2:subQ (3:RF)
// gu08_sccs_RecoverError 儕僇僶儕乕梡俽俠俠
// gu08_num_RecoverRetry 儕僩儔僀僇僂儞僞
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_ServoError */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_ServoError()
{
switch(gu08_scc_ServoError)
{
case 1:
DrvDSP_CheckServoError(); //僒乕儃僄儔乕僠僃僢僋幚巤
break;
case 2:
DrvDSP_RecoverServoError(); //僒乕儃僄儔乕暅媽
break;
}
return;
}
//Sxxx 僄儔乕傪専弌偡傞偲偙傠丅
// 彨棃偼俼俥挘傝晅偒傕専弌偟偰丄媡揮杊巭傕峴偆丅
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_CheckServoError */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_CheckServoError() //僒乕儃僄儔乕僠僃僢僋幚巤
{
UINT08 dsp_sts;
// 擖傝岥僠僃僢僋
if( gu08_sts_MovePickupIn | // ->Pickup撪廃堏摦拞
gu08_sts_AdjustAuto ) //->帺摦挷惍拞
{
return;
}
// 僒乕儃僐儞僨傿僔儑儞僠僃僢僋
dsp_sts = DrvDSP_BIOS_GetStatus( );
if(( dsp_sts & B00100010 ) == 0 )
{ // F_LOOPON=L and Fok=L ... 僼僅乕僇僗僟僂儞傪専弌偟偨
// YTC005 20050104 >>>
// DrvDSP_BIOS_Nothing( ); //
// DrvDSP_BIOS_MMute2_On( );
DrvDSP_BIOS_Focus_Off( );
// <<<
gu08_sts_Error = ERROR_FOK; // = 1
}else if( gu16_timer_CheckError_SUBQ == 0 ) // ReadSUBQ偱儕僼儗僢僔儏偡傞丅
{ // SUBQ
gu08_sts_Error = ERROR_SUBQ; // = 2
}else return;
DrvDSP_BIOS_Tracking_Off( ); //
gu08_scc_ServoError=2; // 暅媽儌乕僪傊
gu08_sccs_RecoverError=0; //
return;
}
//暅媽張棟
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_RecoverServoError */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_RecoverServoError() //僒乕儃僄儔乕暅媽
{
switch ( gu08_sccs_RecoverError )
{
case 0:
DrvDSP_RecoverError0( ); //SCC9.0憡摉
break;
case 1:
DrvDSP_RecoverError1( ); //SCC9.1憡摉
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -