💾 Archived View for spam.works › mirrors › textfiles › computers › hayes.txt captured on 2023-11-14 at 09:11:55.

View Raw

More Information

⬅️ Previous capture (2023-06-14)

-=-=-=-=-=-=-





Technical Reference
for
Hayes(TM) Modem Users

2 November 1990
Version 1.0















Hayes Microcomputer Products, Inc.
P.O. Box 105203
Atlanta, Georgia 30348

Europe Office
Hayes Microcomputer Products, Inc.
1 Roundwood Avenue, Stockley Park
Uxbridge, Middlesex UB11 1AE United Kingdom

Asia Office
Hayes Microcomputer Products, Inc.
21/F Caxton House, 1 Duddell Street
Central Hong Kong
Notice: Hayes Microcomputer Products, Inc. (Hayes) provides the information 
contained in this document to you for your convenience. Hayes does not 
guarantee the accuracy of the information and reserves the right to change 
this document, as well as the hardware and software products described herein 
at any time without notice. The Hayes Standard AT Command Set is proprietary 
to, and subject to the copyrights of Hayes Microcomputer Products, Inc., and 
distribution of this document in no way represents a waiver of those rights. 

Hayes, the Hayes logos, Smartcom, Smartcom II, Smartcom III, Smartcom EZ, 
V-series, Smartmodem, ULTRA, and ESP are trademarks of Hayes Microcomputer 
Products, Inc.

Other trademarks identified in this document are trademarks of their 
respective companies.





Note: This version of the "Technical Reference for Hayes Modem Users" is a 
special version edited for bulletin-board downloading. As a plain ASCII 
character file, it therefore cannot contain any of the illustrations and 
graphic elements provided in the printed version.

To highlight the start of Chapters, 1st Level Heads, 2nd Level Heads, 
3rd Level Heads and Tables, we've used the following scheme:

Chapters are preceded by:
=============================================================================

1st Level Heads are preceded by:


2nd Level Heads are preceded by:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

3rd Level Heads are preceded by:
.............................................................................

Table heads are separated from table listings by:
-----------------------------------------------------------------------------


Document 44-00012 AA K10 (BBS Version)


? 1990 Hayes Microcomputer Products, Inc. All rights reserved.



Table of Contents
Chapter One: The Hayes Standard AT Command Set

1.1  AT Command Listing
        A - Answer Command
        B - Select Communication Standard
        C - Carrier Control Selection
        D - Dial Command (and dial modifiers)
        E - Command State Character Echo Selection
        F - On-line State Character Echo Selection
        H - Hook Command Options
        I - Internal Memory Tests
        L - Speaker Volume Level Selection
        M - Speaker On/Off Selection
        N - Negotiation of Handshake Options
        O - On-Line Command
        P - Select Pulse Dialing Method
        Q - Result Code Display Options
        Sr= - Write to an S-Register
        Sr? - Read an S-Register
        T - Select Tone Dialing Method
        V - Result Code Format Options
        W - Negotiation Progress Message Selection
        X - Call Progress Options
        Y - Long Space Disconnect Options
        Z - Soft Reset Command
        &B - V.32 Auto Retrain Options
        &C - Data Carrier Detect Options
        &D - Data Terminal Ready Options
        &F - Recall Factory Profile
        &G - Guard Tone Selection
        &J - Jack Type Selection (Auxiliary Relay Options)
        &K - Local Flow Control Options
        &L - Line Type Selection (Dialup/Leased)
        &O - PAD Channel Selection
        &Q - Communications Mode Options
        &R - RTS/CTS Options
        &S - Data Set Ready Options
        &T - Test Options
        &U - Trellis Coding Options
        &V - View Configuration Profiles
        &W - Write Active Profile to Memory
        &X - Synchronous Transmit Clock Source
        &Y - Select Stored Profile For Hard Reset
        &Zn=x - Store Telephone Number

1.2  Result Code Listing
     1.2.1 Command Response and Call Progress Monitoring
        0 - OK
        1 - CONNECT
        2 - RING
        3 - NO CARRIER
        4 - ERROR
        5 - CONNECT 1200
        6 - NO DIALTONE
        7 - BUSY
        8 - NO ANSWER
        10 - CONNECT 2400
        11 - CONNECT 4800
        12 - CONNECT 9600
        14 - CONNECT 19200
        22 - CONNECT 1200/75
        23 - CONNECT 75/1200
        28 - CONNECT 38400
     1.2.2  Negotiation Progress Messages
        40 - CARRIER 300
        44 - CARRIER 1200/75
        45 - CARRIER 75/1200
        46 - CARRIER 1200
        47 - CARRIER 2400
        48 - CARRIER 4800
        50 - CARRIER 9600
        66 - COMPRESSION: CLASS 5
        67 - COMPRESSION: V.42BIS
        68 - COMPRESSION: ADC
        69 - COMPRESSION: NONE
        70 - PROTOCOL: NONE
        71 - PROTOCOL: ERROR-CONTROL/LAP-B
        72 - PROTOCOL: ERROR-CONTROL/ LAP-B/HDX
        73 - PROTOCOL: ERROR-CONTROL/LAP-B/AFT
        74 - PROTOCOL: X.25/LAP-B
        75 - PROTOCOL: X.25/LAP-B/HDX
        76 - PROTOCOL: X.25/LAP-B/AFT
        77 - PROTOCOL: LAP-M
        78 - PROTOCOL: LAP-M/HDX V.42
        79 - PROTOCOL: LAP-M/AFT
        80 - PROTOCOL: ALT
        91 - AUTOSTREAM: LEVEL 1
        92 - AUTOSTREAM: LEVEL 2
        93 - AUTOSTREAM: LEVEL 3
     1.2.3  Information Text (INFO-TEXT)

1.3  S-Register Listing
       S0 - Ring to Answer After
       S1 - Ring Count
       S2 - Escape Sequence Character
       S3 - Carriage Return Character
       S4 - Line Feed Character
       S5 - Backspace Character
       S6 - Wait Before Blind Dialing
       S7 - Wait for Carrier after Dialing
       S8 - Duration of Delay for Comma Dial Modifier
       S9 - Carrier Detect Response Time
       S10 - Delay Between Lost Carrier and Hang Up
       S11 - Multi-Frequency Tone Duration
       S12 - Escape Sequence Guard Time
       S18 - Modem Test Timer
       S25 - DTR Detection
       S26 - RTS to CTS Interval
       S30 - Inactivity Time-out
       S33 - AFT Options
       S36 - Negotiation Failure Treatment
       S37 - Desired DCE Line Speed
       S38 - Delay Before Forced Hang up
       S44 - Asynchronous Framing Technique Selection
       S46 - Error-Control Protocol Selection
       S48 - Enabling/Disabling Feature Negotiation
       S49 - ASB buffer size lower limit
       S50 - ASB buffer size upper limit
       S53 - Global PAD Configuration
       S63 - Leased line carrier level
       S69 - Link Layer Window Size
       S70 - Maximum Number of Retransmissions
       S71 - Link Layer Time-out
       S72 - Loss of Flag Idle Time-out
       S73 - No Activity Time-out
       S74, S75 - Minimum Incoming Logical Channel Number (LCN)
       S76, S77 - Maximum Incoming Logical Channel Number (LCN)
       S78, S79 - Outgoing Logical Channel Number (LCN)
       S80 - Packet Layer N20 Parameter
       S81 - Packet Layer T20 Parameter
       S82 - Break Signaling Technique
       S84 - Adaptive start up negotiation (ASU)
       S85 - ASU Negotiation Report
       S86 - Connection Failure Cause
       S92 - MI/MIC Options
       S93 - V.25bis DTE interface speed
       S94 - Command Mode Selector
       S95 - Negotiation Message Options
1.4  Additional Command Set Definitions
       AT - Command Prefix
       +++ - Escape Sequence
       <CR> - End-of-line Character
       A/ - Repeat Last Command


Chapter Two: V-series(TM) X.25 Communications

2.1  Modem Configuration for X.25 Communications
     2.1.1 Controlling Automatic Feature Negotiation
     2.1.2 PAD Channel Selection
2.2  PAD Configuration
     2.2.1 PAD Commands
        ACC - Accept Call Command
        CALL - Call Command (and Call Facilities)
        CHAN - Channel Selection Command
        CLR - Clear Channel Command
        EXEC - Execute String Command
        EXIT - Exit PAD Command
        INT - Interrupt Command
        PAR? - Read Parameter Command
        PROF - PAD Profile Command
        RESET - PAD Reset Command
        RPAR? - Read Remote PAD Parameter Command
        RSET - Set Remote PAD Parameter Command
        STAT - Status of Current Channel Command
        SET - Set PAD Parameter Command
     2.2.2 PAD Parameters
        Parameter 1 - PAD Recall Using a Character
        Parameter 2 - Echo
        Parameter 3 - Selection of Data Forwarding Signal
        Parameter 4 - Selection of Idle Timer Delay
        Parameter 5 - Ancillary Device Control
        Parameter 6 - Control of PAD Result Codes
        Parameter 7 - Action on Receipt of Break from Terminal
        Parameter 8 - Discard Output
        Parameter 9 - Padding after Carriage Return
        Parameter 10 - Line Folding
        Parameter 11 - Terminal Speed
        Parameter 12 - Flow Control of the PAD by Local Terminal
        Parameter 13 - Line Feed Insertion after Carriage Return
        Parameter 14 - Line Feed Padding
        Parameter 15 - Editing
        Parameter 16 - Character Delete
        Parameter 17 - Line Delete
        Parameter 18 - Line Display
        Parameter 19 - Editing PAD result codes
        Parameter 20 - Echo Mask
        Parameter 21 - Parity Treatment
        Parameter 22 - Page Wait
        National Parameter 70 - Streaming Data Forwarding
        National Parameter 71 - Character Format
        National Parameter 72 - Break Signal Timing
        National Parameter 73 - Break Signal Duration
        National Parameter 74 - Disable PAD Parameter by the Remote PAD
        National Parameter 100 - Default Maximum Packet Size
        National Parameter 101 - Default Maximum Window Size
        National Parameter 103 - Reset Request Response Timer
        National Parameter 104 - Clear Request Response Timer
        National Parameter 105 - Interrupt Response Time
        National Parameter 106 - Reset Request Retransmission Counter
        National Parameter 107 - Clear Request Retransmission Counter
        National Parameter 108 - Channel Allocation Parameter
2.3  PAD Profiles
        Factory-Set Profile
        CCITT Simple Standard Profile
        CCITT Transparent Standard Profile
        Error-Control/LAP-B Profile
2.4  Typical X.25 Scenarios


Appendix A: Communication Options

A.1  Transmission and DTE Types
     A.1.1  Asynchronous Transmissions
     A.1.2  Synchronous Transmissions
A.2  Communication Modes - &Q
     A.2.1  Asynchronous Mode - &Q0
     A.2.2  Synchronous Mode 1: sync/async - &Q1
     A.2.3  Synchronous Mode 2: stored number dial - &Q2
     A.2.4  Synchronous Mode 3: manual dial with data/talk switch- &Q3
     A.2.5  Synchronous Mode 4: Hayes AutoSync - &Q4
     A.2.6  Error-Control Mode - &Q5
     A.2.7  Asynchronous Mode with Automatic Speed Buffering (ASB) - &Q6

Appendix B: Troubleshooting Tips

B.1  The Communication Link
B.2  Troubleshooting the Process
     B.2.1  Problems in Getting Started
     B.2.2  Problems Encountered During Communications
B.3  Special Environment Considerations
     B.3.1  Custom Modem Setup for Mainframe or Minicomputer Host
     B.3.2  Custom Modem Setup for Telephone System Requirements
B.4  Using AT Commands to Test Modem Circuits
     B.4.1  Available Tests
     B.4.2  Performing a Test
     B.4.3  Testing with Analog Loopback
     B.4.4  Testing with Digital Loopback
     B.4.5  Testing the Tone Dialer - &T2
B.5  Testing the Cable
     B.5.1  Cable Quality
     B.5.2  Checking Cable Signals - &T19
B.6  Testing Internal Memory

Appendix C: Modem-to-DTE Interface

C.1  EIA 232-D/CCITT V.24 Interfaces
C.2  Signals Used in the EIA 232-D Interface
C.3  EIA 232-D Signal Definitions
C.4  Modem Interface Connector


Appendix D: Modem Application Development

D.1  Modem Identification
D.2  Result Code Recognition
D.3  Modem Preparation
     D.3.1  Reset
     D.3.2  Setup
D.4  Connect Processing
     D.4.1  Originating a Call
     D.4.2  Answering a Call
     D.4.3  Using the CD Line
     D.4.4  Aborting a Connect Request
D.5  Carrier Loss Detection
     D.5.1  Using the CD Line
     D.5.2  Scanning the Incoming Data Stream
D.6  Escape and Hang Up
     D.6.1  Escaping the Modem to Command State
     D.6.2  Using DTR to Escape or Hang Up
D.7  Modem Re-configuration
D.8  Timing Considerations
     D.8.1  Programming for Time
     D.8.2  When to Consider Time
     D.8.3  Recovering When "Out of Sync"
D.9  General Tips and Techniques

Index


=============================================================================

Introduction

This Technical Reference for Hayes Modem Users offers additional information 
about the Hayes Standard AT Command Set for users who want to use the command 
set to control the modem, rather than using full-featured software. To help 
you do this, the complete command set is defined in greater detail than that 
provided on the AT Command Set Reference Card that accompanied your modem. All 
of the commands in the set are included in this document.

You'll also find additional discussions on some of the more complicated 
options, such as synchronous communications, and the interactions between 
communication standards, negotiation commands, and modem speeds. In addition, 
information about the connections between the modem and the DTE (computer or 
terminal) is included.

With the information provided here, you should be able to configure your modem 
with AT commands for a variety of communication environments. If you are just 
starting out with communications programming, this reference should provide 
you with sufficient tips to address the modem's features through a software 
program of your own.

If this reference seems more technically oriented than you anticipated, we 
suggest that you purchase one of Hayes Smartcom Products. Any of these fine 
programs will fully control the modem for almost any telecommunication 
requirements.


Who Should Use this Reference

Users of full-featured communications software such as Hayes Smartcom Products 
will not need this reference. 

This reference is provided for...


   modem configuration strings.


   environment.





Additional information is available for communications software developers. If 
you are, or would like to become, a registered Hayes Software Developer, you 
may receive additional technical material on Hayes products. For information 
on qualification and registration procedures, contact your nearest Hayes 
Customer Service facility. (Refer to the Customer Service Information folder 
provided with your modem for location and telephone number.)


How this Reference is Organized

This reference is divided into two chapters and four appendices:

Chapter One: The Hayes Standard AT Command Set...
includes definitions of the Hayes AT Command Set including the commands, 
result codes, and S-registers.

Chapter Two: V-series(TM) X.25 Communications...
includes definitions of the commands used for X.25 packet switched 
communications, PAD and National Parameters, and listings for four PAD 
profiles.

Appendix A: Communication Options...
describes the various asynchronous and synchronous transmission modes 
supported by Hayes modems and includes a discussion of the AT commands related 
to these modes.

Appendix B: Troubleshooting Tips...
provides special environmental considerations and offers suggestions for 
remedying problems in modem communications.

Appendix C: Modem-to-DTE Interface...
discusses the requirements and capabilities of the modem's data terminal 
equipment (DTE) interface.

Appendix D: Modem Application Development...
offers suggestions for developing applications software using the AT command 
set.


How to Use this Reference

The commands and procedures described in this reference are intended for use 
with a program that provides a command line interface to the modem. or if the 
modem is connected to an asynchronous terminal to which commands can be 
entered and sent through the serial port to the modem. Although commands are 
not required when using Hayes Smartcom(TM) products, Smartcom EZ(TM), Smartcom 
II(TM), and Smartcom III(TM) all support a command line interface to the 
modem. Refer to the Smartmodem Product User's Reference or V-series System 
Product User's Reference (depending on the modem you purchased) for 
descriptions of the features that are enabled by the AT Commands and S-
Registers defined here. These user's references both explain how to issue AT 
Commands, and read and set S-Registers/PAD Parameters.

Please note that this reference is not a list of the features supported by 
your modem, but a general guide to the Hayes AT Command Set as used to control 
Hayes modems. For a list of features supported by your modem, refer to the 
documentation included with your modem. This Modem Technical Reference is a 
supplement to the documentation provided with your modem, not a replacement.

=============================================================================

Chapter One:
The Hayes Standard AT Command Set

This chapter is divided into three sections: AT commands, Result Codes, and S-
Registers. The first section defines individual AT commands. Commands are 
listed in alphabetically for easy reference. The second section defines the 
Result Codes that can be returned by Hayes modems. These are listed in numeric 
order. The third section defines Hayes Smartmodem Registers. These, too, are 
in numeric order. For completeness, definitions of the AT command prefix, the 
end-of-line character, and other information related to the Hayes Standard AT 
Command Set are also included.

For the factory setting and available options/ranges for commands and 
registers, use the AT Command Set Reference Card provided with your modem. 
Unless a command, register, or result code is listed on this card, it is not 
supported by your modem, although it appears in this document.



1.1 AT Command Listing
Each step in the evolution of Hayes modems has added to the feature set that 
has enhanced the definition of the Hayes standard. The diagram below shows the 
major steps in the process.

A - Answer Command
The A command instructs the modem to go off hook and respond to an incoming 
call, then handshake with the remote modem. When the modem returns the RING 
result code, issue ATA<CR>. The modem will send an answer carrier signal to 
the originating modem and wait for an originate carrier signal. When the modem 
receives the carrier from the originating modem, the modems go through a 
handshaking process then go on-line. The modems return the CONNECT XXXXX 
result code. If no carrier signal is received within the time specified in 
Register S7, the modem hangs up, returns the NO CARRIER result code, and 
enters the command state.

B - Select Communication Standard
The B command is used to specify the desired communications standard setting 
at a particular modem line speed. Because options can select between groups of 
options, more than one combination of communication standard and speed can be 
selected. For example, you can issue B1 and B16; both will be in effect 
because they do not reference the same line speed. However, choosing B1 then 
B5 selects B5, and replaces B1 as the standard for 1200 bps communications. 
The most recent selection chosen from any given group will be in effect for 
that parameter group.

GROUP 1
Values         Description
-----------------------------------------------------------------------------
0 or none      V.22 when modem is at 1200 bps
1              U. S. Domestic 212A when modem is at 1200 bps
2              V.23 R1200/T75 bps ASB when modem is at T1200/R1200 bps
3              V.23 T1200/R75 bps ASB when modem is at T1200/R1200 bps
4              V.23 T1200/R75 bps split speed when modem is at T1200/R75 bps
5              V.23 1200 bps half duplex when modem is at T1200/R1200 bps


GROUP 2
Values  Description
-----------------------------------------------------------------------------
10      V.23 R1200/T75 bps split speed when modem is at R1200/T75 bps
11      U. S. Domestic 212A when modem is at 1200 bps


GROUP 3
-----------------------------------------------------------------------------
Values  Description
15      V.21 when modem is 110/300 bps
16      U. S. Domestic 103 when modem is at 110/300 bps


GROUP 4
-----------------------------------------------------------------------------
Values  Description
20      V.23 R600/T75 bps ASB when modem is T600/R600 bps
21      V.23 T600/R75 bps ASB when modem is T600/R600 bps
22      V.23 T600/R75 bps split speed when modem is T600/R75 bps
23      V.23 600, half duplex when modem is 600 bps


GROUP 5
-----------------------------------------------------------------------------
Values  Description
30      V.22bis when modem is 2400 bps
31      V.27ter when modem is 2400 bps


GROUP 6
-----------------------------------------------------------------------------
Values  Description
40      V.27ter when modem is 4800 bps
41      V.32 full duplex when modem is 4800 bps
42      V.32 half duplex when modem is 4800 bps
44      V.23 half duplex when modem is 4800 bps

GROUP 7
-----------------------------------------------------------------------------
Values  Description
50      V.29 HDX when modem is 7200 bps


GROUP 8
-----------------------------------------------------------------------------
Values  Description
60      V.32 full duplex when modem is 9600 bps
61      V.32 half duplex when modem is 9600 bps
63      V.29 half duplex when modem is 9600 bps

C - Carrier Control Selection
The C command is used by some Hayes modems, such as Smartmodem 1200, to 
control the transmit carrier. In these instances, C0 instructs the modem not 
to send carrier (i.e., puts modem in a receive-only mode). High-speed modems 
(those capable of speeds greater than 1200 bps) accept C1 without error in 
order to assure backward compatibility with communications software that 
issues C1. However, these modems do not support C0.

C0 - Transmit carrier always off (not supported in high-speed modems)

C1 - Normal transmit carrier switching

D - Dial Command
The D command places the modem in originate mode; it then functions as an 
auto-dialer. Whether the command is issued on a line by itself, or followed 
immediately by the telephone number, it must be preceded by the AT prefix and 
terminated with a <CR> The dial string is a combination of dial digits and 
dial modifiers. If the modem is off hook, it will neither initially wait nor 
attempt to detect dial tone before proceeding. The D command is not valid when 
the modem is on-line or if either &Q2 or &Q3 is in effect. Parentheses and 
hyphens in a dial string are ignored by the auto-dialer, but are counted as 
characters in the 255-character command buffer.


Result Codes     Description
-----------------------------------------------------------------------------
BUSY             If X3 or X4 are selected or W dial modifier is used and busy
                 is detected

NO DIALTONE      If X2 or X4 are selected and 1 second of dial tone is not
                 detected within 5 seconds If W dial modifier is processes and
                 then 3 seconds of dial tone is not detected within the time 
                 specified by S7

ERROR            If the S=n dial modifier is processed and the n value is out
                 of range (refer to the S dial modifier in this section) or if 
                 the total number of characters in the command line plus the 
                 stored dial string exceeds 255 characters

NO ANSWER        If @ dial modifier is used and then no signal is detected 
                 for at least five continuous seconds before the time 
                 specified by S7 

OK               If aborted by DTR ON-to-OFF whenever certain combinations of 
                 &D and &Q are in effect. Refer to the &D command in this 
                 chapter for details. If the ; dial modifier is processed in 
                 the dial string. If aborted by a character from the DTE 
                 during the dialing process

Dial Modifiers
Dial modifiers can be combined with the dial (D) command to perform a series 
of operations within a single command line. For example, 
ATDT9W1552368!@#71234; <CR> instructs the modem to use tone dialing to access 
a number outside a PBX, wait for dial tone, dial the number 1552368, enter a 
timed break recall, wait for quiet answer, and issue the PBX transfer code #7 
before dialing extension number 1234, then return to the command state before 
initiating the handshake.

0-9 A B C D # * - Digits/Characters for Dialing 
The digits/characters 0-9 A B C D # * are used to specify what numbers the 
modem will dial. The characters A B C D # * represent specific tone pairs and 
therefore can be used only when tone dialing is selected; these symbols are 
ignored when pulse dialing is used.

P - Pulse Dialing Method
The P dial modifier selects the pulse method of dialing. The P modifier can be 
issued with the dial command, or alone, to indicate the method used for 
subsequent dialings. The factory-set method is pulse. Once this method is 
selected, it is used until the other is chosen, or the modem is reset.

T - Tone Dialing Method
The T dial modifier selects the tone method of dialing. The T modifier can be 
issued with the dial command, or alone, to indicate the method used for 
subsequent dialings. Once this method is selected, it is used until the other 
is chosen, or the modem is reset.

W - Wait for Second Dial Tone
The W dial modifier instructs the modem to wait for dial tone before 
proceeding. If dial tone detection is not completed within the preset time 
limit, the modem hangs up and returns the NO DIALTONE result code. Some PBXs 
do not return a secondary proceed indication (second dial tone). The W dial 
modifier is not effective in such systems and should not be used.

, - Delay Processing of Next Character
The comma (,) dial modifier in a dial string causes the modem to pause before 
processing the next character or symbol in the command line. The duration of 
the pause is determined by the value held in Register S8. The comma is 
frequently inserted after the 9 (digit generally used to gain outside access 
from a PBX) to allow sufficient time for the dial tone to occur before the 
modem dials the telephone number. 

@ - Wait for Quiet Answer
The @ dial modifier instructs the modem to listen for five seconds silence 
before continuing. The number of seconds the modem waits for silence is 
determined by the value held in S7. This modifier is useful when dialing 
telephone systems that produce no dial tone. If a five-second silence has not 
been detected within the period set in S7, the modem hangs up and returns the 
NO ANSWER result code. If it detects the five seconds of silence, the modem 
processes the remaining characters in the dial string. Note that the modem 
does not listen for silence until it first detects dial tone and some other 
signal, such as a ringing signal, that lasts longer than 210 milliseconds. For 
example, to dial 1552368, wait for a quiet answer, then dial a security code 
85939, wait for a second dial tone, and dial extension 423 you would issue the 
following command: ATDT 1552368 @ 85939 W 423 <CR>.

! - Timed Break Recall (Hookflash)
The ! dial modifier issues a timed break recall signal, which causes the modem 
to hang up for 75 milliseconds, then reconnect. This feature can be used to 
access such PBX features as call transfer.

; - Return to Command State after Dialing
The semicolon (;) dial modifier, used only at the end of a command line (just 
before the <CR>), instructs the modem to return to the command state 
immediately after dialing, without breaking the connection. 

The ; is useful when calling an electronic service, such as that offered by a 
bank, that permits you to use tones to transmit numbers once a connection has 
been established. The modem can send tones even if your telephone cannot. The 
example below illustrates the use of the semicolon modifier in communications 
with an electronic banking service.

ATDP 1552368; <CR>  Dials bank using pulse method

OK  Command executed, but keeps the modem in command state (no carrier 
handshake takes place)

ATDT 4768; <CR>  Sends an ID code via tones and maintains modem in command 
state.

OK  Modem in command state; command executed.

In this example, the ; differs from the +++ in that the escape sequence places 
the modem in the command state only when two modems have completed a 
handshake. The semicolon keeps the modem in command state; no CONNECT XXXXX 
result code is displayed.

DS=n - Dialing a Stored Telephone Number
A stored number can be dialed from an asynchronous terminal by following the 
dial (D) command with the S modifier, an equal sign, and the location of the 
stored number (see &Zn=x command at the end of this section). The format of 
the modifier is S=n, where n is location 0-3. If ATDS=2<CR> were issued, for 
example, the modem would dial the string stored in memory location three of 
its "telephone book."

R - Originate a Call in Answer Mode 
The dial modifier R (Reverse mode) enables the modem to dial an originate- 
only modem by placing a call in answer mode. This modifier must be entered at 
the end of the dialling (D) command string, before the <CR>.
The R modifier directs the modem to act as if it had been sent an A command in 
that part of the command string. 

E - Command State Character Echo Selection
The E command determines whether characters are echoed to the DTE from the 
modem when it is command state. Some computers and terminals do not send the 
characters you type to the screen; they only transmit them to the remote 
system through the serial port. In this case, if Command State character echo 
were not enabled by the modem, you would be unable to see what you type. If 
the DTE does echo the characters you type in command state, and this function 
is enabled in the modem, each character typed will appear twice.

E0   Command state character echo disabled

E1   Command state character echo enabled


F - On-line State Character Echo Selection
The F command is used by some Hayes modems, such as Smartmodem 1200, to 
determine whether characters are echoed to the DTE from the modem when it is 
in the on-line state. High-speed Hayes modems do not support the F0 option. 
However, because the F command may be issued by older communications software, 
F! is supported to assure backwards compatibility.

F0   On-line character echo enabled (where not supported, ERROR result code is 
returned)

F1   On-line character echo disabled

H - Hook Command Options
The H command provides control over the line relay. Its most common use is 
with the H0 option to initiate the Hangup Process and place the modem on 
hook.H1 takes the modem off hook.

H0   Execute the Hangup process if in the "on-line" command state or the local 
analog loopback and analog loopback selftest conditions

H1   Go off hook; do not execute the Handshake Process


I - Internal Memory Tests
The various forms of the I command instruct the modem to query its memory for 
information about itself. the results of these tests are frequently used by 
programmers for the purpose of determining compatibility with software. 
Because these commands request information about the modem's firmware, they 
are not run when a connection has been established with a remote modem.
 
I0 - display product code
This option reports the product code of the modem to the DTE. The modem 
produces information text dependent upon its highest DCE line speed. The 
responses below are examples:

Result Codes..Description
-----------------------------------------------------------------------------
     300      Smartmodem 300(TM)

     120      Smartmodem 1200(TM), Smartmodem 1200B(TM),
              Smartmodem 1200C(TM), Smartmodem 1200A(TM)

     240      Smartmodem 2400(TM), Smartmodem 2400B(TM),
              Smartmodem 2400P(TM), Smartmodem 2400Q(TM),
              Smartmodem 2400M(TM), V-series Smartmodem 2400,
              V-series Smartmodem 2400B, 
              V-series Smartmodem 2400P, 
              V-series Smartmodem 2400M

     960      Smartmodem 9600, V-series Smartmodem 9600(TM),
              V-series Smartmodem 9600B(TM), 
              V-series Smartmodem 9600P(TM), 
              V-Series ULTRA Smartmodem 9600

I1- display ROM checksum
The I1 command instructs the modem calculate the value of the ROM checksum. 
The response is a 3-digit decimal information text, the sum of all of the 
bytes in ROM.

I2 - perform ROM checksum test
This command instructs the modem to verify the ROM checksums. Depending on 
whether the ROM checksum has been found to be correct, the modem produces an 
info text that resembles a verbose result code. The modem memory test compares 
the ROM checksum and tests it against the correct sum, also stored in ROM. 
Rather than returning a value in the way the I1 one command does, the I2 
command generates a result code. When the checksum is valid, the response is: 
OK. When the ROM checksum fails, the modem responds with ERROR.

I4 - identify product features
The capabilities and features of the modem are encoded into a string of info-
text that consists of several strings that are ASCII character representations 
of hex numerals which are bit-mapped. The first character of each string 
identifies which bit maps are in that string. For example, the "a-string" 
starts with a lower case "a" and identifies most of the basic modem 
capabilities such as modulation standards supported and support for AutoSync.

Since the following tables identify features for Hayes modem products, the 
values included here are subject to change and expansion.

The I4 info-text displayed:

a097800C204C264<CR><LF> <CR><LF>bF60410000<CR><LF> 
<CR><LF>r1031111111010000<CR><LF> <CR><LF>r3000111010000000

surrounded by additional <CR> and <LF> characters as are required by the V 
command option in effect. According to convention, all <CR> and <LF> 
characters are defined by S3 and S4, respectively. The meanings of the a, b, 
r1, and r3 strings currently defined are described below.

I4 "a" String..
The first string, the a-string, is encoded by characters, hex symbols 
following the "a" character, each of which represents four bits.

a D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 D17 D18 


D1, D2 Reserved
D3     Bit 3: Indicates modem based on SM1200FE commands 
       Bit 2: Indicates modem based on SM2400 commands 
       Bit 1: Indicates that modem supports &J commands
       Bit 0: Indicates that modem supports &L commands 
D4     Bit 3: Indicates that modem supports AutoSync (&Q4)
D5     Bit 3: Plug-in board modem product
       Bit 2: Stand alone modem product
       Bit 1: Supports &H0 through &H4
       Bit 0: Supports &I0 through &I4 
D7     Bit 3: Supports V.22 at 1200 bps
       Bit 2: Supports Bell 212A 
       Bit 1: Supports ASB (&Q6) in V.23 75xmt/1200rcv
       Bit 0: Supports ASB (&Q6) in V.23 1200xmt/75rcv 
D8     Bit 3: Supports V.23 1200xmt/75rcv
       Bit 2: Supports V.23 1200 half duplex
       Bit 1: Supports V.23 75xmt/1200rcv
       Bit 0: Supports V.23 75xmt/600rcv 
D9     Bit 3: Supports V.21 100/300
       Bit 2: Supports ASB (&Q6) in V.23 75xmt/600rcv
       Bit 1: Supports ASB (&Q6) in V.23 600xmt/75rcv
       Bit 0: Supports V.23 600xmt/75rcv 
D10    Bit 2: Supports V.22bis at 2400 bps
       Bit 1: Supports V.27ter at 2400 bps
       Bit 0: Supports V.27ter at 4800 bps 
D11    Bit 3: Supports V.32 full duplex at 4800 bps
       Bit 2: Supports V.32 half duplex at 4800 bps
       Bit 1: Supports (Reserved) at 4800 bps
       Bit 0: Supports V.29 half duplex at 4800 bps 
D12    Bit 3: Supports V.29 half duplex at 7200 bps
       Bit 2: Supports V.32 full duplex at 9600 bps
       Bit 1: Supports V.32 half duplex at 9600 bps
       Bit 0: Supports (Reserved) at 9600 bps 
D13    Bit 3: Supports V.29 half duplex at 9600 bps
       Bit 2: Supports Bell 103 110/300 bps
D15    Bit 1: Supports S95 Bit 5 for COMPRESSION: result code
       Bit 0: Supports S95 Bit 4 for AUTOSTREAM: result code 
D16    Bit 3: Supports S95 Bit 3 PROTOCOL: result code
       Bit 2: Supports S95 Bit 2 CARRIER result code
       Bit 1: Supports S95 Bit 1 CONNECT/ARQ result code
       Bit 0: Supports S95 Bit 0 CONNECT XXXX (for DCE rate) 


I4 "b" String
The second string, the b-string, is composed of the ASCII character "b" 
followed by nine bytes (D1-D9). The bit map for each byte is defined as 
follows:

b D1 D2 D3 D4 D5 D6 D7 D8 D9

D1    V.42 Alternate Protocol Supported
      Bit 4: V.42 LAPM Protocol Supported
      Bit 2: X.25 Protocol Supported
      Bit 1: LAPB (Original V-series Point-to-Point error-control) Protocol
      Supported

D2    Bit 8: Reserved (should be set to zero)
      Bit 4: MNP Class 5 Supported
      Bit 2: V.42bis Supported
      Bit 1: Compression Through the X.25 Network 
      Supported

D3/D4 These combine to indicate the number of AutoStream Type A channels which
      are supported. The formula (D3*16 + D4) is used. Zero means AutoStream
      is not supported


I4 "r1" and "r3" strings
These ID strings allow software to determine the available speeds that may be 
used to send AT commands. The r1-string contains a bit map that indicates at 
which DTE rates the autobaud process is supported.

The r3-string is issued if synchronous DTE speeds are supported. The map 
indicates which DTE rates are supported in Synchronous modes. Each r-string 
begins with the lower case letter "r" and may be followed by as many as 39 
additional characters, not counting <CR><LF>'s that will be used to separate 
them from other strings. Those 39 additional characters are limited to the 
ASCII-HEX alphabet 0-9 and A-F.

After the two lead-in characters (i.e., r<n>), all subsequent characters 
contain the DTE rate maps. All maps have the same mapping for convenience to 
software. (Refer to the chart below.) Not all bit assignments are possible: 
for example, the split speeds have no meaning in the r3 synchronous map and 
are always filled with zeros.

In r1, if the bit is filled with a 1, the corresponding DTE rate is supported 
for sending AT commands to the device. A zero indicates that DTE rate is not 
supported for AT commands.

In the r3 map, the bits simply indicate which DTE rates are supported for 
synchronous operation on-line. This does not indicate, however, the supported 
rates for synchronous V.25bis commands.

Split speeds if available are marked in the r1 string only when the 
appropriate B command option has been selected. Future expansion of these 
strings may include new speeds that are not in strict ascending order.

DTE Rate Bit Map for r1 and r3 Strings

   Character    Bit #       DTE Rate
-----------------------------------------------------------------------------
      3:1       bit 0       45.45 bps    
      3:2       bit 1       50
      3:4       bit 2       75
      3:8       bit 3       75/600 (xmt is 75, rcv is 600) 

      4:1       bit 4       75/1200
      4:2       bit 5       110
      4:4       bit 6       134.5
      4:8       bit 7       50

      5:1       bit 8       300
      5:2       bit 9       450
      5:4       bit 10      600
      5:8       bit 11      600/75

      6:1       bit 12      1200
      6:2       bit 13      1200/75
      6:4       bit 14      1800
      6:8       bit 15      2000

      7:1       bit 16      2400
      7:2       bit 17      3000
      7:4       bit 18      3600
      7:8       bit 19      4200

      8:1       bit 20      4800
      8:2       bit 21      5400
      8:4       bit 22      6000
      8:8       bit 23      6600

      9:1       bit 24      7200
      9:2       bit 25      7800
      9:4       bit 26      8400
      9:8       bit 27      9000

      10:1      bit 28      9600
      10:2      bit 29      12000
      10:4      bit 30      14400
      10:8      bit 31      16800

      11:1      bit 32      19200
      11:2      bit 33      21600
      11:4      bit 34      24000
      11:8      bit 35      26400

      12:1      bit 36      28800
      12:2      bit 37      31200
      12:4      bit 38      33600
      12:8      bit 39      36000

      13:1      bit 40      38400
      13:2      bit 41      43200
      13:4      bit 42      48000
      13:8      bit 43      52800

      14:1      bit 44      56000
      14:2      bit 45      57600
      14:4      bit 46      62400
      14:8      bit 47      64000

      15:1      bit 48      67200
      15:2      bit 49      72000
      15:4      bit 50      76800
      15:8      bit 51      81600

      16:1      bit 52      86400
      16:2      bit 53      91200
      16:4      bit 54      96000
      16:8      bit 55      100800

      17:1      bit 56      105600
      17:2      bit 57      110400
      17:4      bit 58      115200
      17:8      bit 59      reserved ("0")

L - Speaker Volume Level Selection
The L command setting determines the volume level of the speaker, when 
supported by the modem. Some modems use the speaker of the computer in which 
they are installed. In this case, where supported, the L command adjusts the 
speaker volume as indicated in the options below for the duration of the 
communications session.

L0  Low speaker volume

L1  Low speaker volume

L2  Medium speaker volume

L3  High speaker volume

M - Speaker On/Off Selection
The M command setting determines whether the speaker function of the modem is 
on or off. Some modems use the speaker of the computer in which they are 
installed. In this case, where supported, the M command turns the speaker on 
an off as indicated in the options below for the duration of the 
communications session.

M0   Speaker always off.

M1   Speaker on until carrier detected.

M2   Speaker always on; stays on after carrier is detected.

M3   Speaker off as digits are dialed, but on during ringback and on until
     carrier signal is detected.

N - Negotiation of Handshake Options
The N command selects whether or not the local modem performs a negotiated 
handshake with a remote modem when the communications speeds of the two modems 
are different. The options for this command are useful when a particular speed 
and communication standard are required. Both symmetrical and asymmetrical 
protocols can be selected. Note that the options supported by for this command 
vary significantly between country-specific implementations.

N0  When originating or answering, handshake only at 
the communication standard specified by S37 and B command

N1  When originating, begin handshake at the communication standard specified 
by the B command and S37. During handshake fallback to a lower speed may occur
When answering, negotiate according to the following sequence of communication 
standards: V.32, Ping Pong, V.22bis, V.22, and V.21

N2  When originating, begin handshake at the communication standard specified 
by the B command and S37. During handshake fallback to a lower speed may occur
When answering, negotiate according to the following sequence of communication 
standards: V.32, Ping Pong, V.22bis, V.22, V.23, and V.21

N3  When originating, handshake only at the communication standard specified 
by S37 and B command. When answering, negotiate according to the following 
sequence of communication standards: V.32, Ping Pong, V.22bis, V.22, and V.21

N4  When originating, handshake only at the communication standard specified 
by S37 and B command. When answering, negotiate according to the following 
sequence of communication standards: V.32, Ping Pong, V.22bis, V.22, V.23, and 
V.21

N5  When originating, begin handshake at the communication standard specified 
by B command and S37. During handshake fallback to a lower speed may occur
When answering, handshake only at the communication standard specified by S37 
and B. 

O - On-Line Command
If the modem is in the on-line command state, then the O0 command causes it to 
go to the on-line state of the previously established connection. If the O1 
command is issued (modems supporting 2400 bps and higher), the modem goes to 
on-line state and retrains its adaptive equalizer.

If the modem is off hook in the idle state, then O0 and O1 (modems supporting 
2400 bps and higher) cause it to go to the handshaking state. Originate or 
answer mode is determined from the last D or A command or R dial modifier that 
was selected. If the modem is on-hook, idle, or if the modem is in a test 
condition, a command execution error results. Note that O1 serves a different 
purpose in lower speed modems (e.g., Smartmodem 1200 and Smartmodem 300).

P - Select Pulse Dialing Method
The P command instructs the modem to use pulse dialing. Dialed digits will be 
pulse dialed until a T command or dial modifier is received. This command is 
also discussed under Dial modifiers, in conjunction with the D command.

Q - Result Code Display Options
The Q command controls whether the result codes generated by the modem are 
displayed to the attached DTE. Some software does not function properly when 
modem responses are returned. 

Q0  Result codes enabled

Q1  Result codes disabled

Q2  Disables the RING result code. In answer mode, also disables CONNECT and 
NO  CARRIER result codes


Sr - Addresses an S-Register
The Sr command points to a specific S-Register. Subsequent commands, such as ? 
and =, may read or write to the selected register. Note that S0 is the 
factory-set pointer for this command, and that the S-address is not stored in 
a stored profile. Thus, the &F, Z0, and Z1 commands will select S0 and 
possibly affect subsequent ? and = commands unless they are preceded by an Sr 
command. Note that the value of S0 is of course storable; it is the pointer to 
S0 that is not storable.

Sr=n - Write To An S-Register
The Sr=n command is writes a value to a specified register. The value of n is 
written to the S-Register specified by r, overriding the previous value. If no 
n suffix is present, the address previously selected via Sr is used. If no n 
suffix is present, the value 0 is written.

Sr? - Read An S-Register
The contents of S-Register r are sent to the DTE as three decimal digits. This 
informational text response is formatted with <CR><LF> as determined by the V 
command currently in effect.  If no n (suffix) is present, the last register 
selection is assumed. (Refer to the Sr command.) On power up, the factory-set 
selection is 0. Note: ? is interpreted by the modem as Sr?.


T - Select Tone Dialing Method
The T command instructs the modem to send DTMF tones while dialing. Dialed 
digits will be tone dialed until a P command or dial modifier is received. 
This command is also discussed under Dial modifiers, in conjunction with the D 
command.


V - Result Code Format Options
The V command determines whether result codes (including call progress and 
negotiation progress messages) are displayed as numbers or words.

V0  Result codes displayed in numeric form

V1  Result codes displayed in verbose form

W - Negotiation Progress Message Selection
The W command works in conjunction with S95 (where supported) to determine 
which result codes will be used to describe the type of connection and 
protocol, etc., that resulted from handshaking and negotiation.

The W command supports extended result codes in addition to the CONNECT result 
code. When the modem is operated in error-control mode (&Q5 is in effect), W 
command and S95 together allow the user to select these additional result 
codes:

      CARRIER
      PROTOCOL
      AUTOSTREAM
      COMPRESSION
      CONNECT

Any result codes enabled by the W command and S95 will be generated in the 
order indicated above. If AutoStream is not being used, no AutoStream result 
code is returned. Result codes not enabled by the W command option in effect 
may be turned-on by setting certain bits in S95. The W command options below 
are available when S95 is configured for any setting other than the factory-
setting of 0.

W0  CONNECT result code reports DTE speed, and if S95=0, then disable all
    extended result codes

W1  CONNECT result code reports DTE speed, and if S95=0, then enable the 
    CARRIER and PROTOCOL extended result codes

W2  CONNECT result code reports DCE speed, and if S95=0, then disable all
    extended result codes

Refer to the S95 bit map description in the next section. Note that selecting 
W0 and setting S95=12 is the same as selecting W1; and that selecting W0 and 
setting S95=1 is the same as selecting W2. S95 cannot be configured to force 
W2 to report DTE speed in the CONNECT result code; and that there is no 
setting of S95 that will force W1 not to produce the CARRIER and PROTOCOL 
result codes. S95 extends the functionality of the W command. The W command 
with S95=0 (factory setting) maintains backwards compatibility with previous 
V-Series System Products. However, selecting W0 and setting S95 as required 
allows you to tailor result codes characteristics to your own requirements.

X - Call Progress Options
The X command enables tone detection options used in the dialing process. As 
these functions are enabled and disabled, the modem's result code reporting is 
also affected. For this reason, this command is frequently used to control the 
modem's range of responses; however, its primary function is that of 
controlling the modem's call response capabilities. Result code definitions 
are covered in the next section.

X0  Busy and dial tone detection are disabled. Only result codes 0-4 are 
enabled. Only the CONNECT result code is permitted, and no indication of the 
telephone line speed. This setting overrides any other result code selections 
made with the W command and S95

X1  Busy and dial tone detection are disabled. Result codes 0-5 are enabled 
and linespeed reporting with CONNECT XXXX messages. W command options and S95 
are enabled

X2  Busy detection is disabled. Dial tone detection is enabled. Result codes 
0-6 are enabled and linespeed reporting with CONNECT XXXX messages. W command 
options and S95 are enabled

X3  Busy detection is enabled. Dial tone detection is disabled. Result codes 
0-5 and 7 are enabled and linespeed reporting with CONNECT XXXX messages. W 
command options and S95 are enabled

X4  Busy and dial tone detection are enabled. Result codes 0-7 are enabled and 
linespeed reporting with CONNECT XXXX messages. W command options and S95 
enabled

The @ and W dial modifier result codes are not affected by the X command in 
effect. The @ dial modifier enables result codes 8 (NO ANSWER) and 7 (BUSY) 
each time it occurs in the dial string. The W dial modifier enables result 
codes 6 (NO DIALTONE) and 7 (BUSY) each time it occurs in the dial string.

Y - Long Space Disconnect Options
The Y command determines if the modem will disconnect a call upon receiving a 
long space (1.6 sec break) signal from the distant end. If Y1 is selected, the 
modem will send a 4-second break (space) before going on hook when an H0 
command is issued or, if &D2 is selected, when DTR goes off. Refer also to 
register S82 for more information.

Y0  Disable long space disconnect

Y1  Enable long space disconnect

Z - Soft Reset Command
The modem can be reset by issuing the Z. The command tells the modem to go on 
hook and restore the selected stored profile. Any non-storable parameters 
previously set by commands are returned to their factory settings. The modem 
aborts execution of all commands following the Z command on the same command 
line. Subsequent commands on the same line are ignored. Refer to the &W 
command for description of which modem parameters are included in a stored 
profile. Z0 recalls stored user profile 0, stored with &W0; Z1 recalls stored 
user profile 1, stored with &W1.  

Z0  Recall stored profile 0

Z1  Recall stored profile 1

&B - V.32 Auto Retrain Options
The &B command is used to enable and disable auto retrain in V.32 mode. During 
a V.32 or a V.22bis connection, the modem continually monitors line quality. 
The &B command determines whether the modem ignores a line quality problem or 
attempts to correct the situation by retraining. The selection made with this 
command affects V.32 connections only.

&B and &B0  Disable V.32 Auto Retrain 

&B1         Enable V.32 Auto Retrain

&C - Data Carrier Detect Options
The &C command determines how the state of the DCD lead relates to the carrier 
from the distant end. The command will take effect immediately when issued. 
The behavior patterns for DCD depend on the specific &C and &Q commands in 
effect. Also, DCD patterns depend on whether on-line operation is half or full 
duplex. Finally, if &Q5 is in effect, DCD behavior depends on whether S10=255 
or S10<255. DCD circuit operation is according to the descriptions below.

DCD Behaviors for Half-Duplex Operation
              &C0  &C1  &C2
----------------------------------------
&Q1           E    C    C
&Q2           E    C    C
&Q3           E    C    C
&Q4           E    C    C
&Q5           A    E    A
&Q5 (S10=255) A    C    F

DCD Behaviors for Full-Duplex Operation
             &C0   &C1 &C2
----------------------------------------
&QO           A    B    D
&Q1           B    B    B
&Q2           B    B    B
&Q3           B    B    B
&Q4           B    B    B
&Q5           A    E    A
&Q6           A    B    D
&Q5 (S10=255) A    B    D

Table Legend:

A - The DCD circuit is ON at all times

B - DCD=0 in Idle, DCD tracks carrier in On-Line State with S9:
    The DCD circuit is OFF while the connection attempt is being made. It goes
    ON immediately after the CONNECT result code is issued, and goes OFF 
    immediately after loss of remote carrier. If the remote carrier is 
    restored and the S9 (carrier detect response time) delay is completed 
    before the S10 (lost carrier to hang-up) delay expires, then hang-up is 
    avoided and the DCD circuit goes ON again as the modem goes on-line. 
    Otherwise, DCD remains OFF during the hang-up process prior to the result 
    code message. If S10=255, hangup will not occur unless initiated by the 
    DTE.

C - DCD=0 in Idle, DCD tracks carrier in On-Line State without S9:
    The DCD circuit is OFF when the modem is idle. It goes ON immediately 
    after the CONNECT result code is issued, and goes OFF immediately after 
    loss of remote carrier. If the remote carrier is restored, then DCD will 
    go ON regardless of the S9 value in effect.

D - DCD=1 in Idle, DCD tracks in On-Line with S9:
    The DCD circuit is normally ON when the modem is idle, and it is ON while 
    the remote carrier is present and the modem is on-line. The signal goes 
    OFF immediately after loss of remote carrier. If the remote carrier is 
    restored, then DCD will go ON again regardless of S9. If the Hangup 
    Process is initiated by the DTE using DTR or issuing ATH<CR> from the 
    on-line state, then DCD will return ON just prior to the modem issuing the 
    OK result code. If S10<255 (lost carrier to hang-up delay) and a timeout 
    equal to S10 expires before the remote carrier is restored, then the 
    hang-up process begins during which DCD=0. DCD will return ON again just 
    prior to the issue of the NO CARRIER result code. If the remote carrier is 
    restored and the S9 delay is completed before the S10 delay expires; then 
    the modem does not hangup, and DCD will go ON again when the modem returns 
    on on-line.

E - DCD=0 in Idle, DCD=1 in On-Line State (no tracking):
    The DCD circuit is OFF when the modem is idle in the command state. DCD 
    goes ON immediately after the CONNECT result code is issued, and it goes 
    OFF when the modem begins the hangup process. DCD does not track the 
    presence of remote carrier energy.

F - DCD=1 in Idle, DCD tracks in On-Line without S9:
    This behavior pattern is associated only with (&C2, &Q5, S10=255, half 
    duplex), and it only occurs at 4800 and 9600 bps in Hayes proprietary V.32 
    half-duplex operation (Ping Pong). The DCD circuit is normally ON when the 
    modem is operating in half duplex and idle in the command state, and it is 
    ON while the remote carrier is present in the on-line state. It goes OFF 
    approximately 3 seconds after loss of remote carrier. If the remote 
    carrier is restored, then DCD will go ON again (regardless of S9). If the 
    hangup process is initiated by the DTE using DTR or escaping to command 
    state and issuing ATH<CR> when on-line, DCD will return ON just prior to 
    the modem issuing the OK result code. The modem will not begin the hangup 
    process if S10=255.

&D - Data Terminal Ready Options
The &D command affects how the modem will respond to the state of the DTR 
signal and changes to this circuit. The effects of DTR states and changes are 
also very dependent upon the &Q command that is in effect. The test modes 
associated with certain &T commands are only affected by DTR changes when &D3 
is in effect and are not affected by &Q command options. Below, DTR-related 
behaviors are defined in relation to the &D and &Q commands in effect in smart 
mode. In dumb mode, the behavior is as defined below for &D2 regardless of the 
actual &D command in effect.

DTR Behaviors in Smart Mode
      &D0        &D1        &D2        &D3
-----------------------------------------------
&Q0   none       E          I, H       R
&Q1   H          E          I, C, H    R
&Q2   I, D, H    I, D, H    I, D, H    I, D, R
&Q3   I, O, H    I, O, H    I, O, H    I, O, R
&Q4   H          E          I, C, H    R
&Q5   none       E          I, S       R
&Q6   none       E          I, S       R


Legend for Table Above -
Auto-Answer Function
I   The DCD circuit is ON at all times.

DTR OFF-to-ON Effects:
-----------------------------------------------------------------------------
D  If S1=0 and in the idle condition, DTR OFF-to-ON signals the modem to go 
   off hook and start the dialing process using the dial string stored by the
   last &Z0= command. S25 does not affect the modem's reactions to DTR going 
   OFF-to-ON.

O  If S1=0 and in the idle condition, DTR OFF-to-ON signals the modem to go 
   off hook and start the originate handshake process. S25 does not affect the 
   modem's reactions to DTR going OFF-to-ON.

C  Following a CONNECT result code, DTR must go ON before the time specified 
   by S25 (in seconds), or CTS will not go ON and the modem will go to the 
   Hangup Process, issue the NO CARRIER result code, at the Response Speed,
   and go to the idle condition.

DTR ON?to?OFF Effects
-----------------------------------------------------------------------------
E  If in the on-line state, DTR ON-to-OFF signals the modem to exit the 
   on-line state, issue an OK result code at the response speed, and go to 
   command state, while maintaining the connection. DTR transitions to OFF 
   that do not persist more than the time specified by S25 will not cause the 
   modem to exit the on-line state.

H  If in the on-line state, or in the handshaking, dialing, or answer process,
   DTR ON-to-OFF signals the modem to execute the hangup process, issue an OK 
   result code at the response speed, and go to the idle condition. The modem 
   is not reset by DTR. This will also abort any dial, handshake, or answer in 
   process. DTR transitions to OFF that do not persist more than the time 
   specified by S25 will not trigger a transition to the hangup process.

R  DTR ON-to-OFF signals the modem to immediately perform a hard reset 
   regardless of state. All processes are aborted. S25 does not affect the 
   modem's reactions to DTR going OFF-to-ON. There is no result code.

S  If in On-Line, or in the Handshaking, dialing processes, or answer process, 
   a transition of DTR ON-to-OFF signals the modem to shut down the 
   communications link. When the modem has completed transmitting the data 
   placed into its buffer by the DTE and has completed sending the received 
   data to the DTE, the modem will execute the hangup process, issue an OK 
   result code at the response speed, and remain idle in the command state.
   The modem is not reset by DTR. This will also abort any dial, handshake, or 
   answer in process. DTR transitions to OFF that do not persist more than the 
   time specified by S25 will not trigger a transition to the hangup process.

&F - Recall Factory Profile
The &F command recalls the configuration stored programmed in ROM at the 
factory. This operation completely replaces the command options and S-Register 
values in the active configuration with those comprising the factory 
configuration. For the commands and registers stored and their factory-set 
values, see the AT Command Set Reference Card accompanying your modem.

&G - Guard Tone Selection
The &G command tells the modem which guard tone, if any, to transmit while 
transmitting in the high band (answer mode). Guard tone is transmitted only 
while the modem is in the transmitting in the answer mode and during the 
answer handshake.

&G0  Guard tones disabled

&G2  1800 Hz guard tone enabled (V.22,V.22bis only)


&J - Jack Type Selection (Auxiliary Relay Options)
The &J command designates the type of jack with which the modem is connected 
to the telephone line. This selection is made by changing the way the 
auxiliary relay is controlled. The auxiliary relay connects the A lead to the 
A1 lead, but is normally open.

&J0   The auxiliary relay is never closed.(suitable for RJ-11, RJ-41S, or 
      RJ-45S type phone jack)

&J1  The auxiliary relay is closed while modem is off hook.(suitable for RJ-12
     or RJ-13 type phone jack)


&K - Local Flow Control Options
The &Kn command is used to select the local flow control method for use when 
the modem is operating in error-control mode or asynchronous mode with 
Automatic Speed Buffering (ASB). ASB is used for communication environments 
requiring a "Fixed Speed Interface" between the modem and the DTE.

S39 stores the current flow control setting. Flow control is always inhibited 
in command state and is valid only when on-line in error-control mode. Bi-
directional flow control regulates the data stream between the DTE and the 
modem. Specific functions depending on parameter value is as follows:

&K0  All flow control is disabled. May be selected for use during 
     error-control mode at the risk of overflowing the buffers and 
     losing data

&K1  RTS/CTS flow control is enabled. Note that the DTE-V-series cable must 
     have the supporting wires. The &T19 command may be used by software to 
     determine if the cable is properly wired

&K2  XON/XOFF flow control is enabled. These characters are not programmable 
     and are fixed at DC1 and DC3, respectively. This method should not be 
     used when XON/XOFF characters will be sent as user data or as part of a 
     file transfer protocol

&K3  RTS/CTS flow control is enabled. Note that the DTE-V-series cable must 
     have the supporting wires. The &T19 command may be used by software to 
     determine if the cable is properly wired

&K4  XON/XOFF flow control is enabled. These characters are not programmable 
     and are fixed at DC1 and DC3, respectively. This method should not be 
     used when XON/XOFF characters will be sent as user data or as part of a 
     file transfer protocol

&K5  Transparent XON/XOFF The data stream is controlled by characters DC1 and 
     DC3, The chars DLE, DC1, and DC3 are transparentized by sending DLE 
     followed by the character XORed with 21hex


&L - Line Type Selection (Dialup/Leased)
The &L1 command instructs the modem to alter its function for leased line 
environments. The modem will act as if S10=255 and M0 are in effect. It will 
not dial numbers or send answer tone. The modem must receive an X1D or A 
command to go on-line. The modem will then go to the dialing or answering 
process, respectively. Once the handshaking process is completed, the modem 
tries to stay in the on-line state. When it loses carrier, it returns to the 
dialing or answering process. Carrier level is determined in one of several 
techniques, depending on the particular modem. See the Installation Guide for 
information on setting carrier level.

&L0  Select Dial up line operation
&L1  Select Leased line operation

&O - PAD Channel Selection
The &O command instructs the modem to move from AT command state to a PAD 
waiting state where it is ready to receive X.25 commands. A Reset operation 
(see Chapter Two: V-series X.25 Communications) is performed on the selected 
channel. This command can be issued while off-line so that the PADs may be 
configured prior to making a connection.

&O0  Move to the PAD command state of the last channel accessed 
     (or to channel 1 if no previous channel has been selected) 
&O1  Move to the PAD command state for channel 1
&O2  Move to the PAD command state for channel 2
&O3  Move to the PAD command state for channel 3
&Q4  Move to the PAD command state for channel 4

&Q - Communications Mode Options
The &Q command selects the communication mode. The &Q command determines how 
the modem will treat transmitted and received data while in the on-line state 
(i.e., asynchronous, synchronous, AutoSync, or error-control) and establishes 
certain call setup procedures. Refer also to the &C, &D, and &S commands in 
this section.

Command  On-Line State          Special Features
-----------------------------------------------------------------------------
&Q0      Asynchronous           DCD and DSR behaviors are unique. Refer to &C 
                                and &S commands

&Q1      Synchronous            DTR must be ON after CONNECT when timer value 
                                in S25 expires

&Q2      Synchronous            DTR OFF-to-ON executes dialing process; the D 
                                command invalid DTR ON-to-OFF executes the  
                                hangup process; the A command is invalid

&Q3      Synchronous            Dialing and Voice allowed from phone set when  
                                DTR is OFF. DTR OFF-to-ON executes the 
                                handshaking process (in originate mode); the D  
                                command is invalid. DTR ON-to-OFF executes 
                                hangup process; the A command invalid

&Q4      Hayes AutoSync         DTR must be ON after CONNECT when timer equal 
                                to S25 expires. DTE data speed is 9600 bps 
                                which is not equal to response speed or line 
                                speed, yet all result codes are at the 
                                response speed

&Q5      Error-Control          This enables error-control and is unique to 
                                V-series system products. Depending upon which
                                V-series system product is being used, any one 
                                of several point to point protocols can be 
                                negotiated: LAPB, LAPM, X.25 or MNP. After the 
                                modem handshake is complete, feature 
                                negotiation (see S48) is used to determine 
                                which protocol (see S46) will be used for the 
                                communication session. If no common protocol 
                                is found between the local and remote modems,
                                the fall back options (see S36) will be used

&Q6	Buffered Asynchronous     Automatic Speed Buffering is useful for DTEs
                                that cannot adjust to changing transmission 
                                speeds. This mode ensures the DTE-modem speed 
                                is set at a constant rate regardless of the 
                                line speed determined during the modem 
                                handshake. With the exception of flow control 
                                (&Kn) between the DTE and the attached modem, 
                                this mode is identical to the standard 
                                asynchronous mode (&Q0). ASB operation is also 
                                a fall back option (see S36) when the modem is 
                                set for error-control mode (&Q5. Because the 
                                DTE and DCE speeds are different in ASB, a 256 
                                byte buffer is provided so that flow control 
                                does not occur on every character 
                                transmission. Some DTEs are sensitive to the 
                                buffer size so S-registers are provided to 
                                control the lower (S49) and upper (S50)
                                boundaries

&R - RTS/CTS Options
The functions of CTS and RTS in synchronous modes (&Q1, &Q2, and &Q3) is 
determined by the &R command. The &R command has no effect if &Q0, &Q4, &Q5, 
or &Q6 is in effect. See also the discussion of the CTS and RTS signals in 
Chapter Three. Refer to the &K command for other RTS and CTS functions. Note 
when &Q4 is in effect (AutoSync operation), RTS and CTS behaviors are not 
unlike those specified by EIA 232-D/CCITT V.24.

In Synchronous Modes (&Q1, &Q2, and &Q3):
-----------------------------------------------------------------------------
&R0  CTS tracks RTS while the modem is in On-Line State and observes the 
     RTS-to-CTS delay determined by S26

&R1  CTS is ON while the modem is in the On-Line State, and RTS is ignored.

In Other Modes (&Q0, &Q4, &Q5, and &Q6), the &R option in effect does not 
control the RTS and CTS functions.

&S - Data Set Ready Options
The &S command controls the functions of the DSR circuit. The DSR circuit (pin 
6 of the EIA 232-D interface) indicates when the modem is connected a 
communication channel and is ready.

In synchronous mode, when originating a call, DSR goes high when dialing is 
completed and an answer tone is detected from the remote modem. When answering 
a synchronous call, DSR goes high when the modem begins transmitting the 
answer tone.

In asynchronous or error-control mode, the &S command can be used to configure 
the modem to keep the DSR signal high at all times or to have it operate 
according to the EIA 232-D specification (as described in Chapter Three).

When &Q0, &Q5, and &Q6 are in effect:
-----------------------------------------------------------------------------
&S0  DSR circuit is always on

&S1  DSR=0 in the Idle State and when in a test mode. DSR circuit is turned ON
     at start of the Handshaking Process. DSR is turned OFF when Hangup 
     Process is started

&S2  DSR=0 in the Idle State and when in a test mode. DSR circuit is turned ON
     at end of handshake prior to issuing of the CONNECT result code. DSR is 
     turned OFF when hangup process is started

When &Q1 to &Q4 are in effect:
-----------------------------------------------------------------------------
&S0-1  DSR=0 in the command state and at idle. DSR circuit is turned ON at 
       start of the handshaking process. DSR is turned OFF when hangup process
       is started

&S2    &S2- DSR=0 in the command state and at idle. DSR circuit is turned ON 
       at end of handshake prior to issuing of the CONNECT result code. DSR is 
       turned OFF when Hangup Process is started


&T - Test Options
The following &T command options are used to configure and place the modem in 
various test modes as defined by CCITT V.54. These tests can be used to verify 
the analog and digital portions of the modem's operation, as well as those of 
the remote modem. Some of these tests require a connection be established 
before running the procedure. The &T19 command (not a CCITT V.54 test) can be 
used to test the RTS/CTS functions of the cable used to attach the modem to 
the DTE. 

&T0 - Terminate Test In Process
If a V.54 Loopback Test is in process as a result of executing an &Tn command, 
then the &T0 command will cause that test to be terminated provided that the 
modem is in the command state, or a V.54 state that accepts commands from the 
DTE. See specific &T command descriptions for termination actions.

&T1 - Initiate Local Analog Loopback
The modem goes on hook and configures itself for analog loopback (using low 
frequency band if no suffix or "O" suffix, and high frequency band if "A" 
suffix). DSR is turned off (if &S1 is in effect), the analog loopback state is 
entered, and the test timer is set to the value in S18. A CONNECT result code 
is sent to the DTE, and the test timer then begins its count down. The test 
terminates when the test timer expires. If S18 equals 0, then the test must be 
terminated by an &T0, H0, or Z command. While any command may be entered while 
the modem is in this test state, the modem response is not specified except 
for H0, &T0, and Z - any of which will terminate the test. Upon termination of 
the test, the modem enters the command state.

Result Codes:  Description
-----------------------------------------------------------------------------
CONNECT        when local analog loopback state is entered
ERROR          if any other &Tn test is active (except &T0) or if 
               in the On-  Line Command State
OK             after test is stopped by test timer, the H0 command, 
               or the &T0   command

&T3 - Perform Local Digital Loopback
The modem must be in the command state with a connection established when this 
command is issued. Otherwise an ERROR result code occurs. This command 
establishes a loopback of received data, after demodulation, and sends it back 
to the distant end. The modem is configured for local digital loopback, DSR is 
turned off (if &S1 is in effect), the test timer is started with the value in 
S18, and an OK result code is sent to the DTE . If S18 contains a 0, the test 
must be terminated by a &T0, H0, or Z command. The latter two result in the 
modem going on hook. If S18 does not contain 0, the test is terminated after 
the number of seconds stored in S18.

Result Codes:  Description
-----------------------------------------------------------------------------
OK             after 2 s delay
ERROR          if any other self test is active (&T1,&T6-&T8) 
               or if in Idle State
OK             when test is terminated

&T4 - Grant RDL Requests
When in the On-Line State the modem will honor a remote digital loopback 
request from a distant modem if it occurs. This will result in an ERROR if the 
command is given while any V.54 test is active (&T1, &T3, &T6, &T7, or &T8).

&T5 - Deny RDL Requests
The modem will not respond to a remote digital loopback request from a distant 
modem. This will result in an ERROR if the command is given while any V.54 
test is active (&T1, &T3, &T6, &T7, or &T8).

&T6 - Initiate Remote Digital Loopback
The command is valid only if the modem is in the command state with a 
connection at 1200 or 2400 bps. The modem sends the remote digital loopback 
request signal to the distant modem (see CCITT V.22 and V.54). After the RDL 
acknowledgment signal is received from the distant modem, DSR is turned off 
(if &S1 is in effect), the on-line state is entered, a CONNECT result code is 
sent to the DTE, and the test timer is set to the value in S18. If the modem 
does not receive the RDL acknowledgment signal from the distant end in three 
seconds, it sends an ERROR result code to the DTE and returns to the command 
state. The modem sends the signal specified in CCITT V.22 to release the 
remote digital loopback when the test is terminated. The test may be 
terminated by the H0, Z, or &T0 command. The test will also terminate when the 
test timer expires (sending the modem to the command state) or carrier is lost 
(causing a NO CARRIER result code and the modem to go on hook in the command 
state).

Result Codes:  Description
-----------------------------------------------------------------------------
CONNECT        when On-Line State is entered
ERROR          if any V.54 test is active (&T1, &T3, &T6-&T8)
ERROR          if not in On-Line Command State
ERROR          if command is issued at other than 1200 or 2400 bps
ERROR          if the RDL signal is not acknowledged

&T7 - Initiate RDL With Self Test
The command is only valid if the modem is in the command state with a 
connection at 1200 or 2400 bps. The modem sends the remote digital loopback 
request signal to the distant end (see CCITT V.22). After the RDL 
acknowledgment signal is received from the distant end, DSR is turned off (if 
&S1 is in effect), the on-line state is entered, an OK result code is sent to 
the DTE, and the test timer is set to the value in S18. While the test is 
active the modem sends a test message to the distant end and counts the errors 
in the received (looped back) signal. The modem stays in the command state 
during the test. When the test is terminated (except by a loss of carrier), 
the modem sends the release signal to the distant end, as in &T6, and reports 
the three-digit error count to the DTE. The information text is followed by an 
OK result code. See the V command for formats. The test is terminated by loss 
of carrier, or an H0, &T0, or Z command, and by the S18 timer running out.

Result Codes:  Description
-----------------------------------------------------------------------------
OK             when command executed is started
OK             after error count is sent to DTE
ERROR          if any other self test is active (&T1,&T3,&T6-&T8) 
ERROR          if not in On-Line Command State
ERROR          if command is issued at other than 1200 or 2400 bps
ERROR          if the RDL acknowledgment signal is not received

&T8 - Local Loopback With Self Test
The modem goes on hook and is configured for analog loopback (low frequency 
band if none or O suffix, high frequency band if A suffix). The test timer is 
started at the time indicated by S18, DSR is turned off (if &S1 is in effect), 
A selftest condition is entered, and an OK result code is sent to the DTE. 
During the test the modem sends a test message and counts errors in the looped 
back signal. The test is terminated when the timer times out (S18) or the &T0, 
H0, or Z command is issued. When the test is terminated, the three-digit error 
count is sent to the DTE. An OK result code follows the error count.

Result Codes:  Description
-----------------------------------------------------------------------------
OK             if AL Selftest state is entered
OK             after error count is sent to DTE
ERROR          if any other V.54 test is active (&T1,&T3,&T6,&T7), 
               or if on-line


&T19 - Perform RTS/CTS Cable Test
This test is used to determine whether the DTE-to-DCE cable supports the RTS 
and CTS signals necessary for hardware flow control. This procedure should be 
used by software before RTS/CTS flow control (&K3) is used. The modem takes 
the following action when the &T19 command is issued:

1. Turns OFF CTS (normally ON) and starts a 500 ms timer.

2. Monitors RTS for ON and OFF states.

3. After the 500 ms timeout or when both level-high and level-low states of 
   RTS are detected, the modem restores CTS to the ON condition and ends 
   the test.

4. If both the on and off conditions of RTS are NOT detected, the modem 
   returns the ERROR result code; otherwise, it issues the OK result code.

&U - Trellis Coding Options
The &U command is used to enable and disable Trellis coding for V.32 
connections. This selection affects V.32 9600 bps transmissions only.

&U0   Enable Trellis coding
&U1   Disable Trellis coding 

&V - View Configuration Profiles
The &V command is used to display the active and stored profiles (commands and 
S-Register settings) along with any stored telephone numbers. Input from the 
DTE is ignored while this view configuration information is being sent to the 
DTE. 

The example below illustrates the &V info-text when the factory profile is 
loaded and then stored into the stored profiles, and an arbitrary phone number 
is stored in one of the stored numbers locations.

ACTIVE PROFILE:
B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 
&R0 &S0 &T4 &U0 &X0 &Y0
S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:030 S08:002 
S09:006 
S10:014 S11:070 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 
S44:003
S46:002 S48:007 S49:008 S50:016 S95:000

STORED PROFILE 0:
B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 
&R0 &S0 &T4 &U0 &X0
S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:014 S11:095 S12:050 
S18:000
S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 
S50:016

STORED PROFILE 1:
B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 
&R0 &S0 &T4 &U0 &X0
S00:000 S02:043 S06:002 S07:050 S08:002 S09:006 S10:014 S11:095 S12:050 
S18:000
S25:005 S26:001 S36:005 S37:000 S38:020 S44:003 S46:002 S48:007 S49:008 
S50:016

TELEPHONE NUMBERS:
0=
1=T9W14045551212
2=
3=

The three-digit numbers after each S-Register number are decimal 
representations of the S-Register contents.

&W - Write Active Profile to Memory
The &W command stores certain command options and S-Register values into one 
of the modem's two nonvolatile stored profile memory locations. The command 
options and register values stored depend on the particular modem. These are 
indicated on the AT Command Set Reference Card. In addition, the AT speed and 
parity are stored, according to the values used at the time the command is 
issued. 

&W0  Store the Active Profile into Stored Profile 0
&W1  Store the Active Profile into Stored Profile 1

&X - Synchronous Transmit Clock Source
The &X command determines how the DTE transmit clock is generated while the 
modem is in the synchronous mode.

&X0  Modem generates the transmit clock and applies it to pin 15 (EIA 232-D)

&X1  DTE generates the transmit clock on pin 24 (EIA 232D) and the modem 
     applies this clock to pin 15 (EIA 232D). This setting is available for 
     external modems only

&X2  Modem derives the transmit clock from the receive carrier signal and 
     applies it to pin 15 (EIA 232-D)

&Y - Select Stored Profile For Hard Reset
The &Y command selects which stored profile will be copied into the active 
profile subsequent to a hard reset (including power-up). The &Y command 
execution is nonvolatile, stored at the time the command is executed, not by 
the &W command. The value selected with this command is not affected by the &F 
command, although &Y0 is selected as part of the overall factory setup.

&Y0  Select Stored Profile #0 on powerup
&Y1  Select Stored Profile #1 on powerup

&Zn=x - Store Telephone Number
The &Zn=x command is used to store up to four dialing strings in the modem's 
nonvolatile memory for later dialing. The format for the command is 
&Zn="stored number" where n is the location 0-3 to which the number should be 
written. For example, the line AT&Z2=1552368<CR> writes 1552368 as the third 
of four possible numbers to the modem's "telephone book" in nonvolatile 
memory. The &Zn=x command can be used to store a number with as many as 36 
characters. 

Any dialing string can be saved except the S dialing modifier (this would 
cause a stored dialing string to attempt to dial another stored string), or 
the ; modifier if used for automatic dialing in synchronous mode 2. If no dial 
string follows the command, the referenced stored number will be cleared.

&Z    <dial string><CR>
&Z=   <dial string><CR>
&Zn=  <dial string><CR>     ... where n=0-3

If the delimiter (=) is not present, the characters following the &Zn=x are 
treated as telephone numbers and/or modifiers and are stored in location 0. 
For example, in &Znxxxx, the n is a part of the phone number. If the delimiter 
is present the characters following it are stored in the location specified by 
the character preceding the delimiter (which must be in the range 0-3). If no 
character precedes the delimiter, the number is stored in location 0. If an 
invalid location is specified (n) the modem sends an ERROR result code.

Characters not listed above as storable are ignored. For example, the command 
&Z1=3456H;AX would store 3456;A.


1.2  Result Code Listing
This section defines the result codes returned by Hayes modems in response to 
commands.

The table below shows the various formats in which modem responses can be 
presented. Note that the "text" of the info-text may consist of multiple lines 
of text. The formats depicted here only refer to the <CR><LF> characters 
between info-texts and not within them.

                   V0             V1
-------------------------------------------------
Information Text   text           <CR><LF>
                   <CR><LF>       text
                                  <CR><LF>

Result Codes       numeric code   <CR><LF>
                   <CR>           verbose code
                                  <CR><LF>

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.2.1  Command Response and Call Progress Monitoring
This set of result codes includes responses to commands and call progress 
monitoring responses. They are available to all modems within the capabilities 
of the modem. For example, the result code CONNECT 9600 is not available to 
Smartmodem 2400. The factory setting for all high-speed modems enables the 
extended set of call progress monitoring (X4). When set up in this way, the 
modem performs and reports full call progress monitoring (RING, NO CARRIER, NO 
DIALTONE, and BUSY). It also indicates the speed of the connection (CONNECT 
1200 as opposed to simply CONNECT). The factory setting for Smartmodem 300, 
Smartmodem 1200, and all others whose highest speed is 1200 bps is basic call 
progress monitoring (X0).

The command response and call progress monitoring result codes are defined 
below:

0 - OK
This result code indicates that a command or command string was executed. Note 
that if more than one command were included on a line and an ERROR result code 
received, this means that one or more of the commands was not processed. If 
one or more were executed properly, but even one was invalid, no OK will be 
issued, only the ERROR.

1 - CONNECT 
This result code indicates a connection was made between the DTE and the 
modem. If X4 (extended set of call progress monitoring) were selected, the 
code indicates that a connection from at 0 to 300 bps was made. However, if X0 
(basic set of call progress monitoring) were selected, the connection could be 
0-300, 1200, 1200/75, 75/1200, 2400, 4800, 9600,19200, or 38400 bps. If the 
modem is not operating in error-control mode, this is the same as the line 
speed. See other CONNECT messages and CARRIER messages.

2 - RING
This result code indicates the modem as detected a ring signal. No distinction 
can be made as to whether this is a voice call, a modem call, a fax call, or 
other type.

3 - NO CARRIER
This result code indicates that no carrier signal was detected, or that the 
signal was lost. This is the response the modem will give when no connection 
is made; see CONNECT result code. The modem will also return this message when 
the connection is broken, either intentionally as when the hangup process 
completes, or if line difficulties break the connection.

4 - ERROR
This result code indicates that an invalid command was issued, or that there 
was an error in the command line. For example, if the command line exceeds 40 
characters for Smartmodem Products or 255 characters for V-series System 
Products, this result code will be returned. This result code is also returned 
in response to the I1 command requesting a ROM checksum, if the modem detects 
an error in the computation.

5 - CONNECT 1200
This result code indicates a connection has been established at 1200 or 
1200/75, 75/1200, bps between the modem and the DTE. If the modem is not 
operating in error-control mode, this is the same as the line speed. This 
result code is disabled by X0. Only CONNECT is reported.

6 - NO DIALTONE
This result code indicates that no dial tone was detected when the modem went 
off hook. Dial tone detection and this result code are enabled by X2 or X4, or 
the W dial modifier.

7 - BUSY
This result code indicates that the modem detected a busy signal when it 
attempted to connect with the modem at the number dialed. Busy signal 
detection and this result code are enabled by X3 or X4.

8 - NO ANSWER
This result code indicates no silence was detected when dialing a system not 
providing a dial tone. Enabled by the @ dial modifier.

10 - CONNECT 2400
This result code indicates a connection has been established at 2400 bps 
between the modem and the DTE. If the modem is not operating in error-control 
mode, this is the same as the line speed. This result code is disabled by X0. 
Only CONNECT is reported.

11 - CONNECT 4800
This result code indicates a connection has been established at 4800 bps 
between the modem and the DTE. This result code is disabled by X0.

12 - CONNECT 9600
This result code indicates a connection has been established at 9600 bps 
between the modem and the DTE. This result code is disabled by X0.

14 - CONNECT 19200
This result code indicates a connection has been established at 19200 bps 
between the modem and the DTE. This result code is disabled by X0.

22 - CONNECT 1200/75
This result code indicates a connection has been established at 1200 bps when 
transmitting data and 75 bps when receiving data between the modem and the 
DTE.

23 - CONNECT 75/1200 
This result code indicates a connection has been established at 75 bps when 
transmitting data and 1200 bps when receiving data between the modem and the 
DTE.

28 - CONNECT 38400
This result code indicates a connection has been established at 38400 bps 
between the modem and the DTE. This result code is disabled by X0.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.2.2  Negotiation Progress Messages
V-series system products report special result codes during error-control 
negotiation. Whether or not these messages are displayed is selected with the 
W command (not to be confused with the W dial modifier). The factory setting 
is messages disabled (W0) to avoid conflict with software programs that do not 
support this additional level of call progress monitoring.

40 - CARRIER 300
This message indicates that a carrier signal has been detected at 300 bps 
(modem-to-modem line speed).

44 - CARRIER 1200/75
This message indicates that a carrier signal has been detected at 1200 bps 
when transmitting and at 75 when receiving (modem-to-modem line speed).

45 - CARRIER 75/1200
This message indicates that a carrier signal has been detected at 75 bps when 
transmitting and at 1200 bps when receiving (modem-to-modem line speed).

46 - CARRIER 1200
This message indicates that a carrier signal has been detected at 1200 bps 
(modem-to-modem line speed).

47 - CARRIER 2400
This message indicates that a carrier signal has been detected at 2400 bps 
(modem-to-modem line speed).

48 - CARRIER 4800
This message indicates that a carrier signal has been detected at 4800 bps 
(modem-to-modem line speed).

50 - CARRIER 9600 
This message indicates that a carrier signal has been detected at 9600 bps 
(modem-to-modem line speed).

66 - COMPRESSION: CLASS 5
This message indicates that data compression using MNP Class 5 has been 
negotiated for the connection.

67 - COMPRESSION: V.42BIS
This message indicates that data compression using CCITT V.42bis has been 
negotiated for the connection.

68 - COMPRESSION: ADC
This message indicates that data compression using Hayes Adaptive Data 
Compression has been negotiated for the connection.

69 - COMPRESSION: NONE
This message indicates that data compression was not negotiated for the 
connection.

70 - PROTOCOL: NONE
This message indicates that no protocol was negotiated for the connection. A 
standard asynchronous connection was made.

71 - PROTOCOL: ERROR-CONTROL/LAP-B
This message indicates that an error-control connection was negotiated with 
LAPB protocol. This protocol is the one used by the first V-series System 
Products.

72 - PROTOCOL: ERROR-CONTROL/ LAP-B/HDX 
This message indicates that a half-duplex error-control connection was 
negotiated with LAPB protocol. This protocol is the one used by the first V-
series System Products communicating at 9600 bps.

73 - PROTOCOL: ERROR-CONTROL/LAP-B/AFT
This message indicates that an error-control connection was negotiated using 
the Hayes Asynchronous Framing Technique. This protocol is used for 
connections between modems such as Smartmodem 1200 that do not communicate 
synchronously across the telephone line. AFT enables an error-control protocol 
to be used.

74 - PROTOCOL: X.25/LAP-B
This message indicates that an error-control connection using the X.25 
protocol was established with a carrier speed of 1200, 2400, 4800, or 9600 
bps.

75 - PROTOCOL: X.25/LAP-B/HDX
This message indicates that a half-duplex error-control connection using the 
X.25 protocol was established with a carrier speed of 4800 or 9600 bps.

76 - PROTOCOL: X.25/LAP-B/AFT
This message indicates that an asynchronous error-control connection using the 
X.25 protocol was established with a carrier speed of 1200 bps. The Hayes 
Asynchronous Framing Technique was used.

77 - PROTOCOL: LAP-M
This message indicates that an error-control connection using the V.42 LAPM 
protocol was established with a carrier speed of 1200, 2400, 4800, or 9600 
bps.

78 - PROTOCOL: LAP-M/HDX V.42
This message indicates that a half-duplex error-control connection using the 
V.42 LAPM protocol was established with a carrier speed of 4800 or 9600 bps.

79 - PROTOCOL: LAP-M/AFT
This message indicates that an asynchronous error-control connection using the 
V.42 LAPM protocol was established with a carrier speed of 1200 bps. The Hayes 
Asynchronous Framing Technique was used.

80 - PROTOCOL: ALT
This message indicates that an error-control connection using the V.42 LAPM 
alternative protocol was established with a carrier speed of 1200, 2400, 4800, 
or 9600 bps. This protocol is MNP Classes 2, 3, and 4 compatible.

91 - AUTOSTREAM: LEVEL 1
This message indicates that Hayes AutoStream Level 1 has been negotiated for 
the connection. This technique provides for multiplexing of multiple virtual 
channels.

92 - AUTOSTREAM: LEVEL 2
This message indicates that Hayes AutoStream Level 2 has been negotiated for 
the connection. This technique provides for multiplexing of multiple virtual 
channels, with transparent control of one PAD (non-simultaneous).

93 - AUTOSTREAM: LEVEL 3
This message indicates that Hayes AutoStream Level 3 has been negotiated for 
the connection. This technique provides for multiplexing of multiple virtual 
channels, with transparent control of all PADs (simultaneous).


Negotiation progress messages are reported in the following order:

     CARRIER
     PROTOCOL
     AUTOSTREAM
     COMPRESSION
     CONNECT

If AutoStream is not used, no message is reported.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.2.3 Information Text (INFO-TEXT)
Some commands, such as &V and Sr? return information text as opposed to 
numeric or verbose codes. The alpha characters are headings and commands and 
the numbers are command options, ASCII values, counter values, etc. The 
example below illustrates a modem response to a command with information text.

ACTIVE PROFILE:
B0 B41 B60 E1 L2 M1 N1 P Q0 V1 W0 X4 Y0 &C0 &D0 &G0 &J0 &K3 &Q5 
&R0 &S0 &T4 &U0 &X0 &Y0
S00:000 S01:000 S02:043 S03:013 S04:010 S05:008 S06:002 S07:030 S08:002 
S09:006 
S10:014 S11:070 S12:050 S18:000 S25:005 S26:001 S36:005 S37:000 S38:020 
S44:003
S46:002 S48:007 S49:008 S50:016 S95:000

Information Text is always a combination of alpha and numeric. The V command 
has no effect on the format of this command response.


1.3 S-Register Listing
The following definitions include all S-Registers defined for the various 
families of Hayes modems. Some factory settings and ranges are included here 
because they are almost universally implemented with these values; however, be 
sure to consult the AT Command Set Reference Card that came with your modem 
for the S-Registers and their ranges/factory settings that your modem 
supports. Note that register numbers not included in this listing are those 
for which no function has been assigned.

S0 - Ring to Answer 
After S0 sets the ring number on which the modem automatically answers a call 
when auto-answer mode is selected. S0=0, the factory setting, disables auto-
answer.

S1 - Ring Count
When the modem is in the command state and set for auto-answer (Register 
S0>0), the modem automatically tracks the number of times the phone rings, 
incrementing and writing the value in S1. The value reverts to 0 if no ring 
occurs for 8 seconds. Once a connection is made, the modem resets the value of 
this register to 0. Note that two short ring bursts within a ring cycle are 
counted as two rings.

S2 - Escape Sequence Character
This register holds the ASCII value of the escape sequence character. The 
factory-set value is ASCII 43, the plus sign (+). The value for this register 
can be set to any ASCII value between 0 and 127. Setting S2 to a value greater 
than 127 disables the escape sequence, preventing the modem from returning to 
the command state and disabling command recognition.

S3 - Carriage Return Character
This register holds the ASCII value of the line terminating character. The 
factory-set value is ASCII 13 - carriage return (<CR>) - the range for the 
register is 0-127. This character is used both as the command line terminator 
and the result code terminator.

S4 - Line Feed Character
This register holds the ASCII value of the line feed character. The factory 
setting is 10; the range is 0-127.

S5 - Backspace Character
This register holds the ASCII value of the backspace character. The factory-
set value is ASCII 08; the range for the register is 0-32, 127. This character 
moves the cursor left, removing the previous character. As this value actually 
represents the combined operation of three characters (a backspace, a space, 
and another backspace), the time allotted to process the backspace character 
must not be any less than the time required by the modem to transmit three 
characters. For this reason, a repeat-key function may not operate properly on 
backspaces.

S6 - Wait Before Blind Dialing
This register determines how long the modem waits after going off-hook before 
it dials. This delay allows time for the central telephone office to detect 
the off-hook condition of the line and apply dial tone. This wait time only 
applies to the first dial tone. S6 is used only if X0, X1, or X3 is selected. 
Selecting X3 or X4 enables dial tone (call progress) detection and disables 
blind dialing, thus making the setting of S6 irrelevant. The value of this 
register can be set for any number from 4 through 7 seconds. This feature 
allows you to increase the time delay if you have difficulty obtaining dial 
tone within 4 seconds.

Note: The Wait Before Blind Dialing call progress monitoring feature (W dial 
modifier) applies only to detection of a second dial tone and is independent 
of any S-Register settings.

S7 - Wait for Carrier after Dialing
This register determines the modem's time delay between dialing and responding 
to an incoming carrier signal after initial connection. If the modem does not 
detect a carrier within this time, the modem hangs up and returns the NO 
CARRIER result code. If the modem detects a carrier within the specified time, 
it goes on line. 

S8 - Duration of Delay for Comma Dial Modifier
This register determines the duration of the delay generated by the comma (,) 
dial modifier. 

S9 - Carrier Detect Response Time
This register determines how many seconds a carrier signal must be present for 
the modem to recognize it and issue a carrier detect. The value for the 
register is measured in tenths of a second. The factory setting is 6 (0.6 
second); the range is 1 (0.1 second) to 255 (25.5 seconds). 

Note: The S9 value affects the time required to recognize the presence of 
carrier only if X3 or X4 is selected. The modem also ignores the value in 
register S9 when operating in half-duplex synchronous or asynchronous mode.

S10 - Delay Between Lost Carrier and Hang Up
This register specifies the time between loss of remote carrier and local 
modem disconnect. The delay permits the carrier to disappear momentarily 
without causing the modem to hang up. The value for the register is measured 
in tenths of a second. The range for most modems is 1 (0.1 second) to 255 
(25.5 seconds).

The modem recognizes a carrier after the period of time specified in S9. 
Therefore, if the value of S10 is less than that set for S9, even a momentary 
loss of carrier will cause the modem to disconnect. Setting the register to 
255 causes the modem to ignore actual carrier status and assume a carrier is 
always present. When operating in half-duplex synchronous mode, the modem 
ignores the value of this register.

S11 - Multi-Frequency Tone Duration
This register determines the duration and spacing of tones in multi-frequency 
tone dialing. The value in this register has no effect on the speed of pulse 
dialing.

S12 - Escape Sequence Guard Time
This register holds the value of the delay required prior to and following the 
escape sequence. The guard time also dictates how quickly the escape sequence 
characters must be entered, since the interval between entry of each of the 
three characters must be of shorter duration than that specified for the guard 
time. If guard time is set to 0, timing is not a factor.

S18 - Modem Test Timer
This register establishes the duration of the modem's diagnostic tests. When a 
test is active for a length of time equal to the value chosen for this 
register, the modem automatically terminates the test. A setting of zero (0) 
disables the test timer (factory setting). The range for this register is 0-
255 seconds.

S25 - DTR Detection
This register serves two purposes. When the modem is operating in synchronous 
mode 4, the value assigned to S25 specifies the length of time the modem waits 
after a connection has been made, before examining the DTR circuit. This 
allows the modem to ignore an on-to-off transition of DTR and gives the user 
sufficient time to disconnect the modem from the asynchronous terminal and 
attach it to a synchronous terminal, without forcing the modem back to the 
asynchronous command state. During this time, the value of S25 is read in full 
seconds (e.g., the factory- set value of 5 equals 5 seconds, instead of 0.05 
seconds).

In all other modes, and after call establishment in synchronous mode 4, the 
value is read in 1/100 seconds. In any mode, a change in DTR (on or off) that 
persists for a period shorter than the value held in S25 is ignored by the 
modem while it is on-line. The range of values for S25 is 0-255.

S26 - RTS to CTS Interval
This register is used to specify the interval to delay before turning on CTS 
after an off-to-on transition of RTS. This value takes effect when the &R0 
command option has been selected. This setting applies to synchronous modes 1, 
2, and 3 only. The factory-set value is 1 (.01 seconds) with a range of 0-255.

S30 - Inactivity Timeout
This register monitors the line to prevent unnecessary connection time. If no 
data transfer is detected (while the modem is in the on-line state) for a 
duration specified by this register, the modem hangs up and returns to the 
idle state. When the value of S30 is set to 0, the timer is disabled. The 
factory setting is 0 seconds; the range is 0-255 units of 10 seconds. Note 
that S30 is only effective in &Q0 or &Q6 modes; it is not enabled in any 
synchronous modes.

S33 - AFT Options
Register S33 applies only to communications using a V-series Modem 
Enhancer(TM) with a Smartmodem 1200 which has an asynchronous DTE link.

This register selects the options to be used with Hayes Asynchronous Framing 
Technique (See the description of S44. AFT offers options to prevent certain 
characters (like XON and XOFF) from being sent. Normally AFT uses all 256 
ASCII character codes; that is, it uses characters with 8 data bits. If 
intervening equipment is limited to 7-bit operation, the Eight-Bit Data 
Transparency option (S33=4) can be enabled. 

With this option, AFT limits itself to using characters with 7 data bits. This 
pertains only to the communication link between the two modems, not the format 
of the data. The data itself is unaffected by enabling any AFT transparency 
options.

0     No transparency options required (factory setting)
1     Flow Control Transparency. AFT transparentizes the XON and XOFF control 
      characters sent from the DTE to the modem. The XON and XOFF characters 
      themselves are not sent over the communication link; characters that 
      substitute for these functions are transmitted, instead
2     Select Control Character Transparency
4     Select Eight-Bit Data Transparency
5     Select both Flow Control Transparency and Eight-Bit Data Transparency
6     Select both Control Character Transparency and Eight-Bit Data
      Transparency

If feature negotiation is active, the transparency option selected by one 
modem is used by both modems.

S36 - Negotiation Failure Treatment
When an attempt to make an error-control connection fails, the modem reads 
this register to determine whether to terminate the connection, make an 
asynchronous connection (otherwise selected with &Q0), or make an asynchronous 
connection with ASB (otherwise selected with &Q6). This register is referenced 
only when the error-control mode has been selected with the &Q5 command 
(factory setting) and this communication mode cannot be negotiated.

0     Hang up
1     Attempt a standard asynchronous connection (&Q0)
3     Attempt an asynchronous connection using automatic speed buffering (&Q6)
4     Attempt a V.42 Alternative Protocol connection (MNP compatible); if 
      negotiation fails, hang up.
5     Attempt a V.42 Alternative Protocol connection (MNP compatible); if 
      negotiation fails, attempt a standard asynchronous connection
7     Attempt a V.42 Alternative Protocol connection (MNP compatible); if 
      negotiation fails, attempt an asynchronous connection using automatic 
      speed buffering

In asynchronous mode, the CONNECT XXXX message will be returned with a 
successful connection. This message indicates the speed of the connection, 
which is also the speed of data transmitted from computer to modem.

Note: The selected fallback option can be initiated immediately with S48. For 
example, a connection attempt using the Alternative Protocol can be forced by 
setting S48=128 and S36=5 or 7.

S37 - Desired DCE Line Speed
The modem attempts to connect with a remote modem at the highest supported DCE 
speed that does not exceed the value specified by this register. If S37 is set 
to a speed higher than that supported by the modem, it will attempt to connect 
at its highest capability.

0     Attempt to connect at speed of last AT command issued
1     Attempt to connect at 75 bps
2     Attempt to connect at 110 bps
3     Attempt to connect at 300 bps
4     Reserved
5     Attempt to connect at 1200 bps
6     Attempt to connect at 2400 bps
7     Attempt to connect at 4800 bps
8     Reserved
9     Attempt to connect at 9600 bps

Note that this is the speed of modems across the telephone line, not the speed 
at which the modem communicates with the attached DTE.

S38 - Delay Before Forced Hang up
This register specifies the delay between the modem's receipt of the command 
to hang up (or on-to-off transition of DTR if the modem is configured to 
follow the signal) and the disconnect operation. This register is useful for 
error-control communications to ensure that data in the modem buffers is sent 
before the connection is terminated. The factory setting is 20 (seconds). If 
this register is set between 0 and 254, the modem will wait that number of 
seconds for the remote modem to acknowledge receipt of all data in buffers 
before hanging up. If this timeout occurs before all data can be sent, the NO 
CARRIER (3) result code will be sent to indicate that data has been lost. If 
all data is transmitted prior to the timeout, the response to the H0 command 
will be OK.

If S38 is set to 255, the modem does not timeout, and continues to attempt to 
deliver data in buffers until the connection is lost, or the data is 
delivered.

S44 - Asynchronous Framing Technique Selection
S44 sets the use of the Hayes Asynchronous Framing Technique. Connections to a 
packet switched network or between two error-control modems using either 
Error-Control/LAP-B or X.25 protocol are usually synchronous connections, even 
though the user interface is always asynchronous. Some environments may 
require asynchronous to synchronous conversion in the protocol because 
equipment is limited to asynchronous operation, or an asynchronous to 
synchronous conversion is already in place. For example, most Hayes 1200 bps 
modems support only asynchronous communication over the telephone line. When 
one of these modems is connected to a V-series Modem Enhancer, the interface 
between the two is always asynchronous. A feature provided by the V-series 
Modem Enhancer called the Asynchronous Framing Technique (AFT) makes this 
possible. When AFT is enabled, the output of the error-control protocol is 
asynchronous instead of synchronous.

Register S44 applies only to communications using a V-series Modem Enhancer 
with a Smartmodem 1200 that connects using an asynchronous link across the 
telephone line. 

2   Use AFT. When AFT is selected, the data output is asynchronous instead of
    synchronous. AFT is required if the path your call takes passes through 
    asynchronous-only equipment.

3   The modem to automatically selects whether or not to use AFT. V-series 
    Modem Enhancer, when connected to a Smartmodem 1200, automatically uses 
    AFT (factory setting).

If the modem is configured to use feature negotiation, and the other modem is 
using AFT, both modems automatically select AFT.


S46 - Error-Control Protocol Selection
This register specifies the error-control method used for subsequent 
connections. A V-series System Product supports at least one additional 
protocol. Because the factory setting will be a protocol for point-to-point 
communications, other connections, such as the X.25 protocol must be enabled 
by setting S46.

Feature negotiation enables two communicating modems to identify the common 
protocols, and choose one based on the user-configuration for the 
communication session. For example, if a V-series System Product is configured 
to use the X.25 protocol, but connects with a V-series System Product without 
X.25 capability, an error-control protocol is automatically selected because 
both modems support it. However, if a V-series System Product with X.25 
connects with another V-series System Product with X.25, both can use X.25 
protocol if configured to do so (S46=6).

When attempting a connection to a packet switched network, automatic feature 
negotiation is usually disabled because unless an X.25 connection can be made, 
further network connections cannot be made. To disable automatic feature 
negotiation and make an X.25 connection or hang up, set S46=134. The options 
for this register are described below:

0     Either LAPM or fallback to LAPB
1     LAPB only
2     LAPM or fallback to LAPB; use data compression#  
3     LAPB with data compression#  
6     X.25 or fallback to LAPB; use data compression#  
136   LAPM only
138   LAPM with data compression#  
134   X.25

      # The technique negotiated is determined by capabilities and 
      configuration of both modems. V.42bis is attempted first, then Hayes 
      Adaptive Data Compression. If neither method is supported by both 
      modems, or if either modem has compression disabled, no compression will 
      be used.

S48 - Enabling/Disabling Feature Negotiation
This register selects how feature negotiation is used when making connections 
with the remote system. The negotiation process can be tailored to suit a 
connection, or bypassed altogether. For example, when the capabilities of the 
remote modem are known, negotiation is unnecessary. The factory setting is 7, 
negotiation enabled. With feature negotiation disabled, the V-series System 
Product assumes that the remote modem is configured the same as itself, and 
proceeds to activate the error-control protocol specified by the S46 (protocol 
options) setting. Use 128 when calling a packet switched network that does not 
support feature negotiation.

0     Negotiation disabled; presume the remote modem is configured for and has
      the capabilities necessary for the connection selected with S46
3     Negotiation enabled, but originating modem remains silent during 
      detection phase. For connections with MNP modems; however, this setting 
      defeats the negotiation sequence with other V.42 modems
7     Negotiation enabled
128   Negotiation disabled; forces fallback options specified in S36 to be 
      taken immediately

S49 - ASB buffer size lower limit
This register sets the lower limit of the modem's buffer when communicating in 
asynchronous mode with ASB. The range of this register is 1-249. The factory 
setting is 8 bytes.

S50 - ASB buffer size upper limit
This register sets the upper limit of the modem's buffer when communicating in 
asynchronous mode with ASB. The range of this register is 2-250 bytes. The 
factory setting is 16 bytes.

S53 - Global PAD Configuration
S53 defines a set of behavior switches that control the PAD and all four 
channels in the V-series System Product. This fixed user interface provides 
software and users with a consistent PAD command interface regardless of 
current PAD parameter settings. The fixed user interface is effective in all 
states except the on-line (data transfer) state.

For example, the factory-set value of PAD parameter 2 is zero, which turns off 
character echo. This is required for a transparent on-line state (e.g., for 
Smartmodem product emulation). However, since it may be difficult to enter PAD 
commands without seeing them echoed at your terminal, a method of controlling 
the PAD despite the parameter settings would be necessary.

The fixed user interface affects the following in all states, except the on-
line state:


  character is Control-X, line display character is Control-R)


The fixed PAD control interface affects the following in all states:


  padding


If the value of S53 includes any bit value except 1, the PAD prompt character 
changes from * to -. The change in the prompt PAD character provides an 
indication that the PAD is not in CCITT mode. The register's values are 
provided below:

0     Normal CCITT-compatibility mode
1     Normal CCITT-compatibility mode. PAD prompt is an asterisk (*) and
      appears with the channel number (e.g., 1*).
2     Fixed user interface. PAD prompt is a hyphen (-)
3     Fixed user interface. PAD prompt is a hyphen and appears with the 
      channel number (e.g., 1-) (factory setting) 
4     Fixed control interface. PAD prompt is a hyphen
5     Fixed control interface. PAD prompt is a hyphen and appears with the 
      channel number
6     Fixed user and fixed control interface. PAD prompt is a hyphen
7     Fixed user and fixed control interface. PAD prompt is a hyphen and
      appears with the channel number

S63 - Leased line carrier level
This register selects the carrier power level in dBm for leased line 
operation. This register specifies a nominal carrier level value. The range 
for this register is 0-15 (0 dBm to -15 dBm). The factory setting is 0. Note 
that for those modems supporting leased line operation, carrier level (if 
adjustable) may be set by other means. Please refer to the modem's 
Installation Guide for information.

S69 - Link Layer Window Size
This register sets the number of frames (packets) sent between 
acknowledgements from the remote system. Each frame is one packet and the 
window size is how many frames you can send before you must stop and wait for 
the remote end to send an acknowledgement that it received the frames and is 
ready to receive more frames. The range is 1-15 with a factory setting of 15. 
LAPM connections use a window size of 1-15; LAPB connections and X.25 
connections use a window size of 1-8. If a LAPB or X.25 connection is made, 
any value greater than 8 is treated as 8.

Reducing window size can reduce performance. Reduce the window size only when 
so instructed by the network (this rarely occurs).

S70 - Maximum Number of Retransmissions
S70 limits the number of times the modem will retransmit a frame. 
Retransmissions become necessary when data errors introduced by noise disrupt 
the reception of a frame. When the limit set by S70 is reached, the modem 
hangs up. Raising this limit may be necessary if, for example, telephone lines 
are extremely noisy. The retransmission delays may be undesirable, but the 
modem will not hang up. The range for this register is 0-255, with a factory 
setting of 10.

S71 - Link Layer Timeout
When the link layer sends a character, it starts a timer referenced in the 
formula below as  "T1." If the remote end does not respond after T1 seconds, 
the link layer retransmits. The value of T1 is computed automatically based on 
the connection speed and maximum packet size.

T1 = 2 * (maximum packet size + 11) * (8 ? bits per second) + T2 + 500 msec

The S71 setting is represented by the "T2" in the formula. The setting affords 
some control over the final value of T1. You can increase T1 by increasing T2. 
You may want to do this if your communication environment has unusually long 
delays transmitting information from one end to the another (such as with 
satellite connections), or if the computer at the other end takes a long time 
to respond. The range for this register is 1-255 milliseconds, with a factory 
setting of 20..

S72 - Loss of Flag Idle Timeout
A transmitter not currently sending data to send is described as "idle." 
Normally, idle transmitters send a repeating pattern called "flag idle." Your 
modem always monitors the line to make sure the remote end of the 
communication link is either sending data or a flag idle. This ensures that 
the modem is operating. S72 determines how long the local modem waits before 
hanging up when it no longer is receiving data or a flag idle.

In some systems, periods of "mark idle" (periods where all ones are 
transmitted instead of the flag pattern) are normal. When using such a system, 
it may be necessary to increase the value in S72. If the register is set to 0, 
this monitoring function is disabled. The range for this register is 1-255 
seconds; the factory setting is 30.

S73 - No Activity Timeout
If your modem is receiving good carrier and flag idle from the remote modem 
but does not receive any data for the time period specified by S73, it will 
send a query (called an "RR") to the remote modem to make sure the modem is 
operating properly. 

The range for this register is 1-255 seconds; the factory setting for this 
register is 5. Decreasing this value causes the modem to test more frequently 
for malfunctions at the remote end. However, the modem will not hang up for 
approximately 2 * T1 * N2 seconds because it retransmits the RR query several 
times.

A Note on Registers S74, S75, S76, S77, S78, and S79 
(Logical Channel Number Selectors)
Although V-series System Products supports four virtual channels, numbered 1 
through 4, packet switched networks can support up to 4096 channels (numbered 
0-4095). Each network has its own channel numbering system to support multiple 
users. For example, if there are 15 calls, each with four virtual connections, 
the packet switched network can support all 60 (4*15) virtual calls, but each 
has to have a different logical channel number. 

Networks often set up their system so that all incoming calls are within one 
range and all outgoing calls are within another range. Logical Channel Numbers 
are automatically assigned by the V-series System Product, but the ranges need 
to be configurable in order to be compatible with different network 
requirements.

S74, S75 - Minimum Incoming Logical Channel Number (LCN)
S74 and S75 combine to specify the lowest incoming Logical Channel Number the 
packet layer will report or accept. The value used is formed by using S74 as 
the two high decimal digits and S75 as the two low decimal digits, or the 
value can be expressed by the formula S74*100+S75. 

If the resulting value is outside the range (0-4095), the value is assigned to 
the appropriate corresponding limit (e.g., if a value of 4099 is used, it is 
assigned to the upper limit value of 4095).

S74=0    Factory setting from a range of 0-40
S75=1    Factory setting from a range of 0-99

S76, S77 - Maximum Incoming Logical Channel Number (LCN)
S76 and S77 combine to specify the highest incoming Logical Channel Number the 
packet layer will report or accept. The value used is formed by using S76 as 
the high two decimal digits and S77 as the two low decimal digits, or the 
value can be expressed by the formula S76*100+S77. 

If the resulting value is outside the range (0-4095), the value is assigned to 
the appropriate corresponding limit (e.g., if a value of 4099 is used, it is 
assigned to the upper limit value of 4095).

S76=40    Factory setting from a range of 0-40
S77=95    Factory setting from a range of 0-99

S78, S79 - Outgoing Logical Channel Number (LCN)
The setting of registers S78 and S79 should be adjusted if the network 
requires a range of Logical Channel Numbers outside those specified with the 
combination of these two registers. 

S78 and S79 combine to determine the outgoing Logical Channel Number the 
packet layer will use to place a call. The value is derived using S78 as the 
two high decimal digits and S79 as the low two decimal digits, or the value 
can be expressed by the formula S78 * 100 + S79. If the resulting value is 
outside the range (4-4095), the value is then assigned to the appropriate 
limit. The highest Logical Channel Number would be that derived from the above 
formula, and the lowest would be the value minus the maximum number of 
channels supported plus one. The user has the ability to override this factory 
setting and explicitly specify an LCN using the PAD selection command (CALL).

S78=0    Factory setting from a range of 0-40
S79=16   Factory setting from a range of 0-99

A Note on Registers S80 and S81 (Packet Layer Parameters)
The values in these two registers combine to set time and duration for packet 
layer restart requests.

S80 - Packet Layer N20 Parameter
This register sets the maximum number of times a restart request can be 
retransmitted. The factory setting is 1 (S80=1) from a range of 0-255. Setting 
this register may be necessary if the network requires a restart attempt to 
abandon a connection earlier than planned.

S81 - Packet Layer T20 Parameter
This register sets the maximum amount of time the transmitter will wait for 
acknowledgment of a restart request frame before initiating a recovery 
procedure, in 10-second increments. The factory setting is 18 from a range of 
0-255. Setting this register may be necessary if the network requires a 
restart attempt to abandon a connection earlier than planned.

S82 - Break Signaling Technique 
This register selects a method of break signal handling for V.42 
communications: in sequence, expedited, and destructive. Break signals provide 
a way for you to get the attention of the remote host. The break type used 
depends on your application.

3     Expedited signaling regardless of its sequence in data sent and
      received; data integrity maintained
7     Destructive signaling regardless of its sequence in data sent and
      received; data in process at time is destroyed
128   In sequence signaling as data is sent and received; data integrity
      maintained ahead of and after break

S84 - Adaptive start up negotiation (ASU)
This register selects the adaptive start up method to be negotiated for 
subsequent connections.

0     Do not negotiate ASU connection
128   Negotiate ASU with fixed start up
129   Negotiate ASU with fast start up on both sides
130   Negotiate ASU with smooth start up on both sides
131   Negotiate ASU with configuring modem using fast start up and the other
      modem using smooth start up
132   Negotiate ASU with configuring modem using smooth start up and the other 
      modem using fast start up

S85 - ASU Negotiation Report
This register indicates whether adaptive start up and method were negotiated 
for the current connection. To read this register, issue the escape sequence 
to place the modem in the command state, then issue ATS85? <CR>. The modem 
will report one of the values below.

0     ASU not negotiated; fixed start up in use
128   ASU negotiated with fixed start up
129   ASU negotiated with fast start up on both sides
130   ASU negotiated with smooth start up on both sides
131   ASU negotiated with reporting modem using fast start up and the other 
      modem using smooth start up
132   ASU negotiated with reporting modem using smooth start up and the other 
      modem using fast start up

S86 - Connection Failure Cause
This register can help you determine the cause of a connection failure. When 
the modem issues a NO CARRIER result code, a value is written to this 
register. To read this register, following the connection failure, issue 
ATS86? <CR>. The modem will report one of the values below.

0     Normal hang up; no error occurred
4     Physical carrier loss
5     Feature negotiation failed to detect presence of another error-control 
      modem at the other end
6     Other error-control modem did not respond to feature negotiation message 
      sent by this modem
7     Other modem is synchronous-only; this modem is asynchronous-only
8     Modems could not find a common framing technique
9     Modems could not find a protocol in common
10    Feature negotiation message sent by other modem incorrect
11    Synchronous information (data or flags) not received from other modem.
      Modem waited 30 seconds before hanging up
12    Normal disconnect initiated by other modem
13    Other modem did not respond after many transmissions of the same 
      message. Modem made 10 attempts then hung up
14    Protocol violation occurred
15    Compression failure

Note: Multiple occurrences may contribute to a NO CARRIER message; S86 records 
the first event that occurred.

S92 - MI/MIC Options 
This register enables (chooses method) or disables the mode indicate/mode 
indicate common interface. The settings available for this register support 
various combinations of edge and level detection in either originate or answer 
mode with ring indicator (RI) pulse enabled or disabled. For particulars as to 
how the jack setting specified with the &J command interacts with this 
register, see the modem's Installation Guide.

0     MI/MIC disabled
1     level triggered, originate mode, RI pulse enabled
3     edge triggered, originate mode, RI pulse enabled
5     level triggered, answer mode, RI pulse enabled
7     edge triggered, answer mode, RI pulse enabled
9     level triggered, originate mode, RI pulse disabled
11    edge triggered, originate mode, RI pulse disabled
13    level triggered, answer mode, RI pulse disabled
15    edge triggered, answer mode, RI pulse disabled

Note that this feature is not available to all modems. Refer to the feature 
list in the modem's Installation Guide.

S93 - V.25bis DTE interface speed
This register selects the speed used when the modem is configured for V.25bis 
mode. When autobauding in any mode other than V.25bis, the modem uses the 
value held in S37.

3     300 bps
5     1200 bps
6     2400 bps
7     4800 bps
9     9600 bps

Note that the V.25bis feature is not available to all modems. Refer to the 
feature list in the modem's Installation Guide.

S94 - Command Mode Selector
This register provides an alternative to setting internal DIP switches when 
choosing between the AT command mode (factory setting) and the various CCITT 
V.25bis command modes supported by the modem. To use this register, DIP 
switches 3 and 4 must both be in the UP position (factory setting).

0     Standard AT command operation (factory setting)
1     Asynchronous V.25bis using addressed access
2     Synchronous V.25bis (HDLC framing) using addressed access
3     Synchronous V.25bis (Character framing) using addressed access
5     Asynchronous V.25bis using direct access
6     Synchronous V.25bis (HDLC framing) using direct access
7     Synchronous V.25bis (Character framing) using direct access
9     Asynchronous V.25bis using addressed access with EBCDIC character set 
      option
10    Synchronous V.25bis (HDLC framing) using addressed access with EBCDIC 
      character set option
11    Synchronous V.25bis (Character framing) using addressed access with 
      EBCDIC character set option
13    Asynchronous V.25bis using direct access with EBCDIC character set
      option
14    Synchronous V.25bis (HDLC framing) using direct access with EBCDIC 
      character set option
15    Synchronous V.25bis (Character framing) using direct access with EBCDIC 
      character set option

S95 - Negotiation Message Options
This register enables various result codes that indicate the sequence of 
events in the establishment of an error-control connection. This register does 
not affect the way in which the modem negotiates the connection; it merely 
enables message options. The factory setting for this register is value 0, no 
bits selected. To enable any combination of the bits, add the value(s) to the 
right of the bit number and set the register to this sum.

Note: The bit values of S95 may be set to override some of the characteristics 
of the Wn command. Setting any of the S95 bits to "1" enables the 
corresponding result codes regardless of the Wn command in effect. Changing 
the Wn command setting does not affect the value set for this register.

Bit  Value  Explanation
0    1      Verbose CONNECT result code indicates the DCE speed (rather than
            DTE speed). Numeric result codes are also differennt when
            CONNECT reports DCE speed.
1    2      Append "/ARQ" to CONNECT result code when an error-control 
            connection is made
2    4      Add CARRIER messages
3    8      Add PROTOCOL messages
4    16     Add AUTOSTREAM messages
5    32     Add COMPRESSION messages

For example, if you want to add the compression result code (with W1 
selected), you would select bit 5 (value of 32). The command line ATS95=32 
<CR> will then enable the COMPRESSION negotiation messages.

Refer to the Wn and Xn commands for additional and related information. 



1.4 Additional Command Set Definitions
The following items are critical parts of the AT Command Set, although they 
are not "commands." The AT prefix, the escape sequence, end-of-line character, 
and repeat last command function round out the elements of the command set.

AT - Command Prefix
Modem commands begin with an AT prefix that gets the modem's attention. The 
speed and character format at which the DTE sends this prefix tells the modem 
the speed and format for responding to commands, and at which speed to attempt 
the connection. See the Installation Guide for the speeds, formats, and 
transmission methods supported by your modem.

+++ - Escape Sequence
The escape sequence is used to take the modem from the on-line state ( or "on-
line" command state) to the  command state without breaking the connection. 
This provides a means of changing a setting then going back on-line.

Not actually a command, the escape sequence tells the modem to "escape" or 
leave the on-line state and enter the command state. The sequence consists of 
a single character issued three times in succession. A one-second "guard time" 
interval prevents the modem from mistaking a random occurrence of the same 
three characters as the escape sequence. The character used in the sequence 
and the duration of the guard time can be changed by writing values to S2 and 
S12, respectively. 

The escape sequence is issued by typing the plus key three times (+++) in 
succession. A pause of at least a second should precede and follow the three 
characters. The modem will return the OK result code as an indication it is 
ready to accept commands.

<CR> - End-of-line Character
This key terminates the command line. The key enabling this function is 
determined by the value stored in S3. The factory setting is ASCII 13, the 
carriage return character. When the end-of-line character is entered, the 
modem executes the commands that follow the AT prefix. In this reference, this 
key is referred to as <CR>. For example, the command line ATV0 <CR> gets the 
modem's attention, then instructs the modem to display its responses to 
commands (result codes) as numbers.

A/ - Repeat Last Command
A/ re-issues the command string most recently placed in the command buffer. 
This keystroke combination can be used to re-issue the command string last 
entered. For example, the A/ (if permitted by your local telephone system) is 
useful as a re-dial function.


=============================================================================

Chapter Two:
V-series X.25 Communications

This chapter includes information about the use of X.25 communications with V-
series System Products. The command and parameter descriptions are more 
detailed than those offered in the V-series System Product User's Reference. 
Also included are four recommended PAD profiles that can be recalled from 
memory to use with the modem's PAD.

The factory settings and available options/ranges for these commands and 
parameters are provided here because they are the same for all V-series System 
Products that support the X.25 feature.



2.1 Modem Configuration for X.25 Communications
X.25 connections begin the same as point-to-point connections - with a modem 
call to a remote system. Your modem is configured from the factory to 
automatically negotiate the best point-to-point error-control connection, if 
the purpose of the call is to establish a link with an X.25 network, the modem 
must be re-configured with several S-Registers.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.1.1 Controlling Automatic Feature Negotiation
The S-Registers controlling connection type selection are described in the 
sections that follow. An overview of the the options that can be set with S-
Registers is provided in the chart below.

Communication Environment                          &Q  S36  S44  S46  S48
-----------------------------------------------------------------------------
X.25 enabled (Use X.25 if remote system 
has X.25; otherwise, use LAP-B point-to-point 
connection)                                        5    0    3    6    3
X.25 only (Point-to-point connection)              5    0    3    134  3
X.25 network without feature negotiation:          5    0    3    6    0
X.25 network with feature negotiation              5    0    3    6    3
X.25 network with feature negotiation and AFT      5    0    2    6    3

The suggested configuration for establishing a synchronous X.25 connection 
with a packet switched network or a remote V-series System Product that 
supports X.25, can be selected with AT&Q5 S44=3 S46=6 S48=0 <CR>. Refer to the 
S-Register Listing in Chapter One for a description of the registers that can 
be used to configure the modem.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.1.2 PAD Channel Selection
The &O command is used to move from the AT command state to the PAD command 
state in order to issue PAD commands. The optional channel number identifies 
the desired virtual channel number. If the virtual channel number is zero 
(&O0), or not specified (&O), the last channel number accessed is used. Each 
time &O is issued, it resets the current PAD before it enters the PAD command 
state (provided a virtual connection is established).

Once the PAD command state is entered, the CHAN command can be used to switch 
among the PAD command states of the four virtual channels.

If an X.25 connection has already been established and you have escaped to the 
AT command state, the PROTOCOL and CONNECT result codes are transmitted to 
your terminal. The ERROR result code is transmitted if the modem is on-line 
but not in X.25 mode (e.g., modem is in Error-Control/LAP-B mode).

Example of &O command use:

String       Result Code/Explanation

AT&O1 <CR>   OK (PAD channel 1 selected)

AT&O9 <CR>   ERROR (value entered is out of selectable range)

See the description of the &O command in the AT Command Listing in Chapter 
One.



2.2 PAD Configuration
Like your modem, the PAD can be configured according to the communications 
requirements of the remote systems you call.

Although a small number of S-Registers control some PAD options (packet and 
window sizes, for example), the PAD is primarily configured with separate 
memory locations. A set of PAD parameters can be configured for each channel. 
The set consists of standard X.25 PAD parameters and National parameters.

Although the PAD's factory-set configuration will be suitable for many 
applications, sets of predefined PAD parameter settings can be defined as 
profiles to be recalled for use with later.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.2.1 PAD Commands
Each PAD command consists of characters and occasionally symbols that specify 
the command's action. Like the AT command line, you can place as many as 255 
characters on a single line.

The only exception to this format is the EXEC command. This command for 
storing and executing a series of instructions to configure the PAD uses a 
plus sign (+) to tie commands together in the command string. When these 
commands are executed, the plus signs are treated as carriage returns. For 
more on storing a PAD configuration with the EXEC command, see "PAD Profiles."

Issuing PAD commands
PAD commands are typed at the PAD prompt, then entered with <CR>. This action 
and most other conventions for editing a line and entering commands are the 
same as those use when issuing AT commands.

PAD command format
Each PAD command consists of characters and occasionally symbols that specify 
what the command will do. A PAD command is typed on the command line, then 
entered using the carriage return key (factory setting for S3). 

When you type in a command, the PAD ignores spaces, delete characters, control 
characters, and upper/lower case. For example, the commands RESET, RE SET, and 
reset are all interpreted as the same command. The backspace key can be used 
to correct any mistakes made while entering a command. In this addendum, the 
following symbols are used when describing PAD commands.

Symbol  Meaning
-----------------------------------------------------------------------------
[ ]     Indicates optional parameters, parameters which can be entered with 
        the PAD command
< >     Indicates a named parameter, such as a user ID requested by the 
        network
...     Indicates a repeated item within brackets, for example the command
        PAR? [<parameter>][,<parameter>...]

These symbols represent the kinds of information that can accompany a PAD 
command. Do not type these symbols when entering a PAD command. 

Any characters that appear with a PAD command, other than the symbols 
mentioned above, are interpreted literally. For example, the command: ACC [R] 
[<facility> -] is interpreted:

Symbol          Meaning
-----------------------------------------------------------------------------
ACC             Issue the Accept command which indicates that you want to 
                accept a call
[R]             Include an optional parameter (R) instructing network that 
                you will accept charges for the call if requested
[<facility> -]  Include an optional facility parameter, such as your user ID,
                or some other information required by the network. Several 
                facilities can be strung together, separating each by a comma 
                and ending the string with a hyphen (-)

PAD commands are of two types: those used for call related activities, such as 
placing a call, answering a call, initializing and changing channels, etc., 
and those used to configure the PAD. These commands can be used in the 
following ways:


  (RSET, RSET?)

The commands supported by the PAD are listed in the following sections. Each 
command is defined with sample formats, allowable parameters, and possible 
result codes for the command.

ACC - Accept Call Command
When you have established a connection to the network node and a remote system 
on the network wants to call you, a PAD result code is sent to your computer 
announcing the incoming call. Enter the ACC command to accept the call and 
establish a virtual connection. 

To configure the PAD to automatically answer incoming calls, use the EXEC 
command described following this command.

Example Format
ACC [R] [<facility>] 

Parameter   Description
-----------------------------------------------------------------------------
[R]         Instructs the network that you will accept charges for the call if 
            requested to do so
<facility>  Represents optional call facilities may be entered

Result Codes: Description
-----------------------------------------------------------------------------
CON           ACC received
ERR           Invalid command format; or command not entered in response to an 
              incoming call; or virtual connection not established

CALL - Call Command
The CALL command is the PAD command you use to make a virtual connection to a 
remote system. Once the PAD is configured, this is the primary command you 
will use.

Once a physical connection to the X.25 network has been established, a virtual 
connection to the remote system is made with the CALL command. If the call is 
accepted by the remote system, the PAD enters the data transfer state. If the 
call is not accepted, a "call cleared" response is sent and the PAD remains in 
the PAD command state. 

Example Formats
CALL
[CALL] [<facility>] [<called> [,[<calling>] [,<lcn>] ] ]
[CALL] <facility> D <user_data>
[CALL] <called> D <user_data>
[CALL] <facility> <called> [,[<calling>] [,<lcn>] ] D <user_data>

Parameter  Description
-----------------------------------------------------------------------------
<facility> One or more call parameter facilities that can be strung 
           together on a command line and separated by commas; the last
           facility is followed by a hyphen (-)
<called>   Represents remote system's address containing up to 15 digits (0-9)
<calling>  Represents source address containing up to 15 digits (0-9)
<lcn>      X.25 logical channel number (1-4095)
<user_data> Character string containing up to 12 ASCII characters

Result Codes  Description
-----------------------------------------------------------------------------
ERR           Call cannot be placed due to call in progress; or virtual 
              connection not established
CLR           Remote PAD cleared virtual connection; may be followed by a 
              string of diagnostic characters
CON           Call connected; may be followed by a string of diagnostic
              characters

Call Facilities
In the above CALL command formats, notice the <facility> field. This field is 
provided to specify "call facilities." A call facility is an optional 
parameter that can be specified to meet a network's requirements, such as 
entering a network user ID (NUI), or indicating that charges are to be 
reversed (R). 

When subscribing to a packet switched network, you are informed of the 
required or permitted call facilities. In order to respond to your CALL 
command, different networks may require specific call facilities.

Any of the following call facilities with the CALL command. When two or more 
facilities are entered on a line, they are separated by commas. A hyphen (-) 
terminates the string. For example: CALL R,N, -

The table below provides a description of the available call facilities.

Call Facility  Description
-----------------------------------------------------------------------------
R              Instructs network that you will accept charges for the call if 
               requested to do so
N <NUI>        Provides network with network user ID, identifying the caller 
               to the network
T <RPOA>       Specifies which networks the data packets take to their 
               destination. Any number of addresses may be specified; each 
               address is four digits (0-9). RPOA stands for "Recognized 
               Private Operating Agencies"
P <num>        Requested maximum packet size according to the following packet 
               size-to-bytes conversions: P4=16, P5=32, P6=64, P7=128, P8=256,
               P9=512. If P is not specified, the default value (128) of 
               National Parameter 100 is used
W <num>        Requested maximum window size (2-7). If W is not specified, the 
               default value (2) of National parameter 101 is used
X <hex>        Hexadecimal data (0-9, A-F). Caution: Putting data directly
               into the facilities field of the call packet, specifies 
               facility codes not directly supported by the modem

CHAN - Channel Selection Command
Use the CHAN command to switch from one virtual channel to another. The modem 
remains in the PAD command state.

Example Format
CHAN <channel>

Parameter   Description
-----------------------------------------------------------------------------
<channel>   Specifies which virtual channel to switch to, indicated by an 
            ASCII digit (1-4)

Result Codes:  Description
-----------------------------------------------------------------------------
ERR            Invalid <channel> specified

CLR - Clear Channel Command
After a virtual connection has been established, the CLR command can be used 
to clear (disconnect) a call on a virtual channel and place that channel in 
the PAD command state.

Example Format
CLR [X <extended_codes> -] [<diagnostic_code>] 

Parameters         Description
-----------------------------------------------------------------------------
<extended_codes>   Hexadecimal data (0-9, A-F) supporting facilities not
                   supported by the V-series X.25 product
<diagnostic_code>  String of up to three digits from a range of 1-255, 
                   indicating the error that has occurred

Result Codes  Description
-----------------------------------------------------------------------------
ERR           Virtual connection not established on this channel; or invalid 
              parameter entered

EXEC - Execute String Command
The EXEC command is used to define and save a PAD command and then 
automatically execute it when a physical connection to a network node is 
established. EXEC is commonly used to define the CALL command. Another common 
use of EXEC is to automatically answer an incoming call. 

The string stored in each virtual channel as the factory setting is ANS+ACC, 
which instructs the PAD to answer and accept incoming calls to the channel. To 
display the string currently stored, you can issue EXEC? <CR>.

Sample EXEC sequence:
To use the EXEC command, from the PAD command state type EXEC <CR>. The PAD 
will display the prompt: EXEC>. After the prompt, enter the PAD command you 
wish to save. For example:

EXEC> CALL R- 3110 20200202 <CR>

This stores a CALL command for connecting to a packet switched network. As 
soon as the modem establishes a physical connection to the network node, the 
EXEC string is processed, placing the call.

In the EXEC string that you define, plus signs can be used to separate 
multiple commands. When the EXEC string is executed, the plus signs are 
treated like carriage returns. For example, the following EXEC string defines 
how the PAD will respond to an incoming call from remote system:

EXEC> ANS+PROF VSM+SET 0:0,74:1+ACC <CR>

In this EXEC string, the PAD is instructed to:

ANS         Respond to an incoming call request
PROF VSM    Load the V-series emulation PAD profile
SET 0:0     Set the National marker in order to change a National parameter
74:1        Change National parameter 74 to 1
ACC         Accept the call

In another example:

EXEC>ANS+ACC+Welcome to Hayes/M/JX.25//dial-up!/M/J <CR>

the PAD is instructed to:

ANS    Respond to an incoming call request.
ACC    Accept the call.

Welcome to Hayes/M/JX.25//dial-up!/M/J is sent to the remote system. 

"/M" means "control M," a carriage return; 
"/J" means "control J," a line feed. 

This message is received by the remote system as:

Welcome to Hayes
X.25/dial-up!

To display the current EXEC string (if any) stored in memory, type EXEC? <CR>.

EXIT - Exit PAD Command
Use the EXIT command to leave the PAD command state and enter the modem's AT 
command state. For example, if you are in the PAD command state (of any 
virtual channel) and you want to hang up the phone, first type:

EXIT <CR>  the OK result code is sent from the modem to the attached computer

then type:

ATH0 <CR>  This AT command hangs up the modem, breaking the physical 
connection to network; the OK result code is returned if the modem hangs up 
before the network; if the network hangs up first, the NO CARRIER result code 
is returned). Hanging up clears all virtual connections still engaged.

INT - Interrupt Command
During a virtual connection, the INT command can be issued to send an 
interrupt, placing the PAD in the on-line state. Networks respond to 
interrupts differently, however. This command can result in lost data. It 
should not be used unless its use has been cleared through the network.

Example Format
INT

Result Codes:  Description
-----------------------------------------------------------------------------
<CR/LF>        The remote host has acknowledged the interrupt
ERR            Virtual connection not established on this channel

PAR? - Read Parameter Command
The PAR? command displays the current settings of the local PAD. Settings for 
selected PAD parameters can be requested or if the command is issued with no 
parameters, the settings for all twenty-two PAD parameters are requested.

Note: To display the settings for the National PAD parameters, enter a zero 
(0) after the command (PAR?0).

Example Format
PAR? [<parameter>] [,<parameter>...]

Parameter     Description
-----------------------------------------------------------------------------
<parameter>   Number of specific PAD parameter setting to display. If no PAD
              parameters are specified, the settings for all 22 PAD parameters 
              are displayed. Enter a zero (0) to display the settings for all 
              of the National PAD parameters.

Result Codes      Description
-----------------------------------------------------------------------------
ERR               Invalid command format
<parameter>:INV   Invalid parameter entered. For example, if PAR?40 were 
                  typed, PAR 40:INV would be displayed since 40 is out of the 
                  range 1-22

For example, issuing PAR? 1,4,0,70,71 displays the current settings for the 
specified parameters (1,4,0,70, 71) of the local PAD: PAR 1:0, 4:0, 0:0, 70:1, 
71:0 

If no parameters are specified: PAR? the settings for all twenty-two PAD 
parameters are displayed:
PAR 1:0, 2:0, 3:0, 4:0, 5:0, 6:5, 7:5, 8:0, 9:0, 10:0, 11:14,12:0, 13:0, 14:0, 
15:0, 16:8, 17:24, 18:18, 19:1, 20:65, 21:0,22:0

PROF - PAD Profile Command
A "profile" is a predefined collection of PAD parameter settings used for a 
virtual connection, similar to the profiles that can be defined for the 
modem's general configuration. With the PROF command, one of four standard 
profiles can be selected, or a particular configuration can be defined and 
saved as a profile in nonvolatile memory.

Example Format
PROF <identifier>


Parameter    Description
-----------------------------------------------------------------------------
<identifier> Enter the alphanumeric characters that specify the profile to 
             be recalled for the current channel. Possible identifiers are:

DEF          Selects the factory default profile

SIM	       Selects CCITT simple standard profile

TRA	       Selects CCITT transparent standard profile

VSM	       Selects V-series Error-Control/LAP-B emulation profile
NVM	       Selects the profile saved in nonvolatile memory

SAV          Saves the current PAD configuration profile in nonvolatile
             memory


Result Codes:  Description
---------------------------------------
ERR            Invalid <identifier>

The V-series Emulation Profile (VSM) is automatically set if feature 
negotiation results in an Error-Control/LAP-B connection on virtual channel 1 
(Error-Control/LAP-B connections always use virtual channel 1). The 
configuration profile is automatically restored to its factory setting when 
the the modem hangs up.

To create a profile, use the CHAN command to move to the desired channel. For 
example, issue CHAN3 <CR> to move to channel 3. At the prompt, type in the PAD 
parameters you want to adjust and store, issuing them with <CR>. To save the 
settings as a profile, issue PROF SAV <CR>.

RESET - PAD Reset Command
The RESET command resets the virtual channel. If your system locks up 
unexpectedly, or data transfer has stopped, or you are unable to reach the 
remote system, you may wish to reset the virtual channel and start over. 
Issuing the RESET command may result in lost data.

Example Format
RESET [ <diagnostic> ]

Parameter     Description
-----------------------------------------------------------------------------
<diagnostic>  String of up to three numeric digits from a range of 0-255 
              indicating an error has occurred

Result Codes:   Description
-----------------------------------------------------------------------------
ERR             Virtual connection not established on this channel

RPAR? - Read Remote PAD Parameter Command
To display the current settings of the remote system's PAD parameters, use the 
RPAR? command. If no parameters are specified, the settings for all of the 
remote system's PAD parameters are displayed.

Example Format
RPAR? [<parameter>] [,<parameter>...]

Parameter    Description
-----------------------------------------------------------------------------
<parameter>  Specifies the remote system's PAD parameter(s) to display

Result Codes     Description
ERR              Invalid command format; or virtual connection not 
                 established on this channel
<parameter>:INV  Invalid parameter entered; or remote system does not support 
                 parameter specified

For example, issuing RPAR? 1,4,0,70,71 <CR>

displays the current settings for the specified parameters of the remote 
system's PAD. The string: RPAR 1:0, 4:0, 0:0, 70:1, 71:0 is displayed.

If no parameters are specified: RPAR? the settings for all of the remote 
system's PAD parameters are displayed.

RSET - Set Remote PAD Parameter Command
To set and display the remote system's PAD parameters, use the RSET command.

Example Format
RSET [?] [<parameter>:<value>] [,<parameter>:<value>] [, ...]

Parameter    Description
<parameter>  Specifies the number of the remote system's PAD parameter you
             want to set/display
<value>      Value that you want to set for the specified PAD parameter

Result Codes     Description
-----------------------------------------------------------------------------
ERR              Invalid command format
<parameter>:INV  Invalid parameter or value

For example, entering RSET 2:1 <CR> sets the remote system's PAD parameter 2 
to a value of 1.

To display the setting, type: RSET? 2:1<CR>. The new parameter setting will be 
displayed: RPAR 2:1

STAT - Status of Current Channel Command
The STAT command displays the current status of a virtual connection.

Example Format
STAT

Result Codes:  Description
------------------------------------
FREE           No call in progress
ENGAGED        Call in progress

SET - Set PAD Parameter Command
To set (and display) the local PAD's parameters, use the SET command.

Example Format
SET [?] [<parameter>:<value>] [,<parameter>:<value>] [, ...]

Parameter    Description
-----------------------------------------------------------------------------
<parameter>  Specifies the number of the PAD parameter to set/display
<value>      Value that you want to set for the specified PAD parameter

Result Codes     Description
-----------------------------------------------------------------------------
ERR              Invalid command format
<parameter>:INV  Invalid parameter or value

For example, issuing SET 2:1 <CR> sets PAD parameter 2 to a value of 1.

To display the setting, type: SET? 2:1 <CR>. The new parameter setting will be 
displayed: PAR 2:1

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.2.2 PAD Parameters
PAD parameters are used to control the display and transmission of data over 
the packet switched network.

Parameters are of two types: PAD Parameters and National Parameters. Twenty-
two PAD parameters (1-22) and an additional set of "National Parameters" offer 
configuration options. National Parameters (numbers starting at 70) are used 
to support and control the enhanced functionality provided by the Hayes X.25 
feature. All parameters are set and read the same way.

Values for some parameters are calculated by adding the bit values of the 
options you want active. For example, in PAD parameter 3, if you want the 
character set to include A-Z, a-z, 0-9 (bit value=1) and CR (bit value=2), you 
would set the PAD parameter 3 to 3.

A marker (0:0), called a "National Marker," is used to separate the National 
PAD Parameters from the PAD parameters. For example, in the PAD command: SET 
1:1, 2:0, 0:0, 70:1, the characters to the right of the marker refer to 
National PAD parameters. Characters to the left of the National marker refer 
to PAD parameters.

Parameter 1 - PAD Recall Using a Character
PAD recall defines the character that will force the PAD to escape from the 
PAD on-line state and return to the PAD command state. When the PAD receives 
this character, the PAD prompt (- or *) is displayed on the user's terminal 
monitor. 

Values  Description
-----------------------------------------------------------------------------
0       PAD cannot be recalled using a character (factory setting)
32-126  ASCII graphic character

To send the PAD recall character as data, enter it twice. The PAD will remain 
in the on-line state.

Parameter 2 - Echo
When parameter 2 is set, all characters received from the terminal are echoed, 
excluding those specified by parameter 20 (echo mask), parameter 5 (ancillary 
device control), parameter 12 (flow control of the PAD by the terminal) and 
parameter 22 (page wait). Setting parameters 12 or 22 to non-zero values 
causes the echo of characters DC1 and DC3 (XON and XOFF) to be suppressed, 
even if parameter 2 is set to value 1.

Values   Description
------------------------------------
0        No echo (factory setting)
1        Echo 

Parameter 3 - Selection of Data Forwarding Signal
The value of parameter 3 is bit-mapped; the binary bit values represent the 
character sets listed below. If the character(s) set by the combination of 
binary bit values of this parameter is received from your terminal, the 
current packet (including this character) is forwarded.

Values  Description
---------------------------------------------------
0-127   sum of bits for selected characters
0       No data forwarding signal (factory setting)

Bit Value  Description
-----------------------------------------------------------------------------
1          A-Z, a-z, 0-9
2          CR
4          ESC, BEL, ENQ, ACK
8          DEL, CAN, DC2
16         ETX, EOT
32         HT, LF, VT, FF
64         NUL, SOH, STX, BS, SO, SI, DLE, DC1, DC3, DC4, NAK, 
           SYN, ETB, EM, SUB, FS, GS, RS, US, DEL

Parameter 4 - Selection of Idle Timer Delay
In addition to character forwarding, this parameter provides the capability to 
forward data to the host based on an idle time. If data is in the buffer and 
no additional characters have been received for the specified period, the 
buffer contents are sent to the host. Parameter 4 is ignored if National 
Parameter 70 (streaming data forwarding) is set to 1, or if parameter 15 is 
set to 1.

Values   Description
-----------------------------------------------------------------------------
0        No data forwarding on timeout
1 - 255  Data forwarding on timeout of <value> multiplied by 0.05 seconds
50       50 msec. timeout (factory setting)

Parameter 5 - Ancillary Device Control
This parameter specifies whether or not the PAD transmits XON-XOFF characters 
to the DTE. If flow control is disabled, the user must be careful not to 
overflow the PAD's buffer in order to prevent data loss. Local flow control is 
also enabled by the &K command.

Values  Description
-----------------------------------------------------------------------------
0       No XON/ XOFF flow control (factory setting)
1       XON/XOFF flow control in data transfer state
2       XON/XOFF flow control in both data transfer and PAD command states

Parameter 6 - Control of PAD Result Codes
Parameter 6 controls how PAD result codes (those generated by the PAD) are to 
be transmitted to your terminal.

Values  Description
-----------------------------------------------------------------------------
0       No PAD result codes are sent to your terminal
1       PAD result codes are sent in their standard formats. The prompt 
        PAD result code is not sent
4       Only the prompt PAD result code is sent
5       All PAD result codes, including the prompt PAD result code, are 
        sent in the standard format (factory setting)

Parameter 7 - Action on Receipt of Break from Terminal
Parameter 7 is bit-mapped; binary bit values represent the following actions 
when the break signal is received by the PAD.

Values            0-31
Factory Setting:  5 (send interrupt and indication of break)

Bit Values  Description
-----------------------------------------------------------------------------
1           Send an X.25 interrupt packet to the remote system
2           Send an X.25 reset packet to the remote system
4           Send an X.25 indication of break packet to the remote system
8           Escape from the data transfer state to the PAD command state
16          Set PAD parameter 8 to 1 (discard output)

Note: If bit 2 of S53 is set, escape from the data transfer state using the 
break signal is not possible.

Parameter 8 - Discard Output
This parameter is set if the user wishes to abort a process running on the 
remote system by pressing the break key. When the break key is used, incoming 
data is discarded until the remote system reacts to the break signal, and sets 
parameter 8 back to 0. 

Values  Description
-----------------------------------------------------------------------------
0       Normal data delivery to your terminal (factory setting)
1       Discard output destined to your terminal

Note: Parameter 8 cannot be set using the SET command; only the remote PAD can 
set it.

Parameter 9 - Padding after Carriage Return
Parameter 9 specifies the number of ASCII NUL characters to transmit after a 
carriage return. This may be necessary to allow time for mechanical devices to 
return to a home position after a carriage return has been sent.

Values  Description
-----------------------------------------------------------------------------
0       No padding characters sent after carriage return (factory setting)
1       Number of padding characters (NUL) sent after carriage return

Parameter 10 - Line Folding
This parameter specifies line length. When the specified number of displayable 
characters have been sent to the terminal, a carriage return/line feed 
sequence is transmitted. Normally, this function is disabled.

Values   Description
-----------------------------------------------------------------------------
0        No line folding (factory setting)
1 -255   Number of graphic characters per line sent by the PAD before a CR/LF 
         is inserted. Special cases include the backspace character which 
         decreases the count of graphic characters, and HT that follows the 
         convention of tab stops every eighth column for display terminals, if 
         parameter 19 = 2

Parameter 11 - Terminal Speed
This parameter reflects the current speed of the DTE. It is automatically set 
by the PAD using the last AT command and may not be updated by the user or 
remote system (read only).

Values  READ ONLY; no factory setting

Value   Bit Rate
----------------------------
0       110 bps
2       300 bps
3       1200 bps
4       600 bps
5       75 bps
12      2400 bps
13      4800 bps
14      7200 or 9600 bps
15      14400 or 19200 bps
16      38400 bps

Parameter 12 - Flow Control of the PAD by Local Terminal
Parameter 12 determines whether or not the PAD recognizes flow control 
characters issued from the DTE. If the DTE transmits an XOFF (Ctrl-S), no 
further data is delivered to the DTE until the PAD receives an XON (Ctrl-Q). 
Flow control is also enabled by the &K command.

Values  Description
-----------------------------------------------------------------------------
0       No XON / XOFF flow control (factory setting)
1       Use of XON / XOFF flow control

Parameter 13 - Line Feed Insertion after Carriage Return
This parameter specifies whether or not the PAD will insert a line feed 
character after carriage returns. This function applies only in the PAD on-
line state.  

Values  Description
-----------------------------------------------------------------------------
0     No line feed inserted (factory setting)
1     Insert line feed after carriage return in the incoming data stream
2     Insert line feed after carriage return in the outgoing data stream
3     Insert line feed after carriage return in the data stream
4     Insert line feed after echo of carriage return
5     Insert line feed after carriage return in incoming data stream and
      also after carriage return echo
6     Insert line feed after carriage return in the outgoing data stream and 
      also after carriage return echo; if editing enabled (parameter 15=1), 
      insert line feed in the next editing buffer and make available for 
      editing
7     Insert line feed after carriage return in the incoming and the outgoing 
      data stream, also after carriage return echo; if editing is enabled 
      (parameter 15=1), insert line feed in the next editing buffer and make 
      available for editing

Parameter 14 - Line Feed Padding
In the on-line data transfer state only, parameter 14 specifies the number of 
ASCII NUL characters to transmit after a LINE FEED. This parameter is required 
by some devices to allow sufficient time to move the platen after receiving a 
line feed character.

Values  Description
-----------------------------------------------------------------------------
0       No padding after line feed (factory setting)
1-255   Number of padding characters inserted after line feed

Parameter 15 - Editing
Parameter 15 specifies whether or not editing is used in the PAD on-line 
state. Parameters 16, 17, 18, and 19 describe the available editing functions. 
If editing is enabled, parameter 4 (forward timing) and National Parameter 70 
are ignored.

Values  Description
-----------------------------------------------------------------------------
0       Editing disabled (factory setting)
1       Editing enabled. Data forwarding is suspended until the editing buffer 
        is full, or until the character defined by parameter 3 is received

Whenever more data is received than can be held by the editing buffer, one 
full packet will be forwarded. The remaining characters are placed in the 
beginning of the editing buffer, and can still be edited.

Parameter 16 - Character Delete
The defined delete character deletes the last character in the editing buffer. 
After deleting the character, the PAD sends either a backslash (\) or <BS> 
<SP> <BS> to the DTE (depending on the setting of parameter 19. If the editing 
buffer is empty, then no response is sent.

Values  Description
-----------------------------------------------------------------------------
0-127   Selects which ASCII value functions as the delete character
8       Backspace character (factory setting)

Parameter 17 - Line Delete
This parameter defines the line delete function. When the line delete 
character is entered, the contents of the editing buffer are deleted. Unless 
the editing buffer is empty, the PAD sends a result code (XXX for printing 
terminals) to acknowledge the line delete function.

Values  Description
-----------------------------------------------------------------------------
0-127   ASCII value for delete character
24      Control-X (factory setting)

Parameter 18 - Line Display
This parameter defines the line display function. If the user enters the 
character specified by this parameter and editing is enabled, the contents of 
the editing buffer will be displayed. 

Values  Description
-----------------------------------------------------------------------------
0       Line display disabled
1-127   ASCII value of line display character
18      Control-R (factory setting)

Parameter 19 - Editing PAD result codes
Parameter 19 provides the PAD information about the attached DTE (terminal or 
printer). This ensures that the PAD sends the proper editing character 
sequences. For example, on a printer, the character delete function simply 
prints a backslash (\) for each printable character that is deleted, while a 
terminal is sent a BS-SP-BS sequence to backspace the cursor and erase the 
deleted character from the screen.

The PAD uses editing PAD result codes for display terminals regardless of the 
value of parameter 19 when bit 2 of S53 is set.

Values     Description
-----------------------------------------------------------------------------
0          Editing PAD result codes function disabled
1          Editing PAD result codes for printers
2          Editing PAD result codes for computers (factory setting)
8, 32-126  Editing PAD result codes using the character represented by the 
           ASCII value

Parameter 20 - Echo Mask
Parameter 20 is bit-mapped and defines the set of characters that are to be 
excluded from the echo function. Characters specified by bit value 64 are 
masked only when editing is active.

Values  Description
-----------------------------------------------------------------------------
64      all characters, except editing characters, are echoed 
        (factory setting)
0-255   sum of bits selecting characters to be echoed

Bit Values  Description
-----------------------------------------------------------------------------
1           CR
2           LF
4           VT, HT, FF
8           BEL, BS
16          ESC, ENQ
32          ACK, NAK, STX, SOH, EOT, ETB, ETX
64          Parameters 16, 17, 18 (editing characters)
128         NUL, SO, SI, DLE, DC1, DC2, DC3, DC4, SYN, CAN, EM, SUB, FS, GS, 
            RS, US

Parameter 21 - Parity Treatment
This parameter controls the parity and character format used by the terminal. 

Values  Description
-----------------------------------------------------------------------------
0       No parity checking or generation (factory setting)
2       Parity is applied to data sent to the terminal according to the parity 
        specified by National parameter 71

Parameter 22 - Page Wait
Parameter 22 defines the number of lines (text separated by line feeds) that 
are displayed before "PAGE" is displayed. No further data is transmitted to 
the terminal until the user sends an XON character, sets parameter 22 to zero, 
or escapes from the data transfer state (PAD recall).

Values  Description
-----------------------------------------------------------------------------
0       Page wait disabled (factory setting)
1-255   Number of line feed characters sent to the terminal before the page 
        wait condition

National Parameter 70 - Streaming Data Forwarding
National Parameter 70 affects PAD data forwarding timing. When set to value 0, 
the data forwarding timing is controlled by PAD parameter 4. When set to value 
1, "streaming mode" is set. This parameter, among others, may be set to 
configure a "streaming mode PAD" identical to that used in Error-Control/LAP-B 
connections.

In streaming mode, a character received by the PAD is placed in a packet 
immediately, instead of being buffered until a timeout occurs. For example, 
assuming the modem transmitter is idle, a character received by the PAD is 
forwarded immediately. This packet remains "open" in case another character is 
received by the PAD. The additional character can be added while the packet is 
actually transmitting. 

The result is "instantaneous" forwarding, which generally results in the best 
interactive performance. This may cause more packet traffic. This is no 
problem in point-to-point connections, but may be of some concern for networks 
that charge by the packet.

Values  Description
-----------------------------------------------------------------------------
0       PAD Parameter 4 controls data forwarding timeout (factory setting)
1       Streaming data forwarding timeout

National Parameter 71 - Character Format
This parameter specifies the character format (number of data bits and parity) 
required by the network for the PAD, and is used to generate the proper parity 
on all PAD result codes and data delivered to the terminal. 

Individual networks specify particular settings for this parameter. Parameter 
71 also determines whether or not all 8 data bits or only 7 data bits are 
examined when testing characters for specific values (e.g., for CR or XOFF).

Values  Description
-----------------------------------------------------------------------------
0       Format/parity used on last AT command (factory setting)
1       8 data bits, no parity
2       7 data bits, odd parity
3       7 data bits, even parity
4       7 data bits, mark parity
5       7 data bits, space parity

National Parameter 72 - Break Signal Timing
National Parameter 72 is used to control whether or not break timing 
information via National Parameter 73 is sent with the indication of break PAD 
message. 

In most PADs, when a break signal is received from the terminal, the PAD sends 
an X.25 interrupt packet, followed by an indication of break PAD message. The 
remote PAD will usually ignore the interrupt packet, and will transmit a break 
signal to the remote system when the indication of break PAD message is 
received. 

The duration of the break signal is normally fixed. National Parameter 73 
specifies the duration of the break signal transmitted by the PAD. If National 
Parameter 72 is set to value 0, the indication of break PAD message is sent 
normally, and will be compatible with all networks.

If National Parameter 72 is set to value 1, break timing information is sent 
along with the indication of break PAD message, by adding a parameter/value 
field to the indication of break PAD message. This sets the remote PAD's 
National Parameter 73 to a value that corresponds to the length of break as 
timed by the local PAD, so the break signal transmitted by the local PAD is 
very close to the length of the break signal received by the remote PAD.

Setting National Parameter 72 to value 1 could possibly confuse some networks, 
and should be used only in cases where you know that the remote PAD supports 
National Parameter 73.

Values  Description
-----------------------------------------------------------------------------
0       No break timing information sent with signal (factory setting)
1       Break timing information is sent with the break signal

National Parameter 73 - Break Signal Duration
This parameter is used to set the duration of a break signal transmitted by 
the PAD in increments of 10 milliseconds. The factory setting is 18 (180 
msec.). National Parameter 73 is usually set by the remote PAD, if the remote 
PAD supports National Parameter 72. 

Values:           0-255
----------------------------------
Factory Setting:  18 (180 msec)

National Parameter 74 - Disable PAD Parameter Setting by the Remote PAD
The remote system may try to re-configure the parameter settings of the local 
PAD (capability also available to the local modem user with the RSET command) 
to facilitate communications. However, doing this may not be the best 
configuration for your terminal. Register S57 allows you to disable the remote 
PAD's ability to change your PAD parameter settings.

Values  Description
-----------------------------------------------------------------------------
0       Remote PAD can reset your PAD parameters (factory setting)
1       All set or set and read PAD messages return the INV result code to 
        the remote system indicating that the parameter value cannot be 
        altered from the current setting.

National Parameter 100 - Default Maximum Packet Size
This parameter sets the default maximum packet size according to the following 
parameter value-to-packet size (in bytes) conversions:

Values  Description
------------------------------------
4       16 bytes
5       32 bytes
6       64 bytes
7       128 bytes (factory setting)
8       256 bytes
9       512 bytes

National Parameter 101 - Default Maximum Window Size
This parameter sets the default maximum window size.

Values:           2-7
Factory Setting:  2

National Parameter 102 - Call Request Response Timer
This parameter sets the maximum amount of time the transmitter should wait for 
acknowledgment to a call request packet before initiating recovery procedure, 
in 10-second increments.

Values:           1-255
Factory Setting:  20 (200 seconds)

National Parameter 103 - Reset Request Response Timer
This parameter sets the maximum amount of time the transmitter should wait for 
acknowledgment to a reset request packet before initiating recovery procedure, 
in 10-second increments.

Values:           1-255
Factory Setting:  18 (180 seconds)

National Parameter 104 - Clear Request Response Timer
This parameter sets the maximum amount of time the transmitter should wait for 
acknowledgment to a clear request packet before initiating recovery procedure, 
in 10-second increments.

Values:           1-255
Factory Setting:  18 (180 seconds)

National Parameter 105 - Interrupt Response Time
This parameter sets the maximum amount of time the transmitter should wait for 
acknowledgment to an interrupt packet before initiating recovery procedure, in 
10-second increments.

Values:           1-255
Factory Setting:  18 (180 seconds)

National Parameter 106 - Reset Request Retransmission Counter
This parameter defines the maximum number of times a reset request packet 
should be retransmitted.

Values:           0-255
Factory Setting:  1 retransmission

National Parameter 107 - Clear Request Retransmission Counter
This parameter defines the maximum number of times a clear request packet 
should be retransmitted. 

Values:           0-255
Factory Setting:  1 retransmission

National Parameter 108 - Channel Allocation Parameter
This parameter is used to inform the PAD how the application software or user 
intends to use the current PAD channel. There are four possible settings.

Values  Description
-----------------------------------------------------------------------------
0       Unavailable - the PAD channel will not be used; outgoing calls are not 
        allowed, and incoming calls will be directed to incoming or free 
        channels, or cleared
1       Outgoing - the PAD channel will be used for an outgoing call; incoming 
        calls will be directed to incoming or free channels, or cleared
2       Incoming - the PAD channel will be used for an incoming call; outgoing 
        calls are not allowed; the PAD will assign an incoming call to PAD 
        channels assigned as incoming before those assigned as bi-directional
3       Bi-directional - the PAD channel can be used for incoming or outgoing 
        calls; incoming calls will be directed to free channels if no incoming 
        channels are available (factory setting) 



2.3  PAD Profiles
For many X.25 connections, the PAD can be used without any changes to its 
factory configuration. For information on creating, saving, and recalling PAD 
profiles, see the PROF command. The four standard profiles are listed below.

Factory-Set Profile

PAD   Values       Description                         Default
Param.
-----------------------------------------------------------------------------
1     0-126        PAD recall using a character        0 (disabled)
2     0,1          Echo                                0 (disabled)
3     0-127        Selection of data forwarding signal 0 (disabled)
4     0-255        Selection of idle timer delay       1 (50 msec timeout)
5     0,1,2        Ancillary device control            0 (XON/XOFF disabled)
6     0,1,4,5      Control of PAD result codes         5 (standard PAD result) 
7     1,2,4,8,16   Response to break from terminal     l5 (send interrupt and 
                                                       break indication)
8     0,1          Discard output                      0 (normal delivery)
9     0-255        Padding after carriage return       0 (disabled)
10    0-255        Line folding                        0 (disabled)
11    0,2-5,12-16  Terminal speed                      (speed of terminal 
                                                       indicated)
12    0,1          Flow control of PAD by terminal     0 (XON/XOFF disabled)
13    0-7          Linefeed insertion after CR         0 (disabled)
14    0-255        Linefeed padding                    0 (disabled)
15    0,1          Editing                             0 (disabled)
16    0-127        Character delete                    8 (BS)
17    0-127        Line delete                         24 (CAN, ^X)
18    0-127        Line display                        18 (DC2, ^R)
19    0,1,2,8,     
      32-126       Editing PAD result codes            2 (display terminals)
20    0-255        Echo mask                           64 (echo all characters 
                                                       except editing 
                                                       characters)
21    0,2          Parity treatment                    0 (disabled)
22    0-255        Page wait                           0 (disabled)
70*   0,1          Streaming data forwarding           0 (disabled)
71*   0,5          Character format                    0 (set by AT autobaud)
72*   0,1          Break signal timing                 0 (disabled)
73*   0-255        Break signal duration               18 (180 msec)
74*   0,1          Disable PAD parameter settings by   0 (parameters set 
                   remote PAD                          by remote PAD)
100*  4-9          Default packet size                 7 (128 bytes)
101*  2-7          Default window size                 2 (2 outstanding
                                                       packets)
102*  1-255        T21 call request response timer    20 (200 seconds)
103*  1-255        T22 reset request response timer   18 (180 seconds)
104*  1-255        T23 clear request response timer   18 (180 seconds)
105*  1-255        T26 interrupt response timer       18 (180 seconds)
106*  0-255        R22 reset request retransmission   1 retransmission
107*  0-255        R23 clear request retransmission   1 retransmission
108*  0-3          Channel allocation parameter       3 (normal channel
                                                      allocation)



CCITT Simple Standard Profile

PAD   Values       Description                       Default
Param.
-----------------------------------------------------------------------------
1     0-126        PAD recall using a character      1 (DLE character)
2     0,1          Echo                              1 (echo on)
3     0-127        Selection of data forwarding      126 (forward on control 
                                                     signal characters 
                                                     and DEL)
4     0-255        Selection of idle timer delay     0 (no timeout)
5     0,1,2        Ancillary device control          1 (XON/XOFF enabled)
6     0,1,4,5      Control of PAD result codes       1 (standard PAD result 
                                                     codes enabled, no prompt) 
7     1,2,4,8,16   Response to break from terminal   2 (send reset packet)
8     0,1          Discard output                    0 (normal delivery)
9     0-255        Padding after carriage return     0 (disabled)
10    0-255        Line folding                      0 (disabled)
11    0,2-5,12-16  Terminal speed                    (speed of terminal 
                                                     indicated)
12    0,1          Flow control of PAD by terminal   1 (XON/XOFF disabled)
13    0-7          Linefeed insertion after CR       0 (disabled)
14    0-255        Linefeed padding                  0 (disabled)
15    0,1          Editing                           0 (disabled)
16    0-127        Character delete                  127 (DEL character)
17    0-127        Line delete                       24 (CAN, ^X)
18    0-127        Line display                      18 (DC2, ^R)
19    0,1,2,8,     
      32-126       Editing PAD result codes          1 (printing terminals)
20    0-255        Echo mask                         0 (echo all characters)
21    0,2          Parity treatment                  0 (disabled)
22    0-255        Page wait                         0 (disabled)
70*   0,1          Streaming data forwarding         0 (disabled)
71*   0,5          Character format                  0 (set by AT autobaud)
72*   0,1          Break signal timing               0 (disabled)
73*   0-255        Break signal duration             18 (180 msec.)
74*   0,1          Disable PAD parameter settings    0 (parameters set by by 
                   remote PAD                        remote PAD)
100*  4-9          Default packet size               7 (128 bytes)
101*  2-7          Default window size               2 (2 outstanding packets)
102*  1-255        T21 call request response timer   20 (200 seconds)
103*  1-255        T22 reset request response timer  18 (180 seconds)
104*  1-255        T23 clear request response timer  18 (180 seconds)
105*  1-255        T26 interrupt response timer      18 (180 seconds)
106*  0-255        R22 reset request retransmission  1 retransmission
107*  0-255        R23 clear request retransmission  1 retransmission
108*  0-3          Channel allocation parameter      3 (normal channel 
                                                     allocation)



CCITT Transparent Standard Profile

PAD   Values       Description                          Default
Param.
-----------------------------------------------------------------------------
1     0-126        PAD recall using a character         0 (disabled)
2     0,1          Echo                                 0 (disabled)
3     0-127        Selection of data forwarding signal  0 (disabled)
4     0-255        Selection of idle timer delay        20 (1 sec.timeout)
5     0,1,2        Ancillary device control             0 (XON/XOFF disabled)
6     0,1,4,5      Control of PAD result codes          0 (disabled)
7     1,2,4,8,16   Response to break from terminal      2 (send reset packet)
8     0,1          Discard output                       0 (normal delivery)
9     0-255        Padding after carriage return        0 (disabled)
10    0-255        Line folding                         0 (disabled)
11    0,2-5,12-16  Terminal speed                       (speed of terminal
                                                        indicated)
12    0,1          Flow control of PAD by terminal      0 (XON/XOFF disabled)
13    0-7          Linefeed insertion after CR          0 (disabled)
14    0-255        Linefeed padding                     0 (disabled)
15    0,1          Editing                              0 (disabled)
16    0-127        Character delete                     127 (DEL)
17    0-127        Line delete                          24 (CAN, ^X)
18    0-127        Line display                         18 (DC2, ^R)
19    0,1,2,8,     
      32-126       Editing PAD result codes             1 (printing terminals)
20    0-255        Echo mask                            0 (echo all
                                                        characters)
21    0,2          Parity treatment                     0 (disabled)
22    0-255        Page wait                            0 (disabled)
70*   0,1          Streaming data forwarding            0 (disabled)
71*   0,5          Character format                     0 (set by AT autobaud)
72*   0,1          Break signal timing                  0 (disabled)
73*   0-255        Break signal duration                18 (180 msec.)
74*   0,1          Disable PAD parameter settings       0 (parameters set
                   by remote PAD                        by remote PAD)
100*  4-9          Default packet size                  7 (128 bytes)
101*  2-7          Default window size                  2 (2 outstanding
                                                        packets)
102*  1-255        T21 call request response timer      20 (200 seconds)
103*  1-255        T22 reset request response timer     18 (180 seconds)
104*  1-255        T23 clear request response timer     18 (180 seconds)
105*  1-255        T26 interrupt response timer         18 (180 seconds)
106*  0-255        R22 reset request retransmission     1 retransmission
107*  0-255        R23 clear request retransmission     1 retransmission
108*  0-3          Channel allocation parameter         3 (normal channel
                                                        allocation)



Error-Control/LAP-B Profile

PAD   Values       Description                          Default
Param.
-----------------------------------------------------------------------------
1     0-126        PAD recall using a character         0 (disabled)
2     0,1          Echo                                 0 (disabled)
3     0-127        Selection of data forwarding signal  0 (disabled)
4     0-255        Selection of idle timer delay        0 (no timeout)
5     0,1,2        Ancillary device control             0 (XON/XOFF disabled)
6     0,1,4,5      Control of PAD result codes          0 (no PAD result
                                                        codes)
7     1,2,4,8,16   Response to break from terminal      5 (send interrupt and
                                                        break indication)
8     0,1          Discard output                       0 (normal delivery)
9     0-255        Padding after carriage return        0 (disabled)
10    0-255        Line folding                         0 (disabled)
11    0,2-5,12-16  Terminal speed                       ? (speed of terminal
                                                        indicated)
12    0,1          Flow control of PAD by terminal      0 (XON/XOFF disabled)
13    0-7          Linefeed insertion after CR          0 (disabled)
14    0-255        Linefeed padding                     0 (disabled)
15    0,1          Editing                              0 (disabled)
16    0-127        Character delete                     8 (BS)
17    0-127        Line delete                          24 (CAN, ^X)
18    0-127        Line display                         18 (DC2, ^R)
19    0,1,2,8,
      32-126       Editing PAD result codes             2 (display terminals)
20    0-255        Echo mask                            64 (echo all
                                                        characters except
                                                        editing characters)
21    0,2          Parity treatment                     0 (disabled)
22    0-255        Page wait                            0 (disabled)
70*   0,1          Streaming data forwarding            1 (streaming mode
                                                        selected)
71*   0,5          Character format                     0 (set by AT autobaud)
72*   0,1          Break signal timing                  1 (time break signal)
73*   0-255        Break signal duration                18 (180 msec)
74*   0,1          Disable PAD parameter settings       0 (parameters set
                   by remote PAD                        by remote PAD)
100*  4-9          Default packet size                  7 (128 bytes)
101*  2-7          Default window size                  2 (2 outstanding 
                                                        packets)
102*  1-255        T21 call request response timer      20 (200 seconds)
103*  1-255        T22 reset request response timer     18 (180 seconds)
104*  1-255        T23 clear request response timer     18 (180 seconds)
105*  1-255        T26 interrupt response timer         18 (180 seconds)
106*  0-255        R22 reset request retransmission     1 retransmission
107*  0-255        R23 clear request retransmission     1 retransmission
108*  0-3          Channel allocation parameter         3 (normal channel
                                                        allocation)




2.4 Typical X.25 Scenarios 
The examples below provide scenarios of typical activities you might perform 
and/or experience with X.25 connections. Each one provides the "Activity," a 
reference to a command description within this document for further 
discussion, the "Result" of the "Activity," and an "Example Log-on" when 
applicable. These examples may be helpful as reference when you are writing 
sequences for users, or when developing software.

Synopsis of a Communication Session with a Packet Switched Network
The events in a typical X.25 communication session are detailed below.

Establishing a Network Connection...
X.25 connections begin the same as point-to-point connections - with a modem 
call to a remote system. Once connected to the network, however, you use the 
PAD to make one or more virtual connections to other nodes on the network.

Making a Virtual Connection...
The following procedure explains the steps for the major activities in X.25 
communications.

Step 1: Configuring the modem for X.25.
Before placing a call to the network, you must configure the modem to make an 
X.25 connection. First, enter the modem's command state 

Issue AT&Q5S44=3S46=6S48=0 <CR>. This command string verifies that the modem 
is in the error-control mode (&Q5) and sets the values of three S-Registers 
that control the modem's feature negotiation. S48=0 controls the negotiation 
process; S46=6 stipulates an X.25 connection. Now, instead of negotiating a 
V.42 connection, the modem attempts connections using the X.25 protocol.

Step 2: Calling the network.
Next, dial the number of the network to which you subscribe. This is a 
standard modem call made with the D command: ATDT9,555-1234 <CR> (for 
example). If the call is successful, the modem will connect and issue a result 
code sequence. The carrier and connect messages you receive depend on the 
connection. If you want to see the extended messages, you must issue the W1 
command. With this feature enabled, for a 2400 bps connection, the messages 
will be CARRIER 2400 PROTOCOL: X.25/LAP-B CONNECT 4800. The PAD automatically 
enters the command state for channel 1.

Step 3: Making a virtual connection to the remote system.
To establish a virtual call to a user on the network, you must have the 
network address of the other node to which you wish to connect and any other 
information required by the network. For example, to connect to a service on 
the network, you would issue: CALL R-3110 20200202 <CR> - CALL is the command 
for initiating connections with a remote system. The (R) command permits 
reverse charging if the user at the other end of the virtual connection 
requests it. 3110 is a network ID code and 20200202 is the destination 
address. If the call is accepted by the remote system, the network will return 
the result code sequence: CON COM: W2:2,P7:7,X0277 COM. The PAD then enters 
the data transfer state. If the call is not accepted, the network returns a 
response such as CLR DTE 157 FAC: (followed by network information as 
alphanumeric characters X000...). The PAD remains in the PAD command state.

Step 4: Performing on-line activities
Once connected, you can perform desired communications - file transfers, 
interactive typing, etc.

Step 5: Clearing the call
When ready to end the session, issue CTRL-P to return to the channel's command 
state. Then issue CLR <CR>. This clears the current virtual connection. The 
network responds with CLR CONF FAC: (followed by network information as 
alphanumeric characters X000...).

Note: All virtual calls should be cleared before returning to the AT command 
state.

Step 6: Exiting the PAD
EXIT <CR> - Leaves PAD command state and enters the AT command state.

Step 7: Terminating the network connection
ATH0 <CR> - Breaks the physical connection to the network node. This action 
hangs up the telephone, in the same way other communication sessions are 
terminated.

Establishing a Virtual Connection
The example log-on and results below illustrate a successful attempt to 
establish a virtual connection.

Activity:     User dials CompuServe(TM), connects, then issues CALL command to
              establish a virtual connection. Call is accepted
Refer to:     CALL command description
Result:       Call is accepted. Depending on the network requirements, the
              modem sends back the following:
              CON <address> <facility_codes> COM <user_data>

              Note: The data in capital letters is sent to you; the data in
              angle brackets may or may not be sent to you.

Example Log-on:  User calls Telenet(TM) and issues CALL command to go on-line
                 with CompuServe:

                 Enter    AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR>
                 Result   CARRIER 2400 
                          PROTOCOL: X.25/LAP-B
                          CONNECT 2400

                 Enter    CALL R-311020200202 <CR>
                 Result   CON COM: W2:2,P7:7,X 0277 COM

Attempting a Virtual Connection that is not Accepted
This scenario depicts an unsuccessful attempt at establishing a virtual 
connection. For various reasons, the connection may not be completed. The 
reason(s) will be provided in result codes generated by the PAD.

Activity:    User dials packet-switched network, connects, then issues CALL
             command to establish a virtual connection, but call is not
             accepted.
Refer to:    CALL command description.
Result:      Call is not accepted. Depending on the network requirements,
             the modem returns the following result codes: 
             CLR <clear_cause_codes> <diagnostic_codes> <address> 
             <facility_codes>
Example Log-on:  User calls Telenet and issues CALL command to go on-line
                 with CompuServe:

                 Enter   AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR>
                 Result  CARRIER 2400 
                         PROTOCOL: X.25/LAP-B
                         CONNECT 2400

                 Enter   CALL R-311020200202 <CR>
                 Result  CLR DTE 157 FAC:
                         X0000C10400000000C208080000000100000062

Resetting a Virtual Channel
While on-line to another user on the network, if the escape sequence is used 
to return to the PAD command state, the channel will be reset.

Activity:    User is connected to an packet-switched network, has established 
             a virtual connection, then escapes to the PAD command state and 
             resets the virtual channel
Refer to:    RESET command description
Result:      The PAD resets the virtual channel and returns the following 
             information to the user: 
             RESET <reset_cause_codes>

Example Log-on:   n/a


Resetting a Virtual Channel a by Remote PAD
As a result of network activity, the remote PAD may reset a virtual channel. 
If this occurs, data may be lost. The call must also be re-established.

Activity:    User is connected to a packet-switched network, has established a
             virtual connection, and the network resets the virtual channel
Refer to:    RESET command description
Result:      The PAD resets the virtual channel and returns the following 
             information to the user: 
             RESET <reset_cause_codes> <diagnostic_codes>

Example Log-on:   n/a


Clearing a Virtual Channel
This scenario is the typical way to end a virtual call following a session. 
This is also the process to use when other calls are to be maintained.

Activity:    User is connected to a packet-switched network, has established a
             virtual connection, escapes to PAD command state, and clears the 
             call.
Refer to:    CLR command description.
Result:      The PAD clears the call, sets all PAD parameters back to their
             values prior to establishing the virtual connection, and returns 
             the following result codes: 
             CLR CONF FAC: X 00 00 C1 04 00 00 01 03 C2 08 00 00 00 
             08 80 00 00 04 

Example Log-on:   User calls Telenet and issues CALL command to go on-line 
                  with CompuServe:

                  Enter     AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR>
                  Result    CARRIER 2400 
                  PROTOCOL: /X.25
                  CONNECT 2400

                  Enter     CALL R-311020200202 <CR>
                  Result    CON W2:2,P7:7,X 0277, COM

                  Enter     User ID: <CR>
                  Result    *

                  Enter     Ctrl-P to return to the PAD command state 
                  Result    CLR CONF FAC:
                            X0000C104000000103C208000000008800000004

Accepting a Request from Remote PAD to Establish Virtual Connection
A request from a remote PAD to establish a virtual connection will be received 
when another network user is attempting to make a connection with you. 
Although the standard response is to accept, be aware that accepting the 
request, you may be accepting certain network charges other than packet 
transmission fees.

Activity:    User using modem and receives request from remote unit to 
             establish a virtual connection
Refer to:    ACC command description 
Result:      The remote PAD sends the following result code to the user
             IC <facility_codes> COM <user_data> 

Example Log-on:   n/a


Clear Command Failed
This scenario describes a request to clear a channel denied by the PAD. This 
may occur because the modem is transferring data.

Activity:    User is connected to a packet-switched network, has established a 
             virtual connection, escapes to PAD command state, but call fails 
             to be cleared
Refer to:    CLR command description
Result:      The PAD sends the following result code: CLR FAILED 

Example Log-on:   n/a


Link Restart Occurs
The example result code below indicates that the virtual links have been 
dropped. The connections must be re-established.

Activity:    A "link restart" is a major error condition in which all  virtual
             calls are disconnected and the virtual channels return to "start" 
             mode
Example:     LINK RESTARTED <restart_cause_codes> 


==============================================================================
Appendix A:
Communication Options
This appendix describes the various methods of communication supported by 
Hayes modems. Set up recommendations for each of these modes are provided. 
Flow diagrams illustrate the states and conditions through which the modem 
passes in each mode. Setup examples and environment descriptions are also 
included.



A.1 Transmission and DTE Types
Modems communicate over the telephone line by converting data from analog to 
digital form and vice versa. The techniques used are fundamentally the same 
whether the data transmission mode is synchronous or asynchronous. 

In most cases, communications over the telephone lines will be synchronous, 
regardless of the mode selected. The interface between the modem and the DTE 
will depend on the mode selected. 300 bps communications (for example when on-
line with a Smartmodem 300) are always asynchronous between modems. At speeds 
of 1200 bps and higher, the modem-to-modem links are always synchronous.

However, between the DTE and the modem, synchronous and asynchronous 
communication differ significantly. The DTE hardware and software are usually 
different as well. A modem operating with a synchronous DTE could connect to 
another modem operating with an asynchronous DTE, as the carrier signals are 
no different. But the data passed over the link might not be intelligible to 
their respective computers. 

The interface between the modem and the DTE is generally asynchronous for all 
personal computer-to-modem communications. When the modem-to-DTE link is 
synchronous, the DTE must be a synchronous device such as a synchronous 
adapter card installed within the computer. The two types of transmission 
differ in the techniques used to separate the characters that are transmitted. 
Asynchronous transmissions use bits to indicate the start and stop of the 
character. Synchronous transmissions use clocking signals.

Hayes modems provide several communication modes to adapt to a variety of 
environments and operating demands. When a communications mode is selected 
that supports an asynchronous DTE at 1200 bps or greater, the modem converts 
the asynchronous data into synchronous data that is compatible with the modem-
to-modem carrier signals. In some of the communications modes that support 
asynchronous DTEs, the start and stop bits are also converted to synchronous 
data over the modem-to-modem link. Naturally, the modems on both ends of the 
link must be in a compatible communications mode if the data is to be restored 
at the receiving DTE. For this reason, communications modes that support 
asynchronous DTEs and which actually send the start and stop bits over the 
modem-to-modem link are often referred to as asynchronous connections.

The communications mode is controlled by the &Q command, except for Smartmodem 
300 and those Smartmodem 1200s that support only asynchronous mode. This 
command is discussed fully in the next section.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.1.1 Asynchronous Transmissions
Most communications between PCs are asynchronous. Asynchronous transmissions 
pass data between the modems as characters. Data is then transmitted as 
character bits framed by start, stop, and parity bits to mark the beginning 
and end of character units.

The use of parity bits is optional depending on the asynchronous character 
format selected. 

When sending and receiving data, the modem supports the following asynchronous 
character formats:

Start Bits  Data Bits   Parity      Stop Bits
-----------------------------------------------
1           7           even/odd    1 or more
1           7           none        2
1           7           mark/space  1 or more
1           8           none        1 or more

At speeds of 1200 bps or higher, the modem always generates data in a 10-bit 
format, including the start bit. In the modem command state, information 
exchanged between the DTE and modem consists of commands and responses that 
are not transmitted or received over the phone line. The character formats 
supported by a particular modem are provided in the Installation Guide 
accompanying the modem, under the feature list.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.1.2 Synchronous Transmissions
Synchronous communication is a specialized form of data transmission and 
generally requires special hardware and software combinations. When operating 
in a synchronous mode, the modem functions as a pipeline, sending bits across 
the link between modems according to uniform blocks of time. 

Communication is managed through special protocols. Though techniques differ 
slightly, synchronous protocols assemble data in frames prior to transmission 
and disassemble the frames on arrival. If the communication environment 
supports synchronous communication, the framing - data formatting - is 
performed by the communications software. No data format selection is required 
of the modem for synchronous operation.

Synchronous modes 1, 2, 3, and 4 are supported by standalone (external) 
modems. Hayes boardlevel (internal) modems support synchronous communications 
with mode 4, Hayes AutoSync. The only exceptions are the modems designed for 
the Apple(TM) Macintosh(TM) II family: Smartmodem 2400M and V-series 
Smartmodem 2400M. The Macintosh II, unlike other personal computers, supports 
both asynchronous and synchronous communications without an adapter card. If a 
personal computer (an IBM(TM) PC XT(TM), for example) has a synchronous 
adapter card installed, then a Hayes standalone Smartmodem or V-series System 
Products that support modes 1, 2, or 3, may be used for synchronous 
communications.



A.2 Communication Modes - &Q
The requirements of the communication link - including the software that 
addresses the modem and the capabilities of the local and remote modems - 
determine the mode to be used. For example, there are three modes for 
asynchronous DTEs (&Q0, &Q5, and &Q6) and three modes for synchronous DTEs 
(&Q1, &Q2, and &Q3). Most PC communications are performed in the asynchronous 
mode. Unless the modem is installed on a terminal, or computer with 
synchronous capability, or connected to a mainframe, communication will most 
likely be asynchronous. 

For those situations such as mainframe connections, the modem can be 
configured for synchronous modes. Synchronous communication requires special 
hardware in all but Mode 4. In all synchronous modes, special software that 
provides the necessary protocol is required. Synchronous communication 
requires that the DTE (either the personal computer/data terminal or the port 
on the host computer) be able to exercise some degree of control over DTR. 
When the modem is operating in synchronous modes 1, 2, or 3, the modem's 
response to DTR transitions as specified by the &D command are significantly 
different than responses to changes in DTR when the modem is in asynchronous 
modes 0, 5, or 6. Modes 1, 2, and 3 are based on the 108.1 application of the 
CCITT Recommendation V.24 that specifies series interchange circuit 
designations. This alternative, "Connect Data Set (modem) To Line," is very 
similar to EIA/TIA-232-D (a revised version of RS 232-C).

Mode 4: AutoSync is the Hayes alternative for synchronous communication from a 
personal computer. Originally developed to afford Hayes internal modems for 
IBM PC XTs a means of communicating with synchronous computers (mainframes 
such as IBM 3090 models), this feature was added to standalone modems as well. 
Using a personal computer and software incorporating the Hayes Synchronous 
Interface (HSI) software, the modem can be used synchronously from most 
asynchronous serial computer ports.

The factory default setting is &Q0 (asynchronous mode) for Smartmodem 
Products, and &Q5 (error-control mode) for V-series System Products. When a 
Hayes V-series System Product attempts an error-control connection with a 
remote modem that cannot perform error-control, the V-series System Product 
can either fall back to a connection supported by the other modem or hangup, 
depending on the value of S36. When the use of &Q5 results in an error-control 
connection, the DTE asynchronous data is converted to synchronous data. The 
start and stop bits are discarded over the modem-to-modem link where the data 
is encapsulated by a synchronous framing protocol that the DTE cannot see. The 
specific type of synchronous framing (error-control protocol) that is used is 
determined by registers S36, S46, and S48. When a V-series System Product 
connects to a Smartmodem 1200 attached to a V-series Modem Enhancer, a special 
Asynchronous Framing Technique (AFT) is used when an error-control link is 
established (AFT preserves the start and stop bits in the modem-to-modem 
link.)

The &Q0 and &Q6 modes also convert the asynchronous DTE's start and stop bits 
to synchronous data in the modem-to-modem link, so that those modes are 
compatible at each end of the same modem connection. The &Q6 mode, however, 
permits the DTE to operate at a faster speed than the modem link by using 
buffers in the modem and bi-directional local flow control between the modem 
and the DTE. The &Q0 mode utilizes the CCITT V.14 standard stop bit 
manipulation feature to accommodate the slight speed discrepancies that can 
occur between a modem and a DTE that are operating at the same nominal speed.

The chart below lists the &Q command options currently defined for selection 
of communication mode. Details on these modes are provided in subsequent 
sections.

Command  Definition
-----------------------------------------------------------------------------
&Q0   Asynchronous mode - standard personal computer connection; call
      placement and connection are both asynchronous. Basic setup
      permitting interaction with the modem in either the command or the
      on-line states.

&Q1   Synchronous Mode 1 - call placement takes place using asynchronous
      DTE, then modem switches to synchronous DTE when the connection is 
      fully established. The switchover time is controlled by register S25.

&Q2   Synchronous Mode 2 - dial stored number under control of the DTR
      interface circuit of a synchronous DTE. The use of an asynchronous 
      DTE in command state is optional.

&Q3   Synchronous Mode 3 - dial manually using the DTR (V.24 108.2) 
      interchange circuit to switch between voice and data modes.
      Requires telephone to dial while in the voice mode. The use of an 
      asynchronous DTE in command state is optional.

&Q4   Hayes AutoSync - call placement takes place using asynchronous DTE, 
      then modem switches to a special mode that makes an asynchronous port 
      appear to operate synchronously after the connection is established.
      This mode requires software addressing the Hayes Synchronous Interface
      (HSI).

&Q5   Error-control mode - call  establishment and data transfer use an 
      asynchronous DTE. Negotiation of error-control and compression 
      features with other modem is controlled by registers S36, S46, and
      S48. With factory default settings, modem in &Q5 mode attempts the 
      most compressed error-free connection features that the other modem
      will support. Modem may "fall back" to &Q6 or to &Q0 modes during
      the connection negotiation if the remote modem does not support an 
      error-control protocol.

&Q6   Asynchronous mode with speed buffering enabled. In addition to the 
      features provided by &Q0, this mode allows for a DTE speed that is 
      faster than the modem-to-modem link. Modem buffers and local flow 
      control are used.

Note: In addition to the modes selected and initiated with AT commands, some 
V-series System Products capable of 9600 bps line speeds (ULTRA(TM) 96, for 
example) also support CCITT V.25bis as an alternate method of controlling the 
modem. This method of modem control is discussed following the descriptions of 
the individual communication modes.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.1 Asynchronous Mode - &Q0
In this mode, the modem transmits and receives characters asynchronously to 
and from the local data terminal at the same nominal speed as the modem 
connection. Asynchronous mode can be selected with the &Q0 command option.

The asynchronous mode supports both the on-line and the "on-line" command 
states. When connected to an asynchronous data terminal, the modem can be 
configured, used as a dialer, and placed on-line for data communications. A 
complete explanation of communications in this mode is provided in both the 
Smartmodem Product User's Reference and the V-series System Product User's 
Reference.

If the modem receives a character while dialing the telephone number, it 
aborts the call and sends the OK result code; if a character is received after 
dialing but prior to the completion of the connection, it aborts the call and 
sends the NO CARRIER result code.

The modem exits the on-line state and returns to the command state when a loss 
of carrier exceeding the time interval stored in S10 is detected. For the 
responses associated with transitions of the DTR signal for this mode, refer 
to the discussions of the &D command in Chapter One.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.2 Synchronous Mode 1: sync/async - &Q1
Synchronous mode 1 is intended to support terminals capable of communicating 
both synchronously and asynchronously over the same V.24/EIA 232-D port. In 
synchronous mode 1, a call may be completed using asynchronous methods from 
the command state with the D or A command. The modem automatically switches to 
the synchronous on-line state when the CONNECT XXXXX result code is delivered 
to the terminal. Because call establishment in this mode is initiated from the 
asynchronous command state, the modem must be attached to a computer port with 
both synchronous and asynchronous capabilities.

If the modem receives a character while dialing the telephone number, it 
aborts the call and sends the OK result code; if a character is received after 
dialing but prior to the completion of the connection, it aborts the call and 
sends the NO CARRIER result code.

The data terminal must apply an ON condition to DTR before on-line data 
transfer can begin. Once the CONNECT XXXXX result code is received, the modem 
delays a period of time determined by S25 before examining the condition of 
the DTR signal. If DTR is ON, the modem enters the synchronous on-line state. 
If DTR is OFF, the modem hangs up and returns to the asynchronous command 
state. For the responses associated with transitions of the DTR signal for 
this mode, refer to the discussions of the &D command in Chapter One.

The modem exits the synchronous on-line state and returns to the asynchronous 
command state when a loss of carrier exceeding the time interval stored in S10 
is detected.

If DTR is OFF and &D2 is selected, the auto-answer feature is disabled 
regardless of the value of register S0.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.3 Synchronous Mode 2: stored number dial - &Q2
In this mode, the modem supports a synchronous-only data terminal or a 
computer with a synchronous adapter card. In synchronous mode 2, the modem 
automatically dials a number stored in location 0 (see the &Zn=x command) when 
the modem detects an off-to-on transition on DTR (when it is turned on). When 
configuring the modem for this mode, result codes should usually be turned off 
(the Q1 command option) as some computers do not interpret responses from the 
modem correctly. The modem can be configured in the asynchronous command state 
while &Q2 is in effect, but the D and A commands are disabled.

The modem exits the synchronous on-line state and returns to the asynchronous 
command state when a loss of carrier exceeding the time interval stored in S10 
is detected. An on-to-off transition of DTR causes the modem to hang up and 
return to the asynchronous command state. For the responses associated with 
transitions of the DTR signal for this mode, refer to the discussions of the 
&D command in Chapter One.

Synchronous mode 2 is similar to the CCITT Recommendation V.25bis ("Direct 
call and/or answer controlled by the DTE").

Once this mode has been selected, the modem may go off-hook and begin dialing 
the stored number as soon as the modem is connected to the terminal. To delay 
this transition, turn the modem off (place the power switch in the down 
position) before connecting the devices. When the connection is completed, 
turn the modem back on. Note that when DTR is off, auto-answer is disabled - 
regardless of the &D option selected.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.4 Synchronous Mode 3: manual dial with data/talk switch - &Q3
In synchronous mode 3, the DTR interchange circuit serves as a data/talk 
switch. This mode supports a synchronous-only data terminal or a personal 
computer with a synchronous adapter card installed. A telephone set must be 
attached to the PHONE connector on the rear of the modem or directly to the 
telephone line. This mode permits the data terminal operator to initiate a 
call using the telephone with the modem in "talk mode," and to complete the 
call by switching the modem to the "data mode" by turning on the DTR 
interchange circuit. When configuring the modem for this mode, result codes 
should be turned off using the Q1 command option. The modem can be configured 
in the asynchronous command state while &Q3 is in effect, but the D and A 
commands are disabled.

To originate a call in synchronous mode 3, the DTR interchange circuit must be 
off. This places the modem in talk mode. When the modem has been configured 
for this mode with the &Q3 command, the terminal operator can lift the 
receiver and dial the number. When the last character of the dial string has 
been dialed, the modem can be switched to data mode by causing the data 
terminal equipment to turn on the DTR signal. The operator should then hang up 
the receiver. When the data terminal equipment turns on DTR, the TR indicator 
(on the front panel of external Smartmodem and V-series System Products) 
lights up. For the responses associated with transitions of the DTR signal for 
this mode, refer to the discussions of the &D command in Chapter One.

The modem exits the synchronous on-line state and returns to the asynchronous 
command state when a loss of carrier exceeding the time interval stored in S10 
is detected.

If the connection fails, the modem automatically hangs up and switches from 
data to talk mode. To re-initiate the call, DTR must again be turned off.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.5 Synchronous Mode 4: Hayes AutoSync - &Q4
With communication software incorporating the Hayes Synchronous Interface 
(HSI), the modem can communicate synchronously without a synchronous interface 
adapter card. In AutoSync mode, the modem places the call asynchronously then 
automatically switches to synchronous operation once the telephone connection 
is fully established. 

If the modem receives a character while dialing the telephone number, the 
modem aborts the call and sends the OK result code; if a character is received 
after dialing but prior to the completion of the connection, it aborts the 
call and sends the NO CARRIER result code.

The data terminal must apply an ON condition to DTR before data transfer can 
begin. Once the CONNECT XXXXX result code is received by the DTE, the modem 
delays for a period of time determined by S25 before examining the condition 
of the DTR signal. If DTR is ON, the modem enters the synchronous operation 
state. If DTR is OFF, the modem hangs up and returns to the asynchronous 
command state.

The modem exits the synchronous on-line state and returns to the asynchronous 
command state when a loss of carrier exceeding the time interval stored in S10 
is detected. For the responses associated with transitions of the DTR signal 
for this mode, refer to the discussions of the &D command in Chapter One.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.6 Error-Control Mode - &Q5
The error-control mode is a feature available only between Hayes V-series 
System Products, and other modems supporting particular protocols (e.g., CCITT 
V.42). This mode provides a means of controlling errors that may occur during 
transmission. When operating in this mode, the modem implements one of the 
error-control protocols that can be negotiated with the remote modem.

If the modem receives a character while dialing the telephone number, it 
aborts the call and sends the OK result code; if a character is received after 
dialing but prior to the completion of the connection, it aborts the call and 
sends the NO CARRIER result code. For the responses associated with 
transitions of the DTR signal for this mode, refer to the discussions of the 
&D command in Chapter One.

Error-control mode is automatically selected in &Q5 communication mode 
(factory setting) for V-series System Products.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.7 Asynchronous Mode with Automatic Speed Buffering - &Q6
Automatic Speed Buffering (ASB) is useful for computers and communication 
programs that do not automatically adjust to changing transmission speeds. ASB 
enables computer equipment to send and receive data to and from the attached 
modem at one particular transmission speed, regardless of the speed of the 
modem-to-modem connection. (If using a Hayes Smartcom Product, ASB is 
unnecessary; Hayes communications software adjusts to changing speeds and 
connection types.)

When a V-series System Product cannot complete an eror-control connection, it 
attempts to establish an asynchronous connection (if in factory 
configuration). When this occurs, the modem-to-computer (DTE) transmission 
speed may change, however. To accommodate computers or computers running 
software that cannot adjust to such a change, the local V-series System 
Product can be configured to enable Automatic Speed Buffering  when it has to 
fall back to asynchronous communication. For negotiation failure treatments, 
see the description of S36 in Chapter One, and the modem's Installation Guide 
for the options available to the specific modem.

ASB buffers (stores) data temporarily, using local flow-control to parcel it 
from the computer as the modem is ready to receive it. The modem must be set 
with the &K command to use the appropriate DTE flow-control method. When using 
ASB, the modem signals the local computer when to start and stop sending data, 
depending on how full the modem's 256-byte buffer is. The factory setting for 
flow-control is appropriate for most computers. However, in rare instances, 
you may need to select another flow-control method. For example, if using 
XON/XOFF flow control (&K4 setting) results in undesirable interactions with 
the user's application software, then RTS/CTS (&K3) or transparentized 
XON/XOFF (&K5) are available.

To increase buffer size, change its "upper limit" by changing the setting of 
S50 from its factory setting of 16 bytes to a higher number in its range of 2-
250 bytes. The value of the register reflects the number of bytes that can be 
stored in the buffer before the modem signals the computer to stop sending 
data. It is unlikely that the buffer's "lower limit," the level at which the 
modem signals the local computer to resume sending data, would ever need to be 
changed. However, this setting can be changed by writing to S49. The factory 
setting is 8 bytes with a range of 1-249 bytes. If these register values are 
set incorrectly or outside the acceptable range, they are automatically 
adjusted by the modem for ASB to work.

If the modem receives a character while dialing the telephone number, it 
aborts the call and sends the OK result code; if a character is received after 
dialing but prior to the completion of the connection, it aborts the call and 
sends the NO CARRIER result code.

For the responses associated with transitions of the DTR signal for this mode, 
refer to the discussions of the &D command in Chapter One.


==============================================================================
Appendix B:
Troubleshooting Tips

This appendix offers suggestions for remedying problems in modem 
communications. The first sections discuss setup and configuration issues. The 
last sections describe the tests that can be run using AT commands.

When problems first occur, the natural response is to question the operation 
of the modem on one end or the other. However, as well as the modem, problems 
might involve cabling (where appropriate), the computer, the communications 
software, and the telephone lines. All of these components are potential 
problem areas that should be considered before assuming the difficulty lies 
with the modem.

The first section of the appendix covers the following topics:


modem, or the connection is inconsistent or otherwise substandard


modem, but cannot make the connection with the remote system


scrambled data, and locked systems are among the difficulties that may be 
experienced

The discussions on these areas will help in setting up and maintaining 
communications. In addition, the test procedures outlined in this section are 
useful in determining the source of a problem with modem use.

The second part of the appendix describes testing that can be performed using 
AT commands.



B.1 The Communication Link
Because there is more to the connection than the modem, all of the components 
should be verified. The diagram below depicts the components in a 
communication link with two computers, two modems, and a dial-up telephone 
circuit. The installation may include a dedicated leased line rather than a 
switched central-office connection, or a mainframe host with an asynchronous 
or synchronous front-end processor at one end or the other. The general 
principles, however, are the same.

The configuration above is the context of modem use in which the communication 
link is discussed in this section. Although your modem may be an internal one, 
that is, installed inside the computer, the operational concepts are still the 
same.

The suggestions provided in the user documentation accompanying each Hayes 
modem will clear up the majority of problems in an installation. Most 
difficulties arise from simple causes - improper or loose connections or 
software incompatibility. Be sure to review the scenarios and tips before 
assuming the problem is something more. The suggestions in this section 
require some familiarity with the AT Command Set, DTE requirements, EIA 232-
D/CCITT V.24 signals, and the telephone system.

A communication link problem may simply be due to a bad switchboard 
connection. Before calling the local telephone system, however, you should 
make sure the problem is not being caused by faulty or improperly connected 
equipment at either end. Telephone service can be very expensive, especially 
if the problem is not really with the phone lines.



B.2  Troubleshooting the Process
Troubleshooting the communications is best handled by analyzing the entire 
process. The failure is typically in only one area. This section looks at the 
causes and solutions to problems in the three main areas: getting started with 
the modem, making the connection, and the on-line connection.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.2.1 Problems in Getting Started
If a newly-installed modem does not work properly, here some likely causes:






   DTE and modem

It is uncommon for the modem itself to fail, although this does occur. 
Checking modem operation is fairly simple when the modem is an external 
device. Generally, if the modem failed its self tests on powerup, the front 
panel lights will indicate a problem. For example, if the MR (modem ready) 
light does not come on, the modem may have a problem. Or if the HS light 
(external Smartmodem and V-series System Products) does not come on, the modem 
may be improperly configured.

Some cases of apparent modem failure may be caused by a power surge; changed 
parameters in your software that prevent it from finding the modem; an 
incompatible component in the communication link; an improper connection; or 
simply a device that is not plugged in or turned on. Before initiating the 
V.54 tests described in this chapter, re-examine the communications equipment 
to make sure none of the above conditions could be causing the difficulty.

............................................................................
B.2.1.1 Verifying the DTE-to-Modem Connection
The first interface to verify is the one between the DTE and the modem. This 
involves the cable, the modem, the software, and the DTE.

Cable Requirements
When a cable is used to carry signals between the DTE and the modem (external 
modem) any cable with transmit, receive, and ground will support standard 
asynchronous communications. To make sure that communications are performed 
properly, all other transmission modes require additional signals. For 
example, synchronous communication requires timing signals. Error-control 
communication with hardware local flow control requires RTS and CTS signals. 
For pinouts and descriptions of these signals, see the end of this chapter. To 
determine the signal capabilities of a cable, you can issue the &T19 command 
(supported only by V-series System Products). The &T19 command is discussed 
later in this section.

Another cabling factor that can influence communications is shielding. If any 
of the cables that are connected to the DTE (not just the one connecting the 
modem to the computer) is not shielded, interference can occur that may result 
in data errors. In all cases, the connector and the cable wires themselves 
should be shielded to reduce the possibility of interference.

DTE Port or Slot
Although it may seem obvious, not every computer has a serial port (the kind 
necessary for modem communications). Also, that port may already be taken up 
by a printer. Some computers support a parallel printer, instead. If the modem 
is an internal modem, and it has been installed correctly, this should not be 
a problem. However, selection of the port is important, no matter whether it 
is an internal or external modem. In fact, improper port selection is one of 
the most frequently diagnosed problems discovered by Hayes Customer Service.

Modem's Command Processor and the Software
The process below may be useful for troubleshooting an unfamiliar 
modem/software combination. This could be either for a new program or the 
addition of a new modem to an existing installation. The process is oriented 
toward asynchronous operation. However, if troubleshooting a synchronous 
connection, you will need to verify the asynchronous portion of the modem's 
operation anyway. The steps below help verify that command information is 
getting from the DTE to the modem and that its command processor is operating 
properly.

Process: If using communications software (and not a terminal), consult its 
user's guide for suggestions and the proper procedure for issuing command 
interface with the modem. It is essential that you be able to establish a 
direct connection between the DTE and the  modem, so that what you type is 
transmitted through the computer  directly to the modem.

Step 1: Try issuing AT<CR>. The OK result code should be returned by the 
modem. The modem should be receiving your commands and be responding with a 
result code. If commands don't seem to be reaching the modem, check the cable 
connection. Make sure you are addressing the desired communication port (COM1 
or COM2). This option is set either with a software option or with an 
operating system command. For example, the Chooser is used to select the COM 
port for the Macintosh. The DOS SET command is used for IBM PCs and 
compatibles. The physical connection of the modem to a terminal determines the 
port.

Step 2: If you can't see anything you type, or if for any other reason, you 
suspect that the modem's settings may be preventing the connection, issue 
AT&F<CR> to restore the modem's factory configuration. If the modem is a V-
series System Product, try issuing AT&Q0<CR> to put it into normal 
asynchronous mode. In this mode, any software should talk to the modem. For 
example, local flow control will not be an issue if it is configured for 
standard asynchronous mode.

Step 3: Try issuing commands to the modem. For example, try the I commands 
used to identify the modem. If OK or the expected results (see the I command 
descriptions in Chapter Five) are returned, the modem is operating as it 
should. Try changing a few configuration settings, then resetting the modem 
with ATZ<CR>. If OK is returned, this part of the modem's command processor is 
functioning properly. If no responses are returned from the modem, try issuing 
ATE1<CR> to enable command state echo. If characters are double, issue 
ATE0<CR> to disable command state echo, as the software is providing that echo 
already. Then try issuing some commands or reading some S-Registers.

Analysis:	If using different communications software before running this 
procedure, either that software is not compatible with the modem, or an 
incorrect setting (e.g., communication port) that prevented the connection was 
corrected with the software used to make the direct connection. This setting 
should be changed in the original software.

If the connection were made with the same software that previously exhibited a 
problem, but no problem occurred when in direct connect mode, check the 
settings used in the command-oriented process above to make sure that the 
standard software interface (probably menu-driven) is storing settings such as 
COM port selection, speed, and character format. This may all seem too 
rudimentary, but a simple conflict of modem and software settings typically 
causes the problem.

If the process works in asynchronous mode, but does not in error-control or 
ASB mode, you may have cabling and/or local flow control problems.

............................................................................
B.2.1.2 Checking the Dialer and the Telephone Lines
Once you are certain that the modem is receiving and responding to commands 
from the DTE, you can verify the modem's dialing capabilities by attempting a 
call. This will also test the telephone lines. 

Process: As described in the previous section, check your communications 
software for the procedure to issue commands directly to the modem. The steps 
below explain how to place a call using the D command and various dialing 
modifiers. 

Step 1: If you receive an OK result code, instruct the modem to dial an actual 
telephone number (using the D command). If calling out of a PBX, remember to 
include the 9 or other outside access code in the phone number. Listen for a 
dial tone, followed by the tone dialing beeps. When these occur, they ensure 
you've entered the phone number correctly, and the local phone line is 
responding properly. If there is no dial tone, check the phone line by dialing 
with an ordinary phone. Note that some PBX systems must be modified to produce 
at least 48 volts DC for the modem to work. 

Step 2: If you hear the phone on the other end ringing, then the remote phone 
is responding properly. Press any key to hang up. 

Step 3: Try dialing another modem to see if you make a connection. A 
connection is indicated by two whistling sounds of different tones (the 
carriers), followed by a hissing sound. The modem should respond with a 
CONNECT XXXXX result code.

Analysis: When you have reached this point successfully, both modems are 
performing correctly. If no errors occurred with these steps, the problem is 
related to software, user error, or improper modem installation/setup. If this 
procedure indicated a problem with the modems or the communication link, go on 
to the next section. A common setting that might need to be changed is the 
software's or modem's response to the DTR signal (controlled by &D options).

You can check the modem's answer capabilities (or when serving as the remote 
modem in the process above) by issuing the A command when the phone rings. The 
incoming call must be from a modem, however, not a voice call. The same 
sequence of carrier exchange will be made.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.2.2 Problems Encountered During Communications
Another set of problems can follow establishment of a data connection. These 
may range from loss of carrier to data loss. The sections below discuss these 
situations.

............................................................................
B.2.2.1 Data Loss or Corruption
A typical complaint regarding connections is that of lost or corrupted data. A 
number of factors can affect the transmission of data.

Modem Settings
"Garbled," or otherwise faulty data can occur from the time the connection is 
made or just a momentary problem. If all the data that comes across is 
incorrect, or if the modems handshake with each other successfully but not 
data can be transferred, suspect an error in the setting of some 
communications parameter. For example, both systems must use the same 
asynchronous character format or synchronous framing and clocking scheme. Even 
if the local system is operating properly, if the remote system uses a 
different format, the garbled data may be exactly what is sent and not the 
result of any modem or transmission error. 

Line Noise
Occasional garbling or loss may be the result of noise or otherwise poor 
quality of the telephone line. If a dial-up connection is too noisy, the 
connection should be broken, and the connection re-attempted; you get a 
different circuit each time. One that is acceptable for voice may not be for 
data. With a leased line, the circuit is always the same. If you experience 
line noise or line drops, you should contact (or the software should recommend 
that the user contact) the vendor of the leased line.

Transmit and Receive Levels
Other factors that affect both leased and dial-up lines are the transmit and 
receive levels. These settings determine the signal levels used by the modem 
in each direction. Some Hayes modems permit these levels to be adjusted. The 
range and availability of these adjustments is in large part controlled by the 
local telephone system. For example, the recommended settings and ranges are 
different for modems sold in the U.K. than for those sold in the U.S. See the 
documentation accompanying the modem to determine whether this capability is 
supported.

DTE Processor Restrictions
Some multi-tasking operating systems can occasionally lose small amounts of 
data if the computer is heavily loaded and cannot allocate processing time to 
the communications task frequently enough. In this case, the data is corrupted 
by the DTE itself. This could also cause incomplete data transmission to the 
remote system. DTE processor capabilities should be a concern when developing 
software for data communications when the line speed is greater than 9600 bps 
and the modem-to-DTE connection is 19200 bps or higher (for example, when data 
compression is used). The modem will provide exact transmission of the data it 
receives, but if the DTE cannot "keep up" with the modem because of other 
tasks or speed restrictions, precautions should be taken when writing software 
or when adding modems with extra high speed capabilities into a link.

One way to avoid the problem of data loss caused by the DTE is the use of an 
upgraded serial port such as Hayes Enhanced Serial Port(TM) (ESP(TM)) card. 
This card replaces the existing serial card, providing two ports, data 
buffering, and a communications co-processor to take some of the load off of 
the DTE processor. For information regarding this product line, contact Hayes 
Customer Service.

Buffer Overflow
Hayes V-series System Products provide a data buffer for overflow when the 
modem is transmitting data to the DTE faster than it can process it, or vice 
versa. The upper and lower limits of the buffer can be adjusted with S-
Registers 49 and 50, although the factory settings suit most situations.

............................................................................
B.2.2.2 Dropped or Lost Connections
Phone line quality or features such as call waiting can cause lost 
connections. As described above, if the connection keeps dropping, you might 
want to contact the telephone company. However, you may first want to try a 
connection with another remote system and/or try using the modem from a 
different phone connection altogether. In addition to phone line problems, two 
other things might cause loss of connection.

Call Waiting
The call waiting feature available on some dial-up lines momentarily 
interrupts a call, causing a click, to inform voice call users that another 
call is coming through. This process effectively interrupts the carrier signal 
and may cause some modems to drop the connection.

One way around this is to set S10 to a higher value so the modem tolerates a 
fairly long loss of carrier signal. Data loss may still occur, but the 
connection will not drop. Of course, the remote modem must be similarly 
configured. When originating the call, a special prefix can be issued as part 
of the dialing string to disable call waiting for the duration of the call. 
The exact procedure varies from area to area; contact the local telephone 
system for details.
 
Automatic Timeout
Some Hayes modems offer an automatic timeout feature, to prevent an inactive 
connection from being maintained. This inactivity delay can be set or disabled 
with S30. This "watchdog" feature prevents occurrences such as undesired long 
distance charges for a connection that was unintentionally maintained.

System Lock up
There are situations in which systems do lock up, but in many cases it is 
simply that one or the other of the DTEs has been "flowed off," that is, the 
character that stops data transfer has been inadvertently sent. This can 
happen during error-control connections if the wrong kind of local flow 
control has been selected. For an explanation of local flow control options, 
see the &K command definition in Chapter One. In addition, the problem could 
be the result of incompatible EIA 232-D/CCITT V.24 signaling. The section 
below provides some situations and tips that will help if the communication 
link seems to lock up.



B.3 Special Environment Considerations
The charts below provide some hints for custom setups to remedy problems for 
DTE and telephone line peculiarities. Because Hayes modems can be configured 
to suit almost any combination of components in a communication link, you can 
adjust to compensate for limitations in almost any computer or telephone 
system (within the limits imposed by the local telephone authorities).

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.3.1 Custom Modem Setup for Mainframe or Minicomputer Host
Check the following host symptom/limitation situations for a solution 
involving modem re-configuration.

Host Limitation                       Hayes Solution
-----------------------------------------------------------------------------
Can't control DTR or issue            Select &D0 : Modem ignores changes in
escape sequence                       DTR status (factory setting)

Can reset itself but not the modem    Select &D1 : Modem enters command state
                                      when on-to-off transition of DTR is 
                                      detected.

DTR timing is not adjustable          Adjust register S25 delay time

Unable to monitor carrier             Select &S1: Handshake asserted prior to 
(older IBM Hosts)                     handshake negotiation

Must see DSR at all times             Select &S0: DSR always asserted
(VAX systems)

Timing will not support lengthy       Select &S2: DSR asserted after handshake 
handshakes (re-associated with        negotiation, but before CONNECT result 
some high-speed modems)               code is sent to DTE. Also select a 
                                      specific negotiation handshake option 
                                      (N command option.) which specifically 
                                      matches the modem combinations.

Must see CTS to be able to            Select &R: ignore RTS; always assume
talk to modem                         presence of CTS.

RTS/CTS timing not adjustable         Adjust S26 RTS-to-CTS delay time

Not able to recognize FDX modem on    Adjust S26 RTS-to-CTS delay time
2-wire telephone line

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.3.2 Custom Modem Setup for Telephone System Requirements
Check the following telephone system symptom/limitation situations for a 
solution involving modem re-configuration.

Telephone System Limitation or Problem         Hayes Solution
-----------------------------------------------------------------------------
Noise on telephone line causes modem to        Increase S9 setting: Carrier
falsely detect carrier on line                 Recovery Time

Modem connection broken due to noise spikes    Increase S10 setting: Lost
on the telephone line                          Carrier-to-Hang-UP Delay

Security problems with incoming calls          Decrease S10 setting; if S10
connecting onto prior host sessions -          is set to 255, the modem will
indicating that host can't reset soon enough   not hang up when carrier is 
                                               lost.

System needs to be able to originate calls     Issue the R command within a
in answer mode for call-back security          dial string (Reverse mode)

Telephone system is too slow to be able to     Increase register S11 setting:
 respond to auto-dial DTMF (tone dialing)      Tone dialing speed
pulses

Business telephones (multi-line key systems)   Check setting of &J command;
exhibit false "busy" light indications         use the &J1 setting with RJ-12
                                               and RJ13 type phone jacks.

System must be able to call past               After accessing the PBX, issue
unattended operator positions                  the following dialing command 
                                               modifiers: !(*;#)



B.4 Using AT Commands to Test Modem Circuits
In addition to the powerup tests the modem performs, you can also use AT 
commands to check the modem's functions. This section describes the tests that 
can be performed, provides a procedure for each test, and the explains the 
results that can be expected.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.1 Available Tests
As part of the modem's operation, it can be placed in several loopback 
conditions. These conditions are primarily for the purpose of testing the 
digital and analog capabilities of the modem by simulating the activities 
performed by these functions during the communication process.

These loopback patterns can serve as diagnostics to help in determining 
whether the source of a communication problem is a local modem, a remote 
modem, or connections in between. Although these tests are oriented toward 
problems in a new installation, they are also useful if a previously working 
modem suddenly fails. Refer to the troubleshooting information provided in the 
documentation accompanying the modem(s) for suggestions on remedying a 
communications problem.

Failures in a point-to-point communication link, usually characterized by 
unacceptably high error rates or total inability to communicate, may be the 
fault of either the local or remote computer, the local or remote modem, or 
the telephone company circuit. The modem's diagnostic and test facilities 
enable you to determine the source of the problem:


local computer


modem with an internally generated test pattern


computer, local modem, remote modem, and telephone circuit


local modem, remote modem, and telephone circuit with an internally generated 
test pattern. This test requires a CCITT compatible modem.


the remote modem (permits a non-CCITT compatible, remote modem to engage in a 
digital loopback test with the local modem)

All digital loopback tests must be performed while the modem is configured for 
asynchronous operation. Before beginning, place the modem in the asynchronous 
mode with the &Q0 command.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.2.Performing a Test
Tests are performed by issuing AT commands to the modem. Some tests require a 
connection be established. Others, like the internal memory diagnostics and 
analogue loopback tests, check the local modem only and therefore do not 
require a link with a remote modem. The procedures below explain how to 
initiate and terminate tests.

............................................................................
B.4.2.1.Initiating a Test
All of the diagnostic tests must be initiated from the asynchronous command 
state (&Q0). To use the loopback tests:


return to the command state by issuing the escape sequence (+++), or if the 
&D1 DTR option is selected, by generating an on-to-off transition on DTR



These tests are performed from the asynchronous command state. The results of 
these tests may be will help check out the modem's function and the quality of 
the communications link.

............................................................................
B.4.2.2 Terminating a Test in Progress - &T0
A test may be terminated from the command state at any time by issuing the &T0 
command to the modem. If the local analogue loopback or remote digital 
loopback tests are being performed, it is necessary to issue the escape 
sequence to return to the command state before sending the &T0 command. 
Commands that follow &T0 in a command line are ignored.

Entering the H0 command will terminate a test, leaving the value of S18 at its 
current value; resetting with the Z command terminates the test, resetting the 
value of S18 to 0. A soft reset with the Z command re-configures the modem 
with the selected user profile. Both techniques break the connection.

............................................................................
B.4.2.3 Setting the Test Timer - S18=
The test timer determines the duration of a test. S18, when set to a non-zero 
value, establishes the duration of the modem's diagnostic tests. When a test 
has been active for a period equal to the value chosen for this register (from 
1 to 255 seconds), the modem will automatically stop the test and return to 
the command state.

For example, if the register is set to 10 (ATS18=10<CR>), a test, when 
initiated, will continue for 10 seconds. Setting S18 to zero (ATS18=0<CR>) 
disables the test timer (factory setting). Tests are then terminated with the 
&T0 command or by resetting the modem.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.3.Testing with Analog Loopback
Use the analog loopback tests if you suspect the modem is causing errors in 
data transmission. The local analog loopback test will verify both the local 
modem and the local data terminal equipment. If this test fails, the data 
terminal equipment rather than the modem may be at fault. The local analog 
loopback with self test will verify the integrity of the local modem only. If 
this test fails, the local modem is at fault. If the modem passes both of 
these tests, attempt the remote digital loopback with self test to verify the 
modem-to-modem communication path.

............................................................................
B.4.3.1.Local Analog Loopback L3 - &T1
Use the analog loopback test if you suspect the modem is causing errors in 
data transmission. The local analog loopback test will verify both the modem 
and the local computer. If the local analog loopback test fails, the local 
computer may be at fault. 

Note: This test may be performed with a V.21, V.22, V.22bis, or V.23 
connection.

Set the local computer to echo characters and the local modem to echo commands 
received from the local computer (the E1 option selected). Initiate the test 
with &T1. Type a few sentences; they will be looped back to the local 
computer.

If the modem echoes your keyboard input to the screen as you typed it, the 
modem is operating correctly. If not, the modem may be faulty. To end the 
test, enter the command state (+++) and issue the &T0 command.

............................................................................
B.4.3.2 Local Analog Loopback with Self Test - &T8
This test is used to verify the integrity of the local modem's transmit and 
receive circuits. During this test, an internally generated test pattern is 
transmitted from the modem, looped back into the receiver circuit, and 
compared with the original pattern for any errors. 

Note: This test may be performed with a V.22 or V.22bis connection (&Q0 and B0 
selected).

Set the computer to echo characters and the local modem to echo commands 
received from the computer (the E1 command selected). Initiate the test with 
&T8. When the test is terminated, with the &T0 command, the modem will return 
a three-digit test result (e.g., 000=no errors, 012=12 errors). If the error 
count reported is 000, the local modem passed the test. An error count of 255 
indicates that 255 or more errors were detected.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.4 Testing with Digital Loopback
Local digital loopback and remote digital loopback together test all of the 
components in the communication link, including the modems. Data sent from one 
modem is looped back to it by the other modem without going through the other 
modem's computer. Local digital loopback tests the communication link from the 
remote modem; remote digital loopback tests the communication link from the 
local modem.

When local and remote digital loopback indicate a modem problem rather than a 
communication link problem, both parties should run local analogue loopback to 
test the modems. If both modems test good but problems persist, disconnect and 
place another call. If the problem still exists, the phone line or another 
component in the communication link is faulty.

............................................................................
B.4.4.1 Remote Digital Loopback L2 - &T6
Remote digital loopback verifies the operation of both modems, the local 
computer, and the telephone circuit, by commanding the remote modem to loop 
data sent to the remote system back to the local modem. 

Note: This test may be performed with a V.22 or V.22bis connection and &Q0 
mode selected.

Before initiating remote digital loopback, establish a connection with a 
remote modem. Then, enter the command state and issue the &T6 command to begin 
the test.

Type a few sentences; they will be looped back to the local computer without 
appearing on the remote screen. If the modem echoes your keyboard input to the 
screen as you typed it, the modem is operating correctly. If the received data 
does not match what you typed, one of the modems or the local communication 
link is not functioning properly. To end the test, enter the command state and 
issue the &T0 command.

Note: The local modem requests a digital loopback with the remote modem 
through a special CCITT standard handshake sequence. The remote modem 
automatically acknowledges the request if it has been conditioned to do so 
with the &T4 command. (See the discussions on the &T4 and &T5 commands.) If 
the remote modem is not Hayes-compatible, it may not permit this test to be 
executed from the local modem (response will be ERROR). However, if the remote 
user can put the modem into local digital loopback or an equivalent state, the 
test can be performed from the local modem.

............................................................................
B.4.4.2 Remote Digital Loopback with Self Test - &T7
This test verifies operation of the local modem, the remote modem, and the 
telephone circuit. The local modem sends a self test pattern to the remote 
station. The remote modem, when configured to grant remote digital loopback 
(with &T4), loops its receive data stream back to the local system. The local 
modem examines the receive pattern and increments an internal error counter 
each time an error is detected.

Note: This test may be performed with a V.22 or V.22bis connection and &Q0 
mode selected.

Before beginning the test, establish a connection with a remote modem. Then, 
enter the command state and initiate the remote digital loopback by issuing 
&T7. When the test is terminated with the &T0 command, the modem will return a 
three-digit test result (e.g., 000=no errors; 012=12 errors). If the error 
count reported is 000, the local and remote modems and the telephone circuit 
passed the test. If errors were encountered, initiating a local analogue 
loopback test will further isolate the source of the problem. An error count 
of 255 indicates that 255 errors or more errors were detected.

............................................................................
B.4.4.3 Local Digital Loopback - &T3
Local digital loopback tests the communication link and the remote modem. 
During this test, the local modem loops incoming data directly back to the 
remote modem.

To begin local digital loopback, establish a connection with a remote modem, 
then enter the command state and issue the &T3 command.

The operator at the remote system should type in a few sentences. They will be 
looped back to the remote computer. When the operator at the remote system 
indicates that the test is complete, issue the &T0 command to end the test. If 
the operator at the remote system reports that the data came back without 
errors, the remote modem and the communication link are functioning properly.

............................................................................
B.4.4.4 Grant RDL Request from Remote System - &T4
This command configures the local modem to grant a request from the remote 
modem for a remote digital loopback test (factory setting).

............................................................................
B.4.4.5 Deny RDL Request from Remote System - &T5
This command prohibits the local modem from granting a request from the remote 
modem for a remote digital loopback test.  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.5 Testing the Tone Dialer - &T2
This command allows testing of the modem's multi-frequency tone dialer by 
sending out continuous tones of the keypad characters (0-9, A-D, *, #).

To generate any tone combination, type:

AT X1 &T2 DT (followed by one of the keypad characters: 0-9, A-D) <CR>

The modem will transmit a continuous tone pair until the <CR> key is pressed 
or &T0 is entered to terminate the test.



B.5 Testing the Cable
The cable (If used to connect the modem to the DTE, rather than through an 
internal slot) is an integral part of the communication link. Even if the DTE, 
serial card, and modem support all of the signals necessary for full 
communications, if the cable supports only transmit and receive signals, 
communication may be limited.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.5.1 Cable Quality
High-speed and lengthy distances between the modem and the DTE are two reasons 
to make sure of characteristics like shielding that quality of the cable is 
full pinning should be used according to the EIA232-D/CCITT V.24 standards 
descriptions at the end of this chapter.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.5.2 Checking Cable Signals - &T19
The &T19 command was created to provide a way for software to test the 
capabilities of the cable between the DTE and the modem, instead of assuming 
that the RTS/CTS lines (used for hardware local flow control) were supported 
in a cable. This command is implemented in Hayes Smartcom Products; when 
setting up the modem, one of its initial operations is issuing this command. 
The command is fully documented in Chapter One. The signals tested by this 
command are according to the EIA 232-D/CCITT V.24 standards described in the 
next section.



B.6 Testing Internal Memory
The various forms of the I command instruct the modem to query its memory for 
information about itself. Although the results of these test are most 
frequently used by Hayes Customer Service, some software also uses the 
responses when determining how to set up the modem prior to communication. 
These tests request information about the modem's firmware; therefore, it is 
unnecessary to connect with a remote system before issuing the I command. The 
various options for this command are explained fully in Chapter One.



==============================================================================
Appendix C:
Modem-to-DTE Interface


This appendix discusses the requirements and capabilities of the modem's 
interfaces to the DTE line. External modems interface to the DTE according to 
the EIA 232-D standard. The particulars of this interface for Smartmodem 300, 
Smartmodem 1200, Smartmodem 2400, Smartmodem 9600, V-series Smartmodem 2400, 
and V-series Smartmodem 9600 are described. Hayes internal modems use the EIA 
232-D signals, although the specific use of these circuits is determined by 
the bus interface of the computer.


C.1 EIA 232-D/CCITT V.24 Interfaces
EIA 232-D is the EIA (Electronic Industries Association) definition of the 
electrical interface used for connections of data terminal equipment (DTE) to 
data circuit terminating equipment (DCE). This standard has typically been 
referred to as RS 232-C; however, when it became an accepted standard (EIA) 
rather than a recommended standard (RS), the Association revised the version 
"D."

Although not exactly the same, EIA 232-D is compatible with CCITT V.24, V.28, 
and ISO IS2110 standards. This standard prescribes the interface to the local 
DTE and normally uses a DB-25 connector with 13 pins in one row and 12 in the 
other. EIA 232-D supports speeds up to 20 Kbps at a distance of 50 feet. EIA 
232-D falls under layer one (physical layer) of the OSI (Open Systems 
Interconnection) model.

Hayes modems support the electrical portion of the EIA 232-D standard 
completely. However, signal definition varies from modem to modem.



C.2 Signals Used in the EIA 232-D Interface

The following signal types are used in the EIA 232-D interface. All of these 
types are not required for all communications. Their corresponding CCITT V.24 
equivalents are also provided.

Ground signals are present for protection and signal reference. These signals 
are present on pins 1 and 7 of the interface. (7 always needed)

Data signals are used to transmit and receive data across the interface. The 
pins used are 2 for transmit and 3 for receive. (always needed)

Control signals are used to ensure that both the DTE and DCE are ready before 
any information is transmitted. These signals are also used for flow control 
during the transfer of data. Pins 4, 5, 6, 8, 20, and 22 are control signals. 
(need depends on the application)

Timing signals control the rate at which data is transmitted and received 
across the interface. These signals are only used for synchronous transmission 
and are located on pins 15, 17, and 24.

The EIA 232-D signals and their CCITT equivalents are outlined below:

Inter-    CCITT   Description                Pin   To     To 
change    equiva-                                  DTE    DCE
circuit   lent
--------------------------------------------------------------------
AA        101     Protective Ground            1
AB        102     Signal Ground                7

BA        103     Transmitted Data             2            *
BB        104     Received Data                3     *

CA        105     Request to Send (RTS)        4            *
CB        106     Clear to Send (CTS)          5     *

CC        107     Data Set Ready (DSR)         6     *
CD        108.2   Data Terminal Ready (DTR)   20            *
CE        125     Ring Indicator (RI)         22     *

CF        109     RLSD (DCD)                   8     *
CG        110     Signal Quality Detector     21     *

CH        111     Data Signal Rate Detect DTE 23            *
CI        112     Data Signal Rate Detect DCE 12     *

DA        113     Transmitter Signal Element  24            *
DB        114     Transmitter Signal Element  15     *

DD        115     Receiver Signal Timing      17     *
SBA       118     Secondary Transmit          14            *

SBB       119     Secondary Receive           16     *
SCA       120     Secondary RTS               19            *

SCB       121     Secondary CTS               13     *
SCF       122     Secondary DCD               12     *



C.3 EIA 232-D Signal Definitions
This section provides definitions of the signals used for modem operation. The 
circuit is first defined according to EIA 232-D, then its use explained 
according to the way it is used by Hayes modems.

Protective Ground (pin 1) is connected to the equipment frame. The ground pin 
is electronically bonded to the the modem case for external Smartmodem and V-
series System Products, and to the computer's housing through the particular 
bus for internal modems. Hayes Personal Modem Products do not use this signal. 

Transmit Data (pin 2) is data that is transmitted from the DTE to the DCE 
device. Data should not be placed on this pin unless the RTS, CTS, DSR, and 
DTR signals are on. This is the circuit that carries the data from the 
attached computer or terminal to the modem for transmission across the 
telephone lines.

Receive Data (pin 3) is data that is transmitted from the DCE to DTE. This 
circuit carries the data from the modem to the attached computer or terminal.

Request To Send (pin 4) requests the channel for data transmission and is 
usually ignored during asynchronous operation. It is also used to control the 
direction of transmission on a half-duplex link. This signal indicates whether 
the attached DTE is ready to receive data. When the modem is operating 
asynchronously, this signal is always on, indicating that the modem can send 
at any time. The circuit functions the same way in error-control mode, unless 
the RTS/CTS local flow control method has been selected. In this case, the 
modem uses this signal to determine when the DTE is ready to receive data. In 
synchronous, on-line operation, the modem can be configured to ignore RTS or 
respond to RTS by turning on CTS after the delay specified by S26. The modem's 
use of this signal is controlled by the &R command. When in command state, the 
modem always ignores RTS.

Clear To Send (pin 5) An ON condition of this signal indicates that the modem 
is ready to transmit data. This signal comes high after both DSR and DCD go 
high. This signal indicates whether the modem is ready to accept data, from 
the attached DTE for transmission. When the modem is operating asynchronously, 
this signal is always on, indicating that the modem can receive data at any 
time. In error-control mode, the signal is maintained on unless RTS/CTS local 
flow control has been selected. In this case, the modem uses this signal to 
indicate to the DTE that the modem is ready to receive data. When operating 
synchronously, but in the asynchronous command state, the modem also maintains 
the CTS signal on. The modem turns CTS off immediately upon going off-hook, 
and maintains CTS off until both DSR and DCD are on and the modem is fully 
prepared to transmit and receive synchronous data. The modem can also be 
configured to turn CTS on in response to an off-to-on transition of RTS (see 
discussion of &R command).

Data Set Ready (pin 6) An ON condition indicates that the modem is off hook 
and is not in test mode. The signal normally goes high as soon as a remote 
carrier is detected. This signal indicates whether the modem is connected to a 
communication channel and is ready to exchange control characters to initiate 
data transmission. In asynchronous or error-control mode, the modem can be 
configured to maintain this signal on at all times or have it reflect the 
actual state of the DSR circuit.

Signal Ground (pin 7) establishes a common ground reference potential for all 
signal circuits.

Data Carrier Detect - RLSD (pin 8) is turned on when the modem receives a 
signal from the remote modem that meets the criteria for demodulation. This 
signal indicates whether the receiver section of the modem is or is not 
accepting transmitted data. In asynchronous or error-control mode, the modem 
can be configured to maintain this circuit on at all times, or to track the 
presence of a data carrier from the remote modem. In synchronous mode, this 
circuit always tracks the presence of data carrier. See the discussion of the 
&C command.

Transmitter Clock (pin 15) provides the DTE with bit timing clock in 
synchronous mode of operation. This signal synchronizes the local modem 
transmitter with the receiver of the remote modem receiver. The clocking for 
this signal can be sourced from the local modem, the receive carrier, or the 
attached computer (from pin 24). Selection is made with the &X command. 
Regardless of the source of this clock, this signal is applied by the modem to 
pin 15 of the RS-232 connector and is used by the DTE to time the transmission 
of serial data on the TD circuit (pin 2). This signal pertains to synchronous 
communications only.

Receive Clock (pin 17) provides the DTE with receive bit timing clock in 
synchronous mode of operation. This signal provides the receiver section of 
the modem with timing information. The modem always derives this signal from 
the receive carrier, and applies it to pin 17. This signal is used by the data 
terminal to time the incoming bit stream from the local modem (RD - pin 3). 
This signal pertains to synchronous communications only.

Data Terminal Ready (pin 20) indicates to the DCE that the DTE is ready for 
transmission. It may also be used for call termination. This signal prepares 
and maintains the connection to a remote system. The modem can be configured 
for a variety of responses to the DTR signal, as required for the 
communication mode (asynchronous versus synchronous) or communication 
environment (attached DTE or software). See the &D command discussion.

Ring Indicator (pin 22) gives an indication of a ring being received on the 
telephone line. This circuit carriers signal information to indicate the modem 
is receiving call signals (ring/tones). The modem turns on this signal 
whenever an incoming ring is detected. When the modem is configured for 
AutoSync, this pin carries a signal to indicate the end of a synchronous 
frame, and does not monitor incoming rings.

Transmitter Clock (pin 24) provides the modem with transmit signal element 
timing information (optional). If the DTE sources the transmit signal element 
timing on this pin, the modem can be configured to use this clock signal 
rather than its own internal clock. This signal pertains to synchronous 
communications only.

Alternate Rate Select (pins 12 and 23) The modem turns on this signal on 
either of these pins to indicate the selection of the current line speed. 


C.4 Modem Interface Connector
External modems typically interface to the attached computer or other DTE 
through a serial port connector. The connector used on external Smartmodem 
Products and V-series System Products as the modem-to-DTE interface, is a  
male DB-25 connector. Personal Modem Products use an eight-pin DIN connector. 
Internal modems interface according to the bus structure of the computer in 
which the modem is installed. For specific information on a particular bus 
structure, see the owner's manual or reference guides for that computer.

The table below indicates the way Hayes modems with this type of connector use 
the pins to carry EIA 232-D and CCITT V.24 signals. The DTE may use certain 
signals differently, or may not use them at all.


Pin  Signal Name
-------------------------------------------------------------------
1    Protective Ground - PG
2    Send Data - SD
3    Receive Data - RD
4    Request to Send - RTS
5    Clear to Send - CTS
6    Data Set Readey - DSR
7    Signal Ground - SG
8    Carrier Detect - CD
9    Reserved for Test
10   Reserved for Test
11   Unassigned
12   Secondary Carrier Detect
13   Secondary Clear to Send
14   Secondary Transmitted Data
15   Transmit Timing - TT
16   Secondary Received Data 
17   Receiver Timing - RT
18   Unassigned
19   Secondary Request to Send
20   Data Termfifnal Ready - DTR
21   Signal Quality Detect 
22   Ring Indicate - RI
23   Data Signal Rate Select
24   Transmit Timing TT
25   Unassigned

The physical connector as well as the pin numbers of the end of the cable on 
the DTE side will vary according to the DTE's serial port.



=============================================================
Appendix D:
Modem Application Development


This appendix offers suggestions for developing applications software using 
the AT command set. The techniques described apply to Hayes modems in general 
except where specifically indicated. Although provided here, this information 
is intended for experienced programmers who want assistance in modem 
application development.



D.1 Modem Identification
The initial concern for most communications software is modem identification. 
Before the software determines the type of modem (e.g., is it a Hayes modem, a 
high-speed modem, what features does it support - error-control or 
compression?). If the AT command controller portion of the software will be 
designed to work with a known set of modems, the controller can be much 
simpler as the variables it must address are fewer as the predictable behavior 
of the modems within the given feature set that will be addressed by the 
software.

Because the type of modem that will be present, certain assumptions can be 
made regarding modem characteristics, such as maximum transmission rate, 
support of V-series AT commands or specific commands such as L or X. If a more 
general application is being designed for an environment about which 
assumptions cannot be made regarding type or brand of modem that might be 
used, the software's first task should be to identify the modem.

The I0 and I4 command options make this process simple. In the initial 
versions of Smartmodem 1200, I0 returned the three digit response: 120. Since 
then, responses have been extended for several groups identifying modem 
supporting 2400 bps, 9600 bps, and other products. The I0 response simply 
indicates the speed category of the modem.

The result of the I0 command is a three digit number which identifies the 
category of modem product. Some unique I0 values can be used to identify a 
unique product which has specific behaviors. 960, for example, identifies a V-
series System Product capable of 9600 bps, which has additional commands and 
behaviors.

The I4 command option was added when the V-series System Products were 
introduced. This option provides a reliable means of communicating specific 
features and modulation protocols to software. The responses to the I4 command 
are strings delimited by <CR> and beginning with a lowercase letter and 
typically followed by a hex-character bit-map. The I0 and I4 responses 
currently defined are detailed in the description of the I4 command in Chapter 
One.  The tables show the decoding of the hex-map returned in the "a" 
(Smartmodem features), and "b" (V-series features) bit-mapped strings. If I4 
is used to identify features of the modem, consider that new result strings 
are periodically defined that may be returned in addition to those expected. 
Fields once designated as "reserved" that held a zero may now have values 
assigned. The strings themselves may also be different of lengths than 
previously implemented.

In spite of the modifications to this command necessary to maintain currency 
with new modems, the I4 command is the best way for software to determine the 
modem type and capability, if the guidelines below are considered:


(including the Smartmodem 300) respond to AT commands at 1200 bps. Most other 
brands also respond at 1200 bps. You can switch to a higher transmission rate 
once the modem has been identified.


will begin with a lower-case letter followed by up to 39 additional 
characters.

-------------------------------------------------------------------

obeys the V and Q command settings.


expected. These results may be returned by products shipped before the I4 
command was introduced, or by non-Hayes products.


expected, empty positions should be presumed zeros. If longer than expected, 
extra characters should be ignored.


or I4 commands. One brand of modem actually responds with its configuration 
when the I4 command is sent.

An example I4 command and response is shown below:

AT E0 V1 Q0 S0=0 I4 <CR> 

response:

<CR><LF>a087840C004424<CR><LF> 
<CR><LF>bF60410000<CR><LF> 
<CR><LF>cUS<CR><LF>  
<CR><LF>m0000000001001FFFF<CR><LF> 
<CR><LF>OK<CR><LF> 

Note: each I4 result is surrounded by <CR><LF>, not all responses are hex-
strings, and some responses may not be expected at all.



D.2 Result Code Recognition
Hayes-compatible modems support verbose and numeric forms of result codes. 
Unless echo may be a problem and will be installing the controller in a 
limited-growth environment, verbose results rather than numeric results are 
preferable. Numeric result codes were originally intended to make it easier 
for software to control the modem, but there are two primary reasons they 
should not be used:

Software can be confused by a command echo. For example, if the following 
command were sent with echo on (E1) and numeric results (V0):

AT ... S9=20 <CR>

The resulting data, echoed by the modem, would be followed by the numeric 
result code zero, meaning OK:

AT ... S9=20<CR>0 <CR>

Software may become confused by seeing a 0<CR> result which is actually part 
of the command echo, then another 0<CR> which is the numeric result. A program 
can become out of synchronization with the command processor in the modem.

Turning off echo mode (E0) in the initial setup string would solve this 
problem; however, do not end that command with any digits (simply E).

Another shortcoming of numeric results is that the software must anticipate 
all possible responses. This requires updating of controller software whenever 
new result codes are added. For example, suppose a CONNECT 115200 result were 
added with a numeric value of 31. If verbose results were used instead, and 
the controller directed to interpret the number after the CONNECT result as 
simply the connection speed in bits per second, no changes to the driver are 
necessitated by the new result code. If, however, numeric result codes were 
used, the result code 31 must be added to the table, and the controller 
modified to interpret it appropriately.

As characters are received, they should be processed through a state machine 
providing the functionality of the one outlined below. This state machine 
recognizes strings surrounded by <CR><LF> characters and store the string in a 
character array. <CR><LF> are defined by the S3 and S4 registers.

Sample State Machine

Initialize with: state = 1 ;

ch = <next character from the input>
switch( state )
{
case 1:     /*-- Scanning for leading CR --*/
               if( ch == CR ) state = 2 ;
               i = 0 ;
               break ;
case 2:     /*-- Scanning for leading LF --*/
               if( ch == LF ) state = 3 ;
               else if( ch == CR ) state = 2 ;
               else state = 1 ;
               break ;
case 3:     /*-- Buffer result, watch for trailing CR --*/
               if( ch == CR ) state = 4 ;
               else buf[ i++ ] = ch ;
               if( i > LIMIT ) state = 1 ;
               break ;
case 4:     /*-- Scanning for trailing LF --*/
               if( ch == LF ) state = 5 ;
               else if( ch == CR ) state = 2 ;
               else state = 1 ;
               break ;
}
if( state == 5 )
{
     buf[ i ] = 0 ; /* Null terminate buffer */
     <process result in 'buf'>
     state = 1 ;
}

This state machine can be imbedded within a loop that reads all received data 
one character at a time, checks for a timeout, and also checks for user abort. 
Once a result is recognized, that loop can be exited or continued if 
additional results are expected.

Once a result code string is returned, it can be compared against the known 
result code strings. Some strings may incorporate wild-card suffixes. For 
example CONNECT followed by any numeric value indicates a successful 
connection at the indicated transmission rate. Even if a result such as 
CONNECT 38400 is not anticipated, if the controller has been coded for wild-
card recognition, the controller will be capable of interpreting such 
responses correctly. This practice also facilitates interpretation of 
connection failed messages that are preceded by NO followed by any other 
character string such as DIALTONE, CARRIER, or ANSWER.



D.3 Modem Preparation
Once the modem has been identified, the controller can continue to program any 
registers or user-defined values into the modem necessary prior to initiating 
the connection process. Typically, the setup operation is separated from the 
connection processing because it is performed independently of whether the 
call establishment will be in the originating or answering mode.

Setup commands can be issued at the highest transmission rate the modem 
supports as determined from the identification process or it may be fixed at a 
certain value if the modem is not identified.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.3.1 Reset
Before issuing any other commands to the modem, it is advisable to issue a Z 
or &F command to the modem before the identification or setup process. No 
specific response should be anticipated. The modem may be setup to return 
numeric, or no result codes. If a reset will be used, the following points 
should be considered:


continue. (Some modems do a lengthy reset process before responding with a 
result; others may be in Q1 or V0 mode).


modems will respond with an OK then do lengthy reset processing, in which case 
they are unable to accept additional commands.

After the modem is reset, the first setup string (e.g., verbose rather than 
numeric result codes) should be issued, then the identification command.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.3.2 Setup
Software should generally provide some modem setup. However, the software can 
be written to rely on modem configuration via a stored profile recalled on 
reset, or  by DIP switches set depending on the product. In this case, any 
unique settings must have been setup prior to running the software, and all 
the program does is send the Z command to recall the the desired profile. Even 
more basically, software can assume the is in the power-up state. However, 
unless the software will be used within a very predictable environment, these 
assumptions may result in failures with the controller software.

Some commands will always be overridden by the controller in order to ensure 
its proper functioning. Other commands options should either default to the 
factory setting, or simply act as the "transfer agent" for the commands 
specified by the user. Menus and dialogs can be provided to prompt the user 
for specific activities; the program can then interpret these requests and 
configure the modem accordingly, as Hayes Smartcom Products do, or provide the 
user opportunity to enter AT command strings.

Commands frequently set by a modem controller:

E0 - Turn off echo mode to avoid having command echoes pass through the result 
code scanner

Q1 - Enable result codes to ensure that commands are being processed, and to 
synchronize with the modem command processor (except for synchronous 
communications where result codes may cause the DTE confusion)

V0 or V1 - Use either verbose (recommended) or numeric result codes

S0=0 Disable auto-answer during the setup process to avoid inadvertent 
disruption by an incoming call

H0 - Ensure modem is on hook before continuing to the answer or originate step

S12=10 Set the escape guard time to 200ms to hasten the escape for hang-up 
process. Also reduces the probability of inadvertent user escapes

S2=* Change the escape character for two reasons: To avoid inadvertent user 
escapes, and to provide different escape characters for answer and originate 
sides. This prevents inadvertent escaping when data is echoed

S4=* Modify the linefeed character to make the <CR><LF>NO CARRIER<CR><LF> 
result code more unique if you scan for it to detect carrier loss

A typical setup sequence using these recommendations is shown below:

AT E Q V S0=0 H S12=10 S2=28 S4=31 <CR>

Note that where the zero suffix is used, it is omitted. Spaces are shown above 
for readability, but the use of spaces between commands is not recommended. 

Once this setup command has been sent, and the OK response returned, the 
controller can continue to the originate or answer processing.

If user-programmed settings are included in additional setup strings, or the 
user is permitted to enter AT setup strings, the software should anticipate 
ERROR result codes. If an ERROR is returned in response to such a command, the 
result does not have to be reported to the user, but the controller should not 
be prevented from continuing in either case. Many times a connection can be 
made even though some setting is in error or is inappropriate for the class of 
modem being addressed.



D.4 Connect Processing
Once the setup operation has been completed , the commands to establish the 
connection can be issued. The instruction can be either to originate (using 
the D command), or to answer (using the A or S0 commands).

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.4.1 Originating a Call
If the D command is issued with the desired phone number, several possible 
result codes can be returned. The list below outlines some results to expect:

Result Code         Meaning
-----------------------------------------------------------------------------
NO CARRIER          Connection failed
NO ANSWER           No response to '@' dial modifier
NO DIALTONE         No dial tone in X4 mode
NO ____             Connection failed for some other reason
BUSY                Busy signal detected
CONNECT ____        Connection successful, change DTE speed to the indicated 
baud rate.
CARRIER ____        * DCE carrier speed (information only)
PROTOCOL: ____      * V-Series protocol being used

Ignore other responses, but continue to wait for CONNECT ___ or NO ___ 
responses.

The CARRIER and PROTOCOL results are intermediate results and precede either a 
CONNECT ____ or NO ____ result. These results are only returned by V-series 
modems when configured to use an error-correcting protocol.

If you recognize any numeric value for the baud rate after the CONNECT result, 
you will have a much more robust controller able to handle many situations.

You can use the PROTOCOL result to determine if the flow control requested by 
the &K command is in effect for V-Series System Products.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.4.2 Answering a Call
The simplest technique for answering an incoming call is to set S0 and wait 
for a CONNECT ___ result. You may get several RING results, and possibly a NO 
CARRIER result if the caller hangs up before connecting. These results should 
not cause your controller to abort. Continue to wait for a CONNECT result 
code.

If you set S0, you may want to set it back to zero after your controller 
finishes the call to prevent inadvertent answering when your software is not 
running.By setting S0 to the number of rings you desire before the modem 
answers, you utilize the ring detection technology already built-in to the 
modem.

You should not use the A command to answer after counting RING results because 
the command may collide with another RING result from the modem and be missed. 
The RING results may be generated in pairs depending on the ringing cadence of 
the phone system.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.4.3 Using the CD Line
Monitoring the Carrier Detect (CD) line of the EIA 232-D interface is another 
technique for carrier detection in answer or originate mode. This assumes that 
&C1 or the corresponding DIP-switch has been set and the cable is wired 
properly. Both are risky assumptions. You will have a more robust controller 
if you use result code scanning rather than the EIA 232-D lines.

If you use CD, you do not know when the modem has given up waiting for the 
carrier, or why. If the line is busy, you may want to re-try the dial 
operation. If there is no dial tone, the user needs to know this.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.4.4 Aborting a Connect Request
Once the D or S0 command has been issued, the modem goes off hook (or may be 
off hook for S0) and it must be put back on hook (hang?up) before the abort is 
completed. To abort an in-progress connect command, send any character to the 
modem. This will typically result in a NO CARRIER response. The result code 
scanner should be called after the abort character is sent to prevent 
additional commands from being sent before the controller and the modem are 
again in sync.

Smartcom products send AT<CR> to abort an in-progress connect command. This 
elicits a result code regardless of whether the modem were off-hook or not. If 
the modem was off-hook attempting to connect, this will abort the connect 
operation and return NO CARRIER. If the modem was on-hook in command mode, 
this simply returns <CR><LF>OK<CR><LF>.



D.5 Carrier Loss Detection
You want your application to be able to detect when the carrier has been lost 
so you can determine when the connection is complete. You might be unable to 
put this part of the code in your controller software, since the controller is 
typically running only during the connect or hang-up process. Once the 
application has detected the carrier loss event, it can call the modem 
controller to clean-up.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.5.1 Using the CD line
If you can be confident of the environment and cabling, and have access to the 
EIA 232-D signal status, then monitoring the CD line is the easiest carrier 
loss detection method to implement. This requires &C1 to be programmed at 
setup time, or be stored in the modem as the value recalled on reset or 
powerup. 

However, this is the most restrictive and risky choice. It requires a properly 
wired cable and support of &C1 by the modem's command set or proper DIP-switch 
settings.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.5.2 Scanning the Incoming Data Stream
In cases where you  cannot depend on 100% Hayes compatibility or want to be 
independent from the cable wiring, then scanning for the NO CARRIER result is 
more reliable. It is also more complex to implement.  

Typically, at the low-level of the program all received data is retrieved 
through one subroutine. This subroutine can be augmented or layered to provide 
the service needed. As data passes through, the last fourteen characters are 
buffered, typically in a circular buffer. If more data passes in each call, 
only the last fourteen need to be copied. At a time when the processor is free 
such as after 100 ms of idle time or the receive routine has returned no data 
for 30 to 100 calls, then the buffer is compared against the <CR><LF>NO 
CARRIER<CR><LF> result code. If a match is found, the carrier lost event is 
triggered.

By only checking when there is idle time, or after no data has been received 
for a while, you reduce the CPU overhead and ensure that the modem is not 
falsely triggered when the string is imbedded in an actual data stream.  

You can also modify the linefeed character by using S4 to a different value 
such as S4=31 to make the result code sequence more unique. This action, 
however, affects other result codes generated by the modem.



D.6 Escape and Hang Up
When your controller has been instructed to terminate the connection, you must 
put the modem back in command state and issue the hang-up (H) command. In 
addition to hanging-up, you will also want to restore settings you changed to 
their factory-set values, or issue an ATZ<CR> to undo the effects of your 
changes. In any case, clean up is necessary even if the connection were 
terminated due to loss of carrier.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.6.1 Escaping the Modem to Command State
To escape the modem, the controller must first delay the escape guard time 
(specified by S12), then issue the escape character three times (specified by 
S2). then wait for an OK result. Waiting for the result also enforces the 
required guard time after the escape sequence. Once the OK result is received, 
the modem has entered command state. The controller can then hang-up and 
restore the modem.

The controller software must be sure to wait the required guard time before 
sending the escape characters. Your controller may have been called just after 
data was transmitted and, without the delay, your characters will just be sent 
without triggering the escape recognition process. It is important that the 
serial transmitter be permitted to be idle for the escape guard time, plus a 
few extra milliseconds to allow for error, before sending characters.

For example, if  S12=10 a delay of at least 200 milliseconds is required 
before sending the escape characters. After sending the escape characters, the 
OK result will be received after another 200 millisecond wait. This completes 
the escape process in slightly over 400 milliseconds. If S12=50 (factory 
setting) is used, one full second must pass before the characters can be sent, 
then another second delay must transpire prior to the OK result. This 
completes the process in slightly over two seconds. For this reason, it is 
recommended that S12=10 be issued to speed up this process.

A delay slightly longer than that stored in S12 should be used to allow for 
errors in the system clock as well as in the modem clock. 100ms is an adequate 
safety margin.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.6.2 Using DTR to Escape or Hang Up
The DTR EIA-232-D signal can be used to escape the modem to command state, or 
to reset the modem depending on the &D command set or DIP-switch settings last 
set. This also requires the cable to be properly wired. Unless the software 
will operate in a highly-controlled environment, this technique is discouraged 
over the escape process because of the requirements to make it function 
properly. Leaving a call connected simply because the cable was not properly 
wired can be potentially expensive. The escape sequence is reliably in all 
environments if it is properly utilized.



D.7 Modem Re-configuration
When the call has been completed, a "clean-up" command should be issued to 
return the modem a more known configuration. For example, if verbose result 
codes were selected when the modem was reset, and the controller selected 
numeric result codes, on completing the session, the controller should reset 
the modem to re-select verbose result codes. In the same way, if the linefeed 
character were changed to suit the software or environment, the character 
should be set to its former value. Any other command options that were 
modified, should be restored to their factory-set values.

The minimum the controller should do when through with the modem is issuing a 
Z command option to ensure the modem is restored to its powerup state.



D.8 Timing Considerations
A modem controller inherently has a sense of time. Usually all that is needed 
to utilize the timing part of the controller is access to a time reference. 
For example, the number of milliseconds since powerup or program launch, or a 
"system tick" value can be used. 

Under DOS, the INT 1C timer tick produces an interrupt every 55 milliseconds. 
An ISR can be installed on this interrupt to add 55 to a long integer every 
time it is called. This will provide a millisecond counter.

On the Macintosh, the "TickCount" function will return the number of vertical-
retrace ticks since computer power up. Each tick represents one sixtieth of a 
second.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.8.1 Programming for Time
The time value is used to determine relative time. For example, if a loop 
should be executed for only 2 seconds it could be coded as:

timeout = TickCount() + 120 ; /* 60 tics per second = 2 seconds */
do
{
        got_one = Check_Result( ) ;
}
while( ( ! got_one ) && ( SystemTick() < timeout ) ) ;

This code fragment continues to call the Check_Result function until it 
returns a true value, or until two seconds have elapsed.

This technique is independent of processor speed. A faster processor may make 
thousands of trips through the loop, where a slower one would only make a few 
hundred. Any anticipated result code would arrive within that two-second real-
time window.

Care should be given to considering when to start the timing loop. If an AT 
command string is sent, then a loop executed, the time interval may also 
include the time required to send the AT command (if data is buffered and sent 
by an interrupt service routine).

At 300 bps, where each character takes 33ms just to transmit (10/300), a 40 
character AT command would take over a second to transmit. This means a two 
second loop spends more than half of its time waiting for the AT command 
process to complete, leaving only a fraction of a second for the modem to 
respond with the result (again at 33ms per character).

One way to avoid this is to wait until all data has been transmitted by an ISR 
before entering the result code scan loop. Alternatively, more time can be 
provided for loops to process results. Another option is to measure idle time 
rather then elapsed time.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.8.2 When to Consider Time
The use of timing varies from command to command and operation to operation. 
Some commands take longer to execute. The guidelines below can be used to 
determine the best amount of time to wait.


600 ms, whether a response were received or not.




modems may take longer to hang-up if data buffered within the modem is still 
waiting to be transmitted and acknowledged. This time is controlled by S38.


carrier detect time, tone versus pulse dialing, commas in the phone number, 
all can take additional time.  

If the software times out, the modem may, in fact, not be connected to the 
computer, disconnected, or turned off. If this is the case, enforce a 
reasonable timeout to the first setup or identification command. That will 
determine whether a modem is attached and functioning.

A timeout may also occur when the software receives a result code it does not 
recognize. The software may continue to wait until it receives a code it does 
recognize. If this is the case, the controller should proceed as if an ERROR 
response were received. The only instance in which it is not prudent to 
continue is when a connect (D, A, or S0) command was issued.

Before implementing a timeout, the advantages, if any, to this level of 
program interruption should be considered. For example, if the program times 
out from a dial command in one minute when it may take two minutes to complete 
the call, the timeout defeats the purpose of the command. The modem always 
responds with a result code, whether BUSY, NO CARRIER, or CONNECT, after some 
length of time.

Idle time is the time since data was received. Elapsed time is the time since 
the software started looking for the result. Idle time can be measured by 
resetting the timeout clock each time the software receives a character. 
Rather than exiting the loop after two seconds of elapsed time, the logic 
changes to exit after no further data has been received for two seconds.

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.8.3 Recovering when "Out Of Sync"
Another disadvantage of timing out is that an early time out can put the 
software out of sync with the modem command processor. The controller may be 
interpreting results sent in response to previous commands as the response to 
later commands. To avoid this condition, any pending receive data should be 
flushed before the next command is issued.


D.9 General Tips and Techniques
The following are tips and techniques that may help in the exchange of 
information between the software controller and the modem command processor.

Commands in the command line should be ordered starting with the safest and 
ending with the most risky. Risk is defined as the potential to generate an 
ERROR, causing the remainder of the command line to be ignored.

Any command that may return ERROR should be anticipated. This or other 
unexpected results can be ignored unless the command is critical 
(configuration or call placement).

Send I0 or I4 at 1200 bps, which is supported by the majority of modem 
products. A modem reset (&F or Z) should be performed at 1200 bps before 
sending the identification commands.

Setup processing can be speeded by sending all but the last D or S0 command at 
the highest DTE rate supported by the modem. The last command must be sent at 
the speed at which the connection should be made (except V-Series System 
Products which specify this with S37).

Any dependency on proper cabling can be eliminated by avoiding techniques that 
depend on EIA 232-D signals:


condition of the CD line


rather than with RTS/CTS signals


terminating a connection by dropping DTR


been processed correctly. The command should be-issued


Sample Controller/Modem Exchange

Clock   Controller                 Speed         Modem
--------------------------------------------------------------------------
                                   (1200 bps)
00000   ATZ<CR>		
00034                                            ATZ<CR>
00068                                            (one second to do reset)
01068                                            0<CR> (V0 stored as 
                                                 default)
01084   (delay additional 600ms)
01684   ATEQV1S0=0S12=10S4=3HI<CR>
01884                                            ATEQV1S0=0S12=10S4=3HI<CR>
                                                 (echo)
02084                                           <CR><LF>960<CR><LF>
02142                                           <CR><LF>OK<CR><LF>
                                  (19200 bps)
02192   ATM0X4L1S12=10S2=1&Q5W1S36
        =7S37=9&K5<CR>
02206                                           <CR><LF>OK<CR><LF>
02209   ATDT9W14045551212<CR>
38000                                           <CR><LF>CARRIER 2400<CR><LF>
45000                                           <CR><LF>PROTOCOL: NONE<CR><LF>
45010                                           <CR><LF>CONNECT 2400<CR><LF>
                                   (2400 bps)
                     (Connection Established)
                                   (2400 bps)
00000   (delay 300ms, need 200,
        add 100 for safety)
00300   (escape char is ^A, S2=1) 
00313                                           (waits 200ms)
00513                                           <CR><LF>OK<CR><LF>
00538   ATHE1S2=43S12=50W0&Q0<CR> 
00630                                           <CR><LF>OK<CR><LF> 
------------------------------------------------------------------------

END