From 4eeff669222783d69bf9c95de1ee274899c566e6 Mon Sep 17 00:00:00 2001 From: nickysn Date: Sat, 29 Mar 2014 21:28:57 +0000 Subject: [PATCH] + compact and large memory model support added to the MsDos and Intr procedures git-svn-id: trunk@27354 - --- rtl/msdos/prt0comn.asm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/rtl/msdos/prt0comn.asm b/rtl/msdos/prt0comn.asm index d9f4ed7fdb..561e9c9c8f 100644 --- a/rtl/msdos/prt0comn.asm +++ b/rtl/msdos/prt0comn.asm @@ -28,6 +28,12 @@ extra_param_offset equ 0 %endif +%ifdef __FAR_DATA__ + extra_data_offset equ 2 +%else + extra_data_offset equ 0 +%endif + cpu 8086 segment text use16 class=code @@ -314,7 +320,13 @@ FPC_MSDOS: pop bx %endif pop cx +%ifdef __FAR_DATA__ + pop si +%endif push ax +%ifdef __FAR_DATA__ + push si +%endif push cx %ifdef __FAR_CODE__ push bx @@ -324,10 +336,14 @@ FPC_MSDOS: FPC_INTR: push bp mov bp, sp - mov al, byte [bp + 6 + extra_param_offset] + mov al, byte [bp + 6 + extra_param_offset + extra_data_offset] mov byte [cs:int_number], al mov si, [bp + 4 + extra_param_offset] push ds +%ifdef __FAR_DATA__ + mov ax, [bp + 6 + extra_param_offset] + mov ds, ax +%endif mov ax, word [si + 16] mov es, ax mov ax, word [si + 14] ; ds @@ -350,7 +366,11 @@ int_number: push si push bp mov bp, sp +%ifdef __FAR_DATA__ + mov si, [bp + 16 + extra_param_offset] +%else mov si, word [bp + 8] +%endif mov ds, si mov si, word [bp + 14 + extra_param_offset] mov word [si], ax