delorie.com/djgpp/faq/crashes/auto-off.html
|
search
|
Why do I get error message from go32 if I keep QEMM in auto/off
mode and run DJGPP?
When QEMM is in auto/off mode and there isn't anything in the system
that is using any of QEMM's features, the CPU remains in "real" mode.
Normally, when go32 finds the CPU in real mode, it will try
to use raw XMS services to access the extended memory. Unfortunately,
when some program requests XMS services, it will cause QEMM to turn
on. So if go32 tries to switch into protected mode, QEMM
will trap it and give a protection violation warning. To avoid this
unfortunate event (which requires a system reboot to fix),
go32 first checks to see if enabling XMS caused the CPU to
switch into v86 mode (meaning QEMM just turned on). If so,
go32 gracefully exits after telling you it can't work in this
set-up, like this:
go32 error: Using XMS switches the CPU into V86 mode.
If you are using QEMM, add the `on' parameter to the entry
in your CONFIG.SYS file. See the FAQ for details.
All you have to do to work around this is force QEMM to be ON whenever
go32 runs so that go32 will know how to work with it
properly. To do this, just turn QEMM on before running any djgpp
program, with this command:
c:\qemm\qemm on
(that assumes your QEMM directory is c:\qemm).