anchor.diff:  begin
     Result := 0;
     if not FileExists(aPath) then
  -    exit;
  +    Exit;
   
     S := TMemoryStream.Create;
     try
  
positive.code:   procedure SwapInt(var A, B: NativeUInt); overload;
    {$ENDIF}
    procedure SwapFloat(var A, B: Single);
    function Equals(A, B: single; const Epsilon: single = 0.001): Boolean;
  
  function MakePOT(num:integer): integer;
  function Adler32CRC(TextPointer:Pointer; TextLength:cardinal):cardinal; overload;
  function Adler32CRC(const aPath:string):cardinal; overload;
  function Adler32CRC(S:TMemoryStream):cardinal; overload;
  function RandomS(Range_Both_Directions:integer):integer; overload;
  function RandomS(Range_Both_Directions:single):single; overload;
  function PseudoRandom(aMax:cardinal):cardinal;
  
negative.code: 
  {$IFDEF WDC}
  procedure SwapInt(var A,B: NativeUInt);
  var s: NativeUInt;
  begin
    s:=A; A:=B; B:=s;
  end;
  {$ENDIF}
  
  procedure SwapFloat(var A,B:single);
  var s: Single;
  begin
    s:=A; A:=B; B:=s;
  end;
  
  
  function Equals(A,B: Single; const Epsilon: Single = 0.001): Boolean;
  begin
    Result := Abs(A-B) <= Epsilon;
  end;
  
  
  function Adler32CRC(TextPointer: Pointer; TextLength: Cardinal): Cardinal;
  var
    I, A, B: Cardinal;
  begin
    A := 1;
    B := 0; // A is initialized to 1, B to 0
    for I := 1 to TextLength do
    begin
      Inc(A, pbyte(Cardinal(TextPointer) + I - 1)^);
      Inc(B, A);
    end;
    A := A mod 65521; // 65521 (the largest prime number smaller than 2^16)
    B := B mod 65521;
  