                 INSTALLING INVISIBLE RAM IN CONFIG.SYS

                Copyright 1993 Invisible Software, Inc.



       [See GUIDE.TXT for a list of all manuals and text files.]



Normally, Invisible RAM is installed when you run the NET30 program to
start Invisible LAN.  This is quite convenient, because the Invisible
RAM parameters come from the Invisible LAN initialization file.

However, there are some cases where you may want to install Invisible
RAM from the CONFIG.SYS file.  Basically, these are cases where some
other program in CONFIG.SYS needs to use expanded memory or shadow RAM.
Here are some examples of situations where you need to install Invisible
RAM from CONFIG.SYS:

     * If you want to load a device driver into shadow RAM.

     * If you have a device driver that uses expanded memory.

     * If you have a device driver (like VDISK) that uses extended
       memory, and you are depending on Invisible RAM to provide
       emulated extended memory.

     * If you are using DOS 4.0, and you want to put the DOS BUFFERS
       into expanded memory.

     * If you are using DOS 5.0, and you want Invisible RAM to function
       as an upper memory provider so you can use the command DOS=UMB.

In these situations, you need to install Invisible RAM in the CONFIG.SYS
file.  The information in this file tells you how to do this.



------------------------------------------------------------------------



TABLE OF CONTENTS

 1.  Software Installation
 2.  Installing Invisible RAM for the NEAT Chipset
 3.  Installing Invisible RAM for the AT/386 Chipset
 4.  Installing Invisible RAM 386
 5.  Installing Invisible RAM for Invisible EMS
 6.  Installing Invisible RAM for Generic EMS
 7.  Installing Invisible RAM for the SCAT Chipset
 8.  Installing Invisible RAM for the PEAK Chipset
 9.  Bypassing Invisible RAM
10.  Memory Manager Parameter Examples
   10.1.  Page Frames
   10.2.  /Z -- System Configuration
   10.3.  /D, /I, /R, /S, /X, /Y -- Memory Allocation Control
      10.3.1.  The /X Parameter -- Exclude Page Frames
      10.3.2.  The /D Parameter -- Create Default Memory
      10.3.3.  The /I Parameter -- Create Paged EMS Memory
      10.3.4.  The /S Parameter -- Create Shadow RAM
      10.3.5.  The /R Parameter -- Create High RAM
      10.3.6.  The /Y Parameter -- Create ROM Copy
   10.4.  /A, /K -- Standard EMS Area Control
      10.4.1.  The /A Parameter -- Standard EMS Area Start Address
      10.4.2.  The /K Parameter -- Standard EMS Area Size
   10.5.  /F, /L, /N, /V -- DOS Memory Control
      10.5.1.  The /F Parameter -- Frontfill Size
      10.5.2.  The /L Parameter -- Force Driver into Low Memory
      10.5.3.  The /V Parameter -- VGA/EGA Graphics State
      10.5.4.  The /N Parameter -- Network ROM Data Location
   10.6.  /U -- Upper Memory Support
   10.7.  /C, /H, /P -- Internal EMS Parameters
      10.7.1.  The /P Parameter -- Create Non-Standard Page Frames
      10.7.2.  The /H Parameter -- Number of EMS Handles
      10.7.3.  The /C Parameter -- Number of EMS Contexts
   10.8.  /E -- Extended Memory Emulation
   10.9.  /J, /T -- Hardware Configuration and Test
      10.9.1.  The /T Parameter -- Memory Test Level
      10.9.2.  The /J Parameter -- I/O Port Address
11.  386 Control Program Parameter Examples
   11.1.  /E -- Extended Memory Allocation
   11.2.  /H -- High Memory Area XMS Interface
   11.3.  /R -- EMS Alternate Register Sets
   11.4.  /S, /Z -- Interrupt Stack Frame Allocation
   11.5.  /B -- BIOS Size
   11.6.  /0 to /7 -- DMA Data Buffer Allocation
12.  Using Invisible RAM with DOS 5.0
   12.1.  Loading DOS High
      12.1.1.  Invisible RAM for the NEAT Chipset
      12.1.2.  Invisible RAM for the AT/386 Chipset
      12.1.3.  Invisible RAM 386
      12.1.4.  Invisible RAM for Invisible EMS
      12.1.5.  Invisible RAM for Generic EMS
      12.1.6.  Invisible RAM for the SCAT Chipset
      12.1.7.  Invisible RAM for the PEAK Chipset
   12.2.  DOS 5.0 Upper Memory Support
   12.3.  Using Invisible RAM as an Upper Memory Provider
      12.3.1.  Invisible RAM for the NEAT Chipset
      12.3.2.  Invisible RAM for the AT/386 Chipset
      12.3.3.  Invisible RAM 386
      12.3.4.  Invisible RAM for Invisible EMS
      12.3.5.  Invisible RAM for Generic EMS
      12.3.6.  Invisible RAM for the SCAT Chipset
      12.3.7.  Invisible RAM for the PEAK Chipset



------------------------------------------------------------------------



1.  SOFTWARE INSTALLATION


To install Invisible RAM from CONFIG.SYS, you need to put one or more
lines into the CONFIG.SYS file.  These lines will load the Invisible RAM
software.

The first half of this file describes the lines that you must place in
CONFIG.SYS to load Invisible RAM.  The second half gives examples and
additional details.

Parameters are handled differently when Invisible RAM is loaded from
CONFIG.SYS.  When Invisible RAM is loaded by the NET30 command, all the
parameters come from the Invisible LAN initialization file.  When
Invisible RAM is loaded by CONFIG.SYS, the initialization file is not
used;  instead, the Invisible RAM parameters have to be placed into the
CONFIG.SYS file.

There are seven different versions of Invisible RAM, each supporting a
different type of memory hardware:  NEAT chipset, AT/386 chipset, 386
virtual mode, Invisible EMS, Generic EMS, SCAT chipset, and PEAK
chipset.  The CONFIG.SYS commands for each version are described
individually below.  For each version, we list all the available
parameters.  You will see that all the versions are quite similar.
Where the versions are different, it is because of differences in the
capabilities of the memory hardware.



------------------------------------------------------------------------



2.  INSTALLING INVISIBLE RAM FOR THE NEAT CHIPSET


The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for the NEAT chipset.

To use this version of Invisible RAM, you need a 286 or 386SX computer
with the NEAT chipset made by Chips and Technologies, and at least 1
megabyte of RAM.


To install Invisible RAM on the NEAT chipset, place the following line
into the CONFIG.SYS file:

        DEVICE=NEATEMM.SYS [parameters]

where the optional parameters may include the following:

/C=contexts      The number of EMS context save areas.  This controls a
                 resource that is used by EMS applications.  contexts is
                 a decimal number.  The minimum allowed value is 32, and
                 the maximum allowed value is 255.  If /C is omitted, it
                 defaults to the value of /H.

/D=iiii[-jjjj]   Default RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used in the
                 default manner (either shadow RAM or paged EMS memory,
                 depending on the value of the /Z parameter).  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to single 16K
                 page frame containing address iiii.  The /D parameter
                 may be repeated as many times as desired.  Caution --
                 If there is any ROM in the page frames, the ROM is
                 disabled.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/H=handles       Number of EMS handles.  This controls a resource that
                 is used by EMS applications.  handles is a decimal
                 number.  The minimum allowed value is 32, and the
                 maximum is 255.  If /H is omitted, the default is 64.

/L               Force driver into low memory.  If you create any shadow
                 RAM, the Invisible RAM software automatically copies
                 itself into the shadow RAM, in order to free up DOS
                 memory.  If you include /L, the Invisible RAM software
                 does not copy itself into shadow RAM.  (If there isn't
                 any shadow RAM, then /L is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to the single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.  Caution -- If there
                 is any ROM in the page frames, the ROM is disabled.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Y=iiii[-jjjj]   ROM copy memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are filled with RAM
                 that contains a copy of any ROMs within the page
                 frames.  This speeds up the execution of ROM code.  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to the single 16K
                 page frame containing address iiii.  The /Y parameter
                 may be repeated as many times as desired.

/Z=config        System configuration.  The only allowed values of
                 config are 0, 1, and 2.  /Z=0 selects expanded memory
                 only, with no shadow RAM.  /Z=1 selects expanded memory
                 and shadow RAM.  /Z=2 selects shadow RAM only, with no
                 expanded memory.  If /Z is omitted, it defaults to
                 /Z=0.  The /Z parameter can be overridden or modified
                 by the /R, /S, /X, and /Y parameters.



------------------------------------------------------------------------



3.  INSTALLING INVISIBLE RAM FOR THE AT/386 CHIPSET


The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for the AT/386 chipset.

To use this version of Invisible RAM, you need a 386 computer with the
AT/386 chipset made by Chips and Technologies, and at least 1 megabyte
of RAM.


To install Invisible RAM on the AT/386 chipset, place the following line
into the CONFIG.SYS file:

        DEVICE=A386SRM.SYS [parameters]

where the optional parameters may include the following:

/D=iiii[-jjjj]   Default RAM memory area.  For the AT/386 chipset, this
                 parameter performs the same function as /S.  See the
                 description of /S below.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/L               Force driver into low memory.  If you create any shadow
                 RAM, the Invisible RAM software automatically copies
                 itself into the shadow RAM, in order to free up DOS
                 memory.  If you include /L, the Invisible RAM software
                 does not copy itself into shadow RAM.  (If there isn't
                 any shadow RAM, then /L is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.  Caution -- If there
                 is any ROM in the page frames, the ROM is disabled.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Y=iiii[-jjjj]   ROM copy memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are filled with RAM
                 that contains a copy of any ROMs within the page
                 frames.  This speeds up the execution of ROM code.  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to the single 16K
                 page frame containing address iiii.  The /Y parameter
                 may be repeated as many times as desired.



------------------------------------------------------------------------



4.  INSTALLING INVISIBLE RAM 386


Invisible RAM 386 is the version of Invisible RAM that supports the 386
virtual mode.  To use this version of Invisible RAM, you need a computer
with a 386, 386SX, or 486 microprocessor, and at least 2 megabytes of
RAM.

Invisible RAM 386 is structured differently than the other versions of
Invisible RAM.  Invisible RAM 386 actually consists of two programs:  a
memory manager, and a 386 control program.  The memory manager controls
the allocation of expanded memory and shadow RAM, and is similar to the
other versions of Invisible RAM.  The 386 control program controls the
microprocessor's virtual mode, and is unique to Invisible RAM 386.

The memory manager and the 386 control program each have their own
parameters.  For this reason, Invisible RAM 386 has more parameters than
any other version of Invisible RAM.  The following shows the CONFIG.SYS
commands for installing the two programs, and the parameters available
for each of them.  CP386.SYS is the 386 control program, and C386EMM.SYS
is the memory manager.


To install Invisible RAM 386 (for any computer with a 386, 386SX, or 486
microprocessor), place the following lines into the CONFIG.SYS file, in
the order shown:

        STACKS=0,0
        DEVICE=CP386.SYS [386_parameters]
        DEVICE=C386EMM.SYS [memory_parameters]

(Exception -- If you are using DOS version 3.1 or earlier, omit the
STACKS line.)

The optional 386_parameters control the configuration of the 386 control
program.  The optional memory_parameters control the configuration of
the memory manager.



The optional 386_parameters may include one or more of the following:

/B=size          BIOS size, in kilobytes.  With this parameter, you can
                 deactivate any unnecessary portion of the computer's
                 BIOS (such as a setup program), thereby freeing up more
                 space for shadow RAM.  size is a decimal number giving
                 the desired size of the BIOS ROM in kilobytes;  it can
                 range from 8 to 128.  If /B is omitted, it defaults to
                 the actual physical size of the BIOS.

/E=size          Extended memory allocation.  With this parameter, you
                 can reserve part of your computer's extended memory for
                 use by extended memory programs such as VDISK.SYS and
                 the Invisible LAN disk cache.  size is a decimal number
                 that gives the desired amount of extended memory, in
                 kilobytes.  The remaining extended memory not reserved
                 by /E is used for expanded (EMS) memory, shadow RAM,
                 and the CP386 program code.  If /E is omitted, it
                 defaults to 0 if /H is not included, or 64 if /H is
                 included.

/H[=hmamin]      High memory area.  If you include /H, then programs can
                 access the high memory area (i.e., the first 64K of
                 extended memory) using the Microsoft XMS interface.
                 This is equivalent to Microsoft's HIMEM.SYS device
                 driver.  hmamin is the minimum size program, in
                 kilobytes, that is allowed to use the high memory area;
                 its value can range from 0 to 63 (this is equivalent to
                 the "/HMAMIN=" parameter of HIMEM.SYS).  The square
                 brackets indicate that hmamin is optional;  if omitted,
                 it defaults to 0.  If the /H parameter is completely
                 omitted, then CP386 does not supply an XMS interface.

/R=regsets       Number of expanded memory (EMS) alternate register
                 sets.  regsets is a decimal number giving the desired
                 number of alternate register sets.  These can be used
                 by multitasking systems (such as Desqview) to speed up
                 multitasking.  Each register set uses 128 bytes of
                 extended memory.  The minimum allowed value of regsets
                 is 0, and the maximum is 255.  If /R is omitted, the
                 default is 7.

/S=stacks        Number of stack frames used for interrupt processing.
                 stacks is a decimal number giving the desired number of
                 stack frames.  This is equivalent to the first number
                 in the DOS STACKS command.  Each stack frame uses 512
                 bytes of extended memory, plus the number of bytes of
                 DOS memory specified in the /Z parameter.  The minimum
                 allowed value of stacks is 8, and the maximum is 64.
                 If /S is omitted, the default is 16.

/Z=stacksize     Size of stack frames used for interrupt processing.
                 stacksize is a decimal number giving the desired size
                 of the interrupt stack frames, in bytes.  This is
                 equivalent to the second number in the DOS STACKS
                 command.  /Z determines the amount of DOS memory used
                 by each interrupt stack frame;  the number of stack
                 frames is determined by the /S parameter.  The minimum
                 allowed value of stacksize is 32, and the maximum is
                 512.  If /Z is omitted, the default is 128.

/0=DMAsize       The size of the data buffer for DMA channel 0, in
                 kilobytes.

/1=DMAsize       The size of the data buffer for DMA channel 1, in
                 kilobytes.

/2=DMAsize       The size of the data buffer for DMA channel 2, in
                 kilobytes.

/3=DMAsize       The size of the data buffer for DMA channel 3, in
                 kilobytes.

/4=DMAsize       The size of the data buffer for DMA channel 4, in
                 kilobytes.

/5=DMAsize       The size of the data buffer for DMA channel 5, in
                 kilobytes.

/6=DMAsize       The size of the data buffer for DMA channel 6, in
                 kilobytes.

/7=DMAsize       The size of the data buffer for DMA channel 7, in
                 kilobytes.



The optional memory_parameters may include one or more of the following:

/A=addr          The starting address of the standard EMS area.  addr is
                 a segment address, in hexadecimal.

/C=contexts      The number of EMS context save areas.  This controls a
                 resource that is used by EMS applications.  contexts is
                 a decimal number.  The minimum allowed value is 32, and
                 the maximum allowed value is 255.  If /C is omitted, it
                 defaults to the value of /H.

/D=iiii[-jjjj]   Default RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used in the
                 default manner (either shadow RAM or paged EMS memory,
                 depending on the value of the /Z parameter).  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to single 16K
                 page frame containing address iiii.  The /D parameter
                 may be repeated as many times as desired.  Caution --
                 If there is any ROM in the page frames, the ROM is
                 disabled.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/H=handles       Number of EMS handles.  This controls a resource that
                 is used by EMS applications.  handles is a decimal
                 number.  The minimum allowed value is 32, and the
                 maximum is 255.  If /H is omitted, the default is 64.

/I=iiii[-jjjj]   Include memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as paged
                 EMS memory.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /I parameter may be repeated as many times as desired.
                 /I is not valid if you specify /Z=2.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/K=frames        Number of 16K page frames in the standard EMS area.
                 frames is a decimal number.  The minimum allowed value
                 is 2, and the maximum is 12.  If /K is omitted, it
                 defaults to 4.  Note -- Most EMS applications won't
                 work if /K has a value other than 4.

/L               Force driver into low memory.  If you create any shadow
                 RAM (with the /S or /Z parameter), the expanded memory
                 manager automatically copies itself into the shadow
                 RAM, in order to free up DOS memory.  If you include
                 /L, the expanded memory manager does not copy itself
                 into shadow RAM.  (If you don't create any shadow RAM,
                 the /L parameter is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/P=page          Create non-standard physical page.  page is a decimal
                 number;  the only allowed values are 254 and 255.  This
                 parameter is only useful for IBM DOS 4.0 (not MS-DOS
                 4.0), if you want to place DOS BUFFERS, FASTOPEN, or
                 VDISK into expanded memory.  The /P parameter may be
                 repeated.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to the single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.  Caution -- If there
                 is any ROM in the page frames, the ROM is disabled.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Y=iiii[-jjjj]   ROM copy memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are filled with RAM
                 that contains a copy of any ROMs within the page
                 frames.  This speeds up the execution of ROM code.  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to the single 16K
                 page frame containing address iiii.  The /Y parameter
                 may be repeated as many times as desired.

/Z=config        System configuration.  The only allowed values of
                 config are 0, 1, and 2.  /Z=0 selects expanded memory
                 only, with no shadow RAM.  /Z=1 selects expanded memory
                 and shadow RAM.  /Z=2 selects shadow RAM only, with no
                 expanded memory.  If /Z is omitted, it defaults to
                 /Z=0.  The /Z parameter can be overridden or modified
                 by the /I, /R, /S, /X, and /Y parameters.



------------------------------------------------------------------------



5.  INSTALLING INVISIBLE RAM FOR INVISIBLE EMS


The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for the Invisible EMS memory board.

To use this version of Invisible RAM, you need a computer equipped with
the Invisible EMS memory board.


To install Invisible RAM for the Invisible EMS memory board, place the
following line into the CONFIG.SYS file:

        DEVICE=IEMSEMM.SYS [parameters]

where the optional parameters may include the following:

/A=addr          The starting address of the standard EMS area.  addr is
                 a segment address, in hexadecimal.

/C=contexts      The number of EMS context save areas.  This controls a
                 resource that is used by EMS applications.  contexts is
                 a decimal number.  The minimum allowed value is 32, and
                 the maximum allowed value is 255.  If /C is omitted, it
                 defaults to the value of /H.

/D=iiii[-jjjj]   Default RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used in the
                 default manner (either shadow RAM or paged EMS memory,
                 depending on the value of the /Z parameter).  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to single 16K
                 page frame containing address iiii.  The /D parameter
                 may be repeated as many times as desired.

/E=size          Extended memory emulation.  With this parameter, you
                 can use part of the expanded memory to emulate extended
                 memory, so that you can run extended memory programs
                 such as VDISK.SYS.  size is a decimal number that gives
                 the desired amount of extended memory, in kilobytes.
                 The minimum allowed value is 0, and the maximum is
                 14336.  If /E is omitted, it defaults to 0.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/H=handles       Number of EMS handles.  This controls a resource that
                 is used by EMS applications.  handles is a decimal
                 number.  The minimum allowed value is 32, and the
                 maximum is 255.  If /H is omitted, the default is 64.

/I=iiii[-jjjj]   Include memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as paged
                 EMS memory.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /I parameter may be repeated as many times as desired.
                 /I is not valid if you specify /Z=2.

/J=port          The I/O address that you specified for the Invisible
                 EMS memory board.  Refer to the Invisible EMS
                 instruction manual for instructions on how to set the
                 board's I/O address.  The only allowed values for port
                 are 208, 218, 248, 258, 2A8, 2B8, 2E8, and 2F8.  If /J
                 is omitted, it defaults to 208.

/K=frames        Number of 16K page frames in the standard EMS area.
                 frames is a decimal number.  The minimum allowed value
                 is 2, and the maximum is 12.  If /K is omitted, it
                 defaults to 4.  Note -- Most EMS applications won't
                 work if /K has a value other than 4.

/L               Force driver into low memory.  If you create any shadow
                 RAM (with the /S or /Z parameter), the memory manager
                 automatically copies itself into the shadow RAM, in
                 order to free up DOS memory.  If you include /L, the
                 memory manager does not copy itself into shadow RAM.
                 (If you don't create any shadow RAM, the /L parameter
                 is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/P=page          Create non-standard physical page.  page is a decimal
                 number;  the only allowed values are 254 and 255.  This
                 parameter is only useful for IBM DOS 4.0 (not MS-DOS
                 4.0), if you want to place DOS BUFFERS, FASTOPEN, or
                 VDISK into expanded memory.  The /P parameter may be
                 repeated.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to the single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Z=config        System configuration.  The only allowed values of
                 config are 0, 1, and 2.  /Z=0 selects expanded memory
                 only, with no shadow RAM.  /Z=1 selects expanded memory
                 and shadow RAM.  /Z=2 selects shadow RAM only, with no
                 expanded memory.  If /Z is omitted, it defaults to
                 /Z=0.  The /Z parameter can be overridden or modified
                 by the /I, /R, /S, and /X parameters.



------------------------------------------------------------------------



6.  INSTALLING INVISIBLE RAM FOR GENERIC EMS

The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for Generic EMS.

To use this version of Invisible RAM, you need a computer equipped with
expanded memory, compatible with EMS (Expanded Memory Specification)
version 4.0.

When using this version of Invisible RAM, you need to install the
expanded memory manager for your expanded memory hardware, and then
install Invisible RAM "on top of" the expanded memory manager.
Invisible RAM adds shadow RAM and frontfill functions to your expanded
memory.


To install Invisible RAM for generic EMS, place the following line into
the CONFIG.SYS file:

        DEVICE=GEMSSRM.SYS [parameters]

The GEMSSRM.SYS line should come immediately after the line that
installs the expanded memory manager.

The optional parameters may include the following:

/D=iiii[-jjjj]   Default RAM memory area.  For generic EMS, this
                 parameter performs the same function as /S.  See the
                 description of /S below.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/L               Force driver into low memory.  If you create any shadow
                 RAM, the Invisible RAM software automatically copies
                 itself into the shadow RAM, in order to free up DOS
                 memory.  If you include /L, the Invisible RAM software
                 does not copy itself into shadow RAM.  (If you don't
                 create any shadow RAM, the /L parameter is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Z=config        System configuration.  The only allowed values of
                 config are 1 and 2.  /Z=1 selects expanded memory and
                 shadow RAM;  this converts enhanced EMS page frames
                 into shadow RAM while leaving standard EMS page frames
                 untouched, so the expanded memory manager can still
                 operate.  /Z=2 selects shadow RAM only, with no
                 expanded memory;  this converts all EMS page frames
                 into shadow RAM, and disables the expanded memory
                 manager.  If /Z is omitted, it defaults to /Z=1.  The
                 /Z parameter can be overridden or modified by the /R,
                 /S, and /X parameters.



------------------------------------------------------------------------



7.  INSTALLING INVISIBLE RAM FOR THE SCAT CHIPSET


The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for the SCAT chipset.

To use this version of Invisible RAM, you need a 286 computer with the
SCAT chipset made by Chips and Technologies, and at least 1 megabyte of
RAM.


To install Invisible RAM on the SCAT chipset, place the following line
into the CONFIG.SYS file:

        DEVICE=SCATEMM.SYS [parameters]

where the optional parameters may include the following:

/A=addr          The starting address of the standard EMS area.  addr is
                 a segment address, in hexadecimal.

/C=contexts      The number of EMS context save areas.  This controls a
                 resource that is used by EMS applications.  contexts is
                 a decimal number.  The minimum allowed value is 32, and
                 the maximum allowed value is 255.  If /C is omitted, it
                 defaults to the value of /H.

/D=iiii[-jjjj]   Default RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used in the
                 default manner (either shadow RAM or paged EMS memory,
                 depending on the value of the /Z parameter).  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to single 16K
                 page frame containing address iiii.  The /D parameter
                 may be repeated as many times as desired.  Caution --
                 If there is any ROM in the page frames, the ROM is
                 disabled.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/H=handles       Number of EMS handles.  This controls a resource that
                 is used by EMS applications.  handles is a decimal
                 number.  The minimum allowed value is 32, and the
                 maximum is 255.  If /H is omitted, the default is 64.

/I=iiii[-jjjj]   Include memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as paged
                 EMS memory.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /I parameter may be repeated as many times as desired.
                 /I is not valid if you specify /Z=2.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/K=frames        Number of 16K page frames in the standard EMS area.
                 frames is a decimal number.  The minimum allowed value
                 is 2, and the maximum is 12.  If /K is omitted, it
                 defaults to 4.  Note -- Most EMS applications won't
                 work if /K has a value other than 4.

/L               Force driver into low memory.  If you create any shadow
                 RAM (with the /S or /Z parameter), the expanded memory
                 manager automatically copies itself into the shadow
                 RAM, in order to free up DOS memory.  If you include
                 /L, the expanded memory manager does not copy itself
                 into shadow RAM.  (If you don't create any shadow RAM,
                 the /L parameter is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/P=page          Create non-standard physical page.  page is a decimal
                 number;  the only allowed values are 254 and 255.  This
                 parameter is only useful for IBM DOS 4.0 (not MS-DOS
                 4.0), if you want to place DOS BUFFERS, FASTOPEN, or
                 VDISK into expanded memory.  The /P parameter may be
                 repeated.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to the single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.  Caution -- If there
                 is any ROM in the page frames, the ROM is disabled.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Y=iiii[-jjjj]   ROM copy memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are filled with RAM
                 that contains a copy of any ROMs within the page
                 frames.  This speeds up the execution of ROM code.  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to the single 16K
                 page frame containing address iiii.  The /Y parameter
                 may be repeated as many times as desired.

/Z=config        System configuration.  The only allowed values of
                 config are 0, 1, and 2.  /Z=0 selects expanded memory
                 only, with no shadow RAM.  /Z=1 selects expanded memory
                 and shadow RAM.  /Z=2 selects shadow RAM only, with no
                 expanded memory.  If /Z is omitted, it defaults to
                 /Z=0.  The /Z parameter can be overridden or modified
                 by the /I, /R, /S, /X, and /Y parameters.



------------------------------------------------------------------------



8.  INSTALLING INVISIBLE RAM FOR THE PEAK CHIPSET


The following shows the CONFIG.SYS commands to use when installing
Invisible RAM for the PEAK chipset.

To use this version of Invisible RAM, you need a 386 or 486 computer
with the PEAK chipset made by Chips and Technologies, and at least 1
megabyte of RAM.


To install Invisible RAM on the PEAK chipset, place the following line
into the CONFIG.SYS file:

        DEVICE=PEAKSRM.SYS [parameters]

where the optional parameters may include the following:

/D=iiii[-jjjj]   Default RAM memory area.  For the PEAK chipset, this
                 parameter performs the same function as /S.  See the
                 description of /S below.

/F=size          Frontfill size.  size is a decimal number giving the
                 desired size of DOS memory, in kilobytes.  A value of 0
                 can be specified to request that the size of DOS memory
                 not be changed.  If /F is omitted, the default is to
                 make DOS memory as large as possible.  The /F parameter
                 cannot be used to reduce the size of DOS memory below
                 its original value.

/L               Force driver into low memory.  If you create any shadow
                 RAM, the Invisible RAM software automatically copies
                 itself into the shadow RAM, in order to free up DOS
                 memory.  If you include /L, the Invisible RAM software
                 does not copy itself into shadow RAM.  (If there isn't
                 any shadow RAM, then /L is ignored.)

/N=location      Network ROM data location.  If you enable the
                 TransBIOS/NetBIOS ROM on the network card, it allocates
                 a data segment at the top of conventional DOS memory.
                 Invisible RAM can optionally move the data segment to
                 another location.  If you specify /N=0, the data
                 segment is not moved.  If you specify /N=1, the data
                 segment is moved to shadow RAM if possible;  if there
                 isn't enough shadow RAM, then the data segment is moved
                 to low DOS memory instead.  If you specify /N=2, the
                 data segment is always moved to low DOS memory.  The
                 default is /N=2.  If you don't use the
                 TransBIOS/NetBIOS ROM, then /N is ignored.

/R=iiii[-jjjj]   High RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged high RAM.  The square brackets indicate that
                 jjjj is optional;  if jjjj is omitted, the parameter
                 refers to single 16K page frame containing address
                 iiii.  The /R parameter may be repeated as many times
                 as desired.  Note -- High RAM can only be used by
                 specially designed applications.  Caution -- If there
                 is any ROM in the page frames, the ROM is disabled.

/S=iiii[-jjjj]   Shadow RAM memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are used as
                 non-paged shadow RAM.  The square brackets indicate
                 that jjjj is optional;  if jjjj is omitted, the
                 parameter refers to the single 16K page frame
                 containing address iiii.  The /S parameter may be
                 repeated as many times as desired.  Note -- Shadow RAM
                 can be used to hold DOS device drivers and TSRs (using
                 the programs LSHADOW.COM and LSHADOW.SYS), as well as
                 the Invisible LAN network software.  Caution -- If
                 there is any ROM in the page frames, the ROM is
                 disabled.

/T=level         Memory test level.  The only allowed values of level
                 are 0, 1, and 2.  /T=0 forces the program to always use
                 the short memory test.  /T=2 forces the program to
                 always use the long memory test.  /T=1 makes the
                 program use the long test following a cold boot
                 (power-on), and the short test following a warm boot
                 (Ctrl-Alt-Del).  If /T is omitted, the default is 1.

/U               Upper memory support.  If you include /U, Invisible RAM
                 allows applications to allocate shadow RAM with XMS
                 function calls.  The main use of /U is to allow
                 Invisible RAM to act as an upper memory provider for
                 DOS 5.0, so you can use the DOS=UMB command.

/V=state         VGA or EGA high-resolution graphics enable state.  The
                 only allowed values of state are 0 and 1.  /V=0
                 disables high-resolution graphics, allowing DOS memory
                 to increase above 640K.  /V=1 enables high-resolution
                 graphics, limiting DOS memory to a maximum of 640K.  In
                 either case, the VGAON and VGAOFF programs can be used
                 to enable and disable high-resolution graphics as
                 needed.  If /V is omitted, it defaults to 1.  If you
                 don't have a VGA or EGA video system, /V is ignored.

/X=iiii[-jjjj]   Exclude memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are excluded from
                 use.  The square brackets indicate that jjjj is
                 optional;  if jjjj is omitted, the parameter refers to
                 the single 16K page frame containing address iiii.  The
                 /X parameter may be repeated as many times as desired.


/Y=iiii[-jjjj]   ROM copy memory area.  iiii and jjjj are segment
                 addresses, in hexadecimal.  All 16K page frames that
                 overlap the specified address range are filled with RAM
                 that contains a copy of any ROMs within the page
                 frames.  This speeds up the execution of ROM code.  The
                 square brackets indicate that jjjj is optional;  if
                 jjjj is omitted, the parameter refers to the single 16K
                 page frame containing address iiii.  The /Y parameter
                 may be repeated as many times as desired.



------------------------------------------------------------------------


9.  BYPASSING INVISIBLE RAM


You can prevent Invisible RAM from installing itself by pressing the
Ctrl-Alt-Shift keys.  You must press Ctrl-Alt-Shift before the Invisible
RAM message appears on the screen, and you must hold the keys down until
Invisible RAM tells you that it is not installing.

This feature is useful if you accidentally give incorrect parameters in
the DEVICE= statements that install Invisible RAM.  Sometimes, incorrect
parameters can prevent your system from booting.  By pressing
Ctrl-Alt-Shift, you should be able to boot the system.  (You can always
boot the system successfully by turning off the computer, placing your
original DOS diskette in drive A:, and then turning on the computer).



------------------------------------------------------------------------



10.  MEMORY MANAGER PARAMETER EXAMPLES


This section gives examples and additional details of the memory manager
parameters.

Due to differences in the memory hardware, each version of Invisible RAM
accepts slightly different parameters.  Refer to the previous sections
for information on which parameters are accepted by which versions of
Invisible RAM.



10.1.  PAGE FRAMES


To use the various parameters, you need to understand something about
page frames and the types of memory that Invisible RAM can create.

The IBM PC can address a total of 1024K of memory.  Invisible RAM
divides this 1024K into 64 page frames, each 16K in size.  The first
page frame occupies segments 0000-03FF, the second page frame occupies
segments 0400-07FF, and so on;  the last (sixty-fourth) page frame
occupies segments FC00-FFFF.

Within each page frame, Invisible RAM can potentially create one of four
types of memory:

     * Paged EMS memory.  A page frame set up as paged EMS memory can
       access any 16K of expanded memory.  In effect, the page frame
       acts as a "window" into the expanded memory.  The window can be
       moved under software control.  Page frames set up as paged EMS
       memory can be used by any application that is designed to use
       expanded memory.

     * Shadow RAM.  A page frame set up as shadow RAM contains a fixed
       16K block of memory.  Page frames set up as shadow RAM can be
       used to load DOS device drivers and TSRs (terminate-stay-resident
       programs) outside of DOS memory.  The programs LSHADOW.COM and
       LSHADOW.SYS provide access to shadow RAM.  Invisible LAN can also
       load itself into shadow RAM.

     * High RAM.  A page frame set up as high RAM contains a fixed 16K
       block of memory.  High RAM is very similar to shadow RAM, except
       that high RAM cannot be accessed with the LSHADOW programs.  High
       RAM can only be used by specially-designed application programs.

     * ROM Copy.  A page frame set up as ROM copy is filled with RAM
       that contains a copy of whatever ROM was originally located in
       the page frame;  the ROM itself is disabled.  This speeds up the
       execution of ROM code, because RAM is faster than ROM.

The biggest difference among the seven versions of Invisible RAM is
their capabilities and limitations in how page frames can be used. 
Here is a summary of the differences:

     * Invisible RAM for the NEAT chipset can create shadow RAM, high
       RAM, or ROM copy in any of the 24 page frames in segments
       A000-FFFF.  In addition, it can create paged EMS memory in the 4
       of the page frames in segments C000-EFFF (you use your computer's
       setup program to specify which 4 page frames can be used as paged
       EMS memory).

     * Invisible RAM for the AT/386 chipset can create shadow RAM, high
       RAM, or ROM copy in any of the 24 page frames in segments
       A000-FFFF.  AT/386 does not support paged EMS memory.

     * Invisible RAM 386 (for 386 virtual mode) is the most flexible.
       It can use all 64 page frames, and it can make any type of memory
       in each page frame.

     * Invisible RAM for the Invisible EMS memory board can create paged
       EMS memory, shadow RAM, or high RAM in any available page frame
       (it cannot create ROM copy).  However, the available page frames
       are limited by the design of the computer.  In most cases, the
       available page frames occupy one of the following address ranges:
       A000-DFFF;  or A000-EFFF;  or 8000-DFFF;  or 8000-EFFF.

     * Invisible RAM for Generic EMS can create shadow RAM or high RAM
       in any available page frame (it cannot create ROM copy).
       Creation of paged EMS memory is not an issue for Generic EMS,
       since the underlying expanded memory manager provides paged EMS
       memory.  The available page frames are determined by the expanded
       memory manager.

     * Invisible RAM for the SCAT chipset can create shadow RAM, high
       RAM, or ROM copy in any of the 24 page frames in segments
       A000-FFFF.  In addition, it can create paged EMS memory in the 32
       page frames in segments 4000-9FFF and D000-EFFF.

     * Invisible RAM for the PEAK chipset can create shadow RAM, high
       RAM, or ROM copy in any of the 24 page frames in segments
       A000-FFFF.  PEAK does not support paged EMS memory.



10.2.  /Z -- SYSTEM CONFIGURATION


The /Z parameter selects one of three basic configurations.  In effect,
/Z establishes the default configuration for Invisible RAM.  The other
parameters act to modify the default configuration selected by /Z.

/Z=0 selects an expanded memory only configuration, with no shadow RAM.
Invisible RAM creates paged EMS memory in as many page frames as
possible.

/Z=1 selects a configuration that supports both expanded memory and
shadow RAM.  Invisible RAM locates all available page frames.  Four of
the page frames are set up as paged EMS memory, and the rest are set up
as shadow RAM.

/Z=2 selects a shadow RAM only configuration, with no expanded memory
support.  Invisible RAM locates all available page frames, and sets them
up as shadow RAM.  This configuration creates an additional 64K of
shadow RAM, as compared to /Z=1.


Note -- The AT/386 and PEAK versions of Invisible RAM do not support the
/Z parameter;  they always act as if you had specified /Z=2.

Note -- The Generic EMS version of Invisible RAM does not support /Z=0.
Both /Z=1 and /Z=2 are supported;  if you specify /Z=2 then the
underlying expanded memory manager is disabled.



10.3.  /D, /I, /R, /S, /X, /Y -- MEMORY ALLOCATION CONTROL


The /D, /I, /R, /S, /X, and /Y parameters let you change the default
behavior selected by the /Z parameter.  With these parameters, you can
specify the type of memory to be created in each page frame.  Each
parameter includes a range of addresses that selects one or more page
frames.

Note -- You can display a complete memory map of your system by giving
the command

        SHADOW /M

This memory map can help you figure out how to customize your memory 
allocation.



10.3.1.  THE /X PARAMETER -- EXCLUDE PAGE FRAMES


The /X parameter lets you exclude one or more page frames. This 
means Invisible RAM does not use the specified page frames.

Normally, Invisible RAM automatically excludes all page frames that 
are already used by other equipment in the computer. However, Invisible 
RAM may not be able to detect all other equipment in the computer. 
With /X, you can tell Invisible RAM not to use page frames that 
are required for other equipment.


Example -- A VGA video board can support both color and monochrome video
modes, regardless of what type of monitor you use.  In color text mode,
memory locations B800-BFFF contain video RAM, while memory locations
B000-B7FF are "empty." In monochrome text mode, memory locations
B000-B7FF contain video RAM, while memory locations B800-BFFF are
"empty." Normally, when Invisible RAM is loaded, it takes over the
"empty" half of the video RAM area (B000-BFFF).  This causes a conflict,
and crashes the system, if you switch from color to monochrome mode or
vice-versa.  So, if you need to switch between color and monochrome
modes on a VGA, you need to exclude the entire video RAM area from B000
to BFFF, as follows (depending on your memory hardware):

        DEVICE=NEATEMM.SYS /X=B000-BFFF

        DEVICE=A386SRM.SYS /X=B000-BFFF

        DEVICE=C386EMM.SYS /X=B000-BFFF

        DEVICE=IEMSEMM.SYS /X=B000-BFFF

        DEVICE=GEMSSRM.SYS /X=B000-BFFF

        DEVICE=SCATEMM.SYS /X=B000-BFFF

        DEVICE=PEAKSRM.SYS /X=B000-BFFF


Example -- The IBM VGA graphics adapter uses memory locations CA00-CA7F.
(Non-IBM graphics adapters do not use these locations.  Also, the VGA
that is built in to IBM PS/2 computers does not use these locations.)
Invisible RAM is not able to detect this memory usage, and so it won't
automatically exclude these locations.  So, if you have an IBM VGA
graphics adapter, you must use the /X parameter as follows (depending on
which hardware you have):

        DEVICE=NEATEMM.SYS /X=CA00-CA7F

        DEVICE=A386SRM.SYS /X=CA00-CA7F

        DEVICE=C386EMM.SYS /X=CA00-CA7F

        DEVICE=IEMSEMM.SYS /X=CA00-CA7F

        DEVICE=GEMSSRM.SYS /X=CA00-CA7F

        DEVICE=SCATEMM.SYS /X=CA00-CA7F

        DEVICE=PEAKSRM.SYS /X=CA00-CA7F

In this example, the /X parameter actually excludes the entire page
frame C800-CBFF.  So the above commands are actually equivalent to any
of the following commands (depending on the type of hardware in use):

        DEVICE=NEATEMM.SYS /X=C800-CBFF

        DEVICE=NEATEMM.SYS /X=CA00

        DEVICE=NEATEMM.SYS /X=C800

        DEVICE=A386SRM.SYS /X=C800-CBFF

        DEVICE=A386SRM.SYS /X=CA00

        DEVICE=A386SRM.SYS /X=C800

        DEVICE=C386EMM.SYS /X=C800-CBFF

        DEVICE=C386EMM.SYS /X=CA00

        DEVICE=C386EMM.SYS /X=C800

        DEVICE=IEMSEMM.SYS /X=C800-CBFF

        DEVICE=IEMSEMM.SYS /X=CA00

        DEVICE=IEMSEMM.SYS /X=C800

        DEVICE=GEMSSRM.SYS /X=C800-CBFF

        DEVICE=GEMSSRM.SYS /X=CA00

        DEVICE=GEMSSRM.SYS /X=C800

        DEVICE=SCATEMM.SYS /X=C800-CBFF

        DEVICE=SCATEMM.SYS /X=CA00

        DEVICE=SCATEMM.SYS /X=C800

        DEVICE=PEAKSRM.SYS /X=C800-CBFF

        DEVICE=PEAKSRM.SYS /X=CA00

        DEVICE=PEAKSRM.SYS /X=C800


Example -- Many debugger boards (for example, Periscope) use memory
locations that cannot be detected by Invisible RAM.  If the debugger
board uses memory locations D000-D7FF, and you also have an IBM VGA
adapter, you would include the /X parameter as follows:

        DEVICE=NEATEMM.SYS /X=D000-D7FF /X=CA00

        DEVICE=A386SRM.SYS /X=D000-D7FF /X=CA00

        DEVICE=C386EMM.SYS /X=D000-D7FF /X=CA00

        DEVICE=IEMSEMM.SYS /X=D000-D7FF /X=CA00

        DEVICE=GEMSSRM.SYS /X=D000-D7FF /X=CA00

        DEVICE=SCATEMM.SYS /X=D000-D7FF /X=CA00

        DEVICE=PEAKSRM.SYS /X=D000-D7FF /X=CA00


Example -- This example applies only to Invisible RAM 386, Invisible
EMS, and Generic EMS.  If you have EGA or VGA graphics, Invisible RAM by
default uses memory locations A000-AFFF as shadow RAM.  This allows you
to disable and enable high-resolution graphics with the VGAOFF and VGAON
programs.  If you never disable high-resolution graphics, you can free
up an additional 64K of expanded memory by telling Invisible RAM not to
use memory locations A000-AFFF.  To do this, use /X as shown:

        DEVICE=C386EMM.SYS /X=A000-AFFF

        DEVICE=IEMSEMM.SYS /X=A000-AFFF

        DEVICE=GEMSSRM.SYS /X=A000-AFFF


Note -- There is a special consideration in using the exclude parameter
with Invisible RAM for Generic EMS.  With Generic EMS, there is an
underlying expanded memory manager.  Most memory managers have an
"exclude" parameter of their own.  If you need to exclude some memory,
it is probably better to put the exclude parameter on the underlying
expanded memory manager instead of Invisible RAM, if possible.



10.3.2.  THE /D PARAMETER -- CREATE DEFAULT MEMORY


The /D parameter lets you tell Invisible RAM to use one or more page
frames.  Invisible RAM uses the page frame in the default manner;  that
is, Invisible RAM uses the page frame for either paged EMS memory or
shadow RAM, depending on the value of the /Z parameter.

By default, Invisible RAM locates all available page frames and uses
them in the default manner.  So the main use for /D is to tell Invisible
RAM to use a page frame where Invisible RAM can't tell that the page
frame is available.


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  With monochrome video,
segments B000-B7FF are used as video RAM.  However, with some monochrome
video boards, segments B400-B7FF are never used by the video system.
You can let Invisible RAM use these segments by specifying

        DEVICE=NEATEMM.SYS /D=B400

        DEVICE=A386SRM.SYS /D=B400

        DEVICE=C386EMM.SYS /D=B400

        DEVICE=SCATEMM.SYS /D=B400

        DEVICE=PEAKSRM.SYS /D=B400


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  With color video,
segments B800-BFFF are used as video RAM.  However, with some color
video boards, segments BC00-BFFF are never used by the video system.
You can let Invisible RAM use these segments by specifying

        DEVICE=NEATEMM.SYS /D=BC00

        DEVICE=A386SRM.SYS /D=BC00

        DEVICE=C386EMM.SYS /D=BC00

        DEVICE=SCATEMM.SYS /D=BC00

        DEVICE=PEAKSRM.SYS /D=BC00


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  Many computers have a
setup program in ROM, occupying segments F000-F7FF.  The setup program
is not required during normal computer operation.  Therefore, you can
make an additional 32K available to Invisible RAM by entering

        DEVICE=NEATEMM.SYS /D=F000-F7FF

        DEVICE=A386SRM.SYS /D=F000-F7FF

        DEVICE=C386EMM.SYS /D=F000-F7FF

        DEVICE=SCATEMM.SYS /D=F000-F7FF

        DEVICE=PEAKSRM.SYS /D=F000-F7FF


Example -- This example applies to Invisible EMS.  Some AT-type
computers allow the use of segments E000-EFFF, and some don't.  By
default, Invisible EMS does not use segments E000-EFFF when installed in
an AT-type computer.  If your computer allows the use of segments
E000-EFFF, you can tell Invisible EMS to use these segments with

        DEVICE=IEMSEMM.SYS /D=E000-EFFF



10.3.3.  THE /I PARAMETER -- CREATE PAGED EMS MEMORY


The /I parameter lets you set up one or more page frames as paged EMS
memory.  This means applications designed to use expanded memory are
able to use the page frames.

This parameter is only valid for Invisible RAM 386, Invisible EMS, and
the SCAT chipset.  (For the NEAT chipset, the location of paged EMS
memory is determined by your computer's setup program.)

By default, Invisible RAM sets up all unused page frames as paged EMS
memory or shadow RAM.  So the two main uses for /I are:

     * To create paged EMS memory in a page frame where Invisible RAM
       can't tell that the page frame is available.

     * To create paged EMS memory in a page frame that the /Z parameter
       would otherwise set up as shadow RAM.


Example -- This example applies to Invisible RAM 386 and the SCAT
chipset.  With monochrome video, segments B000-B7FF are used as video
RAM.  However, with some monochrome video boards, segments B400-B7FF can
be converted into paged EMS memory.  Specify

        DEVICE=C386EMM.SYS /I=B400

        DEVICE=SCATEMM.SYS /I=B400


Example -- This example applies to Invisible RAM 386 and the SCAT
chipset.  With color video, segments B800-BFFF are used as video RAM.
However, with some color video boards, segments BC00-BFFF can be
converted into paged EMS memory.  Specify

        DEVICE=C386EMM.SYS /I=BC00

        DEVICE=SCATEMM.SYS /I=BC00


Example -- This example applies to Invisible EMS.  Some AT-type
computers allow the use of segments E000-EFFF, and some don't.  By
default, Invisible EMS does not use segments E000-EFFF when installed in
an AT-type computer.  If your computer allows the use of segments
E000-EFFF, you can tell Invisible EMS to create paged EMS memory in
these segments with

        DEVICE=IEMSEMM.SYS /I=E000-EFFF


Example -- EGA and VGA graphics adapters use segments A000-AFFF for
high-resolution graphics.  By default, Invisible RAM sets up these
segments as shadow RAM, so that you can use high-resolution graphics.
If you want to use segments A000-AFFF as paged EMS memory, you can use
the /I parameter as shown below.  Note that using A000-AFFF as paged EMS
memory permanently disables the high-resolution graphics;  you can't use
VGAON.  (Refer to Chapter 20 for additional information on using EGA or
VGA graphics.)

        DEVICE=C386EMM.SYS /I=A000-AFFF

        DEVICE=IEMSEMM.SYS /I=A000-AFFF

        DEVICE=SCATEMM.SYS /I=A000-AFFF



10.3.4.  THE /S PARAMETER -- CREATE SHADOW RAM


The /S parameter lets you set up one or more page frames as shadow RAM.
The shadow RAM can be used to hold memory-resident programs and device
drivers, thus freeing up DOS memory.  The LSHADOW programs allow access
to the shadow RAM.  Shadow RAM can also be used for the Invisible LAN
operating system, by specifying the appropriate parameters in the
Invisible LAN initialization file.

In most cases, you can allocate required shadow RAM with the /Z=1 or
/Z=2 parameters.  So the two main uses for /S are:

     * To create shadow RAM in a page frame where Invisible RAM can't
       tell that the page frame is available.

     * To create shadow RAM in a page frame that the /Z parameter would
       otherwise set up as paged EMS memory.


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  With some monochrome
video boards, you can get an extra 16K bytes of shadow RAM by turning on
shadow RAM in the region from B400 to B7FF.  Specify

        DEVICE=NEATEMM.SYS /S=B400

        DEVICE=A386SRM.SYS /S=B400

        DEVICE=C386EMM.SYS /S=B400

        DEVICE=SCATEMM.SYS /S=B400

        DEVICE=PEAKSRM.SYS /S=B400


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  With some color video
boards, you can get an extra 16K bytes of shadow RAM by turning on
shadow RAM in the region from BC00 to BFFF.  Specify

        DEVICE=NEATEMM.SYS /S=BC00

        DEVICE=A386SRM.SYS /S=BC00

        DEVICE=C386EMM.SYS /S=BC00

        DEVICE=SCATEMM.SYS /S=BC00

        DEVICE=PEAKSRM.SYS /S=BC00


Example -- This example applies to NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.  Many computers have a
setup program in ROM, occupying segments F000-F7FF.  The setup program
is not required during normal computer operation.  Therefore, you get an
extra 32K of shadow RAM with

        DEVICE=NEATEMM.SYS /S=F000-F7FF

        DEVICE=A386SRM.SYS /S=F000-F7FF

        DEVICE=C386EMM.SYS /S=F000-F7FF

        DEVICE=SCATEMM.SYS /S=F000-F7FF

        DEVICE=PEAKSRM.SYS /S=F000-F7FF


Example -- This example applies to Invisible EMS.  Some AT-type
computers allow the use of segments E000-EFFF, and some don't.  By
default, Invisible EMS does not use segments E000-EFFF when installed in
an AT-type computer.  If your computer allows the use of segments
E000-EFFF, you get an extra 64K of shadow RAM with

        DEVICE=IEMSEMM.SYS /S=E000-EFFF


Example -- This example applies to Invisible RAM 386, Invisible EMS, and
the SCAT chipset.  Suppose you specify /Z=0 (or omit /Z), so that
Invisible RAM creates paged EMS memory in all available page frames.  If
you would like to have 32K of shadow RAM at address C800, you would
specify

        DEVICE=C386EMM.SYS /S=C800-CFFF

        DEVICE=IEMSEMM.SYS /S=C800-CFFF

        DEVICE=SCATEMM.SYS /S=C800-CFFF


Note -- The LSHADOW programs can use shadow RAM much more efficiently if
the shadow RAM is organized in one large, contiguous block, rather than
a number of smaller blocks.  When allocating shadow RAM, try to allocate
large blocks rather than small blocks.



10.3.5.  THE /R PARAMETER -- CREATE HIGH RAM


The /R parameter lets you set up one or more page frames as high RAM.
High RAM cannot be used by expanded memory applications, it cannot be
accessed with the LSHADOW programs, and it cannot be used by Invisible
LAN.  High RAM can only be used by specially-designed programs.

By default, Invisible RAM never creates high RAM.  So, if you want to
have high RAM, you must create it explicitly with the /R parameter.


Example -- Suppose you want 32K of high RAM at address C800.  You would
specify

        DEVICE=NEATEMM.SYS /R=C800-CFFF

        DEVICE=A386SRM.SYS /R=C800-CFFF

        DEVICE=C386EMM.SYS /R=C800-CFFF

        DEVICE=IEMSEMM.SYS /R=C800-CFFF

        DEVICE=GEMSSRM.SYS /R=C800-CFFF

        DEVICE=SCATEMM.SYS /R=C800-CFFF

        DEVICE=PEAKSRM.SYS /R=C800-CFFF



10.3.6.  THE /Y PARAMETER -- CREATE ROM COPY


The /Y parameter lets you copy ROM code into RAM.  The ROM in one or
more page frames is disabled, and replaced with RAM;  and the contents
of the ROM is copied into the RAM.  This speeds up the execution of ROM
code, since RAM is faster than ROM.

This parameter is only valid for NEAT chipset, AT/386 chipset, SCAT
chipset, PEAK chipset, and Invisible RAM 386.

By default, Invisible RAM does not perform any ROM copy;  so if you want
ROM copy, you must explicitly request it with the /Y parameter.
Exception -- If you are using the TransBIOS/NetBIOS ROM on the network
card, Invisible RAM automatically detects it and performs a ROM copy for
the TransBIOS/NetBIOS ROM.


Example -- Many computers have the system BIOS located at addresses
F800-FFFF.  You can speed up the system BIOS by copying it into RAM, as
follows:

        DEVICE=NEATEMM.SYS /Y=F800-FFFF

        DEVICE=A386SRM.SYS /Y=F800-FFFF

        DEVICE=C386EMM.SYS /Y=F800-FFFF

        DEVICE=SCATEMM.SYS /Y=F800-FFFF

        DEVICE=PEAKSRM.SYS /Y=F800-FFFF


Example -- Many EGA or VGA video cards have a video BIOS ROM at
addresses C000-C5FF.  You can speed up video operations by copying it
into RAM, as follows:

        DEVICE=NEATEMM.SYS /Y=C000-C5FF

        DEVICE=A386SRM.SYS /Y=C000-C5FF

        DEVICE=C386EMM.SYS /Y=C000-C5FF

        DEVICE=SCATEMM.SYS /Y=C000-C5FF

        DEVICE=PEAKSRM.SYS /Y=C000-C5FF



10.4.  /A, /K -- STANDARD EMS AREA CONTROL


There are two types of paged EMS page frames:  standard and enhanced.
The standard EMS page frames always form a contiguous block of memory,
called the standard EMS area.

By default, there are four standard EMS page frames, arranged in a
contiguous 64K block.  Invisible RAM automatically selects an
appropriate starting address.  All other EMS page frames automatically
become enhanced EMS page frames.

Most expanded memory applications use only the standard EMS page frames.
Very few require any enhanced EMS page frames.

With the /A and /K parameters, you can customize the location and size
of the standard EMS area.

Note -- These parameters are valid only for Invisible RAM 386, Invisible
EMS, and the SCAT chipset.  In the case of the NEAT chipset, the
location of the standard EMS area is set with your computer's setup
program.



10.4.1.  THE /A PARAMETER -- STANDARD EMS AREA START ADDRESS


The /A parameter specifies the starting address of the standard EMS
area.


Example -- If you would like to place the 64K standard EMS area in
segments E000-EFFF, use

        DEVICE=C386EMM.SYS /A=E000

        DEVICE=IEMSEMM.SYS /A=E000

        DEVICE=SCATEMM.SYS /A=E000


Note -- The /A parameter does not create paged EMS memory.  It only
specifies which paged EMS memory should be used as standard EMS page
frames.  If you need to create paged EMS memory, use the /I parameter in
addition to /A.  (However, if you use /Z=1, the /A parameter specifies
which page frames to use as paged EMS memory;  remaining page frames are
used as shadow RAM.)



10.4.2.  THE /K PARAMETER -- STANDARD EMS AREA SIZE


The /K parameter specifies the size of the standard EMS area.  Normally,
the standard EMS area consists of 4 page frames (64K).  However, with /K
you can adjust the size from a minimum of 2 page frames to a maximum of
12 page frames.  Note that there must be a contiguous block of paged EMS
memory large enough to hold the specified standard EMS area.


Example -- If you would like to make the standard EMS area 2 page frames
(32K) in size, use

        DEVICE=C386EMM.SYS /K=2

        DEVICE=IEMSEMM.SYS /K=2

        DEVICE=SCATEMM.SYS /K=2


Note -- Most expanded memory applications (including Invisible LAN)
won't work if the value of /K is different from 4.



10.5.  /F, /L, /N, /V -- DOS MEMORY CONTROL


By default, Invisible RAM automatically makes DOS memory as large as
possible.  The /F, /L, /N, and /V parameters let you alter this
behavior, if you so desire.



10.5.1.  THE /F PARAMETER -- FRONTFILL SIZE


The /F parameter lets you control the total size of DOS memory.  In most
cases, Invisible RAM automatically increases the size of DOS memory to
704K on a monochrome system, or 736K on a color system.  This process is
called frontfill.  With /F, you can control the amount of frontfill.


Example -- If you want the total DOS memory size to be 672K, use

        DEVICE=NEATEMM.SYS /F=672

        DEVICE=A386SRM.SYS /F=672

        DEVICE=C386EMM.SYS /F=672

        DEVICE=IEMSEMM.SYS /F=672

        DEVICE=GEMSSRM.SYS /F=672

        DEVICE=SCATEMM.SYS /F=672

        DEVICE=PEAKSRM.SYS /F=672


Example -- If you don't want Invisible RAM to change the size of DOS
memory, specify a value of 0 for /F, as shown:

        DEVICE=NEATEMM.SYS /F=0

        DEVICE=A386SRM.SYS /F=0

        DEVICE=C386EMM.SYS /F=0

        DEVICE=IEMSEMM.SYS /F=0

        DEVICE=GEMSSRM.SYS /F=0

        DEVICE=SCATEMM.SYS /F=0

        DEVICE=PEAKSRM.SYS /F=0


Note -- /F cannot be used to reduce the size of DOS memory below its
initial value.

Note -- Page frames not used for frontfill become available for use as
paged EMS memory, shadow RAM, or high RAM.

Note -- If you have VGA or EGA video, you can still specify a value for
/F larger than 640.  When Invisible RAM first loads, DOS memory size is
limited to a maximum of 640K (unless you specify /V=0).  However,
Invisible RAM remembers the value you specified for /F, and DOS memory
size is increased to the specified value when you run VGAOFF.



10.5.2.  THE /L PARAMETER -- FORCE DRIVER INTO LOW MEMORY


When there is shadow RAM in the system not used for frontfill, Invisible
RAM automatically copies itself into the shadow RAM.  This frees up
approximately 9K of additional DOS memory.

If you specify /L, then Invisible RAM does not copy itself into shadow
RAM;  it remains in low DOS memory.  This frees up about 9K of
additional shadow RAM.


Example -- To keep Invisible RAM in low DOS memory, use

        DEVICE=NEATEMM.SYS /L

        DEVICE=A386SRM.SYS /L

        DEVICE=C386EMM.SYS /L

        DEVICE=IEMSEMM.SYS /L

        DEVICE=GEMSSRM.SYS /L

        DEVICE=SCATEMM.SYS /L

        DEVICE=PEAKSRM.SYS /L



10.5.3.  THE /V PARAMETER -- VGA/EGA GRAPHICS STATE


The /V parameter lets you specify whether high-resolution VGA or EGA
graphics should be enabled or disabled.  Disabling high-resolution
graphics allows DOS memory size to be increased above 640K.


Example -- To disable VGA or EGA high-resolution graphics, specify a
value of 0 as shown:

        DEVICE=NEATEMM.SYS /V=0

        DEVICE=A386SRM.SYS /V=0

        DEVICE=C386EMM.SYS /V=0

        DEVICE=IEMSEMM.SYS /V=0

        DEVICE=GEMSSRM.SYS /V=0

        DEVICE=SCATEMM.SYS /V=0

        DEVICE=PEAKSRM.SYS /V=0


Example -- To enable VGA or EGA high-resolution graphics, specify a
value of 1 as shown:

        DEVICE=NEATEMM.SYS /V=1

        DEVICE=A386SRM.SYS /V=1

        DEVICE=C386EMM.SYS /V=1

        DEVICE=IEMSEMM.SYS /V=1

        DEVICE=GEMSSRM.SYS /V=1

        DEVICE=SCATEMM.SYS /V=1

        DEVICE=PEAKSRM.SYS /V=1


Note -- Regardless of the value you specify for /V, you can use VGAON
and VGAOFF to enable and disable high-resolution graphics as needed.

Note -- /V is ignored if you don't have a VGA or EGA video system.



10.5.4.  THE /N PARAMETER -- NETWORK ROM DATA LOCATION


If you enable the TransBIOS/NetBIOS ROM on the network card, then
TransBIOS allocates a data segment at the top of conventional DOS
memory.  For example, if you have 640K DOS memory, Invisible Network
allocates a 32K data segment at addresses 9800-9FFF, and Invisible
Ethernet allocates a 24K data segment at addresses 9A00-9FFF.

This creates two problems.  First, it reduces the size of DOS memory.
Second, it makes frontfill impossible, since increasing the size of DOS
memory would involve overwriting the TransBIOS/NetBIOS data segment.

To overcome these problems, Invisible RAM has the ability to move the
TransBIOS/NetBIOS data segment to another location.  The /N parameter
specifies the location, as follows:

     * /N=0 specifies that the data segment should not be moved.

     * /N=1 specifies that the data segment should be moved into shadow
       RAM, if possible.  If there is insufficient shadow RAM, then the
       data segment is moved into low DOS memory.

     * /N=2 specifies that the data segment should be moved into low DOS
       memory.  This is the default.

When the data segment is moved into shadow RAM, the memory it occupied
is released to DOS.  Thus, you gain 32K of DOS memory with Invisible
Network, or 24K with Invisible Ethernet.  In addition, it becomes
possible to increase (frontfill) the size of DOS memory to more than
640K.

Moving the data segment into low DOS memory does not, in and of itself,
make more memory available to DOS.  The RAM you gain at the top of DOS
memory is lost at the bottom of DOS memory.  However, moving the data
segment into low DOS memory makes it possible to increase (frontfill)
the size of DOS memory to more than 640K.  Thus, the benefit of moving
the data segment into low DOS memory is that Invisible RAM can perform
the frontfill function.

If you are not using the TransBIOS/NetBIOS ROM on the network card, then
the /N parameter is ignored.


Example -- If you are using the TransBIOS/NetBIOS ROM on the network
card, and you want to move the data segment into shadow RAM, use

        DEVICE=NEATEMM.SYS /N=1

        DEVICE=A386SRM.SYS /N=1

        DEVICE=C386EMM.SYS /N=1

        DEVICE=IEMSEMM.SYS /N=1

        DEVICE=GEMSSRM.SYS /N=1

        DEVICE=SCATEMM.SYS /N=1

        DEVICE=PEAKSRM.SYS /N=1



10.6.  /U -- UPPER MEMORY SUPPORT


If you include the /U parameter, Invisible RAM allows other programs to
allocate shadow RAM (also known as "upper memory") using XMS function
calls.  This provides a standardized way for programs to control the
allocation of shadow RAM.  If you don't use /U, then only the LSHADOW
programs and the Invisible LAN programs can allocate shadow RAM.

The most common use of /U is to allow MS-DOS to control the allocation
of shadow RAM.  This requires that you put the command DOS=UMB in the
CONFIG.SYS file.  This topic is discussed further in a later section.


Example -- To enable upper memory support, use

        DEVICE=NEATEMM.SYS /U

        DEVICE=A386SRM.SYS /U

        DEVICE=C386EMM.SYS /U

        DEVICE=IEMSEMM.SYS /U

        DEVICE=GEMSSRM.SYS /U

        DEVICE=SCATEMM.SYS /U

        DEVICE=PEAKSRM.SYS /U



10.7.  /C, /H, /P -- INTERNAL EMS PARAMETERS


The /C, /H, and /P parameters adjust certain internal parameters of the
Expanded Memory Manager.  Generally, they are needed only for special
applications.



10.7.1.  THE /P PARAMETER -- CREATE NON-STANDARD PAGE FRAMES


The /P parameter lets you create enhanced EMS page frames with
non-standard page frame numbers.  This is used only with IBM DOS 4.0
(not with MS-DOS 4.0), to use the expanded memory features of DOS.

This parameter is valid only for Invisible RAM 386, Invisible EMS, and
the SCAT chipset.


Example -- If you want to use VDISK or FASTOPEN in expanded memory, you
must create page number 254, as shown:

        DEVICE=C386EMM.SYS /P=254

        DEVICE=IEMSEMM.SYS /P=254

        DEVICE=SCATEMM.SYS /P=254


Example -- If you want to use BUFFERS in expanded memory, you must
create page number 255, as shown:

        DEVICE=C386EMM.SYS /P=255

        DEVICE=IEMSEMM.SYS /P=255

        DEVICE=SCATEMM.SYS /P=255


Note -- /P does not create paged EMS memory.  It merely specifes that
one of the enhanced EMS page frames should be reserved for DOS (note
that /P can't use a standard EMS page frame).  If necessary, use /I to
create paged EMS memory.



10.7.2.  THE /H PARAMETER -- NUMBER OF EMS HANDLES


The /H parameter controls the number of EMS handles.  Handles are used
by expanded memory application programs to request memory from the
expanded memory manager.  Generally, you need one or two handles for
each expanded memory application that is running concurrently in the
computer.

The default value of /H should be adequate for almost any application.
However, if an application reports that there are no expanded memory
handles available, increase the value of /H.

This parameter is valid for NEAT chipset, SCAT chipset, Invisible RAM
386, and Invisible EMS.


Example -- If you want to have 150 EMS handles, use

        DEVICE=NEATEMM.SYS /H=150

        DEVICE=C386EMM.SYS /H=150

        DEVICE=IEMSEMM.SYS /H=150

        DEVICE=SCATEMM.SYS /H=150



10.7.3.  THE /C PARAMETER -- NUMBER OF EMS CONTEXTS


The /C parameter controls the number of EMS contexts.  Contexts are used
by some (but not all) expanded memory application programs.

The default value of /C should be adequate for almost any application.
However, if an application reports that there are no expanded memory
contexts available, increase the value of /C.

This parameter is valid for NEAT chipset, SCAT chipset, Invisible RAM
386, and Invisible EMS.


Example -- If you want to have 220 EMS contexts, use

        DEVICE=NEATEMM.SYS /C=220

        DEVICE=C386EMM.SYS /C=220

        DEVICE=IEMSEMM.SYS /C=220

        DEVICE=SCATEMM.SYS /C=220



10.8.  /E -- EXTENDED MEMORY EMULATION


The /E parameter is used only with Invisible EMS.  It lets you use part
of your expanded memory to emulate extended memory.  This lets you run
extended memory applications, such as the VDISK RAMDISK program.

Any expanded memory used by /E is not available for use by expanded
memory applications.

Note -- Don't use /E if there is any actual extended memory in your
system.  /E is not valid if you specify /Z=2.


Example -- To use 512K of expanded memory as extended memory, use

        DEVICE=IEMSEMM.SYS /E=512

In this example, you could use VDISK to make a 512K RAMDISK as follows:

        DEVICE=IEMSEMM.SYS /E=512
        DEVICE=VDISK.SYS 512 128 256 /E:8

On the VDISK command line, 512 is the size of the RAMDISK (in
kilobytes), 128 is the sector size (in bytes), 256 is the number of
directory entries, and /E:8 tells VDISK to use extended memory.


Technical note -- The extended memory emulator only works with programs
that access extended memory through interrupt INT 15H functions 87H and
88H.  It does not work with programs that actually switch the processor
into protected mode.



10.9.  /J, /T -- HARDWARE CONFIGURATION AND TEST


The /J and /T parameters specify the configuration and testing of the
memory hardware.



10.9.1.  THE /T PARAMETER -- MEMORY TEST LEVEL


When the memory manager is loaded, it automatically performs a test of
the memory.  Two tests are provided:  a short test and a long test.
Since the long test can take an annoyingly long time, the /T parameter
is provided to let you select the memory test you want.


Example -- If you always want to use the short test, specify a value of
0 as shown:

        DEVICE=NEATEMM.SYS /T=0

        DEVICE=A386SRM.SYS /T=0

        DEVICE=C386EMM.SYS /T=0

        DEVICE=IEMSEMM.SYS /T=0

        DEVICE=GEMSSRM.SYS /T=0

        DEVICE=SCATEMM.SYS /T=0

        DEVICE=PEAKSRM.SYS /T=0


Example -- If you always want to use the long test, specify a value of 2
as shown:

        DEVICE=NEATEMM.SYS /T=2

        DEVICE=A386SRM.SYS /T=2

        DEVICE=C386EMM.SYS /T=2

        DEVICE=IEMSEMM.SYS /T=2

        DEVICE=GEMSSRM.SYS /T=2

        DEVICE=SCATEMM.SYS /T=2

        DEVICE=PEAKSRM.SYS /T=2


Example -- If you specify a value of 1, the memory manager performs the
long test after a cold boot (power-on), and the short test after a warm
boot (Ctrl-Alt-Del).  This is the default.

        DEVICE=NEATEMM.SYS /T=1

        DEVICE=A386SRM.SYS /T=1

        DEVICE=C386EMM.SYS /T=1

        DEVICE=IEMSEMM.SYS /T=1

        DEVICE=GEMSSRM.SYS /T=1

        DEVICE=SCATEMM.SYS /T=1

        DEVICE=PEAKSRM.SYS /T=1


Note -- We have found that with some versions of BIOS, /T=1 always
results in the long test.  If you find this happens on your computer,
simply use /T=0 to get the short test.



10.9.2.  THE /J PARAMETER -- I/O PORT ADDRESS


The /J parameter is used with Invisible EMS, to specify the I/O address
used to access the Invisible EMS board.  The value specified must match
the I/O address you selected with the on-board DIP switch.  If /J is
omitted, it defaults to 208.


Example -- If you selected I/O address 2E8 with the DIP switch, use

        DEVICE=IEMSEMM.SYS /J=2E8



------------------------------------------------------------------------



11.  386 CONTROL PROGRAM PARAMETER EXAMPLES


Invisible RAM 386 is structured differently from the other versions of
Invisible RAM.  Invisible RAM 386 consists of two programs:  a 386
control program, and a memory manager.  The memory manager is called
C386EMM.SYS, and it is configured using the memory manager parameters
described in the previous section.  The 386 control program is called
CP386.SYS, and it has its own parameters, which are described in this
section.

The 386 control program parameters are fairly technical in nature.
Except for allocating extended memory, you will probably not have to
change these parameters from their default values.



11.1.  /E -- EXTENDED MEMORY ALLOCATION


The /E parameter lets you reserve part of your extended memory for use
by extended memory applications, such as the VDISK RAMDISK program and
the Invisible LAN disk cache.  The remainder of your extended memory is
converted into expanded memory and shadow RAM.

The extended memory reserved by /E begins at segment address 10000,
immediately above the first megabyte of memory.  For example, suppose
you have 3 megabytes of extended memory, occupying segments 10000
through 3FFFF.  If you specify /E=1024, then segments 10000 through
1FFFF are reserved for extended memory applications, while segments
20000 through 3FFFF are converted into expanded memory and shadow RAM.


Example -- To reserve 512K of extended memory, use

        STACKS=0,0
        DEVICE=CP386.SYS /E=512
        DEVICE=C386EMM.SYS

In this example, you could use VDISK to make a 512K RAMDISK as follows:

        STACKS=0,0
        DEVICE=CP386.SYS /E=512
        DEVICE=C386EMM.SYS
        DEVICE=VDISK.SYS 512 128 256 /E:8

On the VDISK command line, 512 is the size of the RAMDISK (in
kilobytes), 128 is the sector size (in bytes), 256 is the number of
directory entries, and /E:8 tells VDISK to use extended memory.


Technical note -- The reserved extended memory works with programs that
access extended memory through interrupt INT 15H functions 87H and 88H,
or through DMA.  It does not work with programs that actually switch the
processor into protected mode.



11.2.  /H -- HIGH MEMORY AREA XMS INTERFACE


The /H parameter allows programs to access the high memory area using
the Microsoft XMS interface.

The high memory area is the first 64K of extended memory.  This area of
extended memory is special, because DOS programs can access it directly.
Certain DOS applications, such as Microsoft Windows, are designed to
make use of the high memory area.

Microsoft has developed an interface specification, called XMS, that
allows programs to use the high memory area.  If you include the /H
parameter, CP386 installs an XMS interface;  this allows programs such
as Microsoft Windows to utilize the high memory area.  If you omit the
/H parameter, the XMS interface is not installed.


Example -- To install the XMS interface, use

        STACKS=0,0
        DEVICE=CP386.SYS /H
        DEVICE=C386EMM.SYS


Only one program at a time can use the high memory area.  For this
reason, the /H parameter can include a number which indicates the
minimum size, in kilobytes, that a program must have in order to use the
high memory area.  This allows you to exclude small programs from the
high memory area, thereby ensuring that big programs can obtain access
to the high memory area.  This can optimize your use of memory.


Example -- Suppose that you want to limit the use of the high memory
area to programs that use at least 48K out of the 64K available.  You
would use

        STACKS=0,0
        DEVICE=CP386.SYS /H=48
        DEVICE=C386EMM.SYS


Note -- Microsoft distributes a device driver called HIMEM.SYS that
provides access to the high memory area.  You cannot use HIMEM.SYS with
CP386.  The /H parameter is a replacement for the HIMEM.SYS device
driver.  The number included with the /H parameter is equivalent to the
"/HMAMIN=" parameter supported by HIMEM.SYS.

Note -- When you include the /H parameter, CP386 automatically allocates
64K of extended memory.  It is not necessary to use /E to allocate
extended memory for use as the high memory area.



11.3.  /R -- EMS ALTERNATE REGISTER SETS


The /R parameter selects the number of alternate register sets available
to expanded memory applications.

Expanded memory works by mapping each 16K page frame into any 16K page
of expanded memory.  A register set is simply a complete set of mappings
for all the page frames in the system.  That is, a register set contains
information that specifies which expanded memory page is mapped into
each page frame.

There is always at least one register set.  If there is more than one
register set, then it is possible to quickly switch all the page
mappings simply by switching from one register set to another.  This is
very useful in multitasking systems such as Desqview, because it allows
each task to define its own expanded memory page mappings in a separate
register set.  Then you can switch quickly from one task to another
simply by switching register sets.

The /R parameter specifies the number of register sets to allocate in
addition to the standard register set.


Example -- To allocate 32 alternate register sets (for a total of 33
register sets), use

        STACKS=0,0
        DEVICE=CP386.SYS /R=32
        DEVICE=C386EMM.SYS



11.4.  /S, /Z -- INTERRUPT STACK FRAME ALLOCATION

DOS versions 3.2 and later include a STACKS command that can be placed
in the CONFIG.SYS file.  The STACKS command allocates stack frames that
are used to process hardware interrupts.  Whenever a hardware interrupt
occurs, DOS automatically switches from the application program's stack
to one of the interrupt stack frames.  The reason for this is that many
application programs do not provide enough stack space to handle
hardware interrupts.

The DOS STACKS command includes two parameters that let you specify the
number of interrupt stack frames, and the size (in bytes) of each stack
frame.

CP386.SYS provides its own interrupt stack frames.  When using Invisible
RAM 386, you use the stack frames provided by CP386.SYS, instead of the
stack frames provided by DOS.  To do this, you specify the command
STACKS=0,0 in order to tell DOS not to allocate any interrupt stack
frames.

The /S and /Z parameters replace the two parameters in the DOS STACKS
command.  /S specifies the number of interrupt stack frames to allocate.
/Z specifies the size in bytes of each interrupt stack frame.


Example -- To allocate 32 stack frames, each 256 bytes in size, use

        STACKS=0,0
        DEVICE=CP386.SYS /S=32 /Z=256
        DEVICE=C386EMM.SYS


Note -- DOS versions 3.1 and earlier do not have a STACKS command, and
do not allocate any interrupt stack frames.  When using DOS version 3.1
or earlier, you would not place a STACKS=0,0 command in the CONFIG.SYS
file.  CP386.SYS always allocates its own interrupt stack frames,
regardless of which version of DOS you use.



11.5.  /B -- BIOS SIZE


The system BIOS is a ROM located at the top of memory, that is, at
segments FFFF down.  For example, a 64K BIOS would occupy segments F000
to FFFF.

On many computers, part of the BIOS contains a setup program that is
unnecessary during normal operation.  With the /B parameter, you can
deactivate the unnecessary part of the BIOS, thereby creating more space
for shadow RAM.

The value of /B is the amount of BIOS that must be kept.  For example,
if you specify 32, then only the top 32K of the BIOS is retained (that
is, segments F800-FFFF);  the rest is deactivated.


Example -- Many computers have a 64K BIOS, with a 32K setup program at
addresses F000-F7FF.  You can deactivate the setup program with

        STACKS=0,0
        DEVICE=CP386.SYS /B=32
        DEVICE=C386EMM.SYS


11.6.  /0 TO /7 -- DMA DATA BUFFER ALLOCATION


DMA (Direct Memory Access) is a method for transferring data between the
computer's memory and a peripheral device such as a disk drive, tape
drive, or network.

The computer has several built-in DMA channels which are used to perform
the data transfer.  The number and capabilities of the DMA channels vary
depending on the type of computer you have:

     * On computers with the Industry Standard Architecture (ISA), the
       standard PC AT design, there are seven DMA channels.  Channels 0
       to 3 perform 8-bit data transfers, and are able to transfer up to
       64K bytes in a single operation.  Channels 5 to 7 perform 16-bit
       data transfers, and are able to transfer up to 128K bytes in a
       single operation.  There is no channel 4.

     * On computers with the Micro Channel Architecture (MCA), there are
       eight DMA channels, numbered 0 to 7.  All channels can perform
       either 8-bit or 16-bit data transfers.  When performing 8-bit
       transfers, they are able to transfer up to 64K bytes in a single
       operation.  When performing 16-bit transfers, they are able to
       transfer up to 128K bytes in a single operation.

With CP386 installed, the DMA channels cannot transfer data directly
between an application's memory and a peripheral device.  Instead, CP386
uses a separate data buffer:

     * When transferring data from an application's memory to a
       peripheral device, CP386 first copies the data from the
       application's memory to the data buffer, and then uses DMA to
       transfer the data from the buffer to the peripheral device.

     * When transferring data from a peripheral device to an
       application's memory, CP386 first uses DMA to transfer the data
       from the peripheral device to the data buffer, and then copies
       the data from the buffer to the application's memory.

There is a separate data buffer for each DMA channel.  The buffers are
located in extended memory, so they do not take up any DOS memory.  Each
buffer must be big enough to hold the largest DMA transfer that is ever
performed on the corresponding DMA channel.  For example, the buffer for
DMA channel 2 must be at least as large as the largest DMA transfer that
is ever performed on DMA channel 2.

With the /0 to /7 parameters, you can specify the size of each DMA
channel's data buffer.  /0 specifies the buffer size for DMA channel 0,
/1 specifies the buffer size for DMA channel 1, and so on.  You can
specify a buffer size ranging from 0K to 128K bytes.

The minimum, maximum, and default buffer sizes are determined as
follows:

     * For all channels, the minimum buffer size is 0K, with the
       following two exceptions:  (1) For channel 2, the minimum buffer
       size is 9K.  (2) If the hard disk uses DMA, the minimum buffer
       size for the hard disk's DMA channel is 64K.

     * For channels 0 to 3 on ISA computers, the maximum buffer size is
       64K.

     * For channel 4 on ISA computers, the maximum buffer size is 0K.

     * For channels 5 to 7 on ISA computers, and for channels 0 to 7 on
       MCA computers, the maximum buffer size is 128K.

     * For all channels, the default buffer size is 12K, with the
       following two exceptions:  (1) On ISA computers, the default
       buffer size for channel 4 is 0K.  (2) If the hard disk uses DMA,
       the default buffer size for the hard disk's DMA channel is 64K.

With the /0 to /7 parameters, if you specify a buffer size less than the
permitted minimum, CP386 automatically uses the minimum.  Similarly, if
you specify a buffer size larger than the permitted maximum, CP386
automatically uses the maximum.


Example -- You have a tape drive that uses DMA channel 3.  The tape
drive transfers data 48K bytes at a time.  To specify a buffer size of
48K bytes for DMA channel 3, use

        STACKS=0,0
        DEVICE=CP386.SYS /3=48
        DEVICE=C386EMM.SYS


Example -- You can free up memory by specifying a buffer size of 0K for
unused DMA channels.  This frees up 12K bytes per channel, which becomes
available for use as expanded memory.  For example, if you have no
peripheral devices that use DMA channels 0, 5, 6, or 7, you can use

        STACKS=0,0
        DEVICE=CP386.SYS /0=0 /5=0 /6=0 /7=0
        DEVICE=C386EMM.SYS



------------------------------------------------------------------------



12.  USING INVISIBLE RAM WITH DOS 5.0


DOS 5.0 introduced two new memory management features:  the ability to
load DOS into the high memory area (the first 64K of extended memory),
and the ability to manage upper memory.  This section describes how to
use these new DOS features with Invisible RAM.



12.1.  LOADING DOS HIGH


One of the best features of DOS 5.0 is the ability to load DOS into the
high memory area.  (The high memory area is the first 64K of extended
memory.) The basic procedure for loading DOS high is to place the
following two lines into the CONFIG.SYS file:

        DEVICE = C:\DOS\HIMEM.SYS
        DOS = HIGH

The HIMEM.SYS line installs a device driver that provides an XMS
interface to extended memory.  The DOS=HIGH line tells DOS that it
should use the XMS interface to load itself into the high memory area.

The following paragraphs describe how to load DOS high when using
Invisible RAM.



12.1.1.  INVISIBLE RAM FOR THE NEAT CHIPSET


You must have more than 1024K RAM on your motherboard if you want to
load DOS high and also use Invisible RAM for the NEAT chipset.  Run the
command SHADOW /C to verify the amount of RAM on the motherboard.

You must configure the NEAT chipset so that you have some extended
memory in your system.  This is necessary because HIMEM.SYS requires
extended memory.  Refer to Chapter 17 in the Invisible LAN 2.0 manual
for instructions on configuring the NEAT chipset.

Once the NEAT chipset is correctly configured, you can use HIMEM.SYS and
DOS=HIGH together with Invisible RAM for the NEAT chipset.



12.1.2.  INVISIBLE RAM FOR THE AT/386 CHIPSET


You must have more than 1024K RAM on your motherboard if you want to
load DOS high and also use Invisible RAM for the AT/386 chipset.  Run
the command SHADOW /C to verify the amount of RAM on the motherboard.

No special configuration is required.  You can use HIMEM.SYS and
DOS=HIGH together with Invisible RAM for the AT/386 chipset.



12.1.3.  INVISIBLE RAM 386


You cannot use HIMEM.SYS with Invisible RAM 386.  Instead of using
HIMEM.SYS, you should install Invisible RAM 386 in the CONFIG.SYS file.
Use the /H parameter on the CP386.SYS command line, to enable the high
memory area support in Invisible RAM 386.  For example, your CONFIG.SYS
file might contain the following lines:

        STACKS = 0,0
        DEVICE = CP386.SYS /H
        DEVICE = C386EMM.SYS
        DOS = HIGH

Including /H on the CP386.SYS command line lets you load DOS 5.0 into
the high memory area, just as if you were using HIMEM.SYS.  Remember,
the /H parameter is a replacement for HIMEM.SYS.

If you are using the Invisible LAN disk cache, you should also include
the /E=xxxx parameter with CP386.SYS to reserve some extended memory for
the cache.  Using /E=xxxx with CP386.SYS is just like using /INT15=xxxx
with HIMEM.SYS.  For example, if you want to reserve 1024K of extended
memory for the cache, you could use

        STACKS = 0,0
        DEVICE = CP386.SYS /H /E=1024
        DEVICE = C386EMM.SYS
        DOS = HIGH



12.1.4.  INVISIBLE RAM FOR INVISIBLE EMS


To load DOS high, you need to have some extended memory in your system.
If your computer does not have any extended memory, you can configure
the Invisible EMS board to provide you with 128K of extended memory,
which is enough to load DOS high.  Refer to the Invisible EMS hardware
manual for instructions on configuring the board.

If you have extended memory, you can use HIMEM.SYS and DOS=HIGH together
with Invisible RAM for the Invisible EMS board.



12.1.5.  INVISIBLE RAM FOR GENERIC EMS


To load DOS high, you need to have some extended memory in your system.
If you have extended memory, you can use HIMEM.SYS and DOS=HIGH together
with Invisible RAM for Generic EMS.




12.1.6.  INVISIBLE RAM FOR THE SCAT CHIPSET


You must have more than 1024K RAM on your motherboard if you want to
load DOS high and also use Invisible RAM for the SCAT chipset.  Run the
command SHADOW /C to verify the amount of RAM on the motherboard.

You must configure the SCAT chipset so that you have some extended
memory in your system.  This is necessary because HIMEM.SYS requires
extended memory.  Refer to chapter 18 for instructions on configuring
the SCAT chipset.

Once the SCAT chipset is correctly configured, you can use HIMEM.SYS and
DOS=HIGH together with Invisible RAM for the SCAT chipset.



12.1.7.  INVISIBLE RAM FOR THE PEAK CHIPSET


You must have more than 1024K RAM on your motherboard if you want to
load DOS high and also use Invisible RAM for the PEAK chipset.  Run the
command SHADOW /C to verify the amount of RAM on the motherboard.

No special configuration is required.  You can use HIMEM.SYS and
DOS=HIGH together with Invisible RAM for the PEAK chipset.



12.2.  DOS 5.0 UPPER MEMORY SUPPORT


DOS 5.0 supports the use of upper memory.  Upper memory is the same
thing as shadow RAM;  it is memory located between 640K and 1M that can
be used for loading memory-resident programs and device drivers.

DOS 5.0 includes two new commands to access upper memory.  The LOADHIGH
command is used at the DOS command line to load memory-resident programs
into upper memory.  The DEVICEHIGH command is used in CONFIG.SYS to load
device drivers into upper memory.  The LOADHIGH and DEVICEHIGH commands
are very similar to the LSHADOW.COM and LSHADOW.SYS programs supplied
with Invisible RAM.

If you are using DOS 5.0, you enable upper memory by placing the line
DOS=UMB in the CONFIG.SYS file.  In addition, you also need to install
an upper memory provider program (see the next section for details).

Once you have enabled DOS 5.0's upper memory, Invisible LAN can use
upper memory the same way it uses shadow RAM.  With the Invisible LAN
Setup program, you simply tell Invisible LAN to use shadow RAM.
Invisible LAN will automatically load itself into DOS 5.0 upper memory,
just as it does with Invisible RAM's shadow RAM.  Invisible LAN knows
how to communicate directly with DOS 5.0 to allocate the memory it
needs.

Note -- Never try to use the LOADHIGH command to install Invisible LAN.



12.3.  USING INVISIBLE RAM AS AN UPPER MEMORY PROVIDER


To enable upper memory support, you have to do two things.  You have to
place the line DOS=UMB in the CONFIG.SYS file, and you have to install
an upper memory provider program.  The purpose of the upper memory
provider program is to create the upper memory;  the purpose of the
DOS=UMB command is to tell DOS 5.0 that it should use the upper memory.

DOS 5.0 includes an upper memory provider program for 386 and 486
systems with extended memory.  It is called EMM386.EXE, and was
described in the previous chapter.

You can use Invisible RAM as an upper memory provider, instead of using
EMM386.  All seven versions of Invisible RAM can be used as upper memory
providers.  This lets you have upper memory on systems that do not
support EMM386.  Also, Invisible RAM has some useful features (like the
ability to perform frontfill on a VGA system) that EMM386 doesn't have.

To use Invisible RAM as an upper memory provider, install it as follows:


     * You must install Invisible RAM in CONFIG.SYS.

     * You need to configure Invisible RAM to create shadow RAM.  The
       easiest way to do this is with the /Z parameter. Use /Z=1 to
       create both shadow RAM and expanded memory. Use /Z=2 to create
       shadow RAM only, with no expanded memory.

     * Include the /U parameter on the Invisible RAM command line. The
       /U parameter tells Invisible RAM to convert all the shadow RAM
       into upper memory.

In addition, you can use all the standard Invisible RAM parameters to
control your memory configuration.

The following paragraphs give examples.



12.3.1.  INVISIBLE RAM FOR THE NEAT CHIPSET


To use Invisible RAM for the NEAT chipset as an upper memory provider,
you could place the following lines into your CONFIG.SYS file:

        DEVICE = NEATEMM.SYS /Z=1 /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = NEATEMM.SYS /Z=1 /U
        DOS = HIGH,UMB



12.3.2.  INVISIBLE RAM FOR THE AT/386 CHIPSET


To use Invisible RAM for the AT/386 chipset as an upper memory provider,
you could place the following lines into your CONFIG.SYS file (recall
that the /Z parameter is not valid for the AT/386 chipset):

        DEVICE = A386SRM.SYS /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = A386SRM.SYS /U
        DOS = HIGH,UMB



12.3.3.  INVISIBLE RAM 386


To use Invisible RAM 386 as an upper memory provider, you could place
the following lines into your CONFIG.SYS file:

        STACKS = 0,0
        DEVICE = CP386.SYS
        DEVICE = C386EMM.SYS /Z=1 /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        STACKS = 0,0
        DEVICE = CP386.SYS /H
        DEVICE = C386EMM.SYS /Z=1 /U
        DOS = HIGH,UMB



12.3.4.  INVISIBLE RAM FOR INVISIBLE EMS


To use Invisible RAM for the Invisible EMS board as an upper memory
provider, you could place the following lines into your CONFIG.SYS file:

        DEVICE = IEMSEMM.SYS /Z=1 /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = IEMSEMM.SYS /Z=1 /U
        DOS = HIGH,UMB



12.3.5.  INVISIBLE RAM FOR GENERIC EMS


To use Invisible RAM for Generic EMS as an upper memory provider, you
could place the following lines into your CONFIG.SYS file:

        DEVICE = GEMSSRM.SYS /Z=1 /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might be:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = GEMSSRM.SYS /Z=1 /U
        DOS = HIGH,UMB



12.3.6.  INVISIBLE RAM FOR THE SCAT CHIPSET


To use Invisible RAM for the SCAT chipset as an upper memory provider,
you could place the following lines into your CONFIG.SYS file:

        DEVICE = SCATEMM.SYS /Z=1 /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = SCATEMM.SYS /Z=1 /U
        DOS = HIGH,UMB



12.3.7.  INVISIBLE RAM FOR THE PEAK CHIPSET


To use Invisible RAM for the PEAK chipset as an upper memory provider,
you could place the following lines into your CONFIG.SYS file (note that
the /Z parameter is not valid for the PEAK chipset):

        DEVICE = PEAKSRM.SYS /U
        DOS = UMB

If you also wanted to load DOS high, the CONFIG.SYS file might look like
this:

        DEVICE = C:\DOS\HIMEM.SYS
        DEVICE = PEAKSRM.SYS /U
        DOS = HIGH,UMB
