MoreKeys module version log =========================== v0.00 2012/03/12 Started program. v0.01 2012/03/20 First working version, hardwired to UK.Latin1 and works with mouse input. v0.02 2012/03/28 First releasable version. Supports mappings, keyboard entry, and changes to configuration while in use. Removed most library routines and all but two calls to _kernel_swi. These are now custom functions, written in assembler. The rationale behind this is to have a complete self-contained program that will compile with no more than the standard libraries (and because I can) to save problems of "is this 32 bit safe?". v0.03 2012/03/31 Fixed bug where it was not possible to select or enter while Shift was being held. Fixed bug (I think?) where spurious blank icon was being drawn at the end of the list in certain specific situations. Initial caps state and Shift behaviour now follows the keyboard, including mimicing ShiftEnable. v0.04 2012/04/03 Optimisations. R0-R3 are trashable under APCS, so no more saving registers that the compiler will already have saved. No longer use load/store multiples to load/store a single word. Don't need to be paranoid and keep stacking LR for USR R14 won't be overwritten by a SWI (SVC R14). And so on. Made file loader for mappings files more resiliant. Now, for RISC OS 5 using UTF8 alphabet, caters for UTF8 extended characters. Now all we need is pretty much everything else to catch up. ;-) v0.05 2012/04/14 Updated MoreKeys module to no disallow the use of Ctrl-Alt-Tab, so it can work alongside desktop extenders and the like. Fixed problem where switching to UTF-8 with MoreKeys already loaded would cause it to cease working (it was trying to load an invalid mapping file). Increased definitions buffer to 64 entries, as the previous 40 would not have been sufficient for katakana/hiragana. Some preparations for "UTF-8-direct" operation. Reduced WimpSlot. Code tidy-ups, clarified some of the comments. v0.06 2012/04/18 Stricter checking for cases where the module may be RMKilled without the front-end being terminated first. Now handled more gracefully. Front-end now removes the MoreKeys module on exit. Auto-highlights the last character selected, useful for when you need the same character a lot, like 'é' in French... v0.07 2012/08/09 Hardened !Run file to better check for required resources (CLib, etc). Added support for "Colourful" mode (yellow-on-blue) introduced by the MKSetup program. Looks for configuration file, first in Choices and then within itself. Ditto keyboard mappings (thus allowing mappings held in Choices to overrule those supplied by default. Added German Latin1 mapping, kindly created by Carlos Michael Santillán. v0.08 2013/03/12 PollIdle bugette fixed. Now correctly loads mappings from Choices *first* if present there. Otherwise reverts to app-internal ones. Now regularly checks the current keyboard/country and auto-disables MoreKeys behaviour on unsupported configurations. This also provides a framework for disabling MoreKeys while the Cerilica MMK driver is in use (apparently it clashes), however because I do not have a copy of this driver module, I cannot detect when it is in use...