+ ZX Spectrum internal linker: invoke the ihx2tzx to postprocess the ihx file,

produced by the internal linker (in the future, the code of this utility may
  be integrated into the compiler)
* changed the exe extension of ZX Spectrum to '.tzx'

git-svn-id: trunk@45578 -
This commit is contained in:
nickysn 2020-06-03 19:33:03 +00:00
parent 12dce172f9
commit 84cd9e129b
2 changed files with 35 additions and 1 deletions

View File

@ -44,7 +44,7 @@ unit i_zxspectrum;
cpu : cpu_z80;
unit_env : '';
extradefines : '';
exeext : '';
exeext : '.tzx';
defext : '.def';
scriptext : '.sh';
smartext : '.sl';

View File

@ -68,6 +68,8 @@ implementation
public
constructor create;override;
procedure InitSysInitUnitName;override;
function MakeExecutable: boolean; override;
function postprocessexecutable(const fn : string): boolean;
end;
@ -390,6 +392,38 @@ procedure TInternalLinkerZXSpectrum.InitSysInitUnitName;
sysinitunit:='si_prc';
end;
function TInternalLinkerZXSpectrum.MakeExecutable: boolean;
begin
result:=inherited;
{ Post process }
if result and not(cs_link_nolink in current_settings.globalswitches) then
result:=PostProcessExecutable(current_module.exefilename);
end;
function TInternalLinkerZXSpectrum.postprocessexecutable(const fn: string): boolean;
var
exitcode: longint;
FoundBin: ansistring;
Found: Boolean;
utilexe: TCmdStr;
begin
result:=false;
utilexe:=utilsprefix+'ihx2tzx';
FoundBin:='';
Found:=false;
if utilsdirectory<>'' then
Found:=FindFile(utilexe,utilsdirectory,false,Foundbin);
if (not Found) then
Found:=FindExe(utilexe,false,Foundbin);
if Found then
begin
exitcode:=RequotedExecuteProcess(foundbin,' '+fn);
result:=exitcode<>0;
end;
end;
{*****************************************************************************
Initialize
*****************************************************************************}