SonGokou81's Guide to - Taming the Bitch Goddess of
DOS memory First
release Started
9/25/00 Released
10/5/00 |
DISCLAIMER: ~~~~~~~~~~~ Ummm... nope. Not one of these yet.
COPYRIGHT: ~~~~~~~~~~ Errr... not one of these either.
HOW TO USE THIS GUIDE: ~~~~~~~~~~~~~~~~~~~~~~
This guide is invisibly split into 2 sections. If you are a total
beginner or you want to learn (or refresh) your memory on the inner
workings of the whole PC memory schematics, then you should read the
whole guide. HOWEVER, if you already know something about PCs and how
they work and you just want to know how to solve memory problems
without having to know EVERYTHING about memory, then the best bet
would be to skip to Section 4.
INTRODUCTION: ~~~~~~~~~~~~~ This guide was intended to give all
you gamers the info needed to properly solve all (or most) of the
memory problems that you might encounter when playing some old games.
Now before we start, you might be wondering why newer machines are
having problems with such old games. It's becasue the first PC's only
came with 1MB of memory (640k Conventional, 384k Upper). As the PC's
graduated to 286 and 386, however, the 640k limit stuck with it. Then
there came XMS amd EMS and all that, but the conventional memory
amount stayed at 640k, and the XMS and EMS were just added on. The 286
could have easily had 1MB of conventional memory. But for reasons
unkonwn it didn't. Now, I know you have, yet another question... How
come these newer games don't have the same problems? That's simple. If
it is a windows program, it will never have a problem with memory,
becasue it has Virtual Memory. If it is a DOS game, it is becasue
either, it uses a commercial DOS extender (like DOS4GW), or it has a
built-in extender. An extender basically eliminates the restrictions put
on conventional memory limits. Now that I have confused you with all
this weird computer talk, let's begin with the guide.
PLEASE NOTE: This document was made using the MS-DOS Editor, so it
*might* look weird in another editor. Also, It was intended for users
of DOS 6.2 and higher. Some references were made to DOS 5.0, but
alomst everyone has DOS 6.2 or better (if you have Windows 95, you
have version 7.0).
ANOTHER NOTE: You will see me refer to the files, AUTOEXEC.BAT and
CONFIG.SYS. The AUTOEXEC.BAT file is just a batch file. It executes
all dircetives (which are special commands used in the autoexec file
and other batch files), and will go down the line, and run all the
programs that are stored in it. The CONFIG.SYS file is where all your
device drivers are told to load. You don't really tell you PC to RUN
programs in here. It is used to LOAD drivers and such. These 2 files
are located in your root directory (that is, if you type DIR C:\ at
the DOS prompt, which looks like "C:/>"). Sometimes, however, you
will not see a CONFIG.SYS file (this is especially true for Windows 95
users, and even more true for Windows 98 users). This is becasue
Windows attempts to take control of all your hardware (which is what
an OS, or Operating System, should do), but it never takes into
account if you restart in DOS mode, or boot to DOS prompt. For
example, in Windows 98, you don't need a CD-ROM driver or MSCDEX (the
CD-ROM interface program), in your system files. Windows controls the
CD-ROM and stuff with its vast (yeah, right) library of drivers, BUT,
what if you need to play a DOS game, that needs a CD-ROM, but it needs
you to boot into pure DOS mode?? You are stuck with no CD-ROM and even
worse, if you don't know how to load CD-ROM device drivers and stuff
like that and had to rely on Windows to configure your CD-ROM, well...
it looks like you won't be playing that game after all. When editing
these 2 files, try to back them up. Just type: COPY AUTOEXEC.BAT
AUTOEXEC.BAK COPY CONFIG.SYS CONFIG.BAK You can view the files
under any text editor, or you can use the windows, System
Configuration Editor. Just click on START, RUN, then type SYSEDIT,
then click OK. I think, but I am not sure, that SYSEDIT automaically
backs up your startup files after any editing.
OKAY, ONE MORE NOTE: I am assuming you are familiar with DOS, and that
you know what the hell I am talking about when i say, "DOS prompt".
CONTENTS: ~~~~~~~~~ [1] Understanding the types of the PC's
memory [2] Understanding device drivers and identifying the useful
ones [3] Using MEM and MEMMAKER [4] Creating the Boot Disk and
optimizing it for maximum memory [5] Some other things that you MIGHT
want to know/FAQ [6] Final note
[1] Understanding the types of the PC's memory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ There are 4 types
of memory that your PC uses: Conventional memory Upper memory
Extended memory (XMS) Expanded memory (EMS)
CONVENTIONAL MEMORY- This is the section where almost all DOS
programs load itself and run. It is defined as the first 640k bytes of
the PC's entire memory. Of course, the entire 640k isnt all available
to programs. 1,024 bytes are assigned to the Interrupt Vector Table,
the next 256 bytes are assigned for the ROM Communication Area, and
the next 512 bytes are reserved for DOS. Then there is the amount of
memory that your device drivers use and whatever DOS uses for itself.
The memory left over is made availiable to run programs (i.e., your
games).
WHAT YOU NEED TO KNOW: Conventional memory is the area that we are
gonna try to empty, by putting programs elsewhere. The more memory we
free, the more games you will be able to play, and the more
effectively they will run.
UPPER MEMORY- Upper memory is the region starting at the end of
conventional memory, and ending just where the EMS starts. So it
ranges from 640k to 1MB (a total of 384k). A lot of places you might
hear it be referred to as Reserved Memory, because it was reserved for
system-related purposes. In this area of memory, lies address space
for system board and adapter ROMs, as well as the system's BIOS and
other BIOS's like video. Also in Upper Memory, is something called
Page Frame space. Expanded Memory drivers like EMM386 use this memory,
to hold the page space to save space in conventional (more on this
later). After all the BIOS's and whatever have been loaded in the
upper memory area, there are little "holes" left over. You can load
EMM386 to backfill these holes with RAM, and "recycle" this memory to
create something called Upper Memory Blocks or UMB's, to store more
programs therefore freeing more memory in the conventional area. The
whole process of "backfilling" is more detailed that what I have
explained.
WHAT YOU NEED TO KNOW: We can put a directive in our AUTOEXEC.BAT file,
and load an EMM device driver in our CONFIG.SYS to allow the loading
of programs in high and upper memory (LOADHIGH, DEVICEHIGH). We can
also use the UMB's to make more conventional memory availiable.
EXTENDED MEMORY- Extended Memory begins at the 1MB mark. Only 286's and
above can use it. Keep in mind that, because of the limitations of the
286, only a total of 16MB of installed RAM is all it could handle. The
386 and up, on the other hand, can handle as much as 4GB of memory
(1GB= 1 million MB). As stated above, the PC has 1MB of memory.
Anything above that is called extended memory. Newer games thrive on
this extra memory, to store all the graphics and whatever but older
games require it less. In order for the PC to use extended memory, it
must switch into Protected Mode. (which I will discuss later).
Extended Memory is also known as XMS.
WHAT YOU NEED TO KNOW- Extended Memory is known as XMS (Extended Memory
Specification). Some of your device drivers (like the sound drivers or
mouse drivers), have an option of loading themselves into XMS, as
oppose to loading in conventional memory (the wise choice would NOT to
load in conventional). This can be essential in squeezing those few
extra KBs out of conventional.
EXPANDED MEMORY- Expanded Memory, also known as EMS, is a special type
of memory that meets the standards of the LIM (Lotus/Intel/Microsoft)
Expanded Memory Specification. The difference between Expanded Memory
and Extended Memory, is that Expanded Memory DOES NOT have to switch
to Protected Mode in order to access it. Instead it uses Page Frames
to access all the Expanded Memory. I won't go into full detail about
page frames here... that is another guide. As I said earlier, all RAM
in addition to the base 1MB is extended. I know you are asking how to
get EMS. You use something called an EMM, or Expanded Memory Manager.
EMM386 is the most common and popular, mostly becasue it's free (it
comes with DOS). Back in the days, companies made EMM programs like
QEMM (Quarterdeck), and 386Max (Qualitas). You usually load this device
driver in your CONFIG.SYS file. I will tell you later about how EMM386
(and only EMM386) works.
WHAT YOU NEED TO KNOW- Some programs could not or did not want to
switch to protected mode (for whatever reasons) in order to use XMS.
But becasue EMS does not need to switch to protected mode in order to
use the mass amounts of memory availiable, the programs request the
help if an EMM, like EMM386. So if a program complains that there is
no EMS, you know what to do. Oh yeah, and EMS stands for Expanded
Memory Specification.
HIGH MEMORY AREA- I know I didn't include this in the contents section,
but it is revelant. Basically the HMA (as it is so called), is the
first 64k of extended memory (if you have extended memory). So it
starts at 1MB (1,024k) and reaches out to the 1,088k mark. We can tell
DOS to load most of itself here, and also we can load BUFFERS up here
too.
WHAT YOU NEED TO KNOW- The HMA is a place where we can tell DOS to load
itself, to free conventional memory and a place to put system buffers.
[2] Understanding device drivers ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Question: What the hell, is a Device Driver??? Answer: A device
driver, to put it simply, is a set of instructions for the PC to use,
in order for a certain piece of hardware to operate *properly*. It is
also program that can't help your system operate more efficiently.
For Example:
Let's say you have a CD-ROM installed on your PC. You attatched the IDE
cables and the power, Now, how will it operate with your PC? The BIOS
doesn't know how to fully operate the CD-ROM. The CPU sure as hell
doesn't. What happens, is that the CD-ROM is given a unique (well,
sometimes) IRQ (Interrupt Request) number. So when a program asks for
access to the CD-ROM, it will invoke the information in the Interrupt
Vecrtor Table, and execute the lines in memory where the driver
program is located, and give the CPU the info it needs to properly use
the CD-ROM. It's all simple really, but if you dont't get it, it's
alright. You don't REALLY have to know what a device driver exatly is. I
just put it in here, because you will see me make a lot of references
to device drivers. As stated earlier, a device driver can also be a
program that helps run you PC more efficiently.
For Example:
HIMEM.SYS doesn't run a piece of hardware, but it DOES help run your PC
better. HIMEM.SYS gives your PC the access to that little 64k region
of extended memory (remember earlier?).
What we really need to know about device drivers, is that we want to
move as many of these we can to other parts of memory (besides
conventional), and remove the unecessary ones (like CD-ROM).
SOME DEVICE DRIVERS YOU MIGHT ENCOUNTER- In your startup files. A
quick note: Alot of these device drivers will require a option switch,
which is identified as a "/". These are used more in the AUTOEXEC
programs, but are used in the CONFIG too. If you ever need help, check
the documentation, or try typing, "programname /?" or "programname
/h". That usually brings up a list of all the switches and options
that can be used, as well as how to use them. I will try to explain
the basics of each one (but be smart and replace the word
"programname" to the actual name of the program).
Mouse Drivers: Commonly look like MOUSE.SYS in the CONFIG.SYS and just
MOUSE in the AUTOEXEC.BAT. In the old days, this was common, but
today, usually just the MOUSE program in the AUTOEXEC.BAT will do.
STATUS: A good amount of games can "take advantadge" of a mouse, rather
than absolutley require one. But it is always nice to have one. So I
would say, that it is good to have rather than a must.
CD-ROM Drivers: In the CONFIG.SYS, you might see an ATAPI.SYS (known as
a "generic" driver), or something that says CDROM in it. In the
AUTOEXEC.BAT file it is always MSCDEX (well, it's probably not always,
but it's the only one I have ever seen).
STATUS: Okay let's get real. If a game needs free convnetional memory
to run, than most likely it wasn't distributed on CD-ROM. There is
good amount of games that do, but keep in mind that almost every one
of these old games are most likely off the shelves, so you would
probably have to go to an abandonware site to get them. So I wouldn't
load it any of the startup files. But there are some games that need
it, and need coventional memory at the same time. Add it accordingly.
Sound Drivers: They come in all shapes and sizes. It's hard for me to
tell you all the different types youi might encounter, becasue there
are alot of "sound blaster compatible" cards, each with their own
drivers. Then there are unique cards. So to make it simple, just look
for something with SB or SOUND on the startup files. Also, look for
something that has a lot of weird numbers, like: /A:220 /I:5 /D:1 or
something.
STATUS: Well I don't know about you, but I like to hear sound when I
play. So keep it in the startup files if you wish (but keep in mind,
there might be some games that complain about no sound present, and it
won't run, It is very, very rare, but it has happened before).
High Memory Area Driver: HIMEM.SYS is what is called. And it is
necessary for maximum optimization purposes.
STATUS: Just keep it in there.
Expanded Memory Manager Driver: Or, EMM386. Once again, this is needed
for maximum optimization purposes, like the ability to load the BIOS
into the high memory area. It also lets us use UMBs so it is vital.
But remember, the EMM386 driver is LOADED in the CONFIG.SYS. It is
CONTROLLED by the EMM386 program.
STATUS: Keep it in there. If it is not in there, then get it in there.
CD Enabler Driver: You might see this, if your CD is hooked up on your
sound card, rather than on to the IDE controller. If you have 2
drivers in the CONFIG.SYS that have the word CD in it, then most
likely it is. Some CD-ROM drives will require you to have both drivers
loaded.
STATUS: Just like the CD-ROM driver and MSCDEX. If you don't need it,
don'y load it.
There are a lot of device drivers out there, but these are the basics.
These are, most likely, the only drivers you will need when making
your game boot disk.
[3] Using MEM and MEMMAKER ~~~~~~~~~~~~~~~~~~~~~~~~~~ First off
2 explanations:
MEM is a memory debugger, but don't let it's name fool you into
thinking it's a really complicated program. It simply profiles memory
and tells you which programs are using what memory and how much. More
importantly, it gives you a detailed report on your total free memory,
whether it be extended, upper or conventional. Now don't worry about
understanding MEM. We will only be using some of the basic MEM
commands.
NOTES ON MEM - When we run MEM, we will only use MEM and 1 command, so
we will only learn how to read two screens. For DOS 6.2 users, it is
in the DOS directory, and in the WINDOWS/COMMAND directory for Windows
users. Either way, it should be in the path, so you will only have to
type MEM to run.
MEMMAKER is a really cool program that will GREATLY assist you in the
job of making free conventional memory for games. Not only is it
useful, it is very easy to use (which is good for me, because I won't
have to explain a lot to you). MEMMAKER basically examines your
startup files, and starts coming up with multiple configurations. When
it finds one it likes, it will update them and tell you the net
gain/loss of memory. It moves prgorams to other parts of memory,
therefore clearing up the conventional memory area.
NOTES ON MEMMAKER - MEMMAKER has 2 methods of optimizing: Express and
Custom. It is recommended, for beginners, that you use the Express
method. However, I will explain both methods in this guide, if needed.
Just like MEM, it should be in the path (which is an "Enviroment
String" in the AUTOEXEC.BAT file).
Now, let's get busy and fire up MEM. At the DOS prompt, type "MEM" and
hit ENTER. You should see something like this:
Memory Type
Total
Used Free ----------------
-------- -------- --------
Conventional
640k
56k 584k
Upper
0k
0k 0k
Reserved
384k
384k 0k Extended
(XMS) 31,744k
180k 31,564k ----------------
-------- -------- -------- Total
Memory
32,768k 620k 32,148k
Total Under 1MB
640k
56k 584k
Total Expanded
(EMS)
32M (33,030,144 bytes) Free Expanded
(EMS)
16M (16,777,216 bytes)
Largest executable program size
584k (598,288 bytes) Largest free
UMB
0k (0 bytes) MS-DOS is resident in the High Memory Area
Now, it's time to decipher all this info. We will start by seperating
the the columns. They will be called "memory type", "total", "used",
and "free".
CONVENTIONAL COLUMN - Remember in section 1? I explained the types of
memory that the PC uses. This is where you find out what type of
memory MEM is talking about, when it gives info.
TOTAL COLUMN - This simply tells us how what the total amount of memory
is installed on the PC for that type. We already know that the amount
of conventional and reserved will never change, so we only need to
concentrate on upper and extended (for they will change from PC to
PC).
USED COLUMN - This tells us how much, of the total memory installed, is
used by the system (DUH!). It is not the most important function, but
it helps us determine how much is used, rather than calculating the
values ourselves (we would have to take the amount of free memory, and
subtract that from the total memory without this column).
FREE COLUMN - This is the most useful column of all. This is the column
that we will be looking at the most. Of course, this tells us, how
much of a certain type of memory, we have leftover.
The last line tells us the totals. The total amount of installed, used
and free memory. The "Free memory under 1MB" doesn't really need to be
explained, but you might want know. Remember how I said, that the PC
has 1MB of "buit- in" memory? This is what MEM is referring to. The
total amount of memory that was availiable under 1MB, the total amount
(of the total amount of memory to start with), that is used, and the
total memory under 1MB that is free. The largest executable program
size refers to the maximum size, that a program can be, in order for
it to load itself. For example: if you had 200k free conventional
memory, and you tried to run a 450k program, it's just not gonna
happen. Although there are programs that break this restriction (which
are known as DOS extenders), the early games had to deal with this.
Please note that this is not the only reason that a game or program
might tell you there is not enough conventional memory. It might also
load some if it's data in this section, or whatever. The largest free
UMB tells us how big of a program we can load into upper memory. And
last, but not least, the final line tells us if DOS is loaded in the
HMA (the first 64k of extended) or if it is not.
WHAT WE WILL BE USING THIS FOR: To put it simply (but what is simple in
the world of computers?), all we will use this for is to see how much
memory we have free, and, if we need to, see how much we need to free
up. There are alot of other uses for it, but this is all that we are
gonna use it for.
FINAL NOTES ON MEM- If you run MEM from within windows (in a DOS
session) you will sometimes get inaccurate results. Also, you might
see an asterik (*) next to the "Free expanded (EMS)" line. If this is
the case, you should see something like:
EMM386 is using XMS to simulate EMS memory as needed, free EMS memory
might change as free XMS memory changes.
This just tells you that EMM386 is loaded and is doing it's job.
The other option, is the "MEM /C" option. The "C" option means
CLASSIFY. When you run MEM with this option, it will list all the
devices and programs you have running or installed on the left. In the
middle column, you will see how much conventional memory it uses, and
the last column it shows how much upper memory it uses (if any). This
can be very useful in determining who uses what and how much. If, by
any chance, it scrolls up too fast to read, you can type "MEM /C /P",
which will ask you to press a key before it scrolls down to the next
page.
Now that we have a firm grasp of using MEM, (or at least I hope) we can
get our hands dirty with MEMMAKER. Start MEMMAKER up by- yep you
guessed it- typing MEMMAKER at the DOS prompt and hitting ENTER. If
you get a "Bad command or filename" error, chances are that it's not
installed on your computer. This possibility increases if you have
Windows 98 or higher. If you have this problem then the only solution,
I'm afraid, is to find somebody that does and copy these files, as
they are needed (Unless you have them): MEMMAKER.EXE HIMEM.SYS
SIZER.EXE EMM386.EXE CHKSTATE.SYS MEMMAKER.HLP (optional
help file) They also must be in the same directory as MEMMAKER. You
will also be using this list again, so remember this list. Now let's
walk through the process:
The first thing that you will see is the old, "Welcome to blah blah
blah..." message. You will also see the choice of either, Express or
Custom. For now, choose "Express" and hit ENTER to continue. Next, it
will begin the question- asking process by asking if any of your
programs require EMS memory. Note what it says. If you choose yes, you
will make EMS available, but have less conventional memory available.
If you are not sure, then choose yes. If you don't remember (or don't
know) about EMS, refer to section 1.
After hitting ENTER, it will go to a screen, and tell you that it is
searching your system to see if you have Microsoft Windows installed
on it. It might also ask you to confirm that Windows (if you have it)
is installed in the directory that it presents you with.
Press ENTER again to press on. The next step, is restarting your
computer. MEMMAKER does this, to clear your system's memory and
monitor the amount of free memory you have after a clean boot. If you
are optimizing the files on a floppy disk, then ignore the message it
gives you about removing any floppy disks from your drive, and hit
ENTER to continue.
After you have re-booted, it should automaticaly come back to MEMMAKER.
If it doesn't, then try to run it again. Once you are back in
MEMMAKER, it will notify you that it is considering many different
memory configurations for your PC. After that, it will take those
considerations and determine the optimum configuration for you
computer. After all this is done, it will tell you to re-boot so it
can test out the new settings.
When you recover, it will come back to MEMMAKER and show you a screen
with some numbers on it. This entire screen is pretty much
self-explanatory. It shows you how much memory you had BEFORE starting
the process, and how much you got AFTER running. It also shows the net
change of memory, whether it be positive or negative. Does it appear
that you now have enough memory to run the game or program you wanted?
When you are done looking at the screen, press ENTER and it will tell
you that it has just started your PC with the new settings, and asks
you if your PC seems to be working correctly. Press ENTER again, and
it will exit. Congratulations! You have just succesfully ran MEMMAKER.
Once you are teleported back to the DOS prompt, go ahead and run MEM
to see your new found wealth. You might even notice some things that are
different from the last time you ran MEM.
FINAL NOTES ON MEMMAKER- If you didn't run a practice disk when I
discussed how to use MEMMAKER, that's okay. As long you get used to
what you will see when you run it. You might also see 4 things on the
bottom of the screen while running MEMMAKER. "F3 Quit", "SPACE Change
Selection", "ENTER Continue" and "F1 HELP". Those are some hotkeys
that will help you along the way. If you want online help, copy the
MEMMAKER.HLP file to wherever you are running MEMMAKER.
Don't worry about backing up your files, becasue MEMMAKER does that
already. It actually says that it renamed the ORIGINAL files to
AUTOEXEC.UMB and CONFIG.UMB.
[4] Creating the Boot Disk and optimizing it for maximum memory
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In this section I will explain how to make the "Boot Disk". If you ever
hear a game complain that there is not enough memory and tells you
something like: "Creating a Boot Disk might help" Then this is
what they are talking about. Why use a boot disk you ask? Because it
gives us the opportunity to create a whole new configuration for your
computer. For example, your present config might mave a CD-ROM, some
windows programs like IFSHELP.SYS, and maybe a Doublespace driver.
Also in that config is the fact that EMM386 is NOT loaded. So instead
of changing the your main startup files, we can make a boot disk to
serve the needs of certain programs that requrie it, without changing
back and forth from your current configuration to the "special" one.
Some games also come with programs that will attempt to make a boot
disk for you. Sometimes that work, but try to keep in mind, that if
the game requires a CD-ROM, then it will most likely try to load the
CD-ROM drivers in the startup files. If this is the case, then you
might have memory problems when using that boot disk with other games that
don't require a CD-ROM to play, becasue the memory that the game could
use, is being occupied by uneeded CD-ROM drivers. Now let's get
started.
MAKING A BOOT DISK- If you have used Windows alot, you will notice
that it has the ability to create a "Startup Disk". This is different
from the "Game Boot Disk", in the fact that the startup disk is used
mainly to recover from any severe PC problems, like a HD crash. It is
also used mainly as a diagnostic tool. Booting up with this disk to
play a game is not recommended, but you might be able to get away with
playing a few games.
STEP ONE- Format and make bootable. At the DOS prompt, type "FORMAT
A: /Q /S" and hit ENTER This tells DOS to format (erase and organize
the disk so it is usable), the floppy disk in drive A. It also tells
DOS to use a Quick Format. a quick format just erases the disk, rather
than erase and organize. If a disk is already organized, or formatted,
then it doesn't need to be organized again unless something happens.
If you get a message that says something like, "Unrecognized format,
cannot Quick Format. Proceed with Unconditional Format?" Just type Y
and hit ENTER. The "/S" option tells DOS to copy the system files
(MSDOS.SYS and IO.SYS) to the floppy so you can boot your PC with this
disk.
STEP TWO- Copy the needed files. The next step is to copy your
startup files (AUTOEXEC.BAT and CONFIG.SYS) to the newly made boot
disk. This saves us the job of re-writing everything that is needed on
the startup files, and makes finishing the job as easy as delting
lines. Also, we need to copy the MEMMAKER files to the disk so we can
run MEMMAKER from the floppy. As re already know, MEMMAKER alters your
startup files. If you run MEMMAKER from C:, it will alter the files on
C:. If you run it from a floppy disk, it alters the startup files on
the floppy. This is essential, becasue we want to optimize the files
on the boot disk. Look in the last section for the list of files to
copy.
STEP THREE- Copy the MEMMAKER files. If you recall in thje last
section, there was a list of files needed in order for MEMMAKER to
run. Copy all these files into drive A: so we can tell the program
MEMMAKER to optimize the startup files on drive the boot disk. If you
run the program, and it complains that there is a file missing and it
gives you the list of files it needs, check that you have all of them,
in the SAME directory as MEMMAKER (i.e. the floppy disk).
STEP FOUR- Copy the optional files. Optionaly, you can copy any of
the files that are used by the disk when booting up. For example, if
your boot disk startup files load HIMEM.SYS, you can copy HIMEM.SYS to
the floppy and tell it to load from there. Why would you want to do
thif you say? Well, it won't help your performance. As a matter of
fact it will DECREASE your performance. However, you might recall that
anti-virus programs might want you to make a boot disk. Booting
your PC from one of these disks is called a "clean boot". When you
make an anti-viral boot disk, you are copying all necessary files to
run your PC onto a floppy, and loading them from there, so no viruses
can will be loaded when booting up. So by copying the files onto the
game boot disk, you can sorta turn your game disk into a 2-in-one Anti
Virus/Game Boot Disk. It is completly optional though.
The next step is to remove all unecessary device drivers, and programs
from your startup files. If you recall in Section 2, there is a list
of device drivers you might encounter, and which ones are worth
putting in. The main thing to look here (in your startup files), is
the words DEVICE and DEVICEHIGH (in the CONFIG.SYS) and LOADHIGH and
ordinary references to programs (in your AUTOEXEC.BAT). Once yo uhave
located such a line, you can decide if you want to keep it or not. I
can't decide for you, because I don't know all the drivers that are
out there. If you DO decide to exclude the line from the file, move
the cursor to the very beginning of the line and type "REM" and leave
one space between REM and the beginning of the line. When you do this
you tell DOS to ignore this line and go to the next one. This is known
as, "Remming a line out". This is useful if you want to tell DOS to
ignore a line. but you don't want to delete it. Example:
HIMEM.SYS If you want to REM this line, it
becomes REM HIMEM.SYS
This works in both the AUTOEXEC.BAT and the CONFIG.SYS, and you can
also use a semicolon (;) to REM a line out.
Now that we have made the disk, it is time to run MEMMAKER on it. If
you need a refresher unit on how to use this program, just scroll up
the the previous section. After all that is done and you have rebooted
and everything, it is now time to tweak the startup files to maximize
the amount of memory we can get. Take note, however, that MEMMAKER
almost always finds the BEST system configuration for your PC,
memory-wise. So sometimes you won't be able to squeeze any more memory
than you really can. Before you get your hands dirty, run MEM and see
how much memory you gained (or lost) by making a boot disk. If your
game or program needed x amount of bytes to run, then check how much
free memory you have. Of course, you don't really have to check. You
can always use the trial and error method and try to run the game
right after you finishing the boot. If it works, then your in
business. If not, read below and lets try to squeeze some memory out.
THINGS TO TRY IF THE GAME STILL DOESN'T RUN-
RUN DEFRAG: In Windows, click on START-PROGRAMS-ACCESSORIES-SYSTEM
TOOLS. In DOS, if you have Symantec's Defrag, run it from there.
Sometimes this helps, becasue older programs have trouble reading and
loading from heavily-fragmented disks. Just choose the drive (usually
C:) that has the game you want to play.
RE-INSTALL: So this is a drastic measure, but sometimes it does
solve the problem. Some of the program files might become corrupt,
causing the program to think it has problems, when it really doesn't.
If you are reading this section, then you are gonna learn the advanced
tricks in optmizing for free memory.
LET'S LEARN HOW TO MASTER EMM386- Before we start, we can do a lot
more if we can master using the EMM386 Expanded Memory Manager. I know
this shoud have probably beem under a seperate section, but I am too
lazy to make a new one and change all references to sections. EMM386
has quite a few options. I will first tell you how to use the options,
then a list of all the *revelant* options you can use with info and
explanations for all of them, with examples.
To use EMM386, you must load it in you CONFIG.SYS with a device
directive:
DEVICE=C:\path_to_emm386\EMM386 [ON|OFF|AUTO] memamount
Option1...[Option2]
You can run EMM386 by itself with no options, or you can replace the
word, "Option" with one or more of these:
NOEMS - This tells EMM386 to load itself and make UMBs available, but
NOT to simulate EMS with XMS (frees conventional memory, but makes no
EMS). EXAMPLE - DEVICE=NOEMS
RAM - This tells EMM386 to provide Upper memory services AND make EMS
open for usage (gives your programs EMS to use, but uses more
conventional memory). EXAMPLE - DEVICE=EMM386 RAM
HIGHSCAN - This tells EMM386 to scan the Upper memory with another
method, to check for available UMBs. This can casue crashes, however,
in Windows, or when booting up your PC. It can also casue misreporting
of free UMBs. EXAMPLE - DEVICE=EMM386 HIGHSCAN
ALTBOOT - If you are playing around with some of the other options not
listed here, you might want to put this option in. This uses an
alternate handler for CTRL+ALT+DEL. Sometimes, EMM386 can crash or
freeze your PC, and the usual reboot hotkeys (CRTL+ALT+DEL) won't
work. By using this, it increases your chances that the computer will
restart all of the time using CTRL+ALT+DEL. EXAMPLE - EMM386 ALTBOOT
In the syntax above, you replace the "path_to_emm386" line, with the
path to wherever EMM386 is located. Usually you won't have change the
"path_to..." line and just put "DEVICE=EMM386". The [OFF|ON|AUTO]
part, you just choose one and put it by itself. OFF tells EMM386 to
suspend itself and to not do any of the jobs that it was supposed to.
ON tells it to execute or resume all the duties that you told it to
do. AUTO is the default, and tells it to automatically give programs
access to upper or EMS memory whenever they call for it. After the
EMM386 device is loaded in the CONFIG.SYS you can change this setting
by running EMM386 at the DOS prompt. ALSO KEEP IN MIND (this is very
important if you haven't noticed) that the HIMEM.SYS device driver MUST
be loaded BEFORE EMM386 is. Like this (in the CONFIG.SYS):
DEVICE=HIMEM.SYS DEVICE=EMM386.SYS
If you...
DEVICE=EMM386.SYS DEVICE-HIMEM.SYS
The EMM386 device driver WILL NOT work.
Also, the section "memamount" can be replaced (it is optional) with a
number. That number tells EMM386 how much XMS (in KB) you want it to
use to simulate EMS/VCPI (Virtual Control Program Interface) memory.
It uses that amount of XMS memory plus the amount of UMBs and for the
EMM386 driver itself. The number can be any integer between 64 and
32768 (32MB), and will be rounded DOWN to a multiple of 16. The max
number is also limited to the total amount of XMS memory you have.
EXAMPLE - DEVICE=EMM386 1024
This tells EMM386 to use appox. 1MB of XMS to simulate appox. 1MB of
EMS/VCPI memory. You will have approx. 1MB less XMS as a result. So
the total amount of memory EMM386 will use in this case, is 1MB, plus
the amount of memory it uses for the EMM386 driver, plus the memory it
used to backfill the upper memory region (for UMBs). The default is
ALL free XMS, and with the NOEMS option, it is 0.
MORE EXAMPLES-
DEVICE=EMM386 7168 RAM Tells EMM386 to use 7,168KB (about 7 megs)
of XMS memory to simulate 7MB of EMS/VCPI memory. It also tells it to
provide upper memory and EMS memory services.
DEVICE=EMM386 NOEMS HIGHSCAN ALTBOOT Tells EMM386 to NOT provide
EMS services, but provide upper memory services, to scan the upper
memory area with the basic and alternate methods, and to use the
alternate CTRL+ALT+DEL handler.
If you want to know more about EMM386 and how to use it, type "HELP
EMM386" at the DOS prompt (I don't think that Windows95 came with the
HELP program), or type "EMM386 /?".
RUN THE CUSTOM METHOD IN MEMMAKER- As I said before, I would
explain both methods that MEMMAKER uses. Using the CUSTOM method, you
can adjust a few more things that determines what MEMMAKER does to
free more memory. You should familiarize yourself with the EXPRESS
method before continuing, becasue I will only walk you through the
parts of the custom method, that are different from the express
method. As you keep pressing enter and going through the screen, you
will see a "Advanced Options" screen with those words on the top. Here
are the options:
SPECIFY WHICH DRIVERS AND TSRs TO INCLUDE IN OPTIMIZATION? This
will just go, line by line in both startup files, and ask you which ones
you want to keep and which ones you want to disable. This is good if
you forgot to eliminate the drivers and stuff before running MEMMAKER,
or you are just lazy like me.
YES - It prompt you and ask to include/exclude each driver or TSR in
your startup files.
NO - It will include all the drivers and TSRs in your startup files.
SCAN THE UPPER MEMORY AREA AGGRESIVELY? This is the EMM386
equivalent to HIGHSCAN. It will load EMM386 and tell it to do the
alternate method for the checking of free UMBs.
YES - It will do the same thing as the HIGHSCAN option with EMM386.
Refer to the notes on this in the above section.
NO - Refer to the notes above.
OPTIMIZE THE UPPER MEMORY FOR USE WITH WINDOWS? Personally, when I
play a DOS game which required me to use a game boot disk, then
chances are that I will never go back to windows until my DOS session had
ended. Unless you have Win 3.1, then going back to windows after
booting up from a boot disk will almost always reboot your PC. So why
share some of the upper memory with Windows, if you are not gonna use
Windows in this session?
YES - It will share and allow Windows to use some (or maybe all) of
your PC's upper memory. Unless you are optimizing your main startup
files, I would say no to this option (but even if I were optimizing my
main startup files, I would still say no.
NO - Wont't setup the upper memory for use with Windows, and
might even increase system performance and/or free upper memory.
USE MONOCHROME REGION (B000-B7FF) FOR RUNNING PROGRAMS? There is a
small monochrome memory address (for video memory) which your PC won't
EVER use (or a pretty good chance it won't). If this option is checked,
it will tell EMM386 to use this space for EMS page frames (You might
have heard me talk about this when I discussed the differnet types of
memory).
YES - I usually check this option as yes. Doing so will let EMM386 use
that monochrome area for page frame space, and freeing up a little
upper memory.
NO - It won't use the monochrome area. Can't think of any consequences
when choosing this option except for the fact that less upper memory
will be available (unless you play a game that uses monochrome
graphics).
KEEP CURRENT EMM386 MEMORY EXCLUSIONS AND INCLUSIONS? If you have
configured EMM386 prior to running MEMMAKER, then this option will let
you choose if you want those options messed with.
YES - Will include all the options you told it to, plus the options
that you have checked or told MEMMAKER to do. I am not sure what will
happen if any of those options conflict. This is good if you don't
want your previous configuration changed to an unacceptable point.
NO - Won't include any of the EMM386 options that you have already
chosen, and completley erase all those options, then add the ones that
MEMMAKER needs. This is good if you messed with EMM386 options, and
you want to start over (or if you are too lazy to erase them your
self.
MOVE EXTENDED BIOS DATA AREA FROM CONVENTIONAL TO UPPER? If you
recall in Section 1, I talked about upper memory, and how the system's
main BIOS and other BIOS's were loaded there. I am not totally sure,
but I think that some BIOS's have advanced features, or newer BIOS's
need more memory to load itself. This (I am guessing) moves any BIOS
info into the upper memory area, thereby freeing conventional memory.
YES - Like stated above, it might free conventional memory by moving
the BIOS data into upper memory.
NO - Since I have never actually said no to this option, I can't say.It
might free up more conventional memory, or it might stay in
conventional becasue there is not enough room in upper memory.
And then you go back to the same procedure as in the Express method.
TWEAK THE CONFIG.SYS- In this mini-section, we will discuss how to
use some of the commands and directives that you can use in the
CONFIG.SYS to make the most of it. The rule for putting these things
in the file (just like the AUTOEXEC.BAT file) is simple: There is no
rule. You just add them in the file on a NEW line. Note that these
commands only work in the CONFIG.SYS file. Remember that the
CONFIG.SYS doesn't load or execute files, it loads device drivers.
"BUFFERS=n,[m]" - Allocates memory for disk buffers when you boot up
your system. A buffer, basically, is memory set aside by DOS to hold
data during read/write opertations, therefore speeding up disk
operations and overall PC performace. "n" is the amount of buffers you
want to use (0-99). The default, on almost every computer, is 15 (7984
bytes). The "m" is optional, and tells DOS how many secondary buffers
to use (0-8, default 8). The buffers are stored in the High Memory
Area (HMA).
HOW TO USE TO YOUR ADVANTAGE- Using the buffers command, you can
increase your PC's disk read and write operations, for programs like
word perfect and stuff. But if you are tweaking for game playing, then
remember that the more buffers you use, the more HMA memory it uses.
The less HMA memory, the less you have available to load devices in
the HMA. Keep 2 things in mind: If you request too many buffers that
can fit in HMA, it will make up the difference by using conventional
memory. If you want to keep track of how much HMA the buffers are
using, you can use "MEM /C".
"DEVICEHIGH filename params" - Just as DEVICE loads devices into memory
for use, DEVICEIHIGH loads device drivers into upper memory. Note
that, unlike DEVICE, you don't need to put an "=" sign after it.
Replace "filename" with the name of the driver you wish to load into
upper memory, with the full path- name. The "params" part should be
replaced with any command-line paramaters that should be passed
through. When DEVICEHIGH loads the device into upper memory, it will
look for the largest free UMB. Even if the UMB is larger than the
device needed, it will still load the driver and waste space. There are
other options in the DEVICEHIGH command that can maximize its
effectivness, like telling DOS where exactly in upper memory you want
to load the specific device. Unfortunatley, this is a detailed
process, and I have never needed to do it before (MEMMAKER usually
does a good job in doing it for me), so I won't explain how to do it
here. It is important to note that, in order to use DEVICEHIGH, your
EMM386 nd HIMEM.SYS drivers MUST be loaded prior to issuing a
DEVICEHIGH command and that the line, "DOS=UMB" must be put in the
CONFIG.SYS file BEFORE issuing DEVICEHIGH commands:
First
DEVICE=HIMEM.SYS
Then
DOS=UMB And
then
DEVICE=EMM386 And
optionally
DEVICEHIGH "prorgam" HOW TO USE TO YOUR ADVANTAGE- Check
your free upper memory status and see if you can put a device in upper
memory, if it is in conventional memory. Just remember that, if there
is no available UMB, the diver will load in the conventional memory
area just as if you would have issued a DEVICE command.
"DOS=HIGH|LOW [, UMB|NOUMB]" or "DOS=UMB|NOUMB [, HIGH|LOW]" - This
command will let you do 3 tings: One, is the ability to load DOS in
the HMA or to load it in conventional. Two, is the ability to allow
DOS to manage UMBs or not. Three, is the ability to do both at once.
For example:
DOS=HIGH - Loads DOS into the HMA, making more conventional memory.
DOS=LOW - Loads DOS into conventional memory, making more HMA.
DOS=UMB - Tells DOS to give programs and devices access to UMBs.
DOS=NOUMBS - Tells DOS to not manage UMBs.
And you can add both options in one line:
DOS=HIGH DOS=NOUMBS DOS=HIGH,NOUMBS
DOS=LOW DOS=UMB
DOS=LOW,UMB
Keep in mind that you have to add DOS=UMB to your CONFIG.SYS in order
to load devices and programs into upper memory.
HOW TO USE TO YOUR ADVANTAGE- You should always try to load DOS into
the HMA as a general rule when it comes to freeing conventional memory
(DOS=HIGH). In alomost all situations, when it comes to freeing up
conventional memory, it is necessary to put "DOS=HIGH,UMB" in the
CONFIG.SYS. Take note that, if DOS cannot load itself into high
memory, it will give you an error message like:
High Memory Area not
available, Loading DOS low
If this is the case, you should make sure that HIMEM.SYS is loaded
BEFORE the DOS=HIGH command is issued.
TWEAKING THE AUTOEXEC.BAT- This mini-section is just like the above
one except we are modifying a different file. Same rules apply for the
CONFIG.SYS. What is different and unique in teh AUTOEXEC.BAT to the
other file, is that is acts like a normal batch file, but it can use
special directives that only it can understand. This is the file that
allows you to run files, rather than load drivers. I won't go into
detail about the complete list of batch commands, just the ones that
concern memory optimizing. These programs that you load when starting up
your PC are known as, TSRs (Terminate-and-Stay-Resident).
LH or LOADHIGH- LOADHIGH is exactly the same as DEVICEHIGH. The line
syntax is the same, and it does the same thing EXCEPT for the fact
that LH (which is the exact same thing as LOADHIGH, just abbreviated)
loads PROGRAMS into upper memory, rather than device drivers with
DEVICEHIGH. For example: The device driver HIMEM.SYS is a binary file.
That is, you can't just type HIMEM at the DOS prompt, and actually
expect it to load itself (even after hitting ENTER!!). You will get a
"Bad command or filename" message. So, you must load it with a DEVICE
command in the CONFIG.SYS file. Now let's take the program MOUSE.COM.
You run and load the program by typing MOUSE at the DOS prompt, and
hitting ENTER. It loads, and you now have the ability to use the mouse
(YAY!). BUT, you can't load MOUSE.COM in the CONFIG.SYS file with a
DEVICE commmand. So basically, you load device drivers into upper
memory with a DEVICE command. You load programs into upper memory by
putting a LOADHIGH command. The same rules aplly when it comes to
loading programs into upper memory, just like DEVICEHIGH.
HOW TO USE THIS TO YOUR ADVANTAGE- Just like DEVICEHIGH, you can load
some of your necessary programs into upper memory, like MOUSE, SOUND,
or CD-ROM, and free up more conventional memory.
Now that we have learned how to use some of the commands that can be
used in the startup files, you can go down this checklist to see what
you can do to free up more conventional memory:
MOVE SOME UNEEDED DEVICES TO UPPER MEMORY MOVE DOS TO THE HMA
MOVE SOME UNEEDED PROGRAMS TO UPPER MEMORY REM OUT LINES IN YOU
STARTUP FILES THAT YOU THINK YOU MIGHT NOT NEED. CHECK COMPUTER
HARDWARE DOCUMENTATION IF YOU CAN LOAD THE DRIVER IN XMS MEMORY (and
how to do it)
[5] Some other things that you MIGHT want to know/FAQ
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you heard me say earlier, "I will explain this later", then you will
hear me explain it here.
REAL MODE/PROTECTED MODE: The computer has 2 modes of operation
when it comes to executing programs: REAL MODE, is the default mode.
All computers can operate in this mode.
In REAL MODE: The CPU is limited to addressing only 1MB of memory.
The CPU can handle only one program at a time.
In PROTECTED MODE: The CPU can address up to 32MB of memory at a
time. The CPU can handle hundreds of programs at a time (task
swapping). Only 386 and above processors can switch to this mode.
In the days of the 286 and Windows 3.0, the most programs that DOS
could handle at one time, was one. DOS was a single-task operating
system. So how was the 286 able to run DOS in the background, while
Windows was running? becasue the 286 chip had a little 8088 chip
built-in to handle the DOS/Win dual boot. Then came along the 386
chip, which was the first chip that was able to enter PROTECTED MODE.
The 386 was also able to support Virtual Memory, which Microsoft
integrated into Windows 3.1. So Microsoft was able to take advantage
of multitasking, which is the ability to run more than 1 program at
once. Note that the programs arent running at the same time, but
switching back and forth to each other very fast. So Microsoft was the
first (as far as I know) to take full advantage of the 386's protected
mode capabilities.
FAQ SECTION- Here I will put up a FAQ section, if there is any feedback
from this guide. I will basically put up any questions anybody might
have, that are common to solving memory problems. Since this is the
first release, I have no FAQ section to do. Unitl then...
[6] Final note ~~~~~~~~~~~~~~ Yes, I know sometimes I might
ramble on, and you probably won't be using all the information I gave
in this guide. And yes, I probably could have made this guide shorter,
but I like to try and give readers as much info as possible so the
next decision they make, they will be more informed. And also, some of
the information might be inaccurate. Let me assure you that I
cross-reference any material before I type it or tell someone. If any
of this material is incorrect notify me and I will correct it (and
give you proper credit). If you still need some help, talk to some
people in chat rooms, on mesage boards (the forums on websites are
your best bet), or you can contact me:
E-MAIL - [email protected] ICQ - 92075243
Some things to note before sending me a message via ICQ:
E-MAIL first. I check my mail regularly (once or twice a day) so I
won't miss your message. When you send your mail, I will try to help
you there. If I feel that your mail needs a detailed reply, then I
will tell you to ICQ me. If you ICQ me directly, without mailing me
first, there is a good chance I will ignore you all together. Also,
you probably won't get a quick e-mail response. most likely in 1-3
days (and that's IF i decide to reply. If it is something that I have
already explained in this guide, I will not respond).
Thats all folks (no Porky Pig pun intended).
Completed in appox. 24 hours 43 minutes in an 11 day span.
CLICK
HERE FOR A PRINTABLE VERSION OF THE ABOVE (WORD
FORMAT)
|