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.
[5] As microprocessors made mass-market computers affordable, software configuration of I/O devices was advantageous to allow installation by non-specialist users.
Early systems for software configuration of devices included the MSX standard, NuBus, Amiga Autoconfig, and IBM Microchannel.
[6] 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.
[8] Some early microcomputer peripheral devices required the end user physically to cut some wires and solder together others in order to make configuration changes;[9] such changes were intended to be largely permanent for the life of the hardware.
In 1984, the NuBus architecture was developed by the Massachusetts Institute of Technology (MIT)[11] as a platform agnostic peripheral interface that fully automated device configuration.
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.
Configuration information was stored on a read-only device on each peripheral, and at boot time the host system allocated the requested resources to the installed card.
The user would install the device, turn on the computer, load the configuration information from the disk, and the hardware automatically assigned interrupts, DMA, and other needed settings.
However, the disks posed a problem if they were damaged or lost, as the only options at the time to obtain replacements were via postal mail or IBM's dial-up BBS service.
Micro Channel did not gain widespread support,[13] because IBM wanted to exclude clone manufacturers from this next-generation computing platform.
[14] 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.
Because of this complex operating environment, the autodetection process sometimes produced incorrect results, especially in systems with large numbers of expansion devices.