anchor.diff:  
   function TKMResolutions.GetItem(aIndex: Integer): TKMScreenResData;
   begin
  -  //Make sure we access valid item
     Assert(InRange(aIndex, 0, fCount - 1));
     Result := fItems[aIndex];
   end;
  
positive.code: 
  
  procedure TKMResolutions.ReadAvailable;
  var
    I,M,N: Integer;
    {$IFDEF MSWindows}DevMode: TDevMode;{$ENDIF}
  begin
    {$IFDEF MSWindows}
    I := 0;
    fCount := 0;
    while EnumDisplaySettings(nil, I, DevMode) do
    with DevMode do
    begin
      Inc(I);
      //Take only 32bpp modes
      //Exclude rotated modes, as Win reports them too
      if SupportedRes(dmPelsWidth, dmPelsHeight, dmDisplayFrequency, dmBitsPerPel) then
      begin
        //Find next empty place and avoid duplicating
        N := 0;
        while (N < fCount) and (fItems[N].Width <> 0)
              and ((fItems[N].Width <> dmPelsWidth) or (fItems[N].Height <> dmPelsHeight)) do
          Inc(N);
        if (fCount < N+1) then
        begin
          //increasing length of array
          SetLength(fItems, N+1);
          //we don't want random data in freshly allocated space
          FillChar(fItems[N], SizeOf(TKMScreenResData), #0);
          inc(fCount);
        end;
        if (N < fCount) and (fItems[N].Width = 0) then
        begin
          fItems[N].Width := dmPelsWidth;
          fItems[N].Height := dmPelsHeight;
        end;
        //Find next empty place and avoid duplicating
        M := 0;
        while (N < fCount) and (M < fItems[N].RefRateCount)
  
negative.code:             and (fItems[N].RefRate[M] <> dmDisplayFrequency) do
          Inc(M);
  
        if M+1 > fItems[N].RefRateCount then
        begin
          SetLength(fItems[N].RefRate, M+1);
          FillChar(fItems[N].RefRate[M], SizeOf(Word), #0);
          Inc(fItems[N].RefRateCount);
        end;
  
        if (M < fItems[N].RefRateCount) and (N < fCount) and (fItems[N].RefRate[M] = 0) then
  