Keymap Bank Manual
The Original MK64 can only store one keymap at time. The key codes for the 64 inputs are stored in EEPROM. That means it remembers the key codes with the power off. However, the shift keys are stored in RAM and must be initialized every time the MK64 turns on or reboots. The best method is to set the shift keys from the AUTOEXEC.BAT file.
The MK64 now has three keymap banks. Bank usage is optional. The power on default bank is bank 0. It is not required to use the other keymap banks. The 64 inputs in banks 0 & 1 are stored in EEPROM and bank 2 is stored in RAM. The shift keys for all three banks are stored in RAM. This means that inputs in bank 2 and all the shift keys must be initialized on power up or after reboot.
The MK64 has an error in the board layout that causes order of the inputs 40 through 63 not to be in the same order as the IDC header pin out. The keymap program compensates for the error and it transparent to the user. The only reason I bring that up is that the special features are assigned to logical keymap locations and therefore don't need the keymap program correction. In simple terms; if you program a keymap bank to store key codes, it's business as usual. If you program a bank to perform special functions such as macros and startup initialization, add this line to the keymap file, "NOSWAP". It's that simple.
Bank 0 is always a keymap bank and can't be used to store macro scripts, however, it can be programmed to call macros.
Bank 1 is special in the fact that in can store a keymap or can be used for other purposes. This will be explained later.
Bank 2 is used as a keymap bank or as extra storage for macro scripts.
Since Bank1 is used for many other purposes it maybe best to use BANKS 0 & 2 as your main hot swapable key map banks.
Bank 1 Special Locations (Use NOSWAP)
Bank 1: IN 00 through IN15 are pointers to the starting address of macros 00 through 15. If macros are needed, bank 1 should not be used as a keymap bank.
Bank 1: IN 00 through IN71 can hold macro instructions (scripts) The macro addresses of these locations are the same as the input number, 0 through 71. Note: Inputs 64 through 71 are the same as the shift enable, SH 00, and the seven shift keys, SH 00 through SH 07. Remember, that's RAM locations.
Bank 1: IN 63 can be used as a flag to get the MK64 to initialize start up values on power up or reboot. If it's value in hex is B1 through BF, the MK64 will set certain values on power up or reboot. Below are three useful start up initialization commands. (use NOSWAP in the keymap file)
IN 63 $B1 SHIFT KEYS ON & DEFINED
IN 63 $B2 TYPEMATIC ENABLED
IN 63 $B3 SHIFT KEYS ON & DEFINED, TYPEMATIC ENABLED
If Bank 1: IN63 is set to B1 or B3, shift keys will be enabled and the shift key codes will be copied from bank1: IN 56 to 62
IN 56 ESC SHIFT KEY 01
IN 57 ` SHIFT KEY 02
IN 58 TAB SHIFT KEY 03
IN 59 P SHIFT KEY 04
IN 60 ENTER SHIFT KEY 05
IN 61 5 SHIFT KEY 06
IN 62 6 SHIFT KEY 07
Bank 2 Special Locations (Use NOSWAP)
Bank 2: IN 00 through IN95 can hold macro instructions (scripts) The macro addresses of these locations are 72 higher than the input number, 72 through 167. Note: Inputs 64 through 71 are the same as the shift enable, SH00, and the seven shift keys, SH 00 through SH 07. IN 72 through 95 are only usable by the macro processor. Remember, every bank 2 location is stored in RAM.