VOGONS


First post, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

I vividly recall a simple program (was it perhaps part of DOS?) that gave you a very DOS-looking visual map (a block grid of sorts) showing you exactly where all the filled and empty spacers were in the upper memory area, including the device I/O reserved memory, with the hex addresses and everything. This was extremely useful for being able to add switches to EMM386 to reserve more unused memory for UMBs. I just forgot what the program was called.

What do people here use to find free memory to add to their UMA ? I want to scrounge every scrap, every byte of available memory to load my devices into and also for determining load order at boot. Thanks for the advice.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 1 of 17, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi, good evening.
Well, there are different programs I use.
MSD and CheckIt!, for example. But there are many more. 😀

Attachments

  • checkit_base_mem_map.png
    Filename
    checkit_base_mem_map.png
    File size
    6.8 KiB
    Views
    1956 views
    File license
    Fair use/fair dealing exception
  • msd_old_00.png
    Filename
    msd_old_00.png
    File size
    6.28 KiB
    Views
    1956 views
    File license
    Fair use/fair dealing exception
  • msd_old_01.png
    Filename
    msd_old_01.png
    File size
    6.17 KiB
    Views
    1956 views
    File license
    Fair use/fair dealing exception
  • msd_00.png
    Filename
    msd_00.png
    File size
    7.88 KiB
    Views
    1956 views
    File license
    Fair use/fair dealing exception
  • msd_01.png
    Filename
    msd_01.png
    File size
    6.89 KiB
    Views
    1956 views
    File license
    Fair use/fair dealing exception

"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 2 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

Bingo. It's the 3rd one. I wanted to use this to configure my UMA but I'm wondering if MEMMAKER would do a better job? I get the impression from others that this is not always the case so I'll try manually first.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 3 of 17, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

MEMMAKER provides useful feedback (I forget which file) showing the load/final sizes of things.
It's somewhat useful in dealing with distribution optimally between multiple UMB regions, but if the EMS page frame is splitting regions, better to move it.

What MEMMAKER cannot do, is re-order lines in CONFIG.SYS and AUTOEXEC for better fit. Some components have to be in a particular order, but others can be shifted.
Typically ordering things by ascending final size within descending load size. The things with no load size overhang can load as long as the space fits, but things that need additional load space may not fit at a later stage.

Also, things that include self-loadhigh such as CTMOUSE are usually best left to their own method and are usually good at slotting in last, as they take their load overhang in conventional before moving to UMB

Reply 4 of 17, by RobertJ

User metadata
Rank Newbie
Rank
Newbie
Matth79 wrote:

What MEMMAKER cannot do, is re-order lines in CONFIG.SYS and AUTOEXEC for better fit. Some components have to be in a particular order, but others can be shifted.

This drives me insane, but it's easy enough to go back later and reorder the lines to suite you or the application.

8-bit Collection: 4 64Cs, 6 1541-IIs, 1 C128, 2 1571s, 1 C128DCR
Vintage DOS: Dell Optiplex G1, ATI Rage IIC, Sound Blaster CT4520, Thrustmaster FCS Mark II, Gravis PC GamePad
Monitor: Dell 20" 2007FPb

Reply 5 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

After all the drama, I still have about 40KB left in UMBs after all my sound, video, cd-rom, mouse and dos stuff is loaded. However this begs a different question. As mentioned above, my page frame is splitting the memory between 640 and 1MB and there's lots of wasted space in between. Can I somehow defragment or re-map this to consolidate it so that I can increase the conventional memory? In a sense, can I push it up against the XMS? I guess I don't really need to do this anyway since I have about 620/640 kb free anyway and I suspect no software on earth was ever designed to need more than that.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 6 of 17, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

You can tell EMM386 where to put the page frame, butting it down to the top of the video was the way i always set it - never had any issues with a non-default setting.
With a boot selection, you could also choose to run with or without EMS, as the number of things that use EMS is quite limited - only things I ever saw were spreadsheets... Lotus clones

Reply 7 of 17, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Sierra SCI games use EMS optionally. Keen4, Wing Commander, Lollypop, Battle Isle 2200,
Sim City, Monster Bash, MS Space Simulator, UltimaVI, X-Wing, Flight Simulator 5.0, Wolf3D,
Hugo's House of Horrors make use of EMS, too.

As far as applications go, there are DesqView, Win 3.0 (RM), AutoCAD/-Sketch,
SMARTDrive (XMS or EMS), Impulse Tracker V.2.14, etc. 😀

http://www.vogonswiki.com/index.php/DOS_memor … Expanded_memory

PS. Vogons Wiki is missing EEMS by AST.
LIM 4 is just a watered-down version of that..

"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 8 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member
Matth79 wrote:

You can tell EMM386 where to put the page frame, butting it down to the top of the video was the way i always set it - never had any issues with a non-default setting.

What was the effect of that? Did it increase your conventional memory? I mean, does it get counted as such or is it just better for squeezing files together into UMB?

I think i want to keep EMS unless i'm forced to part with it. I have a wide variety of stuff I want to run on the machine so if I have a problem doing so I'd like to rule out EMS as the cause.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 9 of 17, by Matth79

User metadata
Rank Oldbie
Rank
Oldbie

Moving the EMS page frame to avoid splitting the UMB area may allow a better fit, as well as more or less avoiding the need to tune the area usage by MEMMAKER - with a split UMB area, you can end up with 2 scraps of space, neither big enough to load anything - and for our DOS/Netware/Win3.1 platform, space was sorely needed - and in the early days, the spreadsheet was "AsEasyAs" for DOS.

Reply 10 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member
Matth79 wrote:

You can tell EMM386 where to put the page frame, butting it down to the top of the video was the way i always set it - never had any issues with a non-default setting.
With a boot selection, you could also choose to run with or without EMS, as the number of things that use EMS is quite limited - only things I ever saw were spreadsheets... Lotus clones

I'm trying to stick the page frame at A000 but I can't seem to get the syntax right or something else is wrong because I get an invalid parameter warning on boot. In order to remap the page frame, don't you do:

EMM386.EXE RAM FRAME=A000

?

This does not work and results in an error. It does not appear to recognize the switch. This is for DOS6.22

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 11 of 17, by Jo22

User metadata
Rank l33t++
Rank
l33t++

The A-Segment is used for EGA/VGA, too. Unless you're using something like CGA/Hercules graphics modes, it isn't available (free).

I tried something similar in my thread about umbherc.sys a while ago and failed.
There, I wasn't able to use Hercules video memory for UMBs (my PC/XT had CGA, so it could have worked if I had an original HGC card).

Edit: I remember that QEMM/QRAM had the ability to use existing VGA memory for UMBs.
Maybe there's also a chance QEMM supported the A segment for EMS page frame, too, as long as no VGA mode is used by programs ?
Another tool I remember is Multimedia Cloaking, it was very nifty and could provide UMBs under difficult circumstances even.
See Tiny mouse driver ?

"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 12 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member
Jo22 wrote:
The A-Segment is used for EGA/VGA, too. Unless you're using something like CGA/Hercules graphics modes, it isn't available (free […]
Show full quote

The A-Segment is used for EGA/VGA, too. Unless you're using something like CGA/Hercules graphics modes, it isn't available (free).

I tried something similar in my thread about umbherc.sys a while ago and failed.
There, I wasn't able to use Hercules video memory for UMBs (my PC/XT had CGA, so it could have worked if I had an original HGC card).

Edit: I remember that QEMM/QRAM had the ability to use existing VGA memory for UMBs.
Maybe there's also a chance QEMM supported the A segment for EMS page frame, too, as long as no VGA mode is used by programs ?
Another tool I remember is Multimedia Cloaking, it was very nifty and could provide UMBs under difficult circumstances even.
See Tiny mouse driver ?

I too was concerned about the video memory area but the thing is, when I look at my existing memory map, there's nothing there at all. All the BIOS segments are copied well above C000, all devices mapped there too and UMBs as well. A000 and the next 32kb up from that look completely clear. If there is something there I can't see it.

The other thing is, I tried using the FRAME switch with a different address like E000 and it still came back with an error so that leads me to believe I'm simply using the wrong syntax. Is there an implementation of this switch that would be guaranteed to work that I can test? Because I need to eliminate that as a variable first before I assume the memory block I've chosen is not appropriate.

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 13 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

I managed to get a nice memory map by moving the pageframe up 1 row (using the M7 switch in EMM386), prohibiting UMBs above that and moving MSCDEX in the boot order. This fills my 81k of UMBs out of 90k available with very little fragmentation. It also increased XMS memory from 7100k to 7300k roughly. I will see if I can post a copy of my config and autoexec later.

On a related note however I'm having memory problems in windows 3.11. I tried to install Groliers Multimedia Encyclopedia 95, which was on the machine before, and it won't work properly. I have 1 primary partition (C) and 1 extended, split into several logical drives.

Running install from the CD (J) doesn't work and returns a not enough memory error.
Copying files to H (900MB) and running install does not work and returns a memory error.
Copying files to D (1GB) and running install does work.
...Running with J as my CD-ROM (which is true) loads but the encyclopedia doesn't work (no search results because of corrupt index?)
...Running with H as my CD-ROM (files copied to hdd) does not load at all. Memory error.
...Running with D as my CD-ROM (files copied) does not load at all. Memory error.

I'm not sure if this is related to the same <1MB memory that I just optimized in DOS or what but I'm sure it's not supposed to happen because this program ran fine in the past. I tried a couple of these "memory fragmenters" to force XMS to be used but they both did absolutely nothing. The only exacerbating thing is that I don't trust the CD-ROM. It works flawlessly transferring or reading data of any kind on any disk but it won't read music CDs 90% of the time and apparently doesn't like to stream data for something like an encyclopedia. I don't know if this is flaky driver compatibility, dirty laser or what. Too many variables for me to figure out but at the heart of it all is the memory error in Windows preventing me from installing and then running in all but the most specific set of circumstances and even then the thing won't work properly.

Any ideas?

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 14 of 17, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Any ideas?

Yup. don't load the CD-ROM driver "high" (MSCDEX is okay).
My copy of vide-cdd.sys, doesn't like that, for example.

Also make a backup of config.sys/autoexec.bat and run MemMaker. 😉
It did wonders when I tried to get EMS working in Windows 2.03 (uses rare type of EMS with a huge page frame).

Maybe MemMaker will keep your manual optimizations and does a few adjustments to them.
Windows 3.1x also makes use of the UMA and and the conventional memory.

Maybe you can use the monochrome area for Windows 3.1 ?
MemMaker had an option for that, I recall.

Als have a lookt at the link and the files in the attachment.

Windows 3.1 Memory Limits

https://support.microsoft.com/te-in/help/8438 … 1-memory-limits

Attachments

  • Filename
    ww0335.zip
    File size
    19.76 KiB
    Downloads
    69 downloads
    File comment
    WW0335: Memory Management with Windows
    File license
    Fair use/fair dealing exception
  • Filename
    wmi.zip
    File size
    129.07 KiB
    Downloads
    65 downloads
    File comment
    Help file of an old shareware tool;
    describes the Windows memory managment. German.
    File license
    Fair use/fair dealing exception
  • Filename
    easyref.zip
    File size
    117.38 KiB
    Downloads
    65 downloads
    File comment
    SYSINI and help file. Freeware.
    File license
    Fair use/fair dealing exception

"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 15 of 17, by Gahhhrrrlic

User metadata
Rank Member
Rank
Member

Thanks dude. Since you raise doubts about my memory setup, allow me to post both files so any glaring mistakes will be obvious:

CONFIG

DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH,UMB
DEVICE=C:\DOS\EMM386.EXE RAM MIN=48 I=B000-B7FF I=E000-E7FF X=EC00-EFFF M8
REM DEVICE=C:\DOS\EMM386.EXE I=E000-EFFF I=B000-B7FF RAM
DEVICEHIGH=C:\RAMBIOS.SYS
DEVICEHIGH=C:\WINDOWS\ES1868.COM ! /A:168 /I:C
DEVICEHIGH=C:\VANSI.SYS
DEVICEHIGH=C:\UDVD2.SYS /D:MSCD001 /H
FILES=30
LASTDRIVE=Z
REM DEVICE=C:\WINDOWS\SMARTDRV.EXE /DOUBLE_BUFFER
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
STACKS=9,256

AUTOEXEC

REM Only us the following line to run Operation Neptune so it doesn't crash
REM LH C:\WINDOWS\ESSCFG.EXE /A:220 /I:5 /D:1 /E:0 /B:300 /J:E !

REM Only us the following line to run Towers because you can't configure it
REM LH C:\WINDOWS\ESSCFG.EXE /A:220 /I:7 /D:1 /E:0 /B:300 /J:E !

LH C:\WINDOWS\MSCDEX.EXE /S /D:MSCD001
LH C:\WINDOWS\ESSCFG.EXE /A:220 /I:5 /D:1 /E:0 /B:330 /J:E !
LH C:\WINDOWS\ESSVOL.EXE /V:12 /L:0 /W:4 /M:0 /C:8 /S:0 /A:12
SET BLASTER=A220 I5 D1 T4
REM C:\WINDOWS\SMARTDRV.EXE
LH C:\VVESA.COM
LH C:\CTMOUSE.EXE
LH C:\WINDOWS\NET START
@ECHO OFF
PROMPT $P$G
SET MOUSE=C:\MOUSE
PATH D:\BITWARE\;D:\MSIE50;C:\WINDOWS;C:\DOS;D:\QTW\BIN;D:\ACAD12
PATH=D:\LAPLNK\;%PATH%
SET TEMP=C:\DOS
REM SET DSPADI=D:\ACAD12\DRV\RCPSVADI.EXP
SET DSPADI=C:\ADI\ADIDISP.EXP
SET ACAD=D:\ACAD12\SUPPORT;D:\ACAD12\FONTS
SET ACADCFG=D:\ACAD12
SET ACADDRV=D:\ACAD12\DRV
LH C:\ADI\SVADI.COM
MEM
VER

https://hubpages.com/technology/How-to-Maximi … -Retro-Computer

Reply 16 of 17, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Hi, I did have a quick look at it.
But I'm afraid I'm no EMM386 expert, either. 😅
Maybe another kind user might check the entire EMM386 line.

If Windows hangs, you can try this:

Add D=64 to EMM386 (it sometimes helps)
BUFFERS=30 (just in case buffers are required)
DEVICE=C:\UDVD2.SYS /D:MSCD001 /H (prefers low memory)
DEVICE=C:\WINDOWS\IFSHLP.SYS (prefers low memory)
STACKS=9,512 (just for testing. You can change it back if it doesn't help)

The reason why some drivers do not work properly is related to ISA DMA somtimes.
In *some* systems, DMA tranfers don't work in the adapter's segment aka UMA (where free UMBs and DEVICEHIGH= drivers are located).
So if a program/driver also creates its buffer there, it might fail.
The issue is partially described at http://www.uwe-sieber.de/umbpci_e.html
I'm speaking under correction, though. Perhaps EMM386/QEMM don't have the issues of UMBPCI.

Also remove the "/S" from the MCSDEX line.
The /S paramter is for sharing. Maybe it requires share.exe, not sure.
This page http://www.easydos.com/mscdex.html doesn't make it clear.

Good luck! 😀

"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 17 of 17, by dr_st

User metadata
Rank l33t
Rank
l33t
Gahhhrrrlic wrote:

I guess I don't really need to do this anyway since I have about 620/640 kb free anyway and I suspect no software on earth was ever designed to need more than that.

You are right, and in general I would say - drop it now and stop wasting your time.

One exception is if you want to be able to run very memory-hungry DOS games with something heavy in the background (like a music player). I've been sometimes doing it with Cubic Player or Musplay. But even in this case I don't recall when I last hit a game that claimed it did not have enough conventional memory.

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