Windows 3.11 DOS Window Mouse Driver

In Microsoft Windows 3.11 running in 386 Enhanced Mode, mouse cursor support inside windowed DOS sessions is provided by the Virtual Mouse Device driver, designated internally as *vmouse (or externally as VMOUSE.386). This article details the role of this virtual device driver, how it interfaces with real-mode DOS drivers, and how it translates cursor movements between the graphical Windows environment and character-mode DOS applications.

The Virtual Mouse Driver (*vmouse)

Windows 3.11 relies on the 386 Enhanced Mode architecture to manage multiple virtual machines, including DOS prompts. The specific driver responsible for handling mouse input in these virtualized environments is configured in the SYSTEM.INI file under the [386Enh] section:

[386Enh]
mouse=*vmouse

The asterisk (*) indicates that the driver is compiled directly into the Windows kernel file, WIN386.EXE. If a third-party mouse is installed, this line may instead point to a standalone file on disk, such as VMOUSE.386 or a vendor-supplied equivalent (for example, LVMD.386 for Logitech devices).

Coordination with Real-Mode DOS Drivers

The *vmouse driver does not operate entirely alone. To display and manipulate a mouse cursor inside a windowed DOS box, the system requires a two-tiered driver stack:

  1. A Real-Mode DOS Mouse Driver: A compatible DOS mouse driver, such as Microsoft’s MOUSE.COM or MOUSE.SYS (version 8.20 or later), must be loaded in AUTOEXEC.BAT or CONFIG.SYS before Windows starts. This driver exposes the standard Mouse Interrupt service (INT 33h) that DOS software expects.
  2. The Virtual Device Driver (*vmouse): Once Windows loads, *vmouse intercepts calls to INT 33h within each virtual DOS machine.

Coordinate Mapping and Window Integration

When a DOS application runs full-screen, the DOS driver can handle the hardware interrupts directly. However, when the application is switched to run inside a desktop window (using Alt+Enter), direct hardware access would cause conflicts with the Windows desktop cursor.

*vmouse resolves this by virtualizing the mouse hardware. It tracks the Windows graphical pointer, translates desktop pixel coordinates into the text-grid or graphics coordinates of the running DOS application, and passes those modified positions back to the DOS environment. This mechanism allows users to seamlessly move the mouse pointer into, across, and out of windowed DOS programs without losing cursor tracking.