|
|
1.1 ! root 1: .\"$Header: mouse.4,v 10.1 86/11/19 10:56:12 jg Exp $ ! 2: .\"$Source: /u1/X/libibm/doc/man/RCS/mouse.4,v $ ! 3: .\"Contains -man macros and eqn source ! 4: .TH MOUSE 4 "30 Sep 1985" "Space overwritten by .AC macro" " " ! 5: .UC 4 ! 6: .AC 1 0 ! 7: .SH NAME ! 8: mouse \- mouse interface ! 9: .SH SYNOPSIS ! 10: .B "pseudo-device ms" ! 11: .SH DESCRIPTION ! 12: The mouse driver provides a low-level interface to the ! 13: mouse for the IBM RT PC. ! 14: A ! 15: .IR tty (4)-like ! 16: interface is provided, in that ! 17: the kernel uses ! 18: internal tty ! 19: protocols for buffering data to read data from the interface. Thus, the ! 20: system calls ! 21: .IR select (2) ! 22: and ! 23: .IR fcntl (2) ! 24: relating to non-blocking I/O may be used. ! 25: Commands are issued to the mouse through the standard ! 26: .IR ioctl (2) ! 27: mechanism, ! 28: although ! 29: none of the terminal-specific ! 30: .IR ioctl s ! 31: apply and that the mouse is always in ``mouse-discipline'' mode. ! 32: .PP ! 33: The mouse can only be opened by one process at a time; subsequent ! 34: processes will receive ENXIO in response to ! 35: .IR open (2) ! 36: calls. ! 37: .SS Data ! 38: The data structures necessary for communicating with the mouse are ! 39: provided in ! 40: .IR <machineio/mouseio.h> . ! 41: This file also includes macros for interpreting the mouse stream data, ! 42: and symbolic names for the commands the mouse understands. ! 43: .PP ! 44: Since many applications expect a three-button mouse, ! 45: a three-button mouse is simulated by indicating ! 46: a middle button when both buttons are depressed. ! 47: This means that an application program will never see a data report ! 48: indicating that both buttons are pressed. ! 49: There is a small ! 50: delay in recognizing a single button, ! 51: in order to ! 52: allow smooth recognition of both buttons, since one cannot ! 53: always press ! 54: both buttons at exactly the same time. ! 55: In addition, ! 56: a single button from a middle ! 57: (double-button) transition will not be reported ! 58: until both buttons have been released and ! 59: then the single button pressed. ! 60: .SS Commands ! 61: The commands available to the user through ! 62: .I ioctls ! 63: are defined in ! 64: .I <machineio/mouseio.h> ! 65: and described below. ! 66: When in ! 67: .I stream ! 68: mode, the driver will disable the mouse ! 69: before issuing commands which expect responses. ! 70: .IP MSIC_STREAM ! 71: Sets the mouse in ! 72: .I stream ! 73: mode which, when enabled, sends unsolicited ! 74: data reports. ! 75: This is the default after the mouse has been opened. ! 76: .IP MSIC_REMOTE ! 77: Sets the mouse to ! 78: .I remote ! 79: mode, where it will send data ! 80: reports only in response to a ! 81: MSIC_READXY ! 82: command; ! 83: no unsolicited data will be sent. ! 84: .IP MSIC_STATUS ! 85: The current mouse status data report, as defined in ! 86: .IR <machineio/mouseio.h> , ! 87: will be placed in the passed four-byte character pointer. ! 88: Note that the status report contains the true state of the buttons; ! 89: a middle button is not simulated. ! 90: .IP MSIC_READXY ! 91: This will solicit a data report from the mouse even if it hasn't ! 92: been moved or button conditions have not changed. MSIC_READXY ! 93: can be used in either ! 94: .I stream ! 95: or ! 96: .I remote ! 97: mode. ! 98: In ! 99: .I stream ! 100: mode, the driver will disable the mouse ! 101: before performing the read. ! 102: .IP MSIC_ENABLE ! 103: Enable the mouse to send unsolicited data reports in ! 104: .I stream ! 105: mode. ! 106: This is the default after the mouse has been opened. ! 107: .IP MSIC_DISABLE ! 108: Prohibits the mouse from sending unsolicited data reports in ! 109: .I stream ! 110: mode. ! 111: ! 112: .IP MSIC_EXP ! 113: An exponential transform is applied to data reported by the mouse, as ! 114: follows: ! 115: .IP ! 116: .\" Pipe the following through eqn or neqn, as appropriate, ! 117: .\" to generate the corresponding nroff/troff code. ! 118: .\" (in vi, copy, mark, and pipe through sed s/...// | eqn) ! 119: .\".EQ ! 120: .\"delim @@ ! 121: .\"ndefine sup '"^"' ! 122: .\"tdefine Z @ roman sign (x) cdot (2 sup N )@ ! 123: .\"ndefine Z @ (( sign (x) ) (2 sup N ))@ ! 124: .\".EN ! 125: .\"Let @x@ be the number of counts accumulated in the sample interval. ! 126: .\"The value reported will be @Z@ ! 127: .\"where ! 128: .\".IP ! 129: .\".RS ! 130: .\".RS ! 131: .\".EQ ! 132: .\"tdefine Y '{roman abs ( x ) cdot roman rate } over roman resolution ~-~ 3 .' ! 133: .\"ndefine Y '(( abs ( x ) ) ( rate ) ) / ( resolution - 3 . )' ! 134: .\"N = Y ! 135: .\".RE ! 136: .\".RE ! 137: .\".EN ! 138: .if n \{\ ! 139: .\"nroff code goes here ! 140: .EQ ! 141: .nr 99 \n(.s ! 142: .nr 98 \n(.f ! 143: .ps 10 ! 144: .ft 1 ! 145: .ps \n(99 ! 146: .ft \n(98 ! 147: .EN ! 148: .nr 99 \n(.s ! 149: .nr 98 \n(.f ! 150: .rm 11 ! 151: .as 11 "Let ! 152: .ps 10 ! 153: .ft 1 ! 154: .ds 12 "x ! 155: .ds 12 \x'0'\f1\s10\*(12\|\s\n(99\f\n(98 ! 156: .as 11 \*(12 ! 157: .ps \n(99 ! 158: .ft \n(98 ! 159: .as 11 " be the number of counts accumulated in the sample interval. ! 160: .ps \n(99 ! 161: .ft \n(98 ! 162: \*(11 ! 163: .nr 99 \n(.s ! 164: .nr 98 \n(.f ! 165: .rm 11 ! 166: .as 11 "The value reported will be ! 167: .ps 10 ! 168: .ft 1 ! 169: .ds 12 "\f1(\fP\|\f1(\fP ! 170: .ds 13 "sign ! 171: .as 12 "\|\*(13 ! 172: .ds 13 "\f1(\fPx\|\f1)\fP ! 173: .as 12 "\|\*(13 ! 174: .ds 13 "\f1)\fP ! 175: .as 12 "\|\*(13 ! 176: .ds 13 "\f1(\fP\|\f12\fP ! 177: .as 12 "\|\*(13 ! 178: .ds 13 "^ ! 179: .as 12 "\|\*(13 ! 180: .ds 13 "N ! 181: .as 12 "\|\*(13 ! 182: .ds 13 "\f1)\fP\|\f1)\fP ! 183: .as 12 "\|\*(13 ! 184: .ds 12 \x'0'\f1\s10\*(12\|\s\n(99\f\n(98 ! 185: .as 11 \*(12 ! 186: .ps \n(99 ! 187: .ft \n(98 ! 188: .as 11 " ! 189: .ps \n(99 ! 190: .ft \n(98 ! 191: \*(11 ! 192: where ! 193: .IP ! 194: .RS ! 195: .RS ! 196: .EQ ! 197: .nr 99 \n(.s ! 198: .nr 98 \n(.f ! 199: .ps 10 ! 200: .ft 1 ! 201: .ds 11 "N ! 202: .ds 12 "\(eq ! 203: .as 11 "\|\*(12 ! 204: .ds 12 "\f1(\fP\|\f1(\fP ! 205: .as 11 "\|\*(12 ! 206: .ds 12 "abs ! 207: .as 11 "\|\*(12 ! 208: .ds 12 "\f1(\fP ! 209: .as 11 "\|\*(12 ! 210: .ds 12 "x ! 211: .as 11 "\|\*(12 ! 212: .ds 12 "\f1)\fP ! 213: .as 11 "\|\*(12 ! 214: .ds 12 "\f1)\fP ! 215: .as 11 "\|\*(12 ! 216: .ds 12 "\f1(\fP ! 217: .as 11 "\|\*(12 ! 218: .ds 12 "rate ! 219: .as 11 "\|\*(12 ! 220: .ds 12 "\f1)\fP ! 221: .as 11 "\|\*(12 ! 222: .ds 12 "\f1)\fP ! 223: .as 11 "\|\*(12 ! 224: .ds 12 "\(sl ! 225: .as 11 "\|\*(12 ! 226: .ds 12 "\f1(\fP ! 227: .as 11 "\|\*(12 ! 228: .ds 12 "resolution ! 229: .as 11 "\|\*(12 ! 230: .ds 12 "\(mi ! 231: .as 11 "\|\*(12 ! 232: .ds 12 "\f13\fP ! 233: .as 11 "\|\*(12 ! 234: .ds 12 ". ! 235: .as 11 "\*(12 ! 236: .ds 12 "\f1)\fP ! 237: .as 11 "\*(12 ! 238: .ds 11 \x'0'\f1\s10\*(11\|\s\n(99\f\n(98 ! 239: .nr 11 \w'\*(11' ! 240: .nr MK 0 ! 241: .if 40>\n(.v .ne 40u ! 242: .rn 11 10 ! 243: \*(10 ! 244: .ps \n(99 ! 245: .ft \n(98 ! 246: .RE ! 247: .RE ! 248: .EN ! 249: .\"end of nroff code ! 250: .\} ! 251: .if t \{\ ! 252: .\"troff code goes here ! 253: .EQ ! 254: .nr 99 \n(.s ! 255: .nr 98 \n(.f ! 256: .ps 10 ! 257: .ft 2 ! 258: .ps \n(99 ! 259: .ft \n(98 ! 260: .EN ! 261: .nr 99 \n(.s ! 262: .nr 98 \n(.f ! 263: .rm 11 ! 264: .as 11 "Let ! 265: .ps 10 ! 266: .ft 2 ! 267: .ds 12 "x ! 268: .ds 12 \x'0'\f2\s10\*(12\|\s\n(99\f\n(98 ! 269: .as 11 \*(12 ! 270: .ps \n(99 ! 271: .ft \n(98 ! 272: .as 11 " be the number of counts accumulated in the sample interval. ! 273: .ps \n(99 ! 274: .ft \n(98 ! 275: \*(11 ! 276: .nr 99 \n(.s ! 277: .nr 98 \n(.f ! 278: .rm 11 ! 279: .as 11 "The value reported will be ! 280: .ps 10 ! 281: .ft 2 ! 282: .ft 1 ! 283: .ds 12 "sign ! 284: .ds 12 \f1\*(12\f2 ! 285: .ft 2 ! 286: .ds 13 "\f1(\fPx\|\f1)\fP ! 287: .as 12 "\*(13 ! 288: .ds 13 "\v'-.3m'.\v'.3m' ! 289: .as 12 "\*(13 ! 290: .ds 13 "\f1(\fP\f12\fP ! 291: .ds 14 "N ! 292: .as 13 \v'-24u'\s-3\*(14\s+3\|\v'24u' ! 293: .as 12 "\*(13 ! 294: .ds 13 "\f1)\fP ! 295: .as 12 "\*(13 ! 296: .ds 12 \x'0'\f2\s10\*(12\s\n(99\f\n(98 ! 297: .as 11 \*(12 ! 298: .ps \n(99 ! 299: .ft \n(98 ! 300: .as 11 " ! 301: .ps \n(99 ! 302: .ft \n(98 ! 303: \*(11 ! 304: where ! 305: .IP ! 306: .RS ! 307: .RS ! 308: .EQ ! 309: .nr 99 \n(.s ! 310: .nr 98 \n(.f ! 311: .ps 10 ! 312: .ft 2 ! 313: .ds 11 "N ! 314: .ds 12 "\(eq ! 315: .as 11 "\|\*(12 ! 316: .ft 1 ! 317: .ds 12 "abs ! 318: .ds 12 \f1\*(12\f2 ! 319: .ft 2 ! 320: .ds 13 "\f1(\fP ! 321: .as 12 "\*(13 ! 322: .ds 13 "x ! 323: .as 12 "\*(13 ! 324: .ds 13 "\f1)\fP ! 325: .as 12 "\|\*(13 ! 326: .ds 13 "\v'-.3m'.\v'.3m' ! 327: .as 12 "\*(13 ! 328: .ft 1 ! 329: .ds 13 "rate ! 330: .ds 13 \f1\*(13\f2 ! 331: .ft 2 ! 332: .as 12 "\*(13 ! 333: .ft 1 ! 334: .ds 13 "resolution ! 335: .ds 13 \f1\*(13\f2 ! 336: .ft 2 ! 337: .nr 12 \w'\s10\*(12' ! 338: .nr 13 \w'\s10\*(13' ! 339: .nr 14 \n(12 ! 340: .if \n(13>\n(14 .nr 14 \n(13 ! 341: .nr 14 \n(14+\s10.5m\s0 ! 342: .ds 12 \v'42u'\h'\n(14u-\n(13u/2u'\*(13\ ! 343: \h'-\n(13u-\n(12u/2u'\v'-78u'\*(12\ ! 344: \h'-\n(14u-\n(12u/2u+.1m'\v'18u'\l'\n(14u-.2m'\h'.1m'\v'18u' ! 345: .as 11 "\*(12 ! 346: .ds 12 "\ ! 347: .as 11 "\*(12 ! 348: .ds 12 "\(mi ! 349: .as 11 "\*(12 ! 350: .ds 12 "\ ! 351: .as 11 "\*(12 ! 352: .ds 12 "\f13\fP ! 353: .as 11 "\*(12 ! 354: .ds 12 ". ! 355: .as 11 "\*(12 ! 356: .ds 11 \x'0'\x'0-24u'\f2\s10\*(11\s\n(99\f\n(98\x'30u' ! 357: .nr 11 \w'\*(11' ! 358: .nr MK 0 ! 359: .if 138>\n(.v .ne 138u ! 360: .rn 11 10 ! 361: \*(10 ! 362: .ps \n(99 ! 363: .ft \n(98 ! 364: .RE ! 365: .RE ! 366: .EN ! 367: .\"end of troff code ! 368: .\} ! 369: .IP ! 370: This scaling applies only to mouse-generated reports. ! 371: Reports generated in response to ! 372: MSIC_READXY ! 373: are always linear. ! 374: .IP MSIC_LINEAR ! 375: Set the mouse back to linear scaling, where the value reported is the number ! 376: of counts. This is the default after the mouse has been opened. ! 377: .IP MSIC_SAMP ! 378: Set the mouse sampling rate. ! 379: The argument passed in the ! 380: .I ioctl ! 381: must contain the desired sampling reate in counts per second. ! 382: Legal ! 383: values are 10, 20, 40, 60, 80 and 100. ! 384: These are provided in ! 385: .I <machineio/mouseio.h> ! 386: as MS_RATE_10, MS_RATE_20, ..., MS_RATE_100 respectively. ! 387: The default after the mouse has been opened is ! 388: MS_RATE_100. ! 389: .IP MSIC_RESL ! 390: Set the mouse resolution. ! 391: The argument passed must contain the the required resolution in counts ! 392: per inch. ! 393: Legal resolutions are 25, 50, 100, 200. ! 394: These are provided in ! 395: .I <machineio/mouseio.h> ! 396: as MS_RES_25, MS_RES_50, MS_RES_100, MS_RES_200, respectively. ! 397: The default after the mouse has been opened is ! 398: MS_RES_100. ! 399: .SH FILES ! 400: /dev/mouse ! 401: .SH "SEE ALSO" ! 402: tty(4), select(2) ! 403: .br ! 404: .IR "IBM RT PC Technical Reference Manual" , ! 405: ``Adapter'', section 3.1.4 ! 406: .br ! 407: .IR "IBM RT PC Technical Reference Manual" , ! 408: ``Mouse'', section 6.2
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.