channeltable.asm

来自「w588d开发例程」· 汇编 代码 · 共 2,397 行 · 第 1/4 页

ASM
2,397
字号
	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
	
;-------------------------------------------------------------------------------------
;-------------------------------------------------------------------------------------	
	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	
.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	
			.ELSE
				.IF (WITH_VS1A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_READ_BYTE_VS1A
					DW VMDPC8_READ_BYTE_VS1A
				.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_VS0A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_READ_BYTE_VS0A
					DW VMDPC8_READ_BYTE_VS0A
				.ELSE
					DW 0000H
				.ENDIF	
			.ENDIF
	
		.ELSE  		;WITH_TONE=1	
			.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
		
			.IF (WITH_VS0A_VMDPC8 .EQ. 1)
				EXTERN VMDPC8_READ_BYTE_VS0A
				DW VMDPC8_READ_BYTE_VS0A
			.ELSE
				DW 0000H
			.ENDIF		
		.ENDIF	
	.ENDIF
;---------------------------------------------------------------------------------------------------	
	PUBLIC VMD_VOLZERO_SYNTH_START_TABLE
VMD_VOLZERO_SYNTH_START_TABLE:	
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_VMDPC8 .EQ. 1)
			EXTERN VMDPC8_VOL_ZERO_VS2A
			DW VMDPC8_VOL_ZERO_VS2A
		.ELSE 
			DW 0000H
		.ENDIF
	
		.IF (WITH_VS1A_VMDPC8 .EQ. 1)
			EXTERN VMDPC8_VOL_ZERO_VS1A
			DW VMDPC8_VOL_ZERO_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_VOL_ZERO_VS0A
					DW VMDPC8_VOL_ZERO_VS0A
				.ELSE 
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS2A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_VOL_ZERO_VS2A
					DW VMDPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
		
				.IF (WITH_VS1A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_VOL_ZERO_VS1A
					DW VMDPC8_VOL_ZERO_VS1A
				.ELSE
					DW 0000H
				.ENDIF
			.ELSE
				.IF (WITH_VS1A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_VOL_ZERO_VS1A
					DW VMDPC8_VOL_ZERO_VS1A
				.ELSE 
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS2A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_VOL_ZERO_VS2A
					DW VMDPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
		
				.IF (WITH_VS0A_VMDPC8 .EQ. 1)
					EXTERN VMDPC8_VOL_ZERO_VS0A
					DW VMDPC8_VOL_ZERO_VS0A
				.ELSE
					DW 0000H
				.ENDIF
			.ENDIF
	
		.ELSE  		;WITH_TONE=1
			.IF (WITH_VS2A_VMDPC8 .EQ. 1)
				EXTERN VMDPC8_VOL_ZERO_VS2A
				DW VMDPC8_VOL_ZERO_VS2A
			.ELSE 
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS1A_VMDPC8 .EQ. 1)
				EXTERN VMDPC8_VOL_ZERO_VS1A
				DW VMDPC8_VOL_ZERO_VS1A
			.ELSE
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS0A_VMDPC8 .EQ. 1)
				EXTERN VMDPC8_VOL_ZERO_VS0A
				DW VMDPC8_VOL_ZERO_VS0A
			.ELSE
				DW 0000H
			.ENDIF		
		.ENDIF	
	.ENDIF
.ENDIF
;-----------------------------------------------------------------------------
.IF (WITH_PCSPC8 == 1)
	PUBLIC PCS_MELODY_SYNTH_START_TABLE
PCS_MELODY_SYNTH_START_TABLE:
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_PCSPC8 .EQ. 1)
			EXTERN PCSPC8_READ_BYTE_VS2A
			DW PCSPC8_READ_BYTE_VS2A
		.ELSE 
			DW 0000H
		.ENDIF
	
		.IF (WITH_VS1A_PCSPC8 .EQ. 1)
			EXTERN PCSPC8_READ_BYTE_VS1A
			DW PCSPC8_READ_BYTE_VS1A
		.ELSE
			DW 0000H
		.ENDIF
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				.IF (WITH_VS0A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS0A
					DW PCSPC8_READ_BYTE_VS0A
				.ELSE 
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS2A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS2A
					DW PCSPC8_READ_BYTE_VS2A
				.ELSE
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS1A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS1A
					DW PCSPC8_READ_BYTE_VS1A
				.ELSE
					DW 0000H
				.ENDIF
			.ELSE
				.IF (WITH_VS1A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS1A
					DW PCSPC8_READ_BYTE_VS1A
				.ELSE 
					DW 0000H
				.ENDIF
			
				.IF (WITH_VS2A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS2A
					DW PCSPC8_READ_BYTE_VS2A
				.ELSE
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS0A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_READ_BYTE_VS0A
					DW PCSPC8_READ_BYTE_VS0A
				.ELSE
					DW 0000H
				.ENDIF
			.ENDIF
	
		.ELSE  		;WITH_TONE=1
			.IF (WITH_VS2A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_READ_BYTE_VS2A
				DW PCSPC8_READ_BYTE_VS2A
			.ELSE 
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS1A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_READ_BYTE_VS1A
				DW PCSPC8_READ_BYTE_VS1A
			.ELSE
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS0A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_READ_BYTE_VS0A
				DW PCSPC8_READ_BYTE_VS0A
			.ELSE
				DW 0000H
			.ENDIF	
		.ENDIF	
	.ENDIF
;-----------------------------------------------------------------------------------------
	PUBLIC PCS_VOLZERO_SYNTH_START_TABLE
PCS_VOLZERO_SYNTH_START_TABLE:
	.IF (CHIPSERIES = 'W588C')
		.IF (WITH_VS2A_PCSPC8 .EQ. 1)
			EXTERN PCSPC8_VOL_ZERO_VS2A
			DW PCSPC8_VOL_ZERO_VS2A
		.ELSE 
			DW 0000H
		.ENDIF
	
		.IF (WITH_VS1A_PCSPC8 .EQ. 1)
			EXTERN PCSPC8_VOL_ZERO_VS1A
			DW PCSPC8_VOL_ZERO_VS1A
		.ELSE
			DW 0000H
		.ENDIF
	.ENDIF
	.IF (CHIPSERIES = 'W588D')
		.IF (WITH_TONE .EQ. 0)
			.IF (WITH_SP .EQ. 0)
				.IF (WITH_VS0A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS0A
					DW PCSPC8_VOL_ZERO_VS0A
				.ELSE 
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS2A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS2A
					DW PCSPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS1A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS1A
					DW PCSPC8_VOL_ZERO_VS1A
				.ELSE
					DW 0000H
				.ENDIF
			.ELSE  	
				.IF (WITH_VS1A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS1A
					DW PCSPC8_VOL_ZERO_VS1A
				.ELSE 
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS2A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS2A
					DW PCSPC8_VOL_ZERO_VS2A
				.ELSE
					DW 0000H
				.ENDIF
				
				.IF (WITH_VS0A_PCSPC8 .EQ. 1)
					EXTERN PCSPC8_VOL_ZERO_VS0A
					DW PCSPC8_VOL_ZERO_VS0A
				.ELSE
					DW 0000H
				.ENDIF
			.ENDIF
	
		.ELSE  		;WITH_TONE=1
			.IF (WITH_VS2A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_VOL_ZERO_VS2A
				DW PCSPC8_VOL_ZERO_VS2A
			.ELSE 
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS1A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_VOL_ZERO_VS1A
				DW PCSPC8_VOL_ZERO_VS1A
			.ELSE
				DW 0000H
			.ENDIF
		
			.IF (WITH_VS0A_PCSPC8 .EQ. 1)
				EXTERN PCSPC8_VOL_ZERO_VS0A
				DW PCSPC8_VOL_ZERO_VS0A
			.ELSE
				DW 0000H

⌨️ 快捷键说明

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