| Home
| Previous
| Next
| Up

PM_int86x

Execute a real mode software interrupt with segment registers

Declaration

int PMAPI PM_int86x(
int intno,
RMREGS *in,
RMREGS *out,
RMSREGS *sregs)

Prototype In

pmapi.h

Parameters

intno | Software interrupt number to execute
in | Register block to load before calling interrupt
out | Register block to load with registers after interrupt was called
sregs | Segment register block to load and return values in

Return Value

Value returned in the EAX register.

Description

This function is used execute a real mode software interrupt, which is used to call the real mode BIOS functions and drivers directly. If you make calls to the real mode BIOS functions or drivers with this function, there is no parameter translation at all. Hence you need to translate any real mode memory pointers etc passed into and returned from this function with the PM_allocRealSeg and PM_mapRealPointer functions.

When this function executes the real mode software interrupt, the machine registers will be loaded with the values passed in the 'in' parameter. When the interrupt completes, the values in the machine registers will then be saved into the 'out' parameter.

This version also allows you to pass down segment register values to be passed to the real mode code with the sregs parameter. On return from this function, sregs will contain the segment registers that were returned from the function when the real mode interrupt was completed.

This is only supported for operating systems that support BIOS access (ie: the PM_haveBIOSAccess function returns true).

See Also

PM_int86, PM_callRealMode, PM_allocRealSeg

Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com