anchor.diff:    LTrimmed: string;
     LVal: Integer;
     P: PChar;
  -  ValData: TMagnitude;
  -  ValSize: Integer;
  -  BigIntBase: BigInteger;
   begin
     Result := False;
     LTrimmed := Trim(S);
     if LTrimmed = '' then
       Exit;
     LIsNegative := False;
  -  BigIntBase := Base;
   
     AValue := BigInteger.Zero;
   
  
positive.code: end;
  
  const
    PowersOfTen: array[1..9] of Integer = (10, 100, 1000, 10*1000, 100*1000, 1000*1000,
                                           10*1000*1000, 100*1000*1000, 1000*1000*1000);
  
  class function BigInteger.InternalParseDecimal(P: PChar; var Value: BigInteger): Boolean;
  var
    Cumulative: Cardinal;
    N: Integer;
  begin
    Result := False;
    while P^ <> #0 do
    begin
  
negative.code: var
    NewData: PByte;
    NewSize: Integer;
  begin
    NewSize := (RequiredSize + 3) and BigInteger.CapacityMask;
    NewData := AllocMem(NewSize * CLimbSize + SizeOf(TDynArrayRec));
    PDynArrayRec(NewData).RefCnt := 1;
    PDynArrayRec(NewData).Length := NewSize;
    PByte(FData) := NewData + SizeOf(TDynArrayRec);
  end;
  
  { BigInteger }
  