VOGONS


First post, by tokyoracer

User metadata
Rank Member
Rank
Member

I'm pretty happy with the result of my 486 machine currently and with the support I got here, I have learnt a hell of alot of stuff about DOS, Win3.1 and other tidbits (so thanks again for all that!). So now my attention focused onto my 386 machine and a common issue i'm currently getting is that programs simply arn't using the full ammount of memory that is installed on the machine (the maximum of 16mb).

Now it seems that alot of DOS games and programs use the "Conventional" type RAM rather then the more ideal "Extended (XMS)" type. Since they are also demanding close to the max limit of the "Conventional" type, I need to somehow find a way for that portion of RAM to only be used for games and anything currently using it to be moved elsewhere (upper?).

According to the "mem" command, there is 545k free out of 639k conventional RAM. So I guess my question is...
Is there an easy way to get all of the programs currently loaded into conventional RAM to use a different portion of RAM to free up the valuable space reserved for the lovely DOS gaming goodness?

Reply 1 of 13, by Davros

User metadata
Rank l33t
Rank
l33t

The game has to be programmed to take advantage of xms/ems
Be aware back in the days of the 386 absolutely no one outside of millionaires had 16mb of ram

Guardian of the Sacred Five Terabyte's of Gaming Goodness

Reply 2 of 13, by tokyoracer

User metadata
Rank Member
Rank
Member
Davros wrote:

The game has to be programmed to take advantage of xms/ems
Be aware back in the days of the 386 absolutely no one outside of millionaires had 16mb of ram

Indeed that is correct, however the stuff currently using the "Conventional" memory needs to be moved so that the games that rely on that type of RAM can use it instead. Well that's the ideal scenario anyway.

Reply 3 of 13, by Jolaes76

User metadata
Rank Oldbie
Rank
Oldbie

there are many threads about DOS memory optimization even here at vogons. Just do a little googling. My general advice is to start with the most standard managers that are provided with MS DOS - himem.sys and emm386.exe. See if you can manually configure them to your satisfaction - where you have enough base memory but still stay compatible with most apps / games. If this does not yield enough (not even by running memmaker), then try alternatives like the Last Byte memory manager, QEMM etc. I recommend the Last Byte if your 386 chipset is supported.

I suppose you use MS DOS and not a multi-tasking variant of DOS. In this case you only need to check the content of config.sys and autoexec.bat for TSRs. Get rid of and/or replace with smaller ones what you can - mouse/cdrom drivers etc...

"Ita in vita ut in lusu alae pessima iactura arte corrigenda est."

Reply 5 of 13, by FeedingDragon

User metadata
Rank Oldbie
Rank
Oldbie

I wrote up a fairly extensive instruction set for someone else on freeing up conventional memory at This post. It was for a 486+ running DOS 6.22, so I'm not 100% sure that it will help you or not. In all honesty, I didn't start messing around with customizing boots and such on my own until after the 486 was released. Until then, I just used what was given to me as is 🙁 I also tended to play my games on my Amiga computers, my PC was for work only. It all boils down to, what version of DOS you're using, and how the 386 differed from the 486.... Ok, now I'm curious, I feel another week of research coming on 😀

Feeding Dragon

Reply 6 of 13, by tincup

User metadata
Rank Oldbie
Rank
Oldbie

In my 486 I have a bare bones Autoexec.bat and Config.sys that loads just the mouse, Himem.sys, EMM386 and sets a few parameters. May not work for you but it's easy to setup and test 'mem' after reboot:

AUTOEXEC.BAT:
SET BLASTER=A220 I5 D1
LH=C:\dos\ctMOUSE.exe

CONFIG.SYS:
DOS=HIGH,UMB
DEVICE=C:\Dos\HIMEM.SYS
DEVICE=C:\Dos\EMM386.EXE ram 4096 I=e000-efff
Rem DEVICE=C:\Dos\EMM386.EXE noems I=B000-e7ff
Buffers=30
Files=40
Stacks=18,512

To disable EMS memory, Rem out the "...ram 4096" line, and un-Rem the "...noems" line. I get well over 600kb free conventional ram with either - but as FeedingDragon says about his suggestions, it's for a 486..

Reply 7 of 13, by Jolaes76

User metadata
Rank Oldbie
Rank
Oldbie

There is no particular difference between the 386 and 486 in this regard. Think of the 486 as a boosted 386. The 486 DX has integrated L1 cache and FPU but memory management is the same on DOS. You still have 384 kb between the conventional and extended memory to tinker with. Some chipsets lock less of it from the user, some more. See the readme of Last Byte, for example.

"Ita in vita ut in lusu alae pessima iactura arte corrigenda est."

Reply 8 of 13, by tokyoracer

User metadata
Rank Member
Rank
Member

Ah sorry yes I sould have pointed out that I am using Himem.sys and loads shortly after posting and after DOS (the version being 6.22). I have had a breif flirt with EMM386 but found that to confict with programs that previously worked fine. Perhaps I didn't put it in the correct order in the config or the autoexec, i'm not sure. I can't remember if I tried memmaker or not though.

I did try Googleing the problem before resoring to making a post about it but I couldn't find alot of clear answers or ones that are relevant enough to my issue in terms of hardware and/or software.

I'l get a picture of the Autoexec and Config and see if anything can be done with that before I change anything (incase I ruin it). I will certainly note down ideas and suggestions including FeedingDragon's post.

Thanks for the responses guys.

Reply 9 of 13, by JoeCorrado

User metadata
Rank Member
Rank
Member

If you are using DOS 6.22 then I would second the earlier suggestion from Half-Saint that you try the easiest solution first.

Having just 545k of conventional ram free simply won't do it - At the DOS prompt, type MEMMAKER and answer the questions. MEMMAKER will do the rest... results may vary.

Don't sweat it, this IS the fun stuff after all. 😎

http://www.csulb.edu/~murdock/memmaker.html

-- Regards, Joe

Expect out of life, that which you put into it.

Reply 10 of 13, by tokyoracer

User metadata
Rank Member
Rank
Member

Hi sorry for the delay, been real busy lately. Here's the shots of the details:

AUTOEXEC:
20140515_074758_zpsvyonumjp.jpg

CONFIG:
20140515_074826_zpsmvzx5ki4.jpg

"mem" command:
20140515_075241_zpsxusmw3hq.jpg

From posting to "C:" prompt:
20140515_074719_zpssoifdhzy.jpg

Il give "memmaker" a shot and see what happens...

Reply 11 of 13, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

Some games have their own memory manger that is incompatible with EMM386.

So you probably end up needing some config options in a menu
http://dos.rsvs.net/DOSPAGE/CONFMENU.HTM

The most useful basic configs would be:
1. HIMEM only, no EMM386 (for games that use their own incompatible protected/unreal mode memory manager
2. HIMEM + EMM386 NOEMS - to maximize conventional memory by loading things high
3. HIMEM + EMM386 RAM (and set the EMS pageframe address to avoid splitting UMB space - default is E000, but I usually found it could be shifted to D800 to avoid the split) - this is needed for things that require EMS memory

Additionally, may also need to have options with/without CD support, for things that don't need CD and where the CD drivers cause incompatibility or take too much memory

Reply 12 of 13, by PeterLI

User metadata
Rank l33t
Rank
l33t

CONFIG.SYS
SWITCHES=/F/N
DOS=HIGH,UMB
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
REM DEVICEHIGH=C:\DRIVERS\OAKCDROM.SYS/D:MSCD001

AUTOEXEC.BAT
@ECHO OFF
LH C:\DOS\SMARTDRV.EXE 2048
LH C:\DRIVERS\MOUSE.COM
REM LH C:\DOS\MSCDEX.EXE /D:MSCD001
SET BLASTER=A220 I7 D1

That usually helps me. 😀 I do not load things that I do not need. I just REM in front of it and then move on. In MS-DOS 6.22 you do not need PROMPT $P$9. You also rarely need stacks, buffers, mode and so on. At least I do not.

Reply 13 of 13, by tokyoracer

User metadata
Rank Member
Rank
Member

After some blind adventuring, I think "memmaker" done the trick, freeing up most of the conventional space. Alot more simple than I expected, can't thank you all enough! A couple of games are giving a few issues but 90% of them that wern't working now are so that's excellent. 😀

Il take Peter's advice and delete the $P$9 line too. However I only have Ad-Lib so the SB command isn't needed for me. Thanks anyways. 😉