qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] Absolute Mouse in VNC and debug ports patch
@ 2010-04-02 14:19 Gerhard Wiesinger
  2010-04-03 15:26 ` Paul Brook
  0 siblings, 1 reply; 4+ messages in thread
From: Gerhard Wiesinger @ 2010-04-02 14:19 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2900 bytes --]

Hello,

This is my first contribution to QEMU: I've written a virtual piece of hardware 
(e.g. ports) that the mouse pointer can be used as an absolute pointing device 
even with non USB devices, e.g. with DOS and doesn't need any high memory usage 
USB driver. This is necessary for e.g. VNC remote access, this was my primary 
motivation.

To use it you need a mouse driver (e.g. cutemouse, 
http://cutemouse.sourceforge.net/) and an QEMU mouse TSR.
Further the mouse TSR emulates also a HP-HIL 45911 tablet digitizer. This 
device has been chosen because an Interrupt interface exists at INT 6Fh and 
therefore it is relativly easy to emulate (all other devices I've evaluated use 
the serial port and are therefore much more complex to emulate) and I think it 
was also common at DOS times. Original hardware can be found at:
http://www.hpl.hp.com/personal/Tom_Malzbender/papers/tablet_highres.pdf
http://oopweb.com/Assembly/Documents/InterList/Volume/INTERRUP.Q

Defined INT 6Fh functions:
1.) ah=08h, bp=2Ah (driver ID), V_SINPUT
http://www.ctyme.com/intr/rb-7715.htm
2.) ah=06h, bp=2Ah (driver ID), V_SINPUT
http://www.ctyme.com/intr/rb-7709.htm
3.) ah=02h, al=04h, bp=BAh (driver ID), C_LTABLET
http://www.ctyme.com/intr/rb-7646.htm
4.) ah=06h, bp=BAh (driver ID), C_LTABLET
http://www.ctyme.com/intr/rb-7707.htm

TSR and qemu patch can be found at, attached too:
http://www.wiesinger.com/opensource/qemu/qemu-0.12.3-absolutemouse-V6.patch
http://www.wiesinger.com/opensource/qemu/qemumous.com

Usage:
1.) Apply patch to QEMU 0.12.3
2.) Load cutemouse 1.91alpha
3.) Load qemumous.com
4.) Enjoy it :-)

ASM source code of the TSR will be released too in few days, needs some 
cleanup/review.

Further I've written a simple logging debug ports functionality to debug the 
driver. It enables also simple "delta" debugging, where only state changes are 
logged. Example can be seen in the QEMUMOUS.ASM source code (will be released 
in few days).

Added switches:
-absolute-mouse Proprietary pointer device that uses absolute coordinates (like a touchscreen)
                 with VNC for e.g. DOS. This means qemu is able to report the mouse position
                 without having to grab the mouse. Needs a DOS TSR to emulate the mouse.
                 DOS TSR also emulates a HP-HIL 45911 Tablet using INT 6Fh.
                 Also overrides the PS/2 mouse emulation when activated.
-debugports     Enables debug ports which can be used by drivers or DOS TSR programs.
                 Look at the code of the absolute-mouse DOS TSR for examples.

Status is: mouse event queing implemented, tested and works for me.
Open issues: TSR might be a full mouse driver (e.g. integrate in cutemouse) 
instead of patching just few INT33h functions.

Any feedback is welcome. Maybe after review you can integrate the patch in the 
GIT repository.

Thanx.

Ciao,
Gerhard

--
http://www.wiesinger.com/

[-- Attachment #2: Type: APPLICATION/ZIP, Size: 5592 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-04-05 10:22 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-02 14:19 [Qemu-devel] Absolute Mouse in VNC and debug ports patch Gerhard Wiesinger
2010-04-03 15:26 ` Paul Brook
2010-04-03 16:20   ` Gerhard Wiesinger
2010-04-05 10:20   ` Gerhard Wiesinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).