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

📄 drv_dsp_readsubq.c

📁 ROHM 公司BU9432:application:应用范围
💻 C
字号:
/******************************************************************************/
/*	[NAME]   :Drv_DSP_ReadSUBQ.c											  */
/*	[OUTLINE]:																  */
/*	[HISTORY]:																  */
/*	[NOTE]   :TAB=4															  */
/******************************************************************************/
//#include <machine.h>  /*  Z80梡   */
#include "BU18703.h"			/*  CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include <string.h>

#include	"mcal.h"	//CPU1600 special function


/*----------------------------------------------------------------------------*/
//偙偺僼傽僀儖偺拞梡僌儘乕僶儖
/*============================================================================*/
/*	static																	  */
/*============================================================================*/
/*----------------------------------------------------------------------------*/

//S003 儅儖僠僙僢僔儑儞懳墳
/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_ReadSUBQ												  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :void  														  */
/*	[PARAMETER]:void														  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
/*void DrvDSP_ReadSUBQ( void )
{
//UINT08	i;		// SDC

	gu08_sts_Subq_valid = INVALID;

	if(gu08_scc_ServoError==2)
	{
		return;	//->SERVO_ERROR暅媽拞
	}

#if	ROM	// SDC 20050206
	if( DrvDSP_BIOS_ReadSubsyq(  ) == HIGH )
#else
	if( DrvDSP_BIOS_ReadSubsyq() )
#endif
	{
		return;	//->BAD timing.... 
	}

//YTC003 20041230 
	if( gu08_req_Jump != 0 )	// 1105 ????
	{
		return;	//-> 僕儍儞僾幚峴拞
	}

	if( gu08_intr_Subsyq != 0 )
	{	//SUBQSYNC妱崬棃偨
		gu08_intr_Subsyq = 0;

		if(gu08_sts_Jumped !=0)
		{
			gu08_sts_Jumped=0;
			return;	//-> 僕儍儞僾屻堦夞柍帇
		}

		DrvDSP_BIOS_RW_LH(  );
		if( ( DrvDSP_BIOS_GetData(  ) & 0x07 ) == 0x07 )
		{	//SERVO CONDITION OK.
			gu08_num_RecoverRetry = 0;			//
			DrvDSP_CheckError_SetTimerSUBQ(  );	//

			stSubq_bcd.ctrl_addr = DrvDSP_BIOS_GetData(  );
			if( ( ( stSubq_bcd.ctrl_addr & 0x0F ) == 0x01 ) || ( ( stSubq_bcd.ctrl_addr & 0x0F ) == 0x05 ) )
			{	//Sxxx 儅儖僠僙僢僔儑儞懳墳嵪傒丅 偁偲偱妋擣昁梫丅 捠忢嵞惗拞偵MODE5偼幾杺側偼偢丅
				if( ( gu08_sts_ReadTOC == 0 ) && ( stSubq_bcd.ctrl_addr & 0x0F ) == 0x05 )
				{	//俿俷俠撉傒崬傒拞埲奜偼MODE5晄梫丅
					DrvDSP_BIOS_RW_LH(  );	//SDC's ADVICE 20050116
					return;
				}

				for( gu08_i = 0 ; gu08_i < 9 ; gu08_i++ )
				{
					(&(stSubq_bcd.tno))[ gu08_i ] = DrvDSP_BIOS_GetData(  );
				}

				//
				if( ( gu08_sts_ReadTOC != 0 ) && stSubq_bcd.index == 0xC0 )
				{
					DrvDSP_BIOS_RW_LH(  );	//SDC's ADVICE 20050116
					gu08_sts_Subq_valid = VALID;
					return;
				}

				for( gu08_i = 0 ; gu08_i < 7 ; gu08_i++ )
				{
//					if( DrvDSP_ReadSUBQ_IsValid( (&(stSubq_bcd.min))[ gu08_i ] ) == FALSE )
//					{
						DrvDSP_BIOS_RW_LH(  );
//						return;
	//				}
				}

				for( gu08_i = 0 ; gu08_i < 9 ; gu08_i++ )
				{
					(&(stSubq_hex.tno))[ gu08_i ] = bcd2bin( (&(stSubq_bcd.tno))[ gu08_i ] );
				}

				if((stSubq_bcd.ctrl_addr & 0x0F ) == 0x01 )
				{	//MODE5偼帪娫忣曬偱偼側偄丅
					//MODE1偺帪偺傒寁嶼偡傞丅
					if(stSubq_hex.tno == 0) 
					{	// TOC area
						if(gu08_multisession !=0)
						{
//20041216					gu32_frame_atime = ( stSubq_hex.min * 60 + stSubq_hex.sec ) * 75 + stSubq_hex.frame;
							gu32_frame_atime = msf2lbn_bin( stSubq_hex.min,stSubq_hex.sec,stSubq_hex.frame);
						}
					}
					else
					{	// PROGRAM AREA 
//20041216 				gu32_frame_atime =	( stSubq_hex.amin * 60 + stSubq_hex.asec ) * 75 + stSubq_hex.aframe;
						gu32_frame_atime =	msf2lbn_bin( stSubq_hex.amin, stSubq_hex.asec, stSubq_hex.aframe);
					}
				}
				gu08_sts_Subq_valid = VALID;	//subq庢摼俷俲

//				debugio
//				DrvDSP_BIOS_AMute_Off();
//				DrvDSP_BIOS_AMute_On();

			}
		}

		DrvDSP_BIOS_RW_LH(  );
	}

	return;
}

*/
//	Sxxx Q壔偗僠僃僢僋
/*----------------------------------------------------------------------------*/
/*	[NAME]     :DrvDSP_ReadSUBQ_IsValid										  */
/*	[FUNCTION] :															  */
/*	[RETURN]   :UINT08  													  */
/*	[PARAMETER]:UINT08 subq_data											  */
/*	[HISTORY]  :															  */
/*	[NOTE]     :															  */
/*----------------------------------------------------------------------------*/
/*UINT08 DrvDSP_ReadSUBQ_IsValid( UINT08 subq_data )
{
	if( ( subq_data & 0xF0 ) > 0x90 )
	{
		return FALSE;
	}

	if( ( subq_data & 0x0F ) > 0x09 )
	{
		return FALSE;
	}

	return TRUE;
}
*/

⌨️ 快捷键说明

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