About
Community
Bad Ideas
Drugs
Ego
Erotica
Fringe
Society
Technology
Hack
Phreak
Broadcast Technology
Computer Technology
Cryptography
Science & Technology
Space, Astronomy, NASA
Telecommunications
The Internet: Technology of Freedom
Viruses
register | bbs | search | rss | faq | about
meet up | add to del.icio.us | digg it

The Hayes Modem Technical Reference Manual

Hayes Modem Technical Reference



Technical Reference
for
Hayes(TM) Modem Users

5 June 1991
Version 1.0b










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


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, 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
S97 - V.32 Automdode V.22/V.22bis Probe Timing
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...

* users of communications software packages which require the user to enter
modem configuration strings.

* users who will be installing and operating Hayes modems in a non-PC
environment.

* users who control their modems directly with terminal emulation software.

* technical personnel responsible for custom installations and applications.

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 Bit 3: V.42 Alternate Protocol Supported
Bit 2: V.42 LAPM Protocol Supported
Bit 1: X.25 Protocol Supported
Bit 0: LAPB (Original V-series Point-to-Point error-control) Protocol
Supported

D2 Bit 3: Reserved (should be set to zero)
Bit 2: MNP Class 5 Supported
Bit 1: V.42bis Supported
Bit 0: 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:

* Transmission of all PAD result codes, including the prompt PAD result code
* Echo control via the E command
* Fixed editing characters (delete character is defined by S5, delete line
character is Control-X, line display character is Control-R)
* Echo mask masks only the editing characters

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

* Disables PAD recall using a character (PAD parameter 1) or a break signal
* Disables all PAD flow control (PAD parameters 5, 12)
* Disables carriage return (PAD parameter 9) and line feed (PAD parameter 14)
padding
* Disables line folding (PAD parameter 10)
* Existing result codes use result codes for terminal (PAD parameter 19)
* Disables page wait (PAD parameter 22)
* Disables execution of ANS and EXEC strings
* Disables EXEC command

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).

If switches 3 and 4 are both UP, the operating mode after a soft reset is
determined by S94. This register is read from nonvolatile memory at power-on;
the &W command saves the current setting of this register in nonvolatile
memory. Here are the values for S94:

(Synch) (Synch)
Value Sync/ AT/ Addressed/ HDLC/ ASCII/
Async V.25bis Direct BSC EBCDIC
---------------------------------------------------------
0 Async AT -- -- --
1 Async V.25bis Addressed -- --
2 Sync V.25bis Addres HDLC ASCII
3 Sync V.25bis Addressed BSC ASCII
4 Async AT -- -- --
5 Async V.25bis Direct -- --
6 Sync V.25bis Direct HDLC ASCII
7 Sync V.25bis Direct BSC ASCII
8 Async AT -- -- --
9 Async V.25bis Addressed -- --
10 Sync V.25bis Addressed HDLC EBCDIC
11 Sync V.25bis Addressed BSC EBCDIC
12 Async AT -- -- --
13 Async V.25bis Direct -- --
14 Sync V.25bis Direct HDLC EBCDIC
15 Sync V.25bis Direct BSC EBCDIC

An alternative way of presenting the V.25bis mode selection options listed
above follows:

Value Mode
---------------------------------------------------------
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 (BSC framing) using addressed
access
+4 Direct access calling procedure
+8 EBCDIC character set options instead of ASCII

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.

S97 - V.32 Automdode V.22/V.22bis Probe Timing
S97 sets the duration of the signal used by the modem in the answer mode
during a V.32 automode handshake to determine if the calling modem is
of V.22 or V.22bis type. The value of S97 also sets the time during which
the modem will reject the V.22/V.22bis probe signal when executing the
V.32 automode handshake in the originate mode. The range of S97 values is
15 to 70, representing 1.5 to 7.0 seconds. The default value of 30
(3.0 seconds) provides the timing necessary to connect to most V.22bis
compatible modems. When compatibility with V.32 "late connecting
modems" is a primary requirement, S97 should be set to 15. This value is
also compatible with the timing specified in CCITT recommendation V.22bis.

*****************************************************************************
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:

* place and answer calls (CALL, ACC)
* move between channels (CHAN, EXIT)
* create, save, and execute a PAD command string (EXEC)
* clear and initialize channels (CLR, INT)
* display the current status of a call (STAT)
* display one of several available PAD configuration profiles (PROF)
* display the current settings of the PAD's parameters (PAR?)
* display the current settings of the remote system's PAD parameters (RPAR?)
* set and read the value of specific PAD parameters (SET, SET?)
* set and read the value of specific PAD parameters of the remote system
(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)

*National Parameters

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)
*National Parameters

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)
*National Parameters

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)
*National Parameters

*****************************************************************************
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:

* Problems in Getting Started -- the computer cannot communicate with the
modem, or the connection is inconsistent or otherwise substandard

* Problems in Establishing Communications -- DTE can communicate with the
modem, but cannot make the connection with the remote system

* Problems Encountered while On-line -- high error rate, dropped connections,
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:

* Improper physical connection (data cables not plugged in, etc.)

* Power supply not plugged into receptacle and modem therefore not powered up

* Parameters set for the DTE or software preventing communication between the
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 Analog Loopback: Tests the path that includes the local modem and
local computer

* Local Analog Loopback with Self Test: Checks the operation of the local
modem with an internally generated test pattern

* Remote Digital Loopback: Verifies the path that includes the local
computer, local modem, remote modem, and telephone circuit

* Remote Digital Loopback with Self Test: Tests the path that includes the
local modem, remote modem, and telephone circuit with an internally generated
test pattern. This test requires a CCITT compatible modem.

* Local Digital Loopback: Tests the communication link, the local modem, and
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:

* establish a connection (except when running Analog Loopback L3 test)), and
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

* issue the appropriate &T command once in the command state.

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:

* I0 or I4 commands should be issued at 1200 bps. All Hayes products
(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.

* Result codes should be parsed as strings surrounded by <CR><LF>. The string
will begin with a lower-case letter followed by up to 39 additional
characters.

-------------------------------------------------------------------
* After all result strings have been sent, an OK result is returned that
obeys the V and Q command settings.

* ERROR, OK, or a three digit result in response to the I4 command should be
expected. These results may be returned by products shipped before the I4
command was introduced, or by non-Hayes products.

* The length of the strings may be different than anticipated If shorter than
expected, empty positions should be presumed zeros. If longer than expected,
extra characters should be ignored.

* Some non-Hayes brand modems return unpredictable results in response to I0
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:

* Even if a recognizable result within 2.6 seconds, the program should
continue. (Some modems do a lengthy reset process before responding with a
result; others may be in Q1 or V0 mode).

* Following an OK result, an additional 600ms delay should be imposed. Some
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.

* For the Z command, wait two seconds for a response, then wait an additional
600 ms, whether a response were received or not.

* For general setup commands, wait two seconds for the response.

* For the hang-up command (H), wait up to 20 seconds for a response. V-Series
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.

* For dial commands (D or O) wait at least one minute or more. Values set for
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:

* Have the software scan for result codes, rather than depending on the
condition of the CD line

* Transparent flow control should be used with V-Series System Products
rather than with RTS/CTS signals

* The escape process and H command should be used to hang-up instead of
terminating a connection by dropping DTR

* Any unexpected RING result codes may indicate the last command may not have
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
 
To the best of our knowledge, the text on this page may be freely reproduced and distributed.
If you have any questions about this, please check out our Copyright Policy.

 

totse.com certificate signatures
 
 
About | Advertise | Bad Ideas | Community | Contact Us | Copyright Policy | Drugs | Ego | Erotica
FAQ | Fringe | Link to totse.com | Search | Society | Submissions | Technology
Hot Topics
ebay contest
4chan on fox
This woman is drop dead gorgeous
Kid Eats Habanero Pepper
Were no longer the olny Totse
How to improve yoursocial/sex life
Google anti piracy tool for youtube :(
Chick caught on webcam
 
Sponsored Links
 
Ads presented by the
AdBrite Ad Network

 

TSHIRT HELL T-SHIRTS