page_title: Plug and play
section_title: Legacy Plug and Play
hierarchical_section_title: Plug and play / Legacy Plug and Play
caption_attribution_description: English: Kouwell KW-524J - 8-bit PC ISA interface card - 4 port - 2 serial - 2 parallel, from a 80386 PC I obtained for free
context_page_description: In computing, a plug and play device or computer bus is one with a specification that facilitates the discovery of a hardware component in a system without the need for physical device configuration or user intervention in resolving resource conflicts. The term "plug and play" has since been expanded to a wide variety of applications to which the same lack of user setup applies.
  Expansion devices are controlled and exchange data with the host system through defined memory or I/O space port addresses, direct memory access channels, interrupt request lines and other mechanisms, which must be uniquely associated with a particular device to operate. Some computers provided unique combinations of these resources to each slot of a motherboard or backplane. Other designs provided all resources to all slots, and each peripheral device had its own address decoding for the registers or memory blocks it needed to communicate with the host system.
context_section_description: In 1995, Microsoft released Windows 95, which tried to automate device detection and configuration as much as possible, but could still fall back to manual settings if necessary. During the initial install process of Windows 95, it would attempt to automatically detect all devices installed in the system. Since full auto-detection of everything was a new process without full industry support, the detection process constantly wrote to a progress tracking log file during the detection process. In the event that device probing would fail and the system would freeze, the end-user could reboot the computer, restart the detection process, and the installer would use the tracking log to skip past the point that caused the previous freeze. 
  At the time, there could be a mix of devices in a system, some capable of automatic configuration, and some still using fully manual settings via jumpers and DIP switches. The old world of DOS still lurked underneath Windows 95, and systems could be configured to load devices three different ways:
  through Windows 95 device manager drivers only
  using DOS drivers loaded in the CONFIG.SYS and AUTOEXEC.BAT configuration files
  using both DOS drivers and Windows 95 device manager drivers together
  Microsoft could not assert full control over all device settings, so configuration files could include a mix of driver entries inserted by the Windows 95 automatic configuration process, and could also include driver entries inserted or modified manually by the computer users themselves. The Windows 95 Device Manager also could offer users a choice of several semi-automatic configurations to try to free up resources for devices that still needed manual configuration.
  Also, although some later ISA devices were capable of automatic configuration, it was common for PC ISA expansion cards to limit themselves to a very small number of choices for interrupt request lines. For example, a network interface might limit itself to only interrupts 3, 7, and 10, while a sound card might limit itself to interrupts 5, 7, and 12. This results in few configuration choices if some of those interrupts are already used by some other device.
  The hardware of PC computers additionally limited device expansion options because interrupts could not be shared, and some multifunction expansion cards would use multiple interrupts for different card functions, such as a dual-port serial card requiring a separate interrupt for each serial port.
  Because of this complex operating environment, the autodetection process sometimes produced incorrect results, especially in systems with large numbers of expansion devices.  This led to device conflicts within Windows 95, resulting in devices which were supposed to be fully self-configuring failing to work. The unreliability of the device installation process led to Plug and Play being sometimes referred to as Plug and Pray.
  Until approximately 2000, PC computers could still be purchased with a mix of ISA and PCI slots, so it was still possible that manual ISA device configuration might be necessary. But with successive releases of new operating systems like Windows 2000 and Windows XP, Microsoft had sufficient clout to say that drivers would no longer be provided for older devices that did not support auto-detection. In some cases, the user was forced to purchase new expansion devices or a whole new system to support the next operating system release.
caption: An example of an ISA interface card with extremely limited interrupt selection options, a common problem on PC ISA interfaces.
  Kouwell KW-524J dual serial, dual parallel port, 8-bit ISA, manufactured in 1992:
  * Serial 1: IRQ 3/4/9
  * Serial 2: IRQ 3/4/9
  * Parallel 1: IRQ 5/7
  * Parallel 2: IRQ 5/7
  (There is no technical reason why 3,4,5,7,9 cannot all be selectable choices for each port.)
exif: {"Image Make": "Canon", "Image Model": "Canon PowerShot A640", "Image Orientation": "Horizontal (normal)", "Image XResolution": "72", "Image YResolution": "72", "Image ResolutionUnit": "Pixels/Inch", "Image DateTime": "2011:05:21 22:34:49", "Image YCbCrPositioning": "Centered", "Image ExifOffset": "186", "Thumbnail Compression": "JPEG (old-style)", "Thumbnail XResolution": "180", "Thumbnail YResolution": "180", "Thumbnail ResolutionUnit": "Pixels/Inch", "Thumbnail JPEGInterchangeFormat": "3224", "Thumbnail JPEGInterchangeFormatLength": "6484", "EXIF ExposureTime": "1/8", "EXIF FNumber": "14/5", "EXIF ExifVersion": "0220", "EXIF DateTimeOriginal": "2011:05:21 22:24:08", "EXIF DateTimeDigitized": "2011:05:21 22:24:08", "EXIF ComponentsConfiguration": "YCbCr", "EXIF CompressedBitsPerPixel": "5", "EXIF ShutterSpeedValue": "3", "EXIF ApertureValue": "95/32", "EXIF ExposureBiasValue": "0", "EXIF MaxApertureValue": "95/32", "EXIF MeteringMode": "Pattern", "EXIF Flash": "Flash did not fire, compulsory flash mode", "EXIF FocalLength": "73/10", "EXIF FlashPixVersion": "0100", "EXIF ColorSpace": "sRGB", "EXIF ExifImageWidth": "3144", "EXIF ExifImageLength": "1920", "Interoperability InteroperabilityIndex": "R98", "Interoperability InteroperabilityVersion": "[48, 49, 48, 48]", "Interoperability RelatedImageWidth": "3648", "Interoperability RelatedImageLength": "2736", "EXIF InteroperabilityOffset": "3076", "EXIF FocalPlaneXResolution": "3648000/287", "EXIF FocalPlaneYResolution": "547200/43", "EXIF FocalPlaneResolutionUnit": "2", "EXIF SensingMethod": "One-chip color area", "EXIF FileSource": "Digital Camera", "EXIF CustomRendered": "Normal", "EXIF ExposureMode": "Auto Exposure", "EXIF WhiteBalance": "Auto", "EXIF DigitalZoomRatio": "1", "EXIF SceneCaptureType": "Standard"}