home *** CD-ROM | disk | FTP | other *** search
- 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
-
-
-