Subversion Repositories svn.mios

Rev

Rev 456 | Rev 908 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 456 Rev 790
Line 1... Line 1...
1
; $Id: sid_sysex.inc 456 2008-09-03 20:24:28Z tk $
1
; $Id: sid_sysex.inc 790 2009-06-04 19:16:22Z tk $
2
;
2
;
3
; MIDIbox SID SysEx Parser
3
; MIDIbox SID SysEx Parser
4
;
4
;
5
; ==========================================================================
5
; ==========================================================================
6
;
6
;
Line 1012... Line 1012...
1012
	addlw	-1
1012
	addlw	-1
1013
	bz	SID_SYSEX_WritePar_I_D
1013
	bz	SID_SYSEX_WritePar_I_D
1014
	rgoto	SID_SYSEX_WritePar_I_M
1014
	rgoto	SID_SYSEX_WritePar_I_M
1015
1015
1016
SID_SYSEX_WritePar_I_L
1016
SID_SYSEX_WritePar_I_L
1017
	;; check for target assignment range 0x104..0x105
1017
	;; check for target assignment range 0x104..0x105, 0x10c..0x10d, 0x114..0x115, ..., 0x13c..013d
1018
	movf	SID_SYSEX_ADDRESS_H, W, BANKED
1018
	movf	SID_SYSEX_ADDRESS_H, W, BANKED
1019
	bz	SID_SYSEX_WritePar_I_L_NoMTarg
1019
	bz	SID_SYSEX_WritePar_I_L_NoMTarg
1020
	movf	SID_SYSEX_ADDRESS_L, W, BANKED
1020
	movf	SID_SYSEX_ADDRESS_L, W, BANKED
1021
	andlw	0xfe
1021
	andlw	0xc6		; binary mask: 0b11000110 - should match with the addresses listed above
1022
	xorlw	0x04
1022
	xorlw	0x04
1023
	bnz	SID_SYSEX_WritePar_I_L_NoMTarg
1023
	bnz	SID_SYSEX_WritePar_I_L_NoMTarg
1024
	rgoto	SID_SYSEX_WritePar_I_MTarg
1024
	rgoto	SID_SYSEX_WritePar_I_MTarg
1025
SID_SYSEX_WritePar_I_L_NoMTarg
1025
SID_SYSEX_WritePar_I_L_NoMTarg
1026
	;; check for voice range 0x060..0x0bf
1026
	;; check for voice range 0x060..0x0bf
Line 1260... Line 1260...
1260
	rcall	SID_SYSEX_WritePar_I_Hlp
1260
	rcall	SID_SYSEX_WritePar_I_Hlp
1261
	rgoto	SID_SYSEX_WritePar_I_End
1261
	rgoto	SID_SYSEX_WritePar_I_End
1262
1262
1263
;; ---
1263
;; ---
1264
SID_SYSEX_WritePar_I_MTarg
1264
SID_SYSEX_WritePar_I_MTarg
1265
	;; range 0x104/105: copy to L/R register
1265
	;; range 0x104..0x105, 0x10c..0x10d, 0x114..0x115, ..., 0x13c..013d: copy to L/R register
-
 
1266
	movf	SID_SYSEX_ADDRESS_L, W, BANKED
1266
	movlw	0x04
1267
	andlw	0xfe
1267
	addwf	FSR0L, F
1268
	addwf	FSR0L, F
1268
	movlw	0x01
1269
	movlw	0x01
1269
	addwfc	FSR0H, F
1270
	addwfc	FSR0H, F
1270
	rcall	SID_SYSEX_WritePar_I_Hlp
1271
	rcall	SID_SYSEX_WritePar_I_Hlp
1271
	incf	FSR0L, F
1272
	incf	FSR0L, F