------------------------------- Installation -----------------------------------

The included 'INSTALL.EXE' program will install properly in most cases, 
although there may be cases where manual modification of the CONFIG.SYS file 
is necessary. For instance, the install program will not remove 3rd party 
mouse drivers from the CONFIG.SYS (i.e. RODENT.SYS, PCLOGIC.SYS, VISION.SYS, 
etc.). It is recommended that the installed options only be changed if 
customization is desired or if troubleshooting is necessary. The INSTALL
program can either be run from a floppy (which is easier) or from a directory
on the hard drive (as long as it isn't a \CALCOMP directory in the root of
the boot drive, since this is the install directory and a file cannot be
copied onto itself).

This mouse driver is an OS.2 2.x or 3.0 (WARP) device driver ONLY, it does 
NOT function under OS/2 1.x.  The INSTALL program will copy the files 
CALCOMP.SYS and README.DOC to the \CALCOMP directory on the boot drive, but 
any directory can be used if the modifications are done manually.  Your 
OS/2 CONFIG.SYS file should be altered to contain the following four lines:

   DEVICE=C:\path\CALCOMP.SYS [options...]
   DEVICE=C:\OS2\MDOS\VMOUSE.SYS
   DEVICE=C:\OS2\BOOT\POINTDD.SYS
   DEVICE=C:\OS2\BOOT\MOUSE.SYS TYPE=CALCOMP$

     ** NOTE: IN OS/2 3.0 (WARP), THE FILES "MOUSE.SYS" AND "POINTDD.SYS" ARE
        CONTAINED IN THE "\OS2\BOOT\" DIRECTORY. IN OS/2 2.x, THESE FILES ARE
        IN THE "\OS2\" DIRECTORY. THE EXAMPLES IN THIS README ARE FOR OS/2
        WARP. THE LINES IN YOUR CONFIG.SYS SHOULD REFLECT THE VERSION OF OS/2
        YOU ARE USING. **


CALCOMP.SYS is the physical mouse driver for CalComp digitizers.

VMOUSE.SYS is necessary to use the mouse in OS/2 sessions.

POINTDD.SYS is necessary to use the mouse in DOS sessions --
   ** WARP will cause a DOS session to abort if a CALCOMP.SYS is loaded
      without POINTDD.SYS ! **

MOUSE.SYS is the OS/2 physical mouse driver. The TYPE option specifies an
alternate physical driver. 

Any existing lines relating to the physical mouse driver should be removed.
For example, assuming that CALCOMP.SYS has been placed in the C:\OS2
directory:

   DEVICE=C:\OS2\CALCOMP.SYS BAUD=19200 BUFFERED
   DEVICE=C:\OS2\MDOS\VMOUSE.SYS
   DEVICE=C:\OS2\BOOT\POINTDD.SYS
   DEVICE=C:\OS2\BOOT\MOUSE.SYS TYPE=CALCOMP$

   or:

   DEVICE=C:\OS2\CALCOMP.SYS
   DEVICE=C:\OS2\MDOS\VMOUSE.SYS
   DEVICE=C:\OS2\BOOT\POINTDD.SYS
   DEVICE=C:\OS2\BOOT\MOUSE.SYS TYPE=CALCOMP$

   or:

   DEVICE=C:\OS2\CALCOMP.SYS PORT=73D8 IRQ=11 BAUD=2400 BUFFERED MOUSE=DW 
    RELATIVE BUTTONS=2 ORDER=2143
   DEVICE=C:\OS2\MDOS\VMOUSE.SYS
   DEVICE=C:\OS2\BOOT\POINTDD.SYS
   DEVICE=C:\OS2\BOOT\MOUSE.SYS TYPE=CALCOMP$

The first DEVICE line in the last example is longer than 80 characters.  In
almost all cases an installation similar to the first two examples would be
used except that the ORDER option is frequently required.  If you have
multiple digitizers attached to your system, then you may need to specify
the serial port for the desired digitizer.  Only one mouse or digitizer can
be used as a mouse at one time.  Lines in your CONFIG.SYS which are mouse
related are...

   DEVICE=C:\OS2\VISION.SYS...
   DEVICE=C:\OS2\PCLOGIC.SYS...
   DEVICE=C:\OS2\RODENT.SYS...
   DEVICE=C:\OS2\MOUSE.SYS...

all such lines should be removed and replaced as shown above.

Known setup difficulties...

COM4 Installation:

   There's a problem in VVGA.SYS and VSVGA.SYS that can kill COM4 when you
   enter (or exit?) a DOS full-screen session, even if that session isn't
   using that port.  The drivers which handle that screen switching
   mistakenly think that there's an 8514/A video card also in the system
   and write to two registers on that card.  (Of course, if you really DO
   have an 8514/A or S3-based video card, you CAN'T use COM4 at 0x02E8 for
   this very reason).

   This appears to be fixed in the March beta of OS/2 2.1.


---------------------------------- Options -----------------------------------

The following options are supported...

   COM=#

      This option allows the serial port to explicitly specified.  This
      option may be specified as:

         COM=1
         COM=2
         COM=3
         COM=4

      where 1..4 is one of the standard com ports.  So,

         COM=1

      is normally equivalent to:

         PORT=03f8 IRQ=4

      If both this option and the PORT option are omitted then the mouse
      driver will scan COM1..COM4 (in order) to find the mouse.  This
      procedure works and is reasonably reliable, however it is impossible
      to completely restore the UART state so automatic scanning could
      potentially cause problems with other devices attached to serial ports.
      This mouse driver will restore more of the serial port state than the
      IBM mouse drivers.  Specifying either this option or the PORT option
      also reduces the time required to initialize the mouse driver -- by
      as much as a couple of seconds.

   PORT=#

      This option allows the serial port address to explicitly specified,
      and may be specified as:

         PORT=xxxx

      where "xxxx" is the hex address of the port to be used.  If the COM
      option is also specified, this option takes precedence.

      Any serial port which is compatible with the 8250 UART may be used.
      This mouse driver is not restricted to COM1..COM4, unlike the IBM
      mouse drivers.  If both this option and the COM option are omitted
      then the mouse driver will scan COM1..COM4 (in order) to find the
      mouse.  This procedure works and is reasonably reliable, however it
      is impossible to completely restore the UART state so automatic
      scanning could potentially cause problems with other devices attached
      to serial ports.  This mouse driver will restore more of the serial
      port state than the IBM mouse drivers.  Specifying this option also
      reduces the time required to initialize the mouse driver -- by as
      much as a couple of seconds.

   IRQ=#

      This option allows the interrupt number to explicitly specified.  Any
      interrupt from 2..15 may be used, unlike the IBM drivers which are
      restricted to interrupts 2..7.  If omitted, the interrupt level to
      be used will be determined from the port address.  This procedure is
      only reliable for the standard COM1 and COM2 port addresses 3f8 and
      2f8.  It may work for COM3 and COM4 (depending on the actual port
      addresses).  The IBM mouse driver has the same (undocumented) problem,
      but does not provide a mechanism to specify the interrupt number.

   BAUD=#

      This option allows the baud rate to be specified.  It may be one of the
      following values:

         150, 300, 600, 1200, 2400, 4800, 9600 or 19200

      All mice do not support all baud rates.  To use the lowest baud rate
      supported by the mouse specify:

         BAUD=150

      and to use the highest baud rate supported by the mouse specify:

         BAUD=19200.

      The lowest baud rate which gives good performance should be used to
      reduce system load.  If this option is not specified then it defaults
      to a value determined by the protocol in use.  Each protocol has a
      default baud rate based on the default mouse baud rate.  If a baud
      rate is specified which is not supported by the protocol, the highest
      baud rate which is less than the specified baud rate will be used, if
      any, and otherwise the lowest baud rate which is higher than the
      specified baud rate will be used.

   UART=#

      This option allows the UART type to be specified.  It may be specified
      as...

         UART=8250
         UART=16450
         UART=16550
         UART=16550A
         UART=16552

      If this option is omitted, the UART type will be determined by testing
      the UART.  All UART testing will be skipped if this option is present.
      This option is provided because some systems are sensitive to testing
      for the UART type.  This sensitivity is very rare and probably also
      depends on the design of the serial port.  This option should not be
      specified unless CALCOMP.SYS fails to work properly.  If this option
      is specified, than either the COM option or the PORT option must be
      specified also.

   BUFFERED

      This option enables the FIFO buffer if a 16550 UART is detected.  The
      FIFO buffer is NOT enabled by default because some 16550 UARTs do not
      function correctly.  All 16550AFN UARTs should function correctly, if
      you have a 16550, 16550A or 16550AF UART then it should be replaced by
      a 16550AFN UART.  CALCOMP.SYS will function correctly if the UART is 
      not replaced, but this option cannot be used.

   MOUSE=xx

      This option allows the mouse type to be specified.  This is required
      to use anything other than the newer 3x00 digitizers.  If any mouse
      type is specified that fails to match the hardware in use then the
      mouse driver may or may not load, and if loads may fail to operate
      properly.  This option may be specified as:

         MOUSE=D3

            CalComp 3x00 and newer digitizers.

            Protocols: ABSOLUTE, RELATIVE
                       default: ABSOLUTE

            Baud Rate: 150, 300, 600, 1200, 2400, 4800, 9600, 19200
                       default: 9600

         MOUSE=D9

            CalComp 9500 digitizers.  The 9500 digitizers are older products
            which do not support full software initialization.  These tablets
            MUST be set for 9600 baud.  If reconfigured by other applications 
            the tablet must be reset before this driver will function.  This 
            option is required for these digitizers, they cannot be 
            automatically recognized.

            Protocols: ABSOLUTE, RELATIVE
                       default: ABSOLUTE

            Baud Rate: 9600
                       default: 9600

         MOUSE=DW

            CalComp WIZ and 2300 digitizers.  The WIZ and 2300 digitizers are
            older products which do not support full software initialization.
            These tablets MUST be set for 9600 baud.  If reconfigured by
            other applications the tablet must be reset to 9600 baud before
            this driver will function.  This option is required for these
            digitizers, they cannot be automatically recognized.

            Protocols: ABSOLUTE, RELATIVE
                       default: ABSOLUTE

            Baud Rate: 9600
                       default: 9600

   ABSOLUTE

      This option specifies that the "absolute" communications protocol is
      to be used.  This is the default protocol.  This is an "absolute"
      protocol, i.e. each position on the digitizer tablet corresponds
      exactly to a point on the screen.

   RELATIVE

      This option specifies that the "relative" communications protocol is
      to be used. "Relative" protocol is sometimes referred to as "mouse"
      mode.

   BUTTONS=#

      This option indicates the number of buttons to be supported.  This
      option may be specified as:

         BUTTONS=2
         BUTTONS=3

   ORDER=#

      This option specifies the button ordering.  Digitizer pucks tend to be
      inconsistent between logical button numbering and physical button
      placement and this option is almost always required for convenient use
      of a digitizer.  Further, while OS/2 allows the left and right buttons
      to be swapped for left hand users, it doesn't do so correctly for three
      button mice and the swapping does not function at all for DOS and OS/2
      full screen sessions.  Trailing digits may be omitted if they are in
      order.  At least one digit must be specified.  This mouse driver
      supports from 2 to 7 physical buttons. Any buttons above button 7 will
      be ignored.  This option may be specified as:

         ORDER=1234567

      where each digit is the button value to be used for the corresponding 
      button position.  Omitted digit positions will be assigned their 
      position index value.  It is an error to specify the same button twice, 
      or to fail to specify a button. Incorrect ORDER specifications may 
      cause the driver to fail to load. Thus:

         ORDER=1
         ORDER=12
         ORDER=123
         ORDER=1234
         ORDER=12345
         ORDER=123456
         ORDER=1234567

      all result in the default button ordering, but:

         ORDER=122
         ORDER=124

      are both errors and will cause the driver load to fail.  Specifying:

         ORDER=7654321

      reverses the button ordering.  So button 1 will be treated the same as
      button 7, button 2 the same as button 6, and so on.  The most common
      button orderings for mice are:

         ORDER=321
            - reverses the left and right buttons, leaving the middle button
              unaffected 
         
         and:

         ORDER=132
            - reverses the middle and right buttons.  Thus OS/2 button 1 is 
              physical button 1, OS/2 button 2 is physical button 2 and OS/2
              button 3 is physical button 3.

      One useful ordering for some digitizer pucks arranged in a "diamond"
      formation is:

         ORDER=2143

      For mice, the left mouse button is always physical button 1, the right
      mouse button always physical button 3 and the middle mouse button (if
      present) is always physical button 2.

      The general button assignment strategy for BUTTONS=2 is:

         Button 1 -- OS/2 button 1 (left button down)
         Button 2 -- OS/2 button 1+2 (all buttons down)
         Button 3 -- OS/2 button 2 (right button down)
         Button 4 -- OS/2 button 1+2 (all buttons down)
         Button 5 -- OS/2 button 1+2 (all buttons down)
         Button 6 -- OS/2 button 1+2 (all buttons down)
         Button 7 -- OS/2 button 1+2 (all buttons down)

      Notice that for two button mice no more than 3 buttons can be logically 
      used for OS/2.  The general button assignment strategy for BUTTONS=3 
      is:

         Button 1 -- OS/2 button 1 (left button down)
         Button 2 -- OS/2 button 3 (middle button down)
         Button 3 -- OS/2 button 2 (right button down)
         Button 4 -- OS/2 button 1+2 chord (left + right buttons down)
         Button 5 -- OS/2 button 1+3 chord (left + middle buttons down)
         Button 6 -- OS/2 button 2+3 chord (middle + right buttons down)
         Button 7 -- OS/2 button 1+2+3 chord (all buttons down)

      Notice that for three button mice no more than 7 buttons can be
      logically used for OS/2.  Many digitizer pucks have the limitation that 
      only one button can be pressed at a time. There exist both mice and 
      digitizer pucks which have buttons hard-wired to generate chord clicks 
      of other buttons, or where multiple presses of buttons may result in 
      the appearance of some other button being pressed.  These problems 
      cannot be resolved by this driver, but the ORDER option can allow the 
      most useful configuration of a particular mouse or puck.

   RESPONSE=#

      This option specifies a divisor to reduce the cursor responsiveness. If
      RESPONSE is not specified, the default is 1.  If response is specified,
      only the following values may be used:

         RESPONSE=1
         RESPONSE=2
         RESPONSE=4
         RESPONSE=8

         ** An invalid RESPONSE setting may cause the driver load to fail. **
      
      This can be a useful setting because most digitizers use a very high 
      resolution, which is FAR too sensitive for most people.  Furthermore, 
      if a user has a problem holding the pointing device steady (i.e. a 
      Parkinson's victim), specifying a response allows the pointing device 
      to ignore small movements.  Caution: with this option it is possible to 
      slowly move the pointing device without moving the cursor at all.  This 
      effect does NOT happen when RESPONSE=1, and would be most apparent when 
      RESPONSE=8.  Notice that this option is the opposite of mouse accelera-
      tion.  OS/2 DOES provide a mouse sensitivity control, but that control 
      is not effective for DOS or OS/2 full screen sessions.

   X=[#..]#

      This option specifies the active horizontal range for a digitizer
      tablet.  The range refers to actual digitizer points, and will vary
      depending on the resolution of your tablet. It may be specified as:

         X=#
         X=#..#

      In the first case, the active range is assumed to be 0..#-1, and in the
      second case the active range is #1..#2-1.  Thus, X=7500 would result
      in an active range of 0 to 7499, inclusive.  And X=500..7000 would
      result in an active range of 500 to 6999, inclusive.  If "..#" is
      present, spaces may NOT surround "..".  However, spaces MAY surround
      "=", as in all other options.

      This option is only necessary when it is not possible to determine
      the digitizer size automatically or when it is not desired to use the
      entire digitizer surface as the active mouse area.  This option can be
      used to create non-symmetrical margins.  Normally the MARGIN parameter
      is used to specify symmetrical margins.  The MARGIN value is added to
      the minimum and subtracted from the maximum horizontal range.  However,
      if, for example, the digitizer tablet's physical active area was
      X=0..7500 then specifying X=1000..4000 would give a left (or right)
      margin of 1000 and a right (or left) margin of 3500 (some tablets may
      physically reverse left and right).

   Y=[#..]#

      This option specifies the active vertical range for a digitizer
      tablet.  The range refers to actual digitizer points, and will vary
      depending on the resolution of your tablet. It may be specified as:

         Y=#
         Y=#..#

      In the first case, the active range is assumed to be 0..#-1 and in the
      second case the active range is #1..#2-1.  Thus, Y=7500 would result
      in an active range of 0 to 7499, inclusive.  And Y=500..7000 would
      result in an active range of 500 to 6999, inclusive.  If "..#" is
      present, spaces may NOT surround "..".  However, spaces MAY surround
      "=", as in all other options.

      This option is only necessary when it is not possible to determine
      the digitizer size automatically or when it is not desired to use the
      entire digitizer surface as the active mouse area.  This option can be
      used to create non-symmetrical margins.  Normally the MARGIN parameter
      is used to specify symmetrical margins.  The MARGIN value is added to
      the minimum and subtracted from the maximum vertical range.  However,
      if, for example, the digitizer tablets physically active area was
      Y=0..7500 then specifying Y=1000..4000 would give a top (or bottom)
      margin of 1000 and a bottom (or top) margin of 3500 (some tablets may
      physically reverse top and bottom).

   MARGIN=#

      This option allows the margin on an absolute pointing device to be
      specified.  The default is MARGIN=0 since some digitizer tablets have
      a hardware margin.  Units are in terms of the device resolution.  Most
      digitizers are programmed for 1000lpi so MARGIN=500 gives a half inch
      margin on each edge of the tablet.  When the cursor is in the margin
      area, button presses will be recognized and the mouse cursor will move
      in two dimensions, but will be "pegged" to the appropriate side and so
      will not move in that dimension.  Use of a margin prevents a "cliff"
      effect.  The hardware margins provided by some devices will ONLY
      recognize button presses.

   PRESSURE=#

      This option is only effective for digitizer pens which are pressure
      sensitive.  This options sets the pressure threshold at which a pen
      tip recognizes a button press.  The pressure must be in the range of
      1 to 255 inclusive.  The recommended value is 4.

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