Direct key table option
2004-10-14 by Robert van der Kamp
I've asked this before, iirc, but I want to give it another shot. 1. The P3 has a number of key combinations (press key X+Y to do Z) built into the user interface that I optionally liked to be replaced with a dedicated key. 2. Afaik, the P3 has room for additional keys in the key scanner hardware. 3. Since I still haven't designed my front plate, I have space for, say, a block of 9 addtional keys. 4. As keycombos are added, to my taste for direct keys changes, I'd like to be able to change the function of the direct keys, by modding the executable myself. So here's my suggestion: - Add support for a number of additional keys in the OS, say 16. I call theys OptKeys (for Optional Keys). - Add a OptKey table in the OS. This is a vector of bytes, one byte for each OptKey (so 16 bytes in our example). Default value is all zeroes. - Define an enum with no more than 255 function codes that represent the functions that are called by pressing key combos. Codes for other functions can be added too. - Add code in the OS that scans the OptKeys. When one of them is detected as pused down, use its key index (say #5) to lookup the function code in the OptKey table. Based on the function code, perform the corresponding function. A (default) function code of value 0 indicates no action. - When an OS is released, supply the offset in the binary for the OptKey table, so that we users can hack our own OptKey functions into the OS, without bothering Colin for that. Every one can now have its own optional keys, with whatever layout. :)