Mail Archives: djgpp/1994/01/18/22:18:26
I have helped several people work through problems in V1.11 which occurred due
to use of int86x(). I thought I would post this so there would be greater
awareness of the issues.
In V1.10 and before, int86x was treated internally like int86() - the segs
argument was completely ignored. I guess many pieces of code ported from
DOS were lucky to work in that configuration. In V1.11, int86x() loads the
protected mode selectors with the values in segs, which unless they are
all set to valid protected mode selectors a protection violation results.
If you are porting code (or moving from an earlier version of DJGPP) and have
calls to int86x(), you will probably see failures unless you make a change:
#define int86x int86
which should restore the V1.10 and earlier behavior. If you really need to
pass real mode segments, then use _go32_dpmi_simulate_int. Note, the call
format is different, this is not a simple #define fix. int86x() is
used ONLY for calls with selectors (such as the DPMI API calls) and all
values must be set to valid selectors.
- Raw text -