Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
int86x
◄Summary► ◄Example► ◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
The int86x function executes the 8086-processor-family interrupt
specified by the interrupt number <intnum>. Unlike the int86
function, int86x accepts segment-register values in <segregs>.
This lets programs that use large-model data segments or far
pointers specify which segment or pointer should be used during
the system call.
Before executing the specified interrupt, the int86x function
copies the contents of <inregs> and <segregs> to the corresponding
registers. Only the DS and ES register values in <segregs> are
used.
After the interrupt returns, the int86x function copies the
current register values to <outregs>, copies the current ES and DS
values to <segregs>, and restores DS. It also copies the status of
the system carry flag to the cflag field in <outregs>.
The <inregs> and <outregs> arguments are unions of type REGS. The
<segregs> argument is a structure of type SREGS. These types are
defined in the include file DOS.H.
Segment values for the <segregs> argument can be obtained by using
either the segread function or the FP_SEG macro.
Return Value
The return value is the value in the AX register after the
interrupt returns. If the cflag field in <outregs> is nonzero, an
error has occurred. In such cases, the _doserrno variable is also
set to the corresponding error code.
-♦-