The Ten Cent Tour of Interrupts



Interrupts are ways for your computer's hardware to get attention any time it needs it by interrupting whatever the CPU's doing at the moment. A PC type computer has sixteen of them, but being computers, they count them from zero to fifteen. Being rude little beasties, interrupts tend to butt in on each other, so your computer needs a way to know which are more important than others. It's very easy: the lower the number, the more important.

When modems need attention, they need it fairly quickly, so they need a low number, high priority assignment. The ideal is Com 2, giving them IRQ (or, Interrupt ReQuest) 3; next best is Com 1, IRQ 4. Alas, Plug'n Play (or, as techs call it, Plug'n Pray) often interferes with this. What PnP does is rather different from what you'd expect. It assigns the IRQ numbers to the various slots on the motherboard, then forces the PnP cards in those slots to use the assigned numbers, regardless of how appropriate they are. This can often cause your modem to be on IRQ 10 or even higher. A good modem can work acceptably on IRQ 9, but no higher. In a case like this, about the only thing you can do is move the modem to a different slot on your motherboard, if there's one free it can fit. If not, you may need to swap two cards. If your modem's at one end, try the other; it might be better. Laptops are an exception here; the manufaturors can take advantage of the higher inegration to lower system overhead, leaving more time for the higher numbered, lower priority inturrupts.

You also want to be carefull of IRQ 9; many computers can't have both 9 and 2 in use. This is because the inturrupt chip only has room for eight inturrupts. Nine through fifteen are "cascaded" through two, causing confusion and possible conflicts if they're both in use.

Sometimes, you'll see a modem claiming to be on IRQ 0. This is not good. Although there is such an inturrupt, it's reserved for system use, and can't be accessed by a com port. What this means is, for one reason or another, the port isn't using an inturrupt. Instead, it's waiting for Windows to poll it, and ask if it needs attention. This might work, if you have a fast machine, and all is set up just right, but it's not reliable. Windows Me is more honest about the situation; it has the inturrupt grayed out, with no value. I like this better, because it doesn't fool people into thinking the situation's OK when it isn't. If you're having connection and/or modem trouble, and the diagnostics show this, that's part of the trouble right there. Alas, there's no easy fix for it. Uninstalling and reinstalling the modem might correct it, but probably not. You might also fix it by going into the CMOS settings, but again, probably not. Besides, that's not something to do lightly. Best to have a hardware tech check it.

Another thing to be wary of with modems is the UART. (Universal Asynchronus Receiver/Transmitter) Old, external modems needed to be plugged into a com, or serial port. The UART changes the data coming from your motherboard with all bits in parallel to the serial, one after the other form your port needs. Incoming data, of course is changed in the other direction. Older cards use an INS 8250 chip. In Windows, these can't handle data above 9600 baud. More modern cards have the NS 16550, either AN or AF chip that goes up to 115,200. Internal modems either have the right chip, or report back that they do. (They report this way because some diagnostic software expects it, and some modem software won't try to use the buffers unless it knows the port has them.) On occasion, a card will report an 8250; if so, there must be something wrong. Unless it's a very old card, it can't really have one as they don't make or use them anymore. All I can guess is that the firmware is bad, causing this improper response. Alas, you can't really trust the card once it starts doing this. In most cases, the only thing you can do is replace the card.

There are exceptions to this. The WinModem is one. As the modem's completely "software driven," you might be able to correct this by uninstalling the modem and reinstalling it, getting a new set of drivers from your install CD or floppy. I can't guarentee this, but it's worth trying. Also, the HSP (Host Signal Processor) modems have a known reporting glitch, where they report an 8250 instead of 16550. In this case, there's a software work-around built into the drivers and Windows uses the buffers just fine. Although I don't like HSP modems, I do give the developers credit for doing this.

HomeTech Support