INT 31H 0306H: Query Raw Mode-Switch Address
Compatibility: DPMI 0.9+
Expects: AX 0306H
──────────────────────────────────────────────────────────────────
Returns: CF NC (this fn always succeeds)
BX:CX real-mode address of routine to switch to protected mode
SI:DI (or SI:EDI) prot mode addr of routine to switch to real mode
──────────────────────────────────────────────────────────────────
Info: This is used by applications which perform low-level mode
switching. It obtains the addresses of the DPMI routine which
switches into or out of real mode.
See INT 31H 0305H for a way to save and restore the state of a
task when you perform raw mode-switching.
BX:CX this address can be called by real-mode applications to switch to
protected mode.
SI:(E)DI this address can be called by protected-mode applications to
switch to real mode.
Both of these routines are accessed via FAR JMP and expect:
AX = new DS
CX = new ES
DX = new SS
(E)BX = new (E)SP
SI = new CS
(E)DI = new (E)IP
The host switches modes, and sets DS, ES, SS, and (E)SP, and
jumps to SI:(E)DI.
Notes: ■ It is your responsibility to save and restore the CPU state
(see INT 31H 0305H) when switching modes.
■ You will find it easier to use fns such as INT 31H 0300H to
force mode switching, since they handle the overhead.
See Also: DPMI API
INT 2fH: Multiplex Interrupt
DOS Functions
-♦-