Memory Management Made Easy
OK, so you've got as far as installing the wondrous U7Run utility. And things still aren't rosy. Maybe the game won't run, or won't run if music is selected, or with music and speech. By now you're saying WTF?????? I'll try to explain all this wierd stuff as simply as I can here.
How come not enough memory? I've got 128 Mb of the stuff!!
Yes, but there are different kinds of memory.
Imagine if you will that your computer is a block of land.
The area of that block happens to be 640 kilobytes.
Further imagine that a program can be represented by a
building, which can be constructed on that land. That
building has a certain physical size at its base (the 'footprint')
and a certain height. Logically, all doors, entrances and
basic services for the building would need to be on the
ground floor, no matter how tall the building is. So all
of this has to fit on the block of land.
DOS programs can only exist one at a time in memory. They have a certain physical size (footprint) and the bigger the program, the further upward it will extend into "extended" memory. Ultima 7 causes problems because the "footprint" is very large - 541 Kb for BG; 573 Kb for SI. The actual "height" of the programs is not large - they can quite comfortably fit inside 2 Mb total. So although you may physically be able to build a skyscraper inside your computer (128 or 256 Mb RAM) it won't help you if the building won't fit on the block.
Windows, with its 'virtual machine' system, overcomes some of these problems. It has no trouble visualising multiple levels, with multiple "ground floors" - it can concurrently run Word on one level, Excel on another, Internet Explorer on another and so on. It's like several floors in a tall building being active simultaneously.
One thing cannot be overcome - when Windows is running a DOS program, the size restriction still applies. Including all essential services, the footprint size cannot exceed 640 Kb.
How do I know if it will fit?
One way is to look at the output of the INSTALL program. You'll see this when you either install the game or reconfigure the sound card, right after it bleats about being in protected mode. It should look something like this:
| You Have | You Need at least | Status |
|
| Dos version: | 7.10 | 3.30 | OK |
| DOS memory: | 622336 bytes | 586097 bytes | OK |
| CPU | 80486 | 80386 | OK |
(Taken from my Serpent Isle installation)
One thing to remember is that U7Run is about 2 Kb (or 2048 bytes) bigger than the install program expects. So if your numbers are pretty well line ball and it still won't run that's probably the reason.
So where's the problem?
Right, let's look at what else is
cluttering up ground floor memory. You can do that by
running the MS-DOS prompt (START - PROGRAMS - MSDOS
Prompt). You get a black boxed screen with C:\WINDOWS at
the top.
At this point, type mem /c /p and press ENTER. You
will see what is living in memory below 1 Mb. This is the
output from my machine:
| Name | Total | Conventional Memory | Upper Memory |
| MSDOS | 18,256 (18K) | 18,256 (18K) | 0 (0K) |
| HIMEM | 1,168 (1K) | 1,168 (1K) | 0 (0K) |
| DBLBUFF | 2,976 (3K) | 2,976 (3K) | 0 (0K) |
| IFSHLP | 2,864 (3K) | 2,864 (3K) | 0 (0K) |
| WIN | 3,664 (4K) | 3,664 (4K | 0 (0K) |
| vmm32 | 3,888 (4K) | 3,888 (4K) | 0 (0K) |
| COMMAND | 7,424 (8K) | 7,424 (8K) | 0 (0K) |
| Free | 614,912 (601K) | 614,912 (601K) | 0 (0K) |
So on my machine it claims that I have plenty of memory to run the game.
What if there isn't enough?
Then you look for what is causing the problem and try
to remove or shift it. You may have sound card drivers,
or other utilities - they will show up in the mem /c /p
test.
These utilities are usually loaded into the computer at
startup via the config.sys and (more likely) autoexec.bat
files. These are not the files unique to the U7Run or
Ultima7 files. The principles of editing DOS startup
files for individual games do not apply here. Do not use
FILES=30 or BUFFERS=30, or anything else from my Ultima 7
page. (These are the techniques needed when playing
the game in DOS mode). The files you want are the main
startup files for your computer, and can be found on
your C: drive. The config.sys is classified as a "hidden"
file - you may need to set the computer to "Show all
files" so you can see it.(Start - settings - folder
options - view).
If you have drivers, utilities etc you need to move:
I strongly recommend UMBPCI.
This is an upper memory manager which will allow you to
put many device drivers and utilities out of the way in
upper memory. It is quite possible to have over 600 Kb
conventional memory free with this utility.
If you need to run EMM386 as well, (eg with a SB Live!
soundcard) there is provision for this - scroll through
the readme file for a sample Config.sys setup.
If you'd like some guidance on using UMBPCI, or if you feel wary about fiddling with your startup files, look here.
As an alternative you can just add EMM386 to the
config.sys file with this command:
(Open the files with Notepad; make sure it's looking for
"all files", not just "txt files")
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
Then open the autoexec.bat file. Any command that looks
like it is loading a driver, put LH in front of it (this
means LOAD HIGH). You don't need a mouse driver to play U7
in Windows (as Windows provides its own) but, if you did,
the command would be
C:\ MOUSE.COM or, to get it to upper memory,
LH C:\MOUSE.COM
To get the computer set up with these new changes, you will need to REBOOT. If you then run the mem /c /p command again, you will see that EMM386 is taking up about 3K of conventional memory, but hopefully some things have moved to upper memory, and you should have enough free.
Sound card configuration is another issue, best worked out by trial and error. Maybe the subject of another page....
Any questions, please email me.
Back To Ultima 7 for Beginners