Microsoft KB Archive/103975

How MSCDEX 2.22 Loads into Memory

PSS ID Number: Q103975 Article last modified on 10-31-1994

2.22

MS-DOS

= SUMMARY =

This article discusses the way MSCDEX 2.22 loads into upper memory and conventional memory, and the way the memory it uses can shrink or grow.

= MORE INFORMATION =

The biggest factor in the MSCDEX loaded size is the /M parameter.

Loading MSCDEX High
Loading MSCDEX high does not affect the loaded size; it just affects which bytes are used. MSCDEX does not split itself up.

MSCDEX will shrink depending on the amount of memory available. If you ask for more buffer space than there is available memory, MSCDEX will silently allocate fewer buffers to fit into the memory space available.

It is possible to specify a large /M parameter (/M:20 or larger), and then repeatedly alter the system configuration to load more and more things high prior to MSCDEX loading from the AUTOEXEC.BAT file. MSCDEX will then shrink until it is 24 kilobytes (K) in size in memory. If less then 24K is available, MSCDEX will fail to load high, and by default, load low.

After MSCDEX loads high, there may be less than 2K of high memory space available. This may not be enough memory to place any devices into upper memory that load after MSCDEX. This can occur when you load MSCDEX high, with a large /M parameter. For instance, you can successfully load MSCDEX into high memory with an extremely large /M parameter, such as /M:10000. MSCDEX will not allocate that much space, but instead MSCDEX will quietly reduce that number as needed to take up all remaining high-memory space, if there is more than 24K available.

Loading MSCDEX into Conventional Memory
The same thing happens in conventional memory, but MSCDEX will ensure that there is at least 48K available in conventional memory after loading.

These sizes are consistent with the following /M parameters:


 * 24K: /M:4
 * 43K: /M:15
 * 56K: /M:20

The 24K figure is the default of four buffers. MSCDEX will not shrink below this four-buffer level. This is the default if no /M parameter is specified on the command line.

Use the following equation to estimate the number of MSCDEX buffers from a number of kilobytes:

Number of MSCDEX buffers = ((kilobytes - 24)/2) + 4

KBCategory: kbenv kbmm KBSubcategory:

Additional reference words: 2.22 multi media multimedia multi-media kbmm DOS MSCDEX.EXE o_cdrom mmtitles ============================================================================= Copyright Microsoft Corporation 1994.