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.
==========================================================================
