You are here

PC Musician's Guide To Plug & Play

Exploration By Martin Walker
Published March 1997

A system that knows when you've plugged in a new piece of kit, and which sets it up automatically, sounds like a big step forward for PC owners. Unfortunately, that big step is into a chasm for many people. Martin Walker lays down some planks to get you safely across.

Fundamentally, Plug and Play is a radical step by Intel towards removing the sometimes horrendous problems that PC owners may have when they attempt to install hardware expansion cards. Since there are only a certain number of system choices available to be shared between all currently installed cards, the situation often arises that a new card needs to use a resource that is already in use by a previously‑installed one. In this case, Plug and Play is designed to interrogate each card for its selection of possible choices for each resource, work out an allocation that will suit all the cards present, set this up automatically, and then let you get on with the more interesting work of writing music. This is the theory. In the real world nothing is perfect, and Plug and Play is, sadly, not infallible. To understand what will work, what falls over, and what needs doing in the time‑honoured craftperson's way (by hand), here is the essential SOS musician's guide to PnP.

Overview

If Microsoft could cause a mysterious fire that destroyed all pre‑PnP computers, and all pre‑PnP hardware cards, we'd probably all be singing the praises of this new development loudly and in at least four‑part harmony. As it is, the problems that occur in practice are mostly caused by the all‑encompassing scope of PnP. Contrary to what many people think, it works with older PCs when you're installing new PnP‑compatible soundcards, as well as with old cards installed into new PnP computers. This is because it is both a hardware and software specification. PnP cards are free from switches and jumpers, and are configured either by the PnP BIOS in a new machine, or via supplied programs with a pre PnP machine.

If Microsoft could cause a mysterious fire that destroyed all pre‑PnP computers, and all pre‑PnP hardware cards, we would probably all be singing the praises of this new development loudly and in at least four‑part harmony.

There are basically three components to the system, and the first of these is PnP Hardware. This comprises not only the expansion cards, but also parts of the motherboard, since it is now commonplace for items such as hard disk controllers to be an integral part of this. The second part of PnP is the BIOS. This is what most people consider to be the essence of the system, since it can initialise any PnP devices it finds when you power up your computer, during the POST (Power On Self Test). The sequence of events is as follows: firstly, any configurable devices on both the motherboard and any expansion cards are disabled, and then all PnP devices in both the PCI and ISA slots on the motherboard are identified. From this, an initial map of the IRQ, DMA and I/O resources that will be required is compiled. Then the I/O devices are enabled, followed by the configurable (PnP) devices, by being informed about which resources have been allocated to them. Finally, the bootstrap (loading) program starts up, and control is transferred to Windows 95. The final part of PnP is contained in Windows 95, and this has the responsibility of informing users of any conflicts that cannot be resolved by the BIOS component. You can then re‑configure any problem legacy (pre‑PnP) cards, either by running on‑screen programs provided by their manufacturer, or by turning the system off and then ferreting about inside to alter jumpers (tiny switches) on the expansion card itself. The system is then re‑booted, causing the whole process to begin again — this time, presumably, with no conflicts.

Bios Problems

The three components I've just mentioned should all work together seamlessly, but there are ways in which things have gone wrong. As Creative Labs mentioned in their interview with Paul White in the December 1996 issue of SOS, early versions of the PnP BIOS do not work with Windows 95. The problem occurred because Windows 95 was not finalised until version 1.0a of the BIOS. If you have version 1.0, you'll have problems, since although the BIOS configures the card this information is not correctly reported to Windows 95. All machines bought after Windows 95 came out will work fine, but if you have a version 1.0 BIOS that is causing problems, there are four possible solutions.

  • As a temporary measure, it is possible to set up Windows 95 with the 'setup /P i' option, which will turn off Plug and Play. If you later get a BIOS upgrade, run setup again using 'setup /P j' instead. The case and space in both these commands are significant, by the way!
  • The second solution (and the best for most modern machines) is to get a Flash BIOS upgrade. This is simply a binary file and small program that loads the file into the Flash ROM (Read Only Memory), thus giving you the latest BIOS code. Latest versions can be found on the manufacturer's web site, but do follow the instructions carefully. If anything happens while the upgrade is in progress, you may end up with a machine that will not boot up at all!
  • The third solution is to replace the BIOS chip on the motherboard itself — again, check with your supplier first to make sure that the new chip is compatible with your motherboard.
  • The final (and most drastic and expensive) solution is to upgrade your motherboard. Don't forget that in the 18 months or so since Windows 95 came out, there have been significant advances in most areas, and you may gain significant increases in performance by choosing this route.

One other point well worth noting is that you do not need a PnP BIOS to get benefits from PnP devices, nor do you need it to install Windows 95. The PnP component of Windows 95 will happily configure things and point out conflict areas — the main advantage of the BIOS component is that it can disable conflicting hardware at an early stage in the boot‑up procedure. If you do have a bad conflict when inserting a new piece of equipment, however, the machine may lock up before Windows 95 gets anywhere near appearing on your screen.

Legacy Devices

Windows 95 is quite intelligent when it comes to installing itself on a machine that is already running Windows 3.1. It starts by looking for existing configuration files or drivers already loaded into memory, to determine what resources are currently being used. Once found, specific I/O addresses are interrogated to see that the hardware is actually present. In this way, Windows 95 builds up a picture of what resources are still available for remaining devices that can be configured automatically. In most cases, if the computer was running with no problems with Windows 3.1, Windows 95 will also set everything up with no conflicts. However, if you've been using a kludge to get two devices sharing the same interrupt (see the 'Tricks of the Trade' box), it may disable one of these drivers, and suggest that you 'resolve the conflict'.

Apart from the speed advantages of running 32‑bit drivers, getting Windows 95 driver updates for older hardware confers other benefits. Windows 3.1 used the OEMSETUP.INF file provided on each driver floppy disk to let the system know what drivers were going to be installed. With Windows 95 driver disks, a rather more sophisticated .INF file will be provided, which contains information which is equivalent to that provided automatically by PnP hardware during the BIOS interrogation. Every time you install another set of drivers for a legacy device, the appropriate INF file will be copied into the WINDOWS/INF folder. If you want to see which have been installed since Windows 95, look in Explorer with the files sorted by date (click on the 'Modified' heading). All Windows 95‑installed files will have the same date, so any others will show up easily. This information contains all of the possible settings for the hardware, and is copied into the Registry.

Installing New Peripherals

When installing peripherals, it's best to start with the essential ones. If you've just bought a new computer the system will probably already be set up for the graphics card, and in a modern machine this will almost certainly be of the PnP variety. Before you start madly inserting all your other cards, boot the machine up and pause it (using the Pause key above the cursor group) on the opening BIOS screen provided by most manufacturers, which tells you what processor, memory, disk drives and so on are connected to the system. There should be a section that shows current resources which have been automatically set up by the BIOS. On my machine, IRQ14 was being used by the hard disk controller (this is the normal setting used by almost every machine) and IRQ11 was being used by my graphics card. If you note down these settings, you at least know what is used by the 'plain vanilla' machine. Then install your cards, in order of importance to the system. For me, the next most important was my SCSI card, without which I would not have access to many other facilities. After making sure (since this was a legacy card) that any jumper settings for IRQs and DMAs did not conflict with any other legacy settings, I installed the card and rebooted. In this situation, assuming all is well, Windows 95 should appear, enabling you to install the appropriate drivers, which will normally be provided either on CD‑ROM or floppy disk. When these have finished installing, the system will ask you whether you wish to restart Windows. When you reboot, your card should be operational.

With PnP devices the approach is a lot simpler: plug in your new card, switch on the computer, and the PnP part of the BIOS will detect it and thrash out a new set of resources which will be agreeable to all PnP devices now in the system, while avoiding those you have reserved for legacy devices using the BIOS setup (see the 'Reserving Your Slots' box). Then, at the appropriate point in the proceedings, it will ask for the driver disk, from which point the procedure is identical to that of legacy devices. Once the system has rebooted, it's always worthwhile to use your new device for a few minutes, rather than racing on to the next installation, because if you install everything at once and later find a problem, you won't have a clue what is causing it.

A Vision Of The Future

Although Plug and Play addresses many of the problems that can occur when you're adding hardware in the form of plug‑in circuit cards, a fundamental limitation still looms larger and larger for most people — there simply aren't enough slots (of either ISA or the newer PCI variety) to go round. Even when you have a generous four of each (and this is often not the case), by the time you've added disk controller and graphics cards, support for SCSI, soundcard, MIDI interface, fax modem and so on, you're often left struggling to fit your latest device. Even if there is space available, the choice of PCI or ISA may be determined by what slots are still available, rather than which would provide the best performance. Modern compact machines can also have difficulties fitting some full‑length cards — often there's only one slot that has no obstacle, such as a CPU heatsink/fan or swathe of cabling, in the way. Even if you surmount all these difficulties, there comes a time when it's not the slots that cause a problem, but a singular lack of resources. Simply building PCs into larger cases and supplying them with a couple of dozen slots wouldn't work, because without more IRQs, DMAs and so on you couldn't initialise all of the cards (and the total power drain might cause problems as well).

The worst problem with PnP is that it can sometimes act like a spoilt child, and, whatever you try to tell it to the contrary, it always thinks it knows best.

The long‑term solution is external — and for most people at the moment this means SCSI. Up to seven devices can be daisy‑chained on a single SCSI buss, and the only PC resources used are those of the SCSI controller (typically one IRQ). In addition, the latest SCSI devices also feature SCAM (Self‑Configuring Auto Magically), which allocates SCSI IDs without those little switches, and is part of the SCSI PnP specification. However, there is another development that looks as if it will be seen more and more in the future — the Universal Serial Bus (USB). This works in much the same way as SCSI, in that devices are daisy‑chained externally to the PC, but has many other advantages. It conforms to Plug and Play (any device newly appearing on the buss can be configured remotely) but with devices configured dynamically (no more fixed IRQ and DMA settings to worry about). It supports up to 127 devices, and can power them from its own 5V supply (no more wall warts!). Unfortunately, its data rate is only 12Mbps (mega bits per second). While this is fine for adding slow devices such as modems, printers, mice, keyboards and joysticks, and will, no doubt, allow far more flexibility on laptop computers, it's not so good for adding high‑speed storage.

For a real way forward, IEEE 1394 technology (also known as FireWire) looks far more promising. Again, it's a serial standard, but with much higher speed capability (up to 400Mbps, which translates to 50Mbytes/second). This standard is based on Apple technology, and is designed to handle AV data, using a protocol called 'isochronous', which provides 'guaranteed transfer of time‑critical data'. Using a compression system called DV (Digital Video), which has been agreed on by all major companies, and which is designed from the start to cope with both audio and video using a fixed compression rate of 5:1, IEEE 1394 produces a video signal that emerges at a constant rate, eliminating the expensive hardware currently needed to sync audio and video. The only requirement will be the IEEE 1394 I/O connection.

Apple, Compaq and Texas Instruments have all announced plans to release PCs with FireWire technology on board. Consumer audio and video gear such as camcorders and VCRs is also all set to incorporate this standard, and its high‑volume sales will allow prices to be set much lower than if the technology was used solely in computer gear. General‑purpose FireWire I/O connectors are likely to start appearing shortly in audio and video signal routing systems and, for music applications, a prime candidate is multichannel digital audio mixing. According to those in the know, it will not be long before FireWire sockets also start appearing on high‑end synthesizers and samplers (from Autumn 1997, according to the crystal ball); if this happens, we might finally start emerging with a true standard that allows computer, digital audio and video signals to have some measure of compatibility (and, we hope, much lower prices).

Incidentally, you may be wondering why the future busses are both serial — surely a parallel bus with 8, 16 or even 32 lines would be far faster? The problem with extremely high‑speed parallel busses is that, due to the inherent propagation delays (the time it takes for a signal to actually get to the other end of the cable), it can be difficult to reassemble multiple data streams in the correct order, beyond a certain speed, as they emerge from loads of different wires. With serial busses, whatever the speed of the data, as long as the data emerges uncorrupted at the other end it will always be in the correct order. Isn't technology wonderful?

Reserving Your Slots

The worst problem with PnP is that it can sometimes act like a spoilt child, and, whatever you try to tell it to the contrary, it always thinks it knows best. The beauty of the BIOS portion of PnP is that it can allocate resources to any new device as soon as it detects it, before the operating system has a chance to boot up, and shuffle any other resources used by previous cards so that no conflicts exist. Unfortunately, unless it has some way of knowing that legacy cards are also in the system, the whole machine may lock up before it ever gets to Windows 95 (whatever Windows 95 setup files are provided by the card manufacturer). The way to combat this problem is to delve into the depths of the BIOS. Most machines come with a small motherboard pamphlet detailing the BIOS features but, for a far more comprehensive overview, enter the name of your BIOS manufacturer into any search engine on the Net to find their web site, and you should then be able to download a far more extensive document. The page you need will be called something like PCI/PnP Setup/ Configuration. Here you should find a full list of IRQs and DMAs are available to PnP. If you have a legacy card set to something specific, simply make sure that you alter the option for this PnP setting to the non‑PnP/legacy option. This will then remove the option from the pool available to PnP and enable your system to boot up properly. Some BIOSs have an alternative method that allows you to select a specific range of IRQs to be available to each of the three or four PCI slots.

Tricks Of The Trade

Many people will eventually get to the point where there are simply no more resources available to add a further peripheral to the system. There are several tricks you can use before you have to give up and remove an old card from the system to make way for your new toy. The first option is to look in Device Manager for any options that claim to be using an IRQ but which you know are not doing so. Although printer ports are often claimed to use IRQ5 or IRQ7 (depending on the I/O address used), most printers do not use an interrupt at all and, despite what the system says, this IRQ may still be unused. I had this problem recently, but it proved tricky to convince the system otherwise. The solution proved rather crafty — since legacy devices are not automatically recognised by PnP, I set one of my soundcards, which still uses Windows 3.1 drivers, to IRQ5. Since the system remained blissfully unaware of this, it happily allowed the parallel port to function normally, with no reported errors.

The second option is to share system resources. Although you may have a modem and MIDI interface vying for the same IRQ, it's unlikely that you will ever need to use both these devices simultaneously. Windows 95 may grumble, but a little bit of trial and error can result in your being able to use both devices with the same interrupt setting. Much depends on the individual hardware — some inactive devices 'float' their inputs and outputs and so remain 'invisible' when not being accessed; others hold them firmly high or low, resulting in a crashed system if anything else is accessed by the same interrupt. The design of the drivers themselves can also affect things, so it can often be very much a case of 'suck it and see'. It's worth a try, nevertheless.

Terminology

  • Beep Codes: During a POST, the number of beeps and their length (short or long) can tell you which device is faulty, even if your screen remains blank. Information such as this can be found from BIOS manufacturer's web sites.
  • BIOS (Basic Input/Output System): This is the part of the operating system that handles communication between the computer and its peripherals. It is normally contained in a ROM chip on the motherboard.
  • Bootstrap: The program used by the PC to get from its initial power‑on to a running condition (origin — pulling a boot on by its own bootstraps).
  • FireWire: Apple Computer's digital I/O system, which is now being licensed to other companies to produce 1394 PC adapter cards.
  • IEEE (Institute of Electrical and Electronics Engineers): An international organisation that, among many other things, sets industry hardware standards.
  • IEEE 1394: The industry‑standard implementation of FireWire, allowing any manufacturer's products to connect to any other conforming to the same spec.
  • Legacy: The rather patronising Microsoft term for any device that is pre‑Plug and Play.
  • POST (Power On Self Test): A series of tests run by the BIOS every time the computer is switched on. Basic items such as memory and keyboard are checked, and a beep issued from the PC speaker if anything untoward is discovered (see Beep Codes).
  • USB (Universal Serial bus): A new technology which allows 127 low‑speed devices to plug externally into PCs, in a daisy‑chain fashion, and take their power from the PC.

Don't Panic!

The worst that can happen when you plug in a new card is that the system crashes completely, leaving you with a blank screen and no operating system loaded at all. if this happens to you, your up‑to‑date list of resources used by cards in the system will come in extremely handy.

The most likely cause of this sort of problem is that the new card is currently using an IRQ already used by something else in the system. This normally only happens with legacy devices. When two sets of electronics both try to use the same interrupt, it is hardly surprising that everything can grind to a halt. The solution is to find which IRQ on your new card conflicts and attempt to change to one that is currently unused by the system. If this proves impossible, you may have to start looking for another legacy device whose options allow the conflicting IRQ to be changed. Check that the system still works with these new settings, and then try re‑installing your new card now that it has a free IRQ setting at its disposal. These are exactly the sort of problems that PnP was designed to prevent — it should only ever be legacy devices that cause these situations.

Further Bios Information

The specification for the BIOS component of PnP was jointly developed by Compaq, Intel, and Phoenix Technologies, but computers often come with scant information on the dozens of options available in most BIOS setup screens. For further details, most BIOS manufacturers keep up‑to‑date documents on their web sites, but these sites tend to be incredibly busy. When trying to download details of my new machine, I gave up on several occasions because a 14Kb zipped file was still waiting to finish downloading after 20 minutes. In the end I sneaked off for 10 minutes early on Christmas morning on the grounds that the 'net would be incredibly quiet. Don't you believe it — there are plenty of non‑festive surfers out there! The following web sites are for the most popular BIOS manufacturers: