Mail Archives: opendos/2000/12/04/18:26:35
On Sat, Dec 02, 2000 at 01:24:29PM -0700, Patrick Moran wrote:
> I am not going to argue this any more. It is real physical memory that is
> beyond 1MB. It is a meory manager, not a spcification. DPMI and VCPI are
> specifications. It is all extended memory and physically exists in your
> computer if you have it installed. It is not virtual memory, it is real and
> you can look at it and touch it physically. It is merely managed by LIM 4.0,
> EMS, EMM386, HIMEM.SYS, EEMS, XMS, JQRYBIZ18941, or whatever other memory
> manager someone gives a name to.
You might not want to argue this any more, but you're still wrong. Have a
look at interrupt 2Fh, function 4310h in the Interrupt List sometime. XMS is
a specification, not a memory manager. Extended memory is the memory which
exists beyond 1MB; XMS is a standard which specifies interrupt-based
services to manipulate that memory; HIMEM.SYS is a memory manager which
implements that standard (amongst many other memory managers implementing
the standard). XMS allows you to allocate, reallocate, free, lock, unlock
and move memory around. It doesn't even necessarily map to physical memory;
as long as a block is unlocked a memory manager is theoretically free to
move it around (although I'm not sure if any do). The advantages of XMS over
EMS are that it can copy larger blocks of memory in one shot, and it doesn't
use a permanently-allocated page frame.
Accessing it is a completely separate issue; if you set up large segments on
a 386 or greater CPU you can lock a block and then access it directly from
DOS - look for "real flat mode" for loads of examples. If you stick to
traditional real mode, with its 64KB segments and 16-bit addresses (well,
20-bit when you factor in the segment descriptor), you have to copy extended
memory blocks in and out of conventional memory, using the services provided
by XMS; this is what most XMS-capable DOS programs do. Now, I imagine some
memory managers will do this just by remapping memory, not moving it around;
but on a 286 you'd definitely have to move memory around anyway.
Stephen
--
__| | /_ ) Stephen 'SKČ' Kitt I can't hear what you're saying
\__ \ . < __| steve AT sk2 DOT org because what you are is shouting
____/_|\_\ http://www.sk2.org at me. -- Ralph Waldo Emerson
- Raw text -