home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Jason Aller Floppy Collection
/
277.img
/
QEMMDOCS.ZIP
/
QEMM-386.DOC
next >
Wrap
Text File
|
1989-11-13
|
22KB
|
569 lines
QUARTERDECK EXPANDED MEMORY MANAGER 386 (QEMM.SYS)
INTRODUCTION:
The Quarterdeck Expanded Memory Manager 386 (QEMM.SYS) is a
software driver for 80386-based personal computers that
transforms the extended memory of an 80386 based PC into
expanded memory. This expanded memory is compatible with
EMS 3.2 & 4.0 and with EEMS 3.2.
QEMM.SYS has two functions-both of which enable you to break
through the DOS 640K barrier and tap into the powerful
capabilities of the 80386:
First, QEMM.SYS adds the capabilities of expanded memory to
your 80386 without the need to buy a special Expanded Memory
Board. With QEMM.SYS loaded, you can run expanded memory
programs that allow your program and data to be greater the
640K.
Second, QEMM.SYS enables DESQview 2.2 to control the 80386
processor's virtual 8086 machine architecture and 32-bit
protected mode. This DESQview/QEMM.SYS combination is known
as DESQview 386.
QEMM.SYS FEATURES:
1). Adds expanded memory capabilities to your 386 PC while
only using 1.5K of your 80386 PC's conventional memory.
2). Is compatible with 80386-protected mode programs that
incorporate 386 DOS extenders.
3). Lets you specify how much memory is to be used for
expanded and/or extended memory.
4). Enables memory resident programs and device drivers to
run in expanded memory.
5). Fills out any missing conventional memory to 640K.
6). Fills out any memory beyond 640K by mapping into unused
video memory.
7). Automatically detects the speed of memory in the PC and
uses fast memory whenever possible. Optionally, the 80386's
slow ROMs can be mapped into "fast" RAM memory.
8). Extends DOS 2.0-3.3 buffers into high memory.
9). Enables DESQview to act as an 80386 control program to
run multiple DOS (including 386 protected mode programs
incorporating 386 DOS extenders) programs concurrently.
10). Displays a map of the first megabyte of your PC's
memory.
THE QEMM-386 TECHNOLOGY:
QEMM.SYS is a device driver for 80386 PCs. It operates by
taking advantage of the 80386 chip's ability to map blocks
of memory dynamically at runtime by manipulating the 80386's
built in memory map. It is important to note that QEMM.SYS
cannot be run on a PC or a 286 PC because the 8088, 8086 and
80286 chips lack this mapping capability.
Manipulating the 80386's map allows physical blocks of
memory to be moved to different locations in "logical"
memory in the time it takes to perform a few 80386 machine
instructions. To achieve this same mapping capability on a
PC or 286 PC, you must add either a special "expanded memory
version 4.0 board" or an "enhanced expanded memory board"
and remove as much existing conventional memory as possible.
QEMM.SYS acts by enhancing DOS to use the inherent mapping
ability of the 80386 to emulate an expanded memory board
that meets the EMS or EEMS standard-thus allowing an 80386
PC to run any programs that are designed to use EMS or EEMS
using only standard, 80386 extended memory.
DESQVIEW 386:
DESQview 386 adds multitasking presentation management, and
data transfer capabilities to DOS. In addition, by
controlling the 80386's virtual machine architecture and its
32-bit protected mode, DESQview 386 gives you protection
against misbehaved programs plus the ability to run multiple
386 memory-intensive programs (as large as 15MB) programs
side by side with standard DOS programs. DESQview 386 can
run any DOS program, (text, CGA, Hercules, EGA, or VGA) in a
small window and in background.
The 80386 processor's most powerful mode is its 32-bit
protected mode. So that 386 32-bit programs can run on DOS,
a special program, called a 386 DOS extender, Quarterdeck
has worked to ensure compatibility between the major 386 DOS
extenders and DESQview 386. The result of this work is a
formal specification, called the Quarterdeck/Phar Lap
Virtual Control Program Interface (VCPI), which specifies
the interfaces between 386 DOS extenders and 386 control
programs.
For programmers and workstation integrators, DESQview 386
extends the DESQview Application Program Interface (API) to
32-bit protected mode programs. This means that programs,
whether written for 640K, expanded memory, or 386 protected
mode can take advantage of the DESQview API's multitasking,
mailboxes, shared programs, and presentation management.
INSTALLATION:
You should install QEMM.SYS on your 80386 PC by running the
QEMM installation program, INSTQEMM. If you are an advanced
DOS user, you can, if you prefer, add a QEMM command to your
CONFIG.SYS file.
In either case if you are installing QEMM.SYS on a new
system, be sure to complete the standard installation and
setup procedures of the system before installing QEMM.SYS.
If you are upgrading QEMM.SYS, you should install the new
QEMM.SYS version using INSTQEMM.
QEMM.SYS is a device driver, which means that it must be
loaded as part of the boot sequence of your machine. It
effectively becomes part of DOS.
Device drivers are loaded by placing a command in
CONFIG.SYS. This is the file that DOS uses to configure
your system when you boot.
INSTQEMM, the QEMM.SYS installation program, automatically
creates the necessary command and places it at the beginning
of your CONFIG.SYS file or creates a CONFIG.SYS file if you
don't have one already.
To install QEMM.SYS:
Place the QEMM-386 diskette in drive A.
Type A:INSTQEMM and press enter.
The installation program then asks what drive you boot from
(most commonly, C) and presents you with the QEMM.SYS
settings most appropriate for your machine. For most of
you, these settings will be correct.
The major case in which you'll need to change the standard
settings is when you're using VDISK. Normally, QEMM.SYS
takes all of extended memory for itself. If you're using
VDISK, you'll want to allocate part of extended memory to
VDISK.
When installation is completed:
Reboot your system.
THE QEMM COMMAND LINE:
To install QEMM.SYS directly (bypassing the INSTQEMM install
program), copy the files QEMM.SYS and QEMM.COM to the root
directory of your boot disk and add the following QEMM
command to your config.sys file: Note all switches must be
typed on the same line as DEVICE=QEMM.SYS.
DEVICE=QEMM.SYS [MEMORY=nnnnn] [FRAME=aaaa] [AUTO|ON|OFF]
[NOFILL] [EXCLUDE=xxxx-cccc] [INCLUDE=iiii-dddd]
[NOVIDEOFILL] [NOSORT] [OLDDV] [EXTMEM=ttttt] [RAM[=mmmmm-
eeee]] [ROM[=rrrr[-ffff]]] [UNUSUAL8042] [DOS4]
where:
MEMORY=nnnnn specifies the amount of 80386 extended memory
that QEMM uses both for itself and as expanded memory.
nnnnn should be in the range 128 to 32128 representing an
allocation of 128K to 32128K. If the MEMORY parameter is
omitted, QEMM takes all of the available extended memory.
The most common case where you don't want QEMM to allocate
all of extended memory as expanded memory is when you're
using VDISK. You can tell QEMM to take all the remaining
extended memory that is not already allocated to VDISK's by
placing the QEMM command after all VDISK commands, or other
commands that allocate extended memory.
FRAME=aaaa specifies the "page frame address"-which is to
say the address of the beginning of the 64K segment through
which expanded memory is mapped according to the EMS
specification. aaaa typically must be C000, C400, C800,
CC00, D000, D400, D800, DC00, or E000. In unusual cases
A000 may be used if no free area can be found and you have a
monochrome or CGA video adapter. A 64K area of memory
should be available at one of these addresses in order to
provide EMS capabilities. If the FRAME parameter is
omitted, the value of aaaa is chosen by QEMM according to
your hardware configuration. We recommended that you not
set FRAME except when QEMM's automatic choice of a base
address fails because of a hardware conflict that QEMM can't
detect. If there are no satisfactory addresses available
QEMM can be used for memory filling, sorting, High RAM
filling, multitasking and ROM mapping, but not as an
expanded memory manager, by specifying FRAME=NONE.
AUTO|ON|OFF specifies the initial state of expanded memory.
AUTO means that expanded memory will be available only when
a program needs it. ON means it will always be available,
and OFF means it is not available. If you don't specify any
of these three parameters, AUTO is used. We recommend that
use AUTO unless you have a specific reason for setting the
initial state to ON or OFF.
NOFILL specifies that QEMM should not fill conventional
memory below 640K. This option is only meaningful if your
machine has less than 640K of conventional memory. If it
does, QEMM normally fills in this missing memory, up to 640K
from extended memory. NOFILL specifies not to do this. If
your machine has less than 640K, and NOFILL is omitted, the
initial state ON is forced and cannot be overridden. (The
NOFILL parameter is normally omitted and is ignored if you
have 640K).
EXCLUDE=xxxx or EXCLUDE=xxxx-cccc specifies an area of
memory which should not be under the control of QEMM. You
only need to specify an excluded region if QEMM cannot
automatically detect it. xxxx and cccc are hexadecimal
numbers which specify either the address (xxxx) or address
range (xxxx-cccc) which should be excluded. xxxx should be
a multiple of 4K. For example, if you have a network
adapter that uses 16K of memory at address CC00, then you
would use EXCLUDE=CC00-CFFF. You may specify multiple
ranges by using EXCLUDE several times. Note that QEMM needs
at least 64K of contiguous memory between 640K and 960K
(A000 to F000), so care must be taken to leave at least 64K
free in this area.
INCLUDE=iiii or INCLUDE=iiii-dddd specifies an area of
memory which should be under the control of QEMM. iiii and
dddd are hexadecimal numbers which specify either the
address (iiii) or address range (iiii-dddd) which should be
included. iiii should be a multiple of 4K. Under normal
conditions, QEMM automatically detects all usable areas.
For example, if your machine has a "shadow BIOS ROM", not
being used, then INCLUDE=E000-EFFF would allow QEMM to tell
programs that this area is available. However, several
machines use the E000 area for other purposes. If you have
an 80286 computer which is using an 80386 speedup card, then
this memory area may be usable. If you wanted to have QEMM
use an unused video area, such as the color area when using
a VGA with a monochrome monitor, then INCLUDE=B800-BFFF
would be appropriate. The INCLUDE and EXCLUDE options are
processed sequentially, so it is possible to EXCLUDE an area
and then INCLUDE a part of it later on the command line.
NOVIDEOFILL specifies that the memory area from A000 to B7FF
is not to be filled with memory. This option is only
meaningful on monochrome and CGA machines. On these systems
QEMM will add memory from 640K (A000) to the bottom of the
video adapter card (either B000 for monochrome or B800 for
CGA) and adjust the memory size of DOS accordingly. If
memory is added, the initial state ON is forced and cannot
be overridden. NOVIDEOFILL specifies not to do this.
NOSORT specifies that the memory should not be sorted by
speed. QEMM normally tests the speed of all conventional
memory and all available extended memory and uses the
fastest memory first. Using NOSORT forces QEMM to use the
memory in the order it finds it. The sorted memory is used
to replace the initial 640K conventional memory, QEMM code
and page tables, fill the video area, ROM mapping, RAM
filling and expanded memory. QEMM gets its memory starting
from the highest memory address possible for the amount
specified in MEMORY (with a default of all). If
conventional memory is remapped into faster memory, the
initial state ON is forced and cannot be overridden.
OLDDV specifies that QEMM should be compatible with DESQview
1.30 and 2.00. This results in QEMM using 4K to 8K more
conventional memory. DESQview 2.01 and above do not require
this parameter.
EXTMEM=ttttt specifies the amount of extended memory which
should not be used by QEMM. tttt must be in the range 1 to
31744 representing an allocation of 1K to 31744K. This is
useful when using RAM disks and disk caches which use
extended memory, since you can ask QEMM to "leave alone" the
memory needed. If the EXTMEM parameter is omitted, QEMM
leaves no extended memory and uses all it can find. The
EXTMEM and MEMORY parameters have opposite meanings. EXTMEM
means "leave at least this much memory". MEMORY means "use
as much as this much memory".
RAM=mmmm-eeee specifies that QEMM should "fill in" areas of
memory above 640K and below 1024K which do not have ROM or
RAM in them. These areas can then be used by the LOADHI and
the DESQview XDV programs. You may specify RAM without the
address range mmmm-eeee and let QEMM automatically determine
the usable memory addresses. If RAM is specified, the
initial state ON is forced and cannot be overridden.
ROM=rrrr-ffff specifies an area of ROM which should be
copied to RAM and then mapped into the same place. rrrr and
eeee are hexadecimal numbers which specify the address range
which should be copied. Specifying ROM usually results in
the ROM code running much faster since RAM is often faster
than ROM. For example, to have the system BIOS ROM mapped
into RAM you would use ROM=F000-FFFF. To map an EGA ROM use
ROM=C000 as in the last example, only specify the starting
address and let QEMM determine the size of the ROM. You may
specify ROM without the address range rrrr-ffff and let QEMM
automatically determine the ROMs to map. If ROM is
specified, the initial state ON is forced and cannot be
overridden.
UNUSUAL8042 specifies that the computer has a "non-standard"
8042 keyboard controller. If setting QEMM to ON or running
DESQview disables the keyboard then the UNUSUAL8042 switch
should be specified.
DOS4 specifies that QEMM should deviate from the EMS 4.0
specification enough to accommodate bugs in early versions
of PC-DOS 4.0.
THE QEMM.COM PROGRAM:
You can change the mode of QEMM and display information
about your PC's memory at any time by running the QEMM
program from DOS. (It cannot be run inside DESQview.)
To change the current QEMM mode, you enter:
QEMM [AUTO|ON|OFF]
You can set the current mode to AUTO, ON, or OFF. These
have the same meanings as described previously:
AUTO specifies that expanded memory will be available only
when a program needs it.
ON specifies that expanded memory will always be available.
OFF specifies that expanded memory is not available.
I recommend that you set and leave the expanded memory state
as AUTO unless you have a specific reason for setting it to
ON or OFF.
NOTE: QEMM's mode is automatically forced ON when any of
the following occur:
Conventional memory is filled.
Video memory s filled.
High RAM is mapped.
ROMs are mapped.
Conventional memory is sorted.
Some expanded memory is in use.
To get information about the first megabyte of your PC's
memory:
Type QEMM and press enter.
QEMM displays information about the current mode, the amount
of expanded memory available for programs, the EMS page
frame address, and a map of your PC's memory.
If you know that the QEMM Memory Map is not showing an area
of memory correctly, such as not recognizing a network or
3270 card, then you should place an EXCLUDE parameter on the
QEMM command line which explicitly notifies QEMM of the
card's existence.
If the Conventional Memory is less than 640K, usually it's
because the Page Frame had to be located at segment 9000.
This happens when no memory area of at least 64K in size
could be found above 640K (segment A000H). The page frame
MUST be 64K in size in order to conform to LIM-EMS. If you
want the Page Frame to be above 640K, you will need to
relocate the devices which are using memory above 640K in
order to make a 64K area free. If you want to run with no
page frame, and therefore not conform to EMS, you may
specify FRAME=NONE.
HOW THE QEMM OPTIONS AFFECT DESQVIEW:
In general, QEMM does not need to have any special options
set. Its defaults are normally adequate. When running many
programs which use expanded memory, it may be necessary to
increase the number of HANDLES. This would happen when each
program uses many handles, resulting in a sum larger than
normal. These programs may not be using NAMES, so it may be
useful to reduce the number of NAMES when the HANDLES are
increased.
If you will be frequently using more than 6 programs at a
time, you should set the MAPS parameter accordingly.
The DESQview XDV program maps some memory into the 640K to
960K area and then loads the DV.EXE file into these areas
(splitting DV.EXE into pieces). If you have any special
hardware which uses these addresses (A000-EFFF), you may
need to explicitly EXCLUDE these areas.
If you have a VGA and do not have two monitors, then you may
want to INCLUDE the other monitor's address range (B000-
B7FF) for the monochrome area, B800-BFFF for the color
monitor). XDV can then use this area.
LOADHI PROGRAMS:
One of the biggest problems for many people is that
Terminate and Stay Resident (TSR) programs such as print
spoolers, disk caches, and other utilities use so much
memory that other programs don't have enough room to operate
efficiently. QEMM and LOADHI programs, LOADHI.COM and
LOADHI.SYS, can help this condition. The LOADHI programs
enable a TSR or device driver to be loaded into available
memory locations above 640K (A000-F000).
The LOADHI programs require that the QEMM RAM parameter be
specified.
In most cases, the EMS 64K page frame is placed somewhere
between C000 and E000 (see the FRAME parameter). This is
because most computers have a large unused area there. The
page frame must be 64K in size. If there are additional
unused addresses in this area, the LOADHI program can be
used to load one or more TSR programs or device drivers into
them. Since DOS programs normally must load below 640K,
these TSR programs, while being available for use, do not
take much memory from other programs. The TSR programs or
device drivers must not be larger than the available memory
above 640K.
If you had a mouse driver, MOUSE.COM, you could have it
"loaded high":
Type LOADHI MOUSE.COM and press enter.
This results in letting you use the mouse while not taking
memory from your other programs.
A TSR is normally loaded at the DOS prompt. TSR programs
are used with LOADHI.COM, and then only if there is a
contiguous section of high memory that is large enough to
load the TSR. Also note that loading many programs "up
high" may reduce the largest program size in DESQview.
The LOADHI.COM program will follow the DOS PATH when looking
for its programs. This makes it very easy to change your
AUTOEXEC.BAT file by placing LOADHI in front of each TSR
program name.
Some device drivers, which are loaded by CONFIG.SYS, can be
"loaded high" with LOADHI.SYS. If your mouse driver was
MOUSE.SYS, then to have it loaded high by adding the
statement to your CONFIG.SYS:
DEVICE=LOADHI.SYS MOUSE.SYS
There must be enough available high RAM to load the driver.
Any parameters needed for your driver appear after the
driver name.
NOEGA PROGRAM:
Some users with EGA adaptors are willing to sacrifice their
enhanced graphic capabilities in order to get more memory
for their non-graphics programs or for multitasking of text
programs in DESQview. Memory can be extended into the area
normally used for enhanced graphics by putting the switch
INCLUDE=A000-AFFF on the QEMM command line.
We have found that using the EGA memory area on some EGA
cards to be unreliable since some cards still write to the
graphics memory in the A000-AFFF range even when not in
graphics mode. Therefore, we recommend caution when using
NOEGA.
The NOEGA program is a terminate and stay resident program
run after setting the INCLUDE parameter. It ensures that
programs do not detect the presence of the EGA.
To add the NOEGA command to your AUTOEXEC.BAT file:
Type NOEGA and press enter.
NOTE: After running the NOEGA program, the programs you run
will not detect the presence of the EGA. To re-enable
program access to EGA, remove the INCLUDE parameter from the
QEMM command and remove NOEGA from your AUTOEXEC.BAT. Then
reboot.
BUFFERS PROGRAM:
DOS provides a way to save some disk information in memory
in order to retrieve it faster. The amount of memory used
is specified on the BUFFERS= line in CONFIG.SYS. QEMM has a
program, BUFFERS, which can increase the amount of buffers
in DOS 2.x or 3.x. You cannot decrease the number of
buffers.
To change the number of buffers:
Type BUFFERS [nnn|+nnn] and press enter.
where nn is a number.
To find out how many buffers are currently in use:
Type BUFFERS and then press enter.
To set the number of buffers to a particular value, for
example 30:
Type BUFFERS 30 and press enter.
The BUFFERS program will increase the number of buffers to
30 if the current value is lower. No change is made if the
current number of buffers is already greater than the
requested amount.
To increase the number of buffers by a particular amount,
for example 10:
Type BUFFERS +10 and then press enter.
While the BUFFERS program is useful, it does use memory.
Each buffer uses 528 bytes. However, the buffers can be
placed above 640K when the BUFFERS program is used in
conjunction with LOADHI.COM.
To add 5 buffers and have them placed above 640K:
Type LOADHI BUFFERS +5 and then enter.
Remember that you must use the RAM parameter to use LOADHI,
and that using lots of memory "up high" may reduce the
largest program size in DESQview.
------------------------------------------------------------
Joseph B. Phillips <WANTER>
November 13, 1989