TECHNICAL BULLETIN #90 - Rev 1.00 (7/31/96) ============================================================================== TITLE : Resolving Common IRQ And BPA Conflicts PRODUCT : PROCOMM PLUS 2.01 (DOS) ============================================================================== Are you having a hard time getting your PC, modem, and communications program to work together? Many PC communications problems result from incorrect hardware and software settings. Here's some background on common problems related to serial base port addresses (BPA) and interrupt request (IRQ) lines. SYMPTOMS You have hooked up and turned on your modem, but you aren't getting any response from it. It won't dial, or it dials out but you never see any characters appear on your terminal screen. Other communications programs may work with it, or your modem, using similar configurations, might work okay on a different computer. * Characters go out okay, never appear on terminal screen: If you have an external modem, watch the modem's "send character" and "receive character" lights (sometimes labeled as RX and TX or RD and SD). If you type characters to your modem and you see both the send and receive lights blink, but see nothing on your screen, there's a good possibility you have an IRQ setting wrong somewhere. * Characters never make it to modem: If you type and neither light blinks, and you have checked your program settings to be sure it's addressing the COM port your modem is on, then you may have a BPA setting wrong somewhere. SOLUTIONS Solving problems related to incorrect or conflicting BPA and IRQ settings generally involve two steps: adjusting your hardware by changing DIP switch settings or jumpers on your serial devices; and reconfiguring your communications software to send characters to the correct address and respond to the correct IRQ signal. Sometimes you will only need to match the software and hardware settings to each other. REQUIREMENTS To resolve hardware-related problems, you will need manuals or other documentation on your hardware devices. These include manuals for internal modems and installation sheets or manuals for any serial board you have installed in your PC. If you need to configure serial ports built into your PC's motherboard, check the manual for the motherboard. In particular, look for schematics or diagrams showing where DIP switches or jumpers are located on your device, and how to configure them to identify the device's serial port base port address and IRQ line settings. These problems fall into two broad classes, each with similar sets of symptoms: 1. Base port address problems. There are two distinct types of BPA problems: * BPA mismatch. Your COM port has one base port address and your communications program is addressing a different base port address. Symptom: Characters never reach the port. Modem lights never flash. * BPA conflict. Two COM ports or serial devices (mouse, serial printer, scanner, etc.) are configured with identical base port addresses. Symptoms: Characters never reach the port or junk characters appear when other serial device is activated. 2. IRQ settings problems. This class of problems also has two causes: * IRQ mismatch. When characters arrive at your COM port, an IRQ line is activated, but your communications program is set to respond to a different IRQ line. Symptoms: Characters are received by your modem but never appear on your screen, or junk characters appear when another serial device is activated. * IRQ conflict. Two serial devices are configured with identical IRQ settings. Symptom: Characters never appear on your program's terminal screen. DEFINITIONS AND CONCEPTS What do you mean by COM port, BPA, and IRQ? COM ports, short for COMmunications ports, are the Input/Output ports used by the computer to communicate with serial devices such as modems, plotters, mouse and other pointers, etc. IRQ, short for Interrupt ReQuest Line, is a way for the serial device to interrupt whatever the computer is doing in order to handle something important, such as an incoming character. The chip on your serial card, motherboard, or internal modem that actually translates computer information into serial data is called a UART, for Universal Asynchronous Receiver/Transmitter. PROCOMM PLUS actually communicates with the "registers", or memory locations, on this chip to send and receive characters. The "base port address" of a port is actually the segment/offset address of the first of the UART's registers. PC's normally have up to four serial ports, designated COM1, COM2, COM3 and COM4. Each of these COM ports has a unique base port address, to which characters for the COM port are sent and from which they are read. Likewise each of these COM ports is serviced by an IRQ. The normal arrangement in most (non-Microchannel) types of computers is as follows: ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º PORT ³ IRQ ³ BPA º ÇÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º COM1 ³ IRQ4 ³ Hex 03F8 º ÇÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º COM2 ³ IRQ3 ³ Hex 02F8 º ÇÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º COM3 ³ IRQ4 ³ Hex 03E8 º ÇÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄĶ º COM4 ³ IRQ3 ³ Hex 02E8 º ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍ1/4 Notice that COM ports 1 and 3 both use IRQ4. COM ports 2 and 4 both use IRQ3. In a practical sense this means that you cannot use COM1 and 3 at the same time, and you cannot use COM2 and COM4 at the same time, if you continue to have them serviced by the IRQ as listed in the standard table. You may be able to use them at the same time if you change the IRQ that services them. Thus you appear to be limited to really just two COM ports if you are to avoid IRQ conflicts resulting from the use of a single IRQ to service two COM ports. BUILT-IN COM PORTS When you first installed your new computer you were probably presented with one or more COM ports built in by the manufacturer, available for easy access on the rear of the computer as Serial Ports COM1 and COM2, (using IRQ4 for COM1 and IRQ3 for COM2, as in the table above). You can put your mouse or other pointer device on one, and your external modem on the other without conflicts, as you can see from the table above. Note: Some computers have a separate Mouse Port for a Microchannel (PS/2) mouse. If you have such a Port, attach your Microchannel mouse to it using the Microchannel Mouse Driver furnished by the Mouse manufacturer, and relax, because this type Mouse does NOT use one of the two Serial COM ports above, and does NOT use either IRQ3 or IRQ4. Such a mouse or pointer device typically uses IRQ12. The not-to-be-forgotten rule is that no two serial devices, such as modem and mouse, can use the same COM port OR the same IRQ at the same time. If you install an external modem on COM1 (IRQ4) or COM2 (IRQ3), you must also "tell" PROCOMM PLUS that the modem is on COM1 (or COM2) and PROCOMM, which knows the standard IRQ and BPA for COM1 (or COM2), has no problems. See "Configuring PCPLUS" below for instructions on this. INTERNAL MODEMS Ah, you say, but I have an "internal modem", not an "external" modem. An internal modem is more than an external modem: it is also a COM port. It has its own UART, effectively making it a serial port as well as a modem. You will set its DIP switches or jumpers to configure its COM port (base port address) and IRQ settings, just as you would with an add-on serial card. SINGLE BUILT-IN COM PORT The manufacturer may only have provided COM1, built on to your motherboard. If so, COM1 is "in use" whether you have anything attached to it or not. The COM2 slot is available for an internal modem. So you can configure your internal modem, through DIP switches or jumpers, to operate on COM2, IRQ3, BPA Address 02F8, and all is well. No conflicts. TWO BUILT-IN COM PORTS If there are two "built-in" COM ports, things are more complicated. You already have "built-in" Ports COM1 and COM2, so you must assign an internal modem to a different COM port. In the table above, note that COM1 and COM2 are "in use", whether or not anything is attached to them, because they are there and "active". Some computers offer the ability to disable a built-in COM port. If you can do that, then you may do so, and install your internal modem for that "built-in but disabled" COM port and configured to that port's standard IRQ and base port address. If you have COM1 (and IRQ4) and COM2 (and IRQ3) built-in, and can't disable one to make it available to your internal modem, you must choose another COM port number and assign another IRQ to service it. COM3 is available as your next "in sequence" COM port. Of course COM3, normally assigned to use IRQ4, will have to have a different IRQ number assigned to it, an IRQ that is available in the computer but is not being used. How do you find one? FINDING AVAILABLE IRQ'S In the normal computer there is an IRQ for almost every task. We have seen that there are two for the COM ports. There is one for your LPT1 (Printer Parallel Port 1). And there is one for LPT2 (Printer Parallel Port 2). Fortunately, most of us do not use a second printer. You can "steal" its IRQ, which is IRQ5. How do you find these IRQs and learn what they are attached to? You may have a utility such as those provided by Norton, or the MSD program furnished with Windows. These can tell you about the IRQs in your computer. In some very extreme cases you can use IRQ2 (which is cascaded to the second 8259 interrupt controller chip in some computers), though some early machines used this for the hard drive. Having found a spare IRQ (IRQ5) that is not in use, you may configure your internal modem (using the DIP switches or jumpers on the modem board) to be COM3, serviced now by IRQ5, at the standard BPA address of COM3. If you have still another serial device to configure, perhaps a second internal modem, then you will go through the whole procedure again to find another free IRQ to use for that device to avoid a conflict with the normal IRQ3 (which is assigned to COM2), UNLESS you can disable the built-in COM2. IRQ10 is often available for this fourth COM port. SETTING UP PROCOMM PLUS Now that you have configured your hardware to work without conflicts, it's time to tell PROCOMM PLUS which BPA and IRQ settings to use for each of your installed serial ports. This is only necessary in the DOS version of PROCOMM PLUS. If you only have ProComm 2.4.3, the "shareware" version, you won't be able to make these changes. In that program, you must use IRQ3 or IRQ4. As an example, we will configure PROCOMM PLUS to use COM3 with IRQ5. The same procedures apply for any COM port and IRQ setting you need to make. Here's what to do: 1. Start PROCOMM PLUS and go to the Terminal mode screen (the blank screen that appears after the initial logo). 2. Press ALT-S to open the Setup menu. 3. Select Modem Options by pressing the letter "M" or select with the arrow keys and press Enter. 4. From the next menu, select Port Options by pressing "P" or selecting with the arrow keys and press Enter. 5. In the Port Options screen, press "C" to edit the COM3 BPA and IRQ settings. 6. Press the Enter key to move the cursor from the BPA setting ("3E8"), which is correct, to the IRQ field. 7. Press "5" to change the default (IRQ4) to IRQ5, and press Enter. 8. Press the Escape key twice to back out of the setup screens to the Setup main menu. 9. Press "S" to Save your changes and exit the Setup menu. If you want PROCOMM PLUS to address your modem on COM3 automatically on startup, press ALT-P from the Terminal mode screen. Press the F3 key to select COM3, then press ALT-S to save and exit the Port setup menu. The program now will address your modem on COM3, using IRQ5, whenever you start it up. THE DOS "EQUIPMENT LIST" Earlier we deferred discussion of a few cautions about all of this that should be mentioned. When you boot your computer, DOS creates an equipment list "scratchpad" into which it enters the base port address of the COM ports. Above COM2, it may do this job unreliably or incorrectly. With the DOS version of PROCOMM PLUS, all will work normally until a user logs into the program's Host mode and shells to DOS. If DOS's "equipment list" is incorrect, a lockup occurs. If you're running PROCOMM PLUS for Windows, you may find the program can't communicate at all with its modem on COM3 or COM4. If your COM ports are installed out of numerical sequence (e.g. 1, 2, 4 with no 3, or 1, 3, 4, with no 2), DOS and Windows will just shift the higher COM ports to the left to fill up the slots in the "equipment list". The result is a mismatch between port numbers and port addresses in this list. When possible, always install COM ports in numerical sequence. If that's not practical, there are ways to fix this. COMPORTS.COM DATASTORM provides a simple fix for this problem in the form of a small executable file, available for download from the Quarterdeck BBS. Log on to and download the file COMPRT.EXE from the Utilities Library. This self-extracting archive must be dearchived by typing "COMPRT" in the directory containing the file. Then add a line in your AUTOEXEC.BAT file to run COMPORTS. COM at system boot to find and properly record the addresses of all COM ports to the "equipment list". But what if you can't get your modem to work or can't download that file for some reason? DEBUG TO THE RESCUE Another way to avoid the problem is to run a little DEBUG script at bootup which "fills in the spaces" to prevent this shift to the left for missing COM ports. In a non-Microchannel environment with standard COM port BPA addresses, create a DEBUG script named COMPORT.SCR in your root directory as a standard ASCII text file. Add the following two lines to it: E 0:0400 F8 03 F8 02 E8 03 E8 02 Q In your AUTOEXEC.BAT, add the line "DEBUG < COMPORT.SCR" (without the quotes). Make sure you have a DOS boot disk handy, since calling DEBUG.EXE from your AUTOEXEC.BAT file has unpredictable results on some computers, especially those running disk compression drivers. Note also that some Video boards make use of an IRQ or BPA that is normally assigned to COM ports, thus rendering the associated COM port unusable. Use the techniques above to work around this limitation, or contact your video board manufacturer for possible solutions. ========================================================================== To ensure that you have the latest version of this document, compare its revision number to that of the same document on any of our support sites. This technical bulletin may be copied and distributed freely as long as it is distributed in its entirety and it is not distributed for profit. Copyright (c) 1996 Quarterdeck All rights reserved. ==========================================================================