Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Zortech C++ 3.0r4 - <b>int86x</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
int86x
intrealx
   Note-These functions are not available under OS/2.

Usage

   #include <dos.h>                /* register structures */
   int int86x(int intnum,union REGS *regsin, union REGS
                     *regsout,struct SREGS *segregs);
   int intrealx(int intnum,union REGS *regsin, union REGS
                     *regsout,struct SREGS *segregs);

Description

   int86x() performs a software interrupt where:

   intnum   is the interrupt number (0 through 255).

   regsin   is a pointer to a structure containing the values of the
   registers AX, BX, CX, DX, SI and DI to be passed to the interrupt.

   segregs   is a pointer to a structure containing the values of the
   segment registers to be passed to the interrupt. It is also used to
   return the values in the segment registers after the interrupt has
   completed.

   regsout   is a pointer to a structure into which the return values of the
   registers will be written.

   The REGS and SREGS structures are defined in dos.h. Consult your system
   hardware and software manuals to determine what the interrupt numbers are
   and what they do on your machine.

   intrealx() is only available in the X and P memory models. See below for
   an explanation.

   Under the X and P memory models int86() and int86x() carry out some
   filtering of parameters sent to the real mode interrupt. This filtering

   allows data stored in extended memory to be passed to the DOS function so
   that, for instance, much larger buffers than normal can be used with the
   DOS disk functions. Where pointers are passed to int86(), they are
   assumed to contain protected mode addresses. The filtering routine used
   for these functions assumes that all far pointers passed in registers to
   DOS have a segment address of DGROUP. If you use int86x() and specify a
   selector other that DGROUP the results will be unpredictable.. It is
   possible to bypass this filtering by using the function int_real(x)
   instead of int86x(). This function bypasses all protected mode filtering
   in both the Phar Lap and DOSX extenders and executes the interrupt in
   real mode.  It can be used to retrieve real mode segment values from the
   BIOS or from DOS if desired.

   Some of the available DOS functions are not supported or only partially
   supported in the X and P memory models. Refer to the entry for int86()
   for more information.

Return Value

   int86x returns the value in the AX register at the completion of the

   interrupt. The state of the carry flag can be determined from x.cflag in
   regsout. Do not use int86x for interrupts 0x25 or 0x26. Use
   dos_abs_disk_read / write for those.

See Also

   int86, intdos, bdos



See Also: int86 intdos bdos

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson