Ref: 11420013
Title: Mapping High DOS Memory with 3ComEMM
Date: 1/29/90

Copyright 3Com Corporation, 1991.  All rights reserved.

The diagram below shows how some PC systems use high DOS
memory.  The upper part of the graph depicts how memory is mapped
from 640 KB to 1 megabyte.  Included are all of the video cards and
their respective locations.

The lower part of the graph depicts the High DOS Block created
by 3ComEMM from C000 - EFFF.  In this area, which can be as large as
192 KB, are listed some of the possible items which may reside in this
block.  The high DOS block must be contiguous for it to be of any
benefit to 3+ servers.  (3+Open workstations do not require a contiguous
block.)  Therefore, in some cases the user will need to understand what
is being mapped into high DOS.

Note:  The memory addresses in the graphs are only close approximations.
Certain PCs, such as the IBM PS/2 model 80 and the Compaq 386/20e,
386/20s, and 386/33, will arrange high DOS memory differently.  These
PCs require XBIOS.SYS in the CONFIG.SYS file to move the 1 KB of system
ROM located at the end of the 640 KB.


How memory is mapped from 640 KB to 1 MB:

A000    AFFF B000        B7FF B800      BFFF C000           EFFF F000   FFFF
| EGA/VGA |   | Monochrome |   | CGA Text |   | System Depen. |   | Sys. |
+---------+---+------------+---+----------+---+---------------+---+------+
(High Res)                     | (Low Res)|   | High DOS Area     | ROM  1 MB
(Graphics                      | (Graph.) |   +-------------------+
(Area)                         |          |
       | EGA/VGA  |
         | Text     |
       +----------+


High DOS area, expanded:

C000        C600/C800CC00            DFFF E000             EFFF  F000
|  Add'l Video  |  ESDI  |  High DOS Mem. |   | EMS Page Frame |     |
+---------------+--------+----------------+---+----------------+-----+
      ROM    ROM  |     |
 |            High DOS Block     |
 +-------------------------------------------+


It is most important to recover as much low DOS memory as possible,
and to create a contiguous high DOS block.  To do this, use the
VIDMEM= and the RAM= parameters.  The VIDMEM= parameter tells
3ComEMM what range of memory to reserve as video memory and
allows 3ComEMM to backfill low DOS memory below it.  VIDMEM= can
give 736 KB of low DOS memory to CGA, EGA, and VGA systems, and 704
KB to monochrome systems.  (Monochrome systems recover 704 KB because
the monochrome adapter normally reside closer to A000 than do the other
video adapters.)

The RAM= statement warns 3ComEMM not to use RAM that is already in use
at a specified location.  For example, for an ESDI controller that needs
to have a ROM moved closer to the end of video memory, say C600, use
RAM=C600-XXXX to tell 3ComEMM not to map anything into that location.
Make sure that you have also changed the address on the controller board
if possible.  The address of the ESDI controller has now been moved and
a contiguous block of high DOS has been created.   The size of the high
DOS block depends on the type of system you are using.

