MS-DOS 6.22 Booting from Secondary Controllers

Booting MS-DOS 6.22 from a secondary hard disk controller depends entirely on hardware-level BIOS support and interrupt mapping rather than the operating system itself. Because MS-DOS 6.22 does not contain native protected-mode storage drivers, it delegates all pre-boot and low-level disk operations to system firmware via Interrupt 13h (INT 13h). To boot MS-DOS from a secondary controller—whether an auxiliary IDE channel, an add-in ISA/PCI card, or a SCSI host adapter—the hardware must expose that drive to the system as INT 13h Drive 80h before the operating system initializes.

The Role of INT 13h and Drive 80h

During the Power-On Self-Test (POST), the system BIOS discovers storage hardware and constructs a disk table. In the standard x86 architecture used by MS-DOS 6.22, the primary bootable fixed disk must be assigned the logical hex identifier 80h.

When the BIOS completes initialization, it reads Cylinder 0, Head 0, Sector 1 of Drive 80h to locate the Master Boot Record (MBR). If a secondary hard disk controller is not mapped as Drive 80h by the firmware, the system BIOS will not hand off execution to that drive's MBR, preventing MS-DOS from beginning its boot routine.

Standard Secondary IDE Controllers

Standard PC motherboards typically implement two IDE channels:

  • Primary: I/O port 0x1F0, IRQ 14
  • Secondary: I/O port 0x170, IRQ 15

Traditional legacy BIOS architectures default to mapping the primary master drive to 80h and the secondary master drive to 81h or higher. Under these older implementations, booting directly from the secondary channel is impossible without physical reconfiguration (such as swapping cables or jumpers).

However, late-era BIOS versions allow users to define a custom boot priority in the CMOS setup utility (e.g., setting the boot sequence to "Secondary Master" or "HDD-1"). When configured this way, the motherboard BIOS remaps the drive attached to 0x170 as Drive 80h at the firmware level, allowing the DOS bootstrap process to initiate normally.

Add-in Controllers and Option ROMs

When using secondary storage controllers on expansion cards—such as SCSI adapters or tertiary PCI/ISA IDE cards—the motherboard BIOS may not natively recognize the hardware. These cards utilize an on-board Option ROM (expansion BIOS).

  1. Option ROM Execution: During POST, the system scans memory region C0000h–DFFFFh for valid expansion ROM headers.
  2. Interrupt Hooking: The controller's Option ROM hooks INT 13h, intercepting BIOS disk service calls.
  3. Drive Remapping: The Option ROM installs itself ahead of the default motherboard handler, designating its own connected drive as 80h and pushing any motherboard-connected drives to 81h or higher.
  4. Boot Handoff: Once INT 13h is established, the controller transfers control to the partition boot sector on the attached drive.

The MS-DOS 6.22 Boot Sequence

Once the controller firmware or system BIOS maps the secondary disk as 80h and executes the boot sector, MS-DOS 6.22 loads in two primary stages:

  • IO.SYS: The boot sector loads IO.SYS into memory. IO.SYS contains the basic hardware interface routines. At this phase, IO.SYS uses BIOS INT 13h calls exclusively to read system files from the disk. It does not communicate with the controller's I/O ports or IRQs directly.
  • MSDOS.SYS: IO.SYS loads MSDOS.SYS, the core operating system kernel. The kernel establishes file system tables and reads CONFIG.SYS.

MS-DOS continues to access the hard disk via the BIOS INT 13h interface throughout the operating session unless real-mode device drivers (such as an ASPI manager for SCSI cards) are explicitly loaded in CONFIG.SYS. If the secondary controller loses its INT 13h translation after the DOS kernel assumes control, disk operations will fail with standard critical I/O errors.