Search
Support & Downloads
PC Accessories
Modems and Fax Boards
Optimizing Memory

Contents:

Understanding Your Computer's Memory

Imagine you're planning a house party. Regardless of the house's total area, you soon discover that your plans will probably be limited by the size of one or two rooms. For example, if there is too much activity in the kitchen, you probably won't have room to cook. If some of the guests move to the living room or the porch, the party can be a success.

MS-DOS sets up your computer's memory in up to five areas. Like the rooms of a house, these areas have different sizes and functions. Because of the way DOS is designed, some programs and information must be located in a given area of memory or they won't be usable. Most programs automatically load into conventional memory, but you can configure DOS to move some programs and drivers into other areas.

Memory Addressing

Every bit of usable memory in your computer must have an address that the microprocessor can recognize. DOS uses these addresses to determine which area contains a given section of memory. Addresses are given in hexadecimal (base 16) notation. Hexadecimal numbers have 16 digits which are represented like this: 1-9 are the same in decimal and hexadecimal, 10=A, 11=B, 12=C, 13=D, 14=E, and 15=F. Any hexadecimal ranges in this document will have their sizes already calculated for you.

DOS started out with only one memory area, and has evolved over more than 10 years of add-ons, work-arounds, and hardware advances. DOS is designed for backward compatibility with older Intel-compatible microprocessors which can not directly address more than 1024K (1 megabyte) of memory. Newer machines with Intel's 286, 386, 486, and Pentium processors can address 16 MB or more.

Understanding Memory Below 1 Mb

Conventional Memory

This is the first 640KB of memory, addresses 0000-9FFF. This area contains:

  • Parts of DOS

  • Parts of Terminate-and-Stay Resident (TSR) programs such as the Intel Card Manager software and fax software, networking programs, DOSKEY, and others

  • Some device drivers that are set up in CONFIG.SYS and AUTOEXEC.BAT

  • Applications that run under DOS

Under DOS 5 and 6, you can load parts of DOS, TSRs, and drivers into other areas of memory at startup automatically using memory management programs such as EMM386 with the LOADHI & DEVICEHIGH commands.

If you are running DOS programs, you want conventional memory to be as large as possible, particularly for large database and spreadsheet programs, word processors, and desktop publishing programs. While maximizing conventional memory is not as important if you never run DOS programs, extremely low levels will adversely affect the performance of Windows.

UPPER MEMORY AREA (UPPER MEMORY BLOCKS) This is the next 384KB of memory, addresses A000-FFFF. It is also called the reserved memory area.

  • Video memory, ROM, and other hardware support functions require most of this area.

  • Intel's Card Manager software requires part of this area.

  • If you use expanded memory, the memory manager requires 64K of this area.

  • You can also use LOADHI, EMM386, and other memory managers to load some device drivers and TSRs into this area.

Conventional memory and upper memory are the two areas that are most likely to become congested.

Because different systems have different hardware support requirements, each system has its own suggested way to optimize upper memory.

Understanding Memory Above 1 Mb

The 64K High Memory Area

This is the first 64K of memory above 1 MB. It is available on all systems with more than 1MB of RAM on the motherboard. DOS 5 and 6 can load part of DOS itself in this area if your CONFIG.SYS file includes these lines:

DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH

(In some rare cases, you may have to add some parameters to the HIMEM.SYS line. See your system documentation for details.)

This area is a convenient place for DOS to use, saving conventional memory and upper memory. There is no noticeable impact on extended memory.

Expanded Memory (EMS)

Expanded memory managers, such as EMM386.EXE, work with all Intel-architecture microprocessors, from the 8088 to the Pentium processor. They allow the processor to access up to 32 MB of expanded memory, even if the processor is an 8088 or 8086 that can only address 1 MB directly.

Expanded memory managers break the available expanded memory into pages, 16K in size. The manager sets up a contiguous 64K page frame in the UMA and switches these pages in and out of the page frame as the processor needs them.

The 64K page frame can not be used for any other purpose while the memory manager is running.

Many large DOS applications, including some database, word processing and desktop publishing programs, require expanded memory. Others use expanded memory if they can get it. Windows applications do not use expanded memory.

Expanded memory will give way to extended memory as more and more computers use 80386 and later processors, and as more users of large DOS applications switch to Windows.

Extended Memory

Extended memory is directly addressable by the microprocessor. In systems based on the 80286 through Pentium microprocessors, all memory above 1 megabyte is extended memory. No special software drivers are needed. Windows 3.0 and 3.1 require extended memory. Systems based on the 8088 and 8086 processors can not use extended memory.

It's easy to confuse expanded memory with extended memory. This hint may help you:

ExPanded memory uses 16K Pages. Both words contain the letter P. ExTended memory is on Top of the 1MB boundary. Both words contain the letter T.

If an application requires expanded memory and only extended memory is available, an expanded memory manager can be configured to convert some extended memory to expanded memory.

Card Manager Software And Memory Use

Intel's Card Manager software consists of the following programs:

  • SS365SL - Socket Services - Release 2 specific.

  • CS - Card Services - Release 2 specific.

  • CCMSERV - combines Socket Services and Card Services functions in one driver. Release 3 specific.

  • RTINIT interrogates the system to see what UMA, I/O Address Space, and IRQs are available. It does not reside in memory. It executes, interrogates the system, and goes away, taking no conventional memory.

  • CMGRDRVR monitors the PCMCIA socket for card insertions, removals, and system power management events, and installs the cards it is configured to install. It resides in memory, taking 3K of conventional memory if expanded memory (EMS) is present or 25K of conventional memory if EMS is not present.

  • CCMGR provides the insertion/removal pop-up messages in DOS, and interprets command line parameters to customize PC Card operation. CCMGR does not need to remain resident if:

    • you always run Windows, or

    • you don't want to see the insertion/removal pop-up messages in DOS.

    When initialized with the /DISP=0 command line parameter, CCMGR does not remain resident. It executes and goes away, taking no conventional memory.

  • CASMODEM is required if you use the Faxability software that is included with Release 2 of the faxmodem. Release 2 specific.
Optimizing Memory With Card Manager Software

Release 2 Conventional Memory Requirements

In a system that is running only Intel PCMCIA products and only Intel Card Manager software, the conventional memory requirements are:

Program With EMS memory Without EMS memory
SS365SL 4K 4K
CS 30K 30K
RTINIT 0K 0K
CMGRDRVR 3K 25K
CCMGR (w/ pop-up) 3K 35K
CCMGR (w/o pop-up) 0K 0K
CASMODEM 35K 80K
TOTALS:
With CASMODEM & pop-up 75K 174K
CASMODEM & NO pop-up 72K 139K
Pop-up & no CASMODEM 40K 94K
Neither 37K 59K
REMEMBER: With EMS memory, there is 64K less load high space in upper memory than without EMS memory.
Release 3 Conventional Memory Requirements
In a system that is running only Intel PCMCIA products and only Intel Card Manager software, the conventional memory requirements are:
Program With EMS memory Without EMS memory
CCMSERV 5K 18K
RTINIT 0K 0K
CMGRDRVR 5K 22K
CCMGR 8K 16K
CCMGR (w/o pop-up) 0K 0K
TOTALS:
With pop-up 18K 56K
Without pop-up 10K 40K
REMEMBER: With EMS memory, there is 64K less loadhigh space in upper memory than without EMS memory.
In a system that is running the laptop manufacturer's Socket Services and Card Services, the conventional memory requirements for Intel software are:
Program With EMS memory Without EMS memory
RTINIT 0K 0K
CMGRDRVR 5K 22K
CCMGR 8K 16K
CCMGR (w/o pop-up) 0K 0K
TOTALS:
With pop-up 13K 38K
Without pop-up 5K 22K
REMEMBER: Socket Services and Card Services also require conventional memory. The amount of memory varies with the manufacturer.
Optimizing Memory - Options

If you choose to use the Faxability software provided by Intel with the Release 2 Faxmodem, you must load CASMODEM. If you are loading CASMODEM, the only way you can load all the required software and still have enough free conventional memory to run programs is to have EMS memory. If you have EMS memory, the Intel Card Manager software is going to take a very small portion of your conventional memory and you are already optimized.

If you choose not to use the Faxability software, you do not have to load CASMODEM, and you can do some real optimization of conventional memory usage. The only other question you need to answer is: Do you want to keep the DOS Displayer (CCMGR) resident? If you run under DOS all the time and are constantly inserting and removing your Intel Faxmodem, you will probably want to keep CCMGR resident so you can be sure of your Intel Faxmodem's configuration. If you never remove your Faxmodem from your system, run Windows most of the time, or just don't want the DOS messaging pop-up, you can make CCMGR not load resident by adding the /D=0 (or /DISP=0) parameter to the CCMGR command line. Be aware that you will not see PC Card insertion/removal events in DOS, even if the card does not get configured correctly.

If you have decided not to load CCMGR resident, you no longer need EMS memory to be optimized. Unless you have another need for EMS memory, you can load your Socket and Card Services and CMGRDRVR high, using the 64K of upper memory that used to be taken by the EMS page frame, and drive the amount of conventional memory used by the PCMCIA software to 10K, or even 5K.

This applies to:
Modems and Fax Boards



Solution ID: CS-010935
Date Created: 09-May-2004
Last Modified: 03-Mar-2005
Back to Top