Jump to content

CALCOMP.SYS: Difference between revisions

From EDM2
Created page with "Physical mouse driver for CalComp digitizers. ==Syntax== DEVICE=C:\OS2\CALCOMP.SYS [options...] ==Parameters== ;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 COM..."
 
No edit summary
Line 26: Line 26:
:where "xxxx" is the hex address of the port to be used.  If the COM option is also specified, this option takes precedence.
: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.
: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.
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=#
;IRQ=#


      This option allows the interrupt number to explicitly specified.  Any
: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.
      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=#
;BAUD=#


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


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


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


         BAUD=150
         BAUD=150


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


         BAUD=19200.
         BAUD=19200.


      The lowest baud rate which gives good performance should be used to
: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.
      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=#
;UART=#


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


         UART=8250
         UART=8250
Line 85: Line 58:
         UART=16552
         UART=16552


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


;BUFFERED
;BUFFERED


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


;MOUSE=xx
;MOUSE=xx


      This option allows the mouse type to be specified.  This is required
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:
      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
MOUSE=D3
CalComp 3x00 and newer digitizers.


            CalComp 3x00 and newer digitizers.
Protocols: ABSOLUTE, RELATIVE
 
            Protocols: ABSOLUTE, RELATIVE
                       default: ABSOLUTE
                       default: ABSOLUTE


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



Revision as of 21:47, 1 December 2025

Physical mouse driver for CalComp digitizers.

Syntax

DEVICE=C:\OS2\CALCOMP.SYS [options...]

Parameters

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.


Sample

  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$