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:

  1. Com 3 is given com 4's address and com 4 will be set as inactive.
  2. 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


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

  1. In Windows, go to File--Run.
  2. For the command line, enter "sysedit" and click on Ok.
  3. Go to the System.ini
  4. Go to Search--Find.
  5. Type in "com3".
  6. 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.
  7. 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:

  1. 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.
  2. 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


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


Diagnosing

There's no direct way to tell that the problem is a com port conflict. However there are a couple indirect ways:
  1. Echo the modem. If it echoes but with a delay of a few seconds, the cause may be a com port conflict.
  2. 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.


Back to the Modem page