anchor.diff:  
   const
     KEYMAP_COUNT = 57;
  -   
  -  // Load key IDs from this include file
  +
  +  // Load key IDs from inc file
     {$I KM_KeyIDs.inc}
  -
  -  // Default keys
  -  DEF_KEYS: array [0..KEYMAP_COUNT-1] of Byte = (
  -    37,  39,  38,  40, 112, 113, 114, 115,  72,  83,
  -    76,  70,  88, 187, 189, 190, 188, 116, 117, 118,
  -    119, 66,  80,  84,  34,  33,   8,  49,  50,  51,
  -    52,  53,  54,  55,  56,  57,  48,  32,  46,  13,
  -    27,  77,  86,  68,  67,  13, 112, 113, 114, 115,
  -    116, 49,  50,  51,  52,  53,  54
  -  );
  -
  -  // Function text values
  -  KEY_FUNC_TX: array [0..KEYMAP_COUNT-1] of Word = (
  -    TX_KEY_FUNC_SCROLL_LEFT, TX_KEY_FUNC_SCROLL_RIGHT, TX_KEY_FUNC_SCROLL_UP, TX_KEY_FUNC_SCROLL_DOWN, TX_KEY_FUNC_MENU_BUILD,
  -    TX_KEY_FUNC_MENU_RATIO, TX_KEY_FUNC_MENU_STATS, TX_KEY_FUNC_MENU_MAIN, TX_KEY_FUNC_HALT, TX_KEY_FUNC_SPLIT,
  -    TX_KEY_FUNC_LINKUP, TX_KEY_FUNC_FOOD, TX_KEY_FUNC_STORM, TX_KEY_FUNC_FORM_INCREASE, TX_KEY_FUNC_FORM_DECREASE,
  -    TX_KEY_FUNC_TURN_CW, TX_KEY_FUNC_TURN_CCW, TX_KEY_FUNC_GAME_SPEED_1, TX_KEY_FUNC_GAME_SPEED_2, TX_KEY_FUNC_GAME_SPEED_3,
  -    TX_KEY_FUNC_GAME_SPEED_4, TX_KEY_FUNC_BEACON, TX_KEY_FUNC_PAUSE, TX_KEY_FUNC_SHOW_TEAMS, TX_KEY_FUNC_ZOOM_IN,
  -    TX_KEY_FUNC_ZOOM_OUT, TX_KEY_FUNC_ZOOM_RESET, TX_KEY_FUNC_SELECT_1, TX_KEY_FUNC_SELECT_2, TX_KEY_FUNC_SELECT_3,
  -    TX_KEY_FUNC_SELECT_4, TX_KEY_FUNC_SELECT_5, TX_KEY_FUNC_SELECT_6, TX_KEY_FUNC_SELECT_7, TX_KEY_FUNC_SELECT_8,
  -    TX_KEY_FUNC_SELECT_9, TX_KEY_FUNC_SELECT_10, TX_KEY_FUNC_CENTER_ALERT, TX_KEY_FUNC_DELETE_MSG, TX_KEY_FUNC_SHOW_GAME_CHAT,
  -    TX_KEY_FUNC_CLOSE_MENU, TX_KEY_FUNC_DBG_MAP, TX_KEY_FUNC_DBG_VICTORY, TX_KEY_FUNC_DBG_DEFEAT, TX_KEY_FUNC_DBG_SCOUT,
  -    TX_KEY_FUNC_MAPEDIT_EXTRA, TX_KEY_FUNC_MAPEDIT_TERAIN_EDIT, TX_KEY_FUNC_MAPEDIT_VILLAGE_PLAN, TX_KEY_FUNC_MAPEDIT_VISUAL_SCRIPT,
  -    TX_KEY_FUNC_MAPEDIT_GLOBAL_SCRIPT, TX_KEY_FUNC_MAPEDIT_MENU_MAIN, TX_KEY_FUNC_MAPEDIT_SUBMENU_1, TX_KEY_FUNC_MAPEDIT_SUBMENU_2,
  -    TX_KEY_FUNC_MAPEDIT_SUBMENU_3, TX_KEY_FUNC_MAPEDIT_SUBMENU_4, TX_KEY_FUNC_MAPEDIT_SUBMENU_5, TX_KEY_FUNC_MAPEDIT_SUBMENU_6
  -  );
   
     KEY_SEP_TX: array [TKMKeyArea] of Word = (
       TX_KEY_COMMON, TX_KEY_GAME, TX_KEY_MAPEDIT
  
positive.code:     procedure SaveKeymap;
    end;
  
  
  var
    // All Keys accessible from everywhere
    gResKeys: TKMKeyLibrary;
  
  
  implementation
  
  
  { TKMKeyLibrary }
  constructor TKMKeyLibrary.Create;
  
negative.code:     Key: Byte;
      TextId: Word;
      Area: TKMKeyArea;
      IsDebug: Boolean; // Hide key and function from UI
    end;
  
    TKMKeyLibrary = class
  