anchor.diff:    KM_Defaults;
   
   const
  -  //Screen.Cursors[0] is used by System default cursor
  +  // Screen.Cursors[0] is used by System default cursor
     COUNT_OFFSET = 1;
   
  -  //Indexes of cursor images in GUI.RX
  -  CURSORS: array [TKMCursor] of Word = (
  +  // Indexes of cursor images in GUI.RX
  +  CURSOR_SPRITE_INDEX: array [TKMCursor] of Word = (
       1, 452, 457, 460, 450, 453, 449,
       511,  512, 513, 514, 515, 516, 517, 518, 519,
       4, 7, 3, 9, 5, 8, 2, 6,
       456, 451, 999, 661);
   
  -  //Which cursor is used for which direction
  -  TKMCursorDirections: array [TKMDirection] of TKMCursor = (
  +  // Which cursor is used for which direction
  +  DIRECTION_CURSOR: array [TKMDirection] of TKMCursor = (
       kmcDirNA, kmcDir0, kmcDir1, kmcDir2, kmcDir3, kmcDir4, kmcDir5, kmcDir6, kmcDir7);
   
   
   { TKMResCursors }
   function TKMResCursors.GetCursor: TKMCursor;
   begin
  -  if InRange(Screen.Cursor - COUNT_OFFSET, Byte(Low(TKMCursor)), Byte(High(TKMCursor))) then
  +  if InRange(Screen.Cursor - COUNT_OFFSET, Ord(Low(TKMCursor)), Ord(High(TKMCursor))) then
       Result := TKMCursor(Screen.Cursor - COUNT_OFFSET)
     else
       Result := kmcDefault;
  
positive.code: procedure TKMResCursors.SetCursor(Value: TKMCursor);
  begin
    if SKIP_LOADING_CURSOR then Exit;
    Screen.Cursor := Byte(Value) + COUNT_OFFSET;
  end;
  
  
  
negative.code: 
    for KMC := Low(TKMCursor) to High(TKMCursor) do
    begin
      // Special case for invisible cursor
      if KMC = kmcInvisible then
      begin
        bm.Width  := 1; bm.Height  := 1;
  