Forráskód Böngészése

+ set the program origin (i.e. the load address) and pass it to the linker for the ZX Spectrum target

git-svn-id: branches/z80@44853 -
nickysn 5 éve
szülő
commit
4b32780516
1 módosított fájl, 4 hozzáadás és 1 törlés
  1. 4 1
      compiler/systems/t_zxspectrum.pas

+ 4 - 1
compiler/systems/t_zxspectrum.pas

@@ -41,6 +41,7 @@ implementation
 
        TLinkerZXSpectrum_SdccSdld=class(texternallinker)
        private
+          FOrigin: Word;
           Function  WriteResponseFile: Boolean;
        public
 {          constructor Create; override;}
@@ -215,9 +216,10 @@ procedure TLinkerZXSpectrum_SdccSdld.SetDefaultInfo;
     ExeName='sdcc-sdld';
 {$endif}
   begin
+    FOrigin:=32768;
     with Info do
      begin
-       ExeCmd[1]:=ExeName+' -n $OPT -i $MAP $EXE -f $RES'
+       ExeCmd[1]:=ExeName+' -n -b _CODE=$ORIGIN $OPT -i $MAP $EXE -f $RES'
        //-g '+platform_select+' $OPT $DYNLINK $STATIC $GCSECTIONS $STRIP $MAP -L. -o $EXE -T $RES';
      end;
   end;
@@ -255,6 +257,7 @@ function TLinkerZXSpectrum_SdccSdld.MakeExecutable: boolean;
   { Call linker }
     SplitBinCmd(Info.ExeCmd[1],binstr,cmdstr);
     Replace(cmdstr,'$OPT',Info.ExtraOptions);
+    Replace(cmdstr,'$ORIGIN',tostr(FOrigin));
     if not(cs_link_on_target in current_settings.globalswitches) then
      begin
       Replace(cmdstr,'$EXE',FixedExeFileName);