Legacy ISA Card Detection in Windows XP Setup

During the setup of Windows XP, legacy Industry Standard Architecture (ISA) card detection required a careful balance between backward compatibility and system stability. Because blind probing of non-Plug and Play (PnP) ISA hardware could freeze the system by writing to sensitive I/O ports, Windows XP limited automated low-level probing during installation. This article details the specific legacy ISA detection procedures, protocols, and safeguards that Microsoft preserved within the Windows XP setup process to identify legacy hardware safely.

ACPI and BIOS Resource Hand-off

Before attempting any direct hardware querying, Windows XP Setup consulted the system firmware. On systems with an ACPI-compliant BIOS or a legacy Plug and Play BIOS, Setup queried the BIOS resource tables to detect pre-allocated system devices:

  • Resource Reservation: Setup checked ACPI namespaces or legacy PnP BIOS device nodes (PNP0xxx IDs) for static system-board ISA devices, such as serial ports (COM), parallel ports (LPT), floppy disk controllers, and standard keyboard controllers.
  • Non-Interference: By reading these tables directly, Setup registered the resources (I/O base addresses, IRQs, and DMA channels) used by legacy hardware without directly probing the bus, preventing address conflicts with unconfigured cards.

ISA Plug and Play (PnP) Enumeration

For ISA devices manufactured under the Plug and Play ISA specification (version 1.0a), Windows XP Setup retained full automated detection via the ISAPNP.SYS bus driver:

  • Isolation Protocol: Setup initiated the standard ISA PnP key sequence by sending an initiation key sequence to port 0x279 (the Address/Write Data port) followed by hardware isolation using a linear feedback shift register (LFSR) algorithm.
  • Auto-Configuration: Once isolated, Setup read the serial identifier and Card Information Structure (CIS) from the card's non-volatile storage, assigned non-conflicting resources dynamically, and loaded the corresponding driver from Driver.cab.

Safe Signature Probing for Critical Architecture

Blind, system-wide probing of arbitrary I/O ports—common in earlier operating systems like Windows 95—was largely eliminated in the Windows NT kernel upon which XP was built. However, Setup maintained deterministic, "safe" probing routines for essential boot hardware:

  • Standard Video Controllers: Text-mode and early GUI setup performed read-only queries at traditional legacy ISA video frame-buffer and register locations (0x3B0–0x3DF) to verify legacy VGA compatibility before initializing higher-level display drivers.
  • Mass Storage Controllers: Setup checked legacy IDE base addresses (0x1F0–0x1F7 and 0x170–0x177) for active controller signatures using non-destructive register reads, ensuring access to boot drives on older controller boards.

Targeted INF Matching and Avoidance of Raw Probing

For non-PnP ISA expansion cards (such as legacy Sound Blaster audio cards or NE2000-compatible network adapters), Setup utilized passive pattern matching:

  • Safe Probing Scripts: Setup restricted hardware polling to specific I/O ports and interrupt vectors defined in device INF files. Instead of arbitrary port polling, Setup tested specific, well-documented read-only status registers belonging to expected device classes.
  • Deferred Detection: If a legacy non-PnP ISA card could not be verified through non-destructive methods during unattended or GUI-mode setup, detection was intentionally deferred. Windows XP transferred the responsibility to the post-installation "Add Hardware Wizard," where interactive, user-confirmed probing or manual resource assignment could take place without risking an unrecoverable failure during the primary OS installation.