Role of Autoexec.bat in Windows 98 Boot Process

The Autoexec.bat file in Microsoft Windows 98 was a legacy startup script responsible for configuring the real-mode MS-DOS environment before the operating system transitioned into its 32-bit protected-mode graphical interface. Located in the root directory of the boot drive, this batch file executed automatically during system startup to set global environment variables, initialize legacy hardware, and run terminate-and-stay-resident (TSR) programs necessary for backward compatibility with 16-bit MS-DOS software.

The Windows 98 Startup Sequence

Windows 98 was built on a hybrid architecture that still relied on MS-DOS 7.1 to initialize the machine. The boot process followed a strict chronological sequence:

  1. BIOS and Master Boot Record (MBR): The computer hardware performed a Power-On Self-Test (POST) and loaded the boot sector.
  2. IO.SYS: The core MS-DOS kernel initialized base hardware and loaded the default configuration.
  3. Config.sys: The system processed real-mode device drivers (such as memory managers like HIMEM.SYS).
  4. Command.com and Autoexec.bat: The command-line interpreter launched and immediately processed the commands stored inside Autoexec.bat.
  5. WIN.COM: After completing the batch file, the system executed WIN.COM to load the Virtual Machine Manager (VMM32.VXD) and launch the 32-bit Windows GUI.

Key Responsibilities of Autoexec.bat

During the execution phase, Autoexec.bat performed several critical setup operations:

  • Defining Environment Variables: It configured critical paths using commands like PATH=C:\WINDOWS;C:\WINDOWS\COMMAND and defined locations for temporary files using SET TEMP=C:\WINDOWS\TEMP.
  • Loading Real-Mode Drivers and TSRs: For older hardware without native Windows 98 protected-mode drivers, Autoexec.bat loaded utilities such as MSCDEX.EXE (for CD-ROM access), DOSKEY (for command history), or legacy mouse and sound drivers.
  • Sound Card Initialization: It frequently set legacy hardware flags, such as the BLASTER environment variable, enabling Sound Blaster compatibility for DOS applications and games running in real mode.

Backward Compatibility and Obsolescence

Unlike standalone MS-DOS systems or Windows 3.1, Windows 98 did not strictly require Autoexec.bat to boot into the desktop. Windows 98 included built-in 32-bit protected-mode drivers that superseded most DOS-level configurations, avoiding conventional memory limitations and hardware conflicts.

If Autoexec.bat was missing, Windows 98 automatically applied sensible default environment variables directly from IO.SYS. However, Microsoft retained full support for the file so users could boot directly into real-mode MS-DOS mode or maintain compatibility with older enterprise software and DOS-based gaming titles.