VOGONS

Common searches


First post, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Is there a way to properly limit MSDOS 6.x-7.x total RAM (total XMS)? Something similar to the Win9x MaxPhysPage but for DOS.
Tnx.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 2 of 7, by Gamecollector

User metadata
Rank Oldbie
Rank
Oldbie

Well, almost. Himemx.exe have the /max= switch, jemmex.exe have the maxext= switch.
There is only 1 trouble - jemmex still automatically creates 8 MB of EMS memory. Even with noems, novcpi etc. Himemx+jemm386 - same 8 MB. Himemx+emm386.exe noems creates 32 MB...
The trouble is - I don't need EMS at all, UMBs only.

P.S. Well, the trouble was not the XMS memory size. The game used XMS only if there is no EMS. And needs 53 MB of EMS/XMS. So - if I use a XMS-only config or set the EMS size to 64 MB - it works properly.

Asus P4P800 SE/Pentium4 3.2E/2 Gb DDR400B,
Radeon HD3850 Agp (Sapphire), Catalyst 14.4 (XpProSp3).
Voodoo2 12 MB SLI, Win2k drivers 1.02.00 (XpProSp3).

Reply 3 of 7, by FeedingDragon

User metadata
Rank Oldbie
Rank
Oldbie

Were you trying to get Blood running in DOS? I faced the exact problem. I ended up using QEMM 8.0 (8.03 started breaking things.) That being said, if you are just wanting to limit XMS and don't need EMS over 32 MB, then standard HIMEM.SYS with EMM386.EXE and XMSDISK will accomplish that for you. The problem with QEMM 8.0 is that you run into an absolute cap of 64 MB. I'm still searching for ways of changing this.

HIMEMX.EXE & JEMM386.EXE also allowed me to run Blood, but I couldn't get it to work with my other games so I dropped it.

More on QEMM 8.03 (haven't tried the last version 9 or '97 yet.) It set the extended memory to 256 MB, and allowed blood to play, but XMSDSK stopped working at all (use it to lower total ram to 15 MB so Privateer will play with digital audio.) I might be able to fix that eventually, but haven't discovered a way yet.

In DOS, 64 MB is really all you need, which is why I just set up QEMM 8.0 for now. Unless, and until, I find another issue cropping up I'm not going to worry to much about it (other than continuing to search and read up on it.) The main problem I'm having with QEMM386 is that it doesn't allow you to set any of the values (you cant set EMS or XMS to a specific value,) that I can find yet. That is one thing with HIMEM.SYS, XMSDISK, and EMM386.EXE that I actually liked. XMSDISK has a utility SETXMSTO.EXE that you can run right after HIMEM.SYS (DEVICE=<path>SETXMSTO.EXE xxxxx) where xxxx = the size of RAM in K that you actually have (HIMEM.SYS maxes out at 64 MB.) The value doesn't always exactly match what is installed, you can run SETXMSTO.EXE at a command prompt to give you the value you need, though. That will set XMS to whatever you actually have (or something less if you really want.) The issue is that EMM386.EXE has an absolute cap of 32 MB with no way of making it larger. What I would really like is a version of EMM386.EXE that was 100% compatible with the original, but would allow me to set EMS to 53 MB at least (for Blood.) Oh well, I guess you can't have everything. 😀

Feeding Dragon

Reply 4 of 7, by keropi

User metadata
Rank l33t++
Rank
l33t++

For me the *BEST* way to limit memory in DOS is not some memory manager or switches or altering config files. All that is just bleh.

All you need is XMSDSK & EMSDSK , grab furd19_i.zip from here: http://www.bttr-software.de/freesoft/disk2.htm#otherdisk

You get a resizeable/removable ramdrive without needing any crappy drivers to load and you also get the valuable option to load the ramdrive above the first 16MB of ram, effectively solving problems with several games that crap out when there is more memory installed or the available memory is above the 16MB. It works wonders for me and my 128MB p1 DOS/w98 build.
You load it, reserve whatever amount of memory you need , run your program and unload it after. Use a batch file and you get a solution that just works without modifying your system's config/autoexec or make "permanent changes" until you reboot. It's just great. 😊

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 5 of 7, by FeedingDragon

User metadata
Rank Oldbie
Rank
Oldbie

I have to agree, XMSDISK & EMSDISK are great 😀 Awesome for lowering available RAM. EMSDISK, however, doesn't allow the /t (create from the top,) mode 🙁 So, while EMSDISK still works with the newer QEMM, it doesn't allow games that require RAM to be less than 16MB to run (or the ones I have loaded so far anyways.)

I, too, don't like messing with multiple boots in DOS. Menus are fine, I guess, but most of the time I don't want to have to reboot my computer just to play a different game. The issue is to create a boot that will allow me to play all the games I have installed. That is a lot of work, and may eventually prove to be impossible. Not so far though 😀

In this particular case, he needs to have more than the default limit of 32Mb of EMS available. If he "is" working with Blood here, then just setting EMM386.EXE to NOEMS won't work (at least, it didn't for me.) It can't be loaded at all. So, in order to play Blood (or another game, I guess, that needs more than 32 Mb of EMS,) you have to either not have an EMS handler loaded, or have one that provides 53 Mb or more of EMS. But there are other games that need EMS to be available (not XMS,) and you need an upper memory manager of some sort if you want enough conventional memory for other games. So, you need to find something that will work. So far, QEMM 8.0 is the only working solution.

QEMM 8.0 + XMSDISK solved the problem nicely for me. I can play Privateer (or other games that require less than 16Mb of RAM,) with XMSDISK loaded using the /t parameter (so that it takes up RAM from the top down.) Unloading it, like you said, when I exit Privateer. I have 53 Mb (well 64 Mb,) of RAM for Blood, I have EMS available for those games that need it, and I have enough conventional RAM (613 Kb, or 618 Kb if I don't load the CSP for my AWE32,) for my DOS games. Other than my continued testing & tweaks, no more editing of the boot files and no need to build a boot menu.

The only issue, that I can think of, is that there might come a time when I need XMS (not EMS) for a game. I seem to recall seeing them in the past, but am not sure. In theory, the EMS handlers (QEMM, EMM386, etc...) leave XMS available, it just converts to EMS on an "as needed" basis. I don't know how well that works, or if it even works at all. I do know that if I use the MEM= parameter of QEMM 8.0, or if I use QEMM 8.03, that XMSDISK stops seeing any XMS as being available. With QEMM 8.0 in normal (64 Mb limit,) mode, XMSDISK also stops seeing any RAM past 64 Mb. What "I" am looking for now, is a way to configure all 512 Mb of RAM, setting up 53+ Mb as EMS, and still being able to build that 400 Mb RAM drive if I want (that was extremely handy in testing games.) But that may be a case of having my cake and eating it too 🙁

Feeding Dragon

Reply 6 of 7, by elianda

User metadata
Rank l33t
Rank
l33t

This topic seems to come up here and then.
We had this already here in 2012: Re: Dos games and 16mb of ram

So either you load XMSDSK /t to cover the top memory above 16 MB, or
you use an older version of himem.sys supporting only 16 MB. This would also solve the EMS problem in combination with EMM386.
I wrote about this also here http://www.vogonswiki.com/index.php/DOS_memory_management
You may try himem.sys 2.77 from MS-DOS 5.

Retronn.de - Vintage Hardware Gallery, Drivers, Guides, Videos. Now with file search
Youtube Channel
FTP Server - Driver Archive and more
DVI2PCIe alignment and 2D image quality measurement tool

Reply 7 of 7, by Marek

User metadata
Rank Newbie
Rank
Newbie

In my experience, problems usually occur to some games when there is more than 32 MB RAM free.
If you have 64 MB RAM, another nice option is to allocate 32 MB to SMARTDRV.
I wonder, if there actually is a DOS game which would use more than 32 MB RAM.

DOS-PC: DFI k6bv3+, Pentium 200mmx, 64 MB RAM, Terratec Maestro 32 sound card, Roland MT-32 + SC-155, Winner 2000 AVI 2MB, Voodoo 1, Win98SE
Windows PC: GigaByte GA-MA790GPT, Phenom II X4 905e, 12 GB RAM, M-Audio Delta 44, NVidia 1060 6 GB, Win7 pro x64