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

📄 servo_ram.h

📁 三星ic 9980的源代码. 718版.
💻 H
字号:
#ifndef  _servo_ram_h_
#define  _servo_ram_h_
#include "define.h"
#include "command.h"

typedef struct _tagNowSubqM
{
	BYTE control;
	BYTE track;
  	BYTE index;
	BYTE ZERO;
  	BYTE min;
  	BYTE sec;
  	BYTE frm;
  	BYTE amin;
  	BYTE asec;
  	BYTE afrm;
}NowSubqM;
volatile NowSubqM  SubM ;

typedef struct _tagDspFlag 
{
	BYTE	DUMMY		:3;
	BYTE       edc_err:1;
	BYTE	Buffering_f	:1;
	BYTE      Send_f		:1;
	BYTE	subq_ok_f:1;
	BYTE	clv_on_f:1;
}DspFlag;
volatile DspFlag DspF;

typedef struct _tagADJUSTFLAG
{
	BYTE	bal_first_f			:1;			
	BYTE	fservo_offset_end_f	:1;	// no use
	BYTE	fteoffset_f			:1;			
	BYTE	tesoffset_f			:1;			
	BYTE	fgain_adj_end_f		:1;		
	BYTE	offset_sign_f			:1;		
	BYTE	bal_p_f				:1;			
	BYTE	bal_n_f				:1;			
}ADJUSTFLAG;
volatile ADJUSTFLAG AdjF;

typedef struct _tagSEARCH
{
	BYTE	search_up_hold_f	:1;		
	BYTE	dir_f				:1;			
	BYTE	jump_on			:1;			
	BYTE	fastsrch_on			:1;
	BYTE       search_long               :1;   // pan 2006.05.19
	BYTE    	DUMMY				:3;
}SEARCH;    
volatile SEARCH search;	 

typedef struct _tagSERVO
{
	uint	ddt_check_first		:1;		
	uint	clv_ng				:1;			
	uint	nodisk_f				:1;			
	uint	recovery_f			:1;			
	uint	offset_adj_f			:1;			
	uint	balance_adjustment_ok:1;	
	uint	gain_adjustment_ok	:1;		
	uint	ddt_end_f			:1;			
	uint	cdrw_f				:1;			
	uint  DUMMY:7;
}SERVO;
volatile SERVO servo;

typedef struct _tagDSPtest
{
	BYTE      continue_f:1;
	BYTE      continue_check:1;
	//BYTE      Q_err_s0s1only:1;
	//BYTE      Q_err:1;
	//BYTE	dump_end:1;// no use
	//BYTE 	trans_end:1; // no use 
	BYTE	buffer_start_f:1;
	BYTE	buffer_rq_f:1;
	BYTE       DUMMY:4;
}DSPtest;
volatile DSPtest dsptest;

typedef struct 
{
     	BYTE     Dummy0                	:4;
	BYTE	Track_Num_ok		:1; 
     	BYTE     Lout_Point_ok          	:1;
      	BYTE     Last_Point_ok          	:1;
      	BYTE     First_Point_ok        	:1;
}cd_lead_mode;
volatile cd_lead_mode     CD_LEAD_MODE;   

typedef struct _tagCDROM
{
	BYTE 	DUMMY:5;
	BYTE       table_check_fail :1;
	BYTE	first_make_table:1;
	BYTE	rom_f:1;
}CDROM;
volatile CDROM cdrom;

typedef struct _tagINT_STATE 
{
	uint edc_err_f:1; 		//  31
	uint s0s1_ok_f:1;		// 30
	uint s0s1_only_f:1;  	//29
	uint cdr_sync_f:1; 	// 28
	uint ones_done_f:1;	// 27
	uint twok_done_f:1; 	// 26
  	uint send_start_f:1; 	//25
  	uint shock_intr_f:1;	 //24
  	uint c176k_f:1;    		 // 23 
  	uint adrs_done_f:1;  	// 22
  	uint Dummy3       :6;	//21 - 16
}INT_STATE;
volatile INT_STATE int_state;

typedef  struct
{
      	BYTE     Pick_Init_Mode        	:1;
     	BYTE     popnkeyin            	:1;//4 
     	BYTE 	fclosekeyin		:1;
      	BYTE     watch_flag            	:1;
	BYTE 	call_back         	:1; 
	BYTE     Dummy0   		:3;
	
}SYSTEM_FLG;                               
volatile SYSTEM_FLG	system_flg; 

typedef struct {      
      	BYTE     id_ok            	:1;
      	BYTE     ddt_ng_goto_stop            	:1;//4 
      	BYTE     seekok            	:1;
      	BYTE     ldin_area            	:1;    	
      	BYTE     spin_kick          	:1;
      	BYTE     dsp_seek_mode          :1;
	BYTE fPlayCDVD			:1; 
	BYTE PostCmd_recevied            		:1; 
}FLAG00;  
volatile FLAG00      flag00;

typedef struct 
{      
	BYTE      lok_err            	:1;
     	BYTE     l_chk            	:1;//3 
     	BYTE     fok_err            	:1;
      	BYTE     f_chk            	:1;
	BYTE     Dummy0   		:4;
}FLAG01;  
volatile FLAG01      flag01;

typedef struct {
   	BYTE 	Stop2Play      :1;
	BYTE	goto_leadin_area	:1;	
	BYTE fOpenTray		 		:1;
  	BYTE fInitTray		 		:1;
	BYTE  Mp3_read_end                 :1;   //pwc add 2006.04.26
	BYTE     Dummy0   		:3;
}HOT_FLAG;
volatile HOT_FLAG     	hot_flag;

typedef struct 
{
	BYTE     DuringSeek      		:1;
	BYTE     SeekReq         		:1;
	BYTE     WriteReq        		:1;
	BYTE     check_under_int        		:1;
	BYTE     check_over_int        		:1;
	BYTE        DUMMY:3;
}VBRCTFG0;                    
volatile VBRCTFG0     vbrctfg0;

typedef struct
{           	
	BYTE 	session_read_ok		:1;         
	BYTE 	multi_session_disc	:1;
	BYTE 	multi_next_tgtseek	:1;
	BYTE 	b0_read_ok    		:1;
	BYTE 	goto_first_session	:1;
	BYTE 	 b0_point_watch		:1;
	BYTE     first_session_leadin	:1;
	BYTE     next_session_search_timer	:1;  
}MP3_MULTI;
volatile MP3_MULTI mp3_multi; 

typedef struct 
{
	BYTE     Dummy						:5;
	BYTE     Buf_CD_f						:1;
	BYTE     CDDA_2X_f					:1;
      	BYTE     CD_TOC_ok               :1;
}CDVCDFLG;          
volatile CDVCDFLG      cdvcdflg;

volatile signed int  South_American_disc=FALSE;
volatile BYTE sector_done_2;
volatile BYTE rec_time;
volatile ulong idbuf_rec;
#if 1//USE_EDC_HISR
volatile BYTE sector_cycle;
volatile BYTE sector_count;
#endif
volatile ulong Qtime_Read=0;
volatile BYTE Cd_Mode;
#if 1//USE_EDC_HISR
volatile uint cmd92_rom_play;
volatile uint cmd92_rom_search;
#endif
volatile BYTE CD_TOC_AREA[TOC_MAX_TRACK][5];
volatile BYTE  A0_A1_A2[3][5];
#if USE_S0S1_HISR
volatile BYTE CD_SUBQCODE_80BIT_DATA[10];
#endif
volatile BYTE MessageOK ;
volatile BYTE MessageCnt;
volatile ulong duration;
volatile BYTE Match_timer;
volatile ulong WatchTimer;
volatile uint Toc_Done_Timer;
volatile BYTE Toc_retry;
volatile ulong skid;
volatile BYTE SEC_Update = 0x99;	
volatile BYTE SESSION_INFO[10][10];	
volatile BYTE EACHSESSION_TRACKINFO[10]; 
volatile BYTE CD_SESSION_DATA[10]; 	
volatile BYTE session_num;
volatile BYTE session_retry;
volatile ulong next_session_msf;
volatile BYTE endSector;
volatile BYTE Dstruct;
volatile uint  b0_wait_timer;
volatile ulong next_session_timer;
volatile BYTE RetryCnt;
volatile uint Search_cnt;
volatile ulong next_start_addr,next_end_addr;
volatile ulong next_end_addr_in_Frame;
volatile ulong TarGetID,DestID;
volatile ulong target_buffer,current_buffer;
volatile ulong StartLBA,EndLBA;
volatile ulong idbuf;
volatile ulong LastFRM;
volatile ulong LastFRM_in_frame;
volatile BYTE seek_err_cnt;
volatile ulong Start_ID;
volatile ulong Pre_sector_start_addr;
volatile ulong align_Tbuf;
volatile BYTE  udebuf[8];   
volatile BYTE  pre_cmd;
volatile BYTE TBUF1SIZE;
volatile BYTE STATUS_servo; 
volatile BYTE main_mode;
volatile BYTE sub_mode;
volatile BYTE OpMode;
volatile BYTE discid;
volatile BYTE pickupINI_mode;
volatile uint	read_data_h;
volatile uint	read_data_l;
volatile uint	read_data;
volatile BYTE last_track;
volatile BYTE first_track;
volatile BYTE total_trk_counter;
volatile ulong bal_buff;
volatile BYTE focus_NG_counter;
volatile BYTE ddt_NG_counter;
volatile ulong move_track_size;
volatile uint	tes_offset_val;
volatile uint	vref_offset;
volatile uint	ddt_temp;			
volatile uint	gerr_buff;
volatile BYTE vref;
#if GAIN_AJD_2_TIME
volatile uint	gain_buffer[2];
#else
volatile uint	gain_buffer[4];
#endif
volatile BYTE Current_Track;
volatile ulong frm_1track;
volatile ulong frm_10track;   
volatile BYTE gain_counter;
volatile uint	gain_save_buffer;
volatile uint	istat_data_h;
volatile uint	istat_data_l;
volatile uint focusfail_counter;
//volatile uint  clv_fail_counter; //pwc add2006.04.28
volatile uint  focusok_counter;
volatile BYTE FOCUS_NG_Ready;
volatile ulong Emergency_MSF;
volatile BYTE  servo_err_cnt,Clv_retry_cnt,Focus_retry_cnt;
volatile code uint track_time_table[91]=
{
	0,					// 0
        446,					// 1
        879,					// 2
        1302,					// 3
        1714,					// 4       
        2117,					// 5       
        2510,					// 6       
        2896,					// 7       
        3273,					// 8       
        3643,					// 9       
        4006,					// 10       
        4363,					// 11       
        4713,					// 12       
        5057,					// 13       
        5396,					// 14       
        5729,					// 15       
        6058,					// 16       
        6381,					// 17       
        6699,					// 18       
        7014,					// 19       
        7323,					// 20       
        7629,					// 21       
        7931,					// 22       
        8229,					// 23       
        8523,					// 24       
        8814,					// 25       
        9101,					// 26       
        9385,					// 27       
        9666,					// 28       
        9944,					// 29       
        10218, 					// 30
        10490, 					// 31  
        10759, 					// 32  
        11025, 					// 33  
        11289, 					// 34  
        11550, 					// 35  
        11809, 					// 36  
        12065, 					// 37  
        12319, 					// 38  
        12571, 					// 39  
        12820, 					// 40  
        13067, 					// 41  
        13312, 					// 42  
        13555, 					// 43  
        13796, 					// 44  
        14035, 					// 45 
        14273, 					// 46 
        14508, 					// 47 
        14741, 					// 48 
        14973, 					// 49 
        15203, 					// 50 
        15431, 					// 51 
        15658, 					// 52 
        15883, 					// 53 
        16106, 					// 54 
        16328, 					// 55 
        16548, 					// 56 
        16767, 					// 57 
        16984, 					// 58 
        17200, 					// 59 
        17415, 					// 60 
        17628, 					// 61 
        17839, 					// 62 
        18050, 					// 63  
        18259, 					// 64  
        18467, 					// 65  
        18673, 					// 66  
        18878, 					// 67  
        19082, 					// 68  
        19285, 					// 69  
        19487, 					// 70  
        19688, 					// 71  
        19887, 					// 72 
        20085, 					// 73 
        20283, 					// 74 
        20479, 					// 75 
        20674, 					// 76 
        20868, 					// 77 
        21061, 					// 78 
        21253, 					// 79 
        21444, 					// 80 
        21634, 					// 81 
        21823, 					// 82  
        22011, 					// 83  
        22198, 					// 84
        22384, 					// 85
        22570, 					// 86
        22754, 					// 87
        22938, 					// 88
        23121, 					// 89
        23302  					// 90
};    


volatile code uint SRAM_init_table_bank0[0x4c]=
{		
				        // bank 0 ADDRESS
	FE_NOR_kfi,				// 0
	FE_NOR_kf11,				// 1
	FE_NOR_kf10,				// 2
	FE_NOR_kf12,				// 3
	FE_NOR_kf13,				// 4
	FE_NOR_kf14,				// 5
	FE_NOR_kf15,				// 6
	FE_NOR_kf16,				// 7
	FE_NOR_kf18,				// 8
	FE_NOR_kf17,				// 9
	FE_NOR_kf19,				// a
	FE_NOR_nsk,				// b
	FE_NOR_kf20,				// C
	FE_NOR_kf21,				// D
	FE_DOWN_kfi,				// E
	FE_DOWN_kf11,				// F
	FE_DOWN_kf10,				// 10
	FE_DOWN_kf12,				// 11
	FE_DOWN_kf13,				// 12
	FE_DOWN_kf14,				// 13
	FE_DOWN_kf15,				// 14
	FE_DOWN_kf16,				// 15
	FE_DOWN_kf18,       			// 16
	FE_DOWN_kf17,				// 17
	FE_DOWN_kf19,       			// 18
	FE_DOWN_nsk,       			// 19
	FE_DOWN_kf20,       			// 1A
	FE_DOWN_kf21,   			// 1B
	FE_LPFNML_kf22,       			// 1C
	FE_LPFNML_kf23,				// 1D
	FE_LPFNML_kf25,       			// 1E
	FE_LPFNML_kf24,       			// 1F
	FE_LPFDOWN_kf22,       			// 20
	FE_LPFDOWN_kf23,       			// 21
	FE_LPFDOWN_kf25,       			// 22
	FE_LPFDOWN_kf24,   			// 23
	TE_NOR_kfi,       			// 24
	TE_NOR_kf11,       			// 25
	TE_NOR_kf10,       			// 26
	TE_NOR_kf12,       			// 27
	TE_NOR_kf13,				// 28      
	TE_NOR_kf14,				// 29       		
	TE_NOR_kf15,				// 2A       
	TE_NOR_kf16,				// 2B        
	TE_NOR_kf18,				// 2C        
	TE_NOR_kf17,				// 2D        
	TE_NOR_kf19,				// 2E        
	TE_NOR_nsk,				// 2F        
	TE_NOR_kf20,				// 30        
	TE_NOR_kf21,				// 31        
	TE_UP_kfi,				// 32
	TE_UP_kf11,				// 33        
	TE_UP_kf10,				// 34        		
	TE_UP_kf12,				// 35        
	TE_UP_kf13,				// 36        
	TE_UP_kf14,				// 37        
	TE_UP_kf15,				// 38        
	TE_UP_kf16,				// 39        
	TE_UP_kf18,				// 3A        
	TE_UP_kf17,				// 3B        
	TE_UP_kf19,				// 3C        
	TE_UP_nsk,				// 3D
	TE_UP_kf20,				// 3E  
	TE_UP_kf21,				// 3F  
	TE_LPFNML_kf22,				// 40  
	TE_LPFNML_kf23,				// 41  
	TE_LPFNML_kf25,				// 42  
	TE_LPFNML_kf24,				// 43  
	TE_LPFUP_kf22,				// 44  
	TE_LPFUP_kf23,				// 45  
	TE_LPFUP_kf25,				// 46  
	TE_LPFUP_kf24,				// 47  
	FE_AVRG_k0,				// 48  
	FE_AVRG_k1,				// 49  
	TE_AVRG_k0,				// 4A  
	TE_AVRG_k1				// 4B  
}; 
volatile code uint SRAM_init_table_bank1[0x33]=
{		
	// bank 1
	FE_BPF_kf0,				// 00 4c
	FE_BPF_kf1,				// 01 4d
	FE_BPF_kf2,				// 02 4e
	FE_BPF_kf3,				// 03 4f
	TE_BPF_kf0, 				// 04 50
	TE_BPF_kf1, 				// 05 51
	TE_BPF_kf2, 				// 06 52
	TE_BPF_kf3, 				// 07 53
	ATSC_BPF_kf0, 				// 08 54
	ATSC_BPF_kf1, 				// 09 55
	ATSC_BPF_kf2, 				// 0A 56
	ATSC_BPF_kf3, 				// 0B 57
	SLED_LPF_ki, 				// 0C 58
	SLED_LPF_ka, 				// 0D 59
	SLED_LPF_k2, 				// 0E 5a
	SLED_LPF_kb, 				// 0F 5b
	SLED_LPF_k3,				// 10 5c    
	SLED_LPF_nsk,			// 11 5d   
	SLED_ALIAS_k0,				// 12 5e
	SLED_ALIAS_k1,				// 13 5f
	SPD_P_LPF_ki,				// 14 60
	SPD_P_LPF_ka,				// 15 61
	SPD_P_LPF_k2,				// 16 62
	SPD_P_LPF_kb,				// 17 63
	SPD_P_LPF_k3,				// 18 64
	SPD_P_LPF_nsk,				// 19 65    
	SPD_S_LPF_ki,				// 1A 66    
	SPD_S_LPF_ka,				// 1B 67    				
	SPD_S_LPF_k2,				// 1C 68    				
	SPD_S_LPF_kb,				// 1D 69    				
	SPD_S_LPF_k3,				// 1E 6a    				
	SPD_S_LPF_nsk,				// 1F 6b    	
	SPD_P_AVRG_k0,				// 20 6c 
	SPD_P_AVRG_k1,				// 21 6d 
	SPD_S_AVRG_k0,				// 22 6e 
	SPD_S_AVRG_k1,				// 23 6f 
	TRD_AVRG_k0,				// 24 68
	TRD_AVRG_k1,				// 25 69
	TES_AVRG_k0,				// 26 6a
	TES_AVRG_k1,				// 27 6b
	VREF_AVRG_k0,				// 28 6c
	VREF_AVRG_k1,				// 29 6d
	FOD_AVRG_k0,				// 2a 6e
	FOD_AVRG_k1,				// 2b 6f
	SINE_GEN_kx,				// 2c 70
	SINE_GEN_ki,					// 2d 71
	SINE_GEN_ko,					// 2e 72
	TRD_AVRG2_k0,				// 2f 7b
	TRD_AVRG2_k1,				// 30 7c
	TZC_HPF_k0,					//31
	TZC_HPF_k1					//32
}; 
#endif

⌨️ 快捷键说明

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