Well… while digging around in our masses of old hardware, I came up with this little gem…

ProHance ProMouse (aka PowerMouse 70)
This is an old 12-button serial mouse. Under DOS/Windows 3.x (its native platform), the additional buttons were mapped to keys on the keyboard, Escape, PageUp, Down, Home, End, Insert, Delete, Backspace and Function. The Function button allowed access to all the function keys, F1 through to F10. Thus, it allowed you to jump around documents, without having to switch between keyboard and mouse all the time.
Now, to achieve all this magic, it uses a proprietry protocol, one not supported by gpm or X.org. As I’ll probably end up reverse engineering my PDA (a Sharp Mobilion PRO PV5000A) eventually, I figured this would be a nice little project to start with.
What I know so far…
The mouse itself seems to prefer running at 4800 baud, and has a variable packet size.
The buttons are a very simple. There are two events, button pressed and button released (as you’d expect). These are sent as a two-byte packet:
- 0x0d ID — Button ID has been pressed…
- 0x0c ID — Button ID has been released…
The buttons themselves are numbered as follows: Left Button = 0x1d, Right Button = 0x1e, Escape/F1 = 0x1f, PageUp/F2 = 0x20 … etc … through to Fn/F10 = 0x28. So the sequence 0x0d 0x1d 0x0c 0x1d, is the byte sequence for a left click.
Movement, however, is prooving difficult. For othagonal movement, it alternates between two bytes, before sending 0x08. It may also change direction by sending 0x88. When moving left, it sends 0x78 0x98 repeatedly. Moving right is the reverse, 0x98 0x78. Vertical movement uses a similar scheme, 0x87 0x89 denotes upward movement, while 0x98 0x78 appears to denote downward movement.
However, mixing the two adds in additional bytes, which I’m yet to determine the meaning of. 0x77, 0x79, 0x97 and 0x99 appear to be related to diagonal movement. The codes, 0x68, 0x86, and a couple of others, are totally unknown at this stage.
Right now, I’m going to keep plodding along here… I’m looking at gpm source code to see if I can add support for this mouse, then I might look at X.org… but progress will be slow.
For what it’s worth… the company that produced this mouse, is no more… they’ve been gone for some time now. They produced quite a few mice similar to this one, including one 40-button model (yeah, practically a keyboard in its own right). The protocol used with those may be similar, but more research will need to be done.
Recent Comments