www.pudn.com > bak22.rar > PLAY.INC, change:2006-05-30,size:11196b


.define MOUDLE_DVR1600 
//.define MOUDLE_S530 
.define MOUDLE_MS01 
 
.DEFINE BASE_SOUND_ADDR      0x8026 
.DEFINE SOUND_A20            0x0000 
.DEFINE SOUND_S480           0x0001 
.DEFINE SOUND_S720           0x0002 
.DEFINE SOUND_MS01           0x0003 
.DEFINE SOUND_A1600          0x0004 
.DEFINE SOUND_MS02           0x0005 
.DEFINE SOUND_S200           0x0006 
.DEFINE SOUND_S530           0x0007 
.DEFINE MAX_SOUND_TYPE       0x0008 
.DEFINE SACM_IDLE            0 
.DEFINE SACM_PLAY            1 
.DEFINE SACM_PLAYBACK        2 
.DEFINE SACM_RECORD          3 
.DEFINE MANUAL               0 
.DEFINE AUTO                 1 
 
.DEFINE RceMonitorOff        0 
.DEFINE RceMonitorOn         1 
 
//.DEFINE RecPrecisionConvertBit     0x0002 
//.DEFINE RecPrecisionConvertBit_    0xfffd 
.DEFINE RecCutEndFrameBit          0x0004 
.DEFINE RecCutEndFrameBit_         0xfffb 
.DEFINE PlayInternalSound          0x0008 
.DEFINE PlayInternalSound_         0xfff7 
.DEFINE C_RampDelay          120 
.DEFINE C_Fosc_49M           0x0080 
//.DEFINE C_Fosc_41M           0x0060 
//.DEFINE C_Fosc_33M           0x0040 
//.DEFINE C_Fosc_20M           0x0020     // (default) 
//.DEFINE C_Fosc_24M           0x0000 
.DEFINE C_SystemClock2         C_Fosc_49M 
 
 
//.DEFINE C_Timer_Setting_8K_For_24MHz     0xF9FF 
//.DEFINE C_Timer_Setting_9K_For_24MHz     0xFAAA 
//.DEFINE C_Timer_Setting_10K_For_24MHz    0xFB33 
//.DEFINE C_Timer_Setting_11K_For_24MHz    0xFBA2 
//.DEFINE C_Timer_Setting_12K_For_24MHz    0xFBFF 
//.DEFINE C_Timer_Setting_13K_For_24MHz    0xFC4E 
//.DEFINE C_Timer_Setting_14K_For_24MHz    0xFC92 
//.DEFINE C_Timer_Setting_15K_For_24MHz    0xFCCC 
//.DEFINE C_Timer_Setting_16K_For_24MHz    0xFCFF 
//.DEFINE C_Timer_Setting_17K_For_24MHz    0xFD2D 
//.DEFINE C_Timer_Setting_18K_For_24MHz    0xFD55 
//.DEFINE C_Timer_Setting_20K_For_24MHz    0xFD98 
//.DEFINE C_Timer_Setting_24K_For_24MHz    0xFDFF 
//.DEFINE C_Timer_Setting_28K_For_24MHz    0xFE48 
//.DEFINE C_Timer_Setting_32K_For_24MHz    0xFE80 
 
//.DEFINE C_Timer_Setting_8000_For_24MHz   0xF9FF 
//.DEFINE C_Timer_Setting_9000_For_24MHz   0xFAAA 
//.DEFINE C_Timer_Setting_10000_For_24MHz  0xFB33 
//.DEFINE C_Timer_Setting_11000_For_24MHz  0xFBA2 
//.DEFINE C_Timer_Setting_12000_For_24MHz  0xFBFF 
//.DEFINE C_Timer_Setting_12500_For_24MHz  0xFC29 
//.DEFINE C_Timer_Setting_13000_For_24MHz  0xFC4E 
//.DEFINE C_Timer_Setting_13500_For_24MHz  0xFC72 
//.DEFINE C_Timer_Setting_14000_For_24MHz  0xFC92 
//.DEFINE C_Timer_Setting_14400_For_24MHz  0xFCAB 
//.DEFINE C_Timer_Setting_14500_For_24MHz  0xFCB0 
//.DEFINE C_Timer_Setting_14800_For_24MHz  0xFCC2 
//.DEFINE C_Timer_Setting_15000_For_24MHz  0xFCCC 
//.DEFINE C_Timer_Setting_15200_For_24MHz  0xFCDB 
//.DEFINE C_Timer_Setting_15500_For_24MHz  0xFCE7 
//.DEFINE C_Timer_Setting_15600_For_24MHz  0xFCED 
 
//.DEFINE C_Timer_Setting_16000_For_24MHz  0xFCFF 
//.DEFINE C_Timer_Setting_17000_For_24MHz  0xFD2D 
 
//.DEFINE C_Timer_Setting_18000_For_24MHz  0xFD55 
 
 
//-(0x10000-0x400*24000/n)-1 
.DEFINE C_Timer_Setting_12500_For_49MHz  0xF851 
.DEFINE C_Timer_Setting_13000_For_49MHz  0xF89D 
.DEFINE C_Timer_Setting_13500_For_49MHz  0xF8E3 
.DEFINE C_Timer_Setting_14500_For_49MHz  0xF961 
.DEFINE C_Timer_Setting_15000_For_49MHz  0xF999 
.DEFINE C_Timer_Setting_15625_For_49MHz  0xF9DB 
 
.DEFINE C_Timer_Setting_16000_For_49MHz  0xFA00 
 
.DEFINE C_Timer_Setting_16250_For_49MHz  0xFA17 
.DEFINE C_Timer_Setting_16875_For_49MHz  0xFA4F 
.DEFINE C_Timer_Setting_17000_For_49MHz  0xFA5A 
.DEFINE C_Timer_Setting_17227_For_49MHz  0xFA6C 
.DEFINE C_Timer_Setting_17915_For_49MHz  0xFAA3 
.DEFINE C_Timer_Setting_18000_For_49MHz  0xFAAA 
.DEFINE C_Timer_Setting_18125_For_49MHz  0xFAB4 
.DEFINE C_Timer_Setting_18605_For_49MHz  0xFAD6 
.DEFINE C_Timer_Setting_18750_For_49MHz  0xFAE1 
.DEFINE C_Timer_Setting_19500_For_49MHz  0xFB13 
.DEFINE C_Timer_Setting_19983_For_49MHz  0xFB31 
.DEFINE C_Timer_Setting_20000_For_49MHz  0xFB33 
.DEFINE C_Timer_Setting_20250_For_49MHz  0xFB42 
.DEFINE C_Timer_Setting_20671_For_49MHz  0xFB5A 
.DEFINE C_Timer_Setting_21250_For_49MHz  0xFB7B 
.DEFINE C_Timer_Setting_21750_For_49MHz  0xFB96 
//.DEFINE C_Timer_Setting_22050_For_49MHz  0xFBFF 
.DEFINE C_Timer_Setting_22050_For_49MHz  0xFBA6 
.DEFINE C_Timer_Setting_22500_For_49MHz  0xFBBB 
.DEFINE C_Timer_Setting_23428_For_49MHz  0xFBE6 
.DEFINE C_Timer_Setting_24000_For_49MHz  0xFBFF 
.DEFINE C_Timer_Setting_24806_For_49MHz  0xFC20 
.DEFINE C_Timer_Setting_25000_For_49MHz  0xFC28 
.DEFINE C_Timer_Setting_25500_For_49MHz  0xFC3C 
.DEFINE C_Timer_Setting_26000_For_49MHz  0xFC4E 
.DEFINE C_Timer_Setting_27000_For_49MHz  0xFC71 
.DEFINE C_Timer_Setting_29000_For_49MHz  0xFCB0 
.DEFINE C_Timer_Setting_30000_For_49MHz  0xFCCC 
.DEFINE C_Timer_Setting_32000_For_49MHz  0xFCFF 
.DEFINE C_Timer_Setting_34000_For_49MHz  0xFD2D 
.DEFINE C_Timer_Setting_36000_For_49MHz  0xFD55 
.DEFINE C_Timer_Setting_44100_For_49MHz  0xFDD2 
 
 
.DEFINE C_Timer_Setting_8K_For_49MHz     0xF3FF 
.DEFINE C_Timer_Setting_9K_For_49MHz     0xF555 
.DEFINE C_Timer_Setting_10K_For_49MHz    0xF666 
.DEFINE C_Timer_Setting_11K_For_49MHz    0xF745 
.DEFINE C_Timer_Setting_12K_For_49MHz    0xF7FF 
.DEFINE C_Timer_Setting_16K_For_49MHz    0xF9FF 
.DEFINE C_Timer_Setting_24K_For_49MHz    0xFBFF 
.DEFINE C_Timer_Setting_32K_For_49MHz    0xFCFF 
.DEFINE C_MS01_Timer_Setting             C_Timer_Setting_16K_For_49MHz 
.DEFINE C_DVR_Rec_Timer_Setting          C_Timer_Setting_32000_For_49MHz 
.DEFINE C_A1600_Timer_Setting            C_Timer_Setting_16000_For_49MHz 
 
.DEFINE C_IRQ6_TMB2             0x0001;     //TMB2 IRQ6 
.DEFINE C_IRQ6_TMB1             0x0002;     //TMB1 IRQ6 
.DEFINE C_IRQ5_2Hz              0x0004;     //2Hz IRQ5 
.DEFINE C_IRQ5_4Hz              0x0008;     //4Hz IRQ5 
.DEFINE C_IRQ4_1KHz            	0x0010;     //1024Hz IRQ4 
.DEFINE C_IRQ4_2KHz            	0x0020;     //2048 IRQ4 
.DEFINE C_IRQ4_4KHz            	0x0040;     //4096 IRQ4 
.DEFINE C_IRQ3_KEY              0x0080;     //Key Change IRQ3 
.DEFINE C_IRQ3_Ext1             0x0100;     //Ext1 IRQ3 
.DEFINE C_IRQ3_Ext2             0x0200;     //Ext2 IRQ3 
.DEFINE C_IRQ2_TMB            	0x0400;     //Timer B IRQ2 
.DEFINE C_FIQ_TMB               0x0800;     //Timer B FIQ 
.DEFINE C_IRQ1_TMA            	0x1000;     //Timer A IRQ1 
.DEFINE C_FIQ_TMA               0x2000;     //Timer A FIQ 
.DEFINE C_IRQ0_PWM              0x4000;     //PWM IRQ0 
.DEFINE C_FIQ_PWM               0x8000;     //PWM FIQ 
 
//.DEFINE PORTA_INPUT            0101000000001100B  // 0000000000001100B    //0111111100000000B 
//.DEFINE PORTA_OUTPUT           0101111111111100B  // 0000111111111100B    //0111111111111111B 
 
 
.define BIT_RATE_10K            0 
.define BIT_RATE_12K            1 
.define BIT_RATE_14K            2 
.define BIT_RATE_16K            3 
.define BIT_RATE_20K            4 
.define BIT_RATE_24K        		5 
 
.DEFINE DVR1600_1600            0 
.DEFINE DVR1600_DVR             1 
 
.DEFINE KeyRecCutTime           576 
 
////////////////////////////////////////////////////////////////// 
// Define Area for I/O									 
////////////////////////////////////////////////////////////////// 
//PortA,PortB contain some special functions 
P_IOA_Data:			.VDEF  0x7000;		// Write Data into data register and read from IOA pad 
P_IOA_Buffer:   	.VDEF  0x7001;		// Write Data into buffer register and read from buffer register 
P_IOA_Dir:      	.VDEF  0x7002;     // Direction vector for IOA 
P_IOA_Attrib:   	.VDEF  0x7003;     // Attribute vector for IOA 
P_IOA_Latch:		.VDEF  0x7004;     // Latch PortA data for key change wake-up 
 
P_IOB_Data:         .VDEF  0x7005      // Write Data into the data register and read from IOB pad 
P_IOB_Buffer:       .VDEF  0x7006      // Write Data into buffer register and read from buffer register 
P_IOB_Dir:          .VDEF  0x7007      // Direction vector for IOB 
P_IOB_Attrib:       .VDEF  0x7008  	// Attribute vector for IOB 
 
P_FeedBack:     	.VDEF  0x7009;     // Clock form external R,C 
P_TimerA_Data:  	.VDEF  0x700A;     // Data port for TimerA  
P_TimerA_Ctrl:  	.VDEF  0x700B;     // Control Port for TimerA 
P_TimerB_Data:  	.VDEF  0x700C;     // Data port for TimerB 
P_TimerB_Ctrl:  	.VDEF  0x700D;     // Control Port for TimerB 
P_TimeBase_Setup:  	.VDEF  0x700E;     // TimerBase Freq. Set 
P_TimeBase_Clear:  	.VDEF  0x700F;   	// Reset Timerbase counter 
P_INT_Ctrl:     	.VDEF  0x7010;     // for read INT flag(R) 
P_INT_Clear:      .VDEF  0x7011;     // Clear interrupt source 
P_Watchdog_Clear:   .VDEF  0x7012;     // Watchdog Reset 
P_SystemClock:      .VDEF  0x7013;     // Change system clock frequency(include go to standby mode) 
 
P_ADC: 	        	.VDEF  0x7014;     // Data Port for AD 
P_ADC_Ctrl:    		.VDEF  0x7015;     // Control Port for AD control 
P_ADC_Status:   	.VDEF  0x7015;     // AD Port Status 
P_DAC2:         	.VDEF  0x7016;     // Data Port for DAC2 
P_PWM:          	.VDEF  0x7016;     // Data Port for PWM 
P_DAC1:	        	.VDEF  0x7017;     // Data Port for DAC1 
P_DAC_Ctrl:	    	.VDEF  0x702A;		// Control Port for two DAC and audio output mode 
P_ADC_MUX_Ctrl:  	.VDEF  0x702B		// Control Port 
P_ADC_LINEIN_Data:  .VDEF  0x702C		// Line in data 
 
P_INT_Mask:         .VDEF   0x702D		//R/W INT enable/disable 
P_UART_Command2:    .VDEF 	0x7022;		// Command2 Port for UART 
//P_INT_Mask:         .VDEF     0x702D 
.DEFINE P_UART_Command1       0x7021;                // Command1 Port for UART 
.DEFINE P_UART_Data           0x7023;                // Data Port for UART 
.DEFINE P_UART_BaudScalarLow  0x7024;            // Set Baud Rate scalar low 
.DEFINE	P_UART_BaudScalarHigh 0x7025;		// Set Baud Rate scalar high 
 
 
 
.ifdef MOUDLE_MS01 
.EXTERNAL F_SACM_MS01_Play 
.EXTERNAL F_SACM_MS01_Initial 
.EXTERNAL F_SACM_MS01_Volume 
.EXTERNAL F_SACM_MS01_Status 
.EXTERNAL F_SACM_MS01_ServiceLoop 
.EXTERNAL F_SACM_MS01_Stop 
.external F_ISR_Service_SACM_MS01 
.external F_IRQ2_Service_SACM_MS01 
.external F_IRQ4_Service_SACM_MS01 
.endif 
 
.ifdef MOUDLE_S200 
.EXTERNAL F_SACM_S200_Play 
.EXTERNAL F_SACM_S200_Initial 
.EXTERNAL F_SACM_S200_Volume 
.EXTERNAL F_SACM_S200_Status 
.EXTERNAL F_SACM_S200_ServiceLoop 
.EXTERNAL F_SACM_S200_Stop 
.external F_ISR_Service_SACM_S200 
.endif 
.ifdef MOUDLE_S530 
.EXTERNAL F_SACM_S530_Play 
.EXTERNAL F_SACM_S530_Initial 
.EXTERNAL F_SACM_S530_Volume 
.EXTERNAL F_SACM_S530_Status 
.EXTERNAL F_SACM_S530_ServiceLoop 
.EXTERNAL F_SACM_S530_Stop 
.EXTERNAL F_SACM_S530_Speed 
.EXTERNAL F_ISR_Service_SACM_S530 
.endif 
.ifdef MOUDLE_S480 
.EXTERNAL F_SACM_S480_Play 
.EXTERNAL F_SACM_S480_Initial 
.EXTERNAL F_SACM_S480_Volume 
.EXTERNAL F_SACM_S480_Status 
.EXTERNAL F_SACM_S480_ServiceLoop 
.EXTERNAL F_SACM_S480_Stop 
.external F_ISR_Service_SACM_S480 
.endif 
.ifdef MOUDLE_DVR1600 
.EXTERNAL F_SACM_DVR1600_Play 
.EXTERNAL F_SACM_DVR1600_Initial 
.EXTERNAL F_SACM_DVR1600_Volume 
.EXTERNAL F_SACM_DVR1600_Status 
.EXTERNAL F_SACM_DVR1600_ServiceLoop 
.EXTERNAL F_SACM_DVR1600_Stop 
.EXTERNAL F_SACM_DVR1600_PlaySequence 
.EXTERNAL F_SACM_DVR1600_Rec 
.EXTERNAL _SACM_DVR1600_Speed 
//.EXTERNAL F_SACM_DVR1600_Speed_Initial 
.external F_ISR_Service_SACM_DVR1600 
.endif