From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NxhjU-0001J9-Bx for qemu-devel@nongnu.org; Fri, 02 Apr 2010 10:20:24 -0400 Received: from [140.186.70.92] (port=48348 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NxhjO-0001EF-KC for qemu-devel@nongnu.org; Fri, 02 Apr 2010 10:20:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NxhjN-0008GU-FC for qemu-devel@nongnu.org; Fri, 02 Apr 2010 10:20:18 -0400 Received: from chello212186124096.11.vie.surfer.at ([212.186.124.96]:38507 helo=wiesinger.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NxhjM-0008GD-Rr for qemu-devel@nongnu.org; Fri, 02 Apr 2010 10:20:17 -0400 Received: from bbs.intern (localhost [127.0.0.1]) by wiesinger.com (8.14.4/8.14.4) with ESMTP id o32EJbQA003833 for ; Fri, 2 Apr 2010 16:19:37 +0200 Received: from localhost (gerhard@localhost) by bbs.intern (8.14.4/8.14.4/Submit) with ESMTP id o32EJbDQ003829 for ; Fri, 2 Apr 2010 16:19:37 +0200 Date: Fri, 2 Apr 2010 16:19:37 +0200 (CEST) From: Gerhard Wiesinger Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/Mixed; BOUNDARY="-1463811584-1929957629-1270216408=:31930" Content-ID: Subject: [Qemu-devel] Absolute Mouse in VNC and debug ports patch List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---1463811584-1929957629-1270216408=:31930 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-ID: 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/ ---1463811584-1929957629-1270216408=:31930 Content-Type: APPLICATION/ZIP; name=qemu-patch-and-tsr-V6.zip Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=qemu-patch-and-tsr-V6.zip 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 AgC6AAAACBUAAAAA ---1463811584-1929957629-1270216408=:31930--