Subversion Repositories svn.mios

Compare Revisions

Ignore whitespace Rev 867 → Rev 869

/trunk/apps/synthesizers/midibox_sid_v2/src/sid_preset_multi.inc
43,7 → 43,7
 
;; Instrument #1
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
51,7 → 51,7
 
;; Instrument #2
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
59,7 → 59,7
 
;; Instrument #3
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
67,7 → 67,7
 
;; Instrument #4
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
75,7 → 75,7
 
;; Instrument #5
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
83,7 → 83,7
 
;; Instrument #6
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00
db 0x00, 0x04, 0x00, 0xfa, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 VoiA VelA PtchA L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x08, 0x00, 0x00, 0x79, 0x01, 0x80, 0x06, 0x00, 0x00, 0xc0, 0x80, 0x01, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur WTSp WTAs WTBg WTEn WTLp
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_preset_bassline.inc
44,7 → 44,7
 
;; Voice #1
;; Flgs Wave AD SR PW_L PW_H Acc Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x01, 0x04, 0x00, 0xc0, 0x00, 0x09, 0x10, 0x00, 0x28, 0x80, 0x02, 0x28, 0x00, 0x1f, 0x05, 0x00
db 0x01, 0x04, 0x00, 0xc0, 0x00, 0x09, 0x10, 0x00, 0x28, 0x80, 0x02, 0x28, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 ---- ---- ---- L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x07, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0x00, 0x00, 0x80, 0x80, 0x03, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur SSpd SNum Len. Asgn res
56,7 → 56,7
 
;; Voice #2
;; Flgs Wave AD SR PW_L PW_H Acc Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x01, 0x02, 0x00, 0xc0, 0x00, 0x09, 0x10, 0x00, 0x28, 0x80, 0x02, 0x28, 0x00, 0x1f, 0x05, 0x00
db 0x01, 0x02, 0x00, 0xc0, 0x00, 0x09, 0x10, 0x00, 0x28, 0x80, 0x02, 0x28, 0x00, 0x5f, 0x05, 0x00
;; Flgs2 ---- ---- ---- L1Md L1DP L1Rt L1Dl L1Ph L1DPW L1DF L2Md L2DP L2Rt L2Dl L2Ph
db 0x07, 0x00, 0x00, 0x00, 0x03, 0x80, 0x06, 0x00, 0x00, 0x80, 0x80, 0x03, 0x80, 0x16, 0x00, 0x00
;; L2DPW L2DF EMod EDPi EDPW EDFl EAtt EDec ESus ERel ECur SSpd SNum Len. Asgn res
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_parin.inc
47,7 → 47,7
 
;; jump depending on mod ID
movf PRODL, W
JUMPTABLE_2BYTES 0x3c+1 ; entries
JUMPTABLE_2BYTES 0x3d+1 ; entries
rgoto SID_PARIN_Set_NOP
rgoto SID_PARIN_Set_7
rgoto SID_PARIN_Set_8
59,6 → 59,7
rgoto SID_PARIN_Set_FIL4L
rgoto SID_PARIN_Set_FIL4U
rgoto SID_PARIN_Set_FIL12
rgoto SID_PARIN_Set_FIL12_DIRECT
rgoto SID_PARIN_Set_FIL8
rgoto SID_PARIN_Set_OSC123_PM7
rgoto SID_PARIN_Set_OSC123_PM8
279,7 → 280,8
return
 
SID_PARIN_Set_FIL12
SID_PARIN_SID_FIL_MACRO ; select SIDL/SIDR filter
SID_PARIN_SID_FIL_MACRO ; for selected SIDL/SIDR filter
SID_PARIN_Set_FIL12_DIRECT ; for direct writes to SIDL/SIDR Filter
movff MIOS_PARAMETER1, POSTINC1
movf MIOS_PARAMETER2, W
andlw 0x0f
845,7 → 847,7
 
;; store MAX value in SID_PAR_MAX_[LH]
movf TABLAT, W ; (mod ID)
JUMPTABLE_2BYTES 0x3c+1 ; entries
JUMPTABLE_2BYTES 0x3d+1 ; entries
rgoto SID_PARIN_Scale_0 ;NOP
rgoto SID_PARIN_Scale_7 ;7
rgoto SID_PARIN_Scale_8 ;8
857,6 → 859,7
rgoto SID_PARIN_Scale_4 ;FIL4L
rgoto SID_PARIN_Scale_4 ;FIL4U
rgoto SID_PARIN_Scale_12 ;FIL12
rgoto SID_PARIN_Scale_12 ;FIL12_DIRECT
rgoto SID_PARIN_Scale_8 ;FIL8
rgoto SID_PARIN_Scale_7 ;OSC123_PM7
rgoto SID_PARIN_Scale_8 ;OSC123_PM8
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_parout.inc
44,7 → 44,7
 
;; jump depending on mod ID
movf PRODL, W
JUMPTABLE_2BYTES 0x3c+1 ; entries
JUMPTABLE_2BYTES 0x3d+1 ; entries
rgoto SID_PAROUT_Get_NOP
rgoto SID_PAROUT_Get_7
rgoto SID_PAROUT_Get_8
56,6 → 56,7
rgoto SID_PAROUT_Get_FIL4L
rgoto SID_PAROUT_Get_FIL4U
rgoto SID_PAROUT_Get_FIL12
rgoto SID_PAROUT_Get_FIL12_DIRECT
rgoto SID_PAROUT_Get_FIL8
rgoto SID_PAROUT_Get_OSC123_PM7
rgoto SID_PAROUT_Get_OSC123_PM8
256,7 → 257,8
rgoto SID_PAROUT_Get_End
 
SID_PAROUT_Get_FIL12
SID_PAROUT_SID_FIL_MACRO ; select SIDL/SIDR filter
SID_PAROUT_SID_FIL_MACRO ; for selected SIDL/SIDR filter
SID_PAROUT_Get_FIL12_DIRECT ; for direct reads from SIDL/SIDR Filter value
movf PREINC1, W
andlw 0x0f
movwf MIOS_PARAMETER2
/trunk/apps/synthesizers/midibox_sid_v2/src/cs_menu_enc_table.inc
73,8 → 73,8
 
;; Filter section
;; menu offset cursor pos
CSENC_ENTRY CS_MENU_L_FIL, 0x00, 0x01 ; Cutoff
CSENC_ENTRY CS_MENU_L_FIL, 0x00, 0x02 ; Resonance
CSENC_ENTRY CS_MENU_L_FIL, 0x00, 0x02 ; Cutoff
CSENC_ENTRY CS_MENU_L_FIL, 0x00, 0x03 ; Resonance
 
;; Env "Env" Layer
;; menu offset cursor pos
145,8 → 145,8
 
;; Filter section
;; menu offset cursor pos
CSENC_ENTRY CS_MENU_B_FIL, 0x00, 0x01 ; Cutoff
CSENC_ENTRY CS_MENU_B_FIL, 0x00, 0x02 ; Resonance
CSENC_ENTRY CS_MENU_B_FIL, 0x00, 0x02 ; Cutoff
CSENC_ENTRY CS_MENU_B_FIL, 0x00, 0x03 ; Resonance
 
;; Env "Env" Layer
;; menu offset cursor pos
217,8 → 217,8
 
;; Filter section
;; menu offset cursor pos
CSENC_ENTRY CS_MENU_D_FIL, 0x00, 0x01 ; Cutoff
CSENC_ENTRY CS_MENU_D_FIL, 0x00, 0x02 ; Resonance
CSENC_ENTRY CS_MENU_D_FIL, 0x00, 0x02 ; Cutoff
CSENC_ENTRY CS_MENU_D_FIL, 0x00, 0x03 ; Resonance
 
;; Env "Env" Layer
;; menu offset cursor pos
289,8 → 289,8
 
;; Filter section
;; menu offset cursor pos
CSENC_ENTRY CS_MENU_M_FIL, 0x00, 0x01 ; Cutoff
CSENC_ENTRY CS_MENU_M_FIL, 0x00, 0x02 ; Resonance
CSENC_ENTRY CS_MENU_M_FIL, 0x00, 0x02 ; Cutoff
CSENC_ENTRY CS_MENU_M_FIL, 0x00, 0x03 ; Resonance
 
;; Env "Env" Layer
;; menu offset cursor pos
/trunk/apps/synthesizers/midibox_sid_v2/src/cs_menu_print.inc
1475,17 → 1475,25
 
; --------------------------------------------------------------------------
CS_MENU_PRINT_SAVE_BNK
;; flashing if second menu item selected (dirty, but the user won't see this code... ;)
;; this method has a second "advantage" (or side effect?):
;; the real bank number will be disabled for a short moment if internal patch selected
BRA_IFCLR CS_STAT, CS_STAT_MODIFY_PARAMETER, ACCESS, CS_MENU_PRINT_SAVE_BNK_NoFlash
BRA_IFCLR CS_STAT, CS_STAT_CURSOR_FLASH, ACCESS, CS_MENU_PRINT_SAVE_BNK_Flash
 
CS_MENU_PRINT_SAVE_BNK_NoFlash
movff CS_MENU_SAVE_BANK, SID_BANK
movff CS_MENU_SAVE_PATCH, SID_PATCH
call SID_PBANK_CheckPatchValid
bz CS_MENU_PRINT_SAVE_BAK_Ok
bz CS_MENU_PRINT_SAVE_BNK_Ok
movf SID_BANK, W ; always allow to store in bank #0
bz CS_MENU_PRINT_SAVE_BAK_Ok
bz CS_MENU_PRINT_SAVE_BNK_Ok
CS_MENU_PRINT_SAVE_BNK_Inv
movf CS_MENU_SAVE_BANK, W
addlw 'A'
rcall CS_MENU_PRINT_Char
 
movlw '-'
rcall CS_MENU_PRINT_Char
movlw '-'
1495,7 → 1503,7
movlw ' '
rgoto CS_MENU_PRINT_Char
 
CS_MENU_PRINT_SAVE_BAK_Ok
CS_MENU_PRINT_SAVE_BNK_Ok
movff CS_MENU_SAVE_BANK, PRODL
movff CS_MENU_SAVE_PATCH, PRODH
call SID_LCD_PrintPatchNumber
1502,6 → 1510,15
movlw ' '
rgoto CS_MENU_PRINT_Char
 
 
CS_MENU_PRINT_SAVE_BNK_Flash
movf CS_MENU_SAVE_BANK, W
addlw 'A'
rcall CS_MENU_PRINT_Char
movlw 4
goto SID_LCD_PrintSpaces
 
 
; --------------------------------------------------------------------------
CS_MENU_PRINT_SAVE_PAT
return ; (already print)
/trunk/apps/synthesizers/midibox_sid_v2/src/cs_menu_buttons.inc
515,6 → 515,13
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; only change to OSC page if not already selected
call CS_MENU_GetMenuID_OSC
xorwf CS_MENU, W
bnz CS_MENU_BUTTON_Osc_Sel_End
 
;; otherwise increment oscillator
 
;; branch depending on engine
movff SID_EDIT_BUFFER + SID_Ix_ENGINE, WREG
BRA_IFSET WREG, 1, ACCESS, CS_MENU_BUTTON_Osc_Sel_DM
532,12 → 539,9
 
;; update OSC flags
call CS_MENU_Hlp_UpdateOSCFlags
rgoto CS_MENU_BUTTON_Osc_Sel_End
 
;; change to OSC page
call CS_MENU_GetMenuID_OSC
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
 
;; maps current OSC selection flags to next CS_MENU_SELECTED_OSC (and not flags!)
CS_MENU_BUTTON_Osc_Sel_Next_Tab
;; from 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 ; FLAGS
553,25 → 557,9
 
movlw 0x01
movwf CS_MENU_SELECTED_OSC_FLAGS
rgoto CS_MENU_BUTTON_Osc_Sel_End
 
;; branch depending on selected OSC Control Layer
movf CS_MENU_SELECTED_OSC_CTRL, W
bz CS_MENU_BUTTON_Osc_Sel_B_0
addlw -1
bz CS_MENU_BUTTON_Osc_Sel_B_1
rgoto CS_MENU_BUTTON_Osc_Sel_B_2
 
CS_MENU_BUTTON_Osc_Sel_B_0
CS_MENU_BUTTON_Osc_Sel_B_1
;; change to OSC page
call CS_MENU_GetMenuID_OSC
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
CS_MENU_BUTTON_Osc_Sel_B_2
;; change to Knobs page
call CS_MENU_GetMenuID_KNB
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
CS_MENU_BUTTON_Osc_Sel_DM
BRA_IFSET WREG, 0, ACCESS, CS_MENU_BUTTON_Osc_Sel_M
 
579,14 → 567,16
;; always select OSC1 (flag not really used by CS, we are working with instruments)
movlw 0x01
movwf CS_MENU_SELECTED_OSC_FLAGS
;; change to OSC page
call CS_MENU_GetMenuID_OSC
rgoto CS_MENU_BUTTON_Hlp_MenuChange
rgoto CS_MENU_BUTTON_Osc_Sel_End
 
CS_MENU_BUTTON_Osc_Sel_M
;; always select OSC1 (flag not really used by CS, we are working with instruments)
movlw 0x01
movwf CS_MENU_SELECTED_OSC_FLAGS
rgoto CS_MENU_BUTTON_Osc_Sel_End
 
 
CS_MENU_BUTTON_Osc_Sel_End
;; change to OSC page
call CS_MENU_GetMenuID_OSC
rgoto CS_MENU_BUTTON_Hlp_MenuChange
689,7 → 679,19
;; do nothing if button has been depressed
btfsc MIOS_PARAMETER2, 0
return
;; else increment LFO setting
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; only change to LFO page if not already selected
call CS_MENU_GetMenuID_LFO
xorwf CS_MENU, W
bz CS_MENU_BUTTON_LFO_Sel_Inc
call CS_MENU_GetMenuID_LFO
goto CS_MENU_EXEC_Hlp_ChangeMenu
 
;; otherwise increment LFO
CS_MENU_BUTTON_LFO_Sel_Inc
movff SID_EDIT_BUFFER + SID_Ix_ENGINE, WREG
andlw 0x03
movlw 0x00 ; cursor pos Lead is 0
728,6 → 730,13
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; only change to ENV page if not already selected
call CS_MENU_GetMenuID_ENV
xorwf CS_MENU, W
bnz CS_MENU_BUTTON_Env_Sel_End
 
;; otherwise increment envelope
 
;; branch depending on engine
movff SID_EDIT_BUFFER + SID_Ix_ENGINE, WREG
BRA_IFSET WREG, 1, ACCESS, CS_MENU_BUTTON_Env_Sel_DM
750,21 → 759,18
skpnz
addlw 1
movwf CS_MENU_SELECTED_SID_LR
rgoto CS_MENU_BUTTON_Env_Sel_End
 
;; change to ENV page
call CS_MENU_GetMenuID_ENV
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
CS_MENU_BUTTON_Env_Sel_DM
BRA_IFSET WREG, 0, ACCESS, CS_MENU_BUTTON_Env_Sel_M
 
CS_MENU_BUTTON_Env_Sel_D
;; only change to ENV page (one ENV only)
call CS_MENU_GetMenuID_ENV
rgoto CS_MENU_BUTTON_Hlp_MenuChange
;; rgoto CS_MENU_BUTTON_Env_Sel_End
 
CS_MENU_BUTTON_Env_Sel_M
;; only change to ENV page (one ENV only)
;; rgoto CS_MENU_BUTTON_Env_Sel_End
 
CS_MENU_BUTTON_Env_Sel_End
call CS_MENU_GetMenuID_ENV
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
838,8 → 844,17
return
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; only change to FIL page if not already selected
call CS_MENU_GetMenuID_FIL
xorwf CS_MENU, W
bz CS_MENU_BUTTON_FIL_Sel_Inc
call CS_MENU_GetMenuID_FIL
goto CS_MENU_EXEC_Hlp_ChangeMenu
 
;; else increment Filter setting
movlw 0x00 ; cursor pos
CS_MENU_BUTTON_FIL_Sel_Inc
movlw 0x01 ; cursor pos
movwf MIOS_PARAMETER1
movlw 0x00 ; page offset
movwf MIOS_PARAMETER2
853,8 → 868,17
return
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; only change to FIL page if not already selected
call CS_MENU_GetMenuID_FIL
xorwf CS_MENU, W
bz CS_MENU_BUTTON_FIL_Mod_Inc
call CS_MENU_GetMenuID_FIL
goto CS_MENU_EXEC_Hlp_ChangeMenu
 
CS_MENU_BUTTON_FIL_Mod_Inc
;; else increment Filter setting
movlw 0x03 ; cursor pos
movlw 0x04 ; cursor pos
movwf MIOS_PARAMETER1
movlw 0x00 ; page offset
movwf MIOS_PARAMETER2
868,19 → 892,20
return
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
 
;; else increment Filter setting
movff SID_EDIT_BUFFER + SID_Ix_ENGINE, WREG
andlw 0x02 ; different cursor pos in drum and multi mode (bit #1 of engine mode set)
xorlw 0x02
 
movlw 0x04 ; cursor pos drum and multi
movlw 0x05 ; cursor pos drum and multi
skpz
movlw 0x05 ; cursor pos lead/bassline mode
movlw 0x06 ; cursor pos lead/bassline mode
movwf MIOS_PARAMETER1
 
movlw 0x00 ; page offset drum and multi
movlw 0x01 ; page offset drum and multi
skpz
movlw 0x01 ; page offset lead/bassline mode
movlw 0x02 ; page offset lead/bassline mode
movwf MIOS_PARAMETER2
call CS_MENU_GetMenuID_FIL ; menu page
goto CS_MENU_ButtonInc
973,6 → 998,17
 
 
;; ------------------------------------------------------------------
CS_MENU_BUTTON_Knob
;; do nothing if button has been depressed
btfsc MIOS_PARAMETER2, 0
return
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
;; change to Knobs page
call CS_MENU_GetMenuID_KNB
rgoto CS_MENU_BUTTON_Hlp_MenuChange
 
;; ------------------------------------------------------------------
CS_MENU_BUTTON_PageUp
;; exit with message if SID player mode enabled and SID1 selected
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_BUTTON_SP_IgnoreMsg
/trunk/apps/synthesizers/midibox_sid_v2/src/cs_menu_matrix.inc
75,6 → 75,23
#endif
 
;; now determine the pattern for the LED anodes
movf CS_MENU_REINIT_CFG_CTR, W
bz CS_MENU_MATRIX_Handler_NoStartup
CS_MENU_MATRIX_Handler_Startup
;; christmas lights:
;; show a (somehow) random pattern
movf CS_MENU_MATRIX_CTR, W ; matrix counter
#if DEFAULT_SAMMICHSID_CS
rcall CS_MENU_MATRIX_SammichSID_Column_Remap ; remap so that it looks better on a sammichSID
xorwf TMR3L, W ; timer3 is MIOS_TIMER -- only for sammichSID
#endif
xorwf TMR2, W ; timer2 outputs the 1 MHz clock to the SID
xorwf CS_MENU_REINIT_CFG_CTR, W ; xor with running startup counter
call MIOS_HLP_GetBitORMask ; show only one LED per update cycle
movwf MIOS_PARAMETER1
rgoto CS_MENU_MATRIX_Handler_StartupCn
CS_MENU_MATRIX_Handler_NoStartup
 
BRA_IFSET SID_STAT, SID_STAT_SIDPLAYER_CS_DISABLE, ACCESS, CS_MENU_MATRIX_Handler_SP ; always used in SID player mode
BRA_IFCLR CS_STAT2, CS_STAT2_LEVEL_METERS, ACCESS, CS_MENU_MATRIX_Handler_NoSP ; optionally used in normal mode
CS_MENU_MATRIX_Handler_SP
166,6 → 183,7
skpz
comf MIOS_PARAMETER1, F
CS_MENU_MATRIX_Handler_NoFlash
CS_MENU_MATRIX_Handler_StartupCn
 
#if DEFAULT_MB6582_CS
#if DEFAULT_SRM_MODMATRIX_DOUT
/trunk/apps/synthesizers/midibox_sid_v2/src/cs_menu_tables.inc
513,6 → 513,7
db (CS_MENU_TABLE_L_FIL_End-CS_MENU_TABLE_L_FIL)/CS_MENU_ENTRY_LEN, CS_MENU_LABEL_FIL
 
;; Register (00=dummy) |<->| max print ix exec ix parameter transfer
CS_MENU_ENTRY CS_MENU_SELECTED_SID_LR, "ACh", 0x002, PRINT_VAR_LR, EXEC_TOGPAR, R2PP2R_VAR_SIDLR
CS_MENU_ENTRY SID_Ix_L_Fx_CHN_MODE, "Chn", 0x007, PRINT_Fx_CHN, EXEC_SELPAR, R2PP2R_Fx_CHN
CS_MENU_ENTRY SID_Ix_L_Fx_CUTOFF_L, "Cut", 0xfff, PRINT_Fx_CUTOFF, EXEC_SELPAR, R2PP2R_Fx_CUTOFF
CS_MENU_ENTRY SID_Ix_L_Fx_RESONANCE, "Res", 0x0ff, PRINT_Fx_RESON, EXEC_SELPAR, R2PP2R_Fx_RESON
524,11 → 525,14
CS_MENU_TABLE_L_FIL_End
 
 
CS_MENU_ENTRY CS_MENU_SELECTED_INS, "Ins", 0x005, PRINT_VAR_DECP1, EXEC_SELPAR, R2PP2R_VAR
 
CS_MENU_TABLE_M_FIL
CS_MENU_TABLE_D_FIL
db (CS_MENU_TABLE_M_FIL_End-CS_MENU_TABLE_M_FIL)/CS_MENU_ENTRY_LEN, CS_MENU_LABEL_FIL
 
;; Register (00=dummy) |<->| max print ix exec ix parameter transfer
CS_MENU_ENTRY CS_MENU_SELECTED_SID_LR, "ACh", 0x002, PRINT_VAR_LR, EXEC_TOGPAR, R2PP2R_VAR_SIDLR
CS_MENU_ENTRY SID_Ix_L_Fx_CHN_MODE, "Chn", 0x007, PRINT_Fx_CHN, EXEC_SELPAR, R2PP2R_Fx_CHN
CS_MENU_ENTRY SID_Ix_L_Fx_CUTOFF_L, "Cut", 0xfff, PRINT_Fx_CUTOFF, EXEC_SELPAR, R2PP2R_Fx_CUTOFF
CS_MENU_ENTRY SID_Ix_L_Fx_RESONANCE, "Res", 0x0ff, PRINT_Fx_RESON, EXEC_SELPAR, R2PP2R_Fx_RESON
543,6 → 547,7
db (CS_MENU_TABLE_B_FIL_End-CS_MENU_TABLE_B_FIL)/CS_MENU_ENTRY_LEN, CS_MENU_LABEL_FIL
 
;; Register (00=dummy) |<->| max print ix exec ix parameter transfer
CS_MENU_ENTRY CS_MENU_SELECTED_SID_LR, "ACh", 0x002, PRINT_VAR_LR, EXEC_TOGPAR, R2PP2R_VAR_SIDLR
CS_MENU_ENTRY SID_Ix_L_Fx_CHN_MODE, "Chn", 0x007, PRINT_Fx_CHN, EXEC_SELPAR, R2PP2R_Fx_CHN
CS_MENU_ENTRY SID_Ix_L_Fx_CUTOFF_L, "Cut", 0xfff, PRINT_Fx_CUTOFF, EXEC_SELPAR, R2PP2R_Fx_CUTOFF
CS_MENU_ENTRY SID_Ix_L_Fx_RESONANCE, "Res", 0x0ff, PRINT_Fx_RESON, EXEC_SELPAR, R2PP2R_Fx_RESON
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_preset_lead.inc
42,12 → 42,12
db 0x10, 0x00, 0x02, 0x00, 0x00, 0x00 ; Filter2
 
;; Flgs Wave AD SR PW_L PW_H Res1 Delay Trns Fine PRng Port. ArpM A.S/D A.G/R Res2
db 0x00, 0x04, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID1 Voice1
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID1 Voice2
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID1 Voice3
db 0x00, 0x04, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID2 Voice1
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID2 Voice2
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x1f, 0x05, 0x00 ; SID2 Voice3
db 0x00, 0x04, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID1 Voice1
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID1 Voice2
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID1 Voice3
db 0x00, 0x04, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID2 Voice1
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID2 Voice2
db 0x00, 0x14, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x00, 0x40, 0x80, 0x02, 0x00, 0x00, 0x5f, 0x05, 0x00 ; SID2 Voice3
 
;; Mode Dep. Rate Dly Phs Mode Dep. Rate Dly Phs
db 0x01, 0x80, 0x00, 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00 ; LFO1/2
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_par_table.inc
137,22 → 137,24
P_N_NOP EQU 0x00
P_N_OSC EQU 0x01
P_N_FIL EQU 0x02
P_N_KNOB EQU 0x03
P_N_EXT EQU 0x04
P_N_OSC123 EQU 0x05
P_N_MOD EQU 0x06
P_N_LFO EQU 0x07
P_N_ENV EQU 0x08
P_N_WT EQU 0x09
P_N_OSC_INS EQU 0x0a
P_N_LFO1_INS EQU 0x0b
P_N_LFO2_INS EQU 0x0c
P_N_ENV_INS EQU 0x0d
P_N_OSC_BL EQU 0x0e
P_N_LFO_BL EQU 0x0f
P_N_ENV_BL EQU 0x10
P_N_DRM_CUR EQU 0x11
P_N_DRM_INS EQU 0x12
P_N_FIL_L EQU 0x03
P_N_FIL_R EQU 0x04
P_N_KNOB EQU 0x05
P_N_EXT EQU 0x06
P_N_OSC123 EQU 0x07
P_N_MOD EQU 0x08
P_N_LFO EQU 0x09
P_N_ENV EQU 0x0a
P_N_WT EQU 0x0b
P_N_OSC_INS EQU 0x0c
P_N_LFO1_INS EQU 0x0d
P_N_LFO2_INS EQU 0x0e
P_N_ENV_INS EQU 0x0f
P_N_OSC_BL EQU 0x10
P_N_LFO_BL EQU 0x11
P_N_ENV_BL EQU 0x12
P_N_DRM_CUR EQU 0x13
P_N_DRM_INS EQU 0x14
 
;; read from sid_lcd.inc
 
171,56 → 173,57
P_M_FIL4L EQU 0x08
P_M_FIL4U EQU 0x09
P_M_FIL12 EQU 0x0a
P_M_FIL8 EQU 0x0b
P_M_OSC123_PM7 EQU 0x0c
P_M_OSC123_PM8 EQU 0x0d
P_M_OSC123_7 EQU 0x0e
P_M_OSC123_8 EQU 0x0f
P_M_OSC123_12 EQU 0x10
P_M_OSC123_4L EQU 0x11
P_M_OSC123_5L EQU 0x12
P_M_OSC123_6L EQU 0x13
P_M_OSC123_4U EQU 0x14
P_M_OSC123_PB EQU 0x15
P_M_MOD_PM8 EQU 0x16
P_M_MOD_B76 EQU 0x17
P_M_LFO_4U EQU 0x18
P_M_LFO_PM8 EQU 0x19
P_M_LFO_8 EQU 0x1a
P_M_ENV_PM8 EQU 0x1b
P_M_ENV_8 EQU 0x1c
P_M_WT_6 EQU 0x1d
P_M_WT_7 EQU 0x1e
P_M_WT_POS EQU 0x1f
P_M_NOTE EQU 0x20
P_M_OSC_INS_PM7 EQU 0x21
P_M_OSC_INS_PM8 EQU 0x22
P_M_OSC_INS_7 EQU 0x23
P_M_OSC_INS_8 EQU 0x24
P_M_OSC_INS_12 EQU 0x25
P_M_OSC_INS_4L EQU 0x26
P_M_OSC_INS_5L EQU 0x27
P_M_OSC_INS_6L EQU 0x28
P_M_OSC_INS_4U EQU 0x29
P_M_OSC_INS_PB EQU 0x2a
P_M_OSC_BL_PM7 EQU 0x2b
P_M_OSC_BL_PM8 EQU 0x2c
P_M_OSC_BL_P8 EQU 0x2d
P_M_OSC_BL_7 EQU 0x2e
P_M_OSC_BL_8 EQU 0x2f
P_M_OSC_BL_12 EQU 0x30
P_M_OSC_BL_4L EQU 0x31
P_M_OSC_BL_5L EQU 0x32
P_M_OSC_BL_6L EQU 0x33
P_M_OSC_BL_4U EQU 0x34
P_M_OSC_BL_PB EQU 0x35
P_M_OSC_BL_FIL12 EQU 0x36
P_M_OSC_BL_FIL8 EQU 0x37
P_M_DRM_8 EQU 0x38
P_M_DRM_PM8 EQU 0x39
P_M_DRM_4U EQU 0x3a
P_M_DRM_4L EQU 0x3b
P_M_NOTE_INS EQU 0x3c
P_M_FIL12_DIRECT EQU 0x0b
P_M_FIL8 EQU 0x0c
P_M_OSC123_PM7 EQU 0x0d
P_M_OSC123_PM8 EQU 0x0e
P_M_OSC123_7 EQU 0x0f
P_M_OSC123_8 EQU 0x10
P_M_OSC123_12 EQU 0x11
P_M_OSC123_4L EQU 0x12
P_M_OSC123_5L EQU 0x13
P_M_OSC123_6L EQU 0x14
P_M_OSC123_4U EQU 0x15
P_M_OSC123_PB EQU 0x16
P_M_MOD_PM8 EQU 0x17
P_M_MOD_B76 EQU 0x18
P_M_LFO_4U EQU 0x19
P_M_LFO_PM8 EQU 0x1a
P_M_LFO_8 EQU 0x1b
P_M_ENV_PM8 EQU 0x1c
P_M_ENV_8 EQU 0x1d
P_M_WT_6 EQU 0x1e
P_M_WT_7 EQU 0x1f
P_M_WT_POS EQU 0x20
P_M_NOTE EQU 0x21
P_M_OSC_INS_PM7 EQU 0x22
P_M_OSC_INS_PM8 EQU 0x23
P_M_OSC_INS_7 EQU 0x24
P_M_OSC_INS_8 EQU 0x25
P_M_OSC_INS_12 EQU 0x26
P_M_OSC_INS_4L EQU 0x27
P_M_OSC_INS_5L EQU 0x28
P_M_OSC_INS_6L EQU 0x29
P_M_OSC_INS_4U EQU 0x2a
P_M_OSC_INS_PB EQU 0x2b
P_M_OSC_BL_PM7 EQU 0x2c
P_M_OSC_BL_PM8 EQU 0x2d
P_M_OSC_BL_P8 EQU 0x2e
P_M_OSC_BL_7 EQU 0x2f
P_M_OSC_BL_8 EQU 0x30
P_M_OSC_BL_12 EQU 0x31
P_M_OSC_BL_4L EQU 0x32
P_M_OSC_BL_5L EQU 0x33
P_M_OSC_BL_6L EQU 0x34
P_M_OSC_BL_4U EQU 0x35
P_M_OSC_BL_PB EQU 0x36
P_M_OSC_BL_FIL12 EQU 0x37
P_M_OSC_BL_FIL8 EQU 0x38
P_M_DRM_8 EQU 0x39
P_M_DRM_PM8 EQU 0x3a
P_M_DRM_4U EQU 0x3b
P_M_DRM_4L EQU 0x3c
P_M_NOTE_INS EQU 0x3d
 
 
 
577,8 → 580,8
;; --[ 0x04-0x07 ]-----------------------------------------------------------------------------
PAR_ENTRY P_S_CUTOFF, P_N_FIL, P_M_FIL12, SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L
PAR_ENTRY P_S_RESONANCE, P_N_FIL, P_M_FIL8, SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_RESONANCE
PAR_ENTRY P_S_NOP, P_N_NOP, P_M_NOP, 0
PAR_ENTRY P_S_NOP, P_N_NOP, P_M_NOP, 0
PAR_ENTRY P_S_CUTOFF, P_N_FIL_L, P_M_FIL12_DIRECT,SID_Ix_L_S1F_BASE+SID_Ix_L_Fx_CUTOFF_L ; located here, since there is no other space free
PAR_ENTRY P_S_CUTOFF, P_N_FIL_R, P_M_FIL12_DIRECT,SID_Ix_L_S2F_BASE+SID_Ix_L_Fx_CUTOFF_L ; located here, since there is no other space free
;; --[ 0x08-0x0f ]-----------------------------------------------------------------------------
PAR_ENTRY P_S_KNOB, P_N_KNOB, P_M_8, SID_Ix_P_K1_BASE+SID_Ix_Px_VALUE
PAR_ENTRY P_S_KNOB, P_N_KNOB, P_M_8, SID_Ix_P_K2_BASE+SID_Ix_Px_VALUE
/trunk/apps/synthesizers/midibox_sid_v2/src/sid_lcd.inc
258,10 → 258,12
 
;; print target (7 characters)
movf TMP3, W
JUMPTABLE_2BYTES 19 ; entries
JUMPTABLE_2BYTES 21 ; entries
rgoto SID_LCD_LongParName_NOP
rgoto SID_LCD_LongParName_OSC
rgoto SID_LCD_LongParName_FIL
rgoto SID_LCD_LongParName_FIL_L
rgoto SID_LCD_LongParName_FIL_R
rgoto SID_LCD_LongParName_KNOB
rgoto SID_LCD_LongParName_EXT
rgoto SID_LCD_LongParName_OSC123
304,7 → 306,23
TABLE_ADDR SID_LCD_LongParName_FIL_STR
movlw 7
goto MIOS_LCD_PrintPreconfString
 
SID_LCD_LongParName_FIL_L
;; "FilterL"
TABLE_ADDR SID_LCD_LongParName_FIL_STR
movlw 6
call MIOS_LCD_PrintPreconfString
movlw 'L'
rgoto SID_LCD_PrintChar
SID_LCD_LongParName_FIL_R
;; "FilterR"
TABLE_ADDR SID_LCD_LongParName_FIL_STR
movlw 6
call MIOS_LCD_PrintPreconfString
movlw 'R'
rgoto SID_LCD_PrintChar
SID_LCD_LongParName_KNOB_TAB
db '1', '2', '3', '4', '5', 'V', 'P', 'A'
SID_LCD_LongParName_KNOB