Dos MenuMemory ManagementFull screen

Standard Memory Management (HIMEM.SYS)
Extended Memory Management (EMM386.EXE)
Types of Memory
Computer Memory Limitations
Other Information Sources

      When the computer starts, the memory is divided into 2 distinct regions. Although the memory chips have no preference, the original DOS programs were designed to work in an environment up to 640kb (Conventional Memory). Thus, with the increase of the available memory, the Random Access Memory (RAM) above 640kb was defined as "High Memory".

      As extra memory was available 2 specifications of add on cards were brought to the market, XMS and EMS. Today these are provided by programs that create them out of the existing memory. Different Memory Manager programs are designed to use these different specifications.

      Because of this variety, computers and DOS do not come with these types of memory enabled as a rule. You have to "turn" them on.

NOTE: Total Conventional Memory is normally 655360 bytes. Some programs such as Hard disk Overlays (EZ-BIOS is one) use memory that is not reported by the DOS commands. Some other devices such as SCSI Drives may also use such memory. In that case, running CHKDSK at the prompt will show a Total Conventional Memory of less than 655360 Bytes. Beware that some types of Virus or Worms also can use this memory. Because they are in this Boot Sector (Boot Sector Virus) many Virus Programs will not detect them. See Anti Virus Programs for more about this. See How to Tell If Drive Overlay Program Is Installed in Windows (Q186057), a Microsoft Knowledge Base Article, for more about this.


 

High Memory

      Himem.sys is the basic memory manager. This controls all of the memory above the 640kb of Conventional memory. It provides a region above the Conventional 640kb memory called Upper Memory. The total of the Conventional and Upper Memory is 1mb. It divides this memory in to blocks. This manager is normally the first device loaded by the config.sys files. It is required for most other programs to access memory above the first 640kb. The syntax is:
device=c:\path\himem.sys
You can add parameters to the command. The only one normally added is:
device=c:\path\himem.sys /testmem:off
This makes the boot faster if you have a lot of memory installed.
If you have more than 64mb of RAM Memory installed and are using a computer with Extended Industry Standard Architecture (EISA) bus, adding:
device=c:\path\himem.sys /EISA
may let HIMEM.SYS report up to 4gb of memory. See Microsoft Articles:
Himem.sys Cannot Address More Than 64 MB of Memory,
and
HIMEM.SYS Fails to See More than 64 MB on EISA Machine
 
      With himem.sys loaded, you can move the DOS SYSTEM into the upper memory area. This frees up about 50kb of conventional memory. The syntax for that is:
dos=high
 
To provide space for other devices in high memory you add the syntax:
dos=umb
This stands for Upper Memory Blocks. You can combine these to into a single line:
dos=high,umb
 
Once the dos=umb is specified you can load other devices into the high memory region with the:
devicehigh=
syntax. Because there is a limited amount of memory here, regardless of how much total RAM you have installed, there is a balancing act to load as many drivers into the high memory as you can.

 

Extended Memory

      The next line after himem.sys normally is the Extended Memory Manager. This controls all of the memory above 1 megabyte. This is normally configured as XMS (Extended Memory Specification) memory type. However, this program can provide EMS (Expanded Memory Specification) memory as well. This EMS program is often provided by a third party manufacturer. And most of them are far more efficient than the manger provided by Microsoft. If you run programs in DOS (Real) Mode often, these may be useful to you.

      I have used Quarterdeck's QEMM 8.0. It allowed me to run programs under a normal boot that, with DOS EMM386.EXE, would have to run under a special "Vanilla Boot". If you have QEMM installed, backup your AUTOEXEC.BAT and CONFIG.SYS before doing Windows installations or running Microsoft's Memory Maker. Microsoft Deletes QEMM every chance it gets.

      Using the DOS EMM386.EXE, you include the line:

device=c:\path\emm386.exe noems
The NOEMS variable at the end of that line does not allow EMS memory (Expanded Memory) to be provided. If you have programs that require EMS memory, change the line to:
device=c:\path\emm386.exe ram
Since most programs use XMS memory, providing EMS may use all free memory reducing the remaining memory available for XMS. There are two methods you can use to limit the amount of memory used for the EMS.
device=c:\path\emm386.exe 2048 ram
If you need to have EMS memory, you can specify the size of the EMS by adding the number of Kilobytes. The 2048 would provide 2mb of EMS memory. You can enter an even number. But you may get an error that the memory usage is being adjusted. The number should be in multiples of 512 bytes.

If you want to reserve a specified amount for XMS memory and let EMS have all of the rest, use:

device=c:\path\emm386.exe ram L=10280
The l=10280 (bytes in kilobytes) would provide that 10mb be reserved for XMS memory use. Note: the maximum EMS size is 32mb. So if you have a lot of memory, you will not see an effect from this setting until you reserve enough that the EMS usage would make a difference.

See MS-DOS v6.22 Help: EMM386.EXE from Vernon J Frazee, or type
help emm386.exe
at the DOS 5.0 to 6.22 prompt for more information.

David Smith offered (bottom of thread):

DEVICE=C:\WINDOWS\EMM386.EXE RAM HIGHSCAN I=B000-B7FF AUTO WIN=B500-B7FF l=1024
which he claims to have increased the available Conventional Memory while using the RAM switch. Note that this will not work with all machines.

 

Types Of Memory

Random Access Memory (RAM). So what is random about it? Remember those old IBM Computers with the reels spinning back and forth. Compare a Cassette Tape to a CD or Vinyl Record. To get to a particular song you must wait for the tape to high speed forward or backward. With the Vinyl record you could instantly move the needle to the track you want. CD's work the same. The record or CD gives you "random" Access.
30 PIN ModuleThis circuit board has 30 connectors on it.
72 PIN ModuleSimilar in appearance to the 30 pin modules, this uses 72 connectors.
168 PIN ModuleDramatically longer than the previous 2 modules, this uses 168 connectors.
SIMMSingle Inline Memory Module. Earliest Plug-In type module. These have all of the chips on the same side of the board.
DIMMDual Inline Memory Module. The Memory chips are soldered to both sides of the board. This allows faster operation as memory capacity gets higher.
EDOExtended Data Out.
DRAMDynamic Random Access Memory.
SDRAMSycronous Dynamic Random Access Memory.
DDRDouble Data Rate Syncronous Random Access Memory.
RIMMRambus Inline Memory Module. Currently up to 800mhz capable.
NEXTOn the horizon I read of Magnetic Ram. This remembers without power so computer doesn't have to boot. For portables, less power consumption means longer sessions on a battery charge.
PARITYSome chips have a built in error check called Parity. When multiple modules are used in a computer, it is important that they are of an equal type. Modules must either be all parity or they must all be non-parity.

Parity modules may be referred to as 9 bit on 30 pin SIMM's or 36 bit on 72 pin SIMM's. To identify these visually, it will have 3, 9, 12, or 24 chips on the module.

Non-Parity may be referred to as 8 bit on 30 pin SIMM's or 32 bit on 72 pin modules. Visually they will have 2, 4, 8, or 16 chips on the module.

SPEEDLike most components in computers, memory functions at a certain number of repetitions each second. The computer determines the frequency (Hertz, MegaHertz, MHZ) that this occurs at. This setting must be within the limits of the memory module. 66mhz is the most common for older computers. Newer computers can handle 100MHZ and even 133MHZ. While you can usually have mixed speeds of ram on a computer, the speed must be that of the slowest module.

How Memory Works by Dr Ah Clem Memory An article from Transtronics.
parity and memory (Virtual Dr.) Comments by jtmurphy

 

Computer Memory Limits

How much memory can you upgrade a computer to?
ProcessorLines
Combinations
Maximum Bytes of RAM
8088/808620 lines
1,048,576 combinations
Up To 1 Megabyte of RAM
286
386SX, SL & SLC
486 SLC & SLC2
24 lines
16,777,216 combinations
Up To 16 Megabytes of RAM
386DX32 linesUp To 4 Gigabytes of RAM
P636 linesUp To 64 Gigabytes of RAM
The number of address lines (or bits) is always the same as the number of processor lines. Each line is capable of an on or off state.

Information by dacomputers (Virtual Dr.)

Program Memory Limits

      As computers have increased their capacity for memory, most programs take advantage of this extra memory. But only up to a limit. Under a DOS environments of 6.22 and older, 64 megabytes was the maximum normally able to be handled by the HIMEM.SYS. Memory more than that could cause a slow down in the system operations. If you have more than that, there are ways to "hide it". One method is using it to create a RAMDRIVE. Aftermarket programs allow the HIMEM.SYS to address more memory.

      Windows 95b and later can handle most of your memory. But during boot, the HIMEM.SYS is still limited to 64MB. This only affects REAL DOS Mode operations.

See the Microsoft article Windows 95 Can Access Up to Two GB of RAM

      Windows 95, 98 and ME have a problem with memory more than 512mb. This is addressed in the Microsoft article "Out of Memory" Error Messages with Large Amounts of RAM Installed.


 

Other Memory Information Sources:

Resource Management a nice bit of information on how memory is used and how to make the most of yours.
Windows Resources vs. Memory from PC911.COM.
System Resources-GDI and User Resources explained from PCForest.
Windows 9.x System Resources from InfiniSource.
MS-DOS v6.22 Help: Command Reference From Vernon J Frazee or type help at the DOS 5.0 to 6.22 prompt.
See:
    Buffers
    Devicehigh
    Emm386
    Emm386.exe
    Files
    HIMEM.SYS
    Lastdrive
    Lh
    Loadhigh
    Memmaker
Memory Module Source:
The Memory Experts Crucial Technology
Memory Manager:
ATLast! Upper Memory Manager. RYBS Electronics Solutions: Software that fixes DOS, PCMCIA, Windows, and Windows95/98 problems and crashes that last ... ATLast!

AtLast is a SUPER memory optimizer and manager. They were the ones that invented the whole upper memory management process to begin with. The developed the LOADHIGH program, and all later upper memory management software, at least through Win98. They, in fact, were the company that licensed their product to all the others that sold and/or supplied memory management software, such as QEMM, RMAX, PowerBoost, RamBoost, and all the others - including Microsoft. Unfortunately, some never developed it properly for their working environment.

They not only have a super product, they have SUPER tech support. The program is not cheap - $79.95 - BUT it works totally for organizing and working with all memory issues on a computer system, both in native dos as well as under windows.

They have a demo program which fully works but has a time limit built-in, if you wanted to try before you buy.

Link Source: rb47 (Ralph) on Virtual Dr. Forum.


PoliTalk Technical Menu
E-Mail

Comment to PoliTalk
Updated January 30, 2002
1