PC Memory Management Conflicts

by Brett Warthen (Infinite Technologies)

The most common conflict in configuring PCs with memory managers has to do with not properly excluding shared adapter RAM areas in upper memory from your memory manager.

Most memory managers go out of their way to attempt to identify shared RAM areas on installed adapters.

However, particularly in the case of network cards, it can be difficult to detect if a shared memory area is present, so the area must be explicitly excluded from being remapped by the memory manager.

The most common symptom of such a problem is when a machine will function correctly after a warm boot (the adapter RAM has been initialized so it can be detected by the memory manager) but not after a cold boot.

Most memory managers use command-line parameters that can tell them to exclude certain areas of memory from being remapped. These memory ranges are specified in hexidecimal segment addresses.

For example, many popular Arcnet cards default to a 16KB range of shared memory beginning at segment D000h. The proper range to exclude in this case is D000-D3FF.

For MS-DOS 5, this is specified with a /X=D000-D3FF option on the DEVICE=EMM386.EXE statement in CONFIG.SYS. DR-DOS 6 users instead specify /E=D000-D3FF on the DEVICE=EMM386.SYS statement in CONFIG.SYS.

Brett Warthen, Infinite Technologies