📄 drv_dsp.c
字号:
/******************************************************************************/
/* [NAME] :Drv_DSP.c */
/* [OUTLINE]: */
/* [HISTORY]: */
/* [NOTE] :TAB=4 */
/******************************************************************************/
//#include <machine.h> /* Z80梡 */
#include "BU18703.h" /* CPU儗僕僗僞掕媊 */
#include "prototype.h"
#include "extern.h"
#include "mcal.h"
#include "System.h"
#include "Parameter.h"
//UINT08 gu08_vol_temp; //060214,for eq
/*----------------------------------------------------------------------------*/
//DSP傪弶婜壔偡傞偲偙傠丅
// 俴俬俢暵偵堦夞丅
// 俢俛俛丆俤俻丆俽俼丆俤倁俼側偳搳偘捈偟暔偵偵拲堄丅
/*------------------------------------------------------------------------------
Track Jump Parameters
------------------------------------------------------------------------------*/
const UINT08 Tbl_JUMP_FF[8][3] =
{
// Jump Puls Hight Sled Kick Time Sled Puls Hight
// 0xFD 0xC0 0xFE
{ FF01_JPH, FF01_SKT, FF01_SPH }, // FF01
{ FF04_JPH, FF04_SKT, FF04_SPH }, // FF04
{ FF10_JPH, FF10_SKT, FF10_SPH }, // FF10
{ FF30_JPH, FF30_SKT, FF30_SPH }, // FF30
{ FF80_JPH, FF80_SKT, FF80_SPH }, // FF80
{ FF_LONG_JPH, FF_LONG_SKT, FF_LONG_SPH }, // LongJumpFF //YTC001 20041224
{ FF_SERACH_LOW_JPH, FF_SERACH_LOW_SKT, FF_SERACH_LOW_SPH }, // SearchJumpFF_Low
{ FF_SERACH_HIGH_JPH, FF_SERACH_HIGH_SKT, FF_SERACH_HIGH_SPH } // SearchJumpFF_High
// { FF_LONG_JPH, FF_LONG_SKT, FF_LONG_SPH } // LongJumpFF
};
const UINT08 Tbl_JUMP_FR[8][3] =
{
{ FR01_JPH, FR01_SKT, FR01_SPH }, // FR01
{ FR04_JPH, FR04_SKT, FR04_SPH }, // FR04
{ FR10_JPH, FR10_SKT, FR10_SPH }, // FR10
{ FR30_JPH, FR30_SKT, FR30_SPH }, // FR30
{ FR80_JPH, FR80_SKT, FR80_SPH }, // FR80
{ FR_LONG_JPH, FR_LONG_SKT, FR_LONG_SPH }, // LongJumpFR //YTC001 20041224
{ FR_SERACH_LOW_JPH, FR_SERACH_LOW_SKT, FR_SERACH_LOW_SPH }, // SearchJumpFR_Low
{ FR_SERACH_HIGH_JPH, FR_SERACH_HIGH_SKT, FR_SERACH_HIGH_SPH } // SearchJumpFR_High
// { FR_LONG_JPH, FR_LONG_SKT, FR_LONG_SPH } // LongJumpFR
};
const UINT08 Tbl_JUMP_WIDTH[] =
{
0x00, // JUMP_01
0x02, // JUMP_04
0x05, // JUMP_10
0x0F, // JUMP_30
0x28, // JUMP_80
0x00, // JUMP_LONG (DUMY) //YTO001 20041224
0x02, // JUMP_SEARCH_LOW
0x05 // JUMP_SEARCH_HIGH
};
//YTC003 20041230 堏摦
const UINT08 Tbl_JUMP_RATIO[8] =
{ 0x50, // 0
0x60, // 1
0x70, // 2
0x80, // 3
0x90, // 4
0xA0, // 5
0xB0 // 6
};
#if !LCD_DM
const UINT08 EQSoundDatTbl[] = {
0x00, // EQ_NORMAL
0x10, // EQ_POPS
0x20, // EQ_JAZZ
0x50, // EQ_ROCK
0x40 // EQ_CLASSIC
};
#endif
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_InitDSP */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
/*
void DrvDSP_InitDSP( void )
{
DrvDSP_BIOS_XReset(); //YTC000 弶婜壔僐儅儞僪憲傞慜偵Xreset Xreset偲DSP_INIT偼儁傾偱丅
DrvDSP_BIOS_InitCommon( );
#if 0//AC0001 ROM // SDC 20050207 壓傊堏摦
gu08_servo_status = B00000000; //FocusSearch,Adjust梡
#endif
switch( gu08_kind_VolCtrl & B00000110)
{
case B00000010: // 仜倁俼乮慡奐乯
DrvDSP_BIOS_WriteReg( 0xE1,VOLUME_INIT_HPAMP1);
break;
case B00000100:
DrvDSP_BIOS_WriteReg( 0xE1, Tbl_E1_EVR[gu08_num_Volume] ); //LID open/close懳墳
break;
// case B00000000: // 仜倁俼乮峣傝乯
default:
DrvDSP_BIOS_WriteReg( 0xE1,VOLUME_INIT_HPAMP2);
break;
}
//B0004 <---
//B0004 DrvDSP_SetBassBoost( ); //LID open/close懳墳
// 20041214 JOGGBLE <PIN29>
// 奧暵偠帪偵堦夞僠僃僢僋
#if 1//AC0001 !ROM // SDC 20050207
gu08_servo_status = 0; //B00000000; //FocusSearch,Adjust梡
#endif
gu08_PowersaveMode = gu08_kind_DRAM;
//B0004 <---
//YTC003 20041230 JUMP_HIGHT
DrvDSP_BIOS_WriteReg( 0xFC, Tbl_JUMP_RATIO[ DrvKEY_GetkeyNumber( CPU_ADC_ADR7 ) ] );
SetupDRAM( ); //
gi_ThreshSects = 32; //
// PlayList_Init( );
return;
}
*/
// =---------------------------------------------
// = 俢俼俙俵愝掕
// =---------------------------------------------
void SetupDRAM( void )
{
// gu08_kind_DRAM = 0x06; //16Mbit 16bit暆SDRAM 8bit-Use 20041214 TAP僙儗僋僩桳岠
// BU9541-BU18704-A1偱偼 6/4/A/0偺係捠傝偺傒桳岠丅
// DRAM_SIZE傕偙偙偱愝掕丅
#if 0//AC0001 ROM // SDC 20050207
switch ( gu08_kind_DRAM )
#else
switch ( gu08_kind_DRAM & 0x0C )
#endif
{
case 0x00: // 4Mbit 4bit暆EDO
//<41> case 0x01: // 4Mbit 16bit暆EDO
// gl_dram_bend = 0x0003FFFF;
gl_dram_Session_begin = ( 0x0003FFFF - 5 * 100 ) + 1; //僙僔儑儞忣曬暘傪尭嶼偡傞
#if 0//AC0001 ROM // SDC 20050207
gu08_kind_DRAM_SIZE=0; // 4M
#endif
break;
case 0x04: // 16Mbit 4bit暆EDO
//<41> case 0x05: // 16Mbit 16bit暆EDO
#if 0//AC0001 ROM // SDC 20050207
case 0x06: // 16Mbit 16bit暆SDRAM 8bit-Use
#endif
//<41> case 0x07: // 16Mbit 16bit暆SDRAM
// gl_dram_bend = 0x000FFFFF;
gl_dram_Session_begin = ( 0x000FFFFF - 5 * 100 ) + 1; //僙僔儑儞忣曬暘傪尭嶼偡傞
#if 0//AC0001 ROM // SDC 20050207
gu08_kind_DRAM_SIZE=1; // 16M
#endif
break;
#if 0//AC0001 ROM // SDC 20050207
case 0x0A: // 64Mbit 16bit暆SDRAM 8bit-Use
#else
case 0x08: // 64Mbit 16bit暆SDRAM 8bit-Use
#endif
//<41> case 0x0B: // 64Mbit 16bit暆SDRAM
// gl_dram_bend = 0x003FFFFF;
gl_dram_Session_begin = ( 0x003FFFFF - 5 * 100 ) + 1; //僙僔儑儞忣曬暘傪尭嶼偡傞
#if 0//AC0001 ROM // SDC 20050207
gu08_kind_DRAM_SIZE=2; // 16M
#endif
DrvDSP_BIOS_WriteReg( 0xB1, 0x00 ); //A12,13傪DRAM傾僪儗僗偵丅
break;
}
// gl_dram_send = (gl_dram_Session_begin - 1) - 1100; // PlayList暘傪尭嶼偡傞
// gl_dram_send = ( gl_dram_Session_begin - 1 ) - 1160; // PlayList+ProgramList暘傪尭嶼偡傞
#if 1//AC0001 LCD_DM //[dyna-DM]
gl_dram_send = ( gl_dram_Session_begin - 1 ) - (1100 + PROGRAM_MAX); // PlayList+ProgramList暘傪尭嶼偡傞
#else
/* PlayList + DirInfoSearchList + ProgramList暘傪尭嶼 */
gl_dram_send = ( gl_dram_Session_begin - 1 ) - (PLAY_LIST_SIZE + DIR_INFO_SEARCH_LIST_SIZE + PROGRAM_MAX);
#endif
gl_PlayList_begin = gl_dram_send + 1;
#if 1//AC0001 LCD_DM //[dyna-DM] FAT忣曬偺VolumeID偵忋彂偒偟偰偄傞忣曬偺曐懚梡椞堟妋曐
gu32_ProgramList_begin = gl_PlayList_begin + 1100; //ProgramList奐巒埵抲
#else //LCD_DM
gu32_DirInfoSearchList_begin = gl_PlayList_begin + PLAY_LIST_SIZE;
gu32_ProgramList_begin = gu32_DirInfoSearchList_begin + DIR_INFO_SEARCH_LIST_SIZE;
#endif //LCD_DM
DrvDSP_BIOS_WriteRegMP3( 0x50, 0x81 );
Common_Wait_ms( 1 ); //DRAM refresh start
DrvDSP_BIOS_WriteRegMP3( 0x51, 0x80 | gu08_kind_DRAM );
Common_Wait_ms( 1 ); //DARM巊梡奐巒 300兪SEC偱廩暘
return;
}
#if 0//AC0001 ROM // SDC 20050207
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_CtrlAudio */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_CtrlAudio( void )
{
}
#endif
#if 1//AC0001 !ROM // SDC 20050207
void checkPickupInEnd( void )
{
if( gu16_timer_MovePickupIn == 0 )
{
DrvDSP_MovePickupIn_End( );
}
}
#endif
//YTC001 No15 20041223
//奧傂傜偨偄傜丄僗儗僢僪堷偒崬傒巭傔傞
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_MovePickupIn */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn( void )
{
if(gu08_sts_MovePickupIn != 0)
{
switch ( gu08_sts_MovePickupIn )
{
case 1: /* */
DrvDSP_MovePickupIn1( );
break;
case 2: /* */
DrvDSP_MovePickupIn2( );
break;
case 3: /* */
DrvDSP_MovePickupIn3( );
break;
}
if(gu08_StsLid == OPEN)
{
DrvDSP_MovePickupIn_End();
}
}
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_MovePickupIn1 */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn1( void )
{
/* 僗儗僢僪僷儖僗崅偝 */
//9540 DrvDSP_BIOS_WriteReg(0xED,SPH_INIT); /* */
DrvDSP_BIOS_WriteReg( 0xFE, Tbl_SPH_INIT[gu08_Mech] ); /* */
#if 0//AC0001 ROM // SDC 20050206
if( DrvDSP_BIOS_ReadInner( ) == LOW )
{
gu16_timer_MovePickupIn = 20; /* */
/* 僩儔僢僉儞僌,僗儗僢僪 */
DrvDSP_BIOS_WriteReg( 0xC1, 0x02 ); /* OFF,嫮惂僼僅儚乕僪 */
gu08_sts_MovePickupIn = 3;
}
else
#else
if( DrvDSP_BIOS_ReadInner() )
#endif
{
gu16_timer_MovePickupIn = 800; /* */
/* 僩儔僢僉儞僌,僗儗僢僪 */
DrvDSP_BIOS_WriteReg( 0xC1, 0x03 ); /* OFF,嫮惂儕僶乕僗 */
#if 0//Ac0001 ROM // SDC 20050207
gu08_sts_MovePickupIn = 2;
#endif
}
#if 1//AC0001 !ROM // SDC 20050207
gu08_sts_MovePickupIn = 2;
#endif
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_MovePickupIn2 */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn2( void )
{
#if 0//AC0001 ROM // SDC 20050206
if( DrvDSP_BIOS_ReadInner( ) == LOW )
#else
if( !DrvDSP_BIOS_ReadInner() )
#endif
{
DrvDSP_BIOS_Tracking_Off( );
gu16_timer_MovePickupIn = 20; /* */
/* 僩儔僢僉儞僌,僗儗僢僪 */
DrvDSP_BIOS_WriteReg( 0xC1, 0x02 ); /* OFF,嫮惂僼僅儚乕僪 */
gu08_sts_MovePickupIn = 3;
}
else
{
#if 0//AC0001 ROM // SDC 20050207
if( gu16_timer_MovePickupIn == 0 )
{
DrvDSP_MovePickupIn_End( );
}
#else
checkPickupInEnd();
#endif
}
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_MovePickupIn3 */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn3( void )
{
#if 0//AC0001 ROM // SDC 20050206
if( DrvDSP_BIOS_ReadInner( ) == LOW )
#else
if( !DrvDSP_BIOS_ReadInner() )
#endif
{
#if 0//AC0001 ROM // SDC 20050207
if( gu16_timer_MovePickupIn == 0 )
{
DrvDSP_MovePickupIn_End( );
}
#else
checkPickupInEnd();
#endif
}
else
{
DrvDSP_MovePickupIn_End( );
}
return;
}
// Sxxx
// 儊僇儈儏乕僩偼偐偗偰偄側偄丅丂嵞惗拞偺僄儔乕張棟傕偁傞偟丄屇傃弌偟懁偱
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_MovePickupIn_End */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_MovePickupIn_End( void )
{
DrvDSP_BIOS_Tracking_Off( );
// Common_Wait_ms( 50 ); //YTC001 No15 20041223
gu08_sts_MovePickupIn = 0;
return;
}
/*----------------------------------------------------------------------------*/
/* [NAME] :DrvDSP_Jump */
/* [FUNCTION] : */
/* [RETURN] :void */
/* [PARAMETER]:void */
/* [HISTORY] : */
/* [NOTE] : */
/*----------------------------------------------------------------------------*/
void DrvDSP_Jump( void )
{
// UINT08 i, u08_SelectedJump;
UINT08 u08_SelectedJump;
// UINT08 Z1;
UINT08 u08_JumpParam[4][2] ={ {0xFD}, {0xCD}, {0xFE} };
#if 0//AC0001 ROM // SDC 20050208
if( gu08_req_Jump == 0 )
{ /* Jump梫媮柍偟 */
return;
}
#else
if( gu08_req_Jump )
{
#endif
#if 0//AC0001 ROM // SDC 20050208
switch ( gu08_sts_Jump )
{
case 0:
#else
if( !gu08_sts_Jump )
{
#endif
#if 0//AC0001 ROM // SDC 20050208
#if ROM // SDC 20050206
if( DrvDSP_BIOS_ReadSubsyq( ) == HIGH )
#else
if( DrvDSP_BIOS_ReadSubsyq() )
#endif
{
return;
}
#else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -