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).

  webmaster     delorie software   privacy  
  Copyright © 1995     Updated Feb 1995