Comment on Memory Management FAQ

George Bell <[email protected]> Thu, 07 Nov 2002 21:49:11 -0500
Newsgroups gmane.os.freedos.devel
Message-ID <[email protected]>
I would like to thank Eric for producing for us a guide to the "zoo" of 
the various memory managers, and to Paul Matthias for expanding on that 
and pointing out the differing versions available.   Sorry for the 
belated post.  I'm a newbie with this and I'm trying to get up to speed 
a little bit with it.    I have only three things to point out:

In response to:

>EA>    (unprotected mode, so to say), kind of a virtual 8086 CPU, but with the
>EA>    32bit stuff still available. However, in the "DOS task", 32bit addressing
>EA>    is NOT available, and this is why our "extended friends" need to use the
>EA>    VCPI backdoor to get into full protected mode. Without emm386 running,
>
1)If we are in V86 mode, and there is some memory manager, such as 
FDXMS, then I think it is conceivable that a real mode program *could* 
work in >64K with a non-flat memory model(while each segment is limited 
to 64K) or the segments can be "tiled" as P. Matthias pointed out.   But 
this is likely nitpicky because such a setup is awkward and so probably 
rare, if at all.

2)One question on FDXMS:  Firstly, a program must run in protected mode 
in order to access >640K + HMA.  Therefore, the program must put itself 
into protected mode if FDXMS is the *only* memory manager present(no 
emm386, himem, umbpci, etc) ?  Or can FDXMS provide the VCPI?  I presume 
it can *only* provide the interface to XMS, so if a program needs dos 
extensions to run in protected mode, something else like emm386 must be 
present in order for it to run.

3)Eric frequently mentions the term "VCPI" ( Virtual Control Program 
Interface ) and tells us how important it is for all of us :-)  So I 
have researched this term and have come up with the following definitions:

VCPI:

a) A 386 and later processor memory management standard created by Phar 
Lap software in conjunction with other software developers.  VCPI 
provides an interface between applications using DOS extenders and 386 
memory managers.

from Scott Mueller: "Upgrading and Repairing PCs - 14th Edition"

b) A programming interface that allowed DOS-extended programs and Real 
Mode programs to run together in 386s.  It was primarily developed by 
Quarterdeck to allow its DESQview multitasker to run DOS-extended 
programs.  DPMI succeeded VCPI and provided and provided the same 
capability for Windows.

from http://www.techweb.com/encyclopedia

c) ...how to run real/protected mode programs one after another or 
better yet, one with another in a multitasking environment.  An initial 
effort called the Virtual Control Program Interface(VCPI) addressed some 
of the issues, but wasn't general enough to allow multiple virtual DOS 
machines(VMs) running simultaneously in V86 or protected mode.  To this 
end, the DOS DPMI specification was created and is a basic building 
block of Enhanced-Mode Windows.

from Murry Sargent III & Richard Shoemaker "The PC from the Inside Out"

I wonder what Phar Lap has to do with DESQview?  Anyway,
So Eric is correct -  VCPI is more important than DPMI for FreeDos, 
since FD is not concerned with running DOS boxes in windows.


At any rate, I hope this was of little interest to the people here who 
really do know this stuff, as well as to the others like me, and I hope 
someone can set me straight about the FDXMS, since these so called 
memory managers also generally do a lot of other things....

George