mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 21:09:11 +02:00
+ added new i8086 compiler options -Wtexe and -Wtcom for specifying the MS-DOS
binary format (.exe or .com) * the default format for i8086 tiny model binaries changed to .exe git-svn-id: trunk@25528 -
This commit is contained in:
parent
e2903ded95
commit
567cdf875b
@ -156,6 +156,7 @@ interface
|
|||||||
|
|
||||||
{$if defined(i8086)}
|
{$if defined(i8086)}
|
||||||
x86memorymodel : tx86memorymodel;
|
x86memorymodel : tx86memorymodel;
|
||||||
|
msdostargetformat : tmsdostargetformat;
|
||||||
{$endif defined(i8086)}
|
{$endif defined(i8086)}
|
||||||
|
|
||||||
{$if defined(ARM)}
|
{$if defined(ARM)}
|
||||||
@ -487,6 +488,7 @@ interface
|
|||||||
disabledircache : false;
|
disabledircache : false;
|
||||||
{$if defined(i8086)}
|
{$if defined(i8086)}
|
||||||
x86memorymodel : mm_small;
|
x86memorymodel : mm_small;
|
||||||
|
msdostargetformat : msdos_exe;
|
||||||
{$endif defined(i8086)}
|
{$endif defined(i8086)}
|
||||||
{$if defined(ARM)}
|
{$if defined(ARM)}
|
||||||
instructionset : is_arm;
|
instructionset : is_arm;
|
||||||
|
@ -682,6 +682,7 @@ interface
|
|||||||
|
|
||||||
type
|
type
|
||||||
tx86memorymodel = (mm_tiny,mm_small,mm_medium,mm_compact,mm_large,mm_huge);
|
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}
|
{ hide Sysutils.ExecuteProcess in units using this one after SysUtils}
|
||||||
const
|
const
|
||||||
|
@ -1950,6 +1950,23 @@ begin
|
|||||||
else
|
else
|
||||||
IllegalPara(opt);
|
IllegalPara(opt);
|
||||||
end;
|
end;
|
||||||
|
't':
|
||||||
|
begin
|
||||||
|
{$if defined(i8086)}
|
||||||
|
if (target_info.system in [system_i8086_msdos]) then
|
||||||
|
begin
|
||||||
|
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
|
||||||
|
else
|
||||||
|
{$endif defined(i8086)}
|
||||||
|
IllegalPara(opt);
|
||||||
|
end;
|
||||||
'T':
|
'T':
|
||||||
begin
|
begin
|
||||||
if target_info.system in systems_macos then
|
if target_info.system in systems_macos then
|
||||||
|
@ -268,13 +268,13 @@ begin
|
|||||||
if s<>'' then
|
if s<>'' then
|
||||||
LinkRes.Add('library '+MaybeQuoted(s));
|
LinkRes.Add('library '+MaybeQuoted(s));
|
||||||
end;
|
end;
|
||||||
if current_settings.x86memorymodel=mm_tiny then
|
case current_settings.msdostargetformat of
|
||||||
LinkRes.Add('format dos com')
|
msdos_exe: LinkRes.Add('format dos');
|
||||||
else
|
msdos_com: LinkRes.Add('format dos com');
|
||||||
LinkRes.Add('format dos');
|
else
|
||||||
|
InternalError(2013092101);
|
||||||
|
end;
|
||||||
LinkRes.Add('option dosseg');
|
LinkRes.Add('option dosseg');
|
||||||
{ if current_settings.x86memorymodel=mm_tiny then
|
|
||||||
LinkRes.Add('system com');}
|
|
||||||
LinkRes.Add('name ' + maybequoted(current_module.exefilename));
|
LinkRes.Add('name ' + maybequoted(current_module.exefilename));
|
||||||
|
|
||||||
{ Write and Close response }
|
{ Write and Close response }
|
||||||
|
Loading…
Reference in New Issue
Block a user