mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 03:39:33 +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;
|
procedure WriteMap_HeaderData;
|
||||||
function FindStackSegment: TMZExeUnifiedLogicalSegment;
|
function FindStackSegment: TMZExeUnifiedLogicalSegment;
|
||||||
procedure FillLoadableImageSize;
|
procedure FillLoadableImageSize;
|
||||||
|
procedure FillMinExtraParagraphs;
|
||||||
procedure FillStartAddress;
|
procedure FillStartAddress;
|
||||||
procedure FillStackAddress;
|
procedure FillStackAddress;
|
||||||
procedure FillHeaderData;
|
procedure FillHeaderData;
|
||||||
@ -2163,6 +2164,8 @@ implementation
|
|||||||
begin
|
begin
|
||||||
exemap.AddHeader('Header data');
|
exemap.AddHeader('Header data');
|
||||||
exemap.Add('Loadable image size: '+HexStr(Header.LoadableImageSize,8));
|
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('Initial stack pointer: '+HexStr(Header.InitialSS,4)+':'+HexStr(Header.InitialSP,4));
|
||||||
exemap.Add('Entry point address: '+HexStr(Header.InitialCS,4)+':'+HexStr(Header.InitialIP,4));
|
exemap.Add('Entry point address: '+HexStr(Header.InitialCS,4)+':'+HexStr(Header.InitialIP,4));
|
||||||
end;
|
end;
|
||||||
@ -2205,6 +2208,14 @@ implementation
|
|||||||
end;
|
end;
|
||||||
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;
|
procedure TMZExeOutput.FillStartAddress;
|
||||||
var
|
var
|
||||||
EntryMemPos: qword;
|
EntryMemPos: qword;
|
||||||
@ -2240,6 +2251,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
Header.MaxExtraParagraphs:=$FFFF;
|
Header.MaxExtraParagraphs:=$FFFF;
|
||||||
FillLoadableImageSize;
|
FillLoadableImageSize;
|
||||||
|
FillMinExtraParagraphs;
|
||||||
FillStartAddress;
|
FillStartAddress;
|
||||||
FillStackAddress;
|
FillStackAddress;
|
||||||
if assigned(exemap) then
|
if assigned(exemap) then
|
||||||
|
Loading…
Reference in New Issue
Block a user