qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Absolute Mouse in VNC and debug ports patch


From: Gerhard Wiesinger
Subject: [Qemu-devel] Absolute Mouse in VNC and debug ports patch
Date: Fri, 2 Apr 2010 16:19:37 +0200 (CEST)
User-agent: Alpine 2.00 (LFD 1167 2008-08-23)

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: qemu-patch-and-tsr-V6.zip
Description: Zip archive


reply via email to

[Prev in Thread] Current Thread [Next in Thread]