Using Secondary Floppy Controllers in MS-DOS 6.22

MS-DOS 6.22 does not natively support secondary floppy drive controller cards out of the box because the operating system relies directly on the system BIOS for floppy disk operations. To access floppy drives connected to a secondary controller, MS-DOS 6.22 requires either an on-board Option ROM BIOS on the controller card itself or dedicated real-mode device drivers loaded through the CONFIG.SYS configuration file.

The Standard BIOS and MS-DOS Limitation

In a standard IBM-compatible PC architecture, the primary floppy drive controller (FDC) resides at standard I/O port addresses 0x3F0–0x3F7, utilizing Interrupt Request 6 (IRQ 6) and Direct Memory Access Channel 2 (DMA 2). The PC BIOS is hardcoded to manage up to two physical drives (designated as drives A: and B:) through Interrupt 13h (INT 13h), the standard low-level disk service routine.

Because MS-DOS 6.22 relies on INT 13h for floppy I/O rather than communicating directly with controller hardware registers, it inherits the limits of the motherboard BIOS. Secondary floppy controllers operate on secondary resources—typically I/O ports 0x370–0x377 and an alternate IRQ such as IRQ 10, 11, or 12. Standard system BIOS firmware does not poll or enumerate these secondary addresses, rendering the attached drives invisible to MS-DOS by default.

Hardware-Level Integration: Option ROMs

The cleanest method for MS-DOS 6.22 to handle a secondary controller is through an on-board Option ROM on the controller card (such as those found on advanced multi-I/O boards or Micro Solutions Compaticards).

During the system Power-On Self-Test (POST), the motherboard scans memory space (typically between C8000h and DFFFFh) for expansion ROMs. An Option ROM on a secondary controller hooks into the INT 13h vector. It extends BIOS disk services to monitor the secondary I/O base addresses and assigned interrupt lines. When MS-DOS 6.22 boots, it queries the expanded INT 13h table and automatically mounts the additional drives as subsequent logical letters (such as D:, E:, or F:, depending on how many hard disk partitions are present).

Software-Level Integration: Device Drivers

If the secondary controller lacks an on-board BIOS ROM, MS-DOS 6.22 must manage the hardware using real-mode device drivers. The native MS-DOS driver DRIVER.SYS is insufficient on its own because it still relies on the underlying BIOS to perform the low-level hardware reads and writes.

Instead, users must load third-party, manufacturer-specific device drivers using the DEVICE= or DEVICEHIGH= command in CONFIG.SYS. Examples include drivers provided with specialized cards, like CC4.SYS for Compaticard hardware. These specialized drivers:

  1. Directly initialize the secondary I/O port range (e.g., 0x370h).
  2. Hook into the appropriate secondary IRQ.
  3. Manage the motor-on timings, seek commands, and DMA transfer requests independently of standard BIOS routines.
  4. Register the new drives directly with the DOS internal drive tables, assigning the next available DOS drive letters.

Once loaded, the drives function identically to standard floppy units, allowing users to format, read, and write using standard MS-DOS 6.22 utilities.