Date: Mon, 4 Dec 2000 23:19:59 +0000 From: Stephen Kitt To: opendos AT delorie DOT com Subject: Re: Optimizing CONFIG.SYS... Message-ID: <20001204231959.L397@sk2.org> Mail-Followup-To: Stephen Kitt , opendos AT delorie DOT com References: <8F361C761C5 AT reze-1 DOT rz DOT rwth-aachen DOT de> <004101c05c41$8a42b0f0$e4881004 AT dbcooper> <2 DOT 07b7 DOT FVTF DOT G4XS7T AT belous DOT munic DOT msk DOT su> <008101c05d17$e51937c0$a3881004 AT dbcooper> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <008101c05d17$e51937c0$a3881004@dbcooper>; from pmoran22@yahoo.com on Sat, Dec 02, 2000 at 01:24:29PM -0700 Reply-To: opendos AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: opendos AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk 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