From: gt8134b@prism.gatech.EDU (Howlin' Bob) Subject: Re: DPMI under dosemu (was Re: DOSEMU Success list!!) Date: 21 Mar 1993 17:42:02 GMT
In <C485CF.7Lt@hunan.rastek.com> jmorris@hunan.rastek.com (Jim Morris) writes:
>DPMIRES *DOES* provide DPMI services using just XMS. How else do you explain
>the fact that DPMIRES runs on a lowly 80286? An 80286 certainly does not
>provide V86 or VCPI support. I say all this based on my experiences with
1) VCPI is only necessary if you are running EMM386.EXE, which you cannot
run on a 286. Therefore, VCPI is irrelevent.
2) V86 mode is also irrelevent to DPMI. DPMI puts you in protected mode,
and while it CAN interact with V86 mode, it needn't.
3) You simply CANNOT provide any protected mode services using XMS. I
have the latest (3.0) specification in front of me; all it provides
for is memory allocation and copying to/from extended memory into
the low 1 MB.
>Borland/Turbo C++ 3.xx, which utilize DPMI to run on both 80286 or 80386
>CPU's, using Borland's DPMIRES program. I personally can vouch that DPMIRES
>loads on an 80286 with 1MB XMS/Extended memory. Or course, you probably
Now, here's where XMS should come in:
Somebody needs to allocate extended memory. DOS itself only controls
allocation of the first MB (less than that, actually). XMS is a specification
for allocation of extended memory. Now, if a DPMI program wants extended
memory, it can just decide to use some range of extended memory (which
it can directly access in protected mode), which would cause huge problems
as XMS may have already allocated it. For instance, if you're running 4DOS
with XMS swapping, you run a DPMI program that doesn't go through official
channels for memory, and it scribbles all over 4DOS's "swapped" portion.
You exit the DPMI program (like Borland C++), and 4DOS tries to "unswap"
its extended memory resident part, which is now C source code or some
other garbage. Crash.
Alternately, it can allocate memory through official channels.
DPMIRES probably makes sure memory allocation goes through XMS, so that
memory allocation by different standards doesn't conflict.
Robert
--
Robert Sanders
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt8134b
Internet: gt8134b@prism.gatech.edu