delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/02/22/22:41:07

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Subject: Re: EMM386 & NOEMS (was starting)
To: babcock AT cfa DOT harvard DOT edu
Date: Tue, 22 Feb 1994 21:12:35 -0600 (CST)
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu

> > Beware, all V1.11 versions leave the Ctrl-Break address undefined when 
> > exiting under DPMI.  This is a major wedge causer under V1.11 and hopefully
> > will get fixed in maint4.
> 
> Ouch.  Ctrl-break after exiting go32 in an OS/2 window gave a Trap E, killing
> OS/2.  Vector 0 (divide by zero) also seems to be left pointing into the
ack!
> ozone.  I assembled a DIV AX instruction in debug and set a breakpoint
> immediately after it.  Before running go32, I got a divide by zero error,
> afterwards, OS/2 hung with no message.  A before/after comparison of the
ack! ack! where is the protection when you need it? Maybe sell this to Gates?
> interrupt vector table showed all other vectors unchanged.  Assuming this
> gets fixed in maint4, will it also be fixed if you abend with a swap file
> full or other error?

The Ctrl-Break address will most likely be fixed in maint4 since we know a
fix for this one.  The div 0 vector is much harder, since TC modifies it
before we see it and the DPMI exit procedure never gives TC a final chance
to do cleanup.  This problem has been around since V1.10, and I don't know
a good fix other than writing the extender in something other than TC
(such as V2.0 does).  If anyone has suggestions on this, send them directly
to me.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019