Modem Strings
The right modem string can mean the difference between connecting/staying
connected and sitting there staring at a window saying "Unable to
connect"/"You have been disconnected". Most people treat initialization
strings as magical incantations that are summond from unknown dimensions.
In actuality, they can be fairly easy to create - if you know the commands
used by the modem.
Modem Commands
Before going any further, we should go over what modem commands actually
are in more detail. Putting it simply, they are instructions that tell the
modem to do something a specific way.
The most basic command is AT, which is the ATtention command. It
tells the modem that the rest of the characters on the line are supposed
to be additional commands.
Take the following string for example:
AT DT 9184700
The AT gets the modem's attention. The D tells the modem to
dial. The T means the modem should dial using tones (instead of
pulse--from the days of old rotary phones). The 9184700 is the
number the modem is supposed to dial.
All these commands are pretty simple and straight-forward, right? And
they were, up to when the fastest modems were 2400 baud modems. At that
point almost all the modems used the same commands (called the "command
set") as the Hayes SmartModem 300. these modems stated that they were
"Hayes-compatible". Thus if a modem says it's Hayes-compatible, all it
means is that that modem's 2400 baud commands are the same as any generic
2400 baud modem. Unfortunately, that's a minor portion of the commands
used by modems today; thus that phase doesn't mean anything.
Commands and More Commands
Even before 9600 modems, modem designers started to run out of alphabet
for commands and thus needed to expand the command set. Certain characters
(such as "&", "*" and "%") were combined with letters to make new
commands. With few exceptions, these commands stayed universal as well.
Then came the 9600 baud modems, quickly followed by the 14.4s. As the
number of features grew, so did the number of new commands. On top of
this, modem manufacturers increased one-upmanship with everyone trying to
do something new, better or faster. As a result, whole new sets of
commands were born without one becoming a standard. And the process
continues right up through today's 56K modems.
Mr. Chips
On the plus side, despite there being a seemingly endless number of modem
manufacturers, there are only a handful of companies that produce the
microchips used on modems. Of these Rockwell and Texas Instruments
account for 70-80% of the chips used in modems. This situation helps in
determining an initialization string in that the commands used by the
mode mare contained on those chips. (The modem manufacturer can change the
command set, but most don't.) Most of the modems on the market use
Rockwell chips. Texas Instruments chips are used by USRobotics (the
largest modem manufaturer in the world) and USR clones.
Building a String
The first thing is to get into a program that allows you to send commands
to the modem and see the responses.
- Windows 3.1
- In the Accessories program group should be Terminal. Double click
on it and go to Settings and down to Communications. In the lower
right-hand corner of the window that comes up, set the Connector
to the com port the modem is using. Then click on Ok.
- Windows 95
- Under Start--Programs--Accessories should be
HyperTerminal; click on that. In the HyperTerminal window is the
icon HyperTerm; double click on it. Go ahead and set up a
connection to StarNet. Once done, click on Dial. Cancel the
dial.
- Macintosh
- You'll need to use some third-party communications program,
assuming one is installed.
Looking for Mr. Chips
You can determine which chipset the modem has with a few simple commands.
Type in ATI6 and hit Enter on the keyboard. If the line that comes
back with a string of 8-10 characters starting with RC, then the
modem is using a Rockwell chipset. If you type in ATI3 and it comes
back with USRobotics, USR, or TI, then it's a Texas
Instruments chipset.
Rockwell Chipset Modem Strings
If the modem has a Rockwell chipset, you can create a string by comparing
what the modem uses by default vs. what things need to be.
To see what the modem is using, type in AT&V and hit Enter.
That will print out a long list of data. There should be a section titled
"Stored Profile 0". Underneath that will be a list of commands the modem
uses when given the &F command (sets the modem to factory
default settings). In that list, you want to compare the command settings
given against the following:
E1 Q0 V1 Y0 X4 &C1 &D2 &K3 &Q5
(Note: the &Q command can mean different things to different modems,
so a particular Rockwell chipset modem may not support &Q5.)
Make note of where the modem's default settings differ from the above.
Once all the commands above have been compared, the string would be
&F plus any of the above commands that differed from the
modem's settings.
Now you've created an intialization string.
TI Chipset Modem Strings
These modems are a bit harder to get the information on, but not much so.
Type in AT&F and then enter ATI4. The first line should
say something about the fax/modem settings. Beneath that should be a
listing of the modem commands currently used by the modem. Since the
&F command was given before ATI4, it's displaying the commands set by
the &F command. Compare the following commands to the ones in the
list below and note any differences:
E1 V1 X4 &A3 &B1 &C1 &D2 &H1 &M4 &R2
Once all the commands have been checked, the string would &F
followed by any of the commands which differed from what the modem
reported.
Now you're created an initialization string.