📄 play.inc
字号:
.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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -