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

📄 channeltable.asm

📁 用W588D写的驱动6210-2.4G无线模块,收发程序在一块,(65C02汇编指令实现)
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.IF (CHIPSERIES = 'W588L')
		.IF ((WITH_TONE .EQ. 0) && (WITH_SP .EQ. 1))
			DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8
			DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8
		.ELSE
			DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8
			DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8
		.ENDIF		
	.ENDIF	
.ENDIF
;------------------------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------------------------
.IF (WITH_MS .EQ. 1)
	PUBLIC		MS_CHANNEL_PCSPC8_TABLE
MS_CHANNEL_PCSPC8_TABLE:
	.IF (CHIPSERIES = 'W588C')
		DB WITH_VS2A_PCSPC8
		DB WITH_VS1A_PCSPC8
		DB 00H
	.ENDIF
	.IF (CHIPSERIES = 'W588D')	
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				DB WITH_VS0A_PCSPC8
				DB WITH_VS2A_PCSPC8
				DB WITH_VS1A_PCSPC8
			.ELSE 	
				DB WITH_VS1A_PCSPC8
				DB WITH_VS2A_PCSPC8
				DB WITH_VS0A_PCSPC8
			.ENDIF
			
		.ELSE 	;WITH_TONE=1
			DB WITH_VS2A_PCSPC8
			DB WITH_VS1A_PCSPC8
			DB WITH_VS0A_PCSPC8
		.ENDIF
	.ENDIF
	.IF (CHIPSERIES = 'W588L')
		.IF ((WITH_TONE .EQ. 0) && (WITH_SP .EQ. 1))
			DB WITH_VS1A_PCSPC8
			DB WITH_VS2A_PCSPC8
			DB 00
		.ELSE
			DB WITH_VS2A_PCSPC8
			DB WITH_VS1A_PCSPC8
			DB 00H
		.ENDIF		
	.ENDIF	
.ENDIF
;------------------------------------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------------------------------------
	PUBLIC		MS_CHANNEL_TABLE
MS_CHANNEL_TABLE:
.IF (WITH_MS .EQ. 1)
	.IF (CHIPSERIES = 'W588C')
			DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8+WITH_VS2A_TONE
			DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8+WITH_VS1A_TONE
			DB 00H		
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
			.IF (WITH_TONE .EQ. 0)
				.IF (WITH_SP .EQ. 0)
					DB WITH_VS0A_HQPC8+WITH_VS0A_VMDPC8+WITH_VS0A_PCSPC8
					DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8
					DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8
				.ELSE 
					DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8
					DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8
					DB WITH_VS0A_HQPC8+WITH_VS0A_VMDPC8+WITH_VS0A_PCSPC8
				.ENDIF
			
			.ELSE 	;WITH_TONE=1
				DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8+WITH_VS2A_TONE
				DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8+WITH_VS1A_TONE
				DB WITH_VS0A_HQPC8+WITH_VS0A_VMDPC8+WITH_VS0A_PCSPC8+WITH_VS0A_TONE
			.ENDIF	
	.ENDIF
	.IF (CHIPSERIES = 'W588L')
		.IF ((WITH_TONE .EQ. 0) && (WITH_SP .EQ. 1))
			DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8
			DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8
			DB 00
		.ELSE
			DB WITH_VS2A_HQPC8+WITH_VS2A_VMDPC8+WITH_VS2A_PCSPC8+WITH_VS2A_TONE
			DB WITH_VS1A_HQPC8+WITH_VS1A_VMDPC8+WITH_VS1A_PCSPC8+WITH_VS1A_TONE
			DB 00
		.ENDIF		
	.ENDIF	
.ENDIF
;==============================================================================
;
;==============================================================================

	.IF (WITH_MS .EQ. 1)
	PUBLIC ASSIGN_CHANNEL_PROC_TABLE
ASSIGN_CHANNEL_PROC_TABLE:
	.IF (WITH_DYNAMIC_CH .EQ. 1)
	EXTERNAL FIND_IDLE_CHANNEL_PROC
	DW FIND_IDLE_CHANNEL_PROC
	.ELSE
	EXTERNAL ASSIGN_MIDI_CHANNEL_PROC
	DW ASSIGN_MIDI_CHANNEL_PROC
	.ENDIF
	.ENDIF


;==============================================================================
; Timer tables
;==============================================================================
	PUBLIC SP_SET_TMV_PROC_TABLE
	PUBLIC MS_SET_TMV_PROC_TABLE
SP_SET_TMV_PROC_TABLE:
MS_SET_TMV_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERNAL SET_TM0V_PROC
	DW SET_TM0V_PROC	;VS0A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)
	EXTERNAL SET_TM1V_PROC
	DW SET_TM1V_PROC	;VS1A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERNAL SET_TM2V_PROC
	DW SET_TM2V_PROC	;VS2A
	.ELSE
	DW 0000H
	.ENDIF
	

;------------------------------------------------------------------------
;
;------------------------------------------------------------------------
	PUBLIC SP_SET_TMC_PROC_TABLE
	PUBLIC MS_SET_TMC_PROC_TABLE
SP_SET_TMC_PROC_TABLE:
MS_SET_TMC_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERNAL SET_TM0C_PROC
	DW SET_TM0C_PROC	;VS0A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)
	EXTERNAL SET_TM1C_PROC
	DW SET_TM1C_PROC	;VS1A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERNAL SET_TM2C_PROC
	DW SET_TM2C_PROC	;VS2A
	.ELSE
	DW 0000H
	.ENDIF
	
;------------------------------------------------------------------------
;
;------------------------------------------------------------------------
	PUBLIC SP_GET_TMC_PROC_TABLE
	PUBLIC MS_GET_TMC_PROC_TABLE
SP_GET_TMC_PROC_TABLE:
MS_GET_TMC_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERNAL GET_TM0C_PROC
	DW GET_TM0C_PROC
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)
	EXTERN GET_TM1C_PROC
	DW GET_TM1C_PROC
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERN GET_TM2C_PROC
	DW GET_TM2C_PROC
	.ELSE
	DW 0000H
	.ENDIF
		
;------------------------------------------------------------------------
;
;------------------------------------------------------------------------
	PUBLIC SP_GET_TMV_PROC_TABLE
	PUBLIC MS_GET_TMV_PROC_TABLE
SP_GET_TMV_PROC_TABLE:
MS_GET_TMV_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERNAL GET_TM0V_PROC
	DW GET_TM0V_PROC
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)
	EXTERN GET_TM1V_PROC
	DW GET_TM1V_PROC
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERN GET_TM2V_PROC
	DW GET_TM2V_PROC
	.ELSE
	DW 0000H
	.ENDIF	

;------------------------------------------------------------------------
;
;------------------------------------------------------------------------
	PUBLIC SP_INIT_TIMER_PROC_TABLE
	PUBLIC MS_INIT_TIMER_PROC_TABLE
SP_INIT_TIMER_PROC_TABLE:
MS_INIT_TIMER_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERN INIT_TM0_PROC
	DW INIT_TM0_PROC	;VS0A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)	
	EXTERN INIT_TM1_PROC
	DW INIT_TM1_PROC	;VS1A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERN INIT_TM2_PROC
	DW INIT_TM2_PROC	;VS2A
	.ELSE
	DW 0000H
	.ENDIF
	

;------------------------------------------------------------------------
; The VSx ISR Table, Using This Table and SP_CHANNEL_ADDR_TABLE 
;------------------------------------------------------------------------
	PUBLIC	SP_STOP_TIMER_PROC_TABLE
	PUBLIC	MS_STOP_TIMER_PROC_TABLE
SP_STOP_TIMER_PROC_TABLE:
MS_STOP_TIMER_PROC_TABLE:
	.IF (WITH_VS0A .EQ. 1)
	EXTERN STOP_TM0_PROC
	DW STOP_TM0_PROC	;VS0A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS1A .EQ. 1)
	EXTERN STOP_TM1_PROC
	DW STOP_TM1_PROC	;VS1A
	.ELSE
	DW 0000H
	.ENDIF
	
	.IF (WITH_VS2A .EQ. 1)
	EXTERN STOP_TM2_PROC
	DW STOP_TM2_PROC	;VS2A
	.ELSE
	.ENDIF	
;-----------------------------------------------------------------------------
.IF (WITH_HQPC8 == 1 || WITH_VMDPC8 == 1)
	PUBLIC HQ_MELODY_SYNTH_START_TABLE
HQ_MELODY_SYNTH_START_TABLE:
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_HQPC8 .EQ. 1)
			EXTERN HQPC8_READ_BYTE_VS2A
			DW HQPC8_READ_BYTE_VS2A
		.ELSE 
			DW 0000H	
		.ENDIF

		.IF (WITH_VS1A_HQPC8 .EQ. 1)
			EXTERN HQPC8_READ_BYTE_VS1A
			DW HQPC8_READ_BYTE_VS1A
		.ELSE
			DW 0000H
		.ENDIF		
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				.IF (WITH_VS0A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS0A
					DW HQPC8_READ_BYTE_VS0A
				.ELSE 
					DW 0000H	
				.ENDIF
				.IF (WITH_VS2A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS2A
					DW HQPC8_READ_BYTE_VS2A
				.ELSE
					DW 0000H
				.ENDIF
	
				.IF (WITH_VS1A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS1A
					DW HQPC8_READ_BYTE_VS1A
				.ELSE
					DW 0000H
				.ENDIF	
			.ELSE 
				.IF (WITH_VS1A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS1A
					DW HQPC8_READ_BYTE_VS1A
				.ELSE 
					DW 0000H	
				.ENDIF
				.IF (WITH_VS2A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS2A
					DW HQPC8_READ_BYTE_VS2A
				.ELSE
					DW 0000H
				.ENDIF
	
				.IF (WITH_VS0A_HQPC8 .EQ. 1)
					EXTERN HQPC8_READ_BYTE_VS0A
					DW HQPC8_READ_BYTE_VS0A
				.ELSE
					DW 0000H
				.ENDIF	
			.ENDIF
			
		.ELSE  		;WITH_TONE=1
		
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS2A
				DW HQPC8_READ_BYTE_VS2A
			.ELSE 
				DW 0000H	
			.ENDIF
	
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS1A
				DW HQPC8_READ_BYTE_VS1A
			.ELSE
				DW 0000H
			.ENDIF
	
			.IF (WITH_VS0A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS0A
				DW HQPC8_READ_BYTE_VS0A
			.ELSE
				DW 0000H
			.ENDIF	
		.ENDIF	
	.ENDIF
	.IF (CHIPSERIES = 'W588L')
		.IF ((WITH_TONE .EQ. 0) && (WITH_SP .EQ. 1))
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS1A
				DW HQPC8_READ_BYTE_VS1A
			.ELSE 
				DW 0000H	
			.ENDIF
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS2A
				DW HQPC8_READ_BYTE_VS2A
			.ELSE
				DW 0000H
			.ENDIF

		.ELSE
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS2A
				DW HQPC8_READ_BYTE_VS2A
			.ELSE 
				DW 0000H	
			.ENDIF		
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_READ_BYTE_VS1A
				DW HQPC8_READ_BYTE_VS1A
			.ELSE
				DW 0000H
			.ENDIF	
		.ENDIF		
	.ENDIF	
	
;-------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------	
	PUBLIC HQ_VOLZERO_SYNTH_START_TABLE
HQ_VOLZERO_SYNTH_START_TABLE:
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_HQPC8 .EQ. 1)
			EXTERN HQPC8_VOL_ZERO_VS2A
			DW HQPC8_VOL_ZERO_VS2A
		.ELSE 
			DW 0000H
		.ENDIF
	
		.IF (WITH_VS1A_HQPC8 .EQ. 1)
			EXTERN HQPC8_VOL_ZERO_VS1A
			DW HQPC8_VOL_ZERO_VS1A
		.ELSE
			DW 0000H
		.ENDIF	
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				.IF (WITH_VS0A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS0A
					DW HQPC8_VOL_ZERO_VS0A
				.ELSE 
					DW 0000H
				.ENDIF
		
				.IF (WITH_VS2A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS2A
					DW HQPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS1A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS1A
					DW HQPC8_VOL_ZERO_VS1A
				.ELSE
					DW 0000H
				.ENDIF
			.ELSE
				.IF (WITH_VS1A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS1A
					DW HQPC8_VOL_ZERO_VS1A
				.ELSE 
					DW 0000H
				.ENDIF
		
				.IF (WITH_VS2A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS2A
					DW HQPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS0A_HQPC8 .EQ. 1)
					EXTERN HQPC8_VOL_ZERO_VS0A
					DW HQPC8_VOL_ZERO_VS0A
				.ELSE
					DW 0000H
				.ENDIF
			.ENDIF
			
		.ELSE  		;WITH_TONE=1
		
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS2A
				DW HQPC8_VOL_ZERO_VS2A
			.ELSE 
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS1A
				DW HQPC8_VOL_ZERO_VS1A
			.ELSE
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS0A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS0A
				DW HQPC8_VOL_ZERO_VS0A
			.ELSE
				DW 0000H
			.ENDIF	
		.ENDIF	
	.ENDIF	
	.IF (CHIPSERIES = 'W588L')
		.IF ((WITH_TONE .EQ. 0) && (WITH_SP .EQ. 1))
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS1A
				DW HQPC8_VOL_ZERO_VS1A
			.ELSE 
				DW 0000H
			.ENDIF
	
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS2A
				DW HQPC8_VOL_ZERO_VS2A
			.ELSE
				DW 0000H
			.ENDIF
		.ELSE
			.IF (WITH_VS2A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS2A
				DW HQPC8_VOL_ZERO_VS2A
			.ELSE 
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS1A_HQPC8 .EQ. 1)
				EXTERN HQPC8_VOL_ZERO_VS1A
				DW HQPC8_VOL_ZERO_VS1A
			.ELSE
				DW 0000H
			.ENDIF
		.ENDIF		
	.ENDIF	
.ENDIF	
;-----------------------------------------------------------------------------
.IF (WITH_HQPC8 == 1 || WITH_VMDPC8 == 1)
	PUBLIC VMD_MELODY_SYNTH_START_TABLE
VMD_MELODY_SYNTH_START_TABLE:
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_VMDPC8 .EQ. 1)
			EXTERN VMDPC8_READ_BYTE_VS2A
			DW VMDPC8_READ_BYTE_VS2A
		.ELSE 
			DW 0000H
		.ENDIF
	
		.IF (WITH_VS1A_VMDPC8 .EQ. 1)
			EXTERN VMDPC8_READ_BYTE_VS1A
			DW VMDPC8_READ_BYTE_VS1A
		.ELSE
			DW 0000H
		.ENDIF		
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				.IF (WITH_VS0A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_READ_BYTE_VS0A
					DW VMDPC8_READ_BYTE_VS0A
				.ELSE 
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS2A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_READ_BYTE_VS2A
					DW VMDPC8_READ_BYTE_VS2A
				.ELSE
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS1A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_READ_BYTE_VS1A
					DW VMDPC8_READ_BYTE_VS1A
				.ELSE
					DW 0000H
				.ENDIF	

⌨️ 快捷键说明

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