How MS-DOS 6.22 Manages ISA Resource Conflicts

MS-DOS 6.22 does not natively resolve hardware resource conflicts between Industry Standard Architecture (ISA) expansion cards through automated operating system mechanisms. Because it is a 16-bit, single-tasking operating system without a dynamic hardware abstraction layer, MS-DOS relies entirely on manual hardware configuration by the user, diagnostic utilities to identify overlaps, and software drivers configured at boot time to map hardware addresses correctly.

The Architectural Limits of Legacy ISA and MS-DOS

Legacy ISA expansion cards communicate with the system using four primary resources: Interrupt Request lines (IRQs), Direct Memory Access (DMA) channels, Input/Output (I/O) port base addresses, and Upper Memory Area (UMA) memory segments. In an ISA architecture, IRQ lines are edge-triggered rather than level-triggered, meaning two devices generally cannot share the same physical IRQ without causing system freezes, missing data, or hardware malfunction.

MS-DOS 6.22 lacks a centralized hardware registry or an integrated bus manager. The operating system kernel assumes that all attached hardware has already been physically and logically arbitrated before the boot loader executes. If two ISA cards attempt to assert the same IRQ line or respond to the same I/O base address, the hardware conflict occurs at the electrical and BIOS level, completely outside the operating system's ability to intervene.

Manual Hardware Configuration

The primary mechanism for managing ISA conflicts during the MS-DOS 6.22 era is physical configuration. Users must manually set jumpers or DIP switches directly on the ISA expansion cards before installation:

  • I/O Addresses: Configuring the specific hexadecimal range (such as 0x220 for a Sound Blaster or 0x300 for a network interface card) so multiple cards do not listen to the same bus cycles.
  • IRQs: Assigning distinct interrupt lines (such as IRQ 5, 7, or 10) to avoid simultaneous interrupt requests.
  • DMA Channels: Allocating independent 8-bit or 16-bit DMA channels (typically DMA 1, 3, or 5) for high-speed transfers.

Diagnostic Reporting via MSD.EXE

While MS-DOS 6.22 cannot automatically resolve conflicts, it provides the Microsoft Diagnostics utility (MSD.EXE) to help users detect them. By running MSD, an administrator can examine:

  • A visual map of allocated and free IRQs.
  • Active I/O port assignments for standard serial (COM) and parallel (LPT) ports.
  • The memory layout between 640 KB and 1 MB to detect adapter ROM and RAM overlaps.

Although MSD.EXE queries system BIOS tables and scans hardware ports, it cannot detect non-standard or quiet devices that do not broadcast their presence. It acts strictly as an informational tool to guide manual jumper adjustments.

Driver Initialization in CONFIG.SYS and AUTOEXEC.BAT

Once hardware jumpers are physically set, MS-DOS 6.22 relies on startup files to ensure software matches the physical hardware layout. Configuration occurs through parameters passed to device drivers:

  • CONFIG.SYS: Drivers loaded via DEVICE= or DEVICEHIGH= statements often require explicit switches specifying the card's physical configuration (for example, DEVICE=C:\NETWORK\EXP16.SYS /IRQ=5 /IO=300).
  • AUTOEXEC.BAT: Environment variables are often exported to instruct DOS-based software where to find hardware. The standard SET BLASTER=A220 I5 D1 T4 string, for instance, informs applications of the Sound Blaster card's I/O port, IRQ, and DMA settings without the operating system dynamically querying the card.

ISA Plug and Play (PnP) Workarounds

Toward the end of the ISA era, the Plug and Play ISA specification was introduced to eliminate manual jumper configuration. However, because MS-DOS 6.22 predates native PnP operating system support, it still requires external arbitration software:

  • ICU (Intel Configuration Utility): A DOS-based utility used to store non-volatile resource maps in the system BIOS or dedicated files.
  • Vendor Initialization Drivers: Drivers such as CTCM.EXE (Creative Configuration Manager) or ISA_PnP.SYS loaded in CONFIG.SYS scan the ISA bus during boot, activate the PnP ISA isolation protocol, assign unallocated resources, and lock the hardware into those ranges before standard DOS software runs.