|
@@ -193,6 +193,7 @@ var
|
|
nostdout: boolean;
|
|
nostdout: boolean;
|
|
UnitList: TPpuContainerDef;
|
|
UnitList: TPpuContainerDef;
|
|
CurUnit: TPpuUnitDef;
|
|
CurUnit: TPpuUnitDef;
|
|
|
|
+ SkipVersionCheck: boolean;
|
|
|
|
|
|
|
|
|
|
{****************************************************************************
|
|
{****************************************************************************
|
|
@@ -932,8 +933,7 @@ begin
|
|
idx:=ppufile.getlongint;
|
|
idx:=ppufile.getlongint;
|
|
if (idx>derefdatalen) then
|
|
if (idx>derefdatalen) then
|
|
begin
|
|
begin
|
|
- writeln(['!! Error: Deref idx ',idx,' > ',derefdatalen]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! Error: Deref idx '+IntToStr(idx)+' > '+IntToStr(derefdatalen));
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
write([derefspace,'(',idx,') ']);
|
|
write([derefspace,'(',idx,') ']);
|
|
@@ -983,8 +983,7 @@ begin
|
|
end;
|
|
end;
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- writeln(['!! unsupported dereftyp: ',ord(b)]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! unsupported dereftyp: '+IntToStr(ord(b)));
|
|
break;
|
|
break;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
@@ -2017,9 +2016,8 @@ var
|
|
begin
|
|
begin
|
|
if ppufile.readentry<>ibcreatedobjtypes then
|
|
if ppufile.readentry<>ibcreatedobjtypes then
|
|
begin
|
|
begin
|
|
- writeln('!! ibcreatedobjtypes entry not found');
|
|
|
|
|
|
+ WriteError('!! ibcreatedobjtypes entry not found');
|
|
ppufile.skipdata(ppufile.entrysize);
|
|
ppufile.skipdata(ppufile.entrysize);
|
|
- SetHasErrors;
|
|
|
|
exit
|
|
exit
|
|
end;
|
|
end;
|
|
writeln;
|
|
writeln;
|
|
@@ -2246,8 +2244,7 @@ begin
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
realvalue:=0.0;
|
|
realvalue:=0.0;
|
|
- writeln([realvalue,' Error reading real value']);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('Error reading real value');
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
constset :
|
|
constset :
|
|
@@ -2480,8 +2477,7 @@ begin
|
|
|
|
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- WriteLn(['!! Skipping unsupported PPU Entry in Symbols: ',b]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! Skipping unsupported PPU Entry in Symbols: '+IntToStr(b));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
if (def <> nil) and (def.Parent = nil) then
|
|
if (def <> nil) and (def.Parent = nil) then
|
|
@@ -3133,8 +3129,7 @@ begin
|
|
|
|
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- WriteLn(['!! Skipping unsupported PPU Entry in definitions: ',b]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! Skipping unsupported PPU Entry in definitions: '+IntToStr(b));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
if (def <> nil) and (def.Parent = nil) then
|
|
if (def <> nil) and (def.Parent = nil) then
|
|
@@ -3307,8 +3302,7 @@ begin
|
|
|
|
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- WriteLn(['!! Skipping unsupported PPU Entry in General Part: ',b]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! Skipping unsupported PPU Entry in General Part: '+IntToStr(b));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
until false;
|
|
until false;
|
|
@@ -3345,8 +3339,7 @@ begin
|
|
break;
|
|
break;
|
|
else
|
|
else
|
|
begin
|
|
begin
|
|
- WriteLn(['!! Skipping unsupported PPU Entry in Implementation: ',b]);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError('!! Skipping unsupported PPU Entry in Implementation: '+IntToStr(b));
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
until false;
|
|
until false;
|
|
@@ -3370,8 +3363,7 @@ begin
|
|
{ PPU File is open, check for PPU Id }
|
|
{ PPU File is open, check for PPU Id }
|
|
if not ppufile.CheckPPUID then
|
|
if not ppufile.CheckPPUID then
|
|
begin
|
|
begin
|
|
- writeln([Filename,' : Not a valid PPU file, Skipping']);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError(Filename+' : Not a valid PPU file, Skipping');
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
{ Check PPU Version }
|
|
{ Check PPU Version }
|
|
@@ -3380,8 +3372,13 @@ begin
|
|
Writeln(['Analyzing ',filename,' (v',PPUVersion,')']);
|
|
Writeln(['Analyzing ',filename,' (v',PPUVersion,')']);
|
|
if PPUVersion<16 then
|
|
if PPUVersion<16 then
|
|
begin
|
|
begin
|
|
- writeln([Filename,' : Old PPU Formats (<v16) are not supported, Skipping']);
|
|
|
|
- SetHasErrors;
|
|
|
|
|
|
+ WriteError(Filename+' : Old PPU Formats (<v16) are not supported, Skipping');
|
|
|
|
+ exit;
|
|
|
|
+ end;
|
|
|
|
+
|
|
|
|
+ if not SkipVersionCheck and (PPUVersion <> CurrentPPUVersion) then
|
|
|
|
+ begin
|
|
|
|
+ WriteError(Format('Unsupported PPU version %d. Expecting PPU version %d.', [PPUVersion, CurrentPPUVersion]));
|
|
exit;
|
|
exit;
|
|
end;
|
|
end;
|
|
|
|
|
|
@@ -3542,13 +3539,13 @@ begin
|
|
writeln(' t - text format (default)');
|
|
writeln(' t - text format (default)');
|
|
writeln(' j - JSON format');
|
|
writeln(' j - JSON format');
|
|
writeln(' -M Exit with ExitCode=2 if more information is available');
|
|
writeln(' -M Exit with ExitCode=2 if more information is available');
|
|
|
|
+ writeln(' -S Skip PPU version check. May lead to reading errors');
|
|
writeln(' -V<verbose> Set verbosity to <verbose>');
|
|
writeln(' -V<verbose> Set verbosity to <verbose>');
|
|
writeln(' H - Show header info');
|
|
writeln(' H - Show header info');
|
|
writeln(' I - Show interface');
|
|
writeln(' I - Show interface');
|
|
writeln(' M - Show implementation');
|
|
writeln(' M - Show implementation');
|
|
writeln(' S - Show interface symbols');
|
|
writeln(' S - Show interface symbols');
|
|
writeln(' D - Show interface definitions');
|
|
writeln(' D - Show interface definitions');
|
|
-// writeln(' B - Show browser info');
|
|
|
|
writeln(' A - Show all');
|
|
writeln(' A - Show all');
|
|
writeln(' -h, -? This helpscreen');
|
|
writeln(' -h, -? This helpscreen');
|
|
halt;
|
|
halt;
|
|
@@ -3590,6 +3587,7 @@ begin
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
'M' : error_on_more:=true;
|
|
'M' : error_on_more:=true;
|
|
|
|
+ 'S' : SkipVersionCheck:=True;
|
|
'V' : begin
|
|
'V' : begin
|
|
verbose:=0;
|
|
verbose:=0;
|
|
for i:=3 to length(para) do
|
|
for i:=3 to length(para) do
|