📄 drv_dsp.c
字号:
if( !DrvDSP_BIOS_ReadSubsyq() )
{
#endif
/*
gu08_val_LongJump =0xFF;
for( Z1=0; Z1<16; Z1++ )
{
switch( Z1 )
{
case 0: gu08_req_Jump =(JUMP_FF | JUMP_01); break;
case 1: gu08_req_Jump =(JUMP_FF | JUMP_04); break;
case 2: gu08_req_Jump =(JUMP_FF | JUMP_10); break;
case 3: gu08_req_Jump =(JUMP_FF | JUMP_30); break;
case 4: gu08_req_Jump =(JUMP_FF | JUMP_80); break;
case 5: gu08_req_Jump =(JUMP_FF | JUMP_LONG); break;
case 6: gu08_req_Jump =(JUMP_FF | JUMP_SEARCH_LOW); break;
case 7: gu08_req_Jump =(JUMP_FF | JUMP_SEARCH_HIGH); break;
case 8: gu08_req_Jump =(JUMP_FR | JUMP_01); break;
case 9: gu08_req_Jump =(JUMP_FR | JUMP_04); break;
case 10: gu08_req_Jump =(JUMP_FR | JUMP_10); break;
case 11: gu08_req_Jump =(JUMP_FR | JUMP_30); break;
case 12: gu08_req_Jump =(JUMP_FR | JUMP_80); break;
case 13: gu08_req_Jump =(JUMP_FR | JUMP_LONG); break;
case 14: gu08_req_Jump =(JUMP_FR | JUMP_SEARCH_LOW); break;
case 15: gu08_req_Jump =(JUMP_FR | JUMP_SEARCH_HIGH); break;
}
*/
u08_SelectedJump =(gu08_req_Jump & 0x0F); // JUMP_XX
// Set Jump Vector -------------------------------------------------
u08_JumpParam[3][0] =0xC4;
if( u08_SelectedJump == JUMP_LONG )
{
// Long Jump
gu16_timer_Jump = TIME_JUMP_LONG;
#if 0//AC0001 ROM // SDC 20050208
u08_JumpParam[3][0]++; // 0xC4 -> 0xC5
#else
u08_JumpParam[3][0] = 0xC5;
#endif
u08_JumpParam[3][1] =gu08_val_LongJump; //YTC001 20041224
}
else
{
// 2N Jump
gu16_timer_Jump = TIME_JUMP;
u08_JumpParam[3][1] =Tbl_JUMP_WIDTH[u08_SelectedJump-1];
}
if( (gu08_req_Jump & 0xF0) == JUMP_FR )
{
// Jump FR
#if 0//AC0001 ROM // SDC 20050208
u08_JumpParam[3][0]++; // FF Command -> FR Command
u08_JumpParam[3][0]++;
#else
u08_JumpParam[3][0] += 2;
#endif
#if 0//AC00001 ROM // SDC 20050208
if( u08_SelectedJump==JUMP_SEARCH_LOW || u08_SelectedJump==JUMP_SEARCH_HIGH )
#else
if( u08_SelectedJump >= JUMP_SEARCH_LOW )
#endif
{
// Back Search
u08_JumpParam[3][1]++;
}
}
// Set Puls Param --------------------------------------------------
#if 0//AC0001 ROM // SDC 20050208
u08_SelectedJump--; // JUMP_XX-1
#endif
for( gu08_i=0; gu08_i<3; gu08_i++ )
{
// i= 0: JPH (0xFD), 1: SKT (0xCD), 2: SPH (0xFE)
if( (gu08_req_Jump & 0xF0) == JUMP_FF ) //YTC001 20041224 define偺 JUMP_FF,FR偵崌傢偣傞丅
{
// JUMP_FF
#if 0//AC0001 ROM // SDC 20050208
u08_JumpParam[gu08_i][1] =Tbl_JUMP_FF[u08_SelectedJump][gu08_i];
#else
u08_JumpParam[gu08_i][1] =Tbl_JUMP_FF[u08_SelectedJump-1][gu08_i];
#endif
}
else
{
// JUMP_FR
#if 0//AC0001 ROM // SDC 20050208
u08_JumpParam[gu08_i][1] =Tbl_JUMP_FR[u08_SelectedJump][gu08_i];
#else
u08_JumpParam[gu08_i][1] =Tbl_JUMP_FR[u08_SelectedJump-1][gu08_i];
#endif
}
#if 1//AC00001 !ROM // SDC 20050208
DrvDSP_BIOS_WriteReg( u08_JumpParam[gu08_i][0], u08_JumpParam[gu08_i][1] );
#endif
}
/* TEST
Z1;
}
*/
// Send Commands ---------------------------------------------------
#if 0//AC0001 ROM // SDC 20050208
for( gu08_i=0; gu08_i<4; gu08_i++ )
{
DrvDSP_BIOS_WriteReg( u08_JumpParam[gu08_i][0], u08_JumpParam[gu08_i][1] );
}
#else
DrvDSP_BIOS_WriteReg( u08_JumpParam[3][0], u08_JumpParam[3][1] );
#endif
#if 0//AC0001 CDx1
#if SPEED_X1_NORMAL
// Change CLV Rough Gain (Noraml X1 Speed)
if( gu08_kind_SPEED==0 && gu08_scc_Speed==0 )
{
DrvDSP_BIOS_WriteReg( 0x85, Tbl_CLV_ROUGH_GAIN[gu08_Mech] );
}
#endif
#endif
DrvDSP_BIOS_Clv_Rough( );
gu08_sts_Subq_valid = INVALID; //
gu08_sts_Jump = 1;
#if 0//AC0001 ROM // SDC 20050208
break;
case 1:
#else
}
}else
{
#endif
#if 0//AC0001 ROM // SDC 20050208
DrvDSP_Jump_Wait( );
#else
if( DrvDSP_BIOS_ReadBusy() || ( gu16_timer_Jump == 0 ) )
{
DrvDSP_BIOS_Tracking_On( );
DrvDSP_BIOS_Clv_On( );
if( u08_SelectedJump == JUMP_LONG )
{
gu16_timer_CheckError_SUBQ = CONST_TIME_ERROR_SUBQ_JUMP;
}
else
{
DrvDSP_CheckError_SetTimerSUBQ_Start();
}
gu08_sts_Jump = //0;
gu08_req_Jump = 0x00;
gu08_sts_Jumped = 1;
}
#endif
#if 0//AC0001 ROM // SDC 20050208
break;
default:
;
#endif
}
#if 1//AC0001 !ROM // SDC 20050208
}
#endif
return;
}
#if 0//AC0001 ROM // SDC 20050208
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_Jump_Wait */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_Jump_Wait( void )
{
#if ROM // SDC 20050206
if( ( DrvDSP_BIOS_ReadBusy( ) == HIGH ) || ( gu16_timer_Jump == 0 ) )
#else
if( DrvDSP_BIOS_ReadBusy() || ( gu16_timer_Jump == 0 ) )
#endif
{
DrvDSP_BIOS_Tracking_On( );
DrvDSP_BIOS_Clv_On( );
// YTC001 20041224 >>>
// DrvDSP_CheckError_SetTimerSUBQ_Start( );
if( (gu08_req_Jump & 0x0F) == JUMP_LONG )
{
gu16_timer_CheckError_SUBQ = CONST_TIME_ERROR_SUBQ_JUMP;
}
else
{
DrvDSP_CheckError_SetTimerSUBQ_Start();
}
//<<<
gu08_sts_Jump = 0;
gu08_req_Jump = 0x00;
//YTC001
gu08_sts_Jumped = 1;
}
return;
}
#endif
// Sxxx 俢俬俽俠僽儗乕僉張棟
// 僽儗乕僉張棟偑僗儗僢僪傕惂屼偟偰偄傞丅婥偵擖傜側偄丅
//
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_Stop */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_Stop( void )
{
switch ( gu08_sts_Stop )
{
case 1:
//YTC00C 20050115
DrvDSP_PowerSave_off40xx(); //DSP.POWER_SAVE off YTC00 20050115
#if 0//AC0001 ROM // SDC 20050205
//TEST
CDCtrl_ExecCommand[CMD_PLAY_TITLE_CD] = CDCtrl_Nop; //STOP梫媮棃偨傜丄俠俢惂屼巭傔傞
//傛偝偘丅奺惂屼儌僕儏乕儖娫偱攔懠惂屼偡傞丅
//偆乕傫丅俿俙俽俲憌偑傗傞傋偒偪傖偆偺丠
#endif
gu08_scc_ServoError = //0; //僄儔乕専弌丒廋惓掆巭
gu08_scc_TimeLag = 0; //埵抲僘儗専弌丒廋惓掆巭
if( gu08_scc_FocusSearch != 0)
{ //focus serch幚峴拞偵僽儗乕僉梫媮棃偨 ///傕偆彮偟峫偊傞丅儊儌儕乕僔僗僥儉偺偙偲傕峫偊偰
DrvDSP_BIOS_Nothing( ); //僼僅乕僇僗僒乕僠僉儍儞僙儖
gu08_scc_FocusSearch = //0; //
gu16_timer_WaitStop = 0;
#if 0//AC0001 ROM // SDC 20050208
gu08_sts_Stop = 2;
#endif
}
else
{
/* CLV Kick Hight */
DrvDSP_BIOS_WriteReg( 0x88, Tbl_SP_BREAK[gu08_Mech] ); //BRAKE 崅偝MAX
DrvDSP_BIOS_Tracking_On( ); //僕儍儞僾拞巭
//YTC003 20041231 softmute
// DrvDSP_Mute_On();
DrvDSP_Mute_Soft(); //YTC004 20050103
DrvDSP_BIOS_DownGain(); //
gu08_scc_PlayTitleCD = //0; //Sxxx 20041021 PLAY->STOP楢懪 慡懱偺峔惉巚埬拞 // SDC 20041214
gu08_req_Jump = //YTC00D 20050116
gu08_sts_Jump = //
gu08_GotoMsfSC =0; //
/* FC愊暘僎僀儞 */
DrvDSP_BIOS_WriteReg( 0x83, 0x01 );
DrvDSP_BIOS_RW_LH( ); //YTC004 20050103
if( ( DrvDSP_BIOS_GetData( ) & 0x07 ) == 0x07 ) //SERVO OK帪偺傒僽儗乕僉巊偆
{
DrvDSP_BIOS_Clv_AutoBrake( ); //Brake奐巒
}
gu16_timer_WaitStop = 400;
#if 0//AC0001 ROM // SDC 20050208
gu08_sts_Stop = 2;
#endif
}
#if 1//AC0001 !ROM // SDC 20050208
gu08_sts_Stop = 2;
#endif
break;
case 2:
#if 0//AC0001 ROM // SDC 20050206
if( DrvDSP_BIOS_ReadBusy( ) == LOW )
#else
if( !DrvDSP_BIOS_ReadBusy() )
#endif
{
if( gu16_timer_WaitStop != 0 )
{
return;
}
}
DrvDSP_BIOS_Stop( ); //Sxxx 側偵偑俽偲倫丠
DrvDSP_BIOS_Nothing( ); //Sxxx 僫僢僔儞僌偭偰壗丠
// mp3_init( ); //
// Decoder FF偺夝彍 //Sxxx 俵俹俁儌僕儏乕儖偱暵偠偰丅
mp3Reg.rcmat &= 0xEF; // RCSKE OFF;
DrvDSP_BIOS_WriteRegMP3( 0x08, mp3Reg.rcmat );
Common_Wait_ms( 1 );
//AC804 if(gu08_StsLid == OPEN)
if( (gu08_StsLid == OPEN ) || (gu08_ModeReq) ) //AC804
{
gu08_sts_Stop = 0;
}
else
{
if(gu08_sts_MovePickupIn ==0 ) //
{
gu08_sts_MovePickupIn = 1;
}
gu08_sts_Stop = 3;
}
break;
case 3:
if( gu08_sts_MovePickupIn == 0 )
{
gu08_sts_Stop = 0;
}
break;
default:
;
}
return;
}
//Sxxx 僀儞僩儘梡侾侽昩宱夁専弌
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_RenewDisplayTime2 */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_RenewDisplayTime2( void )
{
#if 0//AC0001 ROM // SDC 20050208
if( ( stSubq_hex.min == 0 ) && ( stSubq_hex.sec <= 10 ) ) //尰嵼偺惗SUBQ偱敾抐
{ //侾侽sec枹枮
gu08_sts_Intro = 0;
}
else
{ //侾侽sec宱夁偟偨
gu08_sts_Intro = 1;
}
#else
gu08_sts_Intro = 1;
if( ( stSubq_hex.min == 0 ) && ( stSubq_hex.sec <= 10 ) ) //尰嵼偺惗SUBQ偱敾抐
{ //侾侽sec枹枮
gu08_sts_Intro = 0;
}
#endif
return;
}
//==============================================================================
#if 0//AC0001 CDx1
// SDC 20041215
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_SearchFR */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_Search( void )
{
if( gu08_req_Jump != 0 )
{
return;
}
if( gu08_sts_Subq_valid == INVALID )
{
return;
}
// v. subQ庢傟偨弰夞
DrvDSP_RenewDisplayTime( );
gu32_val_TargetFrame = gu32_frame_atime;
if(( gu08_kind_SearchSpeed == LOW ) && ( gu08_kind_SearchMute == MUTE_12db )) // SDC 20041216
{ //
//Sxxx if(ROM)敳偗偰傞?
DrvDSP_BIOS_minus12dB( ); //
} //
else DrvDSP_Mute_On(); // SDC 20041217
if( gu08_kind_SearchDIR )
{ // search FR
//border check
if( gu08_hex_PlayTitle_Now == stSubq_hex.tno)
{ //摨堦僩儔僢僋撪
gu08_sts_Border = OFF;
}
else
{ //僩儔僢僋屪偄偩
gu08_sts_Border = ON; //border専弌
DrvDSP_SearchJUMP(); //傕偆堦敪偲偽偟偰偟傑偆丅壗夞傕嫬奅傪屪偑側偄傛偆偵 // SDC 20041215
}
}
if( gu08_timer_SearchInterval == 0 )
{
DrvDSP_SearchJUMP(); // SDC 20041215
}
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_SearchRelease */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_SearchRelease( void )
{
if(gu08_GotoMsfSC != 0)
{
return;
}
if( gu08_req_Jump != 0 )
{ //
gu08_sts_Jump = 0; //
gu08_req_Jump = 0; //
// return; //
} //
if( stSubq_bcd.tno == LEAD_IN )
{
DrvDSP_SearchInit( );
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -