How to Configure Mouse Drivers in Windows 3.11
Proper cursor movement in Microsoft Windows 3.11 required precise
coordination between real-mode DOS drivers, Windows configuration files,
and underlying hardware interrupts. Because Windows 3.11 operated as a
16-bit graphical environment on top of MS-DOS, getting a mouse to
function smoothly involved establishing base hardware communication,
specifying Windows-native display drivers in SYSTEM.INI,
and tuning pointer ballistics in WIN.INI.
The Dual-Layer Driver Requirement
Windows 3.11 relied on a two-tier driver model for pointer devices:
- DOS-Level TSR Driver: Before launching Windows via
the
WINcommand, a real-mode mouse driver had to be loaded in DOS. This was achieved by addingDEVICE=C:\DOS\MOUSE.SYSinCONFIG.SYSor executingMOUSE.COMinsideAUTOEXEC.BAT. While the Windows GUI used its own internal driver, the DOS TSR (Terminate and Stay Resident) program was required for pointer functionality in full-screen or windowed MS-DOS prompts within Windows. - Windows Protected-Mode Driver: Once Windows initialized, it took control of hardware communication using dedicated 16-bit drivers and 32-bit virtual device drivers (VxDs) defined in its initialization files.
Configuration of
SYSTEM.INI
The primary file responsible for hardware device mapping in Windows
3.11 was SYSTEM.INI. To ensure correct cursor movement
without freezing or erratic tracking, specific entries were required in
two primary sections:
[boot]Section: Defines the core graphical driver for the pointing device.[boot] mouse.drv=mouse.drv(Third-party hardware frequently replaced standard
mouse.drvwith proprietary alternatives, such as Logitech'slmouse.drvor Microsoft'smsmouse.drv.)[386Enh]Section: Defines the Virtual Mouse Driver (VxD) that handled hardware interrupts and arbitration between DOS sessions and the Windows environment.[386Enh] mouse=*vmdIf using proprietary drivers, this entry pointed to an external
.386file, such asdevice=lvmd.386.
Port and Hardware Assignments
Proper tracking required accurate detection of the interface type—Serial, PS/2, or Bus mouse:
- Serial Mice: Connected to COM1 or COM2 ports. The
COM port had to use standard hardware resources (COM1: IRQ 4, Address
03F8h; COM2: IRQ 3, Address02F8h). Sharing IRQs with other serial peripherals, such as modems on COM3 or COM4, caused severe pointer lag, stuttering, or permanent freezing upon cursor movement. - PS/2 Mice: Required dedicated IRQ 12 support
provided by the system motherboard and an auxiliary port controller. In
Windows 3.11, the Windows Setup utility (
SETUP.EXEexecuted from DOS or within Windows) had to explicitly select "Microsoft, or PS/2" as the mouse type.
Sensitivity and Ballistics
in WIN.INI
Cursor acceleration curves and sensitivity thresholds were governed
by the [windows] section of WIN.INI. While
often configured via the Windows Control Panel, manual edits were
frequently used to eliminate sluggish or oversensitive tracking:
[windows]
MouseSpeed=1
MouseThreshold1=4
MouseThreshold2=12MouseSpeed: Set the acceleration multiplier (0= no acceleration,1= single acceleration threshold,2= dual acceleration threshold).MouseThreshold1: The number of pixels the mouse needed to move in a single polling interval before the cursor speed doubled.MouseThreshold2: The number of pixels required before the cursor speed quadrupled (only applied whenMouseSpeedwas set to2).