Mail Archives: djgpp/1995/06/30/12:15:40
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 -