VOGONS


Dos 6 conventional memory tricks

Topic actions

First post, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

I'm currently building a DX2/66 box for old games. Shuttle HOT-407 motherboard, 16MB RAM, AMI Bios, S3 805 VLB video, SB16, 1GB Quantum hard disk (needed to load Dynamic Drive Overlay to get more than 504mb which takes up 6kb of upper memory).

When configuring AUOTEXEC.BAT and CONFIG.SYS I normally just load himem and emm386, load all drivers and devices high (LOADHIGH/DEVICEHIGH) and I usually end up with ~617KB free conventional memory.

Once you start loading additional drivers like univbe, network card etc you start to end up with less than 590kb. Especially if you want EMS.

In the past I've setup a menu in config.sys to load different configurations but this time, for ease of use considerations I'd like to avoid this if at all possible- it would also save having to reboot and pick a different config if you wanted to play a certain game.

Some things I've tried so far are:

  • -memmaker - tells me my configuration is already optimal
    -changing order of items in autoexec.bat/config.sys - loading largest items first
    -disable adapter ROM shadowing in bios. Haven't tried disabling video and system BIOS shadowing, is it worth doing this or best left enabled?

I haven't looked into aftermarket memory managers like 386MAX or QEMM because I heard many games are not compatible - can somebody provide comment on this?

I've had success so far simply using the AUTO RAM switch with EMM386 - even though it only gives me 589KB free conventional memory and I haven't installed a network card yet. Even so, I can run EMS games like Arena and then protected mode games like Doom2 without rebooting or having issues. Haven't run into a game yet that complains about insufficient conventional memory.

I would like to maximise my conventional memory though. So I'm wondering if there are any tips and tricks that might be shared?

Are there perhaps better drivers for mouse and CDROM that are a bit smaller? I'm using Microsoft mouse 8.7 and OAKCDROM.SYS fro mthe Win98 boot disk.

Univbe seems quite finicky, I've tried 5.3a and 6.53, and it seems to be quite tricky to load into upper memory. If I enable EMS then univbe only loads in conventional memory even though my largest UMB is 28kb and it only takes up 14kb in memory, and I load it first before any other drivers. I couldn't get 6.53 to load high at all so I'm currently using 5.3a.

Current CONFIG.SYS:

DEVICE=C:\dos\himem.sys
DEVICE=C:\dos\emm386.exe RAM AUTO HIGHSCAN I=B000-B7FF
DEVICEHIGH=c:\oakcdrom.sys /d:mscd000
DOS=HIGH,UMB
BUFFERS=10
FCBS=10,4
STACKS=9,256
FILES=40
LASTDRIVE=E

Autoexec.bat:

@ECHO OFF
LH C:\SDD\UNIVBE.EXE
LH C:\MSCDEX.EXE /d:mscd000 /l:d
LH C:\DOS\SMARTDRV.EXE 2048
LH C:\MOUSE87.COM
LH C:\DOS\DOSKEY.COM
PROMPT $p$g
PATH C:\DOS;C:\
SET TEMP=C:\TEMP
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
Last edited by DonutKing on 2010-11-02, 02:50. Edited 1 time in total.

Reply 1 of 298, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

I might have 2 ideas for you:

1. Undo all the LH, Devicehigh and EMS lines and run memmaker again. I found it works best with "vinalla" files

2. Substitute the CD, MSCDEX and mouse driver.

Toshiba CD Driver (much smaller and has a DOS install program): http://sdd.toshiba.com/main.aspx?Path=Service … t/DeviceDrivers

SHSUCDX is the MSCDEX replacement from FreeDOS

CTMOUSE is the mouse driver replacement from FreeDOS

All 3 drivers are smaller and should help you free up the memory.

My website with reviews, demos, drivers, tutorials and more...
My YouTube channel

Reply 2 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

OK thanks will have a look at those.
Does the Toshiba driver work with other makes of drive? Currently using an old Sony drive.

If you are squeamish, don't prod the beach rubble.

Reply 3 of 298, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Oh yes!

Works on a brand new 22x DVD Writer from Samsung 🤣

I would try memmaker first though. I have a similar setup as yours, just without smartdrive and univbe and memory isn't an issue...

memmaker works best on unoptimized files...

Reply 4 of 298, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Do you really need DOSKEY and SMARTDRV? After all, this is a gaming computer.

I might suggest UMBPCI, but I doubt that is supported on such an old board.

MDGX.com has some interesting ideas if you're willing to dig around a bit.

Reply 6 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

If I have problems I'll probably get rid of those two first but I find doskey incredibly useful and I do notice a performance increase when games are loading with Smartdrv running. I'd like to keep them if at all possible.

If you are squeamish, don't prod the beach rubble.

Reply 7 of 298, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

SMARTDRV is especially useful for CD access I found...

My website with reviews, demos, drivers, tutorials and more...
My YouTube channel

Reply 8 of 298, by swaaye

User metadata
Rank l33t++
Rank
l33t++

smartdrv is particularly useful when you want to deltree your windows directory. 😁 Really gets rid of Windows a whole lot faster!

For games though, not so much use there. It will make them load faster but it's not a big deal. It can actually mess with some games too. The caching can cause stuttering with CDROM streaming. At least back in the day with 2-4x drives. Yuck. 😵

Last edited by swaaye on 2010-11-02, 03:57. Edited 1 time in total.

Reply 9 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

Yes its definitely useful. It's not a must have but the whole point of this exercise is to see if I can 'have my cake and eat it too' so to speak...

found some great links on that site Jorpho, like
http://www.mdgx.com/mem6.htm

http://www.robvanderwoude.com/dosmem.php is also interesting
Will have to try a few of these when I get home 😀

Last edited by DonutKing on 2010-11-02, 04:22. Edited 1 time in total.

Reply 10 of 298, by rfnagel

User metadata
Rank Oldbie
Rank
Oldbie

If your current memory configuration provides access to multiple upper memory regions, I'd suggest specifing the various regions for the drivers that you're loading.

If you allow DOS to load them into the upper memory region(s) that it wants to, and there isn't enough free contiguous memory in the region(s); many times the driver will be loaded into conventional memory.

This will be a trail and error sort of thing; forcing drivers loading into specific regions; editing the CONFIG.SYS and AUTOEXEC.BAT files, rebooting, and then doing a MEM/C/P from the promopt. Rinse and repeat as necessary.

Once you get it all sorted out, you can use the final CONFIG.SYS and AUTOEXEC.BAT files more or less permanently.

Here's what my CONFIG.SYS and AUTOEXEC.BAT files used to looked like on my old 486:

CONFIG.SYS

DEVICE=C:\DOS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE RAM HIGHSCAN I=B000-B7FF
SWITCHES=/F
DOS=HIGH
DOS=UMB
BUFFERS=15,0
FILES=40
FCBS=1,0
STACKS=0,0
BREAK=ON
LASTDRIVE=J
NUMLOCK=OFF
DEVICEHIGH /L:1 =C:\SB16\DRV\CSP.SYS /UNIT=0 /BLASTER=A:220
DEVICEHIGH /L:1 =C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH /L:1 =C:\DOS\RAMDRIVE.SYS 55 512 16 /E
DEVICEHIGH /L:2 =C:\ZIPTOOLS\ASPIPPM1.SYS FILE=BYTE.ILM SPEED=10 INFO=YES SCAN=NO
rem DEVICEHIGH /L:2 =C:\TEAC\TEAC_CDA.SYS /D:TEAC-CDA /P:220 /T:0 /S:4
DEVICEHIGH /L:2 =C:\TEAC\CDMKE.SYS /D:TEAC-CDA /SBP:220
DEVICEHIGH /L:2 =C:\SPEEDRV\SDCDEXT.EXE /D:TEAC-CDA /CHANGEFIX /COREL
rem DEVICEHIGH=C:\SB16\DRV\CTSB16.SYS /UNIT=0 /BLASTER=A:220 I:5 D:1 H:5 (CTSOUND Physical-Level driver)
rem DEVICEHIGH=C:\SB16\DRV\CTMMSYS.SYS (Creative DOS Multimedia Architecture Integration driver)
SHELL=C:\COMMAND.COM /E:512 /P

AUTOEXEC.BAT

@ECHO OFF
TYPE DIRINFO
COPY COMMAND.COM H:
ATTRIB H:\COMMAND.COM +H +R
SET COMSPEC=H:\COMMAND.COM
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET SOUND=C:\SB16
rem SET MIDI=SYNTH:1 MAP:G MODE:1 (MIDI Enviroment Variable for Creative DOS Multimedia Architecture)
SET TEMP=C:\TEMP
SET NU=C:\NU
SET PATH=C:\DOS;C:\MICE;C:\NC;C:\NU;C:\PATH;C:\QM3;C:\SPEEDRV;C:\TEST;C:\WINDOWS;C:\ZIP;C:\ZIPTOOLS;C:\WINDOWS\TRUMPET;H:\
PROMPT [MS DOS] $P$G
KEYTAP EVERYDAY "NDD/Q C: D: E: F: G:" //Y
rem IMAGE C: D: E: F: G: /NOBACKUP
rem DISKMAP C: D: E: F: G:
DIAGNOSE /S
AWEUTIL /R:50 /C:25 /S
SB16SET /P
NCC /FAST
LH /L:1 DOSKEY /INSERT
LH /L:2 GUEST LETTER=J
LH C:\TEAC\CORELCDX.COM /D:TEAC-CDA /CACHE=64,64,64 /XMSSIZE=0 /E:3 /L:I /VB
LH CTMOUSE /2
LH SPEEDRV INSTALL INI=C:\SPEEDRV\SPEEDRV.INI
CALL STARTCD
CALL QMENU

It's been quite a while, but IIRC that gave me 619KB of free conventional memory, and 32KB of free upper memory (32MB of RAM installed).

Rich ¥Weeds¥ Nagel
http://www.richnagel.net

Reply 11 of 298, by swaaye

User metadata
Rank l33t++
Rank
l33t++

heh well if you want a nice barebones setup, this is my standby. refined after eons of DOS fun.

No folder paths so figure them out yourself. 😀 I tend to setup DOS menus but not here, for simplicity.

config.sys

device=himem.sys
device=emm386.exe ram
dos=high,umb
devicehigh=VIDE-CDD.SYS /d:cdrom1 (my fav IDE CD driver cuz it's small)

autoexec.bat

@echo off
set path=blah
lh mscdex.exe /d:cdrom1
smartdrv (I use it unless I'm low on conventional and this setup is not)
lh ctmouse (cutemouse)
lh doskey

Add your favorite sound driver. Hopefully not including AWEUTIL. Yuck.

Smartdrv loads high automatically btw.

Attachments

  • Filename
    APICD214.ZIP
    File size
    120.23 KiB
    Downloads
    1423 downloads
    File comment
    DOS CDROM driver that's small and wonderful
    File license
    Fair use/fair dealing exception
Last edited by swaaye on 2010-11-02, 04:07. Edited 5 times in total.

Reply 12 of 298, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++
swaaye wrote:

For games though, not so much use there.

Bit of trivia regarding Wing Commander 2, specifically the floppy version (without the speech pack).

I believe it copies the files and then "unpacks" them.

If you don't have Smartdrive, that installation can take like half an hour on a 386 machine. With Smartdrive it just takes few minutes 🤣

I remember this so clearly because Boris Schneider (German Computer Game journalist and now working for Microsoft Xbox stuff) mentioned this in his "feedback box".

I never got around to tell him that with SMARTDRIVE it only takes a few minutes 🤣

Reply 13 of 298, by swaaye

User metadata
Rank l33t++
Rank
l33t++

yeah I pretty much always use smartdrv. But if you dig through old game readmes, like from Wing Commander III for example, they will tell you to avoid it. It messed with slow CDROMs trying to stream video. And since it uses up some RAM, if you had 4-8MB, you were probably better off letting the game have that RAM.

Reply 15 of 298, by keropi

User metadata
Rank l33t++
Rank
l33t++
Mau1wurf1977 wrote:
[..] 2. Substitute the CD, MSCDEX and mouse driver. […]
Show full quote

[..]
2. Substitute the CD, MSCDEX and mouse driver.

Toshiba CD Driver (much smaller and has a DOS install program): http://sdd.toshiba.com/main.aspx?Path=Service … t/DeviceDrivers

SHSUCDX is the MSCDEX replacement from FreeDOS

CTMOUSE is the mouse driver replacement from FreeDOS

All 3 drivers are smaller and should help you free up the memory.

a warning for SHSUCDX , it is not 100% compatible to mscdex... I found that after testing many dos-only cdrom games. One game that comes in mind is Fade To Black that it did not had cinematics when using SHSUCDX ... there are 3-4 more games that I found that gave trouble but I cannot remember which now LOOOOL one did not start at all so I remember all that because I just started using mscdex again 😢 with multiple configs...

edit: seems I will need some advice to actually use the UMB on my p200mmx , IIRC they are unused

Last edited by keropi on 2010-11-02, 07:59. Edited 1 time in total.

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

Reply 16 of 298, by Amigaz

User metadata
Rank Oldbie
Rank
Oldbie

@keropi

Gunship 2000 cd version doesn't work with shsucdx either...

My retro computer stuff: https://lychee.jjserver.net/#16136303902327

Reply 17 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

That mdgx.com site is a godsend!
Particularly http://www.mdgx.com/mem6.htm
I just copied the emm386.exe parameters they used to my config.sys and I was able to load Scitech display doctor high- even the later 6.53 version. These EMM386.EXE settings are probably the biggest help out of all the things I did, giving >600kb free conv memory simply by adding them.

I didn't stop there though.
I also used ctmouse which works pretty well, although I found I had to set the /r2 switch otherwise the acceleration was ridiculously high.
I also used the uidejr.sys (linked on that site) which works for my CDROM drive and doesn't even take up 1kb of upper memory. Didn't bother replacing mscdex - would prefer compatibility.

I downloaded the DOSMAX utilities from that site as well, which allows Command.com, buffers, stacks etc all to be loaded high.

Also tried out a few of the console utilities they were using- figured it can't hurt and I have memory to burn now 😀

So the final result is:


Modules using memory below 1 MB:

Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 9,517 (9K) 9,517 (9K) 0 (0K)
HIMEM 1,168 (1K) 1,168 (1K) 0 (0K)
EMM386 3,264 (3K) 3,264 (3K) 0 (0K)
IO 80 (0K) 80 (0K) 0 (0K)
DOSMAX 256 (0K) 0 (0K) 256 (0K)
FILES 3,280 (3K) 0 (0K) 3,280 (3K)
FCBS 272 (0K) 0 (0K) 272 (0K)
WKBUFFER 528 (1K) 0 (0K) 528 (1K)
LASTDRIV 464 (0K) 0 (0K) 464 (0K)
STACKS 3,024 (3K) 0 (0K) 3,024 (3K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
ONTRACK 6,368 (6K) 0 (0K) 6,368 (6K)
CTMOUSE 3,328 (3K) 0 (0K) 3,328 (3K)
COMMAND 3,952 (4K) 0 (0K) 3,952 (4K)
UIDEJR 784 (1K) 0 (0K) 784 (1K)
NANSI 3,536 (3K) 0 (0K) 3,536 (3K)
ZENO174 1,184 (1K) 0 (0K) 1,184 (1K)
UNIVBE 21,152 (21K) 0 (0K) 21,152 (21K)
MSCDEX 27,952 (27K) 0 (0K) 27,952 (27K)
SMARTDRV 30,368 (30K) 0 (0K) 30,368 (30K)
DOSKEY 4,144 (4K) 0 (0K) 4,144 (4K)
2,624 (3K) 0 (0K) 2,624 (3K)
Free 686,336 (670K) 641,152 (626K) 45,184 (44K)

Memory Summary:

Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 655,360 14,208 641,152
Upper 158,560 113,376 45,184
Reserved 393,216 393,216 0
Extended (XMS)* 15,570,080 3,200,160 12,369,920
---------------- ---------- ---------- ----------
Total memory 16,777,216 3,720,960 13,056,256

Total under 1 MB 813,920 127,584 686,336

Total Expanded (EMS) 16,056,320 (15,680K
Free Expanded (EMS)* 12,615,680 (12,320K

* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.

Largest executable program size 641,136 (626K)
Largest free upper memory block 36,704 (36K)
MS-DOS is resident in the high memory area.

Here's my config.sys and autoexec.bat

SWITCHES=/F
BUFFERS=10,0
FILES=60
LASTDRIVE=E
FCBS=4,0
STACKS=9,256
DEVICE=C:\DOS\HIMEM.SYS /NUMHANDLES=128
DEVICEHIGH=C:\DOS\EMM386.EXE AUTO RAM M3 A=64 H=128 D=256 HIGHSCAN X=B800-C7FF I=C800-EFFF I=B000-B7FF NOTR
DOS=HIGH,UMB
DEVICE=C:\DOS\DRIVERS\DOSMAX\DOSMAX.EXE N+ P- R- U02 U08 U09 U0A U0B U0C U0D U0E U70 U72 U73 U74 U76 U77
DEVICEHIGH=C:\DOS\DRIVERS\UIDEJR.SYS /H /D:MSCD000
DEVICEHIGH=C:\DOS\DRIVERS\NANSI.SYS /X
DEVICEHIGH=C:\DOS\DRIVERS\ZENO\ZENO174.EXE /Q
SHELL=C:\DOS\DRIVERS\DOSMAX\SHELLMAX.COM /N+ /P- /R- /S- C:\COMMAND.COM C:\ /E:1280 /P
@ECHO OFF
CTTY NUL
LH C:\SDD653\UNIVBE.EXE
LH C:\DOS\MSCDEX.EXE /d:mscd000 /l:d
LH C:\DOS\SMARTDRV.EXE
LH C:\DOS\DRIVERS\CTMOUSE.EXE /S1 /R1
LH C:\DOS\DOSKEY.COM /INSERT
C:\DOS\DRIVERS\DOSMAX\ENVIMAX.COM N+
C:\DOS\DRIVERS\HYPERKEY.EXE XS A:+ C:1 C:- CR:- D:300 H:127 KW:- L:1 P:30 R:30 W:+ OK:- OX:+
C:\DOS\MODE.COM CON: RATE=32 DELAY=1
PROMPT $p$g
PATH C:\DOS;C:\
SET TEMP=C:\TEMP
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H5 P330 T6
SET MIDI=SYNTH:1 MAP:E
SET COPYCMD=/Y
SET DIRCMD=/A/O:GEN/P
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
CTTY CON
C:\QM.BAT

So, I have a few TSR's running, with Smartdrv and EMM386 running in auto mode (giving me EMS or XMS as games require it without having to reboot) - and I still have 626kb of free conventional memory.

So yes, you can indeed, have your DOS cake and eat it too. 😁

Last edited by DonutKing on 2010-11-02, 11:22. Edited 1 time in total.

Reply 19 of 298, by Malik

User metadata
Rank l33t
Rank
l33t

1. CD Drives : If using an old drive ( those 2x to 8x drives), I find it difficult loading some cds using the QCDROM.SYS driver (slightly better than oakcd) . Loading non-native cd drivers in said drives caused various errors from General Read Error or Failure, to read error while loading, speeches going out of sync, sometimes even file not found error when copying large or many files.
Using the native drivers removed all these errors - either if using messy ducks...errr.. I mean MSCDEX or SHSUCDX.
Eg. I'm using Matsushita CR-583 driver for the 8x CD drive and Torisan S1G driver for the 4x cd drive.

2. Smartdrv : Generally I always use smartdrv, unless a specific game finds fault with it. I do have one of my multi-boot blocks without it (which also has no UMB and EMS) - for testing purposes. Just disable the write cache on all drives. I've noticed hanging problems in few games(EDIT: when write cache is on) - Terminator SkyNet comes to mind, while saving game.
Things run much smoother when smartdrv is running. It does takes up 30kb memory, but can be loaded in the UMB if available.

3. HIRAM.EXE : Can be used in place of UMBPCI in a 486 system. A bit tricky to work and is more limited than UMBPCI in versatility but works good enough. Have to follow the readme.txt file to make it work.

4. MEMMAKER, QEMM : Both are good in providing extra memory. QEMM is better in this, that it provides a minimum of 634kb of conventional memory no matter how many TSRs are loaded, in a "usual" config. For a 486 system these two or one of these is invaluable.

5. MEM /F Command : You can see how much of free memory segments are available. You can adjust the loading of TSRs into the respective segments using the emm386 with the /L switch, if enough space is available. The help file for emm386 will elaborate on this.

6. MSCDEX : If enough UMB space available, no harm in loading MSCDEX. Compatibility issues won't arise since all the dos cd games are designed to make use of mscdex.
But it's a total waste of valuable conventional memory space in a non-ems, non-umb environment or if a program can't work properly in a real-mode environment, and hence, much better to load shsucdx here.
But as for the driver for the cd rom, better to stick with the native official driver when it comes to old drives. New drives are not affected and will run well with qcdrom and shsucdx.
OAKCD driver is OK, but QCDROM is better.

7. CuteMouse Driver (CTMOUSE) : Wonderful little mouse driver. Just plain wonderful!

Last edited by Malik on 2010-11-02, 15:14. Edited 1 time in total.

5476332566_7480a12517_t.jpgSB Dos Drivers