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.