Hi,
I just found a very ugly bug in the overworked debounce handler, which exists since MIOS V1.9c - after a “call USER_SR_Service_Finish” I forgot to change the register bank before checking a variable which is realted to debouncing.
It can happen - depending on the code within USER_SR_Service_Finish", that changes on digital inputs will be ignored.
I think it could be useful to inform you before you are starting endless troubleshooting. A new MIOS version will be released soon.
I did some quick checks in following applications:
- MIDIbox SEQ V3 (where I found it): DINs disabled if more than 8 keys are played on a MIDI keyboard (note stack overrides debounce counter)
- MIDIbox SEQ V2: not affected (no BSR change)
- MIDIbox SID V1: not affected (no BSR change)
- MIDIbox SID V2: not affected (no BSR change)
- MIDIbox FM: not affected (no BSR change)
- MIDIbox64/64E: not affected (no BSR change)
- MIDIO128: bug disables debouncing, no other effect
- MIDIbox LC: not affected (no BSR change)
- MIDIbox CV: not affected (no BSR change)
- your own applications: please check if USER_SR_Service_Finish is used. Workaround: add “SET_BSR 0x500” before return
Best Regards, Thorsten.