Updated MOUSEVKD.386 and Resynchronizing the Mouse
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.
Additional query words:
9.00 mice wincomm
Keywords :
Version : 9.00
Platform : MS-DOS
Issue type :
Last Reviewed: August 9, 1999