Internal Modem Problems
Com Port Shifts |
IRQ Conflicts |
Com Port Conflict
Introduction
Internal modems were prone to several problems under DOS/Windows 3.1.
Most of these should be solved by Windows 95 (at least if
using Plug-n-Play devices). Most of these involve settings on the modem
and/or conflicts with other devices.
Background
There are two main settings that affect modems.
First, there are communication (com) ports. Com ports are a way of
seperating serial communication devices (modems, mice, etc.). Most modern
computers support eight com ports, but usually you don't see anything
beyond four. Typically, the first two (com 1 and com 2) are used for
external devices (such as a mouse and/or external modem). Com 3 and com 4
are typically used by internal devices.
Each com port is assigned an address in the computer's memory (a port
address). This memory location is how the computer and the device exchange
information.
Second, there are Interupt ReQuest lines. These are like channels to the
Central Processing Unit (CPU). Every input/output device (be it modem,
printer, hard drive, etc.) has it's own IRQ. It is the way the computer
knows what device is talking to it.
Below is a table of the Com ports, default port address, and default IRQ
address:
| Com Port |
Port Address |
IRQ |
| COM 1 |
03F8 |
4 |
| COM 2 |
02F8 |
3 |
| COM 3 |
03E8 |
4 |
| COM 4 |
02E8 |
3 |
Com Port Shifts
What's Happening
Modem manufacturers have something of a dilemma. Com 1 is usually a mouse.
Com 2 is usually already set up on the computer. There's a problem using
com 3 with the mouse on com 1. So set it for com 4 and you avoid all the
problems, right? Wrong.
DOS hates a vacuum as much as nature. Usually coms 1 and 2 are enabled on
the computer. If you try putting something on com 4, DOS slides it down to
com 3 to fill that empty slot. Thus you have a device on com 3 using com
4's port address.
This setup is then passed on to Windows when it starts. For some comm
programs, this isn't a problem (mostly commercial comm programs and some
on-line clients like CompuServe and Prodigy). These programs access the
modem directly via the port address and not the comm port. However,
programs that rely on the comm port or Windows' communications routines
(like Trumpet Winsock or the Shiva Dialer) can be affected by it.
Windows can respond to a com port shift in a couple ways:
- Com 3 is given com 4's address and com 4 will be set as
inactive.
- Both com 3 and com 4 are given com 4's address.
Symptoms
A myriad of problems can result from a com port shift. Some of the more
common are
- Unable to initialize the modem
- Can't find or communicate with the modem
- Unable to log on
- Disconnects (at random or specific points--like sending mail)
- "Comm overrun" messages in Trumpet Winsock
- Slowness in modem transfers
Diagnosing
To determine if the source of the problem is a com port shift, exit
completely out of Windows. Go to MSD. In MSD go to Ports. Check the
port addresses given on the Ports screen to the settings in
the table at the begining of this page. Typically for
a com port shift, you will see com 3 with the port address of com 4
(02E8).
If there is a com port shift in MSD, exit out of MSD and go back to
Windows. Go to the Main program group and open the Control Panels. Double
click on the Ports control panel. In there double click on Com3 and then
click on Advanced. Check the port address, if it says 02E8,
then there's also a com port shift in Windows.
Fixing the Problem
- In Windows, go to File--Run.
- For the command line, enter "sysedit" and click on Ok.
- Go to the System.ini
- Go to Search--Find.
- Type in "com3".
- If you're lucky it highlighted a line. Somewhere in that section
change the line "com3IRQ" to read "com3RQ=-1". This will disable
com 3 and force Windows to use the real com port (com 4) for the
modem.
- If the search fails to pull up anything, then the line will needed
to be added by hand at the end of the [386Enh] section of the
system.ini.
IRQ Conflict
What's Happening
As seen in the table at the begining of this page,
there are just two IRQs assigned to the first four com ports by default.
This was a result of the limited number of IRQs and the belief that no
more than two devices would be used at the same time.
Now let's take a side trip in to the world of mice. There are two types
of mice used on PCs:
- Serial mice use a com port and (typically) the default IRQ used on
that port. These are the most common type of mice used on
computers.
- Bus mice don't use a com port and use IRQ12. These are much less
common but can be found on some computers made by Gateway 2000,
Packard Bell and IBM.
Now, if a modem is installed on com 3, a serial mouse is on com 1 and both
are using the default IRQ, there's going to be a problem. The default IRQ
for both com 1 and com 3 is IRQ3. This would be fine if only one device is
being used at one time, but you'd be hard pressed to find a Windows user
who never uses the mouse. Thus when an attempt is made to dial in,
there'll be an IRQ conflict--two devices trying to talk to the CPU at the
same time using the same "channel". The computer is going to get confused
and strange, bad things will result.
Symptoms
- Modem handshaking but not connecting
- Modem refuses to dial
- Mouse disappears/stops responding
- Computer completely locks up
Diagnosing
IRQ conflicts can be a trouble to determine for sure. The fastest, most
tangible way is to go to the Main program group, to Control Panels, to
Ports, double click on Com3 and click on Advanced. If the IRQ is
set to 4, then most likely it is an IRQ conflict.
Fixing the Problem
There's not much we can do to fix this problem. The modem's IRQ will need
to be changed to something that isn't being used. That would require
setting jumper switches on the modem or running a modem configuration
utility (for Plug-n-Play modems). Both of these are well beyond the scope
of StarNet support and introduce liability questions.
Note: In the Ports control panel,
there is a setting for the IRQ. However, changing this won't work. That
will only change what Windows thinks the IRQ is; it will not change the
setting on the modem at all.
Com Port Conflict
What's Happening
A com port conflict is something like a cross between a com port shift and
an IRQ conflict, only it's not.
As stated earlier, a number of computer come with com 2 enabled on the
motherboard or I/O card (sometimes built into another card like the hard
drive controller). If an internal modem is installed on com 2, you have
two devices believing they are the same com port at the same time.
It's sort of like two thirsty hamsters at a single water tube. The water
comes down the stream but the two hamsters are pushing each other out of
the way to get at the water. Sometimes one gets a drink and sometimes the
other one gets it.
The information sent to the built-in com 2 (not-the-modem) is lost. As you
might guess, this will cause problems.
Symptoms
- Modem doesn't dial
- Modem handshaking but not connecting
- "Comm overrun" messages in Trumpet Winsock
- Disconnects
- Slowness
- Computer completely locks up
Diagnosing
There's no direct way to tell that the problem is a com port conflict.
However there are a couple indirect ways:
- Echo the modem. If it echoes but with a delay of a few seconds, the
cause may be a com port conflict.
- If you go into MSD and the UART for com 2 is listed as an 8250,
it's most likely a com port conflict.
(Note: some of the older Supra modems
will report a UART of 8250 since they used a proprietary chip based
on the 8250.)
Fixing the Problem
Again, there's not much we can do to fix the problem. Either the modem
needs to be set to a different com port or the com port on the I/O card
needs to be disabled. Both of these solutions are well beyond the scope of
StarNet's support.