Copyright (c) 1993
FIXUMBS is a utility to aid in UMB memory management. It is particularly
useful when using DOS as a UMB-manager, along with third-party
memory-managers which may act as UMB providers.
FIXUMBS was developed to get the most out of a system's memory. Many
computers do not have access to the full amount of physical memory
installed on those machines. This is mainly due to their BIOSes not fully
supporting the motherboards' chipsets or because those chipsets do not
support full relocation (mapping) of memory.
Often, many computers with more than 2MB of memory appear to have 384K less
memory than they actually have. This is particularly common with computers
that have an AMI BIOS. This memory is usually set aside for use as
shadow ram for the systems' ROMs. (Shadow ram is RAM that contains a
"mirror-image" of a ROM chip's contents that is located in the position of
that ROM, which improves system speed due to RAM being an order of
magnitude faster than ROM.) Often, the amount of ROM in a computer is far
less than 384K, and the remaining RAM set aside for shadowing does not get
Many utilities have been written to map the remaining shadow ram into the
UMB (or upper) memory regions. FIXUMBS is written to aid these utilities to
manage those UMBs. FIXUMBS is probably more useful when one is using a
memory manager such as QEMM or 386MAX to provide certain regions of UMBs,
especially with products such as QEMM v6.00 (or above) that contain stealth
technology to map more UMB regions into the regions taken up by the ROMs.
Now, these memory managers do not recognize most chipsets, and therefore
do not use the shadow ram of the computers that contain those chipsets.
By using these memory managers, along with a shadow ram mapping utility, in
conjunction with FIXUMBS, one can achieve an optimal memory usage setting
on one's computer system. On the author's system, 128K of XMS and EMS
memory was gained, along with the benefit of having 640000 bytes of free
conventional memory, through the use of FIXUMBS and other utilities.
- DOS 5 (or above)
- XMS memory manager
- DOS UMB management
- Shadow ram UMB provider recommended
HOW TO INSTALL FIXUMBS
The heart of FIXUMBS is the file FIXUMBS.EXE. This file is both a
device-driver (installed in CONFIG.SYS) and an executable program (run at
the command-prompt or a batch file). FIXUMBS should be run twice. Firstly,
FIXUMBS must be installed as a device-driver in one's CONFIG.SYS file, and
then be run in the AUTOEXEC.BAT file.
Installation in CONFIG.SYS
FIXUMBS must be installed near the beginning of one's CONFIG.SYS file.
It must be installed after the shadow ram UMB-provider and after the XMS
memory manager that provides the other UMBs. Note that DOS must be set as
If FIXUMBS determines that one or more of its requirements are not met,
i.e. DOS is not managing UMBs, an XMS memory manager is not installed, or
it cannot find any UMBs (or a big enough free UMB), then it will not
install and will display an error as to the reason for no installation.
Note that the shadow ram UMB regions must be excluded if one is using an
XMS memory manager to provide other UMBs. Note also that DOS 5 (or above)
is required, as it must manage the UMB-memory.
The following is an example of a CONFIG.SYS file, using UMB_DRVR to provide
the shadow ram UMBs, QEMM v6+ to provide stealth technology UMBs and DOS
managing the UMBs:
DEVICE=UMB_DRVR.SYS /C=xx /M=--------..--++++++++....
DEVICE=QEMM386.SYS R:2 NOSH ARAM:D000-EFFF RAM ST:M
Note that FIXUMBS must be loaded low; it will not install if loaded high.
The above example uses to UMB_DRVR to provide 128K of shadow ram UMBs
between D0000-EFFFF, and QEMM to provide stealth memory for the EMS
page-frame at C0000-CFFFF and a further (approx) 64K of stealth memory for
more UMBs between F0000-FFFFF. Note that the ARAM:D000-EFFF option above
excludes the shadow ram UMB-memory, as discussed above.
Installation in AUTOEXEC.BAT
Installation of FIXUMBS in the AUTOEXEC.BAT file is optional, but highly
recommended. At the beginning of the AUTOEXEC.BAT file, one should include
a line that runs FIXUMBS.EXE. This installation does not take up any
memory, however it provides extra security for FIXUMBS's operation.
FIXUMBS must have been installed in the CONFIG.SYS file prior to execution
from the AUTOEXEC.BAT (see previous section).
SUPPORT PROGRAMS - FUMBON.COM and FUMBOFF.COM
FUMBON.COM and FUMBOFF.COM are utilities to turn FIXUMBS's UMB-management
on or off, respectively.
Sometimes, incompatibilities between FIXUMBS and some other software may
arise. These programs may be executed to disable FIXUMBS operability
temporarily, and then reenable it soon thereafter.
Note that these programs require FIXUMBS to be installed prior to their
FIXUMBS and MICROSOFT WINDOWS
FIXUMBS has been tested thoroughly with Microsoft Windows running in
Enhanced Mode, and has been found to be fully compatible. FIXUMBS has
built-in code to detect the initialization of Windows and temporarily
disables itself during the execution of Windows, and then reenables itself
after exiting Windows. FIXUMBS is disabled since Windows needs to manage
all memory itself during its execution.
However, Windows running in Standard Mode has had some problems. Executing
Windows in standard mode will cause one's system to hang if special
precautions are not made prior to its use. Simply execute FUMBOFF.COM
before running standard-mode Windows, and all will be fine. FIXUMBS will
reenable itself automatically after Windows is exited.
The incompatibility with standard mode could be corrected if FIXUMBS could
detect the initialization of standard-mode Windows, as it does
enhanced-mode. If anyone knows of such a method, the author would greatly
BENEFITS OF USING FIXUMBS
FIXUMBS's major benefit comes from its ability to emulate UMB allocation
and deallocation of an XMS-server, when DOS 5+ is the primary UMB-manager.
Often, when DOS is managing UMBs, many programs do not use DOS's method of
allocating UMBs, and thus don't load themselves high. Furthermore, if one
is using an XMS manager such as QEMM, and DOS is managing UMBs, many
programs detect the XMS manager and try to use its UMB allocation methods,
yet fail because they should have used DOS's methods.
FIXUMBS has been found particularly useful with 4DOS (JP Software) and
DOSMAX (Philip B. Gardner), in setups that have DOS UMB management along
with third-party UMB providers/managers (where DOS does the management),
where these programs fail to allocate UMBs. These and other programs use
documented methods of allocating UMB memory, yet fail since these sort of
setups cause the XMS-server to report no available high-memory. FIXUMBS
reports the free high-memory as free (when it is free). Furthermore, some
programs detect the presence of third-party memory-managers, and assume
that these memory-managers are managing the UMBs, when in fact they aren't.
Use of FIXUMBS will aid in better UMB management, since it tries to ensure
that UMBs are their maximum sizes (one large free UMB instead of many small
UMBs), to provide more availability of memory for other programs.
FIXUMBS has been thoroughly tested with DOS 6.0, QEMM v6.02, 4DOS v4.02,
WINDOWS v3.1, and with UMB_DRVR v5.22. It is assumed that it will work with
DOS 5.0 and previous versions of the above software. Numerous other
software has been found to work fine with FIXUMBS, including certain
protected mode software.
The only known problem (so far) occurs with running Windows in standard
mode. See above for discussion of correcting this problem. In a future
version, it is hoped that FIXUMBS will be able to detect standard-mode
Windows automatically, and thus be able to circumvent any potential
problems before they occur.
If anybody finds any problems with FIXUMBS and other software, please
contact the author or RJS Software (see below).
LICENSE and DISCLAIMER
FIXUMBS is public domain software. It has been found to achieve the task it
has been written to do. However, due to the technical nature of this
program, it is near impossible for all system setups to be completely
error-free. The author does not accept any responsibility for any loss or
damage that arises out of the use of this software, due to correct or
The programs and distributed here must be kept together, and should not be
distributed without this documentation. These files are:
FIXUMBS.EXE, FUMBON.COM, FUMBOFF.COM, FIXUMBS.DOC, FILE_ID.DIZ
If you find FIXUMBS useful, a donation of $5 (US) or R10 (SA) would be
appreciated. All donations, correspondence, wish-lists, etc. can be sent to
the address(es) below.
The author reserves the right to discontinue support or development of this
software, at any time.
I hope that users of FIXUMBS will find it useful.
The author and RJS Software acknowledge all copyrights of the software
mentioned here, and also of other software that performs the same tasks as
the software mentioned here.
History of FIXUMBS
- v1.00 Public release.
First official public release.
Any correspondence may be forwarded to the address below.
Send your recommendations, bug-reports, requests, donations, etc. to
Roland Skinner, or RJS Software, at:
P.O. Box 14134
Republic of South Africa
The above address is not a residential address; only a box number.
Users requesting faster replies, etc. may send an Email message to Roland
Skinner on one of the echomail conferences in South Africa, or (preferably)
netmail me. My personal Email addresses are:
FIDONET: Roland Skinner @ 5:7101/55.1
InterNet: [email protected] [email protected] [email protected]