Mail Archives: djgpp/1998/09/23/07:14:50
On Mon, 21 Sep 1998, Doug Gale wrote:
> If you say it works, I guess it works (ok, ok, I AM wrong :). Have
> you tested this under more than one DPMI server (eg. Windows,
> CWSDPMI, novell's dpmi server, QEMM, etc)?
INT instructions should be (and are) reflected to real mode under all
DPMI providers. Int 2Fh has some problem on certain versions of
Windows 95, but that's a bug in Windows.
> I wonder what the official DPMI spec has to say about this?
Here's what it says:
3.2 Default Interrupt Reflection
DPMI hosts provide interrupt vectors for all 100h (256
decimal) interrupts for protected mode clients. When the
DPMI client initializes, all interrupt vectors will point to
code that will automatically reflect the interrupt to real
mode (except for Int 31h and Int 21h, AH=4Ch). When a
default interrupt reflection handler is executed it will
switch to real mode, preserving the EAX, EBX, ECX, EDX, ESI,
EDI, and EBP registers and flags, and reflect the interrupt
in real mode. When the real mode interrupt returns, the
default interrupt reflection code will switch back to
protected mode and return with the modified values of EAX,
EBX, ECX, EDX, ESI, EDI, EBP, and flags. Segment registers
and the stack pointer will not be passed between modes.
Therefore, any API that passes pointers or information in
segment registers will need to be translated by a DOS
extender.
- Raw text -