[ HOME ]    [ RADIO ]    [ COMPUTERS ]    [ FIELD STATION ]    [ ABOUT ]    [ MODERN MODE ]
=== DEMYSTIFYING IO, IRQ, AND DMA: RESOLVING CONFLICTS IN VINTAGE SYSTEMS ===

Building and maintaining a vintage 1997-era PC-like a Pentium II on an Intel PD440FX motherboard running Windows 95 OSR2.1-means bridging two distinct eras of computing: the manual, jumper-configured world of the Industry Standard Architecture (ISA) bus, and the emerging, automated “Plug and Play” (PnP) world of the Peripheral Component Interconnect (PCI) bus.

When these two worlds collide, the result is usually a hardware conflict. A sound card stutters, a mouse freezes, or the system refuses to boot. To resolve these issues, you must understand the holy trinity of legacy hardware communication: IO (Input/Output Base Addresses), IRQ (Interrupt Requests), and DMA (Direct Memory Access).


1. The Core Concepts

Think of the CPU as a busy executive. It has a lot of data to process, and various hardware components (sound cards, network adapters, serial ports) constantly need its attention.

I/O Base Addresses (The Mailbox)

An I/O Port is a specific hexadecimal address in the system’s memory map where the CPU and a hardware device exchange data. If the CPU wants to send a command to the sound card, it drops that command into the sound card’s I/O “mailbox.”

  • Conflict: If a network card and a sound card are both configured to use the 0x220 address, the CPU sends a command, and both cards try to read it at the same time. The system usually crashes.

IRQ - Interrupt Request (The Doorbell)

Hardware uses an IRQ line to literally interrupt the CPU. When a network card receives a packet of data, it fires its IRQ line to say, “Stop what you’re doing and process this data immediately!”

  • Vintage x86 systems have exactly 16 IRQs (0 through 15).
  • The Cascade: IRQ 2 is tied to IRQ 9 (cascaded) to link the two physical interrupt controller chips together, meaning IRQ 2 is generally unusable by expansion cards.

DMA - Direct Memory Access (The Loading Dock)

Sometimes, moving data through the CPU is too slow and wastes processing cycles. A DMA channel allows a hardware device to bypass the CPU entirely and read or write data directly to the system RAM. This is critical for smooth, continuous audio playback and fast floppy disk operations.

  • Standard ISA systems have 8 DMA channels.
  • Channels 0-3 are 8-bit (used for standard Sound Blaster audio).
  • Channels 4-7 are 16-bit (used for high-quality audio or SCSI controllers).

2. The Standard IRQ & I/O Map

Memorizing the standard resource map is essential. If you deviate from these defaults, many stubborn MS-DOS games and legacy drivers will simply fail to find your hardware.

IRQ Standard Assignment Common I/O Address Notes & Vintage Hardware Examples
0 System Timer 0040-0043 Internal system use only.
1 Keyboard Controller 0060, 0064 Internal system use only.
2/9 Cascade / VGA 03C0-03DF IRQ 2 redirects to 9. Often used by VGA cards or MPU-401 MIDI.
3 COM2 / COM4 02F8 (COM2) High Conflict Zone: Often used for internal modems or Amateur Radio TNCs.
4 COM1 / COM3 03F8 (COM1) High Conflict Zone: Usually occupied by the Serial Mouse.
5 Sound Card 0220 Standard for Sound Blaster. (Sometimes defaults to LPT2).
6 Floppy Disk Controller 03F0-03F5 Strictly reserved for floppy drives.
7 LPT1 (Parallel Port) 0378 Used for printers, Covox Speech Things, or ZIP drives.
8 Real-Time Clock (RTC) 0070-0073 Internal system use only.
10 Free / Network Card 0300 The classic default for NE2000 or 3Com EtherLink III NICs.
11 Free / Video / SCSI Varies Often grabbed by PCI Video cards (like a Diamond Fire GL 1000 Pro) or Voodoo add-in cards.
12 PS/2 Mouse 0060, 0064 If using a serial mouse, this IRQ can sometimes be freed up.
13 Math Coprocessor (FPU) 00F0 Internal system use only.
14 Primary IDE Channel 01F0-01F7 Your main hard drive.
15 Secondary IDE Channel 0170-0177 CD-ROM drive.

3. Real-World Hardware Examples

Example 1: The Creative Sound Blaster 16 (or AWE32/64)

In your AUTOEXEC.BAT, you will often see a string like this: SET BLASTER=A220 I5 D1 H5 P330 E620 T6 This environmental variable explicitly tells MS-DOS games where to look for the hardware:

  • A220: I/O Base Address is 0x220.
  • I5: Using IRQ 5.
  • D1: Using 8-bit DMA Channel 1 (for standard sound effects).
  • H5: Using 16-bit DMA Channel 5 (for high-quality 16-bit audio playback).
  • P330: MPU-401 MIDI port is at I/O 0x330 (for General MIDI / Roland SC-55).

Example 2: Amateur Radio TNCs and the Serial Mouse Conflict

A classic 90s problem for hams. You have a serial mouse plugged into COM1. You install an internal dial-up modem or a serial TNC for packet radio on COM3.

  • The Conflict: Look at the table above. COM1 and COM3 share IRQ 4.
  • The Result: The mouse works fine until you fire up your terminal software to connect to the TNC. The moment the TNC sends data, the mouse cursor freezes completely, or the system hard-locks. You cannot share an IRQ between two active serial devices.
  • The Fix: You must reconfigure the TNC or Modem to use COM2 (IRQ 3) via hardware jumpers or software configuration.

4. Diagnosing Conflicts

Method A: MS-DOS (MSD.EXE)

Microsoft Diagnostics (MSD.EXE) shipped with DOS 6.22 and Windows 3.1x.

  1. Drop to a pure DOS prompt and type MSD.
  2. Press Q to view the IRQ map.
  3. Warning: MSD is notorious for “lying.” It works by reading the interrupt vector table, not by physically probing the hardware (which could crash the system). If a driver isn’t loaded for a piece of hardware, MSD might list its IRQ as “Free” even though a card is physically sitting on that line.
  4. Better DOS Alternatives: Third-party utilities like HWINFO for DOS or Snooper do a much better job of safely probing I/O ports to find hidden hardware.

Method B: Windows 95 OSR2.1 Device Manager

Windows 9x introduced the Device Manager, which heavily relied on the system BIOS to report PnP devices.

  1. Right-click My Computer -> Properties -> Device Manager tab.
  2. Look for yellow exclamation marks ! (indicating a device failed to start due to a conflict).
  3. Double-click the offending device and go to the Resources tab.
  4. The “Conflicting device list” at the bottom will explicitly tell you which two devices are fighting over the same I/O or IRQ.

5. Troubleshooting & Resolving Conflicts

When you identify a conflict, you have three layers where you can fix it: Physical, BIOS, and OS.

Scenario 1: The Sound Card Stutters or Hangs Games (DMA Conflict)

  • Symptom: Doom loads, the music plays, but the moment a sound effect triggers (like a shotgun blast), the game emits a continuous buzzing sound and the computer completely freezes.
  • Cause: The game is trying to use DMA 1, but the Sound Card’s physical jumpers are set to DMA 3 (or a parallel port scanner is holding DMA 1 hostage). The CPU is waiting for a memory transfer that never happens.
  • Resolution:
    1. Check the physical jumpers on the sound card (or run the CTCM configuration utility for PnP cards).
    2. Ensure the SET BLASTER= string in AUTOEXEC.BAT exactly matches the physical hardware settings.
    3. Run the game’s specific SETUP.EXE and manually assign the correct DMA channel. Do not rely on “Auto-Detect,” which often crashes the system during the detection phase.

Scenario 2: The PCI vs. ISA War (IRQ Stealing)

  • Symptom: You install a new PCI Ethernet card or a PCI video accelerator (like the Diamond Fire GL 1000 Pro). Suddenly, your ISA Sound Blaster stops working in MS-DOS. Windows 95 shows a conflict on IRQ 5.
  • Cause: PCI devices support “IRQ Sharing,” but legacy ISA devices do not. The modern PCI bus told the BIOS, “I need an IRQ,” and the BIOS, unaware of the non-PnP ISA sound card, handed it IRQ 5. The PCI card stepped on the ISA card.
  • Resolution (The BIOS Fence):
    1. Reboot and enter your motherboard’s BIOS setup (usually by pressing DEL or F2).
    2. Navigate to the “PCI / PnP Configuration” menu (very common on 440FX chipsets).
    3. Find the setting for IRQ 5. It will likely be set to PCI/ISA PnP.
    4. Change it to Legacy ISA.
    5. Save and exit. This acts as a fence, telling the motherboard’s PnP controller that IRQ 5 is strictly off-limits to PCI cards. The BIOS will automatically move the PCI network/video card to IRQ 9, 10, or 11, restoring peace to the system.

Scenario 3: Forcing Windows 95 to Let Go

Sometimes, Windows 95 PnP gets it wrong, and it stubbornly insists on giving a network card an I/O address of 0x220 (crashing your sound card).

  • Resolution:
    1. Go to Device Manager -> double-click the Network Card -> Resources tab.
    2. Uncheck “Use automatic settings”.
    3. Change the “Setting based on” dropdown to a different Basic Configuration (e.g., Basic Configuration 2).
    4. Highlight Input/Output Range, click Change Setting, and manually type in 0300-031F (assuming IRQ 10 is also free).
    5. Windows will warn you that you are manually overriding PnP. Accept the warning and reboot.



W4DXR Retro Terminal | Station Log & Technical Notebook