+ implemented the CSeg, DSeg and SSeg functions on the i8086

git-svn-id: branches/i8086@24041 -
This commit is contained in:
nickysn 2013-03-28 21:29:14 +00:00
parent db07a990a9
commit ceb76808e7
2 changed files with 24 additions and 0 deletions

View File

@ -24,6 +24,24 @@ asm
mov ax, sp mov ax, sp
end; end;
{$define FPC_SYSTEM_HAS_CSEG}
function CSeg: Word;{$ifdef SYSTEMINLINE}inline;{$endif}assembler;nostackframe;
asm
mov ax, cs
end;
{$define FPC_SYSTEM_HAS_DSEG}
function DSeg: Word;{$ifdef SYSTEMINLINE}inline;{$endif}assembler;nostackframe;
asm
mov ax, ds
end;
{$define FPC_SYSTEM_HAS_SSEG}
function SSeg: Word;{$ifdef SYSTEMINLINE}inline;{$endif}assembler;nostackframe;
asm
mov ax, ss
end;
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR} {$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
function get_caller_addr(framebp:pointer;addr:pointer=nil):pointer;nostackframe;assembler; function get_caller_addr(framebp:pointer;addr:pointer=nil):pointer;nostackframe;assembler;
asm asm

View File

@ -657,20 +657,26 @@ Begin
ptr:=farpointer((sel shl 4)+off); ptr:=farpointer((sel shl 4)+off);
End; End;
{$ifndef FPC_SYSTEM_HAS_CSEG}
Function CSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif} Function CSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin Begin
Cseg:=0; Cseg:=0;
End; End;
{$endif not FPC_SYSTEM_HAS_CSEG}
{$ifndef FPC_SYSTEM_HAS_DSEG}
Function DSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif} Function DSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin Begin
Dseg:=0; Dseg:=0;
End; End;
{$endif not FPC_SYSTEM_HAS_DSEG}
{$ifndef FPC_SYSTEM_HAS_SSEG}
Function SSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif} Function SSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin Begin
Sseg:=0; Sseg:=0;
End; End;
{$endif not FPC_SYSTEM_HAS_SSEG}