Bladeren bron

+ set IMAGEBASE in the Z80 internal linker script

git-svn-id: trunk@45568 -
nickysn 5 jaren geleden
bovenliggende
commit
4a5a2f5ba2
1 gewijzigde bestanden met toevoegingen van 5 en 0 verwijderingen
  1. 5 0
      compiler/systems/t_zxspectrum.pas

+ 5 - 0
compiler/systems/t_zxspectrum.pas

@@ -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;