TECHNICAL BULLETIN #89 - Rev 1.10 (1/13/97)
==============================================================================
TITLE : Resolving Common IRQ And BPA Conflicts
PRODUCT : PROCOMM PLUS for Windows All Versions
==============================================================================
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. With most Plug & Play modems and PCMCIA
cards you can change the IRQ and BPA through special software from your modem
manufacture. Depending on the modem and the computer you may need to disable
the Plug & Play features of your modem and set it up manually. This is
available in most Plug & Play modems.
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 |
|-------------------------------------|
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
1. Open your Windows Control Panel group box by clicking on the Windows Start
button then select Settings | Control Panel.
2. Double click on the System icon.
3. Click on the Device Manager tab at the top.
4. Double click on the Ports (COM & LPT).
5. This will now list the COM ports Windows has setup on your system.
If there is a yellow or red flag by the COM port Windows has determined
the device is disabled or there is a conflict with another device.
6. Double click the COM port you wish to review.
7. Click the Resources tab at the top.
8. This will tell you what the current COM port is configured to. Also in the
Conflicting device list at the bottom it will tell you if Windows is
detecting any conflicts with any other devices in Windows.
9. Also you will note the Use automatic settings check box. Unchecking this
box will allow you to change the IRQ settings for the current COM port by
by changing the Basic configuration # in the Settings based on field.
Note: If you have any questions about Windows and it's options you can press
the F1 key and it will give you information about the current selected option.
PLUG & PLAY AND PCMCIA MODEMS.
Most modems of these type have software drivers that will tell you the current
configuration of the modem. They will also allow you to change the IRQ and COM
ports through software. These modem are not always listed in Windows the
same way as previous conventional modems. In fact they may not be listed at all
in the COM & LPT ports section in the Device Manager (step 4 above). One way
to view the settings a Plug & Play or PCMCIA modem is using is in the following
steps. This will only allow you to view the settings not change them.
1. Open your Windows Control Panel group box by clicking on the Windows Start
button then select Settings | Control Panel.
2. Double click on the System icon.
3. Click on the Device Manager tab at the top.
4. Double click on the Computer at the top of the list.
5. To view the IRQs select Interrupt request.
6. To view the BPAs select Input/output.
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.
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 DATASTORM Forum on
CompuServe, and from the Quarterdeck BBS. Log on to either system and download
the file COMPRT.EXE from the General Information 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) 1997 Quarterdeck All rights reserved.
==========================================================================
|