From: "Charles Sandmann" Newsgroups: comp.os.msdos.djgpp Subject: Re: Pharlap 286 Date: Tue, 24 Jul 2001 22:17:05 Organization: Aspen Technology, Inc. Lines: 28 Message-ID: <3b5df3e1.sandmann@clio.rice.edu> References: <68C4CF842BD2D411AC1600902740B6DA02CDC45D AT mcoexc02 DOT mlm DOT maxtor DOT com> NNTP-Posting-Host: dcloan.hou.aspentech.com X-Trace: selma.aspentech.com 996031789 29079 10.32.115.107 (25 Jul 2001 03:29:49 GMT) X-Complaints-To: postmaster AT aspentech DOT com NNTP-Posting-Date: 25 Jul 2001 03:29:49 GMT X-NewsEditor: ED-1.5.8 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com > The only way I can get [spawning a Pharlap286 application from > within a DJGPP app] to work is to load the following statement in the > config.sys: > > Device=c:\emm386.exe RAM NOEMS > > I believe this is because the Pharlap app cannot talk to the CWSDPMI host, > but I don't know for sure. (Using EMM386 forces the memory allocations to > go through EMM386, not through the DPMI host, I think...) This is exactly correct. When a DJGPP application loads it loads CWSDPMI. If a VCPI memory provider is not provided CWSDPMI will allocate all the XMS memory and manage it for DPMI applications. If a non-32-bit-DPMI protected mode application tries to run, it won't be able to get any XMS memory (bad things can happen in the raw memory management world). If EMM386 is present, memory allocation goes through EMM386 which will pool VCPI and XMS requests and provide mode switching services. > This is highly undesirable, and I would love a way around it. No good way, but you could purposely write an application to look at XMS memory, fragment it on purpose (by allocating say 1Mb, then 1Kb, then freeing the 1Mb) which would cause CWSDPMI to manage the larger block leaving the smaller block potentially to the Pharlap application. It might work, I haven't tried it recently. You would need to know something about the Pharlap application's memory needs and fragment the memory before running the DJGPP application. I could probably provide an example if needed.