home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume1 / 8708 / 27 < prev    next >
SHell self-extracting ARchive  |  1990-07-13  |  4.1 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: SHell self-extracting ARchive (archive/shar).

You can browse this item here: 27

ConfidenceProgramDetectionMatch TypeSupport
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 text default
99% file C source text default
98% file C source, 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 61 6a | 73 40 6b 69 6c 6c 65 72 |From: aj|s@killer|
|00000010| 2e 55 55 43 50 20 28 41 | 6e 74 68 6f 6e 79 20 53 |.UUCP (A|nthony S|
|00000020| 74 61 72 6b 73 29 0a 4e | 65 77 73 67 72 6f 75 70 |tarks).N|ewsgroup|
|00000030| 73 3a 20 63 6f 6d 70 2e | 73 6f 75 72 63 65 73 2e |s: comp.|sources.|
|00000040| 6d 69 73 63 0a 53 75 62 | 6a 65 63 74 3a 20 4d 69 |misc.Sub|ject: Mi|
|00000050| 63 72 6f 73 6f 66 74 20 | 73 65 72 69 61 6c 20 6d |crosoft |serial m|
|00000060| 6f 75 73 65 20 72 6f 75 | 74 69 6e 65 73 20 75 70 |ouse rou|tines up|
|00000070| 64 61 74 65 0a 4b 65 79 | 77 6f 72 64 73 3a 20 73 |date.Key|words: s|
|00000080| 65 72 69 61 6c 20 6d 6f | 75 73 65 20 6d 69 63 72 |erial mo|use micr|
|00000090| 6f 70 6f 72 74 20 75 6e | 69 78 0a 4d 65 73 73 61 |oport un|ix.Messa|
|000000a0| 67 65 2d 49 44 3a 20 3c | 34 32 31 31 40 6e 63 6f |ge-ID: <|4211@nco|
|000000b0| 61 73 74 2e 55 55 43 50 | 3e 0a 44 61 74 65 3a 20 |ast.UUCP|>.Date: |
|000000c0| 31 39 20 41 75 67 20 38 | 37 20 30 31 3a 35 34 3a |19 Aug 8|7 01:54:|
|000000d0| 33 39 20 47 4d 54 0a 53 | 65 6e 64 65 72 3a 20 61 |39 GMT.S|ender: a|
|000000e0| 6c 6c 62 65 72 79 40 6e | 63 6f 61 73 74 2e 55 55 |llbery@n|coast.UU|
|000000f0| 43 50 0a 4f 72 67 61 6e | 69 7a 61 74 69 6f 6e 3a |CP.Organ|ization:|
|00000100| 20 54 68 65 20 55 6e 69 | 78 28 74 6d 29 20 43 6f | The Uni|x(tm) Co|
|00000110| 6e 6e 65 63 74 69 6f 6e | 2c 20 44 61 6c 6c 61 73 |nnection|, Dallas|
|00000120| 2c 20 54 65 78 61 73 0a | 4c 69 6e 65 73 3a 20 31 |, Texas.|Lines: 1|
|00000130| 39 38 0a 41 70 70 72 6f | 76 65 64 3a 20 61 6c 6c |98.Appro|ved: all|
|00000140| 62 65 72 79 40 6e 63 6f | 61 73 74 2e 55 55 43 50 |bery@nco|ast.UUCP|
|00000150| 0a 58 2d 41 72 63 68 69 | 76 65 3a 20 63 6f 6d 70 |.X-Archi|ve: comp|
|00000160| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 2f 38 37 |.sources|.misc/87|
|00000170| 30 38 2f 32 37 0a 0a 0a | 45 6e 63 6c 6f 73 65 64 |08/27...|Enclosed|
|00000180| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|00000190| 69 76 65 20 63 6f 6e 74 | 61 69 6e 69 6e 67 20 6d |ive cont|aining m|
|000001a0| 79 20 6d 6f 64 69 66 69 | 63 61 74 69 6f 6e 73 20 |y modifi|cations |
|000001b0| 74 6f 20 74 68 65 20 73 | 65 72 69 61 6c 20 6d 6f |to the s|erial mo|
|000001c0| 75 73 65 0a 72 6f 75 74 | 69 6e 65 73 20 77 72 69 |use.rout|ines wri|
|000001d0| 74 74 65 6e 20 62 79 20 | 4a 6f 68 6e 20 43 68 61 |tten by |John Cha|
|000001e0| 70 6d 61 6e 20 28 6a 6f | 68 6e 40 62 62 79 2d 62 |pman (jo|hn@bby-b|
|000001f0| 63 2e 55 55 43 50 29 20 | 0a 0a 49 20 61 64 64 65 |c.UUCP) |..I adde|
|00000200| 64 20 65 72 72 6f 72 20 | 63 68 65 63 6b 69 6e 67 |d error |checking|
|00000210| 20 61 6c 6f 6e 67 20 77 | 69 74 68 20 73 6f 6d 65 | along w|ith some|
|00000220| 20 6d 6f 64 75 6c 61 72 | 69 7a 61 74 69 6f 6e 20 | modular|ization |
|00000230| 61 6e 64 20 65 66 66 69 | 63 69 65 6e 63 79 0a 63 |and effi|ciency.c|
|00000240| 68 61 6e 67 65 73 2e 20 | 41 6c 73 6f 20 69 6e 63 |hanges. |Also inc|
|00000250| 6c 75 64 65 64 20 69 73 | 20 61 20 73 6d 61 6c 6c |luded is| a small|
|00000260| 20 70 72 6f 67 72 61 6d | 20 63 61 6c 6c 65 64 20 | program| called |
|00000270| 22 74 72 61 63 6b 22 20 | 74 6f 20 74 65 73 74 20 |"track" |to test |
|00000280| 74 68 65 73 65 0a 72 6f | 75 74 69 6e 65 73 2e 0a |these.ro|utines..|
|00000290| 0a 54 68 65 73 65 20 72 | 6f 75 74 69 6e 65 73 20 |.These r|outines |
|000002a0| 77 65 72 65 20 74 65 73 | 74 65 64 20 77 69 74 68 |were tes|ted with|
|000002b0| 20 61 20 4d 69 63 72 6f | 73 6f 66 74 20 63 6f 6d | a Micro|soft com|
|000002c0| 70 61 74 69 62 6c 65 20 | 50 43 20 6d 6f 75 73 65 |patible |PC mouse|
|000002d0| 20 61 6e 64 0a 4d 69 63 | 72 6f 70 6f 72 74 20 55 | and.Mic|roport U|
|000002e0| 4e 49 58 20 32 2e 32 2e | 20 0a 0a 2d 2d 2d 2d 2d |NIX 2.2.| ..-----|
|000002f0| 0a 41 6e 74 68 6f 6e 79 | 20 4a 2e 20 53 74 61 72 |.Anthony| J. Star|
|00000300| 6b 73 09 09 2e 2e 2e 7b | 69 68 6e 70 34 20 7c 20 |ks.....{|ihnp4 | |
|00000310| 73 65 69 73 6d 6f 7d 21 | 69 75 76 61 78 21 68 70 |seismo}!|iuvax!hp|
|00000320| 75 69 6e 64 61 21 6d 64 | 72 69 21 61 6a 73 0a 4d |uinda!md|ri!ajs.M|
|00000330| 65 72 72 65 6c 6c 20 44 | 6f 77 20 52 65 73 65 61 |errell D|ow Resea|
|00000340| 72 63 68 20 49 6e 73 74 | 69 74 75 74 65 0a 50 2e |rch Inst|itute.P.|
|00000350| 4f 2e 20 42 6f 78 20 36 | 38 34 37 30 20 0a 49 6e |O. Box 6|8470 .In|
|00000360| 64 69 61 6e 61 70 6f 6c | 69 73 2c 20 49 4e 20 34 |dianapol|is, IN 4|
|00000370| 36 32 36 38 0a 0a 0a 0a | 23 2d 2d 2d 2d 2d 2d 2d |6268....|#-------|
|00000380| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 63 75 74 20 68 |--------|---cut h|
|00000390| 65 72 65 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ere-----|--------|
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003c0| 2d 2d 2d 0a 23 21 20 2f | 62 69 6e 2f 73 68 0a 23 |---.#! /|bin/sh.#|
|000003d0| 20 54 68 69 73 20 69 73 | 20 61 20 73 68 65 6c 6c | This is| a shell|
|000003e0| 20 61 72 63 68 69 76 65 | 2c 20 6d 65 61 6e 69 6e | archive|, meanin|
|000003f0| 67 3a 0a 23 20 31 2e 20 | 52 65 6d 6f 76 65 20 65 |g:.# 1. |Remove e|
|00000400| 76 65 72 79 74 68 69 6e | 67 20 61 62 6f 76 65 20 |verythin|g above |
|00000410| 74 68 65 20 23 21 20 2f | 62 69 6e 2f 73 68 20 6c |the #! /|bin/sh l|
|00000420| 69 6e 65 2e 0a 23 20 32 | 2e 20 53 61 76 65 20 74 |ine..# 2|. Save t|
|00000430| 68 65 20 72 65 73 75 6c | 74 69 6e 67 20 74 65 78 |he resul|ting tex|
|00000440| 74 20 69 6e 20 61 20 66 | 69 6c 65 2e 0a 23 20 33 |t in a f|ile..# 3|
|00000450| 2e 20 45 78 65 63 75 74 | 65 20 74 68 65 20 66 69 |. Execut|e the fi|
|00000460| 6c 65 20 77 69 74 68 20 | 2f 62 69 6e 2f 73 68 20 |le with |/bin/sh |
|00000470| 28 6e 6f 74 20 63 73 68 | 29 20 74 6f 20 63 72 65 |(not csh|) to cre|
|00000480| 61 74 65 20 74 68 65 20 | 66 69 6c 65 73 3a 0a 23 |ate the |files:.#|
|00000490| 09 4d 61 6b 65 66 69 6c | 65 0a 23 09 73 6d 6f 75 |.Makefil|e.#.smou|
|000004a0| 73 65 2e 68 0a 23 09 73 | 6d 6f 75 73 65 2e 63 0a |se.h.#.s|mouse.c.|
|000004b0| 23 09 74 72 61 63 6b 2e | 63 0a 23 20 54 68 69 73 |#.track.|c.# This|
|000004c0| 20 61 72 63 68 69 76 65 | 20 63 72 65 61 74 65 64 | archive| created|
|000004d0| 3a 20 46 72 69 20 41 75 | 67 20 20 37 20 31 33 3a |: Fri Au|g 7 13:|
|000004e0| 31 33 3a 33 33 20 31 39 | 38 37 0a 65 78 70 6f 72 |13:33 19|87.expor|
|000004f0| 74 20 50 41 54 48 3b 20 | 50 41 54 48 3d 2f 62 69 |t PATH; |PATH=/bi|
|00000500| 6e 3a 24 50 41 54 48 0a | 69 66 20 74 65 73 74 20 |n:$PATH.|if test |
|00000510| 2d 66 20 27 4d 61 6b 65 | 66 69 6c 65 27 0a 74 68 |-f 'Make|file'.th|
|00000520| 65 6e 0a 09 65 63 68 6f | 20 73 68 61 72 3a 20 77 |en..echo| shar: w|
|00000530| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|00000540| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00000550| 20 22 27 4d 61 6b 65 66 | 69 6c 65 27 22 0a 65 6c | "'Makef|ile'".el|
|00000560| 73 65 0a 63 61 74 20 3c | 3c 20 5c 53 48 41 52 5f |se.cat <|< \SHAR_|
|00000570| 45 4f 46 20 3e 20 27 4d | 61 6b 65 66 69 6c 65 27 |EOF > 'M|akefile'|
|00000580| 0a 23 0a 23 20 20 4d 61 | 6b 65 66 69 6c 65 20 66 |.#.# Ma|kefile f|
|00000590| 6f 72 20 73 6d 6f 75 73 | 65 20 72 6f 75 74 69 6e |or smous|e routin|
|000005a0| 65 73 0a 23 0a 74 72 61 | 63 6b 3a 09 09 74 72 61 |es.#.tra|ck:..tra|
|000005b0| 63 6b 2e 6f 20 73 6d 6f | 75 73 65 2e 6f 0a 09 09 |ck.o smo|use.o...|
|000005c0| 63 63 20 24 28 43 46 4c | 41 47 53 29 20 74 72 61 |cc $(CFL|AGS) tra|
|000005d0| 63 6b 2e 6f 20 73 6d 6f | 75 73 65 2e 6f 20 2d 6f |ck.o smo|use.o -o|
|000005e0| 20 74 72 61 63 6b 0a 0a | 74 72 61 63 6b 2e 6f 3a | track..|track.o:|
|000005f0| 09 74 72 61 63 6b 2e 63 | 20 73 6d 6f 75 73 65 2e |.track.c| smouse.|
|00000600| 68 0a 09 09 63 63 20 24 | 28 43 46 4c 41 47 53 29 |h...cc $|(CFLAGS)|
|00000610| 20 2d 63 20 74 72 61 63 | 6b 2e 63 0a 0a 73 6d 6f | -c trac|k.c..smo|
|00000620| 75 73 65 2e 6f 3a 09 73 | 6d 6f 75 73 65 2e 63 20 |use.o:.s|mouse.c |
|00000630| 73 6d 6f 75 73 65 2e 68 | 0a 09 09 63 63 20 24 28 |smouse.h|...cc $(|
|00000640| 43 46 4c 41 47 53 29 20 | 2d 63 20 73 6d 6f 75 73 |CFLAGS) |-c smous|
|00000650| 65 2e 63 0a 0a 73 68 61 | 72 3a 09 09 0a 09 09 73 |e.c..sha|r:.....s|
|00000660| 68 61 72 20 4d 61 6b 65 | 66 69 6c 65 20 73 6d 6f |har Make|file smo|
|00000670| 75 73 65 2e 68 20 73 6d | 6f 75 73 65 2e 63 20 74 |use.h sm|ouse.c t|
|00000680| 72 61 63 6b 2e 63 20 3e | 73 6d 6f 75 73 65 2e 73 |rack.c >|smouse.s|
|00000690| 68 61 72 0a 63 6c 65 61 | 6e 3a 09 09 0a 09 09 72 |har.clea|n:.....r|
|000006a0| 6d 20 2d 66 20 74 72 61 | 63 6b 2e 6f 0a 53 48 41 |m -f tra|ck.o.SHA|
|000006b0| 52 5f 45 4f 46 0a 66 69 | 20 23 20 65 6e 64 20 6f |R_EOF.fi| # end o|
|000006c0| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|000006d0| 65 63 6b 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |eck.if t|est -f '|
|000006e0| 73 6d 6f 75 73 65 2e 68 | 27 0a 74 68 65 6e 0a 09 |smouse.h|'.then..|
|000006f0| 65 63 68 6f 20 73 68 61 | 72 3a 20 77 69 6c 6c 20 |echo sha|r: will |
|00000700| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|00000710| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 22 27 73 |xisting |file "'s|
|00000720| 6d 6f 75 73 65 2e 68 27 | 22 0a 65 6c 73 65 0a 63 |mouse.h'|".else.c|
|00000730| 61 74 20 3c 3c 20 5c 53 | 48 41 52 5f 45 4f 46 20 |at << \S|HAR_EOF |
|00000740| 3e 20 27 73 6d 6f 75 73 | 65 2e 68 27 0a 2f 2a 0a |> 'smous|e.h'./*.|
|00000750| 20 2a 20 20 43 6f 6e 73 | 74 61 6e 74 73 20 61 6e | * Cons|tants an|
|00000760| 64 20 64 65 66 69 6e 69 | 74 69 6f 6e 73 20 66 6f |d defini|tions fo|
|00000770| 72 20 74 68 65 20 4d 69 | 63 72 6f 73 6f 66 74 20 |r the Mi|crosoft |
|00000780| 73 65 72 69 61 6c 20 6d | 6f 75 73 65 20 72 6f 75 |serial m|ouse rou|
|00000790| 74 69 6e 65 73 0a 20 2a | 2f 0a 0a 23 64 65 66 69 |tines. *|/..#defi|
|000007a0| 6e 65 20 4d 4f 55 53 45 | 5f 44 45 56 09 22 2f 64 |ne MOUSE|_DEV."/d|
|000007b0| 65 76 2f 74 74 79 31 22 | 0a 23 64 65 66 69 6e 65 |ev/tty1"|.#define|
|000007c0| 20 4e 43 4f 4f 52 44 09 | 09 34 0a 23 64 65 66 69 | NCOORD.|.4.#defi|
|000007d0| 6e 65 20 4e 42 55 54 54 | 4f 4e 09 09 33 0a 23 64 |ne NBUTT|ON..3.#d|
|000007e0| 65 66 69 6e 65 20 53 59 | 53 45 52 52 09 09 28 2d |efine SY|SERR..(-|
|000007f0| 31 29 0a 23 64 65 66 69 | 6e 65 20 53 55 43 43 45 |1).#defi|ne SUCCE|
|00000800| 53 53 09 09 28 30 29 0a | 0a 74 79 70 65 64 65 66 |SS..(0).|.typedef|
|00000810| 20 73 74 72 75 63 74 20 | 7b 0a 09 69 6e 74 20 64 | struct |{..int d|
|00000820| 78 3b 0a 09 69 6e 74 20 | 64 79 3b 0a 09 69 6e 74 |x;..int |dy;..int|
|00000830| 20 62 75 74 74 6f 6e 5b | 4e 42 55 54 54 4f 4e 5d | button[|NBUTTON]|
|00000840| 3b 0a 7d 20 4d 6f 75 73 | 65 3b 0a 0a 0a 53 48 41 |;.} Mous|e;...SHA|
|00000850| 52 5f 45 4f 46 0a 66 69 | 20 23 20 65 6e 64 20 6f |R_EOF.fi| # end o|
|00000860| 66 20 6f 76 65 72 77 72 | 69 74 69 6e 67 20 63 68 |f overwr|iting ch|
|00000870| 65 63 6b 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |eck.if t|est -f '|
|00000880| 73 6d 6f 75 73 65 2e 63 | 27 0a 74 68 65 6e 0a 09 |smouse.c|'.then..|
|00000890| 65 63 68 6f 20 73 68 61 | 72 3a 20 77 69 6c 6c 20 |echo sha|r: will |
|000008a0| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|000008b0| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 22 27 73 |xisting |file "'s|
|000008c0| 6d 6f 75 73 65 2e 63 27 | 22 0a 65 6c 73 65 0a 63 |mouse.c'|".else.c|
|000008d0| 61 74 20 3c 3c 20 5c 53 | 48 41 52 5f 45 4f 46 20 |at << \S|HAR_EOF |
|000008e0| 3e 20 27 73 6d 6f 75 73 | 65 2e 63 27 0a 2f 2a 0a |> 'smous|e.c'./*.|
|000008f0| 20 2a 20 20 4d 6f 75 73 | 65 20 72 6f 75 74 69 6e | * Mous|e routin|
|00000900| 65 73 20 66 6f 72 20 74 | 68 65 20 4d 69 63 72 6f |es for t|he Micro|
|00000910| 73 6f 66 74 20 73 65 72 | 69 61 6c 20 6d 6f 75 73 |soft ser|ial mous|
|00000920| 65 20 61 6e 64 20 63 6f | 6d 70 61 74 69 62 6c 65 |e and co|mpatible|
|00000930| 73 2e 0a 20 2a 0a 20 2a | 20 20 41 64 61 70 74 65 |s.. *. *| Adapte|
|00000940| 64 20 66 72 6f 6d 20 72 | 6f 75 74 69 6e 65 73 20 |d from r|outines |
|00000950| 70 6f 73 74 65 64 20 62 | 79 20 6a 6f 68 6e 40 62 |posted b|y john@b|
|00000960| 62 79 2d 62 63 2e 55 55 | 43 50 20 69 6e 20 3c 31 |by-bc.UU|CP in <1|
|00000970| 34 36 40 62 62 79 2d 62 | 63 2e 55 55 43 50 3e 2e |46@bby-b|c.UUCP>.|
|00000980| 0a 20 2a 0a 20 2a 20 20 | 41 6e 74 68 6f 6e 79 20 |. *. * |Anthony |
|00000990| 4a 2e 20 53 74 61 72 6b | 73 20 28 61 6a 73 40 6d |J. Stark|s (ajs@m|
|000009a0| 64 72 69 29 0a 20 2a 2f | 0a 23 69 6e 63 6c 75 64 |dri). */|.#includ|
|000009b0| 65 09 3c 66 63 6e 74 6c | 2e 68 3e 0a 23 69 6e 63 |e.<fcntl|.h>.#inc|
|000009c0| 6c 75 64 65 09 3c 65 72 | 72 6e 6f 2e 68 3e 0a 23 |lude.<er|rno.h>.#|
|000009d0| 69 6e 63 6c 75 64 65 09 | 3c 74 65 72 6d 69 6f 2e |include.|<termio.|
|000009e0| 68 3e 0a 23 69 6e 63 6c | 75 64 65 09 22 73 6d 6f |h>.#incl|ude."smo|
|000009f0| 75 73 65 2e 68 22 0a 0a | 73 74 61 74 69 63 20 69 |use.h"..|static i|
|00000a00| 6e 74 20 6d 66 64 3b 0a | 0a 4d 6f 75 73 65 49 6e |nt mfd;.|.MouseIn|
|00000a10| 69 74 28 29 0a 7b 0a 09 | 73 74 72 75 63 74 20 74 |it().{..|struct t|
|00000a20| 65 72 6d 69 6f 20 74 3b | 0a 09 0a 09 65 72 72 6e |ermio t;|....errn|
|00000a30| 6f 20 3d 20 30 3b 0a 09 | 69 66 20 28 28 6d 66 64 |o = 0;..|if ((mfd|
|00000a40| 20 3d 20 6f 70 65 6e 28 | 4d 4f 55 53 45 5f 44 45 | = open(|MOUSE_DE|
|00000a50| 56 2c 20 4f 5f 52 44 4f | 4e 4c 59 29 29 20 3c 20 |V, O_RDO|NLY)) < |
|00000a60| 30 29 20 0a 09 7b 0a 09 | 09 70 65 72 72 6f 72 28 |0) ..{..|.perror(|
|00000a70| 22 6d 6f 75 73 65 20 6f | 70 65 6e 22 29 3b 0a 09 |"mouse o|pen");..|
|00000a80| 09 72 65 74 75 72 6e 20 | 53 59 53 45 52 52 3b 0a |.return |SYSERR;.|
|00000a90| 09 7d 0a 0a 09 69 66 20 | 28 69 6f 63 74 6c 28 6d |.}...if |(ioctl(m|
|00000aa0| 66 64 2c 54 43 47 45 54 | 41 2c 20 26 74 29 20 3c |fd,TCGET|A, &t) <|
|00000ab0| 20 30 29 0a 09 7b 0a 09 | 09 70 65 72 72 6f 72 28 | 0)..{..|.perror(|
|00000ac0| 22 6d 6f 75 73 65 20 67 | 65 74 20 70 61 72 61 6d |"mouse g|et param|
|00000ad0| 65 74 65 72 22 29 3b 0a | 09 09 72 65 74 75 72 6e |eter");.|..return|
|00000ae0| 20 53 59 53 45 52 52 3b | 0a 09 7d 0a 09 09 0a 09 | SYSERR;|..}.....|
|00000af0| 74 2e 63 5f 69 66 6c 61 | 67 20 26 3d 20 7e 28 49 |t.c_ifla|g &= ~(I|
|00000b00| 58 4f 4e 7c 49 58 4f 46 | 46 7c 49 53 54 52 49 50 |XON|IXOF|F|ISTRIP|
|00000b10| 7c 49 4e 4c 43 52 7c 49 | 47 4e 43 52 7c 49 43 52 ||INLCR|I|GNCR|ICR|
|00000b20| 4e 4c 7c 49 55 43 4c 43 | 7c 49 4e 50 43 4b 29 3b |NL|IUCLC||INPCK);|
|00000b30| 0a 09 74 2e 63 5f 63 66 | 6c 61 67 20 3d 20 42 31 |..t.c_cf|lag = B1|
|00000b40| 32 30 30 20 7c 20 43 53 | 38 20 7c 20 43 4c 4f 43 |200 | CS|8 | CLOC|
|00000b50| 41 4c 20 7c 20 43 52 45 | 41 44 20 3b 0a 09 74 2e |AL | CRE|AD ;..t.|
|00000b60| 63 5f 6c 66 6c 61 67 20 | 3d 20 30 3b 0a 0a 09 69 |c_lflag |= 0;...i|
|00000b70| 66 20 28 69 6f 63 74 6c | 28 6d 66 64 2c 54 43 53 |f (ioctl|(mfd,TCS|
|00000b80| 45 54 41 2c 20 26 74 29 | 20 3c 20 30 29 0a 09 7b |ETA, &t)| < 0)..{|
|00000b90| 0a 09 09 70 65 72 72 6f | 72 28 22 6d 6f 75 73 65 |...perro|r("mouse|
|00000ba0| 20 73 65 74 20 70 61 72 | 61 6d 65 74 65 72 22 29 | set par|ameter")|
|00000bb0| 3b 0a 09 09 72 65 74 75 | 72 6e 20 53 59 53 45 52 |;...retu|rn SYSER|
|00000bc0| 52 3b 0a 09 7d 0a 09 0a | 09 72 65 74 75 72 6e 20 |R;..}...|.return |
|00000bd0| 53 55 43 43 45 53 53 3b | 0a 7d 0a 0a 4d 6f 75 73 |SUCCESS;|.}..Mous|
|00000be0| 65 52 65 61 64 28 6d 29 | 0a 4d 6f 75 73 65 20 2a |eRead(m)|.Mouse *|
|00000bf0| 6d 3b 0a 7b 0a 09 75 6e | 73 69 67 6e 65 64 20 63 |m;.{..un|signed c|
|00000c00| 68 61 72 09 62 3b 0a 09 | 63 68 61 72 09 09 63 6f |har.b;..|char..co|
|00000c10| 6f 72 64 5b 4e 43 4f 4f | 52 44 5d 3b 0a 0a 09 2f |ord[NCOO|RD];.../|
|00000c20| 2a 0a 09 20 2a 20 20 53 | 79 6e 63 68 72 6f 6e 69 |*.. * S|ynchroni|
|00000c30| 7a 65 20 6f 6e 20 61 20 | 62 75 74 74 6f 6e 20 62 |ze on a |button b|
|00000c40| 79 74 65 0a 09 20 2a 2f | 0a 09 66 6f 72 20 28 62 |yte.. */|..for (b|
|00000c50| 3d 30 3b 20 28 62 26 30 | 33 37 30 29 20 21 3d 20 |=0; (b&0|370) != |
|00000c60| 30 32 30 30 20 3b 20 29 | 20 0a 09 09 69 66 20 28 |0200 ; )| ...if (|
|00000c70| 72 65 61 64 28 6d 66 64 | 2c 20 26 62 2c 20 31 29 |read(mfd|, &b, 1)|
|00000c80| 20 3c 20 30 29 20 72 65 | 74 75 72 6e 20 53 59 53 | < 0) re|turn SYS|
|00000c90| 45 52 52 3b 0a 09 0a 09 | 2f 2a 0a 09 20 2a 20 20 |ERR;....|/*.. * |
|00000ca0| 52 65 61 64 20 74 68 65 | 20 63 6f 6f 72 64 69 6e |Read the| coordin|
|00000cb0| 61 74 65 73 0a 09 20 2a | 2f 0a 09 69 66 20 28 72 |ates.. *|/..if (r|
|00000cc0| 65 61 64 28 6d 66 64 2c | 20 63 6f 6f 72 64 2c 20 |ead(mfd,| coord, |
|00000cd0| 4e 43 4f 4f 52 44 29 20 | 3c 20 30 29 20 72 65 74 |NCOORD) |< 0) ret|
|00000ce0| 75 72 6e 20 53 59 53 45 | 52 52 3b 0a 09 0a 09 2f |urn SYSE|RR;..../|
|00000cf0| 2a 0a 09 20 2a 20 20 52 | 65 61 64 20 62 75 74 74 |*.. * R|ead butt|
|00000d00| 6f 6e 20 62 69 74 73 0a | 09 20 2a 2f 0a 0a 09 6d |on bits.|. */...m|
|00000d10| 2d 3e 62 75 74 74 6f 6e | 5b 32 5d 20 3d 20 28 7e |->button|[2] = (~|
|00000d20| 62 29 20 20 26 20 31 3b | 0a 09 6d 2d 3e 62 75 74 |b) & 1;|..m->but|
|00000d30| 74 6f 6e 5b 31 5d 20 3d | 20 28 7e 28 62 3e 3e 31 |ton[1] =| (~(b>>1|
|00000d40| 29 29 20 26 20 31 3b 0a | 09 6d 2d 3e 62 75 74 74 |)) & 1;.|.m->butt|
|00000d50| 6f 6e 5b 30 5d 20 3d 20 | 28 7e 28 62 3e 3e 32 29 |on[0] = |(~(b>>2)|
|00000d60| 29 20 26 20 31 3b 0a 09 | 0a 09 2f 2a 0a 09 20 2a |) & 1;..|../*.. *|
|00000d70| 20 20 50 61 63 6b 20 75 | 70 20 74 68 65 20 63 6f | Pack u|p the co|
|00000d80| 6f 72 64 69 6e 61 74 65 | 20 68 61 6c 66 2d 77 6f |ordinate| half-wo|
|00000d90| 72 64 73 0a 09 20 2a 2f | 0a 09 6d 2d 3e 64 78 20 |rds.. */|..m->dx |
|00000da0| 20 3d 20 20 28 69 6e 74 | 29 28 63 6f 6f 72 64 5b | = (int|)(coord[|
|00000db0| 30 5d 20 2b 20 63 6f 6f | 72 64 5b 32 5d 29 3b 0a |0] + coo|rd[2]);.|
|00000dc0| 09 6d 2d 3e 64 79 20 20 | 3d 20 20 28 69 6e 74 29 |.m->dy |= (int)|
|00000dd0| 28 63 6f 6f 72 64 5b 31 | 5d 20 2b 20 63 6f 6f 72 |(coord[1|] + coor|
|00000de0| 64 5b 33 5d 29 3b 0a 09 | 0a 09 72 65 74 75 72 6e |d[3]);..|..return|
|00000df0| 20 53 55 43 43 45 53 53 | 3b 0a 0a 7d 0a 0a 4d 6f | SUCCESS|;..}..Mo|
|00000e00| 75 73 65 43 6c 6f 73 65 | 28 29 0a 7b 0a 09 63 6c |useClose|().{..cl|
|00000e10| 6f 73 65 28 6d 66 64 29 | 3b 0a 7d 0a 53 48 41 52 |ose(mfd)|;.}.SHAR|
|00000e20| 5f 45 4f 46 0a 66 69 20 | 23 20 65 6e 64 20 6f 66 |_EOF.fi |# end of|
|00000e30| 20 6f 76 65 72 77 72 69 | 74 69 6e 67 20 63 68 65 | overwri|ting che|
|00000e40| 63 6b 0a 69 66 20 74 65 | 73 74 20 2d 66 20 27 74 |ck.if te|st -f 't|
|00000e50| 72 61 63 6b 2e 63 27 0a | 74 68 65 6e 0a 09 65 63 |rack.c'.|then..ec|
|00000e60| 68 6f 20 73 68 61 72 3a | 20 77 69 6c 6c 20 6e 6f |ho shar:| will no|
|00000e70| 74 20 6f 76 65 72 2d 77 | 72 69 74 65 20 65 78 69 |t over-w|rite exi|
|00000e80| 73 74 69 6e 67 20 66 69 | 6c 65 20 22 27 74 72 61 |sting fi|le "'tra|
|00000e90| 63 6b 2e 63 27 22 0a 65 | 6c 73 65 0a 63 61 74 20 |ck.c'".e|lse.cat |
|00000ea0| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00000eb0| 74 72 61 63 6b 2e 63 27 | 0a 2f 2a 0a 20 2a 20 20 |track.c'|./*. * |
|00000ec0| 74 72 61 63 6b 20 2d 2d | 20 74 72 61 63 6b 20 74 |track --| track t|
|00000ed0| 68 65 20 6d 6f 75 73 65 | 20 75 73 69 6e 67 20 74 |he mouse| using t|
|00000ee0| 68 65 20 73 65 72 69 61 | 6c 20 6d 6f 75 73 65 20 |he seria|l mouse |
|00000ef0| 72 6f 75 74 69 6e 65 73 | 2e 0a 20 2a 2f 0a 0a 23 |routines|.. */..#|
|00000f00| 69 6e 63 6c 75 64 65 20 | 22 73 6d 6f 75 73 65 2e |include |"smouse.|
|00000f10| 68 22 0a 0a 6d 61 69 6e | 28 29 0a 7b 0a 09 4d 6f |h"..main|().{..Mo|
|00000f20| 75 73 65 20 6d 3b 0a 09 | 0a 09 69 66 20 28 4d 6f |use m;..|..if (Mo|
|00000f30| 75 73 65 49 6e 69 74 28 | 29 20 3c 20 30 29 20 65 |useInit(|) < 0) e|
|00000f40| 78 69 74 28 31 29 3b 0a | 09 77 68 69 6c 65 20 28 |xit(1);.|.while (|
|00000f50| 21 6d 2e 62 75 74 74 6f | 6e 5b 32 5d 29 0a 09 7b |!m.butto|n[2])..{|
|00000f60| 0a 09 09 69 66 20 28 4d | 6f 75 73 65 52 65 61 64 |...if (M|ouseRead|
|00000f70| 28 26 6d 29 20 3c 20 30 | 29 20 62 72 65 61 6b 3b |(&m) < 0|) break;|
|00000f80| 0a 0a 09 09 70 72 69 6e | 74 66 28 22 64 78 20 3d |....prin|tf("dx =|
|00000f90| 20 25 34 64 20 64 79 20 | 3d 20 25 34 64 20 62 31 | %4d dy |= %4d b1|
|00000fa0| 20 3d 20 25 31 64 20 62 | 32 20 3d 20 25 31 64 20 | = %1d b|2 = %1d |
|00000fb0| 62 33 20 3d 20 25 31 64 | 5c 6e 22 2c 0a 09 09 09 |b3 = %1d|\n",....|
|00000fc0| 6d 2e 64 78 2c 20 6d 2e | 64 79 2c 20 6d 2e 62 75 |m.dx, m.|dy, m.bu|
|00000fd0| 74 74 6f 6e 5b 30 5d 2c | 20 6d 2e 62 75 74 74 6f |tton[0],| m.butto|
|00000fe0| 6e 5b 31 5d 2c 20 6d 2e | 62 75 74 74 6f 6e 5b 32 |n[1], m.|button[2|
|00000ff0| 5d 29 3b 0a 09 09 0a 09 | 7d 0a 09 4d 6f 75 73 65 |]);.....|}..Mouse|
|00001000| 43 6c 6f 73 65 28 29 3b | 0a 7d 0a 53 48 41 52 5f |Close();|.}.SHAR_|
|00001010| 45 4f 46 0a 66 69 20 23 | 20 65 6e 64 20 6f 66 20 |EOF.fi #| end of |
|00001020| 6f 76 65 72 77 72 69 74 | 69 6e 67 20 63 68 65 63 |overwrit|ing chec|
|00001030| 6b 0a 23 09 45 6e 64 20 | 6f 66 20 73 68 65 6c 6c |k.#.End |of shell|
|00001040| 20 61 72 63 68 69 76 65 | 0a 65 78 69 74 20 30 0a | archive|.exit 0.|
+--------+-------------------------+-------------------------+--------+--------+