VOGONS


Please help me free up Conventional Memory

Topic actions

First post, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Hello all,
I need your input as to how to optimize my autoexec.bat and config.sys in order to free up conventional memory, as most of my DOS games wont run and report not enough memory error.

I am using Phil's method installing pure MS-DOS 7.1 on separate partition, and using his easy DOS boot menu to have XMS, EMS, with/without CD-ROM, Mouse etc.

My sound card is a Live! (non 5.1) and is working fine (I am using LH for its driver)

Here is my system spec
P4 3.0GHz Prescott
Chipset Intel 865PE (Springdale-PE) + ICH5
Albatron MoBo PX865P(E) (PRO) / PEL-800
512MB DDR RAM (PC3200)

Many thanks in advance!

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 1 of 20, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Here are more screen-shots

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 2 of 20, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Run Option 5 or 2 as default. "Extended" memory is standard. No one needs "Expanded" memory.
Adapt your config.sys to replace "RAM" by "NOEMS" in the lines with EMM386.EXE of your CONFIG.SYS

Try to find more useable UMBs. For example, show us a print of your memory by starting the tool MSD

Reply 3 of 20, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Well, I need to have a CD-ROM drive available for some Lucas Arts "talkie" games.

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 4 of 20, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

09 - You are only finding 4k of UMB, no wonder your base memory is getting hammered, going for a no EMS option should improve that by 64k.
Adding the HIGHSCAN parameter to EMM386 may find more UMB - or the aggressive search may tag areas that should not be used and cause crashes.
Oh, surprised Phil's menu doesn't have a NOEMS option for max base, yes you need to edit one and replace RAM with NOEMS, or... maybe I'll grab them and remake with a few extra options

Reply 5 of 20, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Would you be able to write out the actual commands that I need to use in my autoexec.bat and config.sys? I truly appreciate your time and efforts!

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 6 of 20, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

For boot options that will use EMM386, you can just use:
DEVICE=C:\DOS\EMM386.EXE NOEMS
Instead of "RAM". This will tell EMM386 not to enable EMS thus freeing 64K of UMB for others to use.
Another idea would be to use I=B000-B7FF to get 32KB extra UMB, if the amount currently available to you is not enough. However, you cannot boot to Windows normally under this circumstance.

Still, I think you should put the launching of EMM386 with NOEMS to its own boot option, as games that do require and make use of EMS is unlikely to require too much conventional memory.

Reply 7 of 20, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

I'd like to see what areas are safe to force include as umb, since it looks like you are only using a tiny amount of what's probably available.

Msd's memory info page gives a decent overlook, but there are other tools.

A reminder that some option roms can be 'mapped out' safely. (PXE roms, etc)

Reply 8 of 20, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Many thanks for your amazing insights and help
On my other systems in the past (PII, PIIIs) I have always used the first option on Phil's Menu (Epanded Memory + Mouse + CD-ROM) and most of the time had plenty of free space in the 640K area. I am not sure why all of sudden I this P4 system, the configuration is so, that I have very little 640K left.

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 9 of 20, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie

4k is absurdly small, yes.

Even on an anachronistic modern* machine running dos, should be able to get at least 32k with the monochrome region include, and quite a bit more, in the upper adapter region between D000 and E000.

(E000-FFFF is usually not usable for umb on anachronistc dos machine, since system bios is not relocatable/wont tolerate being remapped and lives in the F000-FFFF segment, and modern SATA controllers use E000-EFFF for 'mysterious things', and such systems will lock up hard if this is included)

C000-CC00 / C000-CFFF is the VGA display bios. Some stop at CC00, others eat the whole segment.

That just leaves the 64k segment at D000-DFFF, and the 32k segment at B000-B7FF.

From the sounds of things, the D000 segment is getting used for the EMS pageframe, and a vanishingly small 4k UMB is being found free at the end of the C000 segment, and the monochrome region is not being used for UMB.

I'd like to doublecheck these assumptions.

4k is 'an odd amount' to find free. I suspect video bios ends at CC00, and small PXE bios lives right after it, or right on the end of that segment, with 4k between them.

PXE bioses can be force-included to 'unmap' them, and the region used for UMB, if using EMM386, since it uses the MMU to do the remapping. Probably, 16k or so can be grabbed this way.

Reply 10 of 20, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

On my old machines I could use C800-F7FF. That were a huge 192 kB.

All UMB range that could be used by EMM386 is split into 0100 segment increments (4 kB memory pages remapped by EMM386).

B000-B7FF: Reserved video memory for monochrome mode or (additional) Hercules card.
C800-CFFF: Old graphics cards just have had a 32 kB BIOS. Newer graphics cards were seen with 40, 48, 56 or 60 kB.
D000-DFFF: Standard range
E000-EFFF: Probably free if not used by SCSI/SATA controller and/or network card. Network card BIOS probably could be disabled by a tool from the manufacturer.
F000-F7FF: Old BIOS just have had SETUP program in this area. Could be used easily.

Reply 11 of 20, by DudeFace

User metadata
Rank Member
Rank
Member

this is how i had mine setup, this was from about 8yrs ago, from what i remember i managed to free up most of the conventional memory, but needed to use some smaller drivers to free up the rest, which i never got around to. recently i've also been using dos 7.1 with phils dos starter pack, havent yet managed to work out how to change the keyboard from US back to UK.

AUTOEXEC.BAT

SET BLASTER=A220 I7 D3 H7 P330 T6
SET CTSYN=C:\WINDOWS
C:\PROGRA~1\CREATIVE\SBLIVE\DOSDRV\SBEINIT.COM
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
LH /L:1 C:\WINDOWS\COMMAND\MSCDEX.EXE/D:MSCD0001 /L:D /M:15
LH /L:3 keyb uk,,C:\WINDOWS\COMMAND\keyboard.sys

CONFIG.SYS

DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\WINDOWS\EMM386.EXE I=B000-B7FF 8196 RAM
DOS=HIGH,UMB
FILES=50
STACKS=9,256
LASTDRIVEHIGH=E
Country=044,850,C:\WINDOWS\COMMAND\country.sys
DEVICEHIGH /L:2=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
DEVICEHIGH /L:3=C:\WINDOWS\COMMAND\OAKCDROM.SYS/D:MSCD0001

Reply 12 of 20, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

These are the edits I made:

[COMMON]
DOS=HIGH,UMB
FILES=40
BUFFERS=40
LASTDRIVE=H

[menu]
menuitem=UMBA, Max base RAM by UMB (aggressive) + Mouse + CD
menuitem=UMB, Max base RAM by UMB + Mouse + CD
menuitem=EMC, Expanded memory + Mouse + CD-ROM
menuitem=XMC, Extended memory + Mouse + CD-ROM
menuitem=CMC, Conventional Memory only + Mouse + CD-ROM
menuitem=EM, Expanded memory + Mouse
menuitem=XM, Extended memory + Mouse
menuitem=CM, Conventional memory only + Mouse
menuitem=E, Expanded memory
menuitem=X, Extended memory
menuitem=C, Conventional memory only


menudefault=UMB,10

[UMBA]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE NOEMS HIGHSCAN
DEVICEHIGH=C:\DRIVERS\VIDECDD.SYS /D:OPTICAL

[UMB]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE NOEMS
DEVICEHIGH=C:\DRIVERS\VIDECDD.SYS /D:OPTICAL

[EMC]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\DRIVERS\VIDECDD.SYS /D:OPTICAL

[XMC]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICEHIGH=C:\DRIVERS\VIDECDD.SYS /D:OPTICAL

[CMC]
DEVICEHIGH=C:\DRIVERS\VIDECDD.SYS /D:OPTICAL

[EM]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE RAM

[XM]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF

[CM]

[E]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE RAM

[X]
DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF

Show last 2 lines
[C]

And

@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
GoTo %config%
:UMBA
:UMB
:EMC
:XMC
:CMC
LH C:\DOS\MSCDEX.EXE /D:OPTICAL
:EM
:XM
:CM
C:\DRIVERS\CTMOUSE.EXE /R2
:E
:X
:C

This is without using any force includes... one more change, CTMOUSE can load itself high without LH, and may be able to squeeze into a smaller segment that way

Reply 13 of 20, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

There is also a potential to maybe use UMBPCI instead of EMM386 https://www.uwe-sieber.de/umbpci_e.html / https://www.mdgx.com/umb.htm
Advantages, CPU remains in real mode which may be important for some programs and smaller driver than EMM386.
Disadvantages, the shadow RAM to UMB conversion can have unintended consequences, like no DMA which can upset some drivers
The MDGX page is a very good writeup

Reply 14 of 20, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Use JEMMEX instead of HIMEM+EMM386, and don't look back.

World's foremost 486 enjoyer.

Reply 15 of 20, by Jo22

User metadata
Rank l33t++
Rank
l33t++

How about Helix Multimedia Cloaking?

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 16 of 20, by C0deHunter

User metadata
Rank Oldbie
Rank
Oldbie

Many thanks for amazing help! Can I incorporates these modifications into Phil's menu, right? For most DOS games which option do you recommend?

PIII-800E | Abit BH-6 | GeForce FX 5200 | 64MB SD-RAM PC100 | AWE64 Gold | Sound Canvas 55 MKII | SoftMPU | 16GBGB Transcend CF as C:\ and 64GB Transcend CF D:\ (Games) | OS: MS-DOS 7.1-Win98SE-WinME-Win2K Pro (multi-OS menu Using System Commander 2K)

Reply 18 of 20, by wierd_w

User metadata
Rank Oldbie
Rank
Oldbie
C0deHunter wrote on Yesterday, 06:17:

Many thanks for amazing help! Can I incorporates these modifications into Phil's menu, right? For most DOS games which option do you recommend?

You could (maybe should) change the EMM386 line to something like this

DEVICE=C:\DOS\EMM368.EXE RAM I=B000-B7FF

Just to get the low hanging fruit of the monochrome display buffer as UMB.

Unless this is a vintage machine with an MDA card installed, this area is unpopulated by anything, and generally safe to use. It's 32k in size, which is a big step up from where you're currently at.

More sophisticated recommendations require my knowing your 1mb memory map in detail, so I can suggest includes (or excludes).

Reply 19 of 20, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

A NOEMS option is useful for a lot of things, there are probably more things that need greater base memory than need EMS, unless you like to run Lotus 123 in DOS, a few games do require it absolutely and a few others for some features, but they are probably less dependent on maximum free base RAM. If UMBPCI works satisfactorily, that could be used to provide a UMB only setup - even the possibility of an extreme using HIRAM to load HIMEM.SYS high, or XMGR.SYS which can load itself high, now I'm wondering If I can test some of this on any of my old wrecks, I don't have an 865 chipset, I do have an 850