Updated MOUSEVKD.386 and Resynchronizing the Mouse

Last reviewed: September 16, 1996
Article ID: Q97883
The information in this article applies to:
  • Microsoft Mouse Driver for Windows, version 9.0
  • Microsoft Mouse Driver for MS-DOS, version 9.0

SUMMARY

MOUSEVKD.386 updates the auxiliary device support contained within the virtual keyboard device (VKD) that ships with Microsoft Windows.

MORE INFORMATION

The VKD is composed of two functionally separate portions. The first handles the keyboard (VKD) and the second handles the auxiliary input device (virtual auxiliary device, or VAD). These are combined into one device because of hardware design. Both keyboard and auxiliary device input and output are routed through the 8042 keyboard controller; therefore, the VKD and VAD portions are tightly coupled into a single virtual device.

MOUSEVKD.386 is an updated version of the virtual device that ships with Windows. The VKD portion is unchanged; only the VAD portion has been updated. The added functionality in the VAD includes support for resynchronizing the mouse and compatibility with updated versions of the MS-DOS-based mouse driver.

A pointing device on the auxiliary input port sends information to the computer in the form of a multiple-byte packet. Unfortunately, the packet does not allow the mouse driver to determine if a particular byte is the first one of a packet or not. If an interrupt is missed and a byte is lost, the mouse driver interprets the bytes incorrectly, resulting in a jumping cursor with random button clicks.

Mouse Synchronization with the Windows-Based Driver

In 386 enhanced mode Windows, MOUSEVKD.386 ensures that the packets are kept in order by timing the interval between successive bytes. If the interval is too large, it assumes that the byte just received is the first one of a packet. This method works because the bytes of a packet are sent one right after another, and the interval between bytes of a packet is always small. Note, however, that it is possible that the interval between successive packets is also small.

If you notice that your mouse cursor movement is erratic, you should stop moving the mouse for a few seconds to allow MOUSEVKD.386 to resynchronize.

Mouse Synchronization with the MS-DOS-Based Driver

The MS-DOS-based mouse driver uses the BIOS to communicate with the mouse. When the BIOS receives a full packet from the mouse, it notifies the mouse driver and passes it the three bytes that make up the packet (three-byte protocol). Three-byte protocol does not allow the MS-DOS driver to time the interval between the bytes of the packet, and the driver cannot determine if the mouse is out of sync. Therefore, the MS-DOS-based driver tells the BIOS that mouse packets are only one-byte long, and the BIOS sends each byte of a packet separately (single-byte protocol). The single-byte protocol permits the MS-DOS-based driver to time the interval between successive bytes, and thus determine when the mouse is out of sync.

If you use an MS-DOS-based driver that uses the single-byte protocol with the VKD that ships with Windows, the mouse is unusable in MS-DOS sessions within Windows. This is because the VKD assumes that you are using the three-byte protocol.

MOUSEVKD.386 has been updated to detect if a mouse driver is using a single-byte or a three-byte protocol and then respond appropriately.


KBCategory: kbhw
KBSubcategory:
Additional reference words: 9.00 mice wincomm


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 16, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.