Modems Commands


   The standard AT command set is sometimes referred to as Hayes compatible modem commands. A modem that is Hayes compatible can use this standard Hayes command set. Don't buy a modem if it isn't Hayes compatible. Almost all modems sold today support these AT commands. The command letters AT wake up the modem and initialize it. The AT means ATTENTION modem. This list of commands is for reference only; please don't feel you need to memorize them! If you do, your cohorts will presume you're a nerd (and correctly so).


A/ Repeats the last AT command (this command does not need to be preceded by the letters AT);
+++ Switches the modem from online mode to command mode (this command does not need to be preceded by the letters AT);
AT Attention modem--(wakes up the modem);

   The following commands require an AT to precede the command (such as ATA for the first one on the list):

A Sets the modem in answer mode
DT Dials a touch-tone phone
DP Dials a pulse (rotary) phone

   Dial modifiers

R Originate call in answer mode (to call originate only modems)
S=n Dial the stored numbers where n= 0,1,2,3
W Wait for dial tone prior to dialing--the time period of the pause is determined by an S register setting
, Pause 2 seconds before continuing to dial
/ Pause .125 second before continuing to dial
; Remain in command mode after connection
! Flash hook--hangs up then reconnects in .5 second
@ Wait for silence before continuing to dial--the time period of the pause is determined by an S register setting


E or E0 Turns character echo off
E1 Turns character echo on
F or F0 Sets modem to half-duplex
F1 Sets modem to full-duplex
H or H0 Hangs up the phone
I or I0 Shows the modem product code
I1 ROM check
I2 ROM test
L1 Sets modem speaker volume to low
L2 Sets modem speaker volume to medium
L3 Sets modem speaker volume to high
M2 Turns modem speaker on for the entire connection (don't do it!)
M0 Turns modem speaker off
M1 Turns modem speaker off when connection is established
O0 Returns online after entering command mode
Q0 Turns on result code display
Q1 Turns off result code display
Sxn Sets the S register x to the value of n; note that both x and n are variable numbers
Sx? Displays value of register Sx
V0 Sets modem to display numeric result codes
V1 Sets modem to display verbose codes (words)
Xn Modem response sets (note that n is a variable number)
X0 =minium responses
X1 =minium responses--don't wait for dialtone before dialing
X2 =like X1 but do wait for dialtone before dialing
X3 =like X1 but adds call progress messages and tone detection
X4 =call progress messages--tone detection and wait for dialtone
Z Resets modem
& Advanced commands prefix (not all modems support these)
&F Resets modem to factory default


   AT commands need to be issued in upper or lower case letters. You can't mix upper and lower case letters when issuing an AT command. When loaded, most telecommunications programs start in the command mode. This means you can issue AT commands from the keyboard as soon as you load your telecommunications program. Try loading yours. Then type:

   atz <ENTER>

   If your modem is connected to the serial port you designated when you set up your telecommunications software and it is working properly, you should see OK on your screen.


   Next, you can try dialing a BBS number using an AT command. If you have a touch-tone phone (most people do), try issuing a command while in the command mode of your telecommunications program:

   atdt0040745129711 <ENTER>

   The dashes are optional. Suppose you were at a phone where you had to dial 9 before you got an outside line. Start up your telecommunications software, then from the command mode type:

   at dt 9 , 0040745129711 <ENTER>

 In this example spaces were used. AT commands ignore spaces and dashes. The first AT command got the modem's attention. The following DT told it to dial using touch-tone dialing. The 9 is to get an outside line. A commad then instructs the modem to pause two seconds before continuing (see the dial modifiers in the basic AT commands). The 0040745129711 is the phone number you want to dial. Note that you only need the AT (attention modem) at the beginning of an AT command statement and that AT commands can be strung together.

   Perhaps you have a burning desire to check the value of your S7 register. This will show the number of seconds that your modem waits for a carrier before hanging up. Start up your telecommunications software, then from the command mode type:

   at s7? <ENTER>

   The above command will show you the value of your modem's S7 register.

   Your telecommunications software manual will probably mention the modem initialization string. This is the string of commands that initializes your modem. The AT command section combined with the S registers section should help you understand your modem's initialization string. See your particular modem manual for more details on AT commands and initialization strings. Different modems require different modem initialization strings. The better telecommunications software programs will have a modem pick-list feature. With such a feature, the software will automatically set your modem for optimum use with pre-defined setup initialization strings. When newer modems come out, telecommunications software manufactures have to keep adding the new modems to their pick-list. If your modem is not on their pick-list, you can often contact the company that makes the telecommunications program for a software update. For example, if you are using Telix, you would contact deltaComm Development, the company that makes Telix. Many of these companies maintain a BBS where customers can download updates.

   You can also send AT commands to your modem from the DOS command line. Suppose you have your modem connected to COM2 (serial port) and a speaker phone connected to your modem. Go to the DOS prompt. With your modem on, you can dial a number by using the ECHO command. First,
press the button to activate your speaker phone. Then, at the DOS prompt type:

   echo atdt0040745129711>com2 <ENTER>

   That's dialing from DOS!