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