CALCOMP.SYS
Appearance
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$