Contents of the UMM.DOC file
UMM.SYS v0.3 - An Upper Memory Manager for MS-DOS
UMM.SYS allows you to register available memory above the 640KB boundary
but below the 1MB start of extended memory. Once this memory is registered
by UMM.SYS, it becomes available for use by MS-DOS applications, or by
Memory above the 640KB base memory boundary but below the High Memory Area
(HMA) and extended memory is called Upper Memory, and is grouped into one
or more Upper Memory Blocks (UMBs). If your computer has any available
upper memory, UMM.SYS will allow you to use it.
If you don't have any physical upper memory to start with, you can't use
UMM.SYS. Unlike EMM386, this software doesn't simulate upper memory by
using memory from somewhere else. It is meant to allow you access to memory
you already have. It's your job to figure out if you have it at all.
UMM.SYS will not find hidden or "shadow" RAM if it is not already available.
If your computer requires special setup to make upper memory available, then
that setup must be performed before UMM.SYS is installed. For instance, if
your computer's motherboard uses the NEATsx chipset, and it has an AMI BIOS,
you may be able to use the Advanced Setup option to enable upper memory.
UMM.SYS requires that an XMS driver, such as HIMEM.SYS, be installed before
it can configure itself. Note that despite this requirement, UMM.SYS does
not use any XMS memory, including the HMA. The XMS driver must support at
least version 2.0 of the Extended Memory Specification.
This software implements XMS functions 10h and 11h. The Extended Memory
Specification describes how these functions may be used. The specification
is available at several archive sites, and can also be ordered directly
DEVICE=[d:][path]UMM.SYS [nn@addr ...]
d:specifies the drive where UMM.SYS is to be found.
pathspecifies the directory where UMM.SYS is to be found.
nn@addrspecifies a section of memory to be allocated as a UMB.
nn must be a decimal number representing the size of the
memory block in 4KB pages. addr must be a hexadecimal
number representing the starting paragraph of the memory
block. The memory block must begin on a 4KB boundary.
DEVICE=UMM.SYS 4@c800 16@d000
Load UMM.SYS, allocate 16KB at c8000, and 64KB at d0000.
4 4KB pages total 16KB. 16 4KB pages total 64KB. The
paragraph address of c8000 is c800. In general, you can
obtain the paragraph address by dropping the last zero.
Load UMM.SYS from the SYS directory on drive C, but don't
allocate any UMBs. There are reasons why you might want
to do this, but not many.
DEVICE=UMM.SYS 16@d000 16@e000
Load UMM.SYS, allocate 64KB at d0000, and 64KB at e0000.
This is not the same as having 128KB at d0000. It is
usually better to have a single large block instead of
several small ones. Note that adjacent blocks will be
merged into one by UMM.SYS whenever UMBs are released.
Load UMM.SYS and attempt to allocate 256KB at ff000.
This won't work, for several reasons.
Error installing UMM: XMS driver not found
The XMS driver could not be located. Make sure the
driver supports at least XMS 2.0, and that it has been
installed correctly. The XMS driver must be loaded
Error installing UMM: Invalid arguments
UMM.SYS was unable to interpret its arguments. Make
sure that your DEVICE= line uses the correct syntax.
Error installing UMM: Memory test failed
A memory block failed during testing. This may be
caused by a failure in a RAM chip, but probably
indicates non-existent or improperly enabled memory.