USER mode concept issue
I am playing around with USER mode in the code, setting up some hard coded USER defaults (to create small groups of USER mode settings that can be easily set and reset from the menu).
I saw that the key decode from _usr or _std in keyboard.c:
key = userModeEnabled ? (kbd_usr + (*((char *)data) - '0')*10 + *(((char *)data)+1) - '0') : (kbd_std + (*((char *)data) - '0')*10 + *(((char *)data)+1) - '0');
also gets the key value from _usr in AIM and TAM modes. This prevents the correct use of the alphabetic characters in AIM and the shortcuts in TAM for keys that are re-assigned.
I hacked a way round it, by only doing substitution for CM_NORMAL. I am pretty sure this is too much of a simplistic hack. I changed:
key = userModeEnabled && (calcMode == CM_NORMAL) ? ...
Another way could be to when entering AIM to switch off USER mode, do AIM, and upon return to CM_NORMAL, restore the USER mode to what it was. I'm sure there are better ways I can't think of.
I don't need an answer or a fix, this is just a headsup that you will also have to consider this at some point.