Category : Alternate Operating Systems - Quarterdeck DesqView, CP/M, etc
Archive   : QWAUG92.ZIP
Filename : TOUR.TEC

 
Output of file : TOUR.TEC contained in archive : QWAUG92.ZIP

ID:TO QEMM-386's Parameters and how they affect your system
DESQview Technical Note #228
by Quarterdeck Testing & Compatibility Department
December 27, 1991

GRAND TOUR:
USING MANIFEST TO SEE THE EFFECT OF QEMM-386'S PARAMETERS

This is a tour of your computer through the facilities of Manifest to see
how the parameters of QEMM can affect the performance of your machine and to
learn about your machine. The screen of Manifest under discussion is
identified by listing the principal section, as displayed in the vertical menu
on the left of the Manifest screen, first, then a "/", then the subsection of
that principal section, as displayed on the horizontal menu at the top of the
Manifest screen.

The first stop of the tour is the Overview screen of the QEMM-386
section.

QEMM PARAMETER: STEALTHROM (ST)
MANIFEST VIEW: QEMM-386/OVERVIEW
On the QEMM-386/Overview screen MANIFEST reports what version of Stealth
is being used on the line "Stealth Type". On the line below that it reports
what ROMs are being "Stealth"ed, followed by how large the ROM is.

QEMM PARAMETER: SUSPENDRESUME (SUS)
MANIFEST VIEW: QEMM-386/MEMORY
If you have a laptop computer with a "RESUME" feature that QEMM-386 is
supporting, the interrupt QEMM is hooking to support this is listed on the
QEMM-386/Overview screen. You can force QEMM-386 to use any particular
interrupt with the parameter SUS:XX where XX is the interrupt you wish QEMM to
hook for this purpose.

The second stop of the tour is the Memory screen of the QEMM-386 section.

QEMM PARAMETER: NOFILL (NO)
MANIFEST VIEW: QEMM-386/MEMORY
If you have less than 640K of conventional memory before you load QEMM-
386 then the "Initial" column of the "Conventional" line of the QEMM-
386/Memory screen of Manifest will report this. QEMM-386 will map memory into
the vacant address space below 640K to extend conventional memory up to 640K.
If some program objects to this (Microsoft's "Windows" in enhanced mode is one
such program.) then the NOFILL (NO) parameter will stop this from happening.

QEMM PARAMETER: NOVIDEOFILL (NV)
MANIFEST VIEW: QEMM-386/MEMORY
If you have monochrome or Hercules or CGA video then address space above
640k and contiguous with conventional memory is available. QEMM386 will
automatically map memory to this address space to give you 704K (monochrome or
Hercules) or 736K (CGA) conventional memory. The "Converted by QEMM" column
of the "Conventional" line of the QEMM-386/Memory of Manifest will report that
QEMM has converted 64K (or 96K) memory, leaving 704K or 736K of conventional
memory. Some programs may object to this. The NOVIDEOFILL (NV) switch will
stop this from happening.

QEMM PARAMETER: NOXBDA (NX)
MANIFEST VIEW: QEMM-386/MEMORY
We are still on the Conventional Memory line. If the "Initial" column of
the "Conventional" line of the QEMM-386/Memory screen of Manifest is 639K (on
some computers it may be 638K or some other number) then there may be a 1K (or
more) piece of memory called the "Extended BIOS Data Area". This is a piece
of memory used by the BIOS to store information. The specification by which
the XBDA (as we abbreviate it) allows it to be moved; its address is stored in
the BIOS data area after the parallel ports at address 40:E (see the First
Meg/BIOS Data screen of Manifest).
Unfortunately not all users of the XBDA go to the BIOS Data area to see
where the XBDA is; they presume that it is at 639K, read what is there, and if
that is not where the XBDA is they get the wrong information and misbehave.
QEMM moves the XBDA by default into low memory (QEMM's conventional memory
overhead increases by 1K when this happens; see the last line on the QEMM-386
Memory screen to see this effect.) The parameter "NOXBDA" ("NX") keeps
QEMM386 from moving the XBDA. If you have an XBDA and run a program that only
looks for it at 639K then you need this switch. It is possible that a hard
drive controller or some other device creates the XBDA.

QEMM PARAMETER: EXTMEM (EXT)
MANIFEST VIEW: QEMM-386/MEMORY
On the "Extended ..." line of the QEMM-386/Memory screen of Manifest you
can see a report of how much extended memory QEMM-386 sees on your machine and
what QEMM-386 is doing with it. You may notice that the number in the
"Initial" column is not as much as you thought you should have. Say you have
a four megabyte system: This probably means 4096 kilobytes. Subtract 640
kilobytes for conventional memory and you would expect to find 3456 kilobytes.
If your machine has ShadowRAM or Top Memory (see the two paragraphs following)
then the initial number is 384 kilobytes less than what you would expect.
This 384K may or may not show up on the next line of this screen as ShadowRAM
or Top Memory. It may still be being used for one of these purposes without
QEMM-386 detecting it, explaining its absence on the initial column of the
extended line here. On many systems a lesser amount of memory (typically
128k) is reserved for shadowing ROMs and this only shows up as missing on this
line.
If you are using the parameter "extmem=xxxx" on the QEMM-386 line then
this amount of memory will show on the "Leaving" column of the extended line.
This is unmanaged extended memory left behind by QEMM-386 for those extended
memory users that will not get the extended memory they desire from the XMS
manager. Programs that get their extended memory from the XMS manager
(Windows 3, smartdrive, pc-kwik, pc-cache, for just a few examples) and any
VCPI program will not see the memory that is left behind with this parameter.
NOTE: An EXTMEM=XXXX cannot be used when XXXX is greater than 15360 (15
MB) because QEMM-386 redirects the DMA done by others, the DMA controller chip
cannot address memory above 16384K, and QEMM-386 leaves memory from the bottom
when an EXTMEM=XXXX is used. An EXTMEM>15360 will keep QEMM-386 from being
able to put the DMA buffer in the first 16384K of the address space,
preventing it from loading.

QEMM PARAMETER: MEMORY (ME or MEM)
MANIFEST VIEW: QEMM-386/MEMORY
This parameter limits the amount of memory that QEMM-386 manages. It is
a complement to the "EXTMEM" parameter mentioned above. All the memory that
QEMM-386 does not manage is left behind as unmanaged extended memory. You can
see how much memory this is by going to the QEMM-386/Memory screen of Manifest
and looking at the "Leaving" column of the "Extended" line. For more
information on the meaning of this parameter you can read the above paragraphs
on the "EXTMEM" parameter.

QEMM PARAMETER: NOSHADOWRAM (NOSH)
MANIFEST VIEW: QEMM-386/MEMORY
Still in the QEMM-386 memory screen: Is the line beneath "Extended",
"Shadow RAM"? Then you have ShadowRAM. ShadowRAM is a kind of memory. It is
384K of memory mapped by the hardware into the address space between 640K and
1024K. When you turn your machine on it copies the contents of ROMs in this
address space into the shadowRAM and future accesses to the ROM go to this RAM
instead. RAM is faster than ROM so your system runs faster. Since you may
have 384K of ShadowRAM and not 384K of ROMs to shadow (You probably have only
96K or so) the rest of the ShadowRAM is unused.
QEMM386 (beginning with version 5.0) tries to use this memory. You can
see how much of it QEMM uses by looking at the subsequent lines of the
ShadowRAM line of this screen. You will see that some of it is unavailable to
QEMM while some other amount is used. The amount is variable from machine to
machine. Quarterdeck has standardized on the Chips & Technologies definition,
the most common brand of ShadowRAM.
Not all manufacturers follow this standard and if theirs is sufficiently
different QEMM may not detect it or may detect and try to manage it as though
it were C&T ShadowRAM. This possibility is why the NOSHADOWRAM (NOSH) switch
exists. Give it a try if you have boot problems or other memory problems. On
some machines QEMM's attempt to manage ShadowRAM that is insufficiently
similar to C&T ShadowRAM may cause the machine to reboot continuously.

QEMM PARAMETER: NOTOPMEMORY (NT)
MANIFEST VIEW: QEMM-386/MEMORY
Top Memory is a kind of memory that occupies the address space from
16000K to 16384K, which is the top of the 16 Megabyte address space. Compaq
and Micronics use Top Memory for shadowing ROMs. Beginning with version 5.00
QEMM-386 tries to use all this memory that is not being used by the system
already. If QEMM-386 is managing this memory it will show up on the QEMM-
386/Memory screen on a separate line underneath the Extended memory line. If,
for some reason, QEMM-386 has problems managing a particular implementation of
Top Memory or it misreads the system in such a way as to think that it has Top
Memory when it really does not, then this parameter will solve your problem.

QEMM PARAMETER: NOEMS
MANIFEST VIEW: QEMM-386/MEMORY
This parameter tells QEMM-386 not to create any expanded memory. If this
parameter is on the QEMM386.SYS line of the config.sys then "0K" is in the
"Leaving" column of the "Expanded" line in the QEMM-386/Memory screen of
Manifest.

QEMM PARAMETER: RAM
MANIFEST VIEW: QEMM-386/MEMORY
This parameter creates high RAM, the memory into which LOADHI loads
programs high. The last line of the top box of the QEMM-386/Memory screen of
Manifest reports how much high RAM QEMM-386 creates. If the RAM parameter is
not on the QEMM line (or if there is no vacant high address space) the amount
in the "Leaving" column of this line is "0K". This parameter can be used to
create high RAM only in limited portions of the address space by restricting
it with a statement such as "RAM=B000-B7FF", which will create high RAM only
from B000 to B7FF.

QEMM PARAMETER: TASKS (TA)
MANIFEST VIEW: QEMM-386/MEMORY
In the lower box of the QEMM-386/Memory screen of Manifest is "Tasks:
8K". Tasks are internal QEMM-386 data structures used to handle interrupts
out of protected mode. All DOS interrupts must be handled in real mode. QEMM
switches the machine out of protected mode (into which it must put the machine
to do its job) for the duration of this interrupt. Tasks are used to store
the information that must be saved when this is done. Extended memory is used
for Tasks, not conventional memory. The default number of tasks (16) is
likely to be enough for any user.

QEMM PARAMETER: DMA (DM)
MANIFEST VIEW: QEMM-386/MEMORY
Underneath "Tasks" is "DMA Buffer: 12K". DMA is the acronym for
Direct Memory Address. Some devices (most floppy disk controllers, some
network cards, some hard disk controllers, many tape back-ups) use DMA. This
is a way to allow information to be transferred from the disk (network, etc.)
to memory directly without burdening the CPU to perform the transfer. QEMM-
386 must divert DMA that is headed into mapped memory. QEMM-386 sets aside a
default DMA buffer of 12K. This can be raised with the parameter DMA=XX where
"XX" represents any number from 12 to 128. Some devices may require a larger
DMA buffer. If a program demands a larger DMA buffer QEMM-386 will post an
error message telling the user to increase the size of the DMA buffer. If you
have a program, such as a tape backup, fail, even if this error message is not
reported raising the size of the DMA buffer is worth a try.

QEMM-386 PARAMETER: MAPS (MA)
MANIFEST VIEW: QEMM-386/MEMORY
At the top of the second column in the lower box of the QEMM-386/Memory
screen of Manifest is "Maps: 32K". MAPS are alternate maps, an
equivalent of the hardware registers used by some EMS boards to help operating
environments switch quickly between processes. In DESQview each window uses
one of these alternate maps. If DESQview runs out of alternate maps, it must
save and restore the entire expanded memory map between processes. This
results in much less efficient multitasking. Each MAP uses 4K of extended
memory (no conventional memory). The default is 8 maps. Raise this number if
you wish to multitask efficiently more windows than you currently have MAPS
allocated for (The maximum is 56.) or drop it to 0 (with MA=0) if you do not
use DESQview. Microsoft Windows does not use the MAPS QEMM-386 sets aside.

QEMM-386 PARAMETER: ROM
MANIFEST VIEW: QEMM-386/MEMORY
On the second row of the second column of the lower box of the QEMM-
386/Memory screen is a line that reads: "Mapped ROM: 4K" (or some
number). This shows the amount of memory that QEMM-386 is using to map ROMs.
Mapping ROM is creating RAM in the same portion of the address space that a
ROM occupies and copying the contents of the ROM into this RAM. Then accesses
of ROM will go to RAM. Accessing RAM is faster than accessing ROM so this
will speed the performance of the machine. The number on this line indicates
the amount of memory (extended memory, not conventional memory) used to map
ROMs. When the ROM parameter is used without restriction then all ROMs are
mapped. The ROM parameter can be used with restriction (ROM=C000-C7FF, for
example) to ROM only this portion of the address space. If QEMM-386 is not
discovering a ROM that you know is there you may need to use a restricted ROM=
statement for QEMM-386 to map this ROM.
On Compaqs (and some other machines that QEMM-386 detects as having this
same feature.), QEMM-386 automatically maps some ROMs.
The ROM parameter provides the same service that ShadowRAM does. You
should not use the ROM parameter on QEMM-386 if you are using the built-in
ShadowRAM of your computer, not because it will cause a problem, but because
it will be a waste of memory.

QEMM-386 PARAMETER: NOROM (NR)
MANIFEST VIEW: QEMM-386/MEMORY
By default QEMM-386 maps the reboot page of the system ROM (See the above
paragraph for a discussion of mapping ROM). QEMM-386 does this in order to
detect reboots more readily. This is why there is at least 4k of mapped ROM
being reported on the second column of the lower box of the QEMM-386/Memory
screen of Manifest ("Mapped ROM: 4K"). This feature is defeated by the
NOROM (NR) parameter. Using this parameter may cause problems rebooting.

The third stop of the tour is the Overview screen of the First Meg
section.

QEMM-386 PARAMETER: NOXBDA (NX)
MANIFEST VIEW: FIRST MEG/OVERVIEW
We have already discussed this in a previous paragraph but we can see it
again on this screen. If there is a line in the First Meg/Overview screen
that looks like this:

===Conventional memory ends at 639K====
9FC0-9FFF 1K Extended BIOS Data Area

then you have an XBDA. QEMM-386 will move this by default unless the NOXBDA
parameter is on the QEMM-386 line of the config.sys. This issue is discussed
in greater detail in the above paragraph on this same parameter. Of course,
if QEMM-386 has moved your XBDA, as it does by default, this line will not
appear.

QEMM-386 PARAMETER: EXCLUDE=MMMM-NNNN (X=MMMM-NNNN)
MANIFEST VIEW: FIRST MEG/OVERVIEW
The EXCLUDE=MMMM-NNNN parameter tells QEMM-386 not to map the portion of
the address space bounded below by MMMM and above by NNNN. Any portion of the
address space that QEMM-386 is kept from mapping by an EXCLUDE that it does
not recognize as already being occupied by some other device will be described
as "Unused" on the First Meg/Overview screen of Manifest. If Manifest sees
something (ROM, Adapter RAM, etc.) in the address space already, it will
continue to report that this is what it sees there.

QEMM-386 PARAMETER: RAM
MANIFEST VIEW: FIRST MEG/OVERVIEW
The portions of the high address space in which QEMM-386 has created high
RAM will have the description "High RAM" in the First Meg/Overview screen of
Manifest. In order for any of the address space to be turned into high RAM
the RAM parameter must be on the QEMM-386 line of the config.sys. This is
discussed in greater detail in the above paragraph about the RAM parameter.

QEMM-386 PARAMETER: ROM
MANIFEST VIEW: FIRST MEG/OVERVIEW
The portions of the address space in which QEMM-386 is mapping ROM are
described as "Mapped ROM" on the First Meg/Overview screen of Manifest. This
parameter maps RAM into the address space occupied by ROMs and copies the
contents of those ROMs into this RAM for faster performance. This feature is
discussed in greater detail in the ROM section above.

QEMM-386 PARAMETER: ADAPTERRAM=MMMM-NNNN (ARAM=MMMM-NNNN)
MANIFEST VIEW: FIRST MEG/OVERVIEW
The portion of the address space bounded below by MMMM and above by NNNN
with this parameter will be reported as Adapter RAM on the description field
of the First Meg/Overview screen of Manifest. This parameter causes the
portion of the address space bounded by the beginning address ("MMMM") and the
ending address ("NNNN") not to be mapped by QEMM-386. This should be used
when there is a portion of the address space occupied by the adapter RAM of a
physical device (like a network card). The only difference between this
parameter and an EXCLUDE=MMMM-NNNN is that the description the QEMM.COM
program reports changes to Adapter RAM, rather than "Excluded".

QEMM-386 PARAMETER: ADAPTERROM=MMMM-NNNN (AROM=MMMM-NNNN)
MANIFEST VIEW: FIRST MEG/OVERVIEW
The portion of the address space bounded below by MMMM and above by NNNN
with this parameter will be reported as Adapter ROM on the description field
of the First Meg/Overview screen of Manifest. This parameter causes the
portion of the address space bounded by the beginning address ("MMMM") and the
ending address ("NNNN") not to be mapped by QEMM-386. This should be used
when there is a portion of the address space occupied by the adapter ROM of a
physical device (like a disk controller ROM). The only difference between
this parameter and an EXCLUDE=MMMM-NNNN is that the description the QEMM.COM
program reports changes to Adapter ROM, rather than "Excluded".

QEMM-386 PARAMETER: (FR=XXXX)
MANIFEST VIEW: FIRST MEG/OVERVIEW
The location of the page frame is reported on the First Meg/Overview
screen of Manifest with the description of "Page Frame". The "FRAME=XXXX"
parameter tells QEMM-386 where to put the page frame. XXXX can be any
hexadecinal number that is a multiple of 16K (C000, C400, C800, CC00, D000,
D400, D800, DC00, E000, etc.) The page frame is 64K long. Of course if you
put your page frame on top of the address space used by the video card, BIOS
ROM, network card's RAM buffer, etc., you will have trouble. The default
setting of FRAME is AUTO, which is achieved by not having a FRAME=XXXX
statement at all. QEMM-386 finds the location it feels is most suitable for
the page frame, usually the highest available free 64K piece of the address
space. With Stealth, QEMM versions 6 and above will put the page frame at
C000, if appropriate, or EC00 by default.

The fourth stop is the BIOS Data screen of the First Meg section.

QEMM-386 PARAMETER: NOXBDA (NX)
MANIFEST VIEW: FIRST MEG/BIOS DATA
The third line of the First Meg/BIOS Data screen of Manifest will read
"0E: Extended Bios Segment 0AF8" (or whatever address at which the XBDA is
being put) if you have an Extended BIOS Data Area. The XBDA is discussed in
greater detail in the NOXBDA section above in the QEMM-386/Memory section and
there is also a paragraph in the First Meg/Overview section of this document.

The fifth stop is the Timings screen of the First Meg section.

QEMM-386 PARAMETER: ROM
MANIFEST VIEW: FIRST MEG/TIMINGS
If the timing of a portion of the address space occupied by a ROM is as
fast as the portion of the address space occupied by conventional memory
(Conventional Memory is in the address space beginning at 0000 and running,
usually, to 9FFF. The portion of the address space occupied by a ROM should
be identified as "System ROM", or "Disk ROM", "Video ROM", or "Adapter ROM" on
the description field of the First Meg/Overview screen of Manifest ) then that
ROM is being "shadowed" in RAM; see the "ROM" section of the "QEMM-386/Memory"
section of this document. If the speeds are the same without the ROM
parameter on the QEMM line then this service is being performed in hardware.
If this service is not being performed in hardware then you can use QEMM-
386 to provide this service by placing the ROM parameter on the QEMM line of
the config.sys. You may find that, on some systems, only the system ROM (or
perhaps system and video ROMs) are being sped up by the system hardware. If
you have a ROM that is not being sped up by the system hardware then QEMM-386
can be used to speed up only a specific range of ROM by using the parameter
"ROM=MMMM-NNNN" where "MMMM" is the beginning address of the ROM and "NNNN" is
the ending address of the ROM. Say you have a Disk ROM at C800-CBFF and your
system is shadowing the System ROM (typically F000-FFFF) and Video ROM
(typically C000-C7FF) already but is not shadowing the Disk ROM: You can put
the parameter "ROM=C800-CBFF" on the QEMM line of the config.sys to get this
same service for the disk ROM.

See the "ROM" section of the QEMM-386/Memory section of this document for
more discussion of the ROM parameter and the "NOSHADOWRAM" section of of the
QEMM-386/Memory section of this document for more discussion of the concept of
shadowing ROMs.


************************************************************************
*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-2 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************