delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1996/09/29/23:45:17

From: sandmann AT clio DOT rice DOT edu (Charles Sandmann)
Message-Id: <9609300343.AA13628@clio.rice.edu>
Subject: Re: Stub error messages (Was: Re: 'Cannot open')
To: fighteer AT cs DOT com
Date: Sun, 29 Sep 1996 22:43:32 -0600 (CDT)
Cc: eliz AT is DOT elta DOT co DOT il, djgpp-workers AT delorie DOT com
In-Reply-To: <324EDEAA.23AF@cs.com> from "John M. Aldrich" at Sep 29, 96 01:40:10 pm

> I tried putting in the line that Charles recommended, but oddly it
> didn't seem to make a difference.  I tested stubs both with and without
> the modification after removing my PATH variable, and both seemed to
> exhibit the same behavior.  Do I have to do a PATH-less boot to make the
> problem show up, or is it sufficient to just type SET PATH= from DOS and
> try it then?  Also, does it make a difference if the stub is by itself
> or attached to an actual image?  As I said, I haven't done extensive
> testing of this; I'll try more later.  :)

You can't create this path condition - you must boot a floppy without
a path statement to have it set up that way.  It's a DOS bug that it 
creates an environment variable with an assignment of zero length.  If
you issue the SET command and see "PATH=" (nothing following) then this 
is the appropriate problem case.  Trying to set a zero length PATH will
normally remove it completely, so you wouldn't see the problem.

> I do not fully understand the possible causes of three of those errors:
> Load error:  can't switch modes.

Tried to switch into PM via the DPMI API, and it returned an error.  This
could be due to nesting too deeply (I've see this with QDPMI), or if a 
16-bit DPMI client was previously loaded and we are nesting under that
client (it will fail our 32-bit request).

> Load error:  no DPMI selectors.

The allocate DPMI selector call failed.  Probably due to nesting too
deeply, or the DPMI is scrogged.

> Load error:  no DPMI memory.

The allocate DPMI memory call failed.  The program is too big for the
available DPMI memory (more paging space is needed, or more physical memory,
or less nesting, or any one of things that cause memory to be used up).

> what is the error that is supposed to be triggered by having a pre-386 CPU?  

You will be unable to load a 32-bit DPMI provider.  On a 8086, you won't
ever find a DPMI, and if you try to load CWSDPMI, it will tell you that
you need a 386, fail to load, then the stub will say no DPMI.  On an 80286
it's possible to have 16-bit only DPMI, which we would ignore and try to
load CWSDPMI, with the same results as above.

> I recall a flap a while ago
> that said that there is an bug in the stub that causes it to crash
> instead of emit an error for this case, but I don't know what the
> original error message was supposed to be.  

CWSDPMI r1 had a bug in it that it used a 80286 instruction before it
had done the machine type detection, so would hang instead of printing
the message.  I believe that's been fixed, but I don't have any machines
to test these things on anymore.  I thought someone sent me a message saying
it worked with CWSDPMI r2 (and I think the stub was clean).  I don't know
if anyone has checked r3.

Sorry if I haven't been more helpful, but I've been very sick this week
with the flu (still not well) and I have some important things which must
be handled at work which are the only priority for me right now.

- Raw text -


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