The first public appearance was in the CES computer show at Las Vegas in 1985, with the so-called "Lorraine" prototype. In 1984, Commodore developed the Autoconfig protocol and the Zorro expansion bus for its Amiga line of expandable computers. However, this agnostic approach increased interfacing complexity and required support chips on every device which in the 1980s was expensive to do, and apart from its use in Apple Macintoshes and NeXT machines, the technology was not widely adopted. The specification was sufficiently intelligent that it could work with both big endian and little endian computer platforms that had previously been mutually incompatible. In 1984, the NuBus architecture was developed by the Massachusetts Institute of Technology (MIT) as a platform agnostic peripheral interface that fully automated device configuration. The ROM extensions abstracted any hardware differences and offered standard APIs as specified by ASCII Corporation.Ī NuBus expansion card without jumpers or DIP switches
On the software side, the drivers and extensions were supplied in the card's own ROM, thus requiring no disks or any kind of user intervention to configure the software.
No jumpers or any manual configuration was required, and the independent address space for each slot allowed very cheap and commonplace chips to be used, alongside cheap glue logic. The MSX system, released in 1983, was designed to be plug and play from the ground up, and achieved this by a system of slots and subslots, where each had its own virtual address space, thus eliminating device addressing conflicts in its very source. Later on this configuration process was automated: Plug and Play. Rather than cutting and soldering connections, configuration was accomplished by jumpers or DIP switches. Some early microcomputer peripheral devices required the end user physically to cut some wires and solder together others in order to make configuration changes such changes were intended to be largely permanent for the life of the hardware.Īs computers became more accessible to the general public, the need developed for more frequent changes to be made by computer users unskilled with using soldering irons. Plug and play devices can have resources allocated at boot-time only, or may be hotplug systems such as USB and IEEE 1394 (FireWire).
By 1995, Microsoft Windows included a comprehensive method of enumerating hardware at boot time and allocating resources, which was called the "Plug and Play" standard.
Initially all expansion cards for the IBM PC required physical selection of I/O configuration on the board with jumper straps or DIP switches, but increasingly ISA bus devices were arranged for software configuration. Early systems for software configuration of devices included the MSX standard, NuBus, Amiga Autoconfig, and IBM Microchannel. As microprocessors made mass-market computers affordable, software configuration of I/O devices was advantageous to allow installation by non-specialist users. Since fixed assignments made expansion of a system difficult, devices used several manual methods for assigning addresses and other resources, such as hard-wired jumpers, pins that could be connected with wire or removable straps, or switches that could be set for particular addresses.
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. Some computers provided unique combinations of these resources to each slot of a motherboard or backplane. Įxpansion 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. The term "plug and play" has since been expanded to a wide variety of applications to which the same lack of user setup applies. In computing, a plug and play ( PnP) 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. For the startup accelerator, see Plug and Play Tech Center.
For plug and play game or system, see Handheld TV game. For the legacy extension specifications developed by Intel and Microsoft, see Legacy Plug and Play.