|
@@ -61,6 +61,8 @@ implementation
|
|
{ TInternalLinkerZXSpectrum }
|
|
{ TInternalLinkerZXSpectrum }
|
|
|
|
|
|
TInternalLinkerZXSpectrum=class(tinternallinker)
|
|
TInternalLinkerZXSpectrum=class(tinternallinker)
|
|
|
|
+ private
|
|
|
|
+ FOrigin: Word;
|
|
protected
|
|
protected
|
|
procedure DefaultLinkScript;override;
|
|
procedure DefaultLinkScript;override;
|
|
function GetCodeSize(aExeOutput: TExeOutput): QWord;override;
|
|
function GetCodeSize(aExeOutput: TExeOutput): QWord;override;
|
|
@@ -360,6 +362,8 @@ procedure TInternalLinkerZXSpectrum.DefaultLinkScript;
|
|
end;
|
|
end;
|
|
LinkScript.Concat('ENDGROUP');
|
|
LinkScript.Concat('ENDGROUP');
|
|
|
|
|
|
|
|
+ LinkScript.Concat('IMAGEBASE '+tostr(FOrigin));
|
|
|
|
+
|
|
LinkScript.Concat('EXESECTION .text');
|
|
LinkScript.Concat('EXESECTION .text');
|
|
LinkScript.Concat(' OBJSECTION _CODE');
|
|
LinkScript.Concat(' OBJSECTION _CODE');
|
|
LinkScript.Concat('ENDEXESECTION');
|
|
LinkScript.Concat('ENDEXESECTION');
|
|
@@ -396,6 +400,7 @@ constructor TInternalLinkerZXSpectrum.create;
|
|
CArObjectReader:=TArObjectReader;
|
|
CArObjectReader:=TArObjectReader;
|
|
CExeOutput:=TIntelHexExeOutput;
|
|
CExeOutput:=TIntelHexExeOutput;
|
|
CObjInput:=TRelObjInput;
|
|
CObjInput:=TRelObjInput;
|
|
|
|
+ FOrigin:={32768}23800;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TInternalLinkerZXSpectrum.InitSysInitUnitName;
|
|
procedure TInternalLinkerZXSpectrum.InitSysInitUnitName;
|