@@ -156,6 +156,7 @@ interface
{$if defined(i8086)}
x86memorymodel : tx86memorymodel;
+ msdostargetformat : tmsdostargetformat;
{$endif defined(i8086)}
{$if defined(ARM)}
@@ -487,6 +488,7 @@ interface
disabledircache : false;
x86memorymodel : mm_small;
+ msdostargetformat : msdos_exe;
instructionset : is_arm;
@@ -682,6 +682,7 @@ interface
type
tx86memorymodel = (mm_tiny,mm_small,mm_medium,mm_compact,mm_large,mm_huge);
+ tmsdostargetformat = (msdos_exe, msdos_com);
{ hide Sysutils.ExecuteProcess in units using this one after SysUtils}
const
@@ -1950,6 +1950,23 @@ begin
else
IllegalPara(opt);
end;
+ 't':
+ begin
+{$if defined(i8086)}
+ if (target_info.system in [system_i8086_msdos]) then
+ case Upper(Copy(More,j+1,255)) of
+ 'EXE': init_settings.msdostargetformat:=msdos_exe;
+ 'COM': init_settings.msdostargetformat:=msdos_com;
+ else
+ IllegalPara(opt);
+ end;
+ break;
+ end
+{$endif defined(i8086)}
'T':
begin
if target_info.system in systems_macos then
@@ -268,13 +268,13 @@ begin
if s<>'' then
LinkRes.Add('library '+MaybeQuoted(s));
- if current_settings.x86memorymodel=mm_tiny then
- LinkRes.Add('format dos com')
- else
- LinkRes.Add('format dos');
+ case current_settings.msdostargetformat of
+ msdos_exe: LinkRes.Add('format dos');
+ msdos_com: LinkRes.Add('format dos com');
+ InternalError(2013092101);
LinkRes.Add('option dosseg');
-{ if current_settings.x86memorymodel=mm_tiny then
- LinkRes.Add('system com');}
LinkRes.Add('name ' + maybequoted(current_module.exefilename));
{ Write and Close response }