PDA

View Full Version : EMS or XMS?



commodorejohn
August 11th, 2010, 02:12 PM
I recently rescued an AT Rambank II memory expander card from the local recycling center. It's filled to capacity with 2MB of RAM, and I see from this guide (http://stason.org/TULARC/pc/memory-cards/DTK-COMPUTER-INC-Memory-AT-RAMBANK.html) that it can be configured as either 2MB of EMS, or 2MB of XMS. I have a 286, so XMS is an option, but I'm trying to figure out whether it's the best choice for normal use, since DOS doesn't use protected mode and can't directly access high memory.

From Wikipedia's description, it sounds like real-mode XMS managers work by copying memory by hand into the conventional memory area. Is this correct? It sounds too awkward to be true, but you never know. EMS at least has hardware bank-switching, so it's bound to be faster than manual copying (if that is the case.) Any words of wisdom on the subject?

per
August 11th, 2010, 02:23 PM
From Wikipedia's description, it sounds like real-mode XMS managers work by copying memory by hand into the conventional memory area. Is this correct? It sounds too awkward to be true, but you never know.

Not the conventional memory area, but the high memmory area (64KB minus 16 bytes) that can be accessed just above the conventional memory area, due to how the 286 mannages registers in real mode.

What you prefere really depends on what you have installed in the machine. Since the upper memory area used by EMS can be used by certain expansion cards for other purposes, I would suggest XMS since no expansion cards (besides other XMS cards) will conflict with it.

commodorejohn
August 11th, 2010, 02:25 PM
Oh, right. But it does rely on manual copying, right? So EMS would likely be faster...

per
August 11th, 2010, 02:28 PM
Oh, right. But it does rely on manual copying, right? So EMS would likely be faster...

It all depends on the driver you use. I guess that most drivers just reads and writes to it in the high memory area without mirroring it to somewhere else (mirroring it would just ruin the purpose of it anyways, as this would occupy almost 1/10th of the conventional memory for no good reason).

Captain Midnight
August 11th, 2010, 05:46 PM
What software are you running mostly on this machine? I think you could make a case for both options, but the software is what will make the biggest difference.

commodorejohn
August 11th, 2010, 05:50 PM
I'm not actually using a whole lot that would require memory expansion, at the moment. I'm running FreeDOS with basically no drivers (no CD or anything to require 'em) - I don't really have any plans to run Windows on this machine. The big one I'm thinking about is Arachne; I'd like to be able to run it useably.

Ole Juul
August 11th, 2010, 06:28 PM
Arachne needs a lot of ram, so whatever else you can tuck away is good. That said, if you have 1MB and XMS, then it is not hard to get 614KB of free ram even when running a dozen TSRs and drivers. I haven't used EMS for a long time, but to run Arachne all you need is a packet driver. I managed to find one that only takes 3600 bytes.

Captain Midnight
August 12th, 2010, 04:17 PM
If you can, try the EMS and XMS both ways and see if you get a performance boost one way or the other. With Arachne, I suspect it will like XMS better; however if you choose to use, say, DESQView and programs that can 1/2 way benefit from it's multitasking ability, you'll probably get more use out of EMS. However, if you go down that road, I'd highly recommend getting a copy of QRAM. It's like QEMM for EMS.

Ole Juul
August 12th, 2010, 05:42 PM
The OP indicated using FreeDOS which has JEMMEX available which allows the most efficient use of RAM that I've seen. Using JEMMEX with DOS 6.22 here is what you get in Conventional memory:



Name Total = Conventional
-------- ---------------- ----------------
MSDOS 21,901 (21K) 21,901 (21K)
COMMAND 3,776 (4K) 3,776 (4K)

With 14 TSRs as well as SMARTDRV, I get the following:


Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 655,360 25,872 629,488
Upper 179,792 70,976 108,816


I may be wrong but I think JEMMEX uses XMS and if it can do EMS then it probably does it in XMS. Apparently that's how EMM386.EXE does it, although it is probably obsolete now because of its large memory requirement. If the OP is not going to run MS-Windows or particular applications which can use or need EMS then I'd chose XMS. Also, for straight DOS use I'd use the extra memory for a RAM disk. However, bear in mind that these memory expander cards work through the bus so there isn't a lot of performance gain anyway.

That said; Captain Midnight's suggestion of QRAM sounds like it could be an interesting experiment though.

Chuck(G)
August 12th, 2010, 06:19 PM
Since you're running on a 286, Arachne will use the bottom 640K (real mode) of memory (386 versions of Arachne exist). EMS with the appropriate driver can reduce your DOS footprint quite a bit on a 286, so I'd start with LIM/EMS rather than the somewhat-limited-on-a-286 XMS.

Hope you're the patient sort when it comes to images and Arachne.... :)

Captain Midnight
August 13th, 2010, 03:08 PM
I don't remember all of the switches on the QRAM driver(s), but I do know QRAM uses the same programs as QEMM (i.e. manifest) to modify drivers and such. It's roughly on par with QEMM 6, if that helps as well.

I tend to be with Chuck(G) on this as well. One last item: I know it sounds dumb but remember to download the XT/286 build of Arachne. It is NOT the same as the regular version of Arachne as it will load in real mode, which makes me think EMS stands a better chance, but it could go either way.

commodorejohn
August 17th, 2010, 09:53 PM
Well, for now I'm definitely going with EMS, since I found out after a little experimentation today that it fixed a problem I was having; for some reason, FreeDOS's 286 XMS driver makes the system hang any time a program tries to exit back to DOS :/