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

📄 drv_dsp.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
📖 第 1 页 / 共 3 页
字号:
		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 + -