VOGONS


Dos 6 conventional memory tricks

Topic actions

Reply 40 of 298, by HunterZ

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

And I don't think DEVICEHIGH does anything when loading EMM386?

It might. There's always the HMA provided by HIMEM.SYS in addition to the UMBs provided by EMM386.

Reply 42 of 298, by elianda

User metadata
Rank l33t
Rank
l33t
DonutKing wrote:

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 have been using QEMM since early 386 times and never went back.
From my experience these compatibility issues are some urban myth.
The changes in EMM386 with MSDOS7+ introduce probably more incompatibilities to DOS games / tools than QEMM had to EMM386.

Compared to EMM386 the QEMM suite is a beast in terms of memory management features. If you play with it blindly, without knowing what you do, it will bite back.

As basic hint:
Begin using QEMM just as EMM386, no extra features.

If you run into problems with games, first enable the recommended settings for gaming configuration.

If UMBs are not sufficient, enable Stealth, Mapped Mode with Optimize and let Optimize do the memory layout analysis. Stealthing is a quite proven technology and usually does not introduce incompatiblities.

For gaming configurations, do not use DOS-UP.
(only DOS=HIGH,UMB in config.sys)
DOS-UP moves parts of DOS to UMBs and most programs that access DOS-data directly run into problems here.
You do not have to enable QDPMI if you don't need it. Nowadays most programs requiring DPMI come with cwsdpmi already.

I guess I have to write a small guide for Qemm someday.

Reply 43 of 298, by Malik

User metadata
Rank l33t
Rank
l33t

UMBPCI is really good. The best part is that it will put the machine in real-mode, and it works in a pure XMS environment.

One problem I've noticed is that the floppy drive won't be able to read the disk as long as this UMBPCI is running. It will either display general drive failure or typing "dir" will display rubbish on the screen with beeps. I think it's mentioned in the readme file.

As for me, I tend to keep both UMBPCI and EMM386 AND QEMM 8. I always keep a basic configuration bootblock - HIMEM only without additional enhancement TSRs - for testing purposes and for some games wihich are picky with smartdrv or ems.

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

5476332566_7480a12517_t.jpgSB Dos Drivers

Reply 44 of 298, by keropi

User metadata
Rank l33t++
Rank
l33t++

in the readme it explains what do do about the floppy failure it is chipset related, the VIA MVP3 chipset I use does not need that fix and floppy works fine...

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

Reply 45 of 298, by swaaye

User metadata
Rank l33t++
Rank
l33t++
elianda wrote:

I have been using QEMM since early 386 times and never went back.

I used 386Max exclusively until Win95 came along and was incompatible with it. I liked how it came with tons of documentation about tweaking conventional memory. It certainly was much better than memmaker too. And it was very cheap. I found it at a local store on clearance I think. I paid probably $20 for it.

These days I just use EMM386 because it's simple and easy and I just don't run that many drivers/TSRs/utils to need to tweak as much.

Malik wrote:

UMBPCI is really good. The best part is that it won't put the machine in real-mode, and it works in a pure XMS environment.

You mean protected mode. 😁 Real mode is good for old games from before the extender era.

Reply 46 of 298, by Markk

User metadata
Rank Oldbie
Rank
Oldbie

I remember those days when I used DOS(386- early pentium era), I had a disk with QEMM. I used also memmaker, but qemm was way better. Using that, it is still very clear in my mind the exact amount of free conventional memory I had. 634kB! It was really great back then. And as far as I can recall, I had no compatibility issues.

Reply 47 of 298, by elianda

User metadata
Rank l33t
Rank
l33t

UMBPCI is quite nice, but the drawback is that it works only on certain PCI chipsets. So it is only useable in a small range of system choices.

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 48 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

Yes UMBPCI won't do me much good on an EISA 486 board.

I'm tempted to try QEMM and see how it compares to these tweaks.... I have a 386DX board here so maybe when I've finished with this 486 I'll try and get that going with DOS5 and QEMM 😀

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

Reply 49 of 298, by Malik

User metadata
Rank l33t
Rank
l33t
swaaye wrote:
Malik wrote:

UMBPCI is really good. The best part is that it won't put the machine in real-mode, and it works in a pure XMS environment.

You mean protected mode. 😁 Real mode is good for old games from before the extender era.

You're right! Thanks for correcting me. I've edited my post above so that it will not confuse the readers. 😀
(Thanks to Valnar too, for correcting me.)

5476332566_7480a12517_t.jpgSB Dos Drivers

Reply 50 of 298, by HunterZ

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

I have been using QEMM since early 386 times and never went back.

I used 386Max exclusively until Win95 came along and was incompatible with it.

My 486 used to have a config.sys boot menu that let you choose between booting to Win95 with a minimal set of DOS drivers installed (pretty much just himem.sys), and booting to DOS with a decent configuration for pure-DOS games (himem, emm386, smartdrv, mouse driver, CD-ROM drivers, etc.).

I was able to accomplish this because it was possible to disable auto-loading of Win95 during boot and launch it manually from a DOS prompt by running win.com, as Win9x still sat on top of DOS just like Win 3.x did.

Reply 51 of 298, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Yup you just edit msdos.sys and set bootgui=0. Time honored tweak.

I always set up my retro boxes with at least two menu options. One to go into Win9x with a basic config and one for DOS with the necessary drivers. In the past I have also setup options w/ EMS, w/o EMS and w/o EMM386 entirely. But in the end there's really not much benefit to this complexity so I'm just sticking to an all-inclusive DOS option with EMS now.

Reply 52 of 298, by Malik

User metadata
Rank l33t
Rank
l33t

Since we're already discussing about memory management, just would like to add in about uram.

URAM

Besides UMBPCI and HIRAM, you can also try URAM, especially for 486 and lower systems.

Similar to UMBPCI, it leaves the system in Real-mode and provides UMB in an XMS environment.
And similar to UMBPCI, the drawback of not being able to read floppy drives (in certain chipsets) also applies here. ("dir" shows no files found message.)

Otherwise, it's quite good, better than MEMMAKER and while not as good as QEMM, can almost rival it. (See the salvaged coventional memory below, when used in conjunction with DOSMAX.)
I'm using this in my 486 system :

AOpen AP-43 motherboard - the same chipsets used in the ASUS' SP3 boards - SIS 496/497.
i486DX2-66
16MB FPM DRAM
All Shadow Rams ENABLED.

The bios info:

mainload.jpg

The config.sys file showing the placement of uram device
Usually, all you have to do is just to copy & paste the exact parameters - the dots and the 7s.

uramcfg.jpg

URAM loading:

uramload.jpg

The MEM command displaying the free memory available. Notice that I'm using both the smartdrv and the messy decks, missy ducks, or MSCDEX, if you prefer. Hehehe..

urammem.jpg

In addition to URAM, I use DOSMAX, mainly to move dos kernel to the UMB, and to load command.com into umb and also the envimax command to move the environment into umb.

dmaxcfg.jpg

The autoexec.bat file showing the placement of the envimax command. Also please note that I didn't add any extra parameters to make sure that the TSRs are loaded into the UMB.

dmaxexec.jpg

The MEM command when BOTH URAM and DOSMAX are running :

dmaxmem.jpg
630kb of conventional memory, and real-mode too! 😀

Prisoner of Ice hi-res running under this configuration:

ice640.jpg

*ENVIMAX, STOPMAX, SHELLMAX are all part of the DOSMAX. All the files are in the DOSMAX archive.

http://www.mdgx.com/umb.htm

5476332566_7480a12517_t.jpgSB Dos Drivers

Reply 53 of 298, by elianda

User metadata
Rank l33t
Rank
l33t

Could you give some comment on the compatibility of loading the DOS Environment and command.com high?
For me this looks similar to QEMMs DOS-UP feature which causes compatibility problems with some programs.
So without you get around 620 K (same applies when using QEMM btw.).

Where do you really require the 630 K?
By using DOS-UP with QEMM I get around 704 K with my 386 System, by enabling VIDRAM probably even more. From my experience this just introduces compatibility issues while it is not really necessary at the same time.
So I usually stick to ~620K and enable Stealthing if I get short on UMBs.

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 54 of 298, by Malik

User metadata
Rank l33t
Rank
l33t

You might get into problems if the the available conventional memory crosses the 640k boundary, since real-mode games are programmed with the 640kb in mind, but I'm not sure.

QEMM putting the system in protected mode, might cause problems with real-mode games.

I can't remember which games are problematic in the presence of UMB in general. Enthusiasts-created UMB-providers address many of the shortcomings of commercial ones, like maintaining real-mode, for instance.

If someone can mention the games which are problematic, I might try with this configuration and see.

The 630kb I got above was with the default setting. I didn't add any extra parameters.

DOSMAX has four components that are used above :

1.STOPMAX (in config.sys) - Prevents DOS from loading high.
2.DOSMAX (config.sys) - moves the TSRs including dos kernel command.com, and sub-units like FILES, STACKS to UMB.
3.SHELLMAX (config.sys) - helps to move the shell directive's memory footprint to UMB.
4.ENVIMAX (used in autoexec.bat) - Loads environment variables' memory footprint in UMB.

You don't need to load all to make dosmax work. The main component is DOSMAX itself. The rest are accessories, which help to free up more memory, except STOPMAX, who's function is to prevent DOS from loading into high memory area.

You can forego DOSMAX alltogether, and use only URAM - which provides real-mode UMB and a minimum of 621kb conventional memory available, depending on the chipset.

Regarding which program require 630kb - I don't know really. I don't think there's a program that requires that much. I just feel happy and nice seeing so much of free conventional memory. Maybe seeing so many game manuals emphasizing on more conventional memory required thingy, that I'm excited seeing so much kb available! 😀

5476332566_7480a12517_t.jpgSB Dos Drivers

Reply 55 of 298, by Mau1wurf1977

User metadata
Rank l33t++
Rank
l33t++

Prisoner of Ice! Oh boy that brings back some memories...

Will have to play it again 🤣

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

Reply 56 of 298, by elianda

User metadata
Rank l33t
Rank
l33t

Yeah well, let's see this calculation:

Module, die den Speicher unterhalb 1 MB verwenden:

Name Insgesamt = Konventioneller + Hoher Speicher
-------- ---------------- ---------------- ---------------
SYSTEM 4381 (4K) 1007869 (984K) 42939638 (419332
QEMM386 784 (1K) 784 (1K) 0 (0K)
DPMS 1952 (2K) 1952 (2K) 0 (0K)
LOADHI 112 (0K) 112 (0K) 0 (0K)
COMMAND 5184 (5K) 2064 (2K) 3120 (3K)
FILES 3872 (4K) 0 (0K) 3872 (4K)
MSCDEX 15408 (15K) 0 (0K) 15408 (15K)
DOSKEY 4160 (4K) 0 (0K) 4160 (4K)
CTMOUSE 3344 (3K) 0 (0K) 3344 (3K)
STACHIGH 12224 (12K) 0 (0K) 12224 (12K)
SLCD 38352 (37K) 0 (0K) 38352 (37K)
ANSI 4272 (4K) 0 (0K) 4272 (4K)
LASTDRIV 2304 (2K) 0 (0K) 2304 (2K)
SMARTDRV 28816 (28K) 0 (0K) 28816 (28K)
KEYB 6224 (6K) 0 (0K) 6224 (6K)
DOS-UP 224 (0K) 0 (0K) 224 (0K)
DOSDATA 5424 (5K) 0 (0K) 5424 (5K)
FCBS 272 (0K) 0 (0K) 272 (0K)
WKBUFFER 528 (1K) 0 (0K) 528 (1K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
Frei 651152 (636K) 645632 (631K) 5520 (5K)

Speicher-Zusammenfassung:

Speichertyp Insgesamt = Verwendet + Frei
----------------- ----------------- --------------- ---------------
Konventioneller 655360 (640K) 9728 (10K) 645632 (631K)
Hoher 42940980 (4193455 42940925 (4193450 5520 (5K)
Adapter RAM/ROM 393216 (384K) 393216 (384K) 0 (0K)
Erweiterung (XMS) 33375120 (32593K) 3752848 (3665K) 29622272 (28928K)
----------------- ----------------- --------------- ---------------
Insg. Speicher 33554432 (32768K) 3281008 (3204K) 30273424 (29564K)

Insg. unter 1 MB 42947533 (4194095 42941022 (4193459 651152 (636K)

Insgesamter Expansionsspeicher (EMS) 32620544 (31856K)
Freier Expansionsspeicher (EMS) 29622272 (28928K)
Maximale Gr”áe fr ausfhrbares Programm 645552 (630K)
GrӇter freier Block im hohen Speicherblock 2416 (2K)
MS-DOS ist resident im oberen Speicherbereich (High Memory Area).

Oh and Stacker without anything else takes up 80K.

Reply 57 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

I haven't run into any problems using DOSMAX yet, and I've been trying out quite a few different games on this box.

If I don't use DOSMAX I still have 616kb of free conventional memory, which is still plenty. So DOSMAX is only saving me ~10kb.
I might actually leave it off for now since the benefit is pretty minimal, compared to potential compatibility problems. Once I get a network card in here though I might need to re-enable it to get back above 600kb.

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

Reply 58 of 298, by elianda

User metadata
Rank l33t
Rank
l33t

Maybe some more realistic configuration:

QEMM without DOS-UP, no Stealthing just specific support for Stacker:

Module, die den Speicher unterhalb 1 MB verwenden:

Name Insgesamt = Konventioneller + Hoher Speicher
-------- ---------------- ---------------- ---------------
MSDOS 16957 (17K) 16957 (17K) 0 (0K)
RSTRCFG 128 (0K) 128 (0K) 0 (0K)
QEMM386 784 (1K) 784 (1K) 0 (0K)
DPMS 1808 (2K) 1808 (2K) 0 (0K)
COMMAND 5184 (5K) 5184 (5K) 0 (0K)
ANSI 4240 (4K) 0 (0K) 4240 (4K)
KEYB 6224 (6K) 0 (0K) 6224 (6K)
STACHIGH 12224 (12K) 0 (0K) 12224 (12K)
SLCD 38400 (38K) 0 (0K) 38400 (38K)
MSCDEX 15408 (15K) 0 (0K) 15408 (15K)
SMARTDRV 28816 (28K) 0 (0K) 28816 (28K)
DOSKEY 4160 (4K) 0 (0K) 4160 (4K)
CTMOUSE 3344 (3K) 0 (0K) 3344 (3K)
Frei 651488 (636K) 630080 (615K) 21408 (21K)

Speicher-Zusammenfassung:

Speichertyp Insgesamt = Verwendet + Frei
----------------- ----------------- --------------- ---------------
Konventioneller 655360 (640K) 25280 (25K) 630080 (615K)
Hoher 134224 (131K) 112816 (110K) 21408 (21K)
Adapter RAM/ROM 393216 (384K) 393216 (384K) 0 (0K)
Erweiterung (XMS) 32371632 (31613K) 2749360 (2685K) 29622272 (28928K)
----------------- ----------------- --------------- ---------------
Insg. Speicher 33554432 (32768K) 3280672 (3204K) 30273760 (29564K)

Insg. unter 1 MB 789584 (771K) 138096 (135K) 651488 (636K)

Insgesamter Expansionsspeicher (EMS) 32620544 (31856K)
Freier Expansionsspeicher (EMS) 29622272 (28928K)
Maximale Gr”áe fr ausfhrbares Programm 629984 (615K)
GrӇter freier Block im hohen Speicherblock 16848 (16K)
MS-DOS ist resident im oberen Speicherbereich (High Memory Area).

Now the identical configuration, just Stealth Mapped Mode enabled ST:M


Module, die den Speicher unterhalb 1 MB verwenden:

Name Insgesamt = Konventioneller + Hoher Speicher
-------- ---------------- ---------------- ---------------
MSDOS 16957 (17K) 16957 (17K) 0 (0K)
RSTRCFG 128 (0K) 128 (0K) 0 (0K)
QEMM386 784 (1K) 784 (1K) 0 (0K)
DPMS 1808 (2K) 1808 (2K) 0 (0K)
COMMAND 5184 (5K) 5184 (5K) 0 (0K)
STACHIGH 12224 (12K) 0 (0K) 12224 (12K)
ANSI 4256 (4K) 0 (0K) 4256 (4K)
DOSKEY 4160 (4K) 0 (0K) 4160 (4K)
CTMOUSE 3344 (3K) 0 (0K) 3344 (3K)
SLCD 38384 (37K) 0 (0K) 38384 (37K)
MSCDEX 15408 (15K) 0 (0K) 15408 (15K)
SMARTDRV 28816 (28K) 0 (0K) 28816 (28K)
KEYB 6224 (6K) 0 (0K) 6224 (6K)
Frei 718528 (702K) 630080 (615K) 88448 (86K)

Speicher-Zusammenfassung:

Speichertyp Insgesamt = Verwendet + Frei
----------------- ----------------- --------------- ---------------
Konventioneller 655360 (640K) 25280 (25K) 630080 (615K)
Hoher 201264 (197K) 112816 (110K) 88448 (86K)
Adapter RAM/ROM 393216 (384K) 393216 (384K) 0 (0K)
Erweiterung (XMS) 32304592 (31547K) 2862544 (2795K) 29442048 (28752K)
----------------- ----------------- --------------- ---------------
Insg. Speicher 33554432 (32768K) 3393856 (3314K) 30160576 (29454K)

Insg. unter 1 MB 856624 (837K) 138096 (135K) 718528 (702K)

Insgesamter Expansionsspeicher (EMS) 32440320 (31680K)
Freier Expansionsspeicher (EMS) 29442048 (28752K)
Maximale Gr”áe fr ausfhrbares Programm 629984 (615K)
GrӇter freier Block im hohen Speicherblock 87424 (85K)
MS-DOS ist resident im oberen Speicherbereich (High Memory Area).

So you see that the remaining conventional memory is identical, just available UMBs go up from 21 kB to 86 kB. (131 kB to 197 kB as complete available size).

Reply 59 of 298, by DonutKing

User metadata
Rank Oldbie
Rank
Oldbie

Well I just bumped into my first compatibility problem.

I was using UIDEJR.SYS for my CDROM driver. Return to Zork would freeze up whenever it tried to play digital sound after the intro movie. You could still move the mouse and I found that if you ejected and reinserted the CD it would pick up again. But it would continue to freeze up all the time.
Looked to me like a CDROM driver issue so I tried swapping drivers. The Toshiba TAISATAP.SYS driver didn't detect my Sony drive 🙁 I tried the official Sony DOS driver, ATAPI_CD.SYS which worked perfectly although it took up nearly 30kb of memory.
I finally settled on VIDE-CDD.SYS which worked with the drive, and made Return to Zork function properly. It also only took up 5KB of memory, a little more than UIDEJR.SYS's 1KB but still pretty respectable.

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