uhm…
that is not encouraging!! 
anyway, what i’d be interested into is only adding the snap mode by default (i.e. the analog pots always behaves in that mode) for the pots of my midibox 64e…
i guess that the code to be used is this one (from mb64_pots.inc):
MB64_POT_ConvSnap
;; "snap" mode selected: "soft-takeover"
;; branch depending on clockwise or counter clockwise turn
;; means: last value <= new value
movf MB64_POT_LAST_VALUE, W, BANKED
IFLEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_ConvSnap_CClockwise
MB64_POT_ConvSnap_Clockwise
;; pot has been moved clockwise
;; exit if if new value <= active value
movf INDF0, W
IFLEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend
;; exit if active value >= last value
IFGEQ MB64_POT_LAST_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend
;; else continue
rgoto MB64_POT_ConvBypass
MB64_POT_ConvSnap_CClockwise
;; pot has been counter clockwise
;; exit if if new value >= active value
movf INDF0, W
IFGEQ MB64_POT_NEW_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend
;; exit if active value <= last value
IFLEQ MB64_POT_LAST_VALUE, BANKED, rgoto MB64_POT_Conv_DontSend
;; else continue
rgoto MB64_POT_ConvBypass
;; ------------------------------------------------------------------
MB64_POT_ConvBypass
;; save new value in active value
movff MB64_POT_NEW_VALUE, INDF0
;; ------------------------------------------------------------------
MB64_POT_Conv_DontSend
andlw 0x00 ; (set zero bit)
return
that is to be included, in some way, into mb64e_fader.inc in this position:
;; --------------------------------------------------------------------------
;;Â This function is used to send a fader value
;;Â Input:
;;Â Â Â o fader number in MB64E_CURRENT_ENTRY
;;Â Â Â o absolute position in WREG
;; --------------------------------------------------------------------------
MB64E_FADER_Send
;; store current position in TMP1
movwf TMP1
;; scale value depending on Min/Max entry
;; calc address to Min/Max entry:
call MB64E_ADDR_FaderEntry
;; select the 3rd byte
movlw 3-1
addwf MB_ADDRL, F
;; scale value:
;; copy min value to MB64E_ENTRY_MIN_VALUE
;; copy max value to MB64E_ENTRY_MAX_VALUE
;; move fader value to WREG
call MB64E_BANK_Read
movff WREG, MB64E_ENTRY_MIN_VALUE
call MB64E_BANK_Read
movff WREG, MB64E_ENTRY_MAX_VALUE
movf TMP1, W
call MB64E_FADER_ScaleValue
;; store result in MB64E_FADER_NEW_VALUE
movff WREG, MB64E_FADER_NEW_VALUE
;; get pointer to FADER_VALUE_xx register
call MB64E_FSR_FaderValue
;; store value in MB64E_FADER_VALUE
movff INDF0, MB64E_FADER_LAST_VALUE
;; copy the new value into this location for the next call
movff MB64E_FADER_NEW_VALUE, INDF0
;; if new value == old value, branch to the end
SET_BSR MB64E_BASE
movf MB64E_FADER_NEW_VALUE, W, BANKED
xorwf MB64E_FADER_LAST_VALUE, W, BANKED
bz MB64E_FADER_Send_End
;; store new value
call MB64E_FSR_FaderValue
movff MB64E_FADER_NEW_VALUE, INDF0
;; send MIDI value
call MB64E_MIDI_SendFaderEvent
;; clear request fader pos update
bcf MB_STAT3, MB_STAT3_FADER_UPDATE_REQ
bcf MB_STAT3, MB_STAT3_FADER_SOFT_UPDATE_REQ
;; request display update
bsf CS_STAT, CS_STAT_DISPLAY_UPDATE_REQ
;; reset the cursor of the CS
call CS_MENU_ResetCursor
MB64E_FADER_Send_End
return
however, i make a lot of confusion when i try to understand what the code exacly does… and where to insert the new code…
moreover, if i use new variables or subroutines, i feel that i have to declare them somewhere and to assign memory locations…
maybe, i could use variables needed for the motorfaders/touchsensors, which i don’t use
perhaps in appdefines.h (which for me is a nightmare!!!)
some help!??!