Parcourir la source

* fix for i8086 far data memory models in dos.getintvec

git-svn-id: trunk@27468 -
nickysn il y a 11 ans
Parent
commit
f31d7e665b
1 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. 12 0
      rtl/msdos/dos.pp

+ 12 - 0
rtl/msdos/dos.pp

@@ -1028,10 +1028,22 @@ asm
   mov ah, 35h
   int 21h
   xchg ax, bx
+{$if defined(FPC_MM_TINY) or defined(FPC_MM_SMALL) or defined(FPC_MM_MEDIUM)}
   mov bx, vector
   mov [bx], ax
   mov ax, es
   mov [bx + 2], ax
+{$else}
+ {$ifdef FPC_ENABLED_CLD}
+  cld
+ {$endif FPC_ENABLED_CLD}
+  push es
+  pop bx
+  les di, vector
+  stosw
+  xchg ax, bx
+  stosw
+{$endif}
 end;
 
 procedure SetIntVec(intno: Byte; vector: farpointer); assembler;