Quarterdeck Technical Note #216 Filename: QRAM.TEC
by Michael Bolton CompuServe: QRAM.TEC
Last revised: 3/25/93 Category: QEMM
Subject: Information on Quarterdeck's QRAM program -- what it is, what it
does and what it doesn't do, and what it needs, in terms of both
hardware and software.
What is QRAM?
Does QRAM turn exTENded memory into exPANded memory?
What do I need to run QRAM?
What can QRAM do for my system?
What is QRAM?
QRAM is a suite of memory management utilities which add power to 80286, 8086,
and 8088 PCs and compatibles in some of the same ways that QEMM-386 adds power
to 386 PCs, allowing you to liberate more of the precious memory below 640K.
QRAM, on machines with appropriate memory management hardware --
Chips and Technologies Shadow RAM, or EMS 4.0 hardware AND
software, creates High RAM -- RAM placed at unused addresses
between 640K and 1MB. This allows you to load Terminate-and-Stay-
Resident programs (TSRs), device drivers, network drivers, DOS
resources (such as BUFFERS, FILES, FCBS, and drive specifiers)
and the like into High RAM -- RAM placed at unused addresses
between 640K and 1MB.
The VIDRAM program which comes as part of the QRAM package allows you
to "steal" a portion of memory from your EGA or VGA video card and
assign that memory to DOS, further increasing the amount of
conventional memory available to you when you are running a program
that does not need EGA or VGA graphics.
QEXT.SYS, an XMS driver, provides access to extended memory, and to
the HMA -- 64K of extra DOS memory for programs such as DESQview that
know how to use this specification, or for DOS' kernel.
The BUFFERS and FILES programs allow you to allocate
additional DOS buffers and file handles on the fly, after your
machine has booted -- and to load them into High RAM.
Other utilities for managing memory are included.
Finally, every copy of QRAM also comes with Manifest, the
award-winning memory analysis and reporting tool.
Most people are interested in QRAM for its abilities to load small DOS
programs, drivers, and resources into High RAM. However, the bewildering
array of memory management standards associated with the 8088 and 80286
architectures contributes to several common misconceptions about what High RAM
really is and how it is allocated. This note will describe the hardware and
software requirements for QRAM, and will explain what you can expect QRAM to
do for your system.
Does QRAM turn exTENded memory into exPANded memory?
No. QRAM DOES NOT turn exTENded memory into exPANded memory. In fact, QRAM
needs to find either an appropriate Shadow RAM chipset, or some form of EMS
4.0 exPANded memory hardware with its own EMS 4.0 driver already present, if
QRAM is to load programs high. (What constitutes appropriate is described
below.) The 286 chip on its own does not have the memory management features
needed to make memory appear at addresses where there is none. The 386 chip
has these (and other extremely sophisticated memory management) features built-
in, but the 286 needs assistance from extra hardware to do this.
Several programs, (often called "LIMulators") provide the ability to store
data in exTENded memory in such a way that, to software, the exTENded memory
looks like exPANded memory. QRAM IS NOT A PROGRAM OF THIS TYPE.
Such programs (which are widely available, and free on many bulletin board
systems) have two important disadvantages. First, they cannot create exPANded
memory in which programs can be run, so they cannot be used to load TSRs,
device drivers, and network software outside of conventional memory; nor are
such expanded memory emulators useful to DESQview for multitasking. Second,
in order to provide the EMS page frame, necessary for the emulation of EMS,
they actually cost 64K (for the EMS page frame), plus the overhead for their
own code, all in conventional memory -- which is an enormous penalty,
presuming that your goal is to liberate as much conventional memory as
What do I need to run QRAM? What can QRAM do for my system?
QRAM's features depend on several aspects of the configuration of your
machine, including its memory management hardware and software, and its video
It is crucially important to understand that, on a 286 without memory
managment hardware, there is NO MEMORY between 640K and 1 MB -- even on
systems with one megabyte or more of memory installed. (Machines with Shadow
RAM constitute an exception to this; Shadow RAM is described below.) The
extended memory on your system is addressed not only above 640K, but above the
1MB line -- and is therefore outside of DOS's address space. A typical one
megabyte machine that doesn't have Shadow RAM has MEMORY that occupies the 0-
640K address range -- and then there is ADDRESS SPACE, but no MEMORY between
640 and 1024K. This address space is reserved for system hardware and adapter
boards. The rest of the one megabyte of MEMORY occupies address space between
1024K and 1408K. DOS cannot access memory which is beyond 1024K with the
exception of the HMA (1024-1088K). Only the DOS kernel (in DOS version 5 or
later) or programs which have been specially written to take advantage of this
region may do so. Extended memory is not useful to QRAM, nor is it useful to
any regular DOS program except as a place to store data. Only DOS programs
which have been specifically written to access extended memory will be able to
take advantage of it.
Machines with Shadow RAM
Shadow RAM is a way to increase the system's speed. System and video BIOS
(Basic Input/Output Services) ROMs are addressed 8 bits at a time, and
therefore are typically slower than 16- or 32-bit RAM. ROM shadowing is
accomplished by setting up a 384K region of memory somewhere on the system,
giving it addresses from 640K to 1MB, and copying the code from system and
video ROMs into this region. So far as the processor is concerned, the ROMs
are still at their usual addresses, but since the ROM code is in faster RAM,
performance is improved. Typical systems use 32K of ROM for video, and 64K or
less of ROM for the system BIOS. Thus, most of this 384K region of memory,
set aside for ROM shadowing, is unused.
QRAM's LOADHI Features
In order for QRAM to activate its LOADHI capabilites, it must find at least
one of the following things on your machine:
1) The Chips & Technologies NEAT, SCAT, PEAK, LEAP, or 386 Shadow RAM
chipsets; as described above, these chipsets have the ability to make
actual memory appear at addresses between 640K and 1MB when Shadow
RAM is enabled. Machines that are equipped with these chipsets may
display the words "NEAT", "SCAT", "PEAK" or "LEAP" at some time
during the boot process. Note that since Shadow RAM is implemented
in hardware on these types of systems, you do not need to have any
sort of software driver installed for QRAM to take advantage of your
system's Shadow RAM. It may be necessary for you to activate the
ShadowRAM in the CMOS setup, however; QRAM cannot do this.
2) An EEMS (two "E"s) or EMS 4.0 board with a software driver that
provides mappable EMS pages between 640K and 1MB in addition to the
EMS page frame. The software driver is installed in CONFIG.SYS, and
typically has the letters "EMM" somewhere in its filename. The EMS
driver must not only be able to provide exPANded memory; it must also
be capable of creating more than four mappable pages between 640K and
1MB, as the first four mappable pages are reserved for the EMS Page
Frame. A very few computers come with this sort of memory management
hardware already installed.
3) A 286 memory management unit, such as the All ChargeCard or the SOTA
Pop Card. Though not a complete implementation of the 386
architecture, these add-on devices provide memory management most
similar to that offered by the 386 architecture.
Note that items 2 and 3 involve some sort of add-on hardware, and that
software alone WILL NOT provide the hardware assist that the 286 or lesser
processors need for QRAM to create High RAM.
Manifest's Expanded / Pages screen will tell you if your hardware and driver
is currently providing mappable pages, as can the QTEST program described
below. Manifest's exPANded pages screen will look something like this:
An00 UUUU <-
Bn00 ++UU <- Plus signs (+) anywhere in this
Cn00 UUFF <- range mean that QRAM can create
Dn00 FF++ <- High RAM -- 16K for each +
En00 ++++ <-
Note that this map tells you what is being currently provided. Your hardware
and software may be capable of creating more mappable pages; consult the
documentation for your board. Some switch or jumper settings, or some command-
line parameters on your board's device driver may be able to provide you with
more mappable pages.
If you have an EMS board that provides only four mappable pages, pages that
are reserved for the Page Frame, and designated above by the letter "F", you
may choose to disable your use of exPANded memory in exchange for the 64K of
High RAM that QRAM may be able to provide. This will liberate more memory
below 640K, but will curtail your access to exPANded memory.
A further complication results from the fact that when IBM introduced the PC-
AT, the addresses from E000-EFFF (or 896-960K in decimal) were reserved for an
expansion of the system ROM. However, the system ROM was not expanded until
the advent of the PS/2. Unfortunately, the address space from E000-EFFF
remained unusable for any other purpose, and to retain 100% compatibility with
IBM, almost all clone makers followed the PC-AT's example. There were very
few manufacturers who were confident enough to break this convention, and
therefore the E000-EFFF range may not be available on your machine. Since
many computers render the E region unusable for High RAM or EMS, many expanded
memory boards also refrain from allowing High RAM to be mapped into the E
region. Your hardware may permit you to do this.
If you use a VGA or EGA display adapter, the VIDRAM program in the QRAM
package allows you to gain up to 96K of extra conventional memory, at the cost
of temporarily disabling EGA or VGA graphics. This is most useful if you are
running text-based programs (such as most popular spreadsheets, databases, and
word processors). The trade-off here is that you give up the ability to use
graphics while VIDRAM is activated, but it can be toggled on and off with ease
from the DOS prompt.
QEXT is a driver that allows Quarterdeck's DESQview to load 64K of itself into
the first 64K of extended memory. QEXT is also an XMS driver; that is, it
manages extended memory in accordance with the HMA and EMB aspects of the XMS
specification to programs that know how to use it. Extended memory disk
caches and network drivers are often capable of using XMS memory, as are
Microsoft Windows 3.0. and other applications. If you are currently using
HIMEM.SYS, using QEXT instead can help to increase the amount of conventional
memory on your machine, since QEXT can be loaded high by QRAM's LOADHI
features. QEXT requires extended memory to be installed on your machine, and
to put it to use, you must have DESQview or applications that use the XMS
The DOS Resource Programs
In DOS versions 2 and 3, each disk buffer in CONFIG.SYS uses approximately .5K
of conventional memory. The same is true of DOS 5 if you have chosen not to
use DOS=HIGH. QRAM's BUFFERS.COM program allows you to specify a single
BUFFER in CONFIG.SYS, and specify more buffers later, in AUTOEXEC.BAT. The
benefit here is that these buffers, added by BUFFERS.COM after CONFIG.SYS has
run its course, may be loaded into the High RAM that QRAM creates, resulting
in substantial savings in conventional memory.
Unlike DOS 2 and 3, BUFFERS are "brittle" in DOS 5. Only the last group of
BUFFERS loaded is used, with the preceding going to waste.
Due to the unusual structure of DOS buffers in DOS 4, BUFFERS.COM cannot be
used at all with DOS 4.
Users of large databases, or those in network environments, will appreciate
the QEMM FILES program, which allows you to add extra file handles in
AUTOEXEC.BAT or at the DOS prompt. Again, FILES can be loaded into High RAM,
resulting in more conventional memory conservation. FCBS and LASTDRIVE can
also be handled in a similar way.
The award-winning Manifest program, included with every copy of QRAM, works on
any IBM-compatible PC. Manifest will tell you how your system is configured
and how your applications are using memory, and will even give you hints on
how to improve your configuration. Manifest's clear and comprehensive manual
will explain many things about memory, including the varying specifications
for memory use and how they work.
How can I tell how useful QRAM will be on MY system?
Many users have never had to consider the difference between exTENded and
exPANded memory, and are unlikely to have determined the number of mappable
pages that their EMS hardware and software can provide between 640K and 1024K.
To help with this process, Quarterdeck has provided a mini-analysis program
called QTEST. QTEST will examine your system and will describe the extent of
the benefits that QRAM can provide. QTEST is available free from the
Quarterdeck BBS (310-314-3227; 2400 and 9600 bps modem operation is
supported). QTEST can also be found on Compuserve and on many BBSs; on some
BBSs, it may be found in compressed files along with the Quarterdeck White
The Quarterdeck White Papers (of which this document is one example) comprise
technical notes, product information, and a QWHITE.COM, a DESQview-specific
file reader which can, when run under DESQview, search White Papers for
information, display, and print the technical notes for you. You don't need
DESQview to get benefits from the White Papers. The notes therein can be read
with any text editor, word processor, or file reader that can display ASCII
text. Many of these notes will help to explain WHY DESQview is so beneficial,
though! The White Papers also contain files which explain various issues
related to QRAM, and to memory management in general; you may find these quite
In short, the QRAM package is valuable for anyone who wants to get the most
out of an 80286, 8086, or 8088 machine, especially those with EMS 4.0 exPANded
memory hardware or Chips & Technologies ShadowRAM installed. If its system
requirements are fulfilled, you will find that QRAM can substantially increase
the amount of your precious conventional memory.
*This technical note may be copied and distributed freely as long as it*
*is distributed in its entirety and it is not distributed for profit. *
* Copyright (C) 1991 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************