mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-25 01:29:22 +02:00
+ added various things, needed for i8086 compilation to the system unit of the
embedded target git-svn-id: trunk@34003 -
This commit is contained in:
parent
a58dd988a4
commit
73d0dae569
@ -38,6 +38,11 @@ Unit System;
|
|||||||
|
|
||||||
{$define FPC_ANSI_TEXTFILEREC}
|
{$define FPC_ANSI_TEXTFILEREC}
|
||||||
|
|
||||||
|
{$ifdef CPUI8086}
|
||||||
|
{$DEFINE FPC_INCLUDE_SOFTWARE_MUL}
|
||||||
|
{$DEFINE FPC_INCLUDE_SOFTWARE_MOD_DIV}
|
||||||
|
{$endif CPUI8086}
|
||||||
|
|
||||||
{$I check.inc}
|
{$I check.inc}
|
||||||
|
|
||||||
{$I systemh.inc}
|
{$I systemh.inc}
|
||||||
@ -80,6 +85,11 @@ const
|
|||||||
sLineBreak = LineEnding;
|
sLineBreak = LineEnding;
|
||||||
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCrLF;
|
DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCrLF;
|
||||||
{$endif FPC_HAS_FEATURE_TEXTIO}
|
{$endif FPC_HAS_FEATURE_TEXTIO}
|
||||||
|
{$ifdef CPUI8086}
|
||||||
|
{ The value that needs to be added to the segment to move the pointer by
|
||||||
|
64K bytes (BP7 compatibility) }
|
||||||
|
SelectorInc: Word = $1000;
|
||||||
|
{$endif CPUI8086}
|
||||||
|
|
||||||
type
|
type
|
||||||
trtl_do_close = procedure (handle : longint);
|
trtl_do_close = procedure (handle : longint);
|
||||||
@ -127,10 +137,36 @@ var
|
|||||||
{$endif FPC_HAS_FEATURE_SOFTFPU}
|
{$endif FPC_HAS_FEATURE_SOFTFPU}
|
||||||
{$endif FPUNONE}
|
{$endif FPUNONE}
|
||||||
|
|
||||||
|
{$ifdef CPUI8086}
|
||||||
|
var
|
||||||
|
{ Mem[] support }
|
||||||
|
mem : array[0..$7fff-1] of byte absolute $0:$0;
|
||||||
|
memw : array[0..($7fff div sizeof(word))-1] of word absolute $0:$0;
|
||||||
|
meml : array[0..($7fff div sizeof(longint))-1] of longint absolute $0:$0;
|
||||||
|
__stkbottom : pointer;public name '__stkbottom';
|
||||||
|
{$endif CPUI8086}
|
||||||
|
|
||||||
{*****************************************************************************}
|
{*****************************************************************************}
|
||||||
implementation
|
implementation
|
||||||
{*****************************************************************************}
|
{*****************************************************************************}
|
||||||
|
|
||||||
|
{$ifdef CPUI8086}
|
||||||
|
{ used for an offset fixup for accessing the proc parameters in asm routines
|
||||||
|
that use nostackframe. We can't use the parameter name directly, because
|
||||||
|
i8086 doesn't support sp relative addressing. }
|
||||||
|
const
|
||||||
|
{$ifdef FPC_X86_CODE_FAR}
|
||||||
|
extra_param_offset = 2;
|
||||||
|
{$else FPC_X86_CODE_FAR}
|
||||||
|
extra_param_offset = 0;
|
||||||
|
{$endif FPC_X86_CODE_FAR}
|
||||||
|
{$if defined(FPC_X86_DATA_FAR) or defined(FPC_X86_DATA_HUGE)}
|
||||||
|
extra_data_offset = 2;
|
||||||
|
{$else}
|
||||||
|
extra_data_offset = 0;
|
||||||
|
{$endif}
|
||||||
|
{$endif CPUI8086}
|
||||||
|
|
||||||
{ Include ELF resources }
|
{ Include ELF resources }
|
||||||
|
|
||||||
const calculated_cmdline:Pchar=nil;
|
const calculated_cmdline:Pchar=nil;
|
||||||
|
Loading…
Reference in New Issue
Block a user