DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T m

⟦0eaffc3c4⟧ TextFile

    Length: 8310 (0x2076)
    Types: TextFile
    Names: »mouse.4«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦526ad3590⟧ »EUUGD11/gnu-31mar87/X.V10.R4.tar.Z« 
        └─⟦2109abc41⟧ 
            └─ ⟦this⟧ »./X.V10R4/libibm/doc/man/mouse.4« 

TextFile

.\"$Header: mouse.4,v 10.1 86/11/19 10:56:12 jg Exp $
.\"$Source: /u1/X/libibm/doc/man/RCS/mouse.4,v $
.\"Contains -man macros and eqn source
.TH MOUSE 4 "30 Sep 1985" "Space overwritten by .AC macro" " "
.UC 4
.AC 1 0
.SH NAME
mouse \- mouse interface
.SH SYNOPSIS
.B "pseudo-device ms"
.SH DESCRIPTION
The mouse driver provides a low-level interface to the
mouse for the IBM RT PC.
A
.IR tty (4)-like
interface is provided, in that
the kernel uses
internal tty
protocols for buffering data to read data from the interface.  Thus, the
system calls
.IR select (2)
and
.IR fcntl (2)
relating to non-blocking I/O may be used.
Commands are issued to the mouse through the standard
.IR ioctl (2)
mechanism,
although
none of the terminal-specific
.IR ioctl s
apply and that the mouse is always in ``mouse-discipline'' mode.
.PP
The mouse can only be opened by one process at a time; subsequent
processes will receive ENXIO in response to
.IR open (2)
calls.
.SS Data
The data structures necessary for communicating with the mouse are
provided in
.IR <machineio/mouseio.h> .
This file also includes macros for interpreting the mouse stream data,
and symbolic names for the commands the mouse understands.
.PP
Since many applications expect a three-button mouse,
a three-button mouse is simulated by indicating
a middle button when both buttons are depressed.
This means that an application program will never see a data report
indicating that both buttons are pressed.
There is a small
delay in recognizing a single button,
in order to
allow smooth recognition of both buttons, since one cannot
always press
both buttons at exactly the same time.
In addition,
a single button from a middle
(double-button) transition will not be reported
until both buttons have been released and
then the single button pressed.
.SS Commands
The commands available to the user through
.I ioctls
are defined in
.I <machineio/mouseio.h>
and described below.
When in
.I stream
mode, the driver will disable the mouse
before issuing commands which expect responses.
.IP MSIC_STREAM
Sets the mouse in 
.I stream 
mode which, when enabled, sends unsolicited
data reports.
This is the default after the mouse has been opened.
.IP MSIC_REMOTE
Sets the mouse to 
.I remote 
mode, where it will send data
reports only in response to a
MSIC_READXY
command;
no unsolicited data will be sent.
.IP MSIC_STATUS
The current mouse status data report, as defined in
.IR <machineio/mouseio.h> ,
will be placed in the passed four-byte character pointer.
Note that the status report contains the true state of the buttons;
a middle button is not simulated.
.IP MSIC_READXY
This will solicit a data report from the mouse even if it hasn't
been moved or button conditions have not changed.  MSIC_READXY
can be used in either 
.I stream
or 
.I remote 
mode.
In 
.I stream 
mode, the driver will disable the mouse
before performing the read.
.IP MSIC_ENABLE
Enable the mouse to send unsolicited data reports in
.I stream 
mode.
This is the default after the mouse has been opened.
.IP MSIC_DISABLE
Prohibits the mouse from sending unsolicited data reports in
.I stream 
mode.

.IP MSIC_EXP
An exponential transform is applied to data reported by the mouse, as
follows:
.IP
.\" Pipe the following through eqn or neqn, as appropriate,
.\" to generate the corresponding nroff/troff code.
.\" (in vi, copy, mark, and pipe through sed s/...// | eqn)
.\".EQ
.\"delim @@
.\"ndefine sup '"^"'
.\"tdefine Z @ roman sign (x) cdot (2 sup N )@
.\"ndefine Z @ (( sign (x) )  (2 sup N ))@
.\".EN
.\"Let @x@ be the number of counts accumulated in the sample interval.
.\"The value reported will be @Z@
.\"where
.\".IP
.\".RS
.\".RS
.\".EQ
.\"tdefine Y '{roman abs ( x ) cdot roman rate } over roman resolution ~-~ 3 .'
.\"ndefine Y '(( abs ( x ) ) ( rate ) ) / ( resolution - 3 . )'
.\"N = Y
.\".RE
.\".RE
.\".EN
.if n \{\
.\"nroff code goes here
.EQ
.nr 99 \n(.s
.nr 98 \n(.f
.ps 10
.ft 1
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11 
.as 11 "Let 
.ps 10
.ft 1
.ds 12 "x
.ds 12 \x'0'\f1\s10\*(12\|\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " be the number of counts accumulated in the sample interval.
.ps \n(99
.ft \n(98
\*(11
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11 
.as 11 "The value reported will be 
.ps 10
.ft 1
.ds 12 "\f1(\fP\|\f1(\fP
.ds 13 "sign
.as 12 "\|\*(13
.ds 13 "\f1(\fPx\|\f1)\fP
.as 12 "\|\*(13
.ds 13 "\f1)\fP
.as 12 "\|\*(13
.ds 13 "\f1(\fP\|\f12\fP
.as 12 "\|\*(13
.ds 13 "^
.as 12 "\|\*(13
.ds 13 "N
.as 12 "\|\*(13
.ds 13 "\f1)\fP\|\f1)\fP
.as 12 "\|\*(13
.ds 12 \x'0'\f1\s10\*(12\|\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 "
.ps \n(99
.ft \n(98
\*(11
where
.IP
.RS
.RS
.EQ
.nr 99 \n(.s
.nr 98 \n(.f
.ps 10
.ft 1
.ds 11 "N
.ds 12 "\(eq
.as 11 "\|\*(12
.ds 12 "\f1(\fP\|\f1(\fP
.as 11 "\|\*(12
.ds 12 "abs
.as 11 "\|\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "x
.as 11 "\|\*(12
.ds 12 "\f1)\fP
.as 11 "\|\*(12
.ds 12 "\f1)\fP
.as 11 "\|\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "rate
.as 11 "\|\*(12
.ds 12 "\f1)\fP
.as 11 "\|\*(12
.ds 12 "\f1)\fP
.as 11 "\|\*(12
.ds 12 "\(sl
.as 11 "\|\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "resolution
.as 11 "\|\*(12
.ds 12 "\(mi
.as 11 "\|\*(12
.ds 12 "\f13\fP
.as 11 "\|\*(12
.ds 12 ".
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 11 \x'0'\f1\s10\*(11\|\s\n(99\f\n(98
.nr 11 \w'\*(11'
.nr MK 0
.if 40>\n(.v .ne 40u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.RE
.RE
.EN
.\"end of nroff code
.\}
.if t \{\
.\"troff code goes here
.EQ
.nr 99 \n(.s
.nr 98 \n(.f
.ps 10
.ft 2
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11 
.as 11 "Let 
.ps 10
.ft 2
.ds 12 "x
.ds 12 \x'0'\f2\s10\*(12\|\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " be the number of counts accumulated in the sample interval.
.ps \n(99
.ft \n(98
\*(11
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11 
.as 11 "The value reported will be 
.ps 10
.ft 2
.ft 1
.ds 12 "sign
.ds 12 \f1\*(12\f2
.ft 2
.ds 13 "\f1(\fPx\|\f1)\fP
.as 12 "\*(13
.ds 13 "\v'-.3m'.\v'.3m'
.as 12 "\*(13
.ds 13 "\f1(\fP\f12\fP
.ds 14 "N
.as 13 \v'-24u'\s-3\*(14\s+3\|\v'24u'
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 12 \x'0'\f2\s10\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 "
.ps \n(99
.ft \n(98
\*(11
where
.IP
.RS
.RS
.EQ
.nr 99 \n(.s
.nr 98 \n(.f
.ps 10
.ft 2
.ds 11 "N
.ds 12 "\(eq
.as 11 "\|\*(12
.ft 1
.ds 12 "abs
.ds 12 \f1\*(12\f2
.ft 2
.ds 13 "\f1(\fP
.as 12 "\*(13
.ds 13 "x
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\|\*(13
.ds 13 "\v'-.3m'.\v'.3m'
.as 12 "\*(13
.ft 1
.ds 13 "rate
.ds 13 \f1\*(13\f2
.ft 2
.as 12 "\*(13
.ft 1
.ds 13 "resolution
.ds 13 \f1\*(13\f2
.ft 2
.nr 12 \w'\s10\*(12'
.nr 13 \w'\s10\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s10.5m\s0
.ds 12 \v'42u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-78u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'18u'\l'\n(14u-.2m'\h'.1m'\v'18u'
.as 11 "\*(12
.ds 12 "\ 
.as 11 "\*(12
.ds 12 "\(mi
.as 11 "\*(12
.ds 12 "\ 
.as 11 "\*(12
.ds 12 "\f13\fP
.as 11 "\*(12
.ds 12 ".
.as 11 "\*(12
.ds 11 \x'0'\x'0-24u'\f2\s10\*(11\s\n(99\f\n(98\x'30u'
.nr 11 \w'\*(11'
.nr MK 0
.if 138>\n(.v .ne 138u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.RE
.RE
.EN
.\"end of troff code
.\}
.IP
This scaling applies only to mouse-generated reports.
Reports generated in response to
MSIC_READXY
are always linear.
.IP MSIC_LINEAR
Set the mouse back to linear scaling, where the value reported is the number 
of counts.  This is the default after the mouse has been opened.
.IP MSIC_SAMP
Set the mouse sampling rate.
The argument passed in the
.I ioctl
must contain the desired sampling reate in counts per second.
Legal
values are 10, 20, 40, 60, 80 and 100.
These are provided in
.I <machineio/mouseio.h>
as MS_RATE_10, MS_RATE_20, ..., MS_RATE_100 respectively.
The default after the mouse has been opened is
MS_RATE_100.
.IP MSIC_RESL
Set the mouse resolution.
The argument passed must contain the the required resolution in counts
per inch.
Legal resolutions are 25, 50, 100, 200.
These are provided in
.I <machineio/mouseio.h>
as MS_RES_25, MS_RES_50, MS_RES_100, MS_RES_200, respectively.
The default after the mouse has been opened is
MS_RES_100.
.SH FILES
/dev/mouse
.SH "SEE ALSO"
tty(4), select(2)
.br
.IR "IBM RT PC Technical Reference Manual" , 
``Adapter'', section 3.1.4
.br
.IR "IBM RT PC Technical Reference Manual" , 
``Mouse'', section 6.2