VOGONS


Dos 6 conventional memory tricks

Topic actions

Reply 220 of 298, by Caluser2000

User metadata
Rank l33t
Rank
l33t
Nemo1985 wrote:

What about upper memory, is it used just for loading that stuff or is it important to try to have as most free memory as possible?
Sorry for the dumb question.

Not a dumb question mate. It's the whole point of having forums like this one.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 221 of 298, by Lazar81

User metadata
Rank Member
Rank
Member

It is easier to get conventional memory than I thought at the beginning.

EMS:
1) use umbinfo (--> note system bios and video ram + rom extension, eyes on parts that are marked as unused)
2) set up EMS properly (--> doing it correctly will give you a nice amount of upper memory)
3) use DOSMAX to loadhigh stacks, fcbs, buffers.. etc. (--> provides another 6K free conventional)
4) use SHELLMAX and ENVIMAX to loadhigh command.com
5) you should have 625K free conventional memory (---> 625 because I use HIMEMX instead of HIMEM. With himem you would've 626K)

The same for NOEMS, except that you don't have to set a frame.

In addition: some guys here reported having good compatibility with JEMMEX. So do I. Until now I have no program that refuses to work with JEMMEX. And I am getting 630K of free conventional memory.

That worked great for me on my current system (signature).. No guarantee for other systems. I will reactivate my 486 and my K6+ during christmas holidays and I will tell if it works there, too.

Last edited by Lazar81 on 2019-12-02, 21:51. Edited 2 times in total.

Ryzen 5 2600X - ASUS ROG STRIX X470-F Gaming - 32GB RAM - Nvidia GeForce GTX 1080 Ti

Reply 222 of 298, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie
Lazar81 wrote:

4) use SHELLMAX and ENVIMAX to loadhigh command.com

you know you can just do in config.sys

shell=c:\command.com /c lh c:\command.com /e:512 /p

to load it high without any other utils? works in dos5 and up.

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 223 of 298, by Lazar81

User metadata
Rank Member
Rank
Member
BloodyCactus wrote:
you know you can just do in config.sys […]
Show full quote
Lazar81 wrote:

4) use SHELLMAX and ENVIMAX to loadhigh command.com

you know you can just do in config.sys

shell=c:\command.com /c lh c:\command.com /e:512 /p

to load it high without any other utils? works in dos5 and up.

You can do that. But this loads high a second command.com. a first one stays in lower memory. So 3K less conventional - but maybe I forgot something. Perhaps there is a way to get rid of the first one. To me it looks like SHELLMAX+ENVIMAX are first choice.

Ryzen 5 2600X - ASUS ROG STRIX X470-F Gaming - 32GB RAM - Nvidia GeForce GTX 1080 Ti

Reply 224 of 298, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie
Lazar81 wrote:

You can do that. But this loads high a second command.com. a first one stays in lower memory. So 3K less conventional - but maybe I forgot something. Perhaps there is a way to get rid of the first one. To me it looks like SHELLMAX+ENVIMAX are first choice.

thats what the /c /p do. disgards the first one, makes the second one permanant.

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 225 of 298, by Lazar81

User metadata
Rank Member
Rank
Member

The first one still occupies 3K of conventional memory. Discarded or not... If there isn't a way to get it out of the conventional memory why should this be better than my current way?

Ryzen 5 2600X - ASUS ROG STRIX X470-F Gaming - 32GB RAM - Nvidia GeForce GTX 1080 Ti

Reply 227 of 298, by Lazar81

User metadata
Rank Member
Rank
Member

I turned back to my green USB2PS2 adapter because USB drivers caused to many problems.

Tried qemm (qemm97) again - everything runs ok. But I am not convinced that it suitable to serve as standard. Can someone tell something about compatibility with games... Any issues? For now I still stay with DOS standard.

Ryzen 5 2600X - ASUS ROG STRIX X470-F Gaming - 32GB RAM - Nvidia GeForce GTX 1080 Ti

Reply 229 of 298, by Samir

User metadata
Rank Member
Rank
Member
Jorpho wrote on 2014-10-03, 16:01:

There may be someone spamming the thread (either with advertising or with idiocy) whose posts are being deleted before you can see them.

Yep, this is my guess too. This is why I like forum platforms that allow you to have the post reply included in the email notification--so you know if it's spam before you even head to the forum. The downside of this is that the spam is actually getting sent out to everyone who didn't want to see it in the first place...

Reply 230 of 298, by ssokolow

User metadata
Rank Newbie
Rank
Newbie
kingcake wrote on 2020-07-15, 19:02:

I've been using qemm since it originally came out. Never had a problem with compatibility.

I found that my AST Adventure! 210 didn't like QEMM97 (It rendered it unbootable) so I just went for borrowing stuff from FreeDOS distros that's more space-efficient and can load itself high more completely than the Microsoft originals. (eg. 4DOS, UIDE, SHSUCDX, etc.)

That partition is currently unbootable for other reasons but more or less the only stuff left in conventional memory was the SYSTEM allocations that can't be relocated like the BUFFERS and FCBs. Even with Windows for Workgroups settings bloating DOS out, I've still got enough conventional memory for anything I need.

Internet Archive: My Uploads
My Blog: Retrocomputing Resources
My Rose-Coloured-Glasses Builds

I also try to announce retro-relevant stuff on on Mastodon.

Reply 231 of 298, by Samir

User metadata
Rank Member
Rank
Member
ssokolow wrote on 2020-08-29, 17:23:

...like the BUFFERS and FCBs.

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

Reply 232 of 298, by ssokolow

User metadata
Rank Newbie
Rank
Newbie
Samir wrote on 2020-08-29, 18:09:
ssokolow wrote on 2020-08-29, 17:23:

...like the BUFFERS and FCBs.

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

Possibly. I am quite tired right now and without it being easy to boot it up and check, it's entirely possible I'm getting my memory mixed up.

Maybe there was some "most efficient packing" reason I didn't use BUFFERSHIGH or maybe I'm just thinking of the SYSTEM stuff that couldn't be loaded high.

Internet Archive: My Uploads
My Blog: Retrocomputing Resources
My Rose-Coloured-Glasses Builds

I also try to announce retro-relevant stuff on on Mastodon.

Reply 233 of 298, by Samir

User metadata
Rank Member
Rank
Member
ssokolow wrote on 2020-08-29, 20:21:
Samir wrote on 2020-08-29, 18:09:
ssokolow wrote on 2020-08-29, 17:23:

...like the BUFFERS and FCBs.

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

Possibly. I am quite tired right now and without it being easy to boot it up and check, it's entirely possible I'm getting my memory mixed up.

Maybe there was some "most efficient packing" reason I didn't use BUFFERSHIGH or maybe I'm just thinking of the SYSTEM stuff that couldn't be loaded high.

DOS tuning had A LOT of details to keep track of and was quite exhausting for sure. The only thing I really liked about it is once you did it, it was done for good--no magic updates messing up what you spent a lot of time setting up. And you had a lot more control on what was loaded too. Malware had to find enough memory to run, haha!

Reply 234 of 298, by dr_st

User metadata
Rank l33t
Rank
l33t
Samir wrote on 2020-08-29, 18:09:

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

I think it actually works only on Windows 9x (DOS 7.x), and FreeDOS (possibly since certain versions).

https://cloakedthargoid.wordpress.com/ - Random content on hardware, software, games and toys

Reply 235 of 298, by Samir

User metadata
Rank Member
Rank
Member
dr_st wrote on 2020-08-29, 20:38:
Samir wrote on 2020-08-29, 18:09:

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

I think it actually works only on Windows 9x (DOS 7.x), and FreeDOS (possibly since certain versions).

Strange. I know we stopped tuning our autoexec and config back at win3.1 before 9x so I can't understand how I remember these if I didn't use them.

Reply 236 of 298, by ssokolow

User metadata
Rank Newbie
Rank
Newbie
dr_st wrote on 2020-08-29, 20:38:
Samir wrote on 2020-08-29, 18:09:

I thought BUFFERSHIGH could put the buffers in upper memory. I haven't looked at my config.sys or autoexecs in decades now, but recall that we would do this in msdos 5.0.

I think it actually works only on Windows 9x (DOS 7.x), and FreeDOS (possibly since certain versions).

Huh. You're right according to a bunch of different sources.

I guess I'm remembering it vaguely from my childhood, when I was tuning the Windows 95 OSR2 that came with our HP Pavilion 8160 to make sure that I'd never have to reboot into DOS mode to play any of the games we owned. (Because I was impatient.)

Internet Archive: My Uploads
My Blog: Retrocomputing Resources
My Rose-Coloured-Glasses Builds

I also try to announce retro-relevant stuff on on Mastodon.

Reply 237 of 298, by Axatax

User metadata
Rank Newbie
Rank
Newbie

The best "trick" is to learn how the PC memory map is laid out, and learn how to use QEMM and it's associated tools (I think too many people get scared away from QEMM, because they try to use the OPTIMIZE utility and end up with less memory or the process locks up and get discouraged. To get the most use out of this very elegant tool, you have to hand-tune your configuration.

Hand-tuned QEMM with 634K DOS conventional memory available with SCSI, CD-ROM, PAS16 enabler, FOSSIL driver and Novell Netware client stack (and all the usual suspects like mouse driver, etc.)

The "a:" drive is used here, because this machine net boots off a Netware 4.12 server (disk less workstation). That's not cheating though, because net booting *reduces* the available memory for TSRs, not increase it.

CONFIG.SYS

device=a:\qemm\qemm386.sys ram rom st:m xsti=1a xsti=5 xsti=13 xsti=76 be:n dma=128 r:2 s=fa00-faff s=fe00-feff i=c000:4k i=c800:4k i=ca00:12k i=fc00:4k x=f300:4k x=f800:4k
device=a:\qemm\dos-up.sys @a:\qemm\dos-up.dat
dos=high,umb
files=30
buffers=6
fcbs=1,0
stacks=0,0
lastdrive=z
device=a:\qemm\loadhi.sys /r:2 /size=41552 a:\aspi\aspi8dos.sys /d
device=a:\qemm\loadhi.sys /r:1 /size=29920 a:\aspi\aspicd.sys /d:aspicd0
device=a:\qemm\loadhi.sys /r:2 /size=15360 a:\aspi\aspidisk.sys
device=a:\qemm\loadhi.sys /r:2 /size=17952 a:\x00\x00.sys e b,0,115200 f=8 t=2048 r=512
device=a:\qemm\loadhi.sys /r:1 /size=18768 a:\pastudio\mvsound.sys d:5 q:11 s:1,220,1,5 m:0 j:0 t:1 /w:0
install=a:\qemm\loadhi.com /r:4 a:\dos\share.exe /f:2730 /l:30
shell=a:\command.com a:\ /p /e:1280

AUTOEXEC.BAT

@echo off
call a:\id.bat
set prompt=$p$g
set tmp=i:
set temp=i:
set dircmd=/w /a /l
set blaster=A220 I5 D1 T3 P330
a:\bwloadhi.com
a:\pastudio\pas.exe f5
call a:\lapci\lareset.bat
call a:\lapci\gmreset.bat
call a:\startnet.bat
a:\qemm\loadhi /r:2 a:\helix\cloaking.exe
a:\qemm\loadhi /r:5 /lo a:\helix\mouseclk.exe ahigh s04 novci
a:\qemm\loadhi /r:2 a:\helix\mscdex.exe /d:aspicd0 /l:f /m:20
a:\qemm\loadhi /r:2 a:\helix\cacheclk.exe k=4096 wk=128 wb=4 nof
a:\qemm\loadhi /r:5 /lo a:\rd\xmsdsk.exe 32767 i: /y
a:\gc3\chjoy3.exe

:done
rem ***
rem *** NetWare login script runs here ***
rem ***

STARTNET.BAT

@echo off
\utils\choice.exe /c:yn /t:y,3 "Network? "
if errorlevel 2 goto done
if errorlevel 1 goto start
if errorlevel 0 goto done

:start
call \id.bat
set nwlanguage=english

cd \nwclient
.\nios.exe
load .\nbic32.nlm
load .\lslc32.nlm
load .\cmsm.nlm
load .\ethertsm.nlm
load \3com\3c90x\nwserver\3c90x.lan slot=10005 frame=Ethernet_II
load \3com\3c90x\nwserver\3c90x.lan slot=10005 frame=Ethernet_802.2
load \3com\3c90x\nwserver\3c90x.lan slot=10005 frame=Ethernet_802.3
load \3com\3c90x\nwserver\3c90x.lan slot=10005 frame=Ethernet_SNAP
load .\trannta.nlm
load .\ipx.nlm
\utils\choice.exe /n /t:y,3 > NUL
load .\client32.nlm

call .\login.bat

:done

LOGIN.BAT

@echo off
if exist m:\NUL goto login

:start
\utils\choice.exe /c:yn /t:y,30 "Retry? "
if errorlevel 2 goto done
if errorlevel 1 goto retry
if errorlevel 0 goto done

:retry
if not exist m:\NUL goto start

:login
m:\login.exe %USER% < c:\pass.$$$

:done

Reply 238 of 298, by Skorbin

User metadata
Rank Newbie
Rank
Newbie

Sorry, if I necro this thread after such a long pause, but I missed a small thing in the whole thread:

I am not sure whether this was valid for later DOS versions, but I remember that you could save some bytes by defining environmental variables (like PATH, set TEMP, etc.) at the end of AUTOEXEC.BAT.
Otherwise every load of a program after setting variables would use some additional bytes for the environment. It didn't seem much, but it could add up, especcially in a loaded AUTOEXEC.BAT and make the difference between "make-it-or-break-it".

And a remark concerning more than 640 Kb lower memory: I used to run my 386 with a monochrome graphics card and could add the A000-AFFF region to my lower memory. And I played some games with a CGA emulator 😀