DOS/32 Advanced DOS Extender - D32A C/C++ Run-Time Library Reference



6.04 - DOS/32 Advanced D32A Library function - d32a_int86xpm()

Synopsys:

#include <d32a.h>
void d32a_int86xpm(int IntNum, D32A_REGS *InRegs, D32A_REGS *OutRegs, D32A_SREGS *SegRegs);


Description:

The d32a_int86xpm function issues a software interrupt IntNum in the Protected Mode. Before the interrupt, the 32-bit CPU registers are loaded from the structure located by InRegs and the segment registers are loaded from the structure located by SegRegs. Although the function checks the values in the SegRegs structure to be valid Protected Mode Selectors before loading the segment registers, you should always make sure that none of the fields of the SegRegs structure contains invalid values that may cause protection violation. When the interrupt is completed, the structure OutRegs is filled with the contents of the CPU registers. The following CPU registers are passed to the interrupt handler: EAX, EBX, ECX, EDX, ESI, EDI, EBP, Eflags, DS, ES, FS, GS. Please note that the interrupt IntNum is executed in the Protected Mode if a protected mode handler for this interrupt is installed. Otherwise, the interrupt IntNum will be reflected to the Real Mode by the DOS Extender, where it will be handled by a Real Mode interrupt handler.


Returns:

The OutRegs structure is filled with contents of the CPU registers and the SegRegs structure is filled with the contents of the segment registers when the interrupt IntNum completes. This function does not return any value.

 


Copyright © DOS/32 Advanced Team 1996-2002
All Rights Reserved