Browse Source

+ rtl implementation of ptr(seg,ofs) for i8086

git-svn-id: trunk@24565 -
nickysn 12 years ago
parent
commit
fe404d2891
2 changed files with 12 additions and 0 deletions
  1. 10 0
      rtl/i8086/i8086.inc
  2. 2 0
      rtl/inc/system.inc

+ 10 - 0
rtl/i8086/i8086.inc

@@ -24,6 +24,16 @@ asm
   mov ax, sp
 end;
 
+{$define FPC_SYSTEM_HAS_PTR}
+function Ptr(sel,off: LongInt):farpointer;{$ifdef SYSTEMINLINE}inline;{$endif}assembler;nostackframe;
+asm
+  push bp
+  mov bp, sp
+  mov ax, ss:[bp + 4]
+  mov dx, ss:[bp + 8]
+  pop bp
+end;
+
 {$define FPC_SYSTEM_HAS_CSEG}
 function CSeg: Word;{$ifdef SYSTEMINLINE}inline;{$endif}assembler;nostackframe;
 asm

+ 2 - 0
rtl/inc/system.inc

@@ -655,10 +655,12 @@ end;
                             Memory Management
 ****************************************************************************}
 
+{$ifndef FPC_SYSTEM_HAS_PTR}
 Function Ptr(sel,off : Longint) : farpointer;{$ifdef SYSTEMINLINE}inline;{$endif}
 Begin
   ptr:=farpointer((sel shl 4)+off);
 End;
+{$endif not FPC_SYSTEM_HAS_PTR}
 
 {$ifndef FPC_SYSTEM_HAS_CSEG}
 Function CSeg : Word;{$ifdef SYSTEMINLINE}inline;{$endif}