anchor.diff:      function GetFunctionNameById(aId: Integer): string;
       function AllowKeySet(aArea: TKMKeyArea; aKey: Word): Boolean;
       function SetKey(aId: Integer; aKey: Word): Boolean;
  -    property Count: Integer read fCount;
  -    property Funcs[aIndex: Word]: TKMFuncInfo read GetFuncs; default;
  +    function Count: Integer;
  +    property Funcs[aIndex: Word]: TKMFuncInfo read GetFunc; default;
       procedure LoadKeymapFile;
       procedure ResetKeymap;
       procedure SaveKeymap;
  
positive.code: 
  function TKMKeyLibrary.GetFunctionNameById(aId: Integer): string;
  begin
    case aId of
      0..KEYMAP_COUNT - 1: Result := gResTexts[KEY_FUNC_TX[aId]];
    else
      Result := gResTexts[TX_KEY_FUNC_UNKNOWN] + ' ' + IntToStr(aId) + '! ~~~';
    end;
  end;
  
  
  
negative.code: end;
  
  
  function TKMKeyLibrary.Count: Integer;
  begin
    Result := KEYMAP_COUNT;
  end;
  
  
  // Each line in .keymap file has an index and a key value. Lines without index are skipped
  procedure TKMKeyLibrary.LoadKeymapFile;
  var
  