Modem Hints

There's many things that can affect your modem speeds and from the condition of your phone line, to the -S- register settings in the modem itself. Some of the simplest things can make a difference, so I'll try to touch on what I feel can help the most.

Problem -- I keep getting disconnected...

  • Usually, this is because of "dirty" or "noisy" phone lines. There is a couple of things I can suggest that may help with this Call the phone company and tell them that you are having trouble sending faxes.  They seem to understand what a fax is better than what a modem is.  Usually a tech will come out and test the lines. They also seem to be more responsive if you have a second line, especially if you tell them that if they cannot get it cleaned up, you won't need the line anymore. 

  •  
  • There is a setting for one of the -S- registers in your modem that may help significantly.  The particular register that we are interested in is S25.  You will need to be in a terminal program of some sort where you can type in AT and it will respond back with OK.  When you get to this point, you will type in ATS25=20 and the hit enter.  You will want to type in AT&W0 and then hit enter after this.  What we just did was to bump up register S25 from its default of 5 milliseconds to 20 milliseconds, and then save it to the primary stored modem profile.  Register S25 is the register that says how long of a change in -carrier- to detect that the connection has been lost.  By bumping up this value, we hope to overcome some of the fluctuations that you may be experiencing with a dirty phone line.

  •  
  • Make sure that you have the port speed set correctly for your particular modem.  A 2400 modem should be set to 2400, a 9600 modem should be set to 9600, a 14,400 modem should be set to 19200, and a 28,800 modem should be set to 38400.  What we are talking about here is the speed that the computer talks to the modem at.
  • Make sure that register S30 is set to a value of 0.  S30 is (at least on our Supras) the disconnect activity timer. Setting this value to 0 will disable the timer.
Problem --Windows won't recognize my modem...

We usually see this in situations where a modem has been installed at a later time, or when one is set up incorrectly.  There is only one solution to this particular problem, and it is to get the hardware and software set up correctly.

Without going into to much detail, we will say that no two pieces of hardware can share the same IRQ (hardware interrupt) at the same time.  What I have seen in most cases is that a modem has been installed on Com port 3 or 4, and is using the same interrupt as com port 1 or 2.  In DOS, we can sometimes get away with this, since we are not multitasking and don't have Windows messing with things.  I cannot say it enough, but EACH PIECE OF HARDWARE MUST HAVE ITS OWN IRQ!!!, to do anything different is asking for trouble, and probably got you in the situation that you are in now! 

There are a couple of solutions, but I will say up front that configuring hardware is not for the faint of heart, and is sometimes best left to professionals if you are not sure what you are doing.

Solution 1...  Disable the Com Port on the I/O card or motherboard, probably Com 2, and set up the modem on Com 2.

Solution 2...  Set the modem for Com 3 and IRQ 2 or 5.  This is best if you don't know how to disable the extra port on the com card, or just don't want to mess with the other things.  Now, with that said, there's a couple of things that you will need to think about.  First, your sound card (if you have one) may already be on IRQ 5, and we cannot have two cards wanting the same IRQ, so we need to use a different IRQ. 
Secondly, we need to go to the PORTS settings in the control panel of Windows, and tell it in the advanced settings area, which IRQ we are using.

Problem --My modem won't hang up...

There are several things that can cause this type of behavior.
Usually it once again is a matter of -S- register settings.
Before I get into the register settings, I will recommend that you make sure that your modem is set for &C1 and &D2.  These two settings play the biggest role in how the modem relates to handling the carrier.  Once you are sure of that, then you should start checking the values in certain -S- registers. 

The following examples are may or may not be specific to the modems that I have here, so you'll want to check your modem manual to be sure.

S2 is usually the ascii value for the plus character.  This ascii value is 43.  If S2 is set to anything higher that 127, the modem will not switch into command mode to hang up. 

S10 is usually the delay from Lost Carrier to hang up- value. The default for our Supras is 14, and the value is in tenths of a second.  So our true value is 1.4 seconds.  You might play with this register setting if the previous two suggestions do not have any effect.

My connect speed always says 2400, though I have a fast modem...

This is because some other piece of software has installed its own comm driver in Windows, instead of Window's default comm driver.  Look in your SYSTEM.INI file in the windows directory, and look for a line that says comm.drv= ...  If it says anything other than comm.drv=comm.drv, then some program has changed it.

If things are working well for you, other than the fact that it's reporting an incorrect speed, then maybe you should leave well enough alone.  If you think that this may be causing other problems as well, the comment out the current comm.drv line by putting a semi-colon in front of it and add a line like I have above.

Call Waiting... The instant way to get knocked off the system.  If you have call waiting, you will probably find that you are getting knocked off line, or that your transfers are getting messed up, or some other funny things are happening. This is basically because when someone tries to call you, call waiting transmits a tone on the line to let you know that you have a call waiting. This tone, click, or whatever, is not understood by the modem and the dialer software that you are using, so it basically freaks out, and tries to re-establish the connection or just gives up.

Handling call waiting is usually a simple matter of adding to your dialing prefix or to the number itself. Some dialers allow you to add characters to the dialing prefix, for example, if you had to dial 9 to get an outside line, you would probably have a prefix of “9,” which basically means, dial 9 and pause for a few seconds until we get a dial tone. For call waiting, we would want a prefix of “*70,,” (without the quote characters, of course). This tells the modem to dial a *70 and then pause for a few seconds until we get the dial tone back.

For dialers that don't take a prefix (Trumpet Winsock falls into this category), it's as simple as adding the prefix to the number itself. For example, if we normally dial 564-0101, we would change it to be    *70,,564-0101    (hint, to make the change in Trumpet Winsock, click on dialer, then click on the 1.setup.cmd at the bottom of the dialer menu).

Finally, an explanation of the *70 command. Basically what it does is to disable call waiting for the current call, and when you hang up, call waiting is restored.