--- msdos/dpmi.c.orig Thu Feb 25 14:32:56 1999 +++ msdos/dpmi.c Tue Nov 9 02:42:00 1999 @@ -20,6 +20,7 @@ #include "process.h" #include "callback.h" #include "debug.h" +#include "stackframe.h" #define DOS_GET_DRIVE(reg) ((reg) ? (reg) - 1 : DRIVE_GetCurrentDrive()) @@ -212,6 +213,7 @@ if (flag & 1) { /* 32-bit DPMI client */ __asm__ __volatile__(" + pushl %%si pushl %%es pushl %%ds pushfl @@ -221,12 +223,13 @@ popl %%ds movl %%es,%0 popl %%es + popl %%si " : "=g" (es), "=D" (edi) : "m" (rmcb->proc_ofs), "g" (ss), "g" (rmcb->regs_sel), "S" (ESP_reg(context)), "D" (rmcb->regs_ofs) - : "eax", "ecx", "edx", "esi", "ebp" ); + : "eax", "ecx", "edx", "ebp" ); } else { /* 16-bit DPMI client */ CONTEXT ctx = *context;