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).
- Option ROM Execution: During POST, the system scans
memory region
C0000h–DFFFFhfor valid expansion ROM headers. - Interrupt Hooking: The controller's Option ROM hooks INT 13h, intercepting BIOS disk service calls.
- Drive Remapping: The Option ROM installs itself
ahead of the default motherboard handler, designating its own connected
drive as
80hand pushing any motherboard-connected drives to81hor higher. - 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.SYSinto memory.IO.SYScontains the basic hardware interface routines. At this phase,IO.SYSuses 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.SYSloadsMSDOS.SYS, the core operating system kernel. The kernel establishes file system tables and readsCONFIG.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.