anchor.diff:    seachInfo := FindFirstFile( pchar(path + '*.pas'), fileData );
     if seachInfo = INVALID_HANDLE_VALUE then
       exit;
  +  if numNonSysUnit >= nonSystemUnitArrayLength then
  +  begin
  +    nonSystemUnitArrayLength := nonSystemUnitArrayLength + 32;
  +    SetLength( nonSystemUnit, nonSystemUnitArrayLength );
  +    SetLength( nonSystemUnitFile, nonSystemUnitArrayLength );
  +  end;
     ScanUnitName( path + fileData.cFileName, numNonSysUnit );
     inc( numNonSysUnit );
   
     while FindNextFile( seachInfo, fileData )  do
     begin
  +    if numNonSysUnit >= nonSystemUnitArrayLength then
  +    begin
  +      nonSystemUnitArrayLength := nonSystemUnitArrayLength + 32;
  +      SetLength( nonSystemUnit, nonSystemUnitArrayLength );
  +      SetLength( nonSystemUnitFile, nonSystemUnitArrayLength );
  +    end;
       ScanUnitName( path + fileData.cFileName, numNonSysUnit );
       inc( numNonSysUnit );
     end;
  
positive.code: procedure TDependenciesGrapher.Analyse();
  var
      nonSysUnId : integer;
  begin
    repeat
      unitAnalysed[unitAnalysedCount] := unitForAnalyse[unitStackPos-1];
      inc(unitAnalysedCount);
      dec(unitStackPos);
  
negative.code:   for i := 0 to unitAnalysedCount - 1 do
    begin
      id := GetUnitId( unitAnalysed[i] );
      for j := 0 to numNonSysUnit - 1 do
      begin
        if graph[id][j] > 0 then
          writeln( f, id, ';', j, ';', graph[id][j] );
  