Earlier, I referred to this type of hardware resource configuration using the term legacy. This term basically refers to the fact that this type of hardware has inherited the basic physical characteristics of the original IBM AT design, and is therefore designed to be configured and installed without any intervention by the system BIOS, the installed operating system (OS), or any other software. In other words, these devices are completely hardware-configured, and are therefore locked in at whatever resources are assigned through the physical settings on the card. This is a very important consideration when selecting additional or replacement devices. For example, if choosing a replacement modem for use in a Linux system, you would want a legacy device rather than one that requires Windows for its configuration or control process.
A critical feature of any legacy device is the expansion slot that it is designed to fit. Consider for example a modem that is meant to fit an 8-bit ISA slot. A quick glance at Figure 2 will show that this modem cannot possibly be configured to use IRQ’s 10, 11, 12, 14, or 15. This is so because of the fact that those IRQ lines only connect to the 16-bit extension of the ISA slot. On the other hand, a modem that requires the use of a 16-bit ISA slot may be able to use any or all of those IRQ’s, but only if the manufacturer specifically provided for their use in the allowed configuration options.
So why did I select COM3: and IRQ5 for our sample device? In this particular instance, it was because I first determined that COM3: was not in use in the PC in question, and that the device currently using IRQ5 could be moved to IRQ11, which is currently available. Sounds simple, right? Actually, it is! Here’s how to go about it:
- Determine configuration options for the new device. This can only be done by referring to the device manufacturer’s documentation for the device. If, as an example, you are installing a parallel port card and the only IRQ options provided for on the card are IRQ5 and IRQ7, one of these IRQ’s must be freed if you wish to assign an IRQ for the card.
- Determine currently available resources. In Windows98, this can be done in the System Device Manager applet of the Windows Control Panel (see Figures 9 & 10). Click the Properties button with Computer (at the top of the device tree) highlighted. Now make sure that the Interrupt Request option on the View Resources tab is selected. You should now see the current IRQ assignments listed in numerical order. Any IRQ line that is not listed here is currently unused (unassigned) and is therefore available for use. If there is an unlisted IRQ that is also one that your new device can use, great! If not, you will now have to see about making one available by reassigning one currently in use by another device. Note that these steps apply equally to the other configurable hardware resources (DMA Channel and I/O Address) that we will discuss in future articles.
- Determine resources that can be made available. Initially, this system had its sound card assigned to IRQ5, which is the interrupt that we wish to use for the modem. This decision was made based upon the current IRQ usage by other devices and the IRQ assignments available on our new modem. The modem allows the use of IRQ’s 3, 4, 5, 7, 10, 12, and15. Let’s look at each of them in turn, referring to Figure 10 as we go.
- IRQ3 – in use by COM2:, which is currently used for a serial plotter. This resource is non-assignable on this particular motherboard due to the system BIOS; it is locked to the port if the port is enabled.
- IRQ4 – in use by COM1:, which is currently used for a digitizing tablet. This resource is non-assignable on this particular motherboard due to the system BIOS; it is locked to the port if the port is enabled.
- IRQ5 – in use by the Creative Ensoniq PCI Audio Device (sound card). This device, as a PCI device, can use any interrupt assigned to it by the system. At the time that the sound card was installed and configured, IRQ5 was free, and it was thus assigned dynamically by the system.
- IRQ7 – in use by LPT1:, which is currently used for a laser printer and a software security key (dongle). Although parallel ports do not actually require an interrupt, and will generally function properly without having an IRQ assigned, that cannot be done in this case, as the Interrupt is non-assignable on this particular motherboard due to the system BIOS; it is locked to the port if the port is enabled.
- IRQ10 – in use by the USB Host Controller, dynamically configured by the system.
- IRQ12 – in use by the PS/2-compatible pointing device (mouse). This resource is non-assignable on this particular motherboard due to the system BIOS; it is locked to the port if the port is enabled.
- IRQ15 – in use by the Secondary IDE controller, dynamically configured by the system.
What becomes apparent from all of this is that the most likely IRQ candidate for the new modem is IRQ5. So how can it be freed from its current assignment? In this particular case, what we must do is deny the PCI bus the use of that interrupt for its pool of IRQ’s. This is normally done through a system BIOS option wherein the PCI/Plug and Play preferences are set. Most motherboard BIOS’es allow us to reserve certain resources for legacy devices. Typically, the choice will be between Legacy and PCI/PnP. By setting IRQ5 to the Legacy option, it will no longer be available to the PCI controller upon reboot.
Once this is done, the system must now reconfigure the PCI device that was using that IRQ, which in this case is the Creative Ensoniq PCI Audio Device. As is shown in Figure 10, that device was re-assigned to IRQ9, which is now being shared with the Adaptec AHA-2940UW PCI SCSI Controller. The PCI chipset manages this interrupt sharing perfectly, allowing multiple PCI devices to be addressed via the same hardware interrupt. We will look at PCI device installation and configuration some more later on.
|Figure 9 – System Device Manager|
|Figure 10A – IRQ Assignments|
|Figure 10B – IRQ Assignments|
|Figure 10C – IRQ Assignments|
- Decide upon desired configuration. Now that we have decided that we can free up IRQ5 for the new modem to use, we need to select the other required resources for the device. Our modem is fairly simple and straightforward, only requiring one other hardware resource (the I/O Address) to be configured, and giving us four addresses from which to choose. Although we will go into I/O Addresses in another article, I will take a minute to touch on some basic points here.I chose COM3: for this installation for the simple reason of support expediency. It is much easier not to have to explain to a client why there doesn’t have to be a COM3: in order to have a COM4:!
It makes no real difference whether we choose COM3: or COM4: for the new modem; it will work just fine either way. What does make a difference is the software that will be used with the modem. Virtually all newer Win9x-designed applications will work with the modem regardless of the I/O Address and IRQ in use. However, there are some 16-bit applications still in use that expect only standard AT IRQ assignments for COM ports, and will not work with non-standard resources. The best thing to do in that case is to update the software if at all possible.
A couple of paragraphs ago, I mentioned the “other required resources”. You should be aware that some devices may require multiple IRQ’s, multiple I/O Addresses, a BIOS address, and one or more DMA Channel. Consider the sound card with an MPU-401 device, an IDE interface, and an SB-16 emulator. This type of card can easily use three IRQ’s, two DMA Channels, and four or more I/O addresses. Any one of these required resources can cause a conflict and thereby cause the devices involved to cease to function. As stated earlier, this can cause fatal errors in Windows upon attempted use of the device, or it even cause Windows to fail to load at all.
- Configure and install device. As we saw a little while ago, this modem is fairly easy to configure, as the manufacturer has provided good documentation regarding jumper positions and settings. A maximum of three jumpers are used to set any possible configuration for this modem, and the jumpers are all located in one header, which is clearly labeled. This is not always the case, though.I have seen cards that had completely different markings on them from those shown in the manual for the card. I have seen cards with switches when the documentation said there should be jumpers. I have seen cards where the diagrams in the documentation in no way matched the card. I have seen cards with jumper wires on the card instead of Berg headers, requiring the technician to cut the wire to “open” the jumper, and to solder a jumper wire in place if a “closed” option was required. Now I’m not telling you this to scare you! Rather, it is intended to show you that we have come a long way towards user-friendliness where card configuration is concerned. So, again I’ll repeat what I said before… If the card you purchase has poor or confusing documentation, either return it… or get some professional help with the configuration. Fortunately, most retail-packaged cards today include comparatively good documentation. The same cannot be said for many OEM-type devices, wherein the manufacturers apparently expect that these cards will only be installed by experienced technicians having extensive reference libraries at hand!
Installation of the card will vary depending upon the type of device involved. Here too it is best to follow the specific instructions shipped with your card or device. I should point out that Windows can not always do good job of detecting installed devices, either. For example, configure our sample modem as COM3: and IRQ5, and then install it into an ISA slot. Now start the PC and let Windows load up. Now, assuming no hardware resource conflicts exist, have Windows detect new hardware. Will it find a modem? Nope! Windows will find a COM port…period! You will now have to use the driver disk that shipped with the modem to configure the modem. On the other hand, once Windows has detected the COM port (or once you have manually installed it and assigned it the correct resources in Device Manager), Windows will detect a modem on the new COM port if you use the Control Panel Modems applet and allow it to look for your modem. The key here is to have the COM port properly configured first.