Hi everybody, I have a fun suggestion for a DOS driver for all sorts of mouse and touchpad and similar devices, but I would first want to know which devices are actually in use out there today, so please let me know what you use - unless it is a "boring" PS2 mouse with max 3 buttons and 1 wheel.
The idea: Take the Linux driver/input/ mouse/ and serio/ code and compile it into a jemm386 JLM with help of some glue code and some stripping of Linux specific stuff. Linux 2.6 drivers are event based: One handler called for each byte coming from the mouse / byte and one handler in a few variants (sync, button, movement) which is called by the driver to return the processed data. I suggest to port only RS232 and PS/2 based drivers, no bus mouse or other exotic stuff. No USB either beyond BIOS USB PS/2. So... The JLM could search for any supported mouse and if one is found it could hook BIOS int15. Then it would handle the mouse itself (install itself as PS2 callback for the real BIOS) and redirect attempts by DOS mouse drivers to find a PS2 mouse to itself, answering things like "I am a PS2 mouse" or "I am a PS2 wheel mouse" :-). The DOS mouse driver would then install a callback to get PS2 packets and the JLM could call the DOS mouse driver to send faked PS2 packets to the driver. This will let the JLM translate any supported protocol, even a RS232 one, into a virtual PS2 mouse for any BIOS using PS2 mouse driver for DOS :-). This limits you to at most 3 or 5 buttons and at most one wheel (or scroll button pair or touchpad scroll area or whatever). I assume that is enough, even though Linux kernel drivers know devices with up to 2 wheels and up to 10 buttons :-). Note that the DOS int33 wheel API is limited to 1 wheel and 8 buttons anyway ;-). So... Linux supports the following, let me know which of them you actually use. Excluding types which are already fully supported in ctmouse anyway, of course. Supported in ctmouse anyway, but planned to remove, please comment: - rs232 old genius mousesystems msc - rs232 ms with 3 buttons kludgy protocol Supported in ctmouse anyway, please do not comment: ;-) - rs232 ms with 2 buttons - rs232 logitech and newer ms 3 buttons - ps2 with 2 or 3 buttons - ps2 with 3 buttons and wheel Upcoming in ctmouse, please comment: - ps2 with 4 or 5 buttons and wheel Possible via Linux drivers, please comment: * ps2 ALPS touchpad (can have wheel, 5 buttons, pressure) (possibly absolute coord based protocol, driver 2003-2005) - gpio "4 directions and 3 buttons on any digital input" 2007 - generic HIL at generic serial port HP mouse/tablet (??) 2001 - inport ati/ms bus mouse 1999-2001, pretty ugly... * ps2 Fujitsu Lifebook etc touchscreen 2005 (absolute or relative coordinates, 2 buttons plus tap-gesture) - logitech busmouse 1999-2001, less ugly... * ps2++ logitech 1999-2003 up to 2 wheels, 8 buttons (Mx, touchpad3, trackman) - ibm pc110 touchpad, whatever that might be (2000-2001) (abs coordinates, touch, irq 10, i/o 15e0) * ps2 common stuff 1999-2004 including intellimouse / netmouse / intellimouse explorer / thinkingmouse / expertmouse / contron trackball, can have 2 wheels and up to 5 buttons, but detection of some of those is very exotic - in particular, I would want to know if anything apart from "already ctmouse supported" and "intellimouse with 1 wheel / max 5 buttons" has been spotted in the wild :-) This module also calls Synaptics / Alps / Lifebook / Trackpoint / Touchkit and PS2++ detection elsewhere... * rs232 serial mouse 1999-2002, variants MSC / Sun (old Genius MouseSystems 5 byte and a 3 byte Sun variant of that...) and MS variants (MS, MSZ, MS+, MS++) with 2-3 buttons and possibly a 4th byte in the packets for 2 extra buttons (M+) or one (MZ+, MZ++) or wheel (MZ) and even more bytes for "MZ++" extensions ("only" 5 button 2 wheel mouse yet) * ps2 synaptics touchpad 1997-2003 with 2-4 buttons (exotic 3rd/4th protocol) and up to 8 further (nice protocol) extension buttons, abs/rel coordinates, pressure. possibly "scroll as back/forward button", extensions for "2 or 3 fingers" (meaning double and triple click) and "pen" and "palm of width 4..15". (here I wonder who has any more than 2 buttons plus tap supported in his touchpad version?) - ps2 egalax touchkit touchscreen 2004-2005 (looks basic, just abs coordinates and touch) * ps2 trackpoint (sensitivity, speed, inertia, hysteresis, reach, threshold, tapping etc configurable via module params, DOS would probably need a config app for them) wwwcssrv.almaden.ibm.com/trackpoint/download.html (apart from that, protocol is normal PS2 mouse it seems) - rs232-ish DEC VSnnn- AA GA and AB puck, mouse or tablet (2001-2004, just 3 buttons and coordinates if mouse but 5 buttons and abs coordinates if tablet) (Protocols: alps, lifebook, ps2++, ps2, synaptics, touchkit for ps2, MSC/Sun and MS/related for rs232, plus busmouse and exotic stuff, plus several weird handshakes and setups) So... please vote for a hardware type or feature of one or whatever, and please vote for to-be-ignored hardware. Thanks everybody :-) Eric ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user