anchor.diff:    bm  := TBitmap.Create; bm.HandleType  := bmDIB; bm.PixelFormat  := pf32bit;
     bm2 := TBitmap.Create; bm2.HandleType := bmDIB; bm2.PixelFormat := pf32bit;
   
  -  for KMC := Low(KMC) to High(KMC) do
  +  for KMC := Low(TKMCursor) to High(TKMCursor) do
     begin
   
       //Special case for invisible cursor
  
positive.code:   SF = 17; //Full width/height of a scroll cursor
    SH = 8; //Half width/height of a scroll cursor
    //Measured manually
    CursorOffsetsX: array [TKMCursor] of Integer = (0,0,20, 0, 0,-8, 9,0, 1,1,1,0,-1,-1,-1,0, SH,SF,SF,SF,SH, 0, 0,0, 0,0,27,0);
    CursorOffsetsY: array [TKMCursor] of Integer = (0,9,10,18,20,44,13,0,-1,0,1,1, 1, 0,-1,0, 0 ,0 ,SH,SF,SF,SF,SH,0,28,0,28,0);
  var
    KMC: TKMCursor;
    sx,sy,x,y: Integer;
  
negative.code:     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 = (
  