mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 16:06:09 +02:00
+ calculate and fill "min extra paragraphs" in the MZ header
git-svn-id: trunk@31403 -
This commit is contained in:
parent
6665cec157
commit
faa9362b44
@ -277,6 +277,7 @@ interface
|
||||
procedure WriteMap_HeaderData;
|
||||
function FindStackSegment: TMZExeUnifiedLogicalSegment;
|
||||
procedure FillLoadableImageSize;
|
||||
procedure FillMinExtraParagraphs;
|
||||
procedure FillStartAddress;
|
||||
procedure FillStackAddress;
|
||||
procedure FillHeaderData;
|
||||
@ -2163,6 +2164,8 @@ implementation
|
||||
begin
|
||||
exemap.AddHeader('Header data');
|
||||
exemap.Add('Loadable image size: '+HexStr(Header.LoadableImageSize,8));
|
||||
exemap.Add('Min extra paragraphs: '+HexStr(Header.MinExtraParagraphs,4));
|
||||
exemap.Add('Max extra paragraphs: '+HexStr(Header.MaxExtraParagraphs,4));
|
||||
exemap.Add('Initial stack pointer: '+HexStr(Header.InitialSS,4)+':'+HexStr(Header.InitialSP,4));
|
||||
exemap.Add('Entry point address: '+HexStr(Header.InitialCS,4)+':'+HexStr(Header.InitialIP,4));
|
||||
end;
|
||||
@ -2205,6 +2208,14 @@ implementation
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMZExeOutput.FillMinExtraParagraphs;
|
||||
var
|
||||
ExeSec: TMZExeSection;
|
||||
begin
|
||||
ExeSec:=MZFlatContentSection;
|
||||
Header.MinExtraParagraphs:=(align(ExeSec.Size,16)-align(Header.LoadableImageSize,16)) div 16;
|
||||
end;
|
||||
|
||||
procedure TMZExeOutput.FillStartAddress;
|
||||
var
|
||||
EntryMemPos: qword;
|
||||
@ -2240,6 +2251,7 @@ implementation
|
||||
begin
|
||||
Header.MaxExtraParagraphs:=$FFFF;
|
||||
FillLoadableImageSize;
|
||||
FillMinExtraParagraphs;
|
||||
FillStartAddress;
|
||||
FillStackAddress;
|
||||
if assigned(exemap) then
|
||||
|
Loading…
Reference in New Issue
Block a user