delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/06/30/12:15:40

Date: Fri, 30 Jun 1995 11:33:53 -0400
From: kagel AT quasar DOT bloomberg DOT com
To: hoffrich AT uran DOT informatik DOT uni-bonn DOT de
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu, havemann AT uran DOT informatik DOT uni-bonn DOT de,
dieter AT uran DOT informatik DOT uni-bonn DOT de, schenk AT uran DOT informatik DOT uni-bonn DOT de,
mf AT uran DOT informatik DOT uni-bonn DOT de, kusserow AT uran DOT informatik DOT uni-bonn DOT de
Subject: Re: GO32 XMS vs. EMS usage
Reply-To: kagel AT ts1 DOT bloomberg DOT com

   From: Stefan Hoffrichter <hoffrich AT uran DOT informatik DOT uni-bonn DOT de>
   Date: Fri, 30 Jun 1995 15:13:03 +0200

   Hi, DJGPP specialists!

   Yesterday, Sven Havemann wrote:

   >> We have a P60 with 32MB RAM, go32m3. If we configure XMS to be 26MB,
[DELETED]

   As Sven pointed out correctly, GO32 crashes when given 26 MB of XMS but no
   EMS.  Art Kagel already suggested this might have something to do with
   insufficient DOS base memory (below 640K) to run the required three
   instances of GO32 (gcc, cpp etc., make). However, even if he is right, this


WHOA!  You cannot run 3 copies of GO32 at all!  That is why the make is not
compiled with DJGPP.  It is the reason that DJGPP V2 is being rewritten to do
away with GO32.  Each instance of GO32 uses 130K of DOS memory, which it cannot
swap out when execing, and requires over 450K to run.  Even if you had a
minimal DOS installation with no drivers or resident programs and had 640K to
begin with the second instance would leave only 380K for the third instance to
run in.  Not enough!  Sven did not say he was trying to run a DJGPP compiled
make.  THAT is the problem.  It cannot be done under V1.12 you need V2 which
does not need GO32 to run in order to use more than two levels of DJGPP execs.
Get the GNU make executable which was compiled with one of the 16bit commercial
compilers off of the net.


   does not explain why GO32 refuses to free the allocated XMS memory
   afterwards. A call to "mem /c" shows absolutely no free XMS memory left, a
   call to GO32 (without parameters) even states "-4K" (minus!) XMS memory.

I cannot address this though.

   The real problem therefore seems to be the following: How can I convince
   GO32 to use XMS memory and to ignore any present EMS memory? The latter will
   be needed on our system, because without an expanded memory manager like
   EMM386 there is absolutely no chance of freeing enough DOS base memory. This
   is due to the fact that any drivers then cannot be loaded high (and we've
   got a lot of them, for instance an ethernet driver of size 70K). But if
   there's even a single byte of free EMS memory, GO32 seems to refuse to make
   use of the remain- ing XMS memory, of which there would be plenty (that is,
   more than 16MB).

The solution to this is to give EMM386 the "auto" parameter which allows it to
share memory between EMS and XMS.  Then it will only allocate memory to EMS
when it is requested.

   Any solution to the problem would be greatly appreciated.  Thanks for your
   interest. Yours,

-- 
Art S. Kagel, kagel AT ts1 DOT bloomberg DOT com

Variety is the soul of pleasure.  --  Aphra Behn

- Raw text -


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