home *** CD-ROM | disk | FTP | other *** search
- Mouse reset:
- ------------
- 1: Set UART to 'broken line' state (set bit 6 of the LCR)
- 2: Clear the bits 0-1 of the MCR (clear RTS and DTR), wait a while
- 3: Reverse the bits again (set RTS and DTR)
-
- Mouse detection (identification bytes before optional PNP data):
- ----------------------------------------------------------------
- Microsoft mice send 'M' after dropping and raising RTS.
- Logitech mice send 'M3' after dropping and raising RTS.
- Microsoft Intellimouse/Wheel mice send 'MZ@',0,0,0 after
- dropping and raising RTS.
-
- ===========================================================================
- Microsoft mode: 1200 bps, 7 data bits, 1 stop bit, no parity
-
- 1st byte 2nd byte 3rd byte
- +---------------+ +---------------+ +---------------+
- |0|1|L|R|Y|Y|X|X| |0|0|X|X|X|X|X|X| |0|0|Y|Y|Y|Y|Y|Y|
- +---------------+ +---------------+ +---------------+
- | | \ / \ / \----+----/ \----+----/
- | | | | | |
- | | +---|-------------|---------+ |
- | | +-----+ | | |
- | | / \ /----+----\ / \ /----+----\
- | | +---------------+ +---------------+
- | | | | | | | | | | | | | | | | | | | |
- Left Button -+ | +---------------+ +---------------+
- Right Button ---+ X increment Y increment
- (1 if pressed)
-
- The X and Y increment values are in 2's compliment signed char format.
-
- ===========================================================================
- Microsoft IntelliMouse: 1200 bps, 7 data bits, 1 stop bit, no parity
-
- 1st byte 2nd byte 3rd byte 4th byte
- +---------------+ +---------------+ +---------------+ +---------------+
- |0|1|L|R|Y|Y|X|X| |0|0|X|X|X|X|X|X| |0|0|Y|Y|Y|Y|Y|Y| |0|0|0|M|0|0|0|0|
- +---------------+ +---------------+ +---------------+ +---------------+
- | | \ / \ / \----+----/ \----+----/ | \--+--/
- | | | | | | | |
- | | +---|-------------|---------+ | Middle -+ |
- | | +-----+ | | | Button |
- | | / \ /----+----\ / \ /----+----\ |
- | | +---------------+ +---------------+ |
- | | | | | | | | | | | | | | | | | | | | Wheel
- Left Button -+ | +---------------+ +---------------+ Movement
- Right Button ---+ X increment Y increment
- (1 if pressed)
-
- The X and Y increment values are in 2's compliment signed char format.
-
- ===========================================================================
- Logitech MouseMan mode: 1200 bps, 7 data bits, 1 stop bit, no parity
-
- 3 bytes (left or right button is pressed):
- ------------------------------------------
-
- 1st byte 2nd byte 3rd byte
- +---------------+ +---------------+ +---------------+
- |0|1|L|R|Y|Y|X|X| |0|0|X|X|X|X|X|X| |0|0|Y|Y|Y|Y|Y|Y|
- +---------------+ +---------------+ +---------------+
- | | \ / \ / \----+----/ \----+----/
- | | | | | |
- | | +---|-------------|---------+ |
- | | +-----+ | | |
- | | / \ /----+----\ / \ /----+----\
- | | +---------------+ +---------------+
- | | | | | | | | | | | | | | | | | | | |
- Left Button -+ | +---------------+ +---------------+
- Right Button ---+ X increment Y increment
- (1 if pressed)
-
- The extra byte (when middle button is pressed):
- -----------------------------------------------
-
- 4th byte
- +---------------+
- |0|0|M|0|0|0|0|0|
- +---------------+
- |
- Middle button
-
- ===========================================================================
- Mouse Systems mode: 1200 bps, 8 data bits, 1 stop bit, no parity
-
- 1st byte 2nd byte 3rd byte
- +---------------+ +---------------+ +---------------+
- |1|0|0|0|0|L|M|R| |X|X|X|X|X|X|X|X| |Y|Y|Y|Y|Y|Y|Y|Y|
- +---------------+ +---------------+ +---------------+
- | | | \------+------/ \------+------/
- | | | | |
- | | | Xa increment Ya increment
- | | |
- | | | 4th byte 5th byte
- | | | +---------------+ +---------------+
- Left Button --+ | | |X|X|X|X|X|X|X|X| |Y|Y|Y|Y|Y|Y|Y|Y|
- Middle Button ----+ | +---------------+ +---------------+
- Right Button ------+ \------+------/ \------+------/
- (0 if pressed) | |
- Xb increment Yb increment
-
- Note: Mouse Systems mouse sends two independent bytes for each direction
- in each packet.
-
- Xa/Ya - movement of the mouse since last packet (+ right/up)
- Xb/Yb - movement of the mouse since Xa/Ya
-