To: opendos AT delorie DOT com X-Comment-To: "Patrick Moran" 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> Message-Id: <2.07b7.JAQX.G52HS6@belous.munic.msk.su> From: "Arkady V.Belousov" Date: Tue, 5 Dec 2000 02:40:54 +0300 (MSK) Organization: Locus X-Mailer: dMail [Demos Mail for DOS v2.07b7] Subject: Re: Optimizing CONFIG.SYS... Lines: 139 MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit Reply-To: opendos AT delorie DOT com X-Comment-To: Patrick Moran Hi! 2-δΕΛ-2000 13:24 pmoran22 AT yahoo DOT com (Patrick Moran) wrote to : >> PM> I am checking up on XMS memory now, in the book "DOS beyond 640K" It does >> PM> refer to XMS memory in it but was not listed in the index. It is extended >> PM> memory and from what I have read so far, it is NOT swap memory, it is in >> PM> fact extended memory. >> XMS is _not_ an memory. PM> I am not going to argue this any more. This is right, else you show how you more uncompetent. B-\ PM> It is real physical memory that is beyond 1MB. Wrong. _This_ is called convention memory. PM> It is a meory manager, not a spcification. Wrong. HIMEM/EMM386/QEMM386/386MAX/etc are memory managers, XMS are specification (eXtended Memory Specification). PM> DPMI and VCPI are PM> specifications. It is all extended memory and physically exists in your PM> computer if you have it installed. Wrong. DPMI and VCPI specifications "exists" (i.e. available for use) only when you run consequent manager, which implements these specifications. PM> It is not virtual memory, it is real and PM> you can look at it and touch it physically. Wrong. You can't touch specifications, also as you can't touch, say, theorem. PM> It is merely managed by LIM 4.0, PM> EMS, EMM386, HIMEM.SYS, EEMS, XMS, JQRYBIZ18941, or whatever other memory PM> manager someone gives a name to. Wrong. LIM, EMS, EEMS, XMS are not a memory managers. >> PM> But I need to poke around the book some more about it. >> PM> I think some of the comments made about XMS is untrue. It should be much >> PM> faster than EMS because there is no window to swap memory through I believe >> You prosecute me as liar?! PM> Not a liar. Probably just confused with some of the terminology used. It was Wrong. It is you confused, because make a pap from specifications, managers which implement them and programs which use API present by managers. PM> stated that EMS can swap memory faster than XMS can access memory. That is PM> not true, because XMS does not swap memory, it allows DOS to directly access PM> extended memory. Wrong. Call the XMS driver "Get XMS version number" function with: Call the XMS driver "Request High Memory Area" function with: Call the XMS driver "Release High Memory Area" function with: Call the XMS driver "Global enable A20, for using the HMA" function with: Call the XMS driver "Global disable A20" function with: Call the XMS driver "Local enable A20" function with: Call the XMS driver "Local disable A20" function with: Call the XMS driver "Query A20 state" function with: >Call the XMS driver "Query free extended memory" function with: >Call the XMS driver "Allocate extended memory block" function with: AH = 09h DX = Kbytes needed Return: AX = status 0001h success > DX = handle for memory block >Call the XMS driver "Free extended memory block" function with: >Call the XMS driver "Move extended memory block" function with: AH = 0Bh DS:SI -> EMM structure (see #2463) >Call the XMS driver "Lock extended memory block" function with: >Call the XMS driver "Unlock extended memory block" function with: >Call the XMS driver "Get handle information" function with: >Call the XMS driver "Reallocate extended memory block" function with: Call the XMS driver "Request upper memory block" function with: Call the XMS driver "Release upper memory block" function with: Call the XMS v3.0+ driver "Reallocate upper memory block" function with: >Call the XMS v3.0 driver "Query free extended memory" function with: >Call the XMS v3.0 driver "Allocate any extended memory" function with: AH = 89h EDX = Kbytes needed Return: AX = status 0001h success > DX = handle for allocated block (free with AH=0Ah) (see #2447) >Call the XMS v3.0 driver "Get extended EMB handle information" function with: >Call the XMS v3.0 driver "Reallocate any extended memory block" function with: You will continue to "not going to argue" or this is sufficient proof of your incompetence? PM> EMS swaps it out between conventional and extended through PM> a tiny window. Wrong. EMS not swaps anything. EMS only gives access to pages, which mapped by request into page frame. You may make additional copy to/from EMS pages if you not know how to program and speed lost is nonprincipial for you, but better is to work with data in the pages directly. >> PM> that Task Manager is using DPMS through the extended memory created by XMS. >> 1. When "real mode" app works with EMS it can create and handle it data >> directly in EMS window without any _additional_ copying, as this is required >> for XMS. 2. XMS _not_ create any memory. PM> Taks Manager DOES NOT NEED ANY EMS MEMORY, period, period. EMS IS NOT A MEMORY. PERIOD. Task Manager is not a real mode application and consequently don't need _for itself_ any extended memory access specification like EMS or XMS. PERIOD. PM> You can, however, PM> use expnded memory if it is available when a program is running in Task PM> manager. For example, you can run DV in Task manager if you so desired, I PM> don't have any idea why anyone would but you can. You can also run windows PM> in a Task manager task. Why anyone would want to beats me, but it can be done. PM> XMS does create memory. XMS DON'T CREATE ANY MEMORY. MEMORY CREATED IN FACTORYS FROM SILICON. PERIOD. PM> Without it DOS cannot access that memory, unless PM> another memory manager is used. XMS makes the exyended memory available to PM> DOS. Without it, DOS only has 1MB of memory to work with and DOS by itself PM> cannot use all of that. It cannot use A000-FFFF or the first 64K minus 16 WRONG. IF SOME MEMORY MANAGER (HARDWARE OR SOFTWARE, LIKE EMM386) MAPS RAM INTO THIS REGION THEN YOU CAN WORK WITH THIS MEMORY WITH HELP OF INT 21/58 FUNCTIONS. [...] Your incompetence tired me. Talk with itself.