DOS Memory Managers Affected by Windows 95 Setup
The release of Windows 95 marked a critical transition from 16-bit real-mode MS-DOS environments to a preemptive 32-bit protected-mode operating system. During installation, the Windows 95 Setup program actively scanned, modified, or disabled numerous legacy third-party and native MS-DOS memory managers—including EMM386, QEMM, and 386MAX—to prevent severe system conflicts during hardware detection and to establish its own virtual memory architecture.
The Shift to 32-Bit Protected Mode
Under MS-DOS, memory managers were required to bypass the classic 640
KB conventional memory limit by providing access to Extended Memory
(XMS), Expanded Memory (EMS), and Upper Memory Blocks (UMBs). Windows 95
introduced VMM32.VXD, a 32-bit Virtual Machine Manager that
handles memory paging directly in protected mode. Because legacy
real-mode managers attempted to control the same CPU control registers
and address spaces, Windows 95 Setup had to neutralize or upgrade them
during installation.
Microsoft Native Managers: HIMEM.SYS and EMM386.EXE
Microsoft's default memory management utilities underwent significant modifications during the Windows 95 setup process:
- HIMEM.SYS: Windows 95 updated this driver to
support the MS-DOS 7.0 subsystem. In fact, Windows 95 integrated core
XMS management directly into
IO.SYS, meaningHIMEM.SYSwas automatically loaded at boot even if omitted fromCONFIG.SYS. - EMM386.EXE: Setup replaced existing MS-DOS 5.0 or 6.x versions with an updated Windows 95-compatible variant. While retained to support legacy DOS applications requiring Expanded Memory (EMS) or UMBs before Windows launched, Windows 95 bypassed EMM386's paging mechanisms once the graphical environment and 32-bit kernel took control.
Quarterdeck QEMM (Expanded Memory Manager)
Quarterdeck's QEMM was the most popular third-party alternative to EMM386, renowned for its aggressive optimization technologies like "Stealth" and "DOS-Up."
Windows 95 Setup frequently clashed with QEMM versions 7.5 and earlier:
- Setup Lockups: The aggressive memory remapping performed by QEMM interfered with the Windows 95 Setup hardware detection routine, often triggering General Protection Faults or system freezes.
- Setup Modifications: Setup typically commented out
QEMM386.SYSinCONFIG.SYS, substituting it with Microsoft's native drivers to ensure a stable installation. - Resolution: Users were required to disable features
like
ST:M(Stealth ROM) or upgrade to QEMM 8.0 or QEMM 97, which were specifically redesigned to surrender control to Windows 95’s protected-mode kernel.
Qualitas 386MAX and BlueMAX
Qualitas 386MAX (and its IBM PS/2 counterpart, BlueMAX) used advanced relocation algorithms to squeeze device drivers into upper memory:
- Hardware Detection Failures: 386MAX relocated system BIOS code and video ROMs into unused address spaces. When Windows 95 Setup attempted to probe the machine's hardware, it encountered unexpected memory layouts and crashed.
- Setup Action: Setup routinely flagged 386MAX
configurations as incompatible, disabling the driver entries in
CONFIG.SYSto establish a safe real-mode foundation before launching the installation GUI.
Helix Netroom and Cloaking
Helix Software's Netroom utilized a proprietary technology called "Cloaking," which allowed TSRs and BIOS extensions to run in protected mode outside the lower 1 MB DOS space:
- Protected Mode Clashes: Because Cloaking fundamentally altered how protected-mode interrupts were handled, it directly competed with the Windows 95 Virtual Machine Manager.
- Setup Action: Windows 95 Setup refused to run until
Netroom's cloaked drivers and its memory manager
(
RM386.SYS) were deactivated, as the installer could not initialize its own 32-bit drivers on top of an existing, non-standard protected-mode supervisor.
Other Third-Party and OEM Managers
Several other legacy managers were disabled, removed, or replaced by Setup:
- CEMM / CEMM386 (Compaq Expanded Memory Manager):
Older Compaq OEM managers were replaced by Windows 95's integrated
HIMEMandEMM386implementations to avoid boot-time incompatibilities. - Memory Commander (V Communications): This utility dynamically resized conventional memory based on application demand, which directly corrupted the memory mapping expected by the Windows 95 installation wizard.
- UMBPRO and Early Shareware Managers: Generic third-party UMB providers were universally commented out by Setup to guarantee that Windows 95 maintained direct control over the High Memory Area (HMA) and Upper Memory Area (UMA).