Microsoft KB Archive/66736

MSDiag: Extended Memory Present, But 0K Shows on Non-XMS PSS ID Number: Q66736 Article last modified on 11-27-1990 PSS database name: PSS

1.00

MS-DOS

Summary:

The Microsoft Diagnostics displays information on two kinds of extended memory:


 * 1) XMS (Extended Memory Specification) extended memory (HIMEM.SYS or equivalent driver loaded)
 * 2) Non-XMS extended memory (no Extended Memory Manager loaded)

If XMS extended memory is present, then an Extended Memory Manager is loaded and Microsoft Diagnostics will display a value of 0 (zero)K for Non-XMS extended memory.

More Information:

Non-XMS extended memory and XMS extended memory refer to the same physical memory: the memory at addresses above 1 MB that can be accessed only by an 80286, 80386, or 80486 CPU running in protected mode. Because DOS is a real mode operating system, a special device driver is required to allow DOS applications to access this memory. The XMS defines a consistent method for device drivers, or extended memory managers, to access memory addresses above 1 MB.

Due to the XMS and the extended memory managers that implement it, Microsoft Diagnostics differentiates between XMS extended memory and non-XMS extended memory.

Non-XMS extended memory is the raw, physical memory at addresses above 1 MB. XMS extended memory is memory at addresses above 1 MB that is available to applications through an extended memory manager, such as HIMEM.SYS. If there is no extended memory manager present, but there is memory at addresses above 1 MB, Microsoft Diagnostics will report the amount of this memory as non-XMS extended memory. If an extended memory manager is present and there is memory at addresses above 1 MB, Microsoft Diagnostics will report the amount of this memory as XMS extended memory, and will display 0K for the amount of non-XMS extended memory.

Microsoft Diagnostics will show 0 KB for non-XMS extended memory when an extended memory manager is present because of the way the extended memory manager handles access to the extended memory.

Microsoft Diagnostics uses INT 15h, function 88h to determine the amount of extended memory present. The value returned by this function is reported as non-XMS extended memory. However, extended memory managers “hook” INT 15h and watch for calls to function 88h. Once this interrupt has been “hooked”, all calls to it return a value of 0K for the amount of extended memory present. This is why Microsoft Diagnostics displays 0K of non-XMS extended memory when an extended memory manager is present.

Extended memory managers need to “hook” INT 15h, function 88h to protect the first 64K of extended memory, also known as the High Memory Area (HMA). The HMA is critical in the management of the rest of extended memory.

Copyright Microsoft Corporation 1990.