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:
- Directly initialize the secondary I/O port range (e.g.,
0x370h). - Hook into the appropriate secondary IRQ.
- Manage the motor-on timings, seek commands, and DMA transfer requests independently of standard BIOS routines.
- 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.