home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: 2620
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail, ASCII text
| default
| |
100%
| TrID
| E-Mail message (Var. 2)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 63 68 | 61 6e 64 6c 65 72 40 62 |From: ch|andler@b|
|00000010| 65 61 67 6c 65 2e 55 55 | 43 50 20 28 4a 69 6d 20 |eagle.UU|CP (Jim |
|00000020| 43 68 61 6e 64 6c 65 72 | 29 0a 4e 65 77 73 67 72 |Chandler|).Newsgr|
|00000030| 6f 75 70 73 3a 20 61 6c | 74 2e 73 6f 75 72 63 65 |oups: al|t.source|
|00000040| 73 0a 53 75 62 6a 65 63 | 74 3a 20 62 75 73 20 6d |s.Subjec|t: bus m|
|00000050| 6f 75 73 65 20 64 72 69 | 76 65 72 20 66 6f 72 20 |ouse dri|ver for |
|00000060| 45 53 49 58 0a 4d 65 73 | 73 61 67 65 2d 49 44 3a |ESIX.Mes|sage-ID:|
|00000070| 20 3c 34 34 32 40 62 65 | 61 67 6c 65 2e 55 55 43 | <442@be|agle.UUC|
|00000080| 50 3e 0a 44 61 74 65 3a | 20 32 37 20 4a 61 6e 20 |P>.Date:| 27 Jan |
|00000090| 39 31 20 30 37 3a 33 30 | 3a 30 38 20 47 4d 54 0a |91 07:30|:08 GMT.|
|000000a0| 0a 48 65 72 65 20 69 73 | 20 61 20 64 72 69 76 65 |.Here is| a drive|
|000000b0| 72 20 66 6f 72 20 61 20 | 62 75 73 20 6d 6f 75 73 |r for a |bus mous|
|000000c0| 65 20 66 6f 72 20 45 53 | 49 58 2e 20 20 49 20 63 |e for ES|IX. I c|
|000000d0| 6f 6d 70 69 6c 65 64 20 | 69 74 20 77 69 74 68 20 |ompiled |it with |
|000000e0| 67 63 63 20 31 2e 33 39 | 0a 77 69 74 68 20 6e 6f |gcc 1.39|.with no|
|000000f0| 20 70 72 6f 62 6c 65 6d | 73 20 61 6e 64 20 69 74 | problem|s and it|
|00000100| 20 77 6f 72 6b 73 20 77 | 69 74 68 20 56 50 49 58 | works w|ith VPIX|
|00000110| 20 31 2e 32 20 77 69 74 | 68 20 6e 6f 20 70 72 6f | 1.2 wit|h no pro|
|00000120| 62 6c 65 6d 73 2e 20 20 | 45 4e 4a 4f 59 21 0a 0a |blems. |ENJOY!..|
|00000130| 23 21 20 2f 62 69 6e 2f | 73 68 0a 23 20 54 68 69 |#! /bin/|sh.# Thi|
|00000140| 73 20 69 73 20 61 20 73 | 68 65 6c 6c 20 61 72 63 |s is a s|hell arc|
|00000150| 68 69 76 65 2e 20 20 52 | 65 6d 6f 76 65 20 61 6e |hive. R|emove an|
|00000160| 79 74 68 69 6e 67 20 62 | 65 66 6f 72 65 20 74 68 |ything b|efore th|
|00000170| 69 73 20 6c 69 6e 65 2c | 20 74 68 65 6e 20 75 6e |is line,| then un|
|00000180| 70 61 63 6b 0a 23 20 69 | 74 20 62 79 20 73 61 76 |pack.# i|t by sav|
|00000190| 69 6e 67 20 69 74 20 69 | 6e 74 6f 20 61 20 66 69 |ing it i|nto a fi|
|000001a0| 6c 65 20 61 6e 64 20 74 | 79 70 69 6e 67 20 22 73 |le and t|yping "s|
|000001b0| 68 20 66 69 6c 65 22 2e | 20 20 54 6f 20 6f 76 65 |h file".| To ove|
|000001c0| 72 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 0a |rwrite e|xisting.|
|000001d0| 23 20 66 69 6c 65 73 2c | 20 74 79 70 65 20 22 73 |# files,| type "s|
|000001e0| 68 20 66 69 6c 65 20 2d | 63 22 2e 20 20 59 6f 75 |h file -|c". You|
|000001f0| 20 63 61 6e 20 61 6c 73 | 6f 20 66 65 65 64 20 74 | can als|o feed t|
|00000200| 68 69 73 20 61 73 20 73 | 74 61 6e 64 61 72 64 20 |his as s|tandard |
|00000210| 69 6e 70 75 74 20 76 69 | 61 0a 23 20 75 6e 73 68 |input vi|a.# unsh|
|00000220| 61 72 2c 20 6f 72 20 62 | 79 20 74 79 70 69 6e 67 |ar, or b|y typing|
|00000230| 20 22 73 68 20 3c 66 69 | 6c 65 22 2c 20 65 2e 67 | "sh <fi|le", e.g|
|00000240| 2e 2e 20 20 49 66 20 74 | 68 69 73 20 61 72 63 68 |.. If t|his arch|
|00000250| 69 76 65 20 69 73 20 63 | 6f 6d 70 6c 65 74 65 2c |ive is c|omplete,|
|00000260| 20 79 6f 75 0a 23 20 77 | 69 6c 6c 20 73 65 65 20 | you.# w|ill see |
|00000270| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 6d 65 |the foll|owing me|
|00000280| 73 73 61 67 65 20 61 74 | 20 74 68 65 20 65 6e 64 |ssage at| the end|
|00000290| 3a 0a 23 09 09 22 45 6e | 64 20 6f 66 20 61 72 63 |:.#.."En|d of arc|
|000002a0| 68 69 76 65 20 31 20 28 | 6f 66 20 31 29 2e 22 0a |hive 1 (|of 1).".|
|000002b0| 23 20 43 6f 6e 74 65 6e | 74 73 3a 20 20 52 45 41 |# Conten|ts: REA|
|000002c0| 44 4d 45 20 6c 6d 6f 75 | 73 65 2e 63 20 6c 6d 6f |DME lmou|se.c lmo|
|000002d0| 75 73 65 2e 6e 6f 64 65 | 20 6c 6d 6f 75 73 65 2e |use.node| lmouse.|
|000002e0| 73 64 65 76 69 63 65 20 | 6d 74 2e 63 20 6d 74 32 |sdevice |mt.c mt2|
|000002f0| 2e 63 0a 23 20 57 72 61 | 70 70 65 64 20 62 79 20 |.c.# Wra|pped by |
|00000300| 6d 61 72 6b 40 7a 6f 6b | 20 6f 6e 20 4d 6f 6e 20 |mark@zok| on Mon |
|00000310| 4a 61 6e 20 31 34 20 31 | 39 3a 31 35 3a 35 38 20 |Jan 14 1|9:15:58 |
|00000320| 31 39 39 31 0a 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |1991.PAT|H=/bin:/|
|00000330| 75 73 72 2f 62 69 6e 3a | 2f 75 73 72 2f 75 63 62 |usr/bin:|/usr/ucb|
|00000340| 20 3b 20 65 78 70 6f 72 | 74 20 50 41 54 48 0a 69 | ; expor|t PATH.i|
|00000350| 66 20 74 65 73 74 20 2d | 66 20 27 52 45 41 44 4d |f test -|f 'READM|
|00000360| 45 27 20 2d 61 20 22 24 | 7b 31 7d 22 20 21 3d 20 |E' -a "$|{1}" != |
|00000370| 22 2d 63 22 20 3b 20 74 | 68 65 6e 20 0a 20 20 65 |"-c" ; t|hen . e|
|00000380| 63 68 6f 20 73 68 61 72 | 3a 20 57 69 6c 6c 20 6e |cho shar|: Will n|
|00000390| 6f 74 20 63 6c 6f 62 62 | 65 72 20 65 78 69 73 74 |ot clobb|er exist|
|000003a0| 69 6e 67 20 66 69 6c 65 | 20 5c 22 27 52 45 41 44 |ing file| \"'READ|
|000003b0| 4d 45 27 5c 22 0a 65 6c | 73 65 0a 65 63 68 6f 20 |ME'\".el|se.echo |
|000003c0| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|000003d0| 20 5c 22 27 52 45 41 44 | 4d 45 27 5c 22 20 5c 28 | \"'READ|ME'\" \(|
|000003e0| 32 34 37 37 20 63 68 61 | 72 61 63 74 65 72 73 5c |2477 cha|racters\|
|000003f0| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00000400| 27 52 45 41 44 4d 45 27 | 20 3c 3c 27 45 4e 44 5f |'README'| <<'END_|
|00000410| 4f 46 5f 46 49 4c 45 27 | 0a 58 31 34 2d 4a 61 6e |OF_FILE'|.X14-Jan|
|00000420| 2d 31 39 39 31 0a 58 0a | 58 49 20 77 72 6f 74 65 |-1991.X.|XI wrote|
|00000430| 20 74 68 69 73 20 4c 6f | 67 69 74 65 63 68 20 62 | this Lo|gitech b|
|00000440| 75 73 20 6d 6f 75 73 65 | 20 64 72 69 76 65 72 20 |us mouse| driver |
|00000450| 66 6f 72 20 49 53 43 20 | 32 2e 78 20 61 20 6c 6f |for ISC |2.x a lo|
|00000460| 6e 67 20 74 69 6d 65 20 | 61 67 6f 2c 20 62 65 66 |ng time |ago, bef|
|00000470| 6f 72 65 0a 58 49 53 43 | 20 70 72 6f 76 69 64 65 |ore.XISC| provide|
|00000480| 64 20 6f 6e 65 20 69 6e | 20 74 68 65 69 72 20 64 |d one in| their d|
|00000490| 69 73 74 72 69 62 75 74 | 69 6f 6e 2e 20 20 28 54 |istribut|ion. (T|
|000004a0| 68 65 20 6c 61 73 74 20 | 64 61 74 65 20 6f 66 20 |he last |date of |
|000004b0| 6d 6f 64 69 66 69 63 61 | 74 69 6f 6e 20 6f 66 0a |modifica|tion of.|
|000004c0| 58 74 68 65 20 64 72 69 | 76 65 72 20 73 6f 75 72 |Xthe dri|ver sour|
|000004d0| 63 65 20 69 73 20 4d 61 | 79 20 32 39 2c 20 31 39 |ce is Ma|y 29, 19|
|000004e0| 38 39 29 2e 20 20 42 61 | 63 6b 20 69 6e 20 44 65 |89). Ba|ck in De|
|000004f0| 63 20 27 38 39 20 6d 79 | 20 73 79 73 74 65 6d 20 |c '89 my| system |
|00000500| 73 75 66 66 65 72 65 64 | 20 61 0a 58 6d 61 6a 6f |suffered| a.Xmajo|
|00000510| 72 20 64 69 73 6b 20 63 | 72 61 73 68 20 72 65 73 |r disk c|rash res|
|00000520| 75 6c 74 69 6e 67 20 69 | 6e 20 74 68 65 20 6c 6f |ulting i|n the lo|
|00000530| 73 65 20 6f 66 20 6d 79 | 20 65 6e 74 69 72 65 20 |se of my| entire |
|00000540| 2f 75 73 72 2f 6c 6f 63 | 61 6c 20 64 69 72 65 63 |/usr/loc|al direc|
|00000550| 74 6f 72 79 0a 58 74 72 | 65 65 2e 20 20 49 74 20 |tory.Xtr|ee. It |
|00000560| 77 61 73 20 70 75 72 65 | 20 6c 75 63 6b 20 74 68 |was pure| luck th|
|00000570| 61 74 20 49 20 68 61 70 | 70 65 6e 65 64 20 74 6f |at I hap|pened to|
|00000580| 20 68 61 76 65 20 61 6e | 20 65 78 74 72 61 20 63 | have an| extra c|
|00000590| 6f 70 79 20 6f 66 20 74 | 68 65 20 64 72 69 76 65 |opy of t|he drive|
|000005a0| 72 0a 58 73 6f 75 72 63 | 65 20 65 6c 73 65 77 68 |r.Xsourc|e elsewh|
|000005b0| 65 72 65 2e 20 20 41 6e | 79 2f 61 6c 6c 20 4d 61 |ere. An|y/all Ma|
|000005c0| 6b 65 66 69 6c 65 73 2c | 20 69 6e 73 74 61 6c 6c |kefiles,| install|
|000005d0| 20 73 63 72 69 70 74 73 | 2c 20 61 6e 64 20 6d 69 | scripts|, and mi|
|000005e0| 73 63 65 6c 6c 61 6e 65 | 6f 75 73 6e 65 73 73 0a |scellane|ousness.|
|000005f0| 58 6e 6f 74 65 73 20 77 | 65 72 65 20 75 6e 66 6f |Xnotes w|ere unfo|
|00000600| 72 74 75 6e 61 74 65 6c | 79 20 6c 6f 73 74 2e 20 |rtunatel|y lost. |
|00000610| 20 48 61 76 65 20 6e 65 | 76 65 72 20 74 61 6b 65 | Have ne|ver take|
|00000620| 6e 20 74 68 65 20 74 69 | 6d 65 20 74 6f 20 72 65 |n the ti|me to re|
|00000630| 63 72 65 61 74 65 20 74 | 68 65 6d 2e 0a 58 0a 58 |create t|hem..X.X|
|00000640| 53 6f 2c 20 2e 2e 2e 20 | 79 6f 75 27 72 65 20 74 |So, ... |you're t|
|00000650| 6f 74 61 6c 6c 79 20 6f | 6e 20 79 6f 75 72 20 6f |otally o|n your o|
|00000660| 77 6e 2e 20 20 48 65 72 | 65 27 73 20 61 20 71 75 |wn. Her|e's a qu|
|00000670| 69 63 6b 20 73 75 6d 6d | 61 72 79 20 6f 66 20 74 |ick summ|ary of t|
|00000680| 68 65 20 66 69 6c 65 73 | 0a 58 65 6e 63 6c 6f 73 |he files|.Xenclos|
|00000690| 65 64 2c 20 28 74 68 65 | 20 66 6f 6c 6c 6f 77 69 |ed, (the| followi|
|000006a0| 6e 67 20 61 73 73 75 6d | 65 73 20 61 6e 20 49 53 |ng assum|es an IS|
|000006b0| 43 20 64 69 72 65 63 74 | 6f 72 79 20 73 74 72 63 |C direct|ory strc|
|000006c0| 74 75 72 65 20 66 6f 72 | 20 69 6e 73 74 61 6c 6c |ture for| install|
|000006d0| 69 6e 67 0a 58 64 65 76 | 69 63 65 20 64 72 69 76 |ing.Xdev|ice driv|
|000006e0| 65 72 73 2c 20 64 6f 6e | 27 74 20 6b 6e 6f 77 20 |ers, don|'t know |
|000006f0| 69 66 20 45 53 49 58 20 | 66 6f 6c 6c 6f 77 73 20 |if ESIX |follows |
|00000700| 74 68 65 20 73 61 6d 65 | 20 63 6f 6e 76 65 6e 74 |the same| convent|
|00000710| 69 6f 6e 73 29 3a 0a 58 | 0a 58 20 20 20 6c 6d 6f |ions):.X|.X lmo|
|00000720| 75 73 65 2e 63 20 20 20 | 20 20 20 20 20 2d 2d 20 |use.c | -- |
|00000730| 44 72 69 76 65 72 20 73 | 6f 75 72 63 65 2e 20 20 |Driver s|ource. |
|00000740| 41 66 74 65 72 20 63 6f | 6d 70 69 6c 65 64 20 74 |After co|mpiled t|
|00000750| 68 65 20 6f 62 6a 65 63 | 74 20 66 69 6c 65 20 6e |he objec|t file n|
|00000760| 65 65 64 73 0a 58 20 20 | 20 20 20 20 20 20 20 20 |eeds.X | |
|00000770| 20 20 20 20 20 20 20 20 | 20 20 20 20 74 6f 20 62 | | to b|
|00000780| 65 20 70 6c 61 63 65 64 | 20 69 6e 20 2f 65 74 63 |e placed| in /etc|
|00000790| 2f 63 6f 6e 66 2f 70 61 | 63 6b 2e 64 2f 6c 6d 6f |/conf/pa|ck.d/lmo|
|000007a0| 75 73 65 2f 44 72 69 76 | 65 72 2e 6f 0a 58 0a 58 |use/Driv|er.o.X.X|
|000007b0| 20 20 20 6c 6d 6f 75 73 | 65 2e 6e 6f 64 65 20 20 | lmous|e.node |
|000007c0| 20 20 20 2d 2d 20 43 6f | 70 79 20 74 68 69 73 20 | -- Co|py this |
|000007d0| 66 69 6c 65 20 74 6f 20 | 2f 65 74 63 2f 63 6f 6e |file to |/etc/con|
|000007e0| 66 2f 6e 6f 64 65 2e 64 | 2f 6c 6d 6f 75 73 65 0a |f/node.d|/lmouse.|
|000007f0| 58 0a 58 20 20 20 6c 6d | 6f 75 73 65 2e 73 64 65 |X.X lm|ouse.sde|
|00000800| 76 69 63 65 20 20 2d 2d | 20 43 6f 70 79 20 74 68 |vice --| Copy th|
|00000810| 69 73 20 66 69 6c 65 20 | 74 6f 20 2f 65 74 63 2f |is file |to /etc/|
|00000820| 63 6f 6e 66 2f 73 64 65 | 76 69 63 65 2e 64 2f 6c |conf/sde|vice.d/l|
|00000830| 6d 6f 75 73 65 0a 58 0a | 58 20 20 20 6d 74 2e 63 |mouse.X.|X mt.c|
|00000840| 20 61 6e 64 20 6d 74 32 | 2e 63 20 20 2d 2d 20 54 | and mt2|.c -- T|
|00000850| 65 73 74 20 70 72 6f 67 | 72 61 6d 73 2e 0a 58 0a |est prog|rams..X.|
|00000860| 58 46 69 6e 61 6c 6c 79 | 2c 20 79 6f 75 27 6c 6c |XFinally|, you'll|
|00000870| 20 6e 65 65 64 20 74 6f | 20 61 64 64 20 74 68 65 | need to| add the|
|00000880| 20 66 6f 6c 6c 6f 77 69 | 6e 67 20 6c 69 6e 65 20 | followi|ng line |
|00000890| 74 6f 20 74 68 65 0a 58 | 2f 65 74 63 2f 63 6f 6e |to the.X|/etc/con|
|000008a0| 66 2f 6b 63 6f 6e 66 69 | 67 2e 64 2f 64 65 73 63 |f/kconfi|g.d/desc|
|000008b0| 72 69 70 74 69 6f 6e 20 | 66 69 6c 65 2c 20 28 6e |ription |file, (n|
|000008c0| 6f 74 65 20 74 68 61 74 | 20 74 68 65 20 66 69 65 |ote that| the fie|
|000008d0| 6c 64 73 20 61 72 65 20 | 73 65 70 61 72 61 74 65 |lds are |separate|
|000008e0| 64 0a 58 62 79 20 74 61 | 62 73 20 6e 6f 74 20 73 |d.Xby ta|bs not s|
|000008f0| 70 61 63 65 73 29 3a 0a | 58 0a 58 6c 6d 6f 75 73 |paces):.|X.Xlmous|
|00000900| 65 09 30 09 31 39 09 69 | 6f 09 6c 6d 6f 75 73 65 |e.0.19.i|o.lmouse|
|00000910| 09 09 4d 79 20 4c 6f 67 | 69 74 65 63 68 20 42 75 |..My Log|itech Bu|
|00000920| 73 20 4d 6f 75 73 65 20 | 44 72 69 76 65 72 0a 58 |s Mouse |Driver.X|
|00000930| 0a 58 47 6f 6f 64 20 6c | 75 63 6b 20 61 6e 64 20 |.XGood l|uck and |
|00000940| 68 61 70 70 79 20 68 61 | 63 6b 69 6e 67 2e 2e 2e |happy ha|cking...|
|00000950| 0a 58 0a 58 2d 2d 20 4d | 61 72 6b 0a 58 0a 58 4d |.X.X-- M|ark.X.XM|
|00000960| 61 72 6b 20 57 2e 20 53 | 6e 69 74 69 6c 79 20 20 |ark W. S|nitily |
|00000970| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 43 | | C|
|00000980| 6f 6e 73 75 6c 74 69 6e | 67 20 53 65 72 76 69 63 |onsultin|g Servic|
|00000990| 65 73 3a 0a 58 38 39 34 | 20 42 72 6f 6f 6b 67 72 |es:.X894| Brookgr|
|000009a0| 6f 76 65 20 4c 61 6e 65 | 20 20 20 20 20 20 20 20 |ove Lane| |
|000009b0| 20 20 20 20 20 47 72 61 | 70 68 69 63 73 2c 20 4f | Gra|phics, O|
|000009c0| 70 65 72 61 74 69 6e 67 | 20 53 79 73 74 65 6d 73 |perating| Systems|
|000009d0| 2c 20 43 6f 6d 70 69 6c | 65 72 73 0a 58 43 75 70 |, Compil|ers.XCup|
|000009e0| 65 72 74 69 6e 6f 2c 20 | 43 41 20 39 35 30 31 34 |ertino, |CA 95014|
|000009f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 28 34 30 | | (40|
|00000a00| 38 29 20 32 35 32 2d 30 | 34 35 36 0a 58 6d 61 72 |8) 252-0|456.Xmar|
|00000a10| 6b 40 7a 6f 6b 2e 75 75 | 63 70 20 20 20 20 20 20 |k@zok.uu|cp |
|00000a20| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 57 65 73 | | Wes|
|00000a30| 74 20 43 6f 61 73 74 20 | 55 55 43 50 20 58 31 31 |t Coast |UUCP X11|
|00000a40| 20 61 72 63 68 69 76 65 | 20 73 69 74 65 0a 58 0a | archive| site.X.|
|00000a50| 58 49 66 20 79 6f 75 72 | 20 6d 61 69 6c 65 72 20 |XIf your| mailer |
|00000a60| 64 6f 65 73 6e 27 74 20 | 6c 69 6b 65 20 74 68 65 |doesn't |like the|
|00000a70| 20 2e 75 75 63 70 20 64 | 6f 6d 61 69 6e 2c 20 74 | .uucp d|omain, t|
|00000a80| 68 65 73 65 20 61 6c 73 | 6f 20 77 6f 72 6b 3a 0a |hese als|o work:.|
|00000a90| 58 2e 2e 2e 21 7b 6d 69 | 70 73 2c 73 67 69 7d 21 |X...!{mi|ps,sgi}!|
|00000aa0| 7a 6f 6b 21 6d 61 72 6b | 2c 20 6d 61 72 6b 25 7a |zok!mark|, mark%z|
|00000ab0| 6f 6b 40 6d 69 70 73 2e | 63 6f 6d 2c 20 6d 61 72 |ok@mips.|com, mar|
|00000ac0| 6b 25 7a 6f 6b 40 73 67 | 69 2e 63 6f 6d 0a 58 0a |k%zok@sg|i.com.X.|
|00000ad0| 58 20 41 64 64 65 6e 64 | 75 6d 20 66 6f 72 20 45 |X Addend|um for E|
|00000ae0| 53 49 58 20 52 65 76 2e | 20 44 20 32 36 20 4a 61 |SIX Rev.| D 26 Ja|
|00000af0| 6e 20 39 31 0a 58 0a 58 | 20 20 54 68 69 73 20 64 |n 91.X.X| This d|
|00000b00| 72 69 76 65 72 20 77 6f | 72 6b 73 20 66 6f 72 20 |river wo|rks for |
|00000b10| 45 53 49 58 20 52 65 76 | 2e 20 44 20 77 69 74 68 |ESIX Rev|. D with|
|00000b20| 20 6e 6f 20 70 72 6f 62 | 6c 65 6d 20 61 73 20 6c | no prob|lem as l|
|00000b30| 6f 6e 67 20 61 73 20 74 | 68 65 20 58 0a 58 20 20 |ong as t|he X.X |
|00000b40| 77 69 6e 64 6f 77 20 73 | 79 73 74 65 6d 20 69 73 |window s|ystem is|
|00000b50| 20 6e 6f 74 20 69 6e 73 | 74 61 6c 6c 65 64 2e 20 | not ins|talled. |
|00000b60| 20 54 68 69 73 20 69 73 | 20 62 65 63 61 75 73 65 | This is| because|
|00000b70| 20 74 68 65 20 64 72 69 | 76 65 72 20 66 6f 72 20 | the dri|ver for |
|00000b80| 74 68 65 20 6d 6f 75 73 | 65 0a 58 20 20 77 69 6c |the mous|e.X wil|
|00000b90| 6c 20 63 6f 6e 66 6c 69 | 63 74 20 77 69 74 68 20 |l confli|ct with |
|00000ba0| 74 68 65 20 64 72 69 76 | 65 72 20 66 6f 72 20 58 |the driv|er for X|
|00000bb0| 2e 20 20 53 69 6e 63 65 | 20 49 20 61 6d 20 77 6f |. Since| I am wo|
|00000bc0| 72 6b 69 6e 67 20 6f 6e | 20 52 6f 65 6c 6c 27 73 |rking on| Roell's|
|00000bd0| 20 58 31 31 52 34 0a 58 | 20 20 73 65 72 76 65 72 | X11R4.X| server|
|00000be0| 2c 20 74 68 65 6e 20 49 | 20 69 74 20 77 6f 6e 27 |, then I| it won'|
|00000bf0| 74 20 6d 61 74 74 65 72 | 20 6f 6e 63 65 20 49 20 |t matter| once I |
|00000c00| 67 65 74 20 74 68 61 74 | 20 73 65 72 76 65 72 20 |get that| server |
|00000c10| 75 70 20 61 6e 64 20 72 | 75 6e 6e 69 6e 67 20 73 |up and r|unning s|
|00000c20| 69 6e 63 65 0a 58 20 20 | 49 20 77 69 6c 6c 20 62 |ince.X |I will b|
|00000c30| 65 20 61 62 6c 65 20 74 | 6f 20 75 73 65 20 74 68 |e able t|o use th|
|00000c40| 65 20 62 75 73 20 6d 6f | 75 73 65 20 77 69 74 68 |e bus mo|use with|
|00000c50| 20 74 68 61 74 20 73 65 | 72 76 65 72 2e 20 20 45 | that se|rver. E|
|00000c60| 53 49 58 20 68 61 73 20 | 6e 6f 0a 58 20 20 6b 63 |SIX has |no.X kc|
|00000c70| 6f 6e 66 69 67 2e 64 20 | 64 69 72 65 63 74 6f 72 |onfig.d |director|
|00000c80| 79 20 73 6f 20 69 67 6e | 6f 72 65 20 74 68 65 20 |y so ign|ore the |
|00000c90| 64 65 73 63 72 69 70 74 | 69 6f 6e 20 66 69 6c 65 |descript|ion file|
|00000ca0| 2e 20 20 54 68 65 20 6f | 6e 6c 79 20 69 6e 66 6f |. The o|nly info|
|00000cb0| 20 6e 6f 74 20 67 69 76 | 65 6e 0a 58 20 20 69 73 | not giv|en.X is|
|00000cc0| 20 77 68 61 74 20 74 6f | 20 70 75 74 20 69 6e 20 | what to| put in |
|00000cd0| 2f 65 74 63 2f 63 6f 6e | 66 2f 63 66 2e 64 2f 6d |/etc/con|f/cf.d/m|
|00000ce0| 64 65 76 69 63 65 2e 20 | 20 48 65 72 65 20 69 73 |device. | Here is|
|00000cf0| 20 74 68 65 20 6c 69 6e | 65 20 74 68 61 74 20 49 | the lin|e that I|
|00000d00| 20 70 75 74 20 69 6e 20 | 0a 58 20 20 6d 69 6e 65 | put in |.X mine|
|00000d10| 20 61 6e 64 20 69 74 20 | 73 65 65 6d 73 20 74 6f | and it |seems to|
|00000d20| 20 77 6f 72 6b 3a 0a 58 | 0a 58 20 6c 6d 6f 75 73 | work:.X|.X lmous|
|00000d30| 65 09 49 69 6f 63 09 69 | 63 48 09 6c 6f 67 6d 09 |e.Iioc.i|cH.logm.|
|00000d40| 30 09 32 33 09 31 09 31 | 09 2d 31 0a 58 0a 58 20 |0.23.1.1|.-1.X.X |
|00000d50| 20 47 6f 6f 64 20 6c 75 | 63 6b 20 61 6e 64 20 65 | Good lu|ck and e|
|00000d60| 6d 61 69 6c 20 77 69 74 | 68 20 71 75 65 73 74 69 |mail wit|h questi|
|00000d70| 6f 6e 73 20 6f 72 20 70 | 72 6f 62 6c 65 6d 73 2e |ons or p|roblems.|
|00000d80| 20 20 53 70 65 63 69 61 | 6c 20 74 68 61 6e 6b 73 | Specia|l thanks|
|00000d90| 20 74 6f 20 4d 61 72 6b | 2c 0a 58 20 20 77 68 6f | to Mark|,.X who|
|00000da0| 20 64 69 64 20 39 39 25 | 20 6f 66 20 74 68 65 20 | did 99%| of the |
|00000db0| 77 6f 72 6b 2e 0a 58 0a | 58 20 20 4a 69 6d 20 43 |work..X.|X Jim C|
|00000dc0| 68 61 6e 64 6c 65 72 0a | 58 20 20 61 73 75 76 61 |handler.|X asuva|
|00000dd0| 78 21 78 72 6f 61 64 73 | 21 62 65 61 67 6c 65 21 |x!xroads|!beagle!|
|00000de0| 63 68 61 6e 64 6c 65 72 | 0a 58 20 20 63 68 61 6e |chandler|.X chan|
|00000df0| 64 6c 65 72 40 62 65 61 | 67 6c 65 2e 75 75 63 70 |dler@bea|gle.uucp|
|00000e00| 0a 58 0a 45 4e 44 5f 4f | 46 5f 46 49 4c 45 0a 69 |.X.END_O|F_FILE.i|
|00000e10| 66 20 74 65 73 74 20 32 | 34 37 37 20 2d 6e 65 20 |f test 2|477 -ne |
|00000e20| 60 77 63 20 2d 63 20 3c | 27 52 45 41 44 4d 45 27 |`wc -c <|'README'|
|00000e30| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00000e40| 20 73 68 61 72 3a 20 5c | 22 27 52 45 41 44 4d 45 | shar: \|"'README|
|00000e50| 27 5c 22 20 75 6e 70 61 | 63 6b 65 64 20 77 69 74 |'\" unpa|cked wit|
|00000e60| 68 20 77 72 6f 6e 67 20 | 73 69 7a 65 21 0a 66 69 |h wrong |size!.fi|
|00000e70| 0a 23 20 65 6e 64 20 6f | 66 20 27 52 45 41 44 4d |.# end o|f 'READM|
|00000e80| 45 27 0a 66 69 0a 69 66 | 20 74 65 73 74 20 2d 66 |E'.fi.if| test -f|
|00000e90| 20 27 6c 6d 6f 75 73 65 | 2e 63 27 20 2d 61 20 22 | 'lmouse|.c' -a "|
|00000ea0| 24 7b 31 7d 22 20 21 3d | 20 22 2d 63 22 20 3b 20 |${1}" !=| "-c" ; |
|00000eb0| 74 68 65 6e 20 0a 20 20 | 65 63 68 6f 20 73 68 61 |then . |echo sha|
|00000ec0| 72 3a 20 57 69 6c 6c 20 | 6e 6f 74 20 63 6c 6f 62 |r: Will |not clob|
|00000ed0| 62 65 72 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ber exis|ting fil|
|00000ee0| 65 20 5c 22 27 6c 6d 6f | 75 73 65 2e 63 27 5c 22 |e \"'lmo|use.c'\"|
|00000ef0| 0a 65 6c 73 65 0a 65 63 | 68 6f 20 73 68 61 72 3a |.else.ec|ho shar:|
|00000f00| 20 45 78 74 72 61 63 74 | 69 6e 67 20 5c 22 27 6c | Extract|ing \"'l|
|00000f10| 6d 6f 75 73 65 2e 63 27 | 5c 22 20 5c 28 31 32 34 |mouse.c'|\" \(124|
|00000f20| 30 33 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |03 chara|cters\).|
|00000f30| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 6c |sed "s/^|X//" >'l|
|00000f40| 6d 6f 75 73 65 2e 63 27 | 20 3c 3c 27 45 4e 44 5f |mouse.c'| <<'END_|
|00000f50| 4f 46 5f 46 49 4c 45 27 | 0a 58 23 64 65 66 69 6e |OF_FILE'|.X#defin|
|00000f60| 65 20 56 50 49 58 0a 58 | 0a 58 23 69 6e 63 6c 75 |e VPIX.X|.X#inclu|
|00000f70| 64 65 20 22 73 79 73 2f | 70 61 72 61 6d 2e 68 22 |de "sys/|param.h"|
|00000f80| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 73 79 73 2f |.X#inclu|de "sys/|
|00000f90| 74 79 70 65 73 2e 68 22 | 0a 58 23 69 6e 63 6c 75 |types.h"|.X#inclu|
|00000fa0| 64 65 20 22 73 79 73 2f | 73 79 73 6d 61 63 72 6f |de "sys/|sysmacro|
|00000fb0| 73 2e 68 22 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |s.h".X#i|nclude "|
|00000fc0| 73 79 73 2f 64 69 72 2e | 68 22 0a 58 23 69 6e 63 |sys/dir.|h".X#inc|
|00000fd0| 6c 75 64 65 20 22 73 79 | 73 2f 73 69 67 6e 61 6c |lude "sy|s/signal|
|00000fe0| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 73 |.h".X#in|clude "s|
|00000ff0| 79 73 2f 75 73 65 72 2e | 68 22 0a 58 23 69 6e 63 |ys/user.|h".X#inc|
|00001000| 6c 75 64 65 20 22 73 79 | 73 2f 65 72 72 6e 6f 2e |lude "sy|s/errno.|
|00001010| 68 22 0a 58 0a 58 2f 2a | 20 44 65 66 69 6e 69 74 |h".X.X/*| Definit|
|00001020| 69 6f 6e 73 20 66 6f 72 | 20 4c 6f 67 69 74 65 63 |ions for| Logitec|
|00001030| 68 20 4d 6f 75 73 65 20 | 2a 2f 0a 58 0a 58 2f 2a |h Mouse |*/.X.X/*|
|00001040| 20 42 61 73 65 20 49 2f | 4f 20 61 64 64 72 65 73 | Base I/|O addres|
|00001050| 73 65 73 20 6f 66 20 6d | 6f 75 73 65 20 72 65 67 |ses of m|ouse reg|
|00001060| 69 73 74 65 72 73 20 2a | 2f 0a 58 23 64 65 66 69 |isters *|/.X#defi|
|00001070| 6e 65 20 44 41 54 41 5f | 52 45 47 20 20 20 20 20 |ne DATA_|REG |
|00001080| 20 30 78 32 33 63 20 20 | 2f 2a 20 44 61 74 61 20 | 0x23c |/* Data |
|00001090| 20 20 20 20 20 20 20 20 | 20 72 65 67 69 73 74 65 | | registe|
|000010a0| 72 20 28 72 65 61 64 20 | 20 6f 6e 6c 79 29 20 2a |r (read | only) *|
|000010b0| 2f 0a 58 23 64 65 66 69 | 6e 65 20 53 49 47 4e 41 |/.X#defi|ne SIGNA|
|000010c0| 54 55 52 45 5f 52 45 47 | 20 30 78 32 33 64 20 20 |TURE_REG| 0x23d |
|000010d0| 2f 2a 20 53 69 67 6e 61 | 74 75 72 65 20 20 20 20 |/* Signa|ture |
|000010e0| 20 72 65 67 69 73 74 65 | 72 20 28 72 65 61 64 2f | registe|r (read/|
|000010f0| 77 72 69 74 65 29 20 2a | 2f 0a 58 23 64 65 66 69 |write) *|/.X#defi|
|00001100| 6e 65 20 49 4e 54 45 52 | 52 55 50 54 5f 52 45 47 |ne INTER|RUPT_REG|
|00001110| 20 30 78 32 33 65 20 20 | 2f 2a 20 49 6e 74 65 72 | 0x23e |/* Inter|
|00001120| 72 75 70 74 20 20 20 20 | 20 72 65 67 69 73 74 65 |rupt | registe|
|00001130| 72 20 28 72 65 61 64 20 | 20 6f 6e 6c 79 29 20 2a |r (read | only) *|
|00001140| 2f 0a 58 23 64 65 66 69 | 6e 65 20 43 4f 4e 54 52 |/.X#defi|ne CONTR|
|00001150| 4f 4c 5f 52 45 47 20 20 | 20 30 78 32 33 65 20 20 |OL_REG | 0x23e |
|00001160| 2f 2a 20 43 6f 6e 74 72 | 6f 6c 20 20 20 20 20 20 |/* Contr|ol |
|00001170| 20 72 65 67 69 73 74 65 | 72 20 28 77 72 69 74 65 | registe|r (write|
|00001180| 20 6f 6e 6c 79 29 20 2a | 2f 0a 58 23 64 65 66 69 | only) *|/.X#defi|
|00001190| 6e 65 20 43 4f 4e 46 49 | 47 5f 52 45 47 20 20 20 |ne CONFI|G_REG |
|000011a0| 20 30 78 32 33 66 20 20 | 2f 2a 20 43 6f 6e 66 69 | 0x23f |/* Confi|
|000011b0| 67 75 72 61 74 69 6f 6e | 20 72 65 67 69 73 74 65 |guration| registe|
|000011c0| 72 20 28 72 65 61 64 2f | 77 72 69 74 65 29 20 2a |r (read/|write) *|
|000011d0| 2f 0a 58 0a 58 2f 2a 20 | 44 65 66 69 6e 69 74 69 |/.X.X/* |Definiti|
|000011e0| 6f 6e 73 20 6f 66 20 62 | 69 74 73 20 69 6e 20 69 |ons of b|its in i|
|000011f0| 6e 74 65 72 72 75 70 74 | 20 72 65 67 69 73 74 65 |nterrupt| registe|
|00001200| 72 2e 20 2a 2f 0a 58 23 | 64 65 66 69 6e 65 20 49 |r. */.X#|define I|
|00001210| 52 51 35 20 30 78 30 31 | 0a 58 23 64 65 66 69 6e |RQ5 0x01|.X#defin|
|00001220| 65 20 49 52 51 34 20 30 | 78 30 32 0a 58 23 64 65 |e IRQ4 0|x02.X#de|
|00001230| 66 69 6e 65 20 49 52 51 | 33 20 30 78 30 34 0a 58 |fine IRQ|3 0x04.X|
|00001240| 23 64 65 66 69 6e 65 20 | 49 52 51 32 20 30 78 30 |#define |IRQ2 0x0|
|00001250| 38 0a 58 0a 58 2f 2a 20 | 44 65 66 69 6e 69 74 69 |8.X.X/* |Definiti|
|00001260| 6f 6e 73 20 6f 66 20 62 | 69 74 73 20 69 6e 20 63 |ons of b|its in c|
|00001270| 6f 6e 74 72 6f 6c 20 72 | 65 67 69 73 74 65 72 2e |ontrol r|egister.|
|00001280| 20 2a 2f 0a 58 23 64 65 | 66 69 6e 65 20 44 49 4e | */.X#de|fine DIN|
|00001290| 54 20 30 78 31 30 20 20 | 2f 2a 20 44 69 73 61 62 |T 0x10 |/* Disab|
|000012a0| 6c 65 20 49 6e 74 65 72 | 72 75 70 74 73 20 2a 2f |le Inter|rupts */|
|000012b0| 0a 58 23 64 65 66 69 6e | 65 20 53 48 4c 20 20 30 |.X#defin|e SHL 0|
|000012c0| 78 32 30 20 20 2f 2a 20 | 53 65 6c 65 63 74 20 48 |x20 /* |Select H|
|000012d0| 69 2f 4c 6f 20 28 30 2f | 31 29 20 6e 69 62 62 6c |i/Lo (0/|1) nibbl|
|000012e0| 65 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 20 53 58 |e */.X#d|efine SX|
|000012f0| 59 20 20 30 78 34 30 20 | 20 2f 2a 20 53 65 6c 65 |Y 0x40 | /* Sele|
|00001300| 63 74 20 58 2f 59 20 28 | 30 2f 31 29 20 63 6f 75 |ct X/Y (|0/1) cou|
|00001310| 6e 74 65 72 20 2a 2f 0a | 58 23 64 65 66 69 6e 65 |nter */.|X#define|
|00001320| 20 48 43 20 20 20 30 78 | 38 30 20 20 2f 2a 20 48 | HC 0x|80 /* H|
|00001330| 6f 6c 64 20 43 6f 75 6e | 74 65 72 73 20 28 6c 61 |old Coun|ters (la|
|00001340| 74 63 68 20 63 6f 75 6e | 74 65 72 73 20 6f 6e 20 |tch coun|ters on |
|00001350| 30 2d 3e 31 20 65 64 67 | 65 29 20 2a 2f 0a 58 0a |0->1 edg|e) */.X.|
|00001360| 58 2f 2a 20 4d 61 67 69 | 63 20 6e 75 6d 62 65 72 |X/* Magi|c number|
|00001370| 20 6e 65 65 64 65 64 20 | 66 6f 72 20 63 6f 6e 66 | needed |for conf|
|00001380| 69 67 75 72 61 74 69 6f | 6e 20 72 65 67 69 73 74 |iguratio|n regist|
|00001390| 65 72 2e 20 2a 2f 0a 58 | 23 64 65 66 69 6e 65 20 |er. */.X|#define |
|000013a0| 43 4f 4e 46 49 47 5f 42 | 59 54 45 20 30 78 39 31 |CONFIG_B|YTE 0x91|
|000013b0| 0a 58 0a 58 23 64 65 66 | 69 6e 65 20 42 55 54 33 |.X.X#def|ine BUT3|
|000013c0| 53 54 41 54 20 20 20 20 | 20 20 20 20 30 78 30 31 |STAT | 0x01|
|000013d0| 0a 58 23 64 65 66 69 6e | 65 20 42 55 54 32 53 54 |.X#defin|e BUT2ST|
|000013e0| 41 54 20 20 20 20 20 20 | 20 20 30 78 30 32 0a 58 |AT | 0x02.X|
|000013f0| 23 64 65 66 69 6e 65 20 | 42 55 54 31 53 54 41 54 |#define |BUT1STAT|
|00001400| 20 20 20 20 20 20 20 20 | 30 78 30 34 0a 58 0a 58 | |0x04.X.X|
|00001410| 23 64 65 66 69 6e 65 20 | 42 55 54 33 43 48 4e 47 |#define |BUT3CHNG|
|00001420| 20 20 20 20 20 20 20 20 | 30 78 30 38 0a 58 23 64 | |0x08.X#d|
|00001430| 65 66 69 6e 65 20 42 55 | 54 32 43 48 4e 47 20 20 |efine BU|T2CHNG |
|00001440| 20 20 20 20 20 20 30 78 | 31 30 0a 58 23 64 65 66 | 0x|10.X#def|
|00001450| 69 6e 65 20 42 55 54 31 | 43 48 4e 47 20 20 20 20 |ine BUT1|CHNG |
|00001460| 20 20 20 20 30 78 32 30 | 0a 58 23 64 65 66 69 6e | 0x20|.X#defin|
|00001470| 65 20 4d 4f 56 45 4d 45 | 4e 54 20 20 20 20 20 20 |e MOVEME|NT |
|00001480| 20 20 30 78 34 30 0a 58 | 0a 58 23 64 65 66 69 6e | 0x40.X|.X#defin|
|00001490| 65 20 42 55 54 53 54 41 | 54 4d 41 53 4b 20 20 20 |e BUTSTA|TMASK |
|000014a0| 20 20 30 78 30 37 0a 58 | 23 64 65 66 69 6e 65 20 | 0x07.X|#define |
|000014b0| 42 55 54 43 48 4e 47 4d | 41 53 4b 20 20 20 20 20 |BUTCHNGM|ASK |
|000014c0| 30 78 33 38 0a 58 0a 58 | 73 74 72 75 63 74 20 6d |0x38.X.X|struct m|
|000014d0| 6f 75 73 65 69 6e 66 6f | 0a 58 7b 20 20 20 20 20 |ouseinfo|.X{ |
|000014e0| 20 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 | unsign|ed char |
|000014f0| 73 74 61 74 75 73 3b 0a | 58 09 63 68 61 72 20 78 |status;.|X.char x|
|00001500| 6d 6f 74 69 6f 6e 2c 20 | 79 6d 6f 74 69 6f 6e 3b |motion, |ymotion;|
|00001510| 0a 58 7d 3b 0a 58 0a 58 | 2f 2a 20 49 6f 63 74 6c |.X};.X.X|/* Ioctl|
|00001520| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 2a 2f 0a | definit|ions */.|
|00001530| 58 23 64 65 66 69 6e 65 | 20 4d 4f 55 53 45 49 4f |X#define| MOUSEIO|
|00001540| 43 20 20 20 20 20 20 20 | 20 28 27 4d 27 3c 3c 38 |C | ('M'<<8|
|00001550| 29 0a 58 23 64 65 66 69 | 6e 65 20 4d 4f 55 53 45 |).X#defi|ne MOUSE|
|00001560| 49 4f 43 52 45 41 44 20 | 20 20 20 28 4d 4f 55 53 |IOCREAD | (MOUS|
|00001570| 45 49 4f 43 7c 36 30 29 | 0a 58 0a 58 23 69 66 64 |EIOC|60)|.X.X#ifd|
|00001580| 65 66 20 56 50 49 58 0a | 58 23 64 65 66 69 6e 65 |ef VPIX.|X#define|
|00001590| 20 56 50 43 5f 4d 4f 55 | 53 45 5f 52 45 41 44 20 | VPC_MOU|SE_READ |
|000015a0| 20 4d 4f 55 53 45 49 4f | 43 52 45 41 44 0a 58 23 | MOUSEIO|CREAD.X#|
|000015b0| 65 6e 64 69 66 20 2f 2a | 20 56 50 49 58 20 2a 2f |endif /*| VPIX */|
|000015c0| 0a 58 0a 58 23 69 66 64 | 65 66 20 56 50 49 58 0a |.X.X#ifd|ef VPIX.|
|000015d0| 58 23 69 6e 63 6c 75 64 | 65 20 22 73 79 73 2f 69 |X#includ|e "sys/i|
|000015e0| 6d 6d 75 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |mmu.h".X|#include|
|000015f0| 20 22 73 79 73 2f 72 65 | 67 69 6f 6e 2e 68 22 0a | "sys/re|gion.h".|
|00001600| 58 23 69 6e 63 6c 75 64 | 65 20 22 73 79 73 2f 70 |X#includ|e "sys/p|
|00001610| 72 6f 63 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |roc.h".X|#include|
|00001620| 20 22 73 79 73 2f 74 73 | 73 2e 68 22 0a 58 23 69 | "sys/ts|s.h".X#i|
|00001630| 6e 63 6c 75 64 65 20 22 | 73 79 73 2f 76 38 36 2e |nclude "|sys/v86.|
|00001640| 68 22 0a 58 23 65 6e 64 | 69 66 20 2f 2a 20 56 50 |h".X#end|if /* VP|
|00001650| 49 58 20 2a 2f 0a 58 0a | 58 73 74 61 74 69 63 20 |IX */.X.|Xstatic |
|00001660| 63 68 61 72 20 6d 6f 75 | 73 65 70 72 65 73 65 6e |char mou|sepresen|
|00001670| 74 3b 0a 58 73 74 61 74 | 69 63 20 63 68 61 72 20 |t;.Xstat|ic char |
|00001680| 6d 6f 75 73 65 69 6e 75 | 73 65 3b 0a 58 73 74 61 |mouseinu|se;.Xsta|
|00001690| 74 69 63 20 63 68 61 72 | 20 6d 6f 75 73 65 6d 6f |tic char| mousemo|
|000016a0| 64 65 3b 0a 58 73 74 61 | 74 69 63 20 63 68 61 72 |de;.Xsta|tic char|
|000016b0| 20 6c 61 73 74 5f 62 75 | 74 74 6f 6e 73 3b 0a 58 | last_bu|ttons;.X|
|000016c0| 73 74 61 74 69 63 20 63 | 68 61 72 20 6d 6f 75 73 |static c|har mous|
|000016d0| 65 73 74 61 74 75 73 3b | 0a 58 73 74 61 74 69 63 |estatus;|.Xstatic|
|000016e0| 20 69 6e 74 20 78 6d 6f | 74 69 6f 6e 2c 20 79 6d | int xmo|tion, ym|
|000016f0| 6f 74 69 6f 6e 3b 0a 58 | 23 69 66 64 65 66 20 56 |otion;.X|#ifdef V|
|00001700| 50 49 58 0a 58 73 74 61 | 74 69 63 20 73 74 72 75 |PIX.Xsta|tic stru|
|00001710| 63 74 20 70 72 6f 63 20 | 2a 65 63 74 70 72 6f 63 |ct proc |*ectproc|
|00001720| 3b 0a 58 73 74 61 74 69 | 63 20 63 68 61 72 20 72 |;.Xstati|c char r|
|00001730| 75 70 74 65 64 3b 0a 58 | 23 65 6e 64 69 66 20 2f |upted;.X|#endif /|
|00001740| 2a 20 56 50 49 58 20 2a | 2f 0a 58 0a 58 23 64 65 |* VPIX *|/.X.X#de|
|00001750| 66 69 6e 65 20 55 50 50 | 45 52 4c 49 4d 20 20 20 |fine UPP|ERLIM |
|00001760| 20 31 32 37 0a 58 23 64 | 65 66 69 6e 65 20 4c 4f | 127.X#d|efine LO|
|00001770| 57 45 52 4c 49 4d 20 20 | 20 2d 31 32 38 0a 58 23 |WERLIM | -128.X#|
|00001780| 64 65 66 69 6e 65 20 4f | 4e 45 42 59 54 45 28 78 |define O|NEBYTE(x|
|00001790| 29 20 28 28 78 29 3e 55 | 50 50 45 52 4c 49 4d 20 |) ((x)>U|PPERLIM |
|000017a0| 3f 20 55 50 50 45 52 4c | 49 4d 20 3a 20 28 78 29 |? UPPERL|IM : (x)|
|000017b0| 3c 4c 4f 57 45 52 4c 49 | 4d 20 3f 20 4c 4f 57 45 |<LOWERLI|M ? LOWE|
|000017c0| 52 4c 49 4d 20 3a 20 28 | 78 29 29 0a 58 0a 58 2f |RLIM : (|x)).X.X/|
|000017d0| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|000017e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0a 58 |--------|----*/.X|
|00001820| 76 6f 69 64 20 6c 6f 67 | 6d 69 6e 69 74 28 29 0a |void log|minit().|
|00001830| 58 7b 0a 58 20 20 20 75 | 6e 73 69 67 6e 65 64 20 |X{.X u|nsigned |
|00001840| 63 68 61 72 20 69 64 31 | 2c 20 69 64 32 2c 20 74 |char id1|, id2, t|
|00001850| 6f 67 67 6c 65 73 2c 20 | 69 72 71 3b 0a 58 20 20 |oggles, |irq;.X |
|00001860| 20 69 6e 74 20 69 3b 0a | 58 0a 58 20 20 20 2f 2a | int i;.|X.X /*|
|00001870| 20 41 73 73 75 6d 65 20 | 6e 6f 20 6d 6f 75 73 65 | Assume |no mouse|
|00001880| 20 69 6e 20 73 79 73 74 | 65 6d 2e 20 2a 2f 0a 58 | in syst|em. */.X|
|00001890| 20 20 20 6d 6f 75 73 65 | 69 6e 75 73 65 20 3d 20 | mouse|inuse = |
|000018a0| 6d 6f 75 73 65 70 72 65 | 73 65 6e 74 20 3d 20 30 |mousepre|sent = 0|
|000018b0| 3b 0a 58 0a 58 20 20 20 | 2f 2a 20 49 6e 69 74 69 |;.X.X |/* Initi|
|000018c0| 61 6c 69 7a 65 20 63 6f | 6e 66 69 67 75 72 61 74 |alize co|nfigurat|
|000018d0| 69 6f 6e 20 72 65 67 69 | 73 74 65 72 20 77 69 74 |ion regi|ster wit|
|000018e0| 68 20 74 68 65 20 72 65 | 71 75 69 72 65 64 20 6d |h the re|quired m|
|000018f0| 61 67 69 63 20 6e 75 6d | 62 65 72 2e 20 2a 2f 0a |agic num|ber. */.|
|00001900| 58 20 20 20 6f 75 74 62 | 28 43 4f 4e 46 49 47 5f |X outb|(CONFIG_|
|00001910| 52 45 47 2c 20 43 4f 4e | 46 49 47 5f 42 59 54 45 |REG, CON|FIG_BYTE|
|00001920| 29 3b 0a 58 0a 58 20 20 | 20 2f 2a 20 53 65 65 20 |);.X.X | /* See |
|00001930| 69 66 20 77 65 20 63 61 | 6e 20 73 74 6f 72 65 20 |if we ca|n store |
|00001940| 69 6e 74 6f 20 74 68 65 | 20 73 69 67 6e 61 74 75 |into the| signatu|
|00001950| 72 65 20 72 65 67 69 73 | 74 65 72 2e 20 20 49 66 |re regis|ter. If|
|00001960| 20 6e 6f 74 20 72 65 74 | 75 72 6e 2e 20 2a 2f 0a | not ret|urn. */.|
|00001970| 58 20 20 20 6f 75 74 62 | 28 53 49 47 4e 41 54 55 |X outb|(SIGNATU|
|00001980| 52 45 5f 52 45 47 2c 20 | 30 78 41 35 29 3b 0a 58 |RE_REG, |0xA5);.X|
|00001990| 20 20 20 66 6f 72 20 28 | 69 3d 30 3b 20 69 3c 31 | for (|i=0; i<1|
|000019a0| 30 30 30 3b 20 69 2b 2b | 29 3b 20 2f 2a 20 62 75 |000; i++|); /* bu|
|000019b0| 73 79 20 6c 6f 6f 70 20 | 2a 2f 0a 58 20 20 20 69 |sy loop |*/.X i|
|000019c0| 64 31 20 3d 20 69 6e 62 | 28 53 49 47 4e 41 54 55 |d1 = inb|(SIGNATU|
|000019d0| 52 45 5f 52 45 47 29 3b | 0a 58 20 20 20 69 66 20 |RE_REG);|.X if |
|000019e0| 28 69 64 31 20 21 3d 20 | 30 78 41 35 29 20 7b 0a |(id1 != |0xA5) {.|
|000019f0| 58 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 6c |X p|rintf("l|
|00001a00| 6f 67 6d 69 6e 69 74 3a | 20 53 49 47 4e 41 54 55 |ogminit:| SIGNATU|
|00001a10| 52 45 5f 52 45 47 20 3d | 20 30 78 25 78 20 28 73 |RE_REG =| 0x%x (s|
|00001a20| 68 6f 75 6c 64 20 65 71 | 75 61 6c 20 30 78 41 35 |hould eq|ual 0xA5|
|00001a30| 29 5c 6e 22 2c 20 69 64 | 31 29 3b 0a 58 20 20 20 |)\n", id|1);.X |
|00001a40| 20 20 20 70 72 69 6e 74 | 66 28 22 4c 6f 67 69 74 | print|f("Logit|
|00001a50| 65 63 68 20 42 75 73 20 | 4d 6f 75 73 65 20 6e 6f |ech Bus |Mouse no|
|00001a60| 74 20 6c 6f 61 64 65 64 | 2e 5c 6e 22 29 3b 0a 58 |t loaded|.\n");.X|
|00001a70| 20 20 20 20 20 20 72 65 | 74 75 72 6e 3b 0a 58 20 | re|turn;.X |
|00001a80| 20 20 7d 0a 58 0a 58 20 | 20 20 2f 2a 20 53 65 65 | }.X.X | /* See|
|00001a90| 20 77 68 69 63 68 20 62 | 69 74 73 20 74 6f 67 67 | which b|its togg|
|00001aa0| 6c 65 20 69 6e 20 74 68 | 65 20 69 6e 74 65 72 72 |le in th|e interr|
|00001ab0| 75 70 74 20 72 65 67 69 | 73 74 65 72 2e 20 2a 2f |upt regi|ster. */|
|00001ac0| 0a 58 20 20 20 6f 75 74 | 62 28 43 4f 4e 54 52 4f |.X out|b(CONTRO|
|00001ad0| 4c 5f 52 45 47 2c 20 30 | 29 3b 20 2f 2a 20 4d 61 |L_REG, 0|); /* Ma|
|00001ae0| 6b 65 20 73 75 72 65 20 | 69 6e 74 65 72 72 75 70 |ke sure |interrup|
|00001af0| 74 73 20 61 72 65 20 65 | 6e 61 62 6c 65 64 2e 20 |ts are e|nabled. |
|00001b00| 2a 2f 0a 58 20 20 20 69 | 64 31 20 3d 20 69 6e 62 |*/.X i|d1 = inb|
|00001b10| 28 49 4e 54 45 52 52 55 | 50 54 5f 52 45 47 29 3b |(INTERRU|PT_REG);|
|00001b20| 0a 58 23 69 66 64 65 66 | 20 44 45 42 55 47 0a 58 |.X#ifdef| DEBUG.X|
|00001b30| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6e 69 74 |printf("|logminit|
|00001b40| 3a 20 20 49 6e 69 74 69 | 61 6c 20 76 61 6c 75 65 |: Initi|al value|
|00001b50| 20 6f 66 20 69 6e 74 65 | 72 72 75 70 74 20 72 65 | of inte|rrupt re|
|00001b60| 67 20 3d 20 30 78 25 78 | 5c 6e 22 2c 20 69 64 31 |g = 0x%x|\n", id1|
|00001b70| 29 3b 0a 58 23 65 6e 64 | 69 66 20 2f 2a 20 44 45 |);.X#end|if /* DE|
|00001b80| 42 55 47 20 2a 2f 0a 58 | 20 20 20 74 6f 67 67 6c |BUG */.X| toggl|
|00001b90| 65 73 20 3d 20 30 3b 0a | 58 20 20 20 66 6f 72 20 |es = 0;.|X for |
|00001ba0| 28 69 3d 30 3b 20 69 3c | 31 30 30 30 30 3b 20 69 |(i=0; i<|10000; i|
|00001bb0| 2b 2b 29 20 7b 0a 58 20 | 20 20 20 20 20 69 64 32 |++) {.X | id2|
|00001bc0| 20 3d 20 69 6e 62 28 49 | 4e 54 45 52 52 55 50 54 | = inb(I|NTERRUPT|
|00001bd0| 5f 52 45 47 29 3b 0a 58 | 20 20 20 20 20 20 74 6f |_REG);.X| to|
|00001be0| 67 67 6c 65 73 20 7c 3d | 20 69 64 31 20 5e 20 69 |ggles |=| id1 ^ i|
|00001bf0| 64 32 3b 0a 58 20 20 20 | 20 20 20 69 64 31 20 3d |d2;.X | id1 =|
|00001c00| 20 69 64 32 3b 0a 58 20 | 20 20 7d 0a 58 20 20 20 | id2;.X | }.X |
|00001c10| 6f 75 74 62 28 43 4f 4e | 54 52 4f 4c 5f 52 45 47 |outb(CON|TROL_REG|
|00001c20| 2c 20 44 49 4e 54 29 3b | 20 2f 2a 20 44 69 73 61 |, DINT);| /* Disa|
|00001c30| 62 6c 65 20 69 6e 74 65 | 72 72 75 70 74 73 20 6a |ble inte|rrupts j|
|00001c40| 75 73 74 20 74 6f 20 62 | 65 20 73 61 66 65 2e 20 |ust to b|e safe. |
|00001c50| 2a 2f 0a 58 0a 58 20 20 | 20 2f 2a 20 42 61 73 65 |*/.X.X | /* Base|
|00001c60| 64 20 75 70 6f 6e 20 77 | 68 69 63 68 20 62 69 74 |d upon w|hich bit|
|00001c70| 28 73 29 20 74 6f 67 67 | 6c 65 64 2c 20 64 65 74 |(s) togg|led, det|
|00001c80| 65 72 6d 69 6e 65 20 77 | 68 69 63 68 20 49 52 51 |ermine w|hich IRQ|
|00001c90| 20 69 73 20 62 65 69 6e | 67 20 75 73 65 64 2e 0a | is bein|g used..|
|00001ca0| 58 20 20 20 20 20 20 49 | 66 20 6e 6f 74 68 69 6e |X I|f nothin|
|00001cb0| 67 20 74 6f 67 67 6c 65 | 64 2c 20 74 68 65 6e 20 |g toggle|d, then |
|00001cc0| 73 6f 6d 65 74 68 69 6e | 67 20 69 73 20 77 72 6f |somethin|g is wro|
|00001cd0| 6e 67 20 73 6f 20 64 6f | 6e 27 74 20 73 65 74 20 |ng so do|n't set |
|00001ce0| 74 68 65 0a 58 20 20 20 | 20 20 20 6d 6f 75 73 65 |the.X | mouse|
|00001cf0| 70 72 65 73 65 6e 74 20 | 66 6c 61 67 2e 20 2a 2f |present |flag. */|
|00001d00| 0a 58 20 20 20 69 66 20 | 20 20 20 20 20 28 74 6f |.X if | (to|
|00001d10| 67 67 6c 65 73 20 26 20 | 49 52 51 35 29 20 20 69 |ggles & |IRQ5) i|
|00001d20| 72 71 20 3d 20 35 3b 0a | 58 20 20 20 65 6c 73 65 |rq = 5;.|X else|
|00001d30| 20 69 66 20 28 74 6f 67 | 67 6c 65 73 20 26 20 49 | if (tog|gles & I|
|00001d40| 52 51 32 29 20 20 69 72 | 71 20 3d 20 32 3b 0a 58 |RQ2) ir|q = 2;.X|
|00001d50| 20 20 20 65 6c 73 65 20 | 69 66 20 28 74 6f 67 67 | else |if (togg|
|00001d60| 6c 65 73 20 26 20 49 52 | 51 33 29 20 20 69 72 71 |les & IR|Q3) irq|
|00001d70| 20 3d 20 33 3b 0a 58 20 | 20 20 65 6c 73 65 20 69 | = 3;.X | else i|
|00001d80| 66 20 28 74 6f 67 67 6c | 65 73 20 26 20 49 52 51 |f (toggl|es & IRQ|
|00001d90| 34 29 20 20 69 72 71 20 | 3d 20 34 3b 0a 58 20 20 |4) irq |= 4;.X |
|00001da0| 20 65 6c 73 65 20 7b 0a | 58 20 20 20 20 20 20 70 | else {.|X p|
|00001db0| 72 69 6e 74 66 28 22 6c | 6f 67 6d 69 6e 69 74 3a |rintf("l|ogminit:|
|00001dc0| 20 49 52 51 20 6c 69 6e | 65 20 64 69 64 20 6e 6f | IRQ lin|e did no|
|00001dd0| 74 20 72 65 73 70 6f 6e | 64 20 28 49 4e 54 45 52 |t respon|d (INTER|
|00001de0| 52 55 50 54 5f 52 45 47 | 20 3d 20 30 78 25 78 29 |RUPT_REG| = 0x%x)|
|00001df0| 5c 6e 22 2c 0a 58 20 20 | 20 20 20 20 20 20 20 20 |\n",.X | |
|00001e00| 20 20 20 74 6f 67 67 6c | 65 73 29 3b 0a 58 20 20 | toggl|es);.X |
|00001e10| 20 20 20 20 70 72 69 6e | 74 66 28 22 4c 6f 67 69 | prin|tf("Logi|
|00001e20| 74 65 63 68 20 42 75 73 | 20 4d 6f 75 73 65 20 6e |tech Bus| Mouse n|
|00001e30| 6f 74 20 6c 6f 61 64 65 | 64 2e 5c 6e 22 29 3b 0a |ot loade|d.\n");.|
|00001e40| 58 20 20 20 20 20 20 72 | 65 74 75 72 6e 3b 0a 58 |X r|eturn;.X|
|00001e50| 20 20 20 7d 0a 58 20 20 | 20 70 72 69 6e 74 66 28 | }.X | printf(|
|00001e60| 22 4c 6f 67 69 74 65 63 | 68 20 42 75 73 20 4d 6f |"Logitec|h Bus Mo|
|00001e70| 75 73 65 20 6c 6f 61 64 | 65 64 20 77 69 74 68 20 |use load|ed with |
|00001e80| 49 52 51 25 64 5c 6e 22 | 2c 20 69 72 71 29 3b 0a |IRQ%d\n"|, irq);.|
|00001e90| 58 0a 58 20 20 20 2f 2a | 20 53 65 74 20 63 6f 6e |X.X /*| Set con|
|00001ea0| 74 72 6f 6c 20 72 65 67 | 69 73 74 65 72 2e 20 20 |trol reg|ister. |
|00001eb0| 53 65 74 20 48 43 20 74 | 6f 20 31 3a 20 20 41 20 |Set HC t|o 1: A |
|00001ec0| 72 69 73 69 6e 67 20 65 | 64 67 65 20 6f 66 20 48 |rising e|dge of H|
|00001ed0| 43 20 74 72 61 6e 73 66 | 65 72 73 0a 58 20 20 20 |C transf|ers.X |
|00001ee0| 20 20 20 74 68 65 20 63 | 6f 6e 74 65 6e 74 20 6f | the c|ontent o|
|00001ef0| 66 20 74 68 65 20 63 6f | 75 6e 74 65 72 73 20 69 |f the co|unters i|
|00001f00| 6e 74 6f 20 6c 61 74 63 | 68 65 73 20 61 6e 64 20 |nto latc|hes and |
|00001f10| 72 65 73 65 74 73 20 74 | 68 65 20 63 6f 75 6e 74 |resets t|he count|
|00001f20| 65 72 73 3b 0a 58 20 20 | 20 20 20 20 44 69 73 61 |ers;.X | Disa|
|00001f30| 62 6c 65 20 69 6e 74 65 | 72 72 75 70 74 73 3b 20 |ble inte|rrupts; |
|00001f40| 28 61 6c 73 6f 20 73 65 | 6c 65 63 74 73 20 6c 6f |(also se|lects lo|
|00001f50| 77 20 6e 69 62 62 6c 65 | 20 6f 66 20 74 68 65 20 |w nibble| of the |
|00001f60| 58 20 63 6f 75 6e 74 65 | 72 2e 29 20 2a 2f 0a 58 |X counte|r.) */.X|
|00001f70| 20 20 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f | outb(|CONTROL_|
|00001f80| 52 45 47 2c 20 48 43 20 | 7c 20 44 49 4e 54 29 3b |REG, HC || DINT);|
|00001f90| 0a 58 0a 58 20 20 20 6d | 6f 75 73 65 70 72 65 73 |.X.X m|ousepres|
|00001fa0| 65 6e 74 20 3d 20 31 3b | 0a 58 0a 58 7d 20 2f 2a |ent = 1;|.X.X} /*|
|00001fb0| 20 6c 6f 67 6d 69 6e 69 | 74 20 2a 2f 0a 58 0a 58 | logmini|t */.X.X|
|00001fc0| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00001fd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001fe0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2a 2f 0a |--------|-----*/.|
|00002010| 58 76 6f 69 64 20 6c 6f | 67 6d 6f 70 65 6e 28 64 |Xvoid lo|gmopen(d|
|00002020| 65 76 2c 20 66 6c 61 67 | 29 0a 58 69 6e 74 20 64 |ev, flag|).Xint d|
|00002030| 65 76 2c 20 66 6c 61 67 | 3b 0a 58 7b 0a 58 23 69 |ev, flag|;.X{.X#i|
|00002040| 66 64 65 66 20 44 45 42 | 55 47 0a 58 70 72 69 6e |fdef DEB|UG.Xprin|
|00002050| 74 66 28 22 6c 6f 67 6d | 6f 70 65 6e 3a 20 64 65 |tf("logm|open: de|
|00002060| 76 20 3d 20 30 78 25 78 | 2c 20 66 6c 61 67 20 3d |v = 0x%x|, flag =|
|00002070| 20 30 78 25 78 5c 6e 22 | 2c 20 64 65 76 2c 20 66 | 0x%x\n"|, dev, f|
|00002080| 6c 61 67 29 3b 0a 58 23 | 65 6e 64 69 66 20 2f 2a |lag);.X#|endif /*|
|00002090| 20 44 45 42 55 47 20 2a | 2f 0a 58 0a 58 20 20 20 | DEBUG *|/.X.X |
|000020a0| 2f 2a 20 49 6e 73 69 73 | 74 20 6f 6e 20 6d 69 6e |/* Insis|t on min|
|000020b0| 6f 72 20 64 65 76 69 63 | 65 20 30 20 2a 2f 0a 58 |or devic|e 0 */.X|
|000020c0| 20 20 20 69 66 20 28 6d | 69 6e 6f 72 28 64 65 76 | if (m|inor(dev|
|000020d0| 29 29 20 20 20 20 7b 20 | 75 2e 75 5f 65 72 72 6f |)) { |u.u_erro|
|000020e0| 72 20 3d 20 45 4e 58 49 | 4f 3b 20 20 72 65 74 75 |r = ENXI|O; retu|
|000020f0| 72 6e 3b 20 7d 0a 58 0a | 58 20 20 20 2f 2a 20 4d |rn; }.X.|X /* M|
|00002100| 61 6b 65 20 73 75 72 65 | 20 74 68 65 72 65 20 69 |ake sure| there i|
|00002110| 73 20 61 20 6d 6f 75 73 | 65 2e 20 2a 2f 0a 58 20 |s a mous|e. */.X |
|00002120| 20 20 69 66 20 28 21 6d | 6f 75 73 65 70 72 65 73 | if (!m|ousepres|
|00002130| 65 6e 74 29 20 7b 20 75 | 2e 75 5f 65 72 72 6f 72 |ent) { u|.u_error|
|00002140| 20 3d 20 45 4e 58 49 4f | 3b 20 20 72 65 74 75 72 | = ENXIO|; retur|
|00002150| 6e 3b 20 7d 0a 58 0a 58 | 20 20 20 2f 2a 20 45 6e |n; }.X.X| /* En|
|00002160| 66 6f 72 63 65 20 65 78 | 63 6c 75 73 69 76 65 20 |force ex|clusive |
|00002170| 75 73 65 2e 20 2a 2f 0a | 58 20 20 20 69 66 20 28 |use. */.|X if (|
|00002180| 6d 6f 75 73 65 69 6e 75 | 73 65 29 20 20 20 20 7b |mouseinu|se) {|
|00002190| 20 75 2e 75 5f 65 72 72 | 6f 72 20 3d 20 45 42 55 | u.u_err|or = EBU|
|000021a0| 53 59 3b 20 20 72 65 74 | 75 72 6e 3b 20 7d 0a 58 |SY; ret|urn; }.X|
|000021b0| 0a 58 20 20 20 78 6d 6f | 74 69 6f 6e 20 3d 20 79 |.X xmo|tion = y|
|000021c0| 6d 6f 74 69 6f 6e 20 3d | 20 30 3b 0a 58 20 20 20 |motion =| 0;.X |
|000021d0| 6d 6f 75 73 65 73 74 61 | 74 75 73 20 3d 20 6c 61 |mousesta|tus = la|
|000021e0| 73 74 5f 62 75 74 74 6f | 6e 73 20 3d 20 30 3b 0a |st_butto|ns = 0;.|
|000021f0| 58 0a 58 23 69 66 64 65 | 66 20 56 50 49 58 0a 58 |X.X#ifde|f VPIX.X|
|00002200| 20 20 20 65 63 74 70 72 | 6f 63 20 3d 20 75 2e 75 | ectpr|oc = u.u|
|00002210| 5f 70 72 6f 63 70 3b 0a | 58 20 20 20 72 75 70 74 |_procp;.|X rupt|
|00002220| 65 64 20 3d 20 30 3b 0a | 58 23 65 6e 64 69 66 20 |ed = 0;.|X#endif |
|00002230| 2f 2a 20 56 50 49 58 20 | 2a 2f 0a 58 0a 58 20 20 |/* VPIX |*/.X.X |
|00002240| 20 6d 6f 75 73 65 69 6e | 75 73 65 20 3d 20 31 3b | mousein|use = 1;|
|00002250| 0a 58 0a 58 20 20 20 2f | 2a 20 53 65 74 20 48 43 |.X.X /|* Set HC|
|00002260| 20 74 6f 20 30 20 61 6e | 64 20 65 6e 61 62 6c 65 | to 0 an|d enable|
|00002270| 20 69 6e 74 65 72 72 75 | 70 74 73 2e 20 2a 2f 0a | interru|pts. */.|
|00002280| 58 20 20 20 6f 75 74 62 | 28 43 4f 4e 54 52 4f 4c |X outb|(CONTROL|
|00002290| 5f 52 45 47 2c 20 30 29 | 3b 0a 58 0a 58 7d 20 2f |_REG, 0)|;.X.X} /|
|000022a0| 2a 20 6c 6f 67 6d 6f 70 | 65 6e 20 2a 2f 0a 58 0a |* logmop|en */.X.|
|000022b0| 58 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |X/*-----|--------|
|000022c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000022f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00002300| 0a 58 76 6f 69 64 20 6c | 6f 67 6d 63 6c 6f 73 65 |.Xvoid l|ogmclose|
|00002310| 28 64 65 76 29 0a 58 69 | 6e 74 20 64 65 76 3b 0a |(dev).Xi|nt dev;.|
|00002320| 58 7b 0a 58 23 69 66 64 | 65 66 20 44 45 42 55 47 |X{.X#ifd|ef DEBUG|
|00002330| 0a 58 70 72 69 6e 74 66 | 28 22 6c 6f 67 6d 63 6c |.Xprintf|("logmcl|
|00002340| 6f 73 65 5c 6e 22 29 3b | 0a 58 23 65 6e 64 69 66 |ose\n");|.X#endif|
|00002350| 20 2f 2a 20 44 45 42 55 | 47 20 2a 2f 0a 58 0a 58 | /* DEBU|G */.X.X|
|00002360| 20 20 20 2f 2a 20 49 6e | 73 69 73 74 20 6f 6e 20 | /* In|sist on |
|00002370| 6d 69 6e 6f 72 20 64 65 | 76 69 63 65 20 30 20 2a |minor de|vice 0 *|
|00002380| 2f 0a 58 20 20 20 69 66 | 20 28 6d 69 6e 6f 72 28 |/.X if| (minor(|
|00002390| 64 65 76 29 29 20 20 20 | 20 7b 20 75 2e 75 5f 65 |dev)) | { u.u_e|
|000023a0| 72 72 6f 72 20 3d 20 45 | 4e 58 49 4f 3b 20 20 72 |rror = E|NXIO; r|
|000023b0| 65 74 75 72 6e 3b 20 7d | 0a 58 0a 58 20 20 20 2f |eturn; }|.X.X /|
|000023c0| 2a 20 4d 61 6b 65 20 73 | 75 72 65 20 74 68 65 72 |* Make s|ure ther|
|000023d0| 65 20 69 73 20 61 20 6d | 6f 75 73 65 2e 20 2a 2f |e is a m|ouse. */|
|000023e0| 0a 58 20 20 20 69 66 20 | 28 21 6d 6f 75 73 65 70 |.X if |(!mousep|
|000023f0| 72 65 73 65 6e 74 29 20 | 7b 20 75 2e 75 5f 65 72 |resent) |{ u.u_er|
|00002400| 72 6f 72 20 3d 20 45 4e | 58 49 4f 3b 20 20 72 65 |ror = EN|XIO; re|
|00002410| 74 75 72 6e 3b 20 7d 0a | 58 0a 58 20 20 20 2f 2a |turn; }.|X.X /*|
|00002420| 20 4d 61 6b 65 20 73 75 | 72 65 20 6d 6f 75 73 65 | Make su|re mouse|
|00002430| 20 68 61 73 20 62 65 65 | 6e 20 6f 70 65 6e 65 64 | has bee|n opened|
|00002440| 2e 20 2a 2f 0a 58 20 20 | 20 69 66 20 28 21 6d 6f |. */.X | if (!mo|
|00002450| 75 73 65 69 6e 75 73 65 | 29 20 20 20 7b 20 75 2e |useinuse|) { u.|
|00002460| 75 5f 65 72 72 6f 72 20 | 3d 20 45 41 43 43 45 53 |u_error |= EACCES|
|00002470| 3b 20 20 72 65 74 75 72 | 6e 3b 20 7d 0a 58 0a 58 |; retur|n; }.X.X|
|00002480| 20 20 20 2f 2a 20 52 65 | 73 65 74 20 74 68 65 20 | /* Re|set the |
|00002490| 6d 6f 75 73 65 20 74 6f | 20 6d 61 6b 65 20 73 75 |mouse to| make su|
|000024a0| 72 65 20 69 74 20 64 6f | 65 73 20 6e 6f 74 20 69 |re it do|es not i|
|000024b0| 6e 74 65 72 72 75 70 74 | 2e 20 2a 2f 0a 58 20 20 |nterrupt|. */.X |
|000024c0| 20 6f 75 74 62 28 43 4f | 4e 54 52 4f 4c 5f 52 45 | outb(CO|NTROL_RE|
|000024d0| 47 2c 20 44 49 4e 54 29 | 3b 0a 58 20 20 20 6d 6f |G, DINT)|;.X mo|
|000024e0| 75 73 65 69 6e 75 73 65 | 20 3d 20 30 3b 0a 58 0a |useinuse| = 0;.X.|
|000024f0| 58 7d 20 2f 2a 20 6c 6f | 67 6d 63 6c 6f 73 65 20 |X} /* lo|gmclose |
|00002500| 2a 2f 0a 58 0a 58 2f 2a | 2d 2d 2d 2d 2d 2d 2d 2d |*/.X.X/*|--------|
|00002510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002550| 2d 2d 2d 2a 2f 0a 58 76 | 6f 69 64 20 6c 6f 67 6d |---*/.Xv|oid logm|
|00002560| 69 6f 63 74 6c 28 64 65 | 76 2c 20 63 6d 64 2c 20 |ioctl(de|v, cmd, |
|00002570| 61 72 67 2c 20 66 6c 61 | 67 29 0a 58 69 6e 74 20 |arg, fla|g).Xint |
|00002580| 64 65 76 2c 20 63 6d 64 | 2c 20 66 6c 61 67 3b 0a |dev, cmd|, flag;.|
|00002590| 58 63 61 64 64 72 5f 74 | 20 61 72 67 3b 0a 58 7b |Xcaddr_t| arg;.X{|
|000025a0| 0a 58 20 20 20 73 74 72 | 75 63 74 20 6d 6f 75 73 |.X str|uct mous|
|000025b0| 65 69 6e 66 6f 20 69 6e | 66 6f 3b 0a 58 20 20 20 |einfo in|fo;.X |
|000025c0| 72 65 67 69 73 74 65 72 | 20 69 6e 74 20 69 6e 74 |register| int int|
|000025d0| 6d 61 73 6b 3b 0a 58 0a | 58 23 69 66 64 65 66 20 |mask;.X.|X#ifdef |
|000025e0| 44 45 42 55 47 0a 58 20 | 20 20 75 6e 73 69 67 6e |DEBUG.X | unsign|
|000025f0| 65 64 20 63 68 61 72 20 | 69 72 3b 0a 58 0a 58 20 |ed char |ir;.X.X |
|00002600| 20 20 70 72 69 6e 74 66 | 28 22 6c 6f 67 6d 69 6f | printf|("logmio|
|00002610| 63 74 6c 5c 6e 22 29 3b | 0a 58 23 65 6e 64 69 66 |ctl\n");|.X#endif|
|00002620| 20 2f 2a 20 44 45 42 55 | 47 20 2a 2f 0a 58 0a 58 | /* DEBU|G */.X.X|
|00002630| 20 20 20 2f 2a 20 49 6e | 73 69 73 74 20 6f 6e 20 | /* In|sist on |
|00002640| 6d 69 6e 6f 72 20 64 65 | 76 69 63 65 20 30 20 2a |minor de|vice 0 *|
|00002650| 2f 0a 58 20 20 20 69 66 | 20 28 6d 69 6e 6f 72 28 |/.X if| (minor(|
|00002660| 64 65 76 29 29 20 20 20 | 20 7b 20 75 2e 75 5f 65 |dev)) | { u.u_e|
|00002670| 72 72 6f 72 20 3d 20 45 | 4e 58 49 4f 3b 20 20 72 |rror = E|NXIO; r|
|00002680| 65 74 75 72 6e 3b 20 7d | 0a 58 0a 58 20 20 20 2f |eturn; }|.X.X /|
|00002690| 2a 20 4d 61 6b 65 20 73 | 75 72 65 20 74 68 65 72 |* Make s|ure ther|
|000026a0| 65 20 69 73 20 61 20 6d | 6f 75 73 65 2e 20 2a 2f |e is a m|ouse. */|
|000026b0| 0a 58 20 20 20 69 66 20 | 28 21 6d 6f 75 73 65 70 |.X if |(!mousep|
|000026c0| 72 65 73 65 6e 74 29 20 | 7b 20 75 2e 75 5f 65 72 |resent) |{ u.u_er|
|000026d0| 72 6f 72 20 3d 20 45 4e | 58 49 4f 3b 20 20 72 65 |ror = EN|XIO; re|
|000026e0| 74 75 72 6e 3b 20 7d 0a | 58 0a 58 20 20 20 2f 2a |turn; }.|X.X /*|
|000026f0| 20 4d 61 6b 65 20 73 75 | 72 65 20 6d 6f 75 73 65 | Make su|re mouse|
|00002700| 20 68 61 73 20 62 65 65 | 6e 20 6f 70 65 6e 65 64 | has bee|n opened|
|00002710| 2e 20 2a 2f 0a 58 20 20 | 20 69 66 20 28 21 6d 6f |. */.X | if (!mo|
|00002720| 75 73 65 69 6e 75 73 65 | 29 20 20 20 7b 20 75 2e |useinuse|) { u.|
|00002730| 75 5f 65 72 72 6f 72 20 | 3d 20 45 41 43 43 45 53 |u_error |= EACCES|
|00002740| 3b 20 20 72 65 74 75 72 | 6e 3b 20 7d 0a 58 0a 58 |; retur|n; }.X.X|
|00002750| 20 20 20 73 77 69 74 63 | 68 20 28 63 6d 64 29 20 | switc|h (cmd) |
|00002760| 7b 0a 58 23 69 66 64 65 | 66 20 44 45 42 55 47 0a |{.X#ifde|f DEBUG.|
|00002770| 58 20 20 20 20 20 20 63 | 61 73 65 20 30 3a 0a 58 |X c|ase 0:.X|
|00002780| 20 20 20 20 20 20 20 20 | 20 70 72 69 6e 74 66 28 | | printf(|
|00002790| 22 6c 6f 67 6d 69 6f 63 | 74 6c 3a 20 6f 75 74 62 |"logmioc|tl: outb|
|000027a0| 28 43 4f 4e 54 52 4f 4c | 5f 52 45 47 2c 20 30 20 |(CONTROL|_REG, 0 |
|000027b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000027c0| 20 20 20 29 5c 6e 22 29 | 3b 0a 58 20 20 20 20 20 | )\n")|;.X |
|000027d0| 20 20 20 20 6f 75 74 62 | 28 43 4f 4e 54 52 4f 4c | outb|(CONTROL|
|000027e0| 5f 52 45 47 2c 20 30 20 | 20 20 20 20 20 20 20 20 |_REG, 0 | |
|000027f0| 20 20 20 20 20 20 20 20 | 20 20 20 29 3b 0a 58 20 | | );.X |
|00002800| 20 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 | |break;.X|
|00002810| 20 20 20 20 20 20 63 61 | 73 65 20 31 3a 0a 58 20 | ca|se 1:.X |
|00002820| 20 20 20 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 | |printf("|
|00002830| 6c 6f 67 6d 69 6f 63 74 | 6c 3a 20 6f 75 74 62 28 |logmioct|l: outb(|
|00002840| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 20 20 20 |CONTROL_|REG, |
|00002850| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 44 49 | | DI|
|00002860| 4e 54 29 5c 6e 22 29 3b | 0a 58 20 20 20 20 20 20 |NT)\n");|.X |
|00002870| 20 20 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f | outb(|CONTROL_|
|00002880| 52 45 47 2c 20 20 20 20 | 20 20 20 20 20 20 20 20 |REG, | |
|00002890| 20 20 20 20 20 20 44 49 | 4e 54 29 3b 0a 58 20 20 | DI|NT);.X |
|000028a0| 20 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 20 | b|reak;.X |
|000028b0| 20 20 20 20 20 63 61 73 | 65 20 32 3a 0a 58 20 20 | cas|e 2:.X |
|000028c0| 20 20 20 20 20 20 20 70 | 72 69 6e 74 66 28 22 6c | p|rintf("l|
|000028d0| 6f 67 6d 69 6f 63 74 6c | 3a 20 6f 75 74 62 28 43 |ogmioctl|: outb(C|
|000028e0| 4f 4e 54 52 4f 4c 5f 52 | 45 47 2c 20 20 20 20 20 |ONTROL_R|EG, |
|000028f0| 20 20 20 20 20 20 20 53 | 48 4c 20 20 20 20 20 20 | S|HL |
|00002900| 20 29 5c 6e 22 29 3b 0a | 58 20 20 20 20 20 20 20 | )\n");.|X |
|00002910| 20 20 6f 75 74 62 28 43 | 4f 4e 54 52 4f 4c 5f 52 | outb(C|ONTROL_R|
|00002920| 45 47 2c 20 20 20 20 20 | 20 20 20 20 20 20 20 53 |EG, | S|
|00002930| 48 4c 20 20 20 20 20 20 | 20 29 3b 0a 58 20 20 20 |HL | );.X |
|00002940| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 20 20 | br|eak;.X |
|00002950| 20 20 20 20 63 61 73 65 | 20 33 3a 0a 58 20 20 20 | case| 3:.X |
|00002960| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 6c 6f | pr|intf("lo|
|00002970| 67 6d 69 6f 63 74 6c 3a | 20 6f 75 74 62 28 43 4f |gmioctl:| outb(CO|
|00002980| 4e 54 52 4f 4c 5f 52 45 | 47 2c 20 20 20 20 20 20 |NTROL_RE|G, |
|00002990| 20 20 20 20 20 20 53 48 | 4c 20 7c 20 44 49 4e 54 | SH|L | DINT|
|000029a0| 29 5c 6e 22 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |)\n");.X| |
|000029b0| 20 6f 75 74 62 28 43 4f | 4e 54 52 4f 4c 5f 52 45 | outb(CO|NTROL_RE|
|000029c0| 47 2c 20 20 20 20 20 20 | 20 20 20 20 20 20 53 48 |G, | SH|
|000029d0| 4c 20 7c 20 44 49 4e 54 | 29 3b 0a 58 20 20 20 20 |L | DINT|);.X |
|000029e0| 20 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 20 20 20 | bre|ak;.X |
|000029f0| 20 20 20 63 61 73 65 20 | 34 3a 0a 58 20 20 20 20 | case |4:.X |
|00002a00| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 6c 6f 67 | pri|ntf("log|
|00002a10| 6d 69 6f 63 74 6c 3a 20 | 6f 75 74 62 28 43 4f 4e |mioctl: |outb(CON|
|00002a20| 54 52 4f 4c 5f 52 45 47 | 2c 20 20 20 20 20 20 53 |TROL_REG|, S|
|00002a30| 58 59 20 20 20 20 20 20 | 20 20 20 20 20 20 20 29 |XY | )|
|00002a40| 5c 6e 22 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |\n");.X | |
|00002a50| 6f 75 74 62 28 43 4f 4e | 54 52 4f 4c 5f 52 45 47 |outb(CON|TROL_REG|
|00002a60| 2c 20 20 20 20 20 20 53 | 58 59 20 20 20 20 20 20 |, S|XY |
|00002a70| 20 20 20 20 20 20 20 29 | 3b 0a 58 20 20 20 20 20 | )|;.X |
|00002a80| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 | brea|k;.X |
|00002a90| 20 20 63 61 73 65 20 35 | 3a 0a 58 20 20 20 20 20 | case 5|:.X |
|00002aa0| 20 20 20 20 70 72 69 6e | 74 66 28 22 6c 6f 67 6d | prin|tf("logm|
|00002ab0| 69 6f 63 74 6c 3a 20 6f | 75 74 62 28 43 4f 4e 54 |ioctl: o|utb(CONT|
|00002ac0| 52 4f 4c 5f 52 45 47 2c | 20 20 20 20 20 20 53 58 |ROL_REG,| SX|
|00002ad0| 59 20 7c 20 20 20 20 20 | 20 20 44 49 4e 54 29 5c |Y | | DINT)\|
|00002ae0| 6e 22 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 6f |n");.X | o|
|00002af0| 75 74 62 28 43 4f 4e 54 | 52 4f 4c 5f 52 45 47 2c |utb(CONT|ROL_REG,|
|00002b00| 20 20 20 20 20 20 53 58 | 59 20 7c 20 20 20 20 20 | SX|Y | |
|00002b10| 20 20 44 49 4e 54 29 3b | 0a 58 20 20 20 20 20 20 | DINT);|.X |
|00002b20| 20 20 20 62 72 65 61 6b | 3b 0a 58 20 20 20 20 20 | break|;.X |
|00002b30| 20 63 61 73 65 20 36 3a | 0a 58 20 20 20 20 20 20 | case 6:|.X |
|00002b40| 20 20 20 70 72 69 6e 74 | 66 28 22 6c 6f 67 6d 69 | print|f("logmi|
|00002b50| 6f 63 74 6c 3a 20 6f 75 | 74 62 28 43 4f 4e 54 52 |octl: ou|tb(CONTR|
|00002b60| 4f 4c 5f 52 45 47 2c 20 | 20 20 20 20 20 53 58 59 |OL_REG, | SXY|
|00002b70| 20 7c 20 53 48 4c 20 20 | 20 20 20 20 20 29 5c 6e | | SHL | )\n|
|00002b80| 22 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 6f 75 |");.X | ou|
|00002b90| 74 62 28 43 4f 4e 54 52 | 4f 4c 5f 52 45 47 2c 20 |tb(CONTR|OL_REG, |
|00002ba0| 20 20 20 20 20 53 58 59 | 20 7c 20 53 48 4c 20 20 | SXY| | SHL |
|00002bb0| 20 20 20 20 20 29 3b 0a | 58 20 20 20 20 20 20 20 | );.|X |
|00002bc0| 20 20 62 72 65 61 6b 3b | 0a 58 20 20 20 20 20 20 | break;|.X |
|00002bd0| 63 61 73 65 20 37 3a 0a | 58 20 20 20 20 20 20 20 |case 7:.|X |
|00002be0| 20 20 70 72 69 6e 74 66 | 28 22 6c 6f 67 6d 69 6f | printf|("logmio|
|00002bf0| 63 74 6c 3a 20 6f 75 74 | 62 28 43 4f 4e 54 52 4f |ctl: out|b(CONTRO|
|00002c00| 4c 5f 52 45 47 2c 20 20 | 20 20 20 20 53 58 59 20 |L_REG, | SXY |
|00002c10| 7c 20 53 48 4c 20 7c 20 | 44 49 4e 54 29 5c 6e 22 || SHL | |DINT)\n"|
|00002c20| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 6f 75 74 |);.X | out|
|00002c30| 62 28 43 4f 4e 54 52 4f | 4c 5f 52 45 47 2c 20 20 |b(CONTRO|L_REG, |
|00002c40| 20 20 20 20 53 58 59 20 | 7c 20 53 48 4c 20 7c 20 | SXY || SHL | |
|00002c50| 44 49 4e 54 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |DINT);.X| |
|00002c60| 20 62 72 65 61 6b 3b 0a | 58 20 20 20 20 20 20 63 | break;.|X c|
|00002c70| 61 73 65 20 38 3a 0a 58 | 20 20 20 20 20 20 20 20 |ase 8:.X| |
|00002c80| 20 70 72 69 6e 74 66 28 | 22 6c 6f 67 6d 69 6f 63 | printf(|"logmioc|
|00002c90| 74 6c 3a 20 6f 75 74 62 | 28 43 4f 4e 54 52 4f 4c |tl: outb|(CONTROL|
|00002ca0| 5f 52 45 47 2c 20 48 43 | 20 20 20 20 20 20 20 20 |_REG, HC| |
|00002cb0| 20 20 20 20 20 20 20 20 | 20 20 20 29 5c 6e 22 29 | | )\n")|
|00002cc0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 6f 75 74 62 |;.X | outb|
|00002cd0| 28 43 4f 4e 54 52 4f 4c | 5f 52 45 47 2c 20 48 43 |(CONTROL|_REG, HC|
|00002ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002cf0| 20 20 20 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 | );.X | |
|00002d00| 62 72 65 61 6b 3b 0a 58 | 20 20 20 20 20 20 63 61 |break;.X| ca|
|00002d10| 73 65 20 39 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |se 9:.X | |
|00002d20| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00002d30| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00002d40| 52 45 47 2c 20 48 43 20 | 7c 20 20 20 20 20 20 20 |REG, HC || |
|00002d50| 20 20 20 20 20 20 44 49 | 4e 54 29 5c 6e 22 29 3b | DI|NT)\n");|
|00002d60| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00002d70| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00002d80| 7c 20 20 20 20 20 20 20 | 20 20 20 20 20 20 44 49 || | DI|
|00002d90| 4e 54 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 |NT);.X | b|
|00002da0| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00002db0| 65 20 31 30 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 10:.X | |
|00002dc0| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00002dd0| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00002de0| 52 45 47 2c 20 48 43 20 | 7c 20 20 20 20 20 20 20 |REG, HC || |
|00002df0| 53 48 4c 20 20 20 20 20 | 20 20 29 5c 6e 22 29 3b |SHL | )\n");|
|00002e00| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00002e10| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00002e20| 7c 20 20 20 20 20 20 20 | 53 48 4c 20 20 20 20 20 || |SHL |
|00002e30| 20 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 | );.X | b|
|00002e40| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00002e50| 65 20 31 31 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 11:.X | |
|00002e60| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00002e70| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00002e80| 52 45 47 2c 20 48 43 20 | 7c 20 20 20 20 20 20 20 |REG, HC || |
|00002e90| 53 48 4c 20 7c 20 44 49 | 4e 54 29 5c 6e 22 29 3b |SHL | DI|NT)\n");|
|00002ea0| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00002eb0| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00002ec0| 7c 20 20 20 20 20 20 20 | 53 48 4c 20 7c 20 44 49 || |SHL | DI|
|00002ed0| 4e 54 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 |NT);.X | b|
|00002ee0| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00002ef0| 65 20 31 32 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 12:.X | |
|00002f00| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00002f10| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00002f20| 52 45 47 2c 20 48 43 20 | 7c 20 53 58 59 20 20 20 |REG, HC || SXY |
|00002f30| 20 20 20 20 20 20 20 20 | 20 20 29 5c 6e 22 29 3b | | )\n");|
|00002f40| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00002f50| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00002f60| 7c 20 53 58 59 20 20 20 | 20 20 20 20 20 20 20 20 || SXY | |
|00002f70| 20 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 | );.X | b|
|00002f80| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00002f90| 65 20 31 33 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 13:.X | |
|00002fa0| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00002fb0| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00002fc0| 52 45 47 2c 20 48 43 20 | 7c 20 53 58 59 20 7c 20 |REG, HC || SXY | |
|00002fd0| 20 20 20 20 20 20 44 49 | 4e 54 29 5c 6e 22 29 3b | DI|NT)\n");|
|00002fe0| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00002ff0| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00003000| 7c 20 53 58 59 20 7c 20 | 20 20 20 20 20 20 44 49 || SXY | | DI|
|00003010| 4e 54 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 |NT);.X | b|
|00003020| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00003030| 65 20 31 34 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 14:.X | |
|00003040| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|00003050| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00003060| 52 45 47 2c 20 48 43 20 | 7c 20 53 58 59 20 7c 20 |REG, HC || SXY | |
|00003070| 53 48 4c 20 20 20 20 20 | 20 20 29 5c 6e 22 29 3b |SHL | )\n");|
|00003080| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00003090| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|000030a0| 7c 20 53 58 59 20 7c 20 | 53 48 4c 20 20 20 20 20 || SXY | |SHL |
|000030b0| 20 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 | );.X | b|
|000030c0| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|000030d0| 65 20 31 35 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 15:.X | |
|000030e0| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|000030f0| 6c 3a 20 6f 75 74 62 28 | 43 4f 4e 54 52 4f 4c 5f |l: outb(|CONTROL_|
|00003100| 52 45 47 2c 20 48 43 20 | 7c 20 53 58 59 20 7c 20 |REG, HC || SXY | |
|00003110| 53 48 4c 20 7c 20 44 49 | 4e 54 29 5c 6e 22 29 3b |SHL | DI|NT)\n");|
|00003120| 0a 58 20 20 20 20 20 20 | 20 20 20 6f 75 74 62 28 |.X | outb(|
|00003130| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00003140| 7c 20 53 58 59 20 7c 20 | 53 48 4c 20 7c 20 44 49 || SXY | |SHL | DI|
|00003150| 4e 54 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 |NT);.X | b|
|00003160| 72 65 61 6b 3b 0a 58 0a | 58 20 20 20 20 20 20 63 |reak;.X.|X c|
|00003170| 61 73 65 20 32 30 3a 0a | 58 20 20 20 20 20 20 20 |ase 20:.|X |
|00003180| 20 20 69 72 20 3d 20 69 | 6e 62 28 44 41 54 41 5f | ir = i|nb(DATA_|
|00003190| 52 45 47 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |REG);.X | |
|000031a0| 70 72 69 6e 74 66 28 22 | 6c 6f 67 6d 69 6f 63 74 |printf("|logmioct|
|000031b0| 6c 3a 20 69 6e 62 28 44 | 41 54 41 5f 52 45 47 29 |l: inb(D|ATA_REG)|
|000031c0| 20 3d 20 30 78 25 78 5c | 6e 22 2c 20 69 72 29 3b | = 0x%x\|n", ir);|
|000031d0| 0a 58 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b |.X | break|
|000031e0| 3b 0a 58 20 20 20 20 20 | 20 63 61 73 65 20 32 31 |;.X | case 21|
|000031f0| 3a 0a 58 20 20 20 20 20 | 20 20 20 20 69 72 20 3d |:.X | ir =|
|00003200| 20 69 6e 62 28 53 49 47 | 4e 41 54 55 52 45 5f 52 | inb(SIG|NATURE_R|
|00003210| 45 47 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 70 |EG);.X | p|
|00003220| 72 69 6e 74 66 28 22 6c | 6f 67 6d 69 6f 63 74 6c |rintf("l|ogmioctl|
|00003230| 3a 20 69 6e 62 28 53 49 | 47 4e 41 54 55 52 45 5f |: inb(SI|GNATURE_|
|00003240| 52 45 47 29 20 3d 20 30 | 78 25 78 5c 6e 22 2c 20 |REG) = 0|x%x\n", |
|00003250| 69 72 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 62 |ir);.X | b|
|00003260| 72 65 61 6b 3b 0a 58 20 | 20 20 20 20 20 63 61 73 |reak;.X | cas|
|00003270| 65 20 32 32 3a 0a 58 20 | 20 20 20 20 20 20 20 20 |e 22:.X | |
|00003280| 69 72 20 3d 20 69 6e 62 | 28 49 4e 54 45 52 52 55 |ir = inb|(INTERRU|
|00003290| 50 54 5f 52 45 47 29 3b | 0a 58 20 20 20 20 20 20 |PT_REG);|.X |
|000032a0| 20 20 20 70 72 69 6e 74 | 66 28 22 6c 6f 67 6d 69 | print|f("logmi|
|000032b0| 6f 63 74 6c 3a 20 69 6e | 62 28 49 4e 54 45 52 52 |octl: in|b(INTERR|
|000032c0| 55 50 54 5f 52 45 47 29 | 20 3d 20 30 78 25 78 5c |UPT_REG)| = 0x%x\|
|000032d0| 6e 22 2c 20 69 72 29 3b | 0a 58 20 20 20 20 20 20 |n", ir);|.X |
|000032e0| 20 20 20 62 72 65 61 6b | 3b 0a 58 20 20 20 20 20 | break|;.X |
|000032f0| 20 63 61 73 65 20 32 33 | 3a 0a 58 20 20 20 20 20 | case 23|:.X |
|00003300| 20 20 20 20 69 72 20 3d | 20 69 6e 62 28 43 4f 4e | ir =| inb(CON|
|00003310| 46 49 47 5f 52 45 47 29 | 3b 0a 58 20 20 20 20 20 |FIG_REG)|;.X |
|00003320| 20 20 20 20 70 72 69 6e | 74 66 28 22 6c 6f 67 6d | prin|tf("logm|
|00003330| 69 6f 63 74 6c 3a 20 69 | 6e 62 28 43 4f 4e 46 49 |ioctl: i|nb(CONFI|
|00003340| 47 5f 52 45 47 29 20 3d | 20 30 78 25 78 5c 6e 22 |G_REG) =| 0x%x\n"|
|00003350| 2c 20 69 72 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |, ir);.X| |
|00003360| 20 62 72 65 61 6b 3b 0a | 58 20 20 20 20 20 20 63 | break;.|X c|
|00003370| 61 73 65 20 32 34 3a 0a | 58 20 20 20 20 20 20 20 |ase 24:.|X |
|00003380| 20 20 6f 75 74 62 28 43 | 4f 4e 46 49 47 5f 52 45 | outb(C|ONFIG_RE|
|00003390| 47 2c 20 43 4f 4e 46 49 | 47 5f 42 59 54 45 29 3b |G, CONFI|G_BYTE);|
|000033a0| 0a 58 20 20 20 20 20 20 | 20 20 20 70 72 69 6e 74 |.X | print|
|000033b0| 66 28 22 6c 6f 67 6d 69 | 6f 63 74 6c 3a 20 6f 75 |f("logmi|octl: ou|
|000033c0| 74 62 28 43 4f 4e 46 49 | 47 5f 52 45 47 2c 20 43 |tb(CONFI|G_REG, C|
|000033d0| 4f 4e 46 49 47 5f 42 59 | 54 45 29 5c 6e 22 29 3b |ONFIG_BY|TE)\n");|
|000033e0| 0a 58 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b |.X | break|
|000033f0| 3b 0a 58 23 65 6e 64 69 | 66 20 2f 2a 20 44 45 42 |;.X#endi|f /* DEB|
|00003400| 55 47 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 64 |UG */.X.|X d|
|00003410| 65 66 61 75 6c 74 3a 0a | 58 20 20 20 20 20 20 20 |efault:.|X |
|00003420| 20 20 2f 2a 20 52 65 74 | 75 72 6e 20 65 72 72 6f | /* Ret|urn erro|
|00003430| 72 20 22 49 6e 76 61 6c | 69 64 20 61 72 67 75 6d |r "Inval|id argum|
|00003440| 65 6e 74 22 2e 20 2a 2f | 0a 58 20 20 20 20 20 20 |ent". */|.X |
|00003450| 20 20 20 75 2e 75 5f 65 | 72 72 6f 72 20 3d 20 45 | u.u_e|rror = E|
|00003460| 49 4e 56 41 4c 3b 0a 58 | 23 69 66 64 65 66 20 44 |INVAL;.X|#ifdef D|
|00003470| 45 42 55 47 0a 58 20 20 | 20 20 20 20 20 20 20 70 |EBUG.X | p|
|00003480| 72 69 6e 74 66 28 22 6c | 6f 67 6d 69 6f 63 74 6c |rintf("l|ogmioctl|
|00003490| 3a 20 75 6e 6b 6e 6f 77 | 6e 20 63 6d 64 20 3d 20 |: unknow|n cmd = |
|000034a0| 30 78 25 78 5c 6e 22 2c | 20 63 6d 64 29 3b 0a 58 |0x%x\n",| cmd);.X|
|000034b0| 23 65 6e 64 69 66 20 2f | 2a 20 44 45 42 55 47 20 |#endif /|* DEBUG |
|000034c0| 2a 2f 0a 58 20 20 20 20 | 20 20 20 20 20 62 72 65 |*/.X | bre|
|000034d0| 61 6b 3b 0a 58 0a 58 20 | 20 20 20 20 20 20 63 61 |ak;.X.X | ca|
|000034e0| 73 65 20 4d 4f 55 53 45 | 49 4f 43 52 45 41 44 3a |se MOUSE|IOCREAD:|
|000034f0| 0a 58 20 20 20 20 20 20 | 20 20 20 2f 2a 20 50 72 |.X | /* Pr|
|00003500| 65 76 65 6e 74 20 6d 6f | 75 73 65 20 69 6e 74 65 |event mo|use inte|
|00003510| 72 72 75 70 74 73 20 64 | 75 72 69 6e 67 20 75 70 |rrupts d|uring up|
|00003520| 64 61 74 65 2e 20 2a 2f | 0a 58 20 20 20 20 20 20 |date. */|.X |
|00003530| 20 20 20 69 6e 74 6d 61 | 73 6b 20 3d 20 73 70 6c | intma|sk = spl|
|00003540| 68 69 28 29 3b 0a 58 0a | 58 20 20 20 20 20 20 20 |hi();.X.|X |
|00003550| 20 20 2f 2a 20 52 65 61 | 64 20 61 6e 64 20 72 65 | /* Rea|d and re|
|00003560| 73 65 74 20 74 68 65 20 | 61 63 63 75 6d 75 6c 61 |set the |accumula|
|00003570| 74 65 64 20 69 6e 74 65 | 72 72 75 70 74 20 69 6e |ted inte|rrupt in|
|00003580| 66 6f 2e 20 2a 2f 0a 58 | 0a 58 20 20 20 20 20 20 |fo. */.X|.X |
|00003590| 20 20 20 2f 2a 20 54 68 | 69 73 20 65 6d 75 6c 61 | /* Th|is emula|
|000035a0| 74 65 73 20 74 68 65 20 | 6d 69 63 72 6f 73 6f 66 |tes the |microsof|
|000035b0| 74 20 62 75 73 20 6d 6f | 75 73 65 20 73 74 61 74 |t bus mo|use stat|
|000035c0| 75 73 20 72 65 74 75 72 | 6e 2e 20 2a 2f 0a 58 20 |us retur|n. */.X |
|000035d0| 20 20 20 20 20 20 20 20 | 69 6e 66 6f 2e 73 74 61 | |info.sta|
|000035e0| 74 75 73 20 3d 20 6d 6f | 75 73 65 73 74 61 74 75 |tus = mo|usestatu|
|000035f0| 73 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 |s;.X | if |
|00003600| 28 78 6d 6f 74 69 6f 6e | 20 7c 7c 20 79 6d 6f 74 |(xmotion| || ymot|
|00003610| 69 6f 6e 29 20 69 6e 66 | 6f 2e 73 74 61 74 75 73 |ion) inf|o.status|
|00003620| 20 7c 3d 20 4d 4f 56 45 | 4d 45 4e 54 3b 0a 58 0a | |= MOVE|MENT;.X.|
|00003630| 58 20 20 20 20 20 20 20 | 20 20 69 6e 66 6f 2e 78 |X | info.x|
|00003640| 6d 6f 74 69 6f 6e 20 3d | 20 4f 4e 45 42 59 54 45 |motion =| ONEBYTE|
|00003650| 28 78 6d 6f 74 69 6f 6e | 29 3b 0a 58 20 20 20 20 |(xmotion|);.X |
|00003660| 20 20 20 20 20 69 6e 66 | 6f 2e 79 6d 6f 74 69 6f | inf|o.ymotio|
|00003670| 6e 20 3d 20 4f 4e 45 42 | 59 54 45 28 79 6d 6f 74 |n = ONEB|YTE(ymot|
|00003680| 69 6f 6e 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |ion);.X | |
|00003690| 78 6d 6f 74 69 6f 6e 20 | 3d 20 79 6d 6f 74 69 6f |xmotion |= ymotio|
|000036a0| 6e 20 3d 20 30 3b 0a 58 | 20 20 20 20 20 20 20 20 |n = 0;.X| |
|000036b0| 20 6d 6f 75 73 65 73 74 | 61 74 75 73 20 26 3d 20 | mousest|atus &= |
|000036c0| 7e 42 55 54 43 48 4e 47 | 4d 41 53 4b 3b 20 2f 2a |~BUTCHNG|MASK; /*|
|000036d0| 20 63 6c 65 61 72 20 22 | 62 75 74 74 6f 6e 20 63 | clear "|button c|
|000036e0| 68 61 6e 67 65 64 22 20 | 62 69 74 73 20 2a 2f 0a |hanged" |bits */.|
|000036f0| 58 23 69 66 64 65 66 20 | 56 50 49 58 0a 58 20 20 |X#ifdef |VPIX.X |
|00003700| 20 20 20 20 20 20 20 72 | 75 70 74 65 64 20 3d 20 | r|upted = |
|00003710| 30 3b 0a 58 23 65 6e 64 | 69 66 20 2f 2a 20 56 50 |0;.X#end|if /* VP|
|00003720| 49 58 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |IX */.X.|X |
|00003730| 20 20 2f 2a 20 52 65 73 | 75 6d 65 20 6d 6f 75 73 | /* Res|ume mous|
|00003740| 65 20 69 6e 74 65 72 72 | 75 70 74 73 2e 20 2a 2f |e interr|upts. */|
|00003750| 0a 58 20 20 20 20 20 20 | 20 20 20 73 70 6c 78 28 |.X | splx(|
|00003760| 69 6e 74 6d 61 73 6b 29 | 3b 0a 58 0a 58 20 20 20 |intmask)|;.X.X |
|00003770| 20 20 20 20 20 20 69 66 | 20 28 63 6f 70 79 6f 75 | if| (copyou|
|00003780| 74 28 26 69 6e 66 6f 2c | 20 61 72 67 2c 20 73 69 |t(&info,| arg, si|
|00003790| 7a 65 6f 66 20 69 6e 66 | 6f 29 29 20 75 2e 75 5f |zeof inf|o)) u.u_|
|000037a0| 65 72 72 6f 72 20 3d 20 | 45 46 41 55 4c 54 3b 0a |error = |EFAULT;.|
|000037b0| 58 20 20 20 20 20 20 20 | 20 20 62 72 65 61 6b 3b |X | break;|
|000037c0| 0a 58 20 20 20 7d 20 2f | 2a 20 73 77 69 74 63 68 |.X } /|* switch|
|000037d0| 20 2a 2f 0a 58 7d 20 2f | 2a 20 6c 6f 67 6d 69 6f | */.X} /|* logmio|
|000037e0| 63 74 6c 20 2a 2f 0a 58 | 0a 58 2f 2a 2d 2d 2d 2d |ctl */.X|.X/*----|
|000037f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003830| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0a 58 76 6f 69 64 20 |-------*|/.Xvoid |
|00003840| 6c 6f 67 6d 69 6e 74 72 | 28 69 76 65 63 74 29 0a |logmintr|(ivect).|
|00003850| 58 69 6e 74 20 69 76 65 | 63 74 3b 0a 58 7b 0a 58 |Xint ive|ct;.X{.X|
|00003860| 20 20 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 | unsig|ned char|
|00003870| 20 6c 6f 2c 20 68 69 2c | 20 62 75 74 74 6f 6e 73 | lo, hi,| buttons|
|00003880| 2c 20 63 68 61 6e 67 65 | 64 5f 62 75 74 74 6f 6e |, change|d_button|
|00003890| 73 3b 0a 58 20 20 20 69 | 6e 74 20 64 78 2c 20 64 |s;.X i|nt dx, d|
|000038a0| 79 3b 0a 58 0a 58 20 20 | 20 2f 2a 20 49 67 6e 6f |y;.X.X | /* Igno|
|000038b0| 72 65 20 69 66 20 6d 6f | 75 73 65 20 69 73 20 6e |re if mo|use is n|
|000038c0| 6f 74 20 70 72 65 73 65 | 6e 74 2e 20 2a 2f 0a 58 |ot prese|nt. */.X|
|000038d0| 20 20 20 69 66 20 28 21 | 6d 6f 75 73 65 70 72 65 | if (!|mousepre|
|000038e0| 73 65 6e 74 29 20 72 65 | 74 75 72 6e 3b 0a 58 0a |sent) re|turn;.X.|
|000038f0| 58 20 20 20 2f 2a 20 50 | 72 69 6e 74 20 65 72 72 |X /* P|rint err|
|00003900| 6f 72 20 6f 6e 20 63 6f | 6e 73 6f 6c 65 20 69 66 |or on co|nsole if|
|00003910| 20 6d 6f 75 73 65 20 68 | 61 73 20 6e 6f 74 20 62 | mouse h|as not b|
|00003920| 65 65 6e 20 6f 70 65 6e | 65 64 2e 20 2a 2f 0a 58 |een open|ed. */.X|
|00003930| 20 20 20 69 66 20 28 21 | 6d 6f 75 73 65 69 6e 75 | if (!|mouseinu|
|00003940| 73 65 29 20 7b 0a 58 23 | 69 66 64 65 66 20 44 45 |se) {.X#|ifdef DE|
|00003950| 42 55 47 0a 58 20 20 20 | 20 20 20 70 72 69 6e 74 |BUG.X | print|
|00003960| 66 28 22 6c 6f 67 6d 69 | 6e 74 72 3a 20 55 6e 73 |f("logmi|ntr: Uns|
|00003970| 6f 6c 69 63 69 74 65 64 | 20 49 4e 54 20 25 64 5c |olicited| INT %d\|
|00003980| 6e 22 2c 20 69 76 65 63 | 74 29 3b 0a 58 23 65 6e |n", ivec|t);.X#en|
|00003990| 64 69 66 20 2f 2a 20 44 | 45 42 55 47 20 2a 2f 0a |dif /* D|EBUG */.|
|000039a0| 58 20 20 20 20 20 20 6f | 75 74 62 28 43 4f 4e 54 |X o|utb(CONT|
|000039b0| 52 4f 4c 5f 52 45 47 2c | 20 44 49 4e 54 29 3b 20 |ROL_REG,| DINT); |
|000039c0| 2f 2a 20 64 69 73 61 62 | 6c 65 20 69 6e 74 65 72 |/* disab|le inter|
|000039d0| 72 75 70 74 73 20 2a 2f | 0a 58 20 20 20 20 20 20 |rupts */|.X |
|000039e0| 72 65 74 75 72 6e 3b 0a | 58 20 20 20 7d 0a 58 0a |return;.|X }.X.|
|000039f0| 58 20 20 20 2f 2a 20 52 | 65 61 64 20 6c 6f 77 20 |X /* R|ead low |
|00003a00| 58 20 6e 69 62 62 6c 65 | 2e 20 2a 2f 0a 58 20 20 |X nibble|. */.X |
|00003a10| 20 6f 75 74 62 28 43 4f | 4e 54 52 4f 4c 5f 52 45 | outb(CO|NTROL_RE|
|00003a20| 47 2c 20 48 43 29 3b 0a | 58 20 20 20 6c 6f 20 3d |G, HC);.|X lo =|
|00003a30| 20 69 6e 62 28 44 41 54 | 41 5f 52 45 47 29 20 26 | inb(DAT|A_REG) &|
|00003a40| 20 30 78 30 46 3b 0a 58 | 0a 58 20 20 20 2f 2a 20 | 0x0F;.X|.X /* |
|00003a50| 52 65 61 64 20 68 69 67 | 68 20 58 20 6e 69 62 62 |Read hig|h X nibb|
|00003a60| 6c 65 2e 20 2a 2f 0a 58 | 20 20 20 6f 75 74 62 28 |le. */.X| outb(|
|00003a70| 43 4f 4e 54 52 4f 4c 5f | 52 45 47 2c 20 48 43 20 |CONTROL_|REG, HC |
|00003a80| 7c 20 53 48 4c 29 3b 0a | 58 20 20 20 68 69 20 3d || SHL);.|X hi =|
|00003a90| 20 69 6e 62 28 44 41 54 | 41 5f 52 45 47 29 20 26 | inb(DAT|A_REG) &|
|00003aa0| 20 30 78 30 46 3b 0a 58 | 0a 58 20 20 20 2f 2a 20 | 0x0F;.X|.X /* |
|00003ab0| 43 6f 6d 62 69 6e 65 20 | 68 69 67 68 20 61 6e 64 |Combine |high and|
|00003ac0| 20 6c 6f 77 20 58 20 6e | 69 62 62 6c 65 73 2e 20 | low X n|ibbles. |
|00003ad0| 2a 2f 0a 58 20 20 20 64 | 78 20 3d 20 28 63 68 61 |*/.X d|x = (cha|
|00003ae0| 72 29 20 28 28 68 69 20 | 3c 3c 20 34 29 20 7c 20 |r) ((hi |<< 4) | |
|00003af0| 6c 6f 29 3b 20 20 2f 2a | 20 66 6f 72 63 65 20 64 |lo); /*| force d|
|00003b00| 78 20 74 6f 20 62 65 20 | 73 69 67 6e 65 64 20 2a |x to be |signed *|
|00003b10| 2f 0a 58 0a 58 20 20 20 | 2f 2a 20 52 65 61 64 20 |/.X.X |/* Read |
|00003b20| 6c 6f 77 20 59 20 6e 69 | 62 62 6c 65 2e 20 2a 2f |low Y ni|bble. */|
|00003b30| 0a 58 20 20 20 6f 75 74 | 62 28 43 4f 4e 54 52 4f |.X out|b(CONTRO|
|00003b40| 4c 5f 52 45 47 2c 20 48 | 43 20 7c 20 53 58 59 29 |L_REG, H|C | SXY)|
|00003b50| 3b 0a 58 20 20 20 6c 6f | 20 3d 20 69 6e 62 28 44 |;.X lo| = inb(D|
|00003b60| 41 54 41 5f 52 45 47 29 | 20 26 20 30 78 30 46 3b |ATA_REG)| & 0x0F;|
|00003b70| 0a 58 0a 58 20 20 20 2f | 2a 20 52 65 61 64 20 68 |.X.X /|* Read h|
|00003b80| 69 67 68 20 59 20 6e 69 | 62 62 6c 65 2e 20 2a 2f |igh Y ni|bble. */|
|00003b90| 0a 58 20 20 20 6f 75 74 | 62 28 43 4f 4e 54 52 4f |.X out|b(CONTRO|
|00003ba0| 4c 5f 52 45 47 2c 20 48 | 43 20 7c 20 53 58 59 20 |L_REG, H|C | SXY |
|00003bb0| 7c 20 53 48 4c 29 3b 0a | 58 20 20 20 68 69 20 3d || SHL);.|X hi =|
|00003bc0| 20 69 6e 62 28 44 41 54 | 41 5f 52 45 47 29 3b 0a | inb(DAT|A_REG);.|
|00003bd0| 58 0a 58 20 20 20 2f 2a | 20 45 78 74 72 61 63 74 |X.X /*| Extract|
|00003be0| 20 61 6e 64 20 69 6e 76 | 65 72 74 20 74 68 65 20 | and inv|ert the |
|00003bf0| 62 75 74 74 6f 6e 20 62 | 69 74 73 2e 0a 58 20 20 |button b|its..X |
|00003c00| 20 20 20 20 41 66 74 65 | 72 20 69 6e 76 65 72 74 | Afte|r invert|
|00003c10| 69 6e 67 2c 20 61 20 73 | 65 74 20 62 69 74 20 6d |ing, a s|et bit m|
|00003c20| 65 61 6e 73 20 74 68 65 | 20 62 75 74 74 6f 6e 20 |eans the| button |
|00003c30| 77 61 73 20 70 72 65 73 | 73 65 64 20 64 6f 77 6e |was pres|sed down|
|00003c40| 2e 20 2a 2f 0a 58 20 20 | 20 62 75 74 74 6f 6e 73 |. */.X | buttons|
|00003c50| 20 3d 20 28 7e 68 69 20 | 3e 3e 20 35 29 20 26 20 | = (~hi |>> 5) & |
|00003c60| 30 78 30 37 3b 0a 58 20 | 20 20 63 68 61 6e 67 65 |0x07;.X | change|
|00003c70| 64 5f 62 75 74 74 6f 6e | 73 20 3d 20 62 75 74 74 |d_button|s = butt|
|00003c80| 6f 6e 73 20 5e 20 6c 61 | 73 74 5f 62 75 74 74 6f |ons ^ la|st_butto|
|00003c90| 6e 73 3b 0a 58 20 20 20 | 6c 61 73 74 5f 62 75 74 |ns;.X |last_but|
|00003ca0| 74 6f 6e 73 20 3d 20 62 | 75 74 74 6f 6e 73 3b 0a |tons = b|uttons;.|
|00003cb0| 58 0a 58 20 20 20 2f 2a | 20 43 6f 6d 62 69 6e 65 |X.X /*| Combine|
|00003cc0| 20 68 69 67 68 20 61 6e | 64 20 6c 6f 77 20 58 20 | high an|d low X |
|00003cd0| 6e 69 62 62 6c 65 73 2e | 20 2a 2f 0a 58 20 20 20 |nibbles.| */.X |
|00003ce0| 64 79 20 3d 20 28 63 68 | 61 72 29 20 28 28 28 68 |dy = (ch|ar) (((h|
|00003cf0| 69 20 26 20 30 78 30 46 | 29 20 3c 3c 20 34 29 20 |i & 0x0F|) << 4) |
|00003d00| 7c 20 6c 6f 29 3b 20 20 | 2f 2a 20 66 6f 72 63 65 || lo); |/* force|
|00003d10| 20 64 79 20 74 6f 20 62 | 65 20 73 69 67 6e 65 64 | dy to b|e signed|
|00003d20| 20 2a 2f 0a 58 0a 58 20 | 20 20 2f 2a 20 54 68 69 | */.X.X | /* Thi|
|00003d30| 73 20 63 6f 64 65 20 65 | 6d 75 6c 61 74 65 73 20 |s code e|mulates |
|00003d40| 74 68 65 20 4d 69 63 72 | 6f 73 6f 66 74 20 62 75 |the Micr|osoft bu|
|00003d50| 73 20 6d 6f 75 73 65 20 | 73 74 61 74 75 73 20 28 |s mouse |status (|
|00003d60| 65 78 63 65 70 74 20 66 | 6f 72 20 74 68 65 20 4d |except f|or the M|
|00003d70| 4f 54 49 4f 4e 0a 58 20 | 20 20 20 20 20 62 69 74 |OTION.X | bit|
|00003d80| 20 77 68 69 63 68 20 69 | 73 20 73 65 74 20 69 6e | which i|s set in|
|00003d90| 20 74 68 65 20 69 6f 63 | 74 6c 20 72 6f 75 74 69 | the ioc|tl routi|
|00003da0| 6e 65 29 2e 20 20 53 74 | 61 74 65 20 63 68 61 6e |ne). St|ate chan|
|00003db0| 67 65 73 20 61 72 65 20 | 6f 72 27 65 64 20 6f 76 |ges are |or'ed ov|
|00003dc0| 65 72 0a 58 20 20 20 20 | 20 20 61 6e 79 20 6e 75 |er.X | any nu|
|00003dd0| 6d 62 65 72 20 6f 66 20 | 69 6e 74 65 72 72 75 70 |mber of |interrup|
|00003de0| 74 73 2c 20 62 75 74 20 | 74 68 65 20 62 75 74 74 |ts, but |the butt|
|00003df0| 6f 6e 73 20 62 69 74 73 | 20 61 72 65 20 61 6c 77 |ons bits| are alw|
|00003e00| 61 79 73 20 73 65 74 20 | 74 6f 20 74 68 65 0a 58 |ays set |to the.X|
|00003e10| 20 20 20 20 20 20 63 75 | 72 72 65 6e 74 20 73 74 | cu|rrent st|
|00003e20| 61 74 65 2e 20 20 28 54 | 68 65 20 73 74 61 74 65 |ate. (T|he state|
|00003e30| 20 63 68 61 6e 67 65 73 | 20 61 72 65 20 63 6c 65 | changes| are cle|
|00003e40| 61 72 65 64 20 77 68 65 | 6e 20 72 65 61 64 20 69 |ared whe|n read i|
|00003e50| 6e 20 74 68 65 20 69 6f | 63 74 6c 0a 58 20 20 20 |n the io|ctl.X |
|00003e60| 20 20 20 72 6f 75 74 69 | 6e 65 2e 29 20 2a 2f 0a | routi|ne.) */.|
|00003e70| 58 20 20 20 6d 6f 75 73 | 65 73 74 61 74 75 73 20 |X mous|estatus |
|00003e80| 3d 20 62 75 74 74 6f 6e | 73 20 7c 20 28 6d 6f 75 |= button|s | (mou|
|00003e90| 73 65 73 74 61 74 75 73 | 20 26 20 7e 42 55 54 53 |sestatus| & ~BUTS|
|00003ea0| 54 41 54 4d 41 53 4b 29 | 0a 58 20 20 20 20 20 20 |TATMASK)|.X |
|00003eb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ec0| 20 20 20 7c 20 28 63 68 | 61 6e 67 65 64 5f 62 75 | | (ch|anged_bu|
|00003ed0| 74 74 6f 6e 73 20 3c 3c | 20 33 29 3b 0a 58 0a 58 |ttons <<| 3);.X.X|
|00003ee0| 20 20 20 2f 2a 20 52 65 | 73 65 74 20 48 43 20 74 | /* Re|set HC t|
|00003ef0| 6f 20 30 2e 20 2a 2f 0a | 58 20 20 20 6f 75 74 62 |o 0. */.|X outb|
|00003f00| 28 43 4f 4e 54 52 4f 4c | 5f 52 45 47 2c 20 30 29 |(CONTROL|_REG, 0)|
|00003f10| 3b 0a 58 0a 58 20 20 20 | 2f 2a 20 49 66 20 6e 6f |;.X.X |/* If no|
|00003f20| 74 68 69 6e 67 20 68 61 | 73 20 63 68 61 6e 67 65 |thing ha|s change|
|00003f30| 64 2c 20 6e 6f 74 68 69 | 6e 67 20 6e 65 65 64 73 |d, nothi|ng needs|
|00003f40| 20 74 6f 20 62 65 20 64 | 6f 6e 65 2c 20 73 6f 20 | to be d|one, so |
|00003f50| 72 65 74 75 72 6e 2e 20 | 2a 2f 0a 58 20 20 20 69 |return. |*/.X i|
|00003f60| 66 20 28 21 28 64 78 20 | 7c 7c 20 64 79 20 7c 7c |f (!(dx ||| dy |||
|00003f70| 20 63 68 61 6e 67 65 64 | 5f 62 75 74 74 6f 6e 73 | changed|_buttons|
|00003f80| 29 29 20 72 65 74 75 72 | 6e 3b 0a 58 0a 58 20 20 |)) retur|n;.X.X |
|00003f90| 20 2f 2a 20 55 70 64 61 | 74 65 20 67 6c 6f 62 61 | /* Upda|te globa|
|00003fa0| 6c 20 76 61 72 69 61 62 | 6c 65 73 20 77 69 74 68 |l variab|les with|
|00003fb0| 20 69 6e 66 6f 20 6a 75 | 73 74 20 72 65 61 64 2e | info ju|st read.|
|00003fc0| 20 2a 2f 0a 58 20 20 20 | 78 6d 6f 74 69 6f 6e 20 | */.X |xmotion |
|00003fd0| 2b 3d 20 64 78 3b 0a 58 | 20 20 20 79 6d 6f 74 69 |+= dx;.X| ymoti|
|00003fe0| 6f 6e 20 2b 3d 20 64 79 | 3b 0a 58 23 69 66 64 65 |on += dy|;.X#ifde|
|00003ff0| 66 20 44 45 42 55 47 0a | 58 20 20 20 70 72 69 6e |f DEBUG.|X prin|
|00004000| 74 66 28 22 6c 6f 67 6d | 69 6e 74 72 3a 20 64 78 |tf("logm|intr: dx|
|00004010| 20 3d 20 25 64 2c 20 64 | 79 20 3d 20 25 64 2c 20 | = %d, d|y = %d, |
|00004020| 62 75 74 74 6f 6e 73 20 | 3d 20 25 64 5c 6e 22 2c |buttons |= %d\n",|
|00004030| 20 64 78 2c 20 64 79 2c | 20 62 75 74 74 6f 6e 73 | dx, dy,| buttons|
|00004040| 29 3b 0a 58 23 65 6e 64 | 69 66 20 2f 2a 20 44 45 |);.X#end|if /* DE|
|00004050| 42 55 47 20 2a 2f 0a 58 | 0a 58 23 69 66 64 65 66 |BUG */.X|.X#ifdef|
|00004060| 20 56 50 49 58 0a 58 20 | 20 20 2f 2a 20 53 65 6e | VPIX.X | /* Sen|
|00004070| 64 20 61 20 70 73 65 75 | 64 6f 72 75 70 74 20 69 |d a pseu|dorupt i|
|00004080| 66 20 74 68 69 73 20 69 | 73 20 61 6e 20 45 43 54 |f this i|s an ECT|
|00004090| 20 61 6e 64 20 74 68 65 | 20 6d 6f 75 73 65 20 68 | and the| mouse h|
|000040a0| 61 73 20 62 65 65 6e 20 | 72 65 61 64 20 73 69 6e |as been |read sin|
|000040b0| 63 65 0a 58 20 20 20 20 | 20 20 74 68 65 20 6c 61 |ce.X | the la|
|000040c0| 73 74 20 70 73 65 75 64 | 6f 72 75 70 74 2e 20 2a |st pseud|orupt. *|
|000040d0| 2f 0a 58 20 20 20 69 66 | 20 28 65 63 74 70 72 6f |/.X if| (ectpro|
|000040e0| 63 20 26 26 20 65 63 74 | 70 72 6f 63 2d 3e 70 5f |c && ect|proc->p_|
|000040f0| 76 38 36 20 26 26 20 21 | 72 75 70 74 65 64 29 20 |v86 && !|rupted) |
|00004100| 7b 0a 58 20 20 20 20 20 | 20 76 38 36 73 65 74 69 |{.X | v86seti|
|00004110| 6e 74 28 65 63 74 70 72 | 6f 63 2d 3e 70 5f 76 38 |nt(ectpr|oc->p_v8|
|00004120| 36 2c 20 56 38 36 56 49 | 5f 4d 4f 55 53 45 29 3b |6, V86VI|_MOUSE);|
|00004130| 0a 58 20 20 20 20 20 20 | 72 75 70 74 65 64 20 3d |.X |rupted =|
|00004140| 20 31 3b 0a 58 20 20 20 | 7d 0a 58 23 65 6e 64 69 | 1;.X |}.X#endi|
|00004150| 66 20 2f 2a 20 56 50 49 | 58 20 2a 2f 0a 58 0a 58 |f /* VPI|X */.X.X|
|00004160| 7d 20 2f 2a 20 6c 6f 67 | 6d 69 6e 74 72 20 2a 2f |} /* log|mintr */|
|00004170| 0a 45 4e 44 5f 4f 46 5f | 46 49 4c 45 0a 69 66 20 |.END_OF_|FILE.if |
|00004180| 74 65 73 74 20 31 32 34 | 30 33 20 2d 6e 65 20 60 |test 124|03 -ne `|
|00004190| 77 63 20 2d 63 20 3c 27 | 6c 6d 6f 75 73 65 2e 63 |wc -c <'|lmouse.c|
|000041a0| 27 60 3b 20 74 68 65 6e | 0a 20 20 20 20 65 63 68 |'`; then|. ech|
|000041b0| 6f 20 73 68 61 72 3a 20 | 5c 22 27 6c 6d 6f 75 73 |o shar: |\"'lmous|
|000041c0| 65 2e 63 27 5c 22 20 75 | 6e 70 61 63 6b 65 64 20 |e.c'\" u|npacked |
|000041d0| 77 69 74 68 20 77 72 6f | 6e 67 20 73 69 7a 65 21 |with wro|ng size!|
|000041e0| 0a 66 69 0a 23 20 65 6e | 64 20 6f 66 20 27 6c 6d |.fi.# en|d of 'lm|
|000041f0| 6f 75 73 65 2e 63 27 0a | 66 69 0a 69 66 20 74 65 |ouse.c'.|fi.if te|
|00004200| 73 74 20 2d 66 20 27 6c | 6d 6f 75 73 65 2e 6e 6f |st -f 'l|mouse.no|
|00004210| 64 65 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |de' -a "|${1}" !=|
|00004220| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00004230| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00004240| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00004250| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 6c 6d 6f |ting fil|e \"'lmo|
|00004260| 75 73 65 2e 6e 6f 64 65 | 27 5c 22 0a 65 6c 73 65 |use.node|'\".else|
|00004270| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 |.echo sh|ar: Extr|
|00004280| 61 63 74 69 6e 67 20 5c | 22 27 6c 6d 6f 75 73 65 |acting \|"'lmouse|
|00004290| 2e 6e 6f 64 65 27 5c 22 | 20 5c 28 31 38 20 63 68 |.node'\"| \(18 ch|
|000042a0| 61 72 61 63 74 65 72 73 | 5c 29 0a 73 65 64 20 22 |aracters|\).sed "|
|000042b0| 73 2f 5e 58 2f 2f 22 20 | 3e 27 6c 6d 6f 75 73 65 |s/^X//" |>'lmouse|
|000042c0| 2e 6e 6f 64 65 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |.node' <|<'END_OF|
|000042d0| 5f 46 49 4c 45 27 0a 58 | 6c 6d 6f 75 73 65 09 6c |_FILE'.X|lmouse.l|
|000042e0| 6d 6f 75 73 65 09 63 09 | 30 0a 45 4e 44 5f 4f 46 |mouse.c.|0.END_OF|
|000042f0| 5f 46 49 4c 45 0a 69 66 | 20 74 65 73 74 20 31 38 |_FILE.if| test 18|
|00004300| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 6c 6d | -ne `wc| -c <'lm|
|00004310| 6f 75 73 65 2e 6e 6f 64 | 65 27 60 3b 20 74 68 65 |ouse.nod|e'`; the|
|00004320| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00004330| 20 5c 22 27 6c 6d 6f 75 | 73 65 2e 6e 6f 64 65 27 | \"'lmou|se.node'|
|00004340| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|00004350| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 66 69 0a | wrong s|ize!.fi.|
|00004360| 23 20 65 6e 64 20 6f 66 | 20 27 6c 6d 6f 75 73 65 |# end of| 'lmouse|
|00004370| 2e 6e 6f 64 65 27 0a 66 | 69 0a 69 66 20 74 65 73 |.node'.f|i.if tes|
|00004380| 74 20 2d 66 20 27 6c 6d | 6f 75 73 65 2e 73 64 65 |t -f 'lm|ouse.sde|
|00004390| 76 69 63 65 27 20 2d 61 | 20 22 24 7b 31 7d 22 20 |vice' -a| "${1}" |
|000043a0| 21 3d 20 22 2d 63 22 20 | 3b 20 74 68 65 6e 20 0a |!= "-c" |; then .|
|000043b0| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 57 69 6c | echo s|har: Wil|
|000043c0| 6c 20 6e 6f 74 20 63 6c | 6f 62 62 65 72 20 65 78 |l not cl|obber ex|
|000043d0| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 5c 22 27 6c |isting f|ile \"'l|
|000043e0| 6d 6f 75 73 65 2e 73 64 | 65 76 69 63 65 27 5c 22 |mouse.sd|evice'\"|
|000043f0| 0a 65 6c 73 65 0a 65 63 | 68 6f 20 73 68 61 72 3a |.else.ec|ho shar:|
|00004400| 20 45 78 74 72 61 63 74 | 69 6e 67 20 5c 22 27 6c | Extract|ing \"'l|
|00004410| 6d 6f 75 73 65 2e 73 64 | 65 76 69 63 65 27 5c 22 |mouse.sd|evice'\"|
|00004420| 20 5c 28 32 39 20 63 68 | 61 72 61 63 74 65 72 73 | \(29 ch|aracters|
|00004430| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|00004440| 3e 27 6c 6d 6f 75 73 65 | 2e 73 64 65 76 69 63 65 |>'lmouse|.sdevice|
|00004450| 27 20 3c 3c 27 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |' <<'END|_OF_FILE|
|00004460| 27 0a 58 6c 6d 6f 75 73 | 65 09 4e 09 31 09 36 09 |'.Xlmous|e.N.1.6.|
|00004470| 31 09 35 09 32 33 63 09 | 32 33 66 09 30 09 30 0a |1.5.23c.|23f.0.0.|
|00004480| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 69 66 20 74 |END_OF_F|ILE.if t|
|00004490| 65 73 74 20 32 39 20 2d | 6e 65 20 60 77 63 20 2d |est 29 -|ne `wc -|
|000044a0| 63 20 3c 27 6c 6d 6f 75 | 73 65 2e 73 64 65 76 69 |c <'lmou|se.sdevi|
|000044b0| 63 65 27 60 3b 20 74 68 | 65 6e 0a 20 20 20 20 65 |ce'`; th|en. e|
|000044c0| 63 68 6f 20 73 68 61 72 | 3a 20 5c 22 27 6c 6d 6f |cho shar|: \"'lmo|
|000044d0| 75 73 65 2e 73 64 65 76 | 69 63 65 27 5c 22 20 75 |use.sdev|ice'\" u|
|000044e0| 6e 70 61 63 6b 65 64 20 | 77 69 74 68 20 77 72 6f |npacked |with wro|
|000044f0| 6e 67 20 73 69 7a 65 21 | 0a 66 69 0a 23 20 65 6e |ng size!|.fi.# en|
|00004500| 64 20 6f 66 20 27 6c 6d | 6f 75 73 65 2e 73 64 65 |d of 'lm|ouse.sde|
|00004510| 76 69 63 65 27 0a 66 69 | 0a 69 66 20 74 65 73 74 |vice'.fi|.if test|
|00004520| 20 2d 66 20 27 6d 74 2e | 63 27 20 2d 61 20 22 24 | -f 'mt.|c' -a "$|
|00004530| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|00004540| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|00004550| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|00004560| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|00004570| 20 5c 22 27 6d 74 2e 63 | 27 5c 22 0a 65 6c 73 65 | \"'mt.c|'\".else|
|00004580| 0a 65 63 68 6f 20 73 68 | 61 72 3a 20 45 78 74 72 |.echo sh|ar: Extr|
|00004590| 61 63 74 69 6e 67 20 5c | 22 27 6d 74 2e 63 27 5c |acting \|"'mt.c'\|
|000045a0| 22 20 5c 28 32 36 37 37 | 20 63 68 61 72 61 63 74 |" \(2677| charact|
|000045b0| 65 72 73 5c 29 0a 73 65 | 64 20 22 73 2f 5e 58 2f |ers\).se|d "s/^X/|
|000045c0| 2f 22 20 3e 27 6d 74 2e | 63 27 20 3c 3c 27 45 4e |/" >'mt.|c' <<'EN|
|000045d0| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2f 2a 2d 2d |D_OF_FIL|E'.X/*--|
|000045e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2a 2f 0a 58 23 69 6e 63 |--------|*/.X#inc|
|00004600| 6c 75 64 65 20 22 73 79 | 73 2f 70 61 72 61 6d 2e |lude "sy|s/param.|
|00004610| 68 22 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 73 79 |h".X#inc|lude "sy|
|00004620| 73 2f 74 79 70 65 73 2e | 68 22 0a 58 23 69 6e 63 |s/types.|h".X#inc|
|00004630| 6c 75 64 65 20 22 73 79 | 73 2f 73 79 73 6d 61 63 |lude "sy|s/sysmac|
|00004640| 72 6f 73 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |ros.h".X|#include|
|00004650| 20 22 73 79 73 2f 64 69 | 72 2e 68 22 0a 58 23 69 | "sys/di|r.h".X#i|
|00004660| 6e 63 6c 75 64 65 20 22 | 73 79 73 2f 73 69 67 6e |nclude "|sys/sign|
|00004670| 61 6c 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |al.h".X#|include |
|00004680| 22 73 79 73 2f 75 73 65 | 72 2e 68 22 0a 58 23 69 |"sys/use|r.h".X#i|
|00004690| 6e 63 6c 75 64 65 20 22 | 73 79 73 2f 65 72 72 6e |nclude "|sys/errn|
|000046a0| 6f 2e 68 22 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |o.h".X#i|nclude "|
|000046b0| 73 79 73 2f 69 6e 6c 69 | 6e 65 2e 68 22 0a 58 2f |sys/inli|ne.h".X/|
|000046c0| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|000046d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0a 58 23 |--------|---*/.X#|
|000046e0| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|000046f0| 3e 0a 58 23 69 6e 63 6c | 75 64 65 09 3c 66 63 6e |>.X#incl|ude.<fcn|
|00004700| 74 6c 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 09 |tl.h>.X#|include.|
|00004710| 3c 73 79 73 2f 6d 6f 75 | 73 65 2e 68 3e 0a 58 0a |<sys/mou|se.h>.X.|
|00004720| 58 73 74 61 74 69 63 20 | 69 6e 74 20 5f 66 64 20 |Xstatic |int _fd |
|00004730| 3d 20 2d 31 3b 0a 58 0a | 58 65 78 74 65 72 6e 20 |= -1;.X.|Xextern |
|00004740| 69 6e 74 20 65 72 72 6e | 6f 3b 0a 58 0a 58 2f 2a |int errn|o;.X.X/*|
|00004750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0a 58 69 |--------|---*/.Xi|
|000047a0| 6e 74 20 6d 73 5f 69 6e | 69 74 28 29 0a 58 7b 0a |nt ms_in|it().X{.|
|000047b0| 58 20 20 20 73 74 72 75 | 63 74 20 6d 6f 75 73 65 |X stru|ct mouse|
|000047c0| 69 6e 66 6f 20 70 6b 74 | 3b 0a 58 0a 58 20 20 20 |info pkt|;.X.X |
|000047d0| 69 66 20 28 28 5f 66 64 | 20 3d 20 6f 70 65 6e 28 |if ((_fd| = open(|
|000047e0| 22 2f 64 65 76 2f 6c 6d | 6f 75 73 65 22 2c 20 4f |"/dev/lm|ouse", O|
|000047f0| 5f 52 44 4f 4e 4c 59 29 | 29 20 3d 3d 20 2d 31 29 |_RDONLY)|) == -1)|
|00004800| 20 7b 0a 58 20 20 20 20 | 20 20 70 72 69 6e 74 66 | {.X | printf|
|00004810| 28 22 65 72 72 6e 6f 20 | 3d 20 25 64 5c 6e 22 2c |("errno |= %d\n",|
|00004820| 20 65 72 72 6e 6f 29 3b | 0a 58 20 20 20 20 20 20 | errno);|.X |
|00004830| 70 65 72 72 6f 72 28 22 | 6d 73 5f 69 6e 69 74 3a |perror("|ms_init:|
|00004840| 20 6f 70 65 6e 22 29 3b | 0a 58 20 20 20 20 20 20 | open");|.X |
|00004850| 72 65 74 75 72 6e 20 2d | 31 3b 0a 58 20 20 20 7d |return -|1;.X }|
|00004860| 0a 58 2f 2a 0a 58 20 65 | 6c 73 65 20 69 66 20 28 |.X/*.X e|lse if (|
|00004870| 69 6f 63 74 6c 28 5f 66 | 64 2c 20 4d 4f 55 53 45 |ioctl(_f|d, MOUSE|
|00004880| 49 4f 43 52 45 41 44 2c | 20 26 70 6b 74 29 20 3d |IOCREAD,| &pkt) =|
|00004890| 3d 20 2d 31 20 29 20 7b | 0a 58 20 20 20 20 20 20 |= -1 ) {|.X |
|000048a0| 70 65 72 72 6f 72 28 22 | 6d 73 5f 69 6e 69 74 3a |perror("|ms_init:|
|000048b0| 20 69 6f 63 74 6c 22 29 | 3b 0a 58 20 20 20 20 20 | ioctl")|;.X |
|000048c0| 20 63 6c 6f 73 65 28 5f | 66 64 20 29 3b 0a 58 20 | close(_|fd );.X |
|000048d0| 20 20 20 20 20 72 65 74 | 75 72 6e 20 2d 31 3b 0a | ret|urn -1;.|
|000048e0| 58 20 20 20 7d 0a 58 2a | 2f 0a 58 20 20 20 72 65 |X }.X*|/.X re|
|000048f0| 74 75 72 6e 20 30 3b 0a | 58 7d 20 2f 2a 20 6d 73 |turn 0;.|X} /* ms|
|00004900| 5f 69 6e 69 74 20 2a 2f | 0a 58 0a 58 2f 2a 2d 2d |_init */|.X.X/*--|
|00004910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2a 2f 0a 58 69 6e 74 |--------|-*/.Xint|
|00004960| 20 6d 73 5f 69 6f 63 74 | 6c 28 63 6d 64 29 0a 58 | ms_ioct|l(cmd).X|
|00004970| 69 6e 74 20 63 6d 64 3b | 0a 58 7b 0a 58 20 20 20 |int cmd;|.X{.X |
|00004980| 73 74 72 75 63 74 20 6d | 6f 75 73 65 69 6e 66 6f |struct m|ouseinfo|
|00004990| 20 70 6b 74 3b 0a 58 0a | 58 20 20 20 69 66 20 28 | pkt;.X.|X if (|
|000049a0| 63 6d 64 20 3d 3d 20 32 | 35 29 20 7b 0a 58 20 20 |cmd == 2|5) {.X |
|000049b0| 20 20 20 69 66 20 28 69 | 6f 63 74 6c 28 5f 66 64 | if (i|octl(_fd|
|000049c0| 2c 20 4d 4f 55 53 45 49 | 4f 43 52 45 41 44 2c 20 |, MOUSEI|OCREAD, |
|000049d0| 26 70 6b 74 29 20 3d 3d | 20 2d 31 20 29 20 7b 0a |&pkt) ==| -1 ) {.|
|000049e0| 58 20 20 20 20 20 20 20 | 20 20 70 65 72 72 6f 72 |X | perror|
|000049f0| 28 22 6d 73 5f 69 6e 69 | 74 3a 20 69 6f 63 74 6c |("ms_ini|t: ioctl|
|00004a00| 22 29 3b 0a 58 2f 2a 20 | 20 20 20 20 20 20 63 6c |");.X/* | cl|
|00004a10| 6f 73 65 28 5f 66 64 20 | 29 3b 20 2a 2f 0a 58 20 |ose(_fd |); */.X |
|00004a20| 20 20 20 20 20 20 20 20 | 72 65 74 75 72 6e 20 2d | |return -|
|00004a30| 31 3b 0a 58 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |1;.X | }.X |
|00004a40| 20 20 20 70 72 69 6e 74 | 66 28 22 6d 73 5f 69 6f | print|f("ms_io|
|00004a50| 63 74 6c 3a 20 73 74 61 | 74 75 73 20 3d 20 30 78 |ctl: sta|tus = 0x|
|00004a60| 25 78 2c 20 78 6d 6f 74 | 69 6f 6e 20 3d 20 25 64 |%x, xmot|ion = %d|
|00004a70| 2c 20 79 6d 6f 74 69 6f | 6e 20 3d 20 25 64 5c 6e |, ymotio|n = %d\n|
|00004a80| 22 2c 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |",.X | |
|00004a90| 20 70 6b 74 2e 73 74 61 | 74 75 73 2c 20 70 6b 74 | pkt.sta|tus, pkt|
|00004aa0| 2e 78 6d 6f 74 69 6f 6e | 2c 20 70 6b 74 2e 79 6d |.xmotion|, pkt.ym|
|00004ab0| 6f 74 69 6f 6e 29 3b 0a | 58 20 20 20 7d 0a 58 20 |otion);.|X }.X |
|00004ac0| 20 20 65 6c 73 65 20 69 | 66 20 28 69 6f 63 74 6c | else i|f (ioctl|
|00004ad0| 28 5f 66 64 2c 20 63 6d | 64 2c 20 26 70 6b 74 29 |(_fd, cm|d, &pkt)|
|00004ae0| 20 3d 3d 20 2d 31 20 29 | 20 7b 0a 58 20 20 20 20 | == -1 )| {.X |
|00004af0| 20 20 70 65 72 72 6f 72 | 28 22 6d 73 5f 69 6f 63 | perror|("ms_ioc|
|00004b00| 74 6c 3a 20 69 6f 63 74 | 6c 22 29 3b 0a 58 2f 2a |tl: ioct|l");.X/*|
|00004b10| 20 20 20 20 63 6c 6f 73 | 65 28 5f 66 64 20 29 3b | clos|e(_fd );|
|00004b20| 20 2a 2f 0a 58 20 20 20 | 20 20 20 72 65 74 75 72 | */.X | retur|
|00004b30| 6e 20 2d 31 3b 0a 58 20 | 20 20 7d 0a 58 0a 58 20 |n -1;.X | }.X.X |
|00004b40| 20 20 72 65 74 75 72 6e | 20 30 3b 0a 58 7d 20 2f | return| 0;.X} /|
|00004b50| 2a 20 6d 73 5f 69 6f 63 | 74 6c 20 2a 2f 0a 58 0a |* ms_ioc|tl */.X.|
|00004b60| 58 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |X/*-----|--------|
|00004b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00004bb0| 0a 58 69 6e 74 20 6d 73 | 5f 63 6c 6f 73 65 28 29 |.Xint ms|_close()|
|00004bc0| 0a 58 7b 0a 58 20 20 20 | 69 6e 74 20 72 63 20 3d |.X{.X |int rc =|
|00004bd0| 20 2d 31 3b 0a 58 0a 58 | 20 20 20 69 66 20 28 5f | -1;.X.X| if (_|
|00004be0| 66 64 20 21 3d 20 2d 31 | 29 20 7b 0a 58 20 20 20 |fd != -1|) {.X |
|00004bf0| 20 20 20 72 63 20 3d 20 | 63 6c 6f 73 65 28 5f 66 | rc = |close(_f|
|00004c00| 64 20 29 3b 0a 58 20 20 | 20 20 20 20 5f 66 64 20 |d );.X | _fd |
|00004c10| 3d 20 2d 31 3b 0a 58 20 | 20 20 7d 0a 58 20 20 20 |= -1;.X | }.X |
|00004c20| 72 65 74 75 72 6e 20 72 | 63 3b 0a 58 7d 20 2f 2a |return r|c;.X} /*|
|00004c30| 20 6d 73 5f 63 6c 6f 73 | 65 20 2a 2f 0a 58 0a 58 | ms_clos|e */.X.X|
|00004c40| 23 69 66 64 65 66 20 4e | 4f 54 5f 4e 4f 57 0a 58 |#ifdef N|OT_NOW.X|
|00004c50| 0a 58 2f 2a 0a 58 20 2a | 20 46 55 4e 43 54 49 4f |.X/*.X *| FUNCTIO|
|00004c60| 4e 3a 20 42 4d 53 45 4d | 44 5f 52 45 41 44 0a 58 |N: BMSEM|D_READ.X|
|00004c70| 20 2a 09 09 61 20 72 6f | 75 74 69 6e 65 20 74 6f | *..a ro|utine to|
|00004c80| 20 63 61 6c 6c 20 77 68 | 65 6e 20 6d 6f 75 73 65 | call wh|en mouse|
|00004c90| 20 64 61 74 61 20 69 73 | 20 61 76 61 69 6c 61 62 | data is| availab|
|00004ca0| 6c 65 0a 58 20 2a 0a 58 | 20 2a 20 49 4e 50 55 54 |le.X *.X| * INPUT|
|00004cb0| 20 50 41 52 41 4d 45 54 | 45 52 53 0a 58 20 2a 09 | PARAMET|ERS.X *.|
|00004cc0| 6e 6f 6e 65 0a 58 20 2a | 20 4f 55 54 50 55 54 20 |none.X *| OUTPUT |
|00004cd0| 50 41 52 41 4d 45 54 45 | 52 53 0a 58 20 2a 09 6e |PARAMETE|RS.X *.n|
|00004ce0| 6f 6e 65 0a 58 20 2a 2f | 0a 58 76 6f 69 64 09 62 |one.X */|.Xvoid.b|
|00004cf0| 6d 73 65 6d 64 5f 72 65 | 61 64 28 29 0a 58 7b 0a |msemd_re|ad().X{.|
|00004d00| 58 09 4d 53 45 50 4b 54 | 09 70 6b 74 3b 0a 58 0a |X.MSEPKT|.pkt;.X.|
|00004d10| 58 09 69 66 09 28 20 5f | 66 64 20 3d 3d 20 2d 31 |X.if.( _|fd == -1|
|00004d20| 20 7c 7c 20 69 6f 63 74 | 6c 28 5f 66 64 2c 56 50 | || ioct|l(_fd,VP|
|00004d30| 43 5f 4d 4f 55 53 45 5f | 52 45 41 44 2c 26 70 6b |C_MOUSE_|READ,&pk|
|00004d40| 74 29 20 3d 3d 20 2d 31 | 20 29 0a 58 09 7b 0a 58 |t) == -1| ).X.{.X|
|00004d50| 23 69 66 64 65 66 09 44 | 45 42 55 47 0a 58 09 09 |#ifdef.D|EBUG.X..|
|00004d60| 76 38 36 65 72 72 6f 72 | 28 56 45 52 52 5f 57 41 |v86error|(VERR_WA|
|00004d70| 52 4e 49 4e 47 2c 22 75 | 6e 61 62 6c 65 20 74 6f |RNING,"u|nable to|
|00004d80| 20 67 65 74 20 6d 6f 75 | 73 65 20 64 61 74 61 22 | get mou|se data"|
|00004d90| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 09 09 72 65 |);.X#end|if.X..re|
|00004da0| 74 75 72 6e 3b 0a 58 09 | 7d 0a 58 0a 58 09 69 66 |turn;.X.|}.X.X.if|
|00004db0| 09 28 20 70 6b 74 2e 73 | 74 61 74 75 73 20 26 20 |.( pkt.s|tatus & |
|00004dc0| 4d 4f 56 45 4d 45 4e 54 | 20 29 09 2f 2a 20 69 66 |MOVEMENT| )./* if|
|00004dd0| 20 74 68 65 20 6d 6f 75 | 73 65 20 6d 6f 76 65 64 | the mou|se moved|
|00004de0| 20 2a 2f 0a 58 09 09 78 | 79 5f 62 6d 6f 75 73 65 | */.X..x|y_bmouse|
|00004df0| 28 20 70 6b 74 2e 78 6d | 6f 74 69 6f 6e 2c 20 70 |( pkt.xm|otion, p|
|00004e00| 6b 74 2e 79 6d 6f 74 69 | 6f 6e 20 29 3b 0a 58 0a |kt.ymoti|on );.X.|
|00004e10| 58 09 69 66 09 28 20 70 | 6b 74 2e 73 74 61 74 75 |X.if.( p|kt.statu|
|00004e20| 73 20 26 20 42 55 54 31 | 43 48 4e 47 20 29 09 2f |s & BUT1|CHNG )./|
|00004e30| 2a 20 69 66 20 62 75 74 | 74 6f 6e 20 31 20 63 68 |* if but|ton 1 ch|
|00004e40| 61 6e 67 65 64 20 2a 2f | 0a 58 09 09 62 74 6e 5f |anged */|.X..btn_|
|00004e50| 62 6d 6f 75 73 65 28 20 | 30 2c 20 28 69 6e 74 29 |bmouse( |0, (int)|
|00004e60| 28 70 6b 74 2e 73 74 61 | 74 75 73 20 26 20 42 55 |(pkt.sta|tus & BU|
|00004e70| 54 31 53 54 41 54 29 20 | 29 3b 0a 58 0a 58 09 69 |T1STAT) |);.X.X.i|
|00004e80| 66 09 28 20 70 6b 74 2e | 73 74 61 74 75 73 20 26 |f.( pkt.|status &|
|00004e90| 20 42 55 54 32 43 48 4e | 47 20 29 09 2f 2a 20 69 | BUT2CHN|G )./* i|
|00004ea0| 66 20 62 75 74 74 6f 6e | 20 32 20 63 68 61 6e 67 |f button| 2 chang|
|00004eb0| 65 64 20 2a 2f 0a 58 09 | 09 62 74 6e 5f 62 6d 6f |ed */.X.|.btn_bmo|
|00004ec0| 75 73 65 28 20 31 2c 20 | 28 69 6e 74 29 28 70 6b |use( 1, |(int)(pk|
|00004ed0| 74 2e 73 74 61 74 75 73 | 20 26 20 42 55 54 32 53 |t.status| & BUT2S|
|00004ee0| 54 41 54 29 20 29 3b 0a | 58 0a 58 09 69 66 09 28 |TAT) );.|X.X.if.(|
|00004ef0| 20 70 6b 74 2e 73 74 61 | 74 75 73 20 26 20 42 55 | pkt.sta|tus & BU|
|00004f00| 54 33 43 48 4e 47 20 29 | 09 2f 2a 20 69 66 20 62 |T3CHNG )|./* if b|
|00004f10| 75 74 74 6f 6e 20 33 20 | 63 68 61 6e 67 65 64 20 |utton 3 |changed |
|00004f20| 2a 2f 0a 58 09 09 62 74 | 6e 5f 62 6d 6f 75 73 65 |*/.X..bt|n_bmouse|
|00004f30| 28 20 32 2c 20 28 69 6e | 74 29 28 70 6b 74 2e 73 |( 2, (in|t)(pkt.s|
|00004f40| 74 61 74 75 73 20 26 20 | 42 55 54 33 53 54 41 54 |tatus & |BUT3STAT|
|00004f50| 29 20 29 3b 0a 58 7d 0a | 58 23 65 6e 64 69 66 20 |) );.X}.|X#endif |
|00004f60| 2f 2a 20 4e 4f 54 5f 4e | 4f 57 20 2a 2f 0a 58 0a |/* NOT_N|OW */.X.|
|00004f70| 58 6d 61 69 6e 28 29 0a | 58 7b 0a 58 20 20 20 63 |Xmain().|X{.X c|
|00004f80| 68 61 72 20 73 74 72 5b | 38 30 5d 3b 0a 58 20 20 |har str[|80];.X |
|00004f90| 20 69 6e 74 20 63 6d 64 | 3b 0a 58 0a 58 20 20 20 | int cmd|;.X.X |
|00004fa0| 6d 73 5f 69 6e 69 74 28 | 29 3b 0a 58 20 20 20 66 |ms_init(|);.X f|
|00004fb0| 6f 72 20 28 63 6d 64 20 | 3d 20 30 3b 20 30 20 3c |or (cmd |= 0; 0 <|
|00004fc0| 3d 20 63 6d 64 20 26 26 | 20 63 6d 64 20 3c 3d 20 |= cmd &&| cmd <= |
|00004fd0| 32 35 3b 29 20 7b 0a 58 | 20 20 20 20 20 20 70 72 |25;) {.X| pr|
|00004fe0| 69 6e 74 66 28 22 63 6d | 64 3f 20 28 30 2d 32 35 |intf("cm|d? (0-25|
|00004ff0| 29 20 3e 20 22 29 3b 0a | 58 20 20 20 20 20 20 28 |) > ");.|X (|
|00005000| 76 6f 69 64 29 20 67 65 | 74 73 28 73 74 72 29 3b |void) ge|ts(str);|
|00005010| 0a 58 20 20 20 20 20 20 | 63 6d 64 20 3d 20 61 74 |.X |cmd = at|
|00005020| 6f 69 28 73 74 72 29 3b | 0a 58 20 20 20 20 20 20 |oi(str);|.X |
|00005030| 70 72 69 6e 74 66 28 22 | 6d 74 3a 20 63 6d 64 20 |printf("|mt: cmd |
|00005040| 3d 20 25 64 5c 6e 22 2c | 20 63 6d 64 29 3b 0a 58 |= %d\n",| cmd);.X|
|00005050| 20 20 20 20 20 20 69 66 | 20 28 30 20 3c 3d 20 63 | if| (0 <= c|
|00005060| 6d 64 20 26 26 20 63 6d | 64 20 3c 3d 20 32 35 29 |md && cm|d <= 25)|
|00005070| 20 6d 73 5f 69 6f 63 74 | 6c 28 63 6d 64 29 3b 0a | ms_ioct|l(cmd);.|
|00005080| 58 20 20 20 20 20 20 65 | 6c 73 65 20 20 20 20 20 |X e|lse |
|00005090| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000050a0| 20 70 72 69 6e 74 66 28 | 22 65 78 69 74 69 6e 67 | printf(|"exiting|
|000050b0| 5c 6e 22 29 3b 0a 58 20 | 20 20 7d 0a 58 20 20 20 |\n");.X | }.X |
|000050c0| 6d 73 5f 63 6c 6f 73 65 | 28 29 3b 0a 58 7d 0a 45 |ms_close|();.X}.E|
|000050d0| 4e 44 5f 4f 46 5f 46 49 | 4c 45 0a 69 66 20 74 65 |ND_OF_FI|LE.if te|
|000050e0| 73 74 20 32 36 37 37 20 | 2d 6e 65 20 60 77 63 20 |st 2677 |-ne `wc |
|000050f0| 2d 63 20 3c 27 6d 74 2e | 63 27 60 3b 20 74 68 65 |-c <'mt.|c'`; the|
|00005100| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|00005110| 20 5c 22 27 6d 74 2e 63 | 27 5c 22 20 75 6e 70 61 | \"'mt.c|'\" unpa|
|00005120| 63 6b 65 64 20 77 69 74 | 68 20 77 72 6f 6e 67 20 |cked wit|h wrong |
|00005130| 73 69 7a 65 21 0a 66 69 | 0a 23 20 65 6e 64 20 6f |size!.fi|.# end o|
|00005140| 66 20 27 6d 74 2e 63 27 | 0a 66 69 0a 69 66 20 74 |f 'mt.c'|.fi.if t|
|00005150| 65 73 74 20 2d 66 20 27 | 6d 74 32 2e 63 27 20 2d |est -f '|mt2.c' -|
|00005160| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|00005170| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00005180| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00005190| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000051a0| 66 69 6c 65 20 5c 22 27 | 6d 74 32 2e 63 27 5c 22 |file \"'|mt2.c'\"|
|000051b0| 0a 65 6c 73 65 0a 65 63 | 68 6f 20 73 68 61 72 3a |.else.ec|ho shar:|
|000051c0| 20 45 78 74 72 61 63 74 | 69 6e 67 20 5c 22 27 6d | Extract|ing \"'m|
|000051d0| 74 32 2e 63 27 5c 22 20 | 5c 28 32 36 37 35 20 63 |t2.c'\" |\(2675 c|
|000051e0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000051f0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 6d 74 32 2e 63 |"s/^X//"| >'mt2.c|
|00005200| 27 20 3c 3c 27 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |' <<'END|_OF_FILE|
|00005210| 27 0a 58 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |'.X/*---|--------|
|00005220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00005230| 2f 0a 58 23 69 6e 63 6c | 75 64 65 20 22 73 79 73 |/.X#incl|ude "sys|
|00005240| 2f 70 61 72 61 6d 2e 68 | 22 0a 58 23 69 6e 63 6c |/param.h|".X#incl|
|00005250| 75 64 65 20 22 73 79 73 | 2f 74 79 70 65 73 2e 68 |ude "sys|/types.h|
|00005260| 22 0a 58 23 69 6e 63 6c | 75 64 65 20 22 73 79 73 |".X#incl|ude "sys|
|00005270| 2f 73 79 73 6d 61 63 72 | 6f 73 2e 68 22 0a 58 23 |/sysmacr|os.h".X#|
|00005280| 69 6e 63 6c 75 64 65 20 | 22 73 79 73 2f 64 69 72 |include |"sys/dir|
|00005290| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 73 |.h".X#in|clude "s|
|000052a0| 79 73 2f 73 69 67 6e 61 | 6c 2e 68 22 0a 58 23 69 |ys/signa|l.h".X#i|
|000052b0| 6e 63 6c 75 64 65 20 22 | 73 79 73 2f 75 73 65 72 |nclude "|sys/user|
|000052c0| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 73 |.h".X#in|clude "s|
|000052d0| 79 73 2f 65 72 72 6e 6f | 2e 68 22 0a 58 23 69 6e |ys/errno|.h".X#in|
|000052e0| 63 6c 75 64 65 20 22 73 | 79 73 2f 69 6e 6c 69 6e |clude "s|ys/inlin|
|000052f0| 65 2e 68 22 0a 58 2f 2a | 2d 2d 2d 2d 2d 2d 2d 2d |e.h".X/*|--------|
|00005300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005310| 2d 2d 2a 2f 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |--*/.X#i|nclude <|
|00005320| 73 74 64 69 6f 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |stdio.h>|.X#inclu|
|00005330| 64 65 09 3c 66 63 6e 74 | 6c 2e 68 3e 0a 58 23 69 |de.<fcnt|l.h>.X#i|
|00005340| 6e 63 6c 75 64 65 09 3c | 73 79 73 2f 6d 6f 75 73 |nclude.<|sys/mous|
|00005350| 65 2e 68 3e 0a 58 0a 58 | 73 74 61 74 69 63 20 69 |e.h>.X.X|static i|
|00005360| 6e 74 20 5f 66 64 20 3d | 20 2d 31 3b 0a 58 0a 58 |nt _fd =| -1;.X.X|
|00005370| 65 78 74 65 72 6e 20 69 | 6e 74 20 65 72 72 6e 6f |extern i|nt errno|
|00005380| 3b 0a 58 0a 58 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |;.X.X/*-|--------|
|00005390| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000053a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000053b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000053c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000053d0| 2d 2d 2a 2f 0a 58 69 6e | 74 20 6d 73 5f 69 6e 69 |--*/.Xin|t ms_ini|
|000053e0| 74 28 29 0a 58 7b 0a 58 | 20 20 20 73 74 72 75 63 |t().X{.X| struc|
|000053f0| 74 20 6d 6f 75 73 65 69 | 6e 66 6f 20 70 6b 74 3b |t mousei|nfo pkt;|
|00005400| 0a 58 0a 58 20 20 20 69 | 66 20 28 28 5f 66 64 20 |.X.X i|f ((_fd |
|00005410| 3d 20 6f 70 65 6e 28 22 | 2f 64 65 76 2f 6c 6f 67 |= open("|/dev/log|
|00005420| 69 22 2c 20 4f 5f 52 44 | 4f 4e 4c 59 29 29 20 3d |i", O_RD|ONLY)) =|
|00005430| 3d 20 2d 31 29 20 7b 0a | 58 20 20 20 20 20 20 70 |= -1) {.|X p|
|00005440| 72 69 6e 74 66 28 22 65 | 72 72 6e 6f 20 3d 20 25 |rintf("e|rrno = %|
|00005450| 64 5c 6e 22 2c 20 65 72 | 72 6e 6f 29 3b 0a 58 20 |d\n", er|rno);.X |
|00005460| 20 20 20 20 20 70 65 72 | 72 6f 72 28 22 6d 73 5f | per|ror("ms_|
|00005470| 69 6e 69 74 3a 20 6f 70 | 65 6e 22 29 3b 0a 58 20 |init: op|en");.X |
|00005480| 20 20 20 20 20 72 65 74 | 75 72 6e 20 2d 31 3b 0a | ret|urn -1;.|
|00005490| 58 20 20 20 7d 0a 58 2f | 2a 0a 58 20 65 6c 73 65 |X }.X/|*.X else|
|000054a0| 20 69 66 20 28 69 6f 63 | 74 6c 28 5f 66 64 2c 20 | if (ioc|tl(_fd, |
|000054b0| 4d 4f 55 53 45 49 4f 43 | 52 45 41 44 2c 20 26 70 |MOUSEIOC|READ, &p|
|000054c0| 6b 74 29 20 3d 3d 20 2d | 31 20 29 20 7b 0a 58 20 |kt) == -|1 ) {.X |
|000054d0| 20 20 20 20 20 70 65 72 | 72 6f 72 28 22 6d 73 5f | per|ror("ms_|
|000054e0| 69 6e 69 74 3a 20 69 6f | 63 74 6c 22 29 3b 0a 58 |init: io|ctl");.X|
|000054f0| 20 20 20 20 20 20 63 6c | 6f 73 65 28 5f 66 64 20 | cl|ose(_fd |
|00005500| 29 3b 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e |);.X | return|
|00005510| 20 2d 31 3b 0a 58 20 20 | 20 7d 0a 58 2a 2f 0a 58 | -1;.X | }.X*/.X|
|00005520| 20 20 20 72 65 74 75 72 | 6e 20 30 3b 0a 58 7d 20 | retur|n 0;.X} |
|00005530| 2f 2a 20 6d 73 5f 69 6e | 69 74 20 2a 2f 0a 58 0a |/* ms_in|it */.X.|
|00005540| 58 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |X/*-----|--------|
|00005550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005560| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005570| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00005580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00005590| 0a 58 69 6e 74 20 6d 73 | 5f 69 6f 63 74 6c 28 63 |.Xint ms|_ioctl(c|
|000055a0| 6d 64 29 0a 58 69 6e 74 | 20 63 6d 64 3b 0a 58 7b |md).Xint| cmd;.X{|
|000055b0| 0a 58 20 20 20 73 74 72 | 75 63 74 20 6d 6f 75 73 |.X str|uct mous|
|000055c0| 65 69 6e 66 6f 20 70 6b | 74 3b 0a 58 0a 58 20 20 |einfo pk|t;.X.X |
|000055d0| 20 69 66 20 28 63 6d 64 | 20 3d 3d 20 32 35 29 20 | if (cmd| == 25) |
|000055e0| 7b 0a 58 20 20 20 20 20 | 69 66 20 28 69 6f 63 74 |{.X |if (ioct|
|000055f0| 6c 28 5f 66 64 2c 20 4d | 4f 55 53 45 49 4f 43 52 |l(_fd, M|OUSEIOCR|
|00005600| 45 41 44 2c 20 26 70 6b | 74 29 20 3d 3d 20 2d 31 |EAD, &pk|t) == -1|
|00005610| 20 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 70 | ) {.X | p|
|00005620| 65 72 72 6f 72 28 22 6d | 73 5f 69 6e 69 74 3a 20 |error("m|s_init: |
|00005630| 69 6f 63 74 6c 22 29 3b | 0a 58 2f 2a 20 20 20 20 |ioctl");|.X/* |
|00005640| 20 20 20 63 6c 6f 73 65 | 28 5f 66 64 20 29 3b 20 | close|(_fd ); |
|00005650| 2a 2f 0a 58 20 20 20 20 | 20 20 20 20 20 72 65 74 |*/.X | ret|
|00005660| 75 72 6e 20 2d 31 3b 0a | 58 20 20 20 20 20 20 7d |urn -1;.|X }|
|00005670| 0a 58 20 20 20 20 20 20 | 70 72 69 6e 74 66 28 22 |.X |printf("|
|00005680| 6d 73 5f 69 6f 63 74 6c | 3a 20 73 74 61 74 75 73 |ms_ioctl|: status|
|00005690| 20 3d 20 30 78 25 78 2c | 20 78 6d 6f 74 69 6f 6e | = 0x%x,| xmotion|
|000056a0| 20 3d 20 25 64 2c 20 79 | 6d 6f 74 69 6f 6e 20 3d | = %d, y|motion =|
|000056b0| 20 25 64 5c 6e 22 2c 0a | 58 20 20 20 20 20 20 20 | %d\n",.|X |
|000056c0| 20 20 20 20 20 20 70 6b | 74 2e 73 74 61 74 75 73 | pk|t.status|
|000056d0| 2c 20 70 6b 74 2e 78 6d | 6f 74 69 6f 6e 2c 20 70 |, pkt.xm|otion, p|
|000056e0| 6b 74 2e 79 6d 6f 74 69 | 6f 6e 29 3b 0a 58 20 20 |kt.ymoti|on);.X |
|000056f0| 20 7d 0a 58 20 20 20 65 | 6c 73 65 20 69 66 20 28 | }.X e|lse if (|
|00005700| 69 6f 63 74 6c 28 5f 66 | 64 2c 20 63 6d 64 2c 20 |ioctl(_f|d, cmd, |
|00005710| 26 70 6b 74 29 20 3d 3d | 20 2d 31 20 29 20 7b 0a |&pkt) ==| -1 ) {.|
|00005720| 58 20 20 20 20 20 20 70 | 65 72 72 6f 72 28 22 6d |X p|error("m|
|00005730| 73 5f 69 6f 63 74 6c 3a | 20 69 6f 63 74 6c 22 29 |s_ioctl:| ioctl")|
|00005740| 3b 0a 58 2f 2a 20 20 20 | 20 63 6c 6f 73 65 28 5f |;.X/* | close(_|
|00005750| 66 64 20 29 3b 20 2a 2f | 0a 58 20 20 20 20 20 20 |fd ); */|.X |
|00005760| 72 65 74 75 72 6e 20 2d | 31 3b 0a 58 20 20 20 7d |return -|1;.X }|
|00005770| 0a 58 0a 58 20 20 20 72 | 65 74 75 72 6e 20 30 3b |.X.X r|eturn 0;|
|00005780| 0a 58 7d 20 2f 2a 20 6d | 73 5f 69 6f 63 74 6c 20 |.X} /* m|s_ioctl |
|00005790| 2a 2f 0a 58 0a 58 2f 2a | 2d 2d 2d 2d 2d 2d 2d 2d |*/.X.X/*|--------|
|000057a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000057e0| 2d 2d 2d 2a 2f 0a 58 69 | 6e 74 20 6d 73 5f 63 6c |---*/.Xi|nt ms_cl|
|000057f0| 6f 73 65 28 29 0a 58 7b | 0a 58 20 20 20 69 6e 74 |ose().X{|.X int|
|00005800| 20 72 63 20 3d 20 2d 31 | 3b 0a 58 0a 58 20 20 20 | rc = -1|;.X.X |
|00005810| 69 66 20 28 5f 66 64 20 | 21 3d 20 2d 31 29 20 7b |if (_fd |!= -1) {|
|00005820| 0a 58 20 20 20 20 20 20 | 72 63 20 3d 20 63 6c 6f |.X |rc = clo|
|00005830| 73 65 28 5f 66 64 20 29 | 3b 0a 58 20 20 20 20 20 |se(_fd )|;.X |
|00005840| 20 5f 66 64 20 3d 20 2d | 31 3b 0a 58 20 20 20 7d | _fd = -|1;.X }|
|00005850| 0a 58 20 20 20 72 65 74 | 75 72 6e 20 72 63 3b 0a |.X ret|urn rc;.|
|00005860| 58 7d 20 2f 2a 20 6d 73 | 5f 63 6c 6f 73 65 20 2a |X} /* ms|_close *|
|00005870| 2f 0a 58 0a 58 23 69 66 | 64 65 66 20 4e 4f 54 5f |/.X.X#if|def NOT_|
|00005880| 4e 4f 57 0a 58 0a 58 2f | 2a 0a 58 20 2a 20 46 55 |NOW.X.X/|*.X * FU|
|00005890| 4e 43 54 49 4f 4e 3a 20 | 42 4d 53 45 4d 44 5f 52 |NCTION: |BMSEMD_R|
|000058a0| 45 41 44 0a 58 20 2a 09 | 09 61 20 72 6f 75 74 69 |EAD.X *.|.a routi|
|000058b0| 6e 65 20 74 6f 20 63 61 | 6c 6c 20 77 68 65 6e 20 |ne to ca|ll when |
|000058c0| 6d 6f 75 73 65 20 64 61 | 74 61 20 69 73 20 61 76 |mouse da|ta is av|
|000058d0| 61 69 6c 61 62 6c 65 0a | 58 20 2a 0a 58 20 2a 20 |ailable.|X *.X * |
|000058e0| 49 4e 50 55 54 20 50 41 | 52 41 4d 45 54 45 52 53 |INPUT PA|RAMETERS|
|000058f0| 0a 58 20 2a 09 6e 6f 6e | 65 0a 58 20 2a 20 4f 55 |.X *.non|e.X * OU|
|00005900| 54 50 55 54 20 50 41 52 | 41 4d 45 54 45 52 53 0a |TPUT PAR|AMETERS.|
|00005910| 58 20 2a 09 6e 6f 6e 65 | 0a 58 20 2a 2f 0a 58 76 |X *.none|.X */.Xv|
|00005920| 6f 69 64 09 62 6d 73 65 | 6d 64 5f 72 65 61 64 28 |oid.bmse|md_read(|
|00005930| 29 0a 58 7b 0a 58 09 4d | 53 45 50 4b 54 09 70 6b |).X{.X.M|SEPKT.pk|
|00005940| 74 3b 0a 58 0a 58 09 69 | 66 09 28 20 5f 66 64 20 |t;.X.X.i|f.( _fd |
|00005950| 3d 3d 20 2d 31 20 7c 7c | 20 69 6f 63 74 6c 28 5f |== -1 ||| ioctl(_|
|00005960| 66 64 2c 56 50 43 5f 4d | 4f 55 53 45 5f 52 45 41 |fd,VPC_M|OUSE_REA|
|00005970| 44 2c 26 70 6b 74 29 20 | 3d 3d 20 2d 31 20 29 0a |D,&pkt) |== -1 ).|
|00005980| 58 09 7b 0a 58 23 69 66 | 64 65 66 09 44 45 42 55 |X.{.X#if|def.DEBU|
|00005990| 47 0a 58 09 09 76 38 36 | 65 72 72 6f 72 28 56 45 |G.X..v86|error(VE|
|000059a0| 52 52 5f 57 41 52 4e 49 | 4e 47 2c 22 75 6e 61 62 |RR_WARNI|NG,"unab|
|000059b0| 6c 65 20 74 6f 20 67 65 | 74 20 6d 6f 75 73 65 20 |le to ge|t mouse |
|000059c0| 64 61 74 61 22 29 3b 0a | 58 23 65 6e 64 69 66 0a |data");.|X#endif.|
|000059d0| 58 09 09 72 65 74 75 72 | 6e 3b 0a 58 09 7d 0a 58 |X..retur|n;.X.}.X|
|000059e0| 0a 58 09 69 66 09 28 20 | 70 6b 74 2e 73 74 61 74 |.X.if.( |pkt.stat|
|000059f0| 75 73 20 26 20 4d 4f 56 | 45 4d 45 4e 54 20 29 09 |us & MOV|EMENT ).|
|00005a00| 2f 2a 20 69 66 20 74 68 | 65 20 6d 6f 75 73 65 20 |/* if th|e mouse |
|00005a10| 6d 6f 76 65 64 20 2a 2f | 0a 58 09 09 78 79 5f 62 |moved */|.X..xy_b|
|00005a20| 6d 6f 75 73 65 28 20 70 | 6b 74 2e 78 6d 6f 74 69 |mouse( p|kt.xmoti|
|00005a30| 6f 6e 2c 20 70 6b 74 2e | 79 6d 6f 74 69 6f 6e 20 |on, pkt.|ymotion |
|00005a40| 29 3b 0a 58 0a 58 09 69 | 66 09 28 20 70 6b 74 2e |);.X.X.i|f.( pkt.|
|00005a50| 73 74 61 74 75 73 20 26 | 20 42 55 54 31 43 48 4e |status &| BUT1CHN|
|00005a60| 47 20 29 09 2f 2a 20 69 | 66 20 62 75 74 74 6f 6e |G )./* i|f button|
|00005a70| 20 31 20 63 68 61 6e 67 | 65 64 20 2a 2f 0a 58 09 | 1 chang|ed */.X.|
|00005a80| 09 62 74 6e 5f 62 6d 6f | 75 73 65 28 20 30 2c 20 |.btn_bmo|use( 0, |
|00005a90| 28 69 6e 74 29 28 70 6b | 74 2e 73 74 61 74 75 73 |(int)(pk|t.status|
|00005aa0| 20 26 20 42 55 54 31 53 | 54 41 54 29 20 29 3b 0a | & BUT1S|TAT) );.|
|00005ab0| 58 0a 58 09 69 66 09 28 | 20 70 6b 74 2e 73 74 61 |X.X.if.(| pkt.sta|
|00005ac0| 74 75 73 20 26 20 42 55 | 54 32 43 48 4e 47 20 29 |tus & BU|T2CHNG )|
|00005ad0| 09 2f 2a 20 69 66 20 62 | 75 74 74 6f 6e 20 32 20 |./* if b|utton 2 |
|00005ae0| 63 68 61 6e 67 65 64 20 | 2a 2f 0a 58 09 09 62 74 |changed |*/.X..bt|
|00005af0| 6e 5f 62 6d 6f 75 73 65 | 28 20 31 2c 20 28 69 6e |n_bmouse|( 1, (in|
|00005b00| 74 29 28 70 6b 74 2e 73 | 74 61 74 75 73 20 26 20 |t)(pkt.s|tatus & |
|00005b10| 42 55 54 32 53 54 41 54 | 29 20 29 3b 0a 58 0a 58 |BUT2STAT|) );.X.X|
|00005b20| 09 69 66 09 28 20 70 6b | 74 2e 73 74 61 74 75 73 |.if.( pk|t.status|
|00005b30| 20 26 20 42 55 54 33 43 | 48 4e 47 20 29 09 2f 2a | & BUT3C|HNG )./*|
|00005b40| 20 69 66 20 62 75 74 74 | 6f 6e 20 33 20 63 68 61 | if butt|on 3 cha|
|00005b50| 6e 67 65 64 20 2a 2f 0a | 58 09 09 62 74 6e 5f 62 |nged */.|X..btn_b|
|00005b60| 6d 6f 75 73 65 28 20 32 | 2c 20 28 69 6e 74 29 28 |mouse( 2|, (int)(|
|00005b70| 70 6b 74 2e 73 74 61 74 | 75 73 20 26 20 42 55 54 |pkt.stat|us & BUT|
|00005b80| 33 53 54 41 54 29 20 29 | 3b 0a 58 7d 0a 58 23 65 |3STAT) )|;.X}.X#e|
|00005b90| 6e 64 69 66 20 2f 2a 20 | 4e 4f 54 5f 4e 4f 57 20 |ndif /* |NOT_NOW |
|00005ba0| 2a 2f 0a 58 0a 58 6d 61 | 69 6e 28 29 0a 58 7b 0a |*/.X.Xma|in().X{.|
|00005bb0| 58 20 20 20 63 68 61 72 | 20 73 74 72 5b 38 30 5d |X char| str[80]|
|00005bc0| 3b 0a 58 20 20 20 69 6e | 74 20 63 6d 64 3b 0a 58 |;.X in|t cmd;.X|
|00005bd0| 0a 58 20 20 20 6d 73 5f | 69 6e 69 74 28 29 3b 0a |.X ms_|init();.|
|00005be0| 58 20 20 20 66 6f 72 20 | 28 63 6d 64 20 3d 20 30 |X for |(cmd = 0|
|00005bf0| 3b 20 30 20 3c 3d 20 63 | 6d 64 20 26 26 20 63 6d |; 0 <= c|md && cm|
|00005c00| 64 20 3c 3d 20 32 35 3b | 29 20 7b 0a 58 20 20 20 |d <= 25;|) {.X |
|00005c10| 20 20 20 70 72 69 6e 74 | 66 28 22 63 6d 64 3f 20 | print|f("cmd? |
|00005c20| 28 30 2d 32 35 29 20 3e | 20 22 29 3b 0a 58 20 20 |(0-25) >| ");.X |
|00005c30| 20 20 20 20 28 76 6f 69 | 64 29 20 67 65 74 73 28 | (voi|d) gets(|
|00005c40| 73 74 72 29 3b 0a 58 20 | 20 20 20 20 20 63 6d 64 |str);.X | cmd|
|00005c50| 20 3d 20 61 74 6f 69 28 | 73 74 72 29 3b 0a 58 20 | = atoi(|str);.X |
|00005c60| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 6d 74 3a | pri|ntf("mt:|
|00005c70| 20 63 6d 64 20 3d 20 25 | 64 5c 6e 22 2c 20 63 6d | cmd = %|d\n", cm|
|00005c80| 64 29 3b 0a 58 20 20 20 | 20 20 20 69 66 20 28 30 |d);.X | if (0|
|00005c90| 20 3c 3d 20 63 6d 64 20 | 26 26 20 63 6d 64 20 3c | <= cmd |&& cmd <|
|00005ca0| 3d 20 32 35 29 20 6d 73 | 5f 69 6f 63 74 6c 28 63 |= 25) ms|_ioctl(c|
|00005cb0| 6d 64 29 3b 0a 58 20 20 | 20 20 20 20 65 6c 73 65 |md);.X | else|
|00005cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00005cd0| 20 20 20 20 20 20 70 72 | 69 6e 74 66 28 22 65 78 | pr|intf("ex|
|00005ce0| 69 74 69 6e 67 5c 6e 22 | 29 3b 0a 58 20 20 20 7d |iting\n"|);.X }|
|00005cf0| 0a 58 20 20 20 6d 73 5f | 63 6c 6f 73 65 28 29 3b |.X ms_|close();|
|00005d00| 0a 58 7d 0a 45 4e 44 5f | 4f 46 5f 46 49 4c 45 0a |.X}.END_|OF_FILE.|
|00005d10| 69 66 20 74 65 73 74 20 | 32 36 37 35 20 2d 6e 65 |if test |2675 -ne|
|00005d20| 20 60 77 63 20 2d 63 20 | 3c 27 6d 74 32 2e 63 27 | `wc -c |<'mt2.c'|
|00005d30| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00005d40| 20 73 68 61 72 3a 20 5c | 22 27 6d 74 32 2e 63 27 | shar: \|"'mt2.c'|
|00005d50| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|00005d60| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 66 69 0a | wrong s|ize!.fi.|
|00005d70| 23 20 65 6e 64 20 6f 66 | 20 27 6d 74 32 2e 63 27 |# end of| 'mt2.c'|
|00005d80| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |.fi.echo| shar: E|
|00005d90| 6e 64 20 6f 66 20 61 72 | 63 68 69 76 65 20 31 20 |nd of ar|chive 1 |
|00005da0| 5c 28 6f 66 20 31 5c 29 | 2e 0a 63 70 20 2f 64 65 |\(of 1\)|..cp /de|
|00005db0| 76 2f 6e 75 6c 6c 20 61 | 72 6b 31 69 73 64 6f 6e |v/null a|rk1isdon|
|00005dc0| 65 0a 4d 49 53 53 49 4e | 47 3d 22 22 0a 66 6f 72 |e.MISSIN|G="".for|
|00005dd0| 20 49 20 69 6e 20 31 20 | 3b 20 64 6f 0a 20 20 20 | I in 1 |; do. |
|00005de0| 20 69 66 20 74 65 73 74 | 20 21 20 2d 66 20 61 72 | if test| ! -f ar|
|00005df0| 6b 24 7b 49 7d 69 73 64 | 6f 6e 65 20 3b 20 74 68 |k${I}isd|one ; th|
|00005e00| 65 6e 0a 09 4d 49 53 53 | 49 4e 47 3d 22 24 7b 4d |en..MISS|ING="${M|
|00005e10| 49 53 53 49 4e 47 7d 20 | 24 7b 49 7d 22 0a 20 20 |ISSING} |${I}". |
|00005e20| 20 20 66 69 0a 64 6f 6e | 65 0a 69 66 20 74 65 73 | fi.don|e.if tes|
|00005e30| 74 20 22 24 7b 4d 49 53 | 53 49 4e 47 7d 22 20 3d |t "${MIS|SING}" =|
|00005e40| 20 22 22 20 3b 20 74 68 | 65 6e 0a 20 20 20 20 65 | "" ; th|en. e|
|00005e50| 63 68 6f 20 59 6f 75 20 | 68 61 76 65 20 74 68 65 |cho You |have the|
|00005e60| 20 61 72 63 68 69 76 65 | 2e 0a 20 20 20 20 72 6d | archive|.. rm|
|00005e70| 20 2d 66 20 61 72 6b 5b | 31 2d 39 5d 69 73 64 6f | -f ark[|1-9]isdo|
|00005e80| 6e 65 0a 65 6c 73 65 0a | 20 20 20 20 65 63 68 6f |ne.else.| echo|
|00005e90| 20 59 6f 75 20 73 74 69 | 6c 6c 20 6e 65 65 64 20 | You sti|ll need |
|00005ea0| 74 6f 20 75 6e 70 61 63 | 6b 20 74 68 65 20 66 6f |to unpac|k the fo|
|00005eb0| 6c 6c 6f 77 69 6e 67 20 | 61 72 63 68 69 76 65 73 |llowing |archives|
|00005ec0| 3a 0a 20 20 20 20 65 63 | 68 6f 20 22 20 20 20 20 |:. ec|ho " |
|00005ed0| 20 20 20 20 22 20 24 7b | 4d 49 53 53 49 4e 47 7d | " ${|MISSING}|
|00005ee0| 0a 66 69 0a 23 23 20 20 | 45 6e 64 20 6f 66 20 73 |.fi.## |End of s|
|00005ef0| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 0a 65 78 |hell arc|hive..ex|
|00005f00| 69 74 20 30 0a 2d 2d 20 | 0a 4a 69 6d 20 43 68 61 |it 0.-- |.Jim Cha|
|00005f10| 6e 64 6c 65 72 0a 61 73 | 75 76 61 78 21 78 72 6f |ndler.as|uvax!xro|
|00005f20| 61 64 73 21 62 65 61 67 | 6c 65 21 63 68 61 6e 64 |ads!beag|le!chand|
|00005f30| 6c 65 72 0a 63 68 61 6e | 64 6c 65 72 40 62 65 61 |ler.chan|dler@bea|
|00005f40| 67 6c 65 2e 75 75 63 70 | 0a |gle.uucp|. |
+--------+-------------------------+-------------------------+--------+--------+