Category : Tutorials + Patches
Archive   : HAYS-AT.ZIP
Filename : TRM20.TXT

 
Output of file : TRM20.TXT contained in archive : HAYS-AT.ZIP





TECHNICAL REFERENCE FOR HAYES (TM) MODEM USERS

15 Sept 1992
Version P2.0




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

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

Hayes Microcomputer Products (Asia) Limited
39/F Unit B, Manulife Tower
169 Electric Road, North Point
Hong Kong

Hayes Microcomputer Products (Canada) Limited
295 Philip Street, Waterloo
Ontario, Canada N2L 3W8

Hayes Microcomputer Products, Inc.
Hayes ISDN Technologies
501 Second Street, Suite 300
San Francisco, California 94107

Hayes Technical Service Station
40 Xue Yuan Road
Beijing, P.R. China
Postal Code 100083

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 and without notice.

The Hayes Standard AT Command Set Specification is proprietary to, and
subject to any copyrights, patents, trade secrets and other proprietary
rights of Hayes Microcomputer Products, Inc., which may apply, and
distribution of this document in any way represents a waiver of those
rights or a license under any of those rights. If you desire more
information regarding the licensing available under Hayes Intellectual
Property rights, please contact Hayes Business Development at Hayes
Microcomputer Products, Inc., P. O. Box 105203, Atlanta, Georgia 30348
U.S.A.

This document may be copied for your use or to give away, but you cannot
sell or lease the copies.

Hayes, the Hayes icon, the Hayes logo, Smartcom, Smartcom II, Smartcom
III, Smartcom EZ, Smartcom Exec, V-series, Smartmodem, ULTRA, Express,
OPTIMA, ACCURA, and ESP are trademarks of Hayes Microcomputer Products, Inc.
MNP is a trademark of Microcom, Inc. Other trademarks mentioned in this
document are trademarks of their respective companies.

(c) 1990, 1992 Hayes Microcomputer Products, Inc.
All rights reserved.

44-00012 AA H32 (BBS Version)
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.

The following graphic characters are used to denote the start of Chapters,
1st Level Headings, 2nd Level Headings, 3rd Level Headings and Table
Headings:

Chapter Headings are preceded by:
=============================================================================

1st Level Headings are preceded by:
*****************************************************************************

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

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

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

========================================================================
CHANGE RECORD:

Date Description of Change
------------------------------------------------------------------------
31 October 91 Added Change Record to document
31 October 91 Updated Table of Contents

31 October 91 Expanded the Hayes fast-turnaround
"Ping Pong" protocol description to : Express 96
-a Hayes proprietary protocol that simulates
full-duplex 9600 bps operation (formerly known
as Hayes fast-turnaround "Ping-Pong" protocol).
31 October 91 Added Result Code 14400
31 October 91 Added O3 command Initiate the CCITT
V.32bis renegotiation sequence
31 October 91 Added &A commands Auto-answer Mode Options
31 October 91 Added &G1 command description
31 October 91 Added MI/MIC cross-reference to &J command
31 October 91 Expanded description of &K5 transparent flow control
31 October 91 Added note to &T description
31 October 91 Added description of &T19 RTS/CTS Cable Test
31 October 91 Added &V6 command View Blacklisting Entries
31 October 91 Added Result Codes 13, 24, and 25
31 October 91 Added Negotiation Progress Messages 49, 51,and 52
31 October 91 Added S36 Developer's Tips
31 October 91 Added 1200 and 14400 bps options to register S37
31 October 91 Added description of register S43 Current DCE Speed
31 October 91 Added description of register S55
AutoStream Protocol Request
31 October 91 Added description of register S56
AutoStream Protocol Status
31 October 91 Added description of register S57 Network
Options Register
31 October 91 Expanded description of S87 Fixed Speed DTE
Interface
31 October 91 Added description of S91 PSTN Transmit Level
Adjustment
31 October 91 Added options 10-13 to register S93
31 October 91 Expanded description of register S94
31 October 91 Added description of register S97 V.32 Automode
V.22/V.22bis Probe Timing
31 October 91 Added description of register S105 Link Layer
(N401/V.42 or N1/X.25) Frame Selector
31 October 91 Added description of register S108 Signal
Quality Selector
31 October 91 Added description of register S109 V.32bis
Carrier Speed Selector
31 October 91 Added description of register S110
V.32/V.32bis Selector
31 October 91 Expanded description of Escape Sequence +++
31 October 91 Added S95=60 description to paragraph D.3.2 Setup
31 October 91 Added para. D.3.3 Establishing the Desired
Connection and Fallback Strategy (S36 Developers Tips)
31 October 91 Added COMPRESSION and AUTOSTREAM to para. D.4.1
Originating a Call
31 October 91 Added para. D.9 Transparent XON/XOFF Local Flow Conrtol
in Hayes V-series modems.
26-August-92 Content edit, proof, correction throughout. OPTIMA and
ACCURA EC product information added.


========================================================================
Introduction
Chapter 1: The Hayes Standard AT Command Set
Chapter 2: X.25 Communications
Appendix A: Communications Options
Appendix B: Troubleshooting Tips
Appendix C: Modem-to-DTE Interface
Appendix D: Application Suggestions

========================================================================
INTRODUCTION

This Technical Reference for Hayes Modem Users offers additional
information about Hayes modems and 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 in the user
documentation that accompanied your modem. All of the commands are described
in this document.

You will 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 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 (TM) communications
software products. Any of these fine programs will fully control the
modem in almost any telecommunication environment.

************************************************************************
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 that 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 terminals or 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 provided with your modem for
location and telephone number.)

************************************************************************
How This Reference is Organized

This Reference is organized as follows:

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

Chapter 2: X.25 Communications
Includes definitions of the commands used for X.25 packet-switched
communications, PAD and National Parameters, and command 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 AT
commands.

************************************************************************
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 from which
commands can be entered and sent through the serial port to the modem.

Although commands are not required when using Hayes Smartcom products,
Smartcom EZ (TM), Smartcom Exec (TM), Smartcom II (TM), and Smartcom
III (TM) all support a command line interface to the modem. Refer to your
user documentation for descriptions of the features in your modem that are
enabled by the AT commands and S-registers defined here. The user
documentation explains how to issue AT commands, and read and set
S-registers/PAD parameters.

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

========================================================================
CHAPTER 1 THE HAYES STANDARD AT COMMAND SET

This chapter is divided into three sections: "AT Commands Listing,"
"Result Code Listing," and "S-register Listing." The first section
defines individual AT commands. Commands are listed 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 S-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 use of the Hayes
Standard AT Command Set are also included.

Note: For the factory setting and available options/ranges for commands
and registers, refer to the user documentation provided with your modem. Unless a command, register, or result code is
listed in the user documentation, 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 a feature set
that has enhanced the definition of the Hayes standard.

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. 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
modem returns the CONNECT XXXXX or CARRIER XXXXX result code (see "Result
Code Listing" in this chapter). 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. By using the &An
command, the modem can be forced to answer in the originate mode.

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
Command Description
------------------------------------------------------------------------
B or B0 V.22 when line speed is at 1200 bps.
B1 U. S. Domestic industry standard 212A when line speed is
at 1200 bps.
B2 V.23 R1200/T75 bps Auto Speed Buffering (ASB) when
line speed is at T1200/R1200 bps.
B3 V.23 T1200/R75 bps Auto Speed Buffering (ASB) when
line speed is at T1200/R1200 bps.
B4 V.23 T1200/R75 bps split speed when line speed is at
T1200/R75 bps.
B5 V.23 1200 bps half duplex when line speed is at
T1200/R1200 bps.
------------------------------------------------------------------------

Group 2
Command Description
-----------------------------------------------------------------------
B10 V.23 R1200/T75 bps split speed when line speed is at
R1200/T75 bps.
B11 V.23 R600/T75 bps split speed when line speed is at
R600/T75 bps.
------------------------------------------------------------------------

Group 3
Command Description
------------------------------------------------------------------------
B15 V.21 when line speed is 110/300 bps.
B16 U. S. Domestic industry standard 103 when line speed is
at 110/300 bps.
------------------------------------------------------------------------

Group 4
Command Description
------------------------------------------------------------------------
B20 V.23 R600/T75 bps ASB when line speed is T600/R600 bps.
B21 V.23 T600/R75 bps ASB when line speed is T600/R600 bps.
B22 V.23 T600/R75 bps split speed when line speed is
T600/R75 bps.
B23 V.23 600, half duplex when line speed is 600 bps.
------------------------------------------------------------------------

Group 5
Command Description
------------------------------------------------------------------------
B30 V.22bis when line speed is 2400 bps.
------------------------------------------------------------------------

Group 6
Command Description
------------------------------------------------------------------------
B41 V.32 full duplex when line speed is 4800 bps.
B42 Express(TM) 96* when line speed is 4800 bps.
------------------------------------------------------------------------
* Express 96 - a Hayes proprietary protocol that simulates full-duplex
9600 bps operation (formerly known as Hayes fast-turnaround "Ping-Pong"
protocol).

------------------------------------------------------------------------
Group 7
Command Description
B50 V.29 HDX when line speed is 7200 bps.
------------------------------------------------------------------------

Group 8
Command Description
------------------------------------------------------------------------
B60 V.32 full duplex when line speed is 9600 bps.
B61 Express 96 when line speed is 9600 bps.
B63 V.29 half duplex when line speed is 9600 bps.
------------------------------------------------------------------------

C - Carrier Control Selection

The C command is used by some Hayes modems, such as Smartmodem(TM) 1200, to
control the transmit carrier. In these instances, C0 instructs the modem
to not 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 . (Note that is the notation
used throughout this reference to represent the carriage return, enter,
or return function on your keyboard.)

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 command buffer. The command buffer for
most Hayes Smartmodem products can contain as many as 40 characters. Hayes
V-series (TM) products can hold as many as 255 characters in their command buffers.
Check your user documentation to determine the maximum number of characters
supportted in your modem's 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; in response to a W dial modifier if 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 the
command buffer limit.
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
semicolon (;) 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,
[email protected]#71234; instructs the modem to use tone dialing (T)
to access a number outside a PBX (9), wait for dial tone (W), dial the
number 5552368, 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 numbers and characters the
modem can 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, reinstating pulse
dialing.

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
5552368, 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 5552368 @ 85939 W 423 .

! - Timed Break Recall (Hookflash)

The ! dial modifier issues a timed break recall signal, which causes the
modem to hang up briefly, 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 ), 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 5552368; Dials bank using pulse method.
OK Command executed, but keeps the modem in command
state (no carrier handshake takes place).
ATDT 4768; 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 Hayes improved
escape sequence with guard time 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 were issued, for example, the modem would dial the string
stored in memory location 3 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 dialing (D) command string, before the
. 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, F1 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 self-test
conditions.
H1 Go off hook; do not execute the Handshake Process.
H2 Operate line relay only (applies to certain Smartmodem 1200
products).
------------------------------------------------------------------------

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 to determine 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.
120 Smartmodem 1200, Smartmodem 1200B, Smartmodem 1200C,
Smartmodem 1200A.
240 Smartmodem 2400, Smartmodem 2400B, Smartmodem 2400P,
Smartmodem 2400Q, Smartmodem 2400M, V-series Smartmodem
2400, V-series Smartmodem 2400B, V-series Smartmodem
2400 Quad, V-series Smartmodem 2400M, Smartmodem OPTIMA
(TM) 24, Smartmodem OPTIMA 24 + FAX96,
ACCURA (TM) 2400 EC/FAX96.
960 Smartmodem 9600, V-series Smartmodem 9600, V-series
Smartmodem 9600B, V-series ULTRA (TM) Smartmodem 2400,
V-series ULTRA Smartmodem 9600, V-series ULTRA 24 with
Express 96, Smartmodem OPTIMA 9600, Smartmodem
OPTIMA 96 + FAX96, ACCURA 9600 EC/FAX96.
14400 V-series ULTRA Smartmodem 14400, Smartmodem OPTIMA 144,
Smartmodem OPTIMA 144 + FAX144, ACCURA 14400 EC/FAX144.
------------------------------------------------------------------------

I1- Display ROM Checksum

The I1 command instructs the modem to calculate the value of the ROM
checksum. The response is a number, the sum of all of the bytes in ROM.

I2 - Perform ROM Checksum

This command instructs the modem to verify the ROM checksum. Depending
on whether the ROM checksum has been found to be correct, the modem
produces text that resembles a 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 numeric value as in I1, 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
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 and the number of strings are subject to change
and expansion. The maximum length per string is 40 characters.

The I4 text is displayed in the following form:

a097800C204C264
bF60410000
r1031111111010000
r3000111010000000

surrounded by additional and characters as are required by the
V command option in effect. According to convention, all and
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 composed of the ASCII character "a"
followed by a series of hexadecimal characters (D1-D16 in this example).
The bit map for each byte is defined below.

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: Standalone modem product
Bit 1: Supports &H0 through &H4
Bit 0: Supports &I0 through &I4
D6 Bit 3: Reserved
Bit 2: Supports M4 command
Bit 1: Supports 32-bit FCS (frame check sequence
for AutoSync)
Bit 0: Supports AutoSync II
D7 Bit 3: Supports V.22 at 1200 bps (B0)
Bit 2: Supports 212A (B1)
Bit 1: Supports ASB in V.23 75 bps xmt/1200 bps rcv (B2)
Bit 0: Supports ASB in V.23 1200 bps xmt/75rcv (B3)
D8 Bit 3: Supports V.23 1200 bps xmt/75 bps rcv (B4)
Bit 2: Supports V.23 1200 half duplex (B5)
Bit 1: Supports V.23 75 bps xmt/1200 bps rcv (B10)
Bit 0: Supports V.23 75 bps xmt/600 bps rcv (B11)
D9 Bit 3: Supports V.21 100/300 bps (B15)
Bit 2: Supports ASB in V.23 75 bps xmt/600 bps rcv (B20)
Bit 1: Supports ASB in V.23 600 bps xmt/75 bps rcv (B21)
Bit 0: Supports V.23 600 bps xmt/75 bps rcv (B22)
D10 Bit 3: Supports V.23 600 bps half-duplex (B23)
Bit 2: Supports V.22bis at 2400 bps (B30)
Bit 1: Supports V.27ter at 2400 bps (B31)
Bit 0: Supports V.27ter at 4800 bps (B40)
D11 Bit 3: Supports V.32 full duplex at 4800 bps (B41)
Bit 2: Supports Express 96 at 4800 bps (B42)
Bit 1: Reserved
Bit 0: Supports V.29 half duplex at 4800 bps (B44)
D12 Bit 3: Supports V.29 half duplex at 7200 bps (B50)
Bit 2: Supports V.32 full duplex at 9600 bps (B60)
Bit 1: Supports Express 96 at 9600 bps (B61)
Bit 0: Reserved
D13 Bit 3: Supports V.29 half duplex at 9600 bps (B63)
Bit 2: Supports 103 110/300 bps (B16)
Bit 1: Supports V.32bis (7200/12000/14400 bps)
Bit 0: Reserved
------------------------------------------------------------------------

------------------------------------------------------------------------
D1, D2 Reserved
D14 0: Reserved
1: Personal Modem 1200
2: Personal Modem 2400
3: Personal Modem 1200 Plus
4: Personal Modem 2400 Plus
5: Pocket Edition
D15 Bit 3: Reserved
Bit 2: Supports $ dial modifier and NO DIALTONE result code.
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 a series of hexadecimal characters (D1-D9). The bit map for
each character 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 (Point-to-point error control) protocol supported
D2 Bit 3: Reserved (should be set to zero)
Bit 2 MNP (TM) 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
D5 Bit 3: Reserved
Bit 2: Reserved
Bit 1: Adjustable startup (ASU) is supported
Bit 0: Negotiates adjustable startup
D6 Bit 3: &K5 not supported
Bit 2: &K5 supported
Bit 1: Unidirectional flow control
Bit 0: S105 N104 parameter supported
------------------------------------------------------------------------

I4 "r1, r2" 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 presence of the r2-string in the I4 result infers that S87 is
supported and is required for autobauding at the higher speeds. To
autobaud at one of the speeds indicated in the r2-string requires that
S87 be set to match that speed.

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 '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), all subsequent characters
contain the DTE rate maps. All maps have the same mapping for
convenience to software. (Refer to the following chart.) 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, r2 and r3 Strings

Character Bit # DTE Rate
------------------------------------------------------------------------
3: 1 bit 0 45.45 bps
2 bit 1 50
4 bit 2 75
8 bit 3 75/600 (xmt is 75, rcv is 600)
4: 1 bit 4 75/1200
2 bit 5 110
4 bit 6 134.5
8 bit 7 50
5: 1 bit 8 300
2 bit 9 450
4 bit 10 600
8 bit 11 600/75
6: 1 bit 12 1200
2 bit 13 1200/75
4 bit 14 1800
8 bit 15 2000
7: 1 bit 16 2400
2 bit 17 3000
4 bit 18 3600
8 bit 19 4200
8: 1 bit 20 4800
2 bit 21 5400
4 bit 22 6000
8 bit 23 6600
9: 1 bit 24 7200
2 bit 25 7800
4 bit 26 8400
8 bit 27 9000
10: 1 bit 28 9600
2 bit 29 12000
4 bit 30 14400
8 bit 31 16800
11: 1 bit 32 19200
2 bit 33 21600
4 bit 34 24000
8 bit 35 26400
12: 1 bit 36 28800
2 bit 37 31200
4 bit 38 33600
8 bit 39 36000
13: 1 bit 40 38400
2 bit 41 43200
4 bit 42 48000
8 bit 43 52800
14: 1 bit 44 56000
2 bit 45 57600
4 bit 46 62400
8 bit 47 64000
15: 1 bit 48 67200
2 bit 49 72000
4 bit 50 76800
8 bit 51 81600
16: 1 bit 52 86400
2 bit 53 91200
4 bit 54 96000
8 bit 55 100800
17: 1 bit 56 105600
2 bit 57 110400
4 bit 58 115200
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, 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 and 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 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,
Express 96, V.22bis, V.22/212A, and V.21/103.

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,
Express 96, V.22bis, V.22/212A, V.23, and V.21/103.

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, Express 96, V.22bis, V.22/212A, and V.21/103.

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, Express 96, V.22bis, V.22/212A, V.23, and V.21/103.

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
O3 command is issued (modems supporting V.32bis), the modem goes to on-
line state and initiates the CCITT V.32bis renegotiation sequence.

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

Sr? - Read An S-register

The content of S-register r are sent to the DTE as three decimal digits.
This informational text response is formatted with 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 that ? 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 result codes) are displayed as numbers or
words.

------------------------------------------------------------------------
V0 Result codes displayed as numbers
V1 Result codes displayed as words
------------------------------------------------------------------------

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), the 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 when the W
command option is 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; 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 Hayes Products. However,
selecting W0 and setting S95 as required allows you to tailor result
code 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. Some call progress options are not available in certain
countries due to PTT regulations. Refer to the user documentation
supplied with your modem for applicable X commands and result codes.
Result code definitions are provided 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, but with
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 line speed 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 line speed 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 line speed 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 line speed 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. 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 command. 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
------------------------------------------------------------------------

&A - Select Originate or Answer Role for Auto-Answer Mode

The &A command determines whether the modem will attempt to connect as
the originating or answering modem when auto-answering calls.

------------------------------------------------------------------------
&A0 Connect as answering modem when auto-answering
&A1 Connect as originating modem when auto-answering
------------------------------------------------------------------------

Notes:
1. S0 must be set to a non-zero value to enable AutoAnswering.

2. The &An setting only affects the mode of AutoAnswered calls. The &An
setting does not affect the mode or behavior of ATA, ATD, ATDR, DTR-
Dial, MI/MIC, KDS, or Power-Up initiated connections.

3. The &A or &A0 setting is exactly equivalent to traditional Auto-
Answered connections. It is controlled by register S0. Answer Tone is
issued if the modulation standard requires it, and handshaking proceeds
in the answer direction.

4. When &A1 has been selected and S0 is non-zero and the modem
AutoAnswers an incoming call, the modem performs the Answer process and
then the Handshake process with the exception that the Handshake process
is performed in the Originate mode and Answer Tone is not issued.

5. If parameter values greater than 1 are attempted, an ERROR result
code is issued, and no change is made to the &An setting.

&B - V.32/V.32bis Auto Retrain Options

The &B command is used to enable and disable auto retrain in
V.32/V.32bis mode. During a V.32 or a V.32bis 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/V.32bis connections only.

------------------------------------------------------------------------
&B and &B0 Disable V.32/V.32bis Auto Retrain
&B1 Enable V.32/V.32bis 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 Full-Duplex DCD Behaviors for Half-Duplex
Operation Operation
------------------------------------------------------------------------
&C0 &C1 &C2 &C0 &C1 &C2
&QO A B D &Q1 E C C
&Q1 B B B &Q2 E C C
&Q2 B B B &Q3 E C C
&Q3 B B B &Q4 E C C
&Q4 B B B &Q5 A E A
&Q5 A E A &Q5 A C F
&Q6 A B D S10=255
&Q5 A B D
S10=255
------------------------------------------------------------------------
See Legends that follow for explanation of table entries A-F.

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 S

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 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-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 when
Express 96 is in effect (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
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
-----------------------------------------------------------------------

Legends:

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 progress. 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 progress. 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 and 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
ROM configuration. For the commands and registers stored and their
factory-set ROM default values, see your user documentation.

&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 transmitting in the answer mode and
during the answer handshake.

------------------------------------------------------------------------
&G0 Guard tones disabled
&G1 550 Hz guard tone enabled (V.22, V.22bis only)
&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, and 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)
------------------------------------------------------------------------
Note: To determine the jack setting for MI/MIC operation, refer to the
description of S92.

&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. Note that local flow control is unidirectional in &Q6 mode and
bidirectional in &Q5 mode.

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 are 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-to-modem
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-to-modem
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 characters DLE, DC1, and DC3 are
made transparent by sending DLE followed by the character XORed (Exclusive ORed) with 21hex. See notes on &K5 transparent flow :
control in "Appendix D: Transparent XON/XOFF Local Flow Control
in Hayes Modems."
------------------------------------------------------------------------

&L - Line Type Selection (Dial-up/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 your user documentation for information on setting
carrier level.

------------------------------------------------------------------------
&L0 Select Dial-up line operation
&L1 Select Leased line (Private Circuit) 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: 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. Depending
which Hayes product is being used, any one
of the 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 Automatic Speed Buffering is useful
Asynchronous 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)
are 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 Appendix A. 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 RS-232/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 RS-232 interface) indicates when the modem is
connected to 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 RS-232 specification (as described in
Appendix A).

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

Note: &T commands can only be used when the modem is configured for &Q0
(unbuffered asynchronous mode).

&T0 - Terminate Test In Progress

If a V.54 Loopback Test is in progress 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 2s 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 thatn 1200 or 2400 bps.
ERROR If the RDL signal is not acknowledged.
------------------------------------------------------------------------

&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 self test 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 a self test 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

Software can use &T19 to help determine whether the DTE-to-Modem cable
supports the RTS and CTS signals necessary for hardware flow control,
which is selected by the &K3 command.

&T19 in the modem works interactively with the DTE to confirm the RTS
and CTS signal. Only the DTE can detect CTS, and only the modem can
detect RTS. The modem cannot verify both signals without the active
involvement of the DTE software.

The modem performs the following algorithm in response to the AT&T19
command:

1. Turns OFF CTS (normally ON).
2. Starts a 500 millisecond timer.
3. Monitors RTS for ON and OFF states.
4. If both states of RTS are detected before the 500ms timer
expires then:
a. Restore CTS to the ON state.
b. End the test (stop the timer).
c. Return the OK result code (meaning the modem has
verified RTS).
5. If the timer expires before both states of RTS are detected then:
a. Restore CTS to the ON state.
b. Return the ERROR result code (meaning the modem has not
verified RTS).

Note: By itself, the modem cannot verify either signal. The DTE must
toggle RTS during the test in order for the modem to be able to detect a
change. Also, the DTE should look for CTS to drop during the test to
verify it is connected.

The following algorithm is used by Hayes Smartcom software in its use of
the &T19 test:

1. Issue AT&T19

Note: For more predictable timing, do not combine other commands on the
same command line with &T19. Also, higher DTE port speeds improve the
timing resolution.

2. Wait 500ms for CTS to drop. If CTS does not drop in that time, then
the test fails.

3. If CTS drop is detected, then:
a. Drop RTS, wait 50ms, raise RTS, wait 50ms, repeat up to 6
times, or until CTS is detected high.
b. If CTS is detected returning high before 6 iterations, then the
test is passing (and an OK result code may be expected soon), or
if all 6 iterations did not result in CTS being raised, then the
RTS part of the test is failing (and an ERROR result code may be
expected after the 500ms timer expires).

4. Process the result code from the modem. Success during Step 3 above
and an OK result code implies that RTS and CTS are both wired
correctly. Failure during Step 3 or an ERROR result code implies
that either RTS or CTS is not wired in the cable.

Note: Keep in mind that the result code may arrive while you are still
in Steps 2 and 3 above.

A modification to the software algorithm could be made to permit
software to detect which signal is missing from the cable. After issuing
the AT&T19 command, give the modem about 100ms to drop CTS. Then,
even if the CTS drop is not detected, proceed to toggle RTS anyway,
keeping in mind that the CTS part of the test has failed.

RTS/CTS flow control is preferred because it is "out of band", that is,
it does not consume any of the 256 serial codes from the user data.
XON/XOFF flow control uses DC1 (ASCII 17) and DC3 (ASCII 19). If RTS/CTS
is not supported, then Transparent Flow Control (&K5) is the next best
option (IF the software supports it) because it accomplishes Xon/Xoff
flow control without interfering with the user data (e.g. during binary
file transfers).

&U - Trellis Coding Options

The &U command is used to enable and disable Trellis coding for V.32
connections. Trellis coding is a method of forward error correction that
adds information to the base modulation scheme to record successive
dependencies between transmitted signal points. This selection affects
V.32 9600 bps and 4800 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 typical &V information supplied when the
factory-set default configuration profile is loaded and then stored into
the stored profiles, and an arbitrary phone number is stored in one of
the stored numbers locations. Note that the contents and structure of
these profiles vary from modem to modem.

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.

&V6 - View Blacklisting Entries

This command displays "blacklisted" telephone numbers, the number of
attempts to each listed number, and the number of calls attempted since
the last connection to a modem. Note that this command is only available
in modems subject to "blacklisting" regulations set by certain modem
approval agencies. Refer to the your user documentation to see if this
command applies.

&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 in the user documentation for your modem.
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
(RS-232).
&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 (RS-232).
------------------------------------------------------------------------

&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 power-up
&Y1 Select Stored Profile 1 on power-up
------------------------------------------------------------------------

&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=5552368 writes
5552368 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
&Z=
&Zn= ... 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
characters between info-texts and not within them.

------------------------------------------------------------------------
V0 V1
Information Text text
text

Result Codes numeric code
verbose code

------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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, 7200,
9600, 14400, 19200, or 38400 bps. If the modem is not operating in
error-control or ASB mode, this is the same as the line speed. See other
CONNECT messages and CARRIER messages.

2 - RING
This result code indicates the modem has 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 the character limit for your modem, this result code will be
returned. See your user documentation to determine the character limit for
your modem. 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,
1200/75 or 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.

13 - CONNECT 14400
This result code indicates a connection has been established at 14400
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.

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

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

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

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

Negotiation progress messages are reported in the following order:

CARRIER
PROTOCOL
AUTOSTREAM
COMPRESSION
CONNECT

If AutoStream is not used, no message is reported.

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

49 - CARRIER 7200
This message indicates that a carrier signal has been detected at 7200
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).

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

52 - CARRIER 14400
This message indicates that a carrier signal has been detected at 14400
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/ LAPB
This message indicates that an error-control connection was negotiated
with LAPB protocol.

72 - PROTOCOL: ERROR-CONTROL/ LAPB/HDX
This message indicates that a half-duplex error-control connection was
negotiated with LAPB protocol.

73 - PROTOCOL: ERROR-CONTROL/LAPB/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/LAPB
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/LAPB/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/LAPB/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.

78 - PROTOCOL: LAP-M/HDX
This message indicates that a half-duplex error-control connection using
the V.42 LAPM protocol was established.

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 errorge indicates that an error-control
connection using the V.42 LAPM alternative protocol was established.
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 connectionsage 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). Level 3 has been negotiated for the connection. This
technique provides for multiplexing of multiple virtual channels, with
transparent control of all PADs (simultaneous).

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

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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
characters. The V command has no affect on the format of this command
response. Note that the contents and format of the profile may vary from
model to model.

************************************************************************
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 user documentation that came
with your modem for the S-registers and their ranges/factory settings that
your modem supports. Note that S-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 (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 S1 to 0. Note that two short ring bursts within a ring
cycle are counted as two rings.

S2 Ecape Sequence Character

S2 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

S3 holds the ASCII value of the line terminating character. The factory-
set value is ASCII 13 - carriage return () - 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

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

S5 Backspace Character

S5 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

S6 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 X2 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
Dialing call progress monitoring feature (W dial modifers) applies only
to detection of a second dial tone and is independent of any S-register
setting.

S7 Wait for Carrier after Dialing

S7 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

S8 determines the duration of the delay generated by the comma (,) dial
modifier.

S9 Carrier Detect Response Time

S9 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

S10 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, S10 specifies the maximum time (in seconds) that a
carrier may be continuously present or absent before causing the modem
to disconnect.

S11 Multi-Frequency Tone Duration

S11 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

S12 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

S18 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

S25 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

S26 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

S30 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, &Q5 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 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 to 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 makes transparent 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.
6 Attempt a V.42 Alternative Protocol connection (MNP compatible);
if negotiation fails, hang up.
7 Attempt a V.42 Alternative Protocol connection (MNP compatible);
if negotiation fails, attempt an asynchronous connection using
automatic speed buffering (ASB).
------------------------------------------------------------------------

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.

The following table shows the order in which the bits of S36 are
evaluated: (Remember, these steps only occur after the S46/S48
selections have failed to make a LAPBased error-controlled connection in
&Q5 mode.)

---------------------------------------------------------------------------
S36 Bit 7-3=0 reserved
First Bit 2 (4) If set, means try MNP protocol; reset means
don't use MNP.
Third Bit 1 (2) If set, means fall back to ASB; reset means
direct async.
Second Bit 0 (1) If set, means fall back based on Bit 1; reset
means hang up.
------------------------------------------------------------------------

Also see Appendix D,"Establishing the Desired Connection and Fallback
Strategy."

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. Note that
this is the speed of modems across the telephone line, not the speed at
which the modem communicates with the attached DTE.

---------------------------------------------------------------------------
0 Attempt to connect at highest line speed that does not exceed
the 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 Attempt to connect at 7200 bps
9 Attempt to connect at 9600 bps
10 Attempt to connect at 12000 bps
11 Attempt to connect at 14400 bps
----------------------------------------------------------------------------

S38 Delay Before Forced Hang up

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

S43 Current DCE Speed

The value in S43 indicates the DCE speed of the last carrier
established. This is a read-only register.

---------------------------------------------------------------------------
0 No connection
1 Reserved
2 110 bps
3 300 bps
4 Reserved
5 1200 bps
6 2400 bps
7 4800 bps
8 7200 bps
9 9600 bps
10 12000 bps
11 14400 bps
---------------------------------------------------------------------------

S44 Asynchronous Framing Technique Selection

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. 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/LAPB 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. The values of S44 are as follows:

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

S46 specifies the error-control method used for subsequent connections.
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 chooses one based on the user-configuration for
the communication session. For example, if an ULTRA product is
configured to use the X.25 protocol, but connects with a V-series
product without X.25 capability, an error-control protocol is
automatically selected because both modems support it. However, if a
ULTRA product with X.25 connects with another ULTRA 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*
134 X.25
136 LAPM only
138 LAPM with data compression*
------------------------------------------------------------------------

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

S48 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 modem 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

S49 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

S50 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 Hayes 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.
------------------------------------------------------------------------

S55 AutoStream Protocol Request

S55 allows the user to request one of the AutoStream levels. The range
is 0 to 3 with a factory setting of 0.

Parameter Description
Value
-------------------------------------------------------------------
0 No AutoStream.
1 Request AutoStream Level 1 (allows multiplexing of multiple
virtual channels on the DTE).
2 Request AutoStream Level 2 (allows transparent control over
one PAD at a time - non simultaneous).
3 Request AutoStream Level 3 (allows transparent control over
all PADs simultaneously).
------------------------------------------------------------------------

S56 AutoStream Protocol Status

S56 reflects the status of the current AutoStream level. An alternative
to reading this register is examining the extended result codes (see
W1). The range is 0 to 3 with a factory setting of 0. This register
applies to Hayes modems that support X.25 and AutoStream.

Parameter Description
Value
------------------------------------------------------------------------
0 Indicates no AutoStream.
1 Indicates AutoStream Level 1 (allows multiplexing of
multiple virtual channels on the DTE).
2 Indicates AutoStream Level 2 (allows transparent control
over one PAD at a time - non simultaneous).
3 Indicates AutoStream Level 3 (allows transparent control
over all PADs simultaneously).
------------------------------------------------------------------------

S57 Network Options Register

This bit-mapped register allows configuration of the packet layer for
operation with different networks. This register applies to Hayes modems
that support X.25 and AutoStream.

Bit 0: Address may be sent in the call accept or clear request packets.
Otherwise, the address length is set to zero.

Bit 1: Neither address, facility, nor data fields may be set in call
accept or clear request packets. Address is not sent, even if used in
combination with bit value 1.

------------------------------------------------------------------------
S57=0 In call accept or clear request packets, the address length is
set to zero, but facility and data fields may be present
(factory setting).
S57=1 In call accept or clear request packets, address, facility, or
data fields may be present.
S57=2, 3 In call accept or clear request packets, no fields may be
sent.
------------------------------------------------------------------------

S63 Private Circuit (Leased Line) Carrier Level Adjustment

S63 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 information for details.

S69 Link Layer Window Size

S69 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 V 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.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.3.1 Logical Channel Number Selectors - PS74, S75, S76, S77, S78, S79

Although Hayes products supporting X.25 support 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 Hayes 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
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.3.2 Packet Layer Parameters - PS80, S81

The values in S80 and S81 combine to set time and duration for packet
layer restart requests.

S80 Packet Layer N20 Parameter

S80 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

S81 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

S82 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. The values for S82 are:

------------------------------------------------------------------------
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 (ASU) negotiation

S84 selects the adaptive start up (ASU) method to be negotiated for
subsequent connections.

------------------------------------------------------------------------
0 Do not negotiate ASU connection.
126 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

S85 indicates whether adaptive start up and method were negotiated for
the current connection. To read S85, issue the escape sequence to place
the modem in the command state, then issue ATS85? . The modem will
report one of the values below.

------------------------------------------------------------------------
0 ASU not negotiated; fixed start up in use.
126 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

S86 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? . 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.

S87 Fixed Speed DTE Interface (Default High AT Speed)

The modem always accepts AT commands up to and including 9600 bps. Above
9600 bps, the S87 setting determines which additional speed will be
available for autobauding. (Autobauding is the process by which a modem
determines the DTE speed from the A (and possibly T) of an AT command).
Refer to the description of the r2-string in the I command description.
The following list identifies the possible values of S87. The factory
default value is the lowest available value in the modem. Refer to the
user documentation supplied with your modem to determine if S87 is
supported by your modem and which values of S87 it supports.

Value Indicated Speed
------------------------------------------------------------------------
14 19200
28 38400
------------------------------------------------------------------------

S91 PSTN Transmit Level Adjustment

The PSTN (Public Switched Telephone Network) line transmit level can be
adjusted using register S91. This register specifies a carrier level
value that is not to be exceeded. The allowable range for register S91
is listed in your modem's user documentation.

S92 MI/MIC Options

S92 enables and selects 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. To see if
your modem supports MI/MIC and if it does, for particulars as to how the
jack setting specified with the &J command interacts with this register,
see your modem's user documentation.
------------------------------------------------------------------------
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: This feature is not available to all modems. Refer to the feature
list in your modem's installation information. Setting S92 to a value
other than its factory-set default of 0 automatically redefines the
telephone line jack setting specified by the &J command.

S93 V.25bis DTE Interface Speed

S93 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
8 7200 bps
9 9600 bps
10 12000 bps
11 14400 bps
12 19200 bps
13 38400 bps
------------------------------------------------------------------------
Note that the V.25bis feature is not available in all modems and if
supported, not all values may apply. Refer to the feature list in your
modem's user documentation.

S94 Mode Selection Register

S94 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, the related DIP switches in the modem must be set to select
the "AT Command Mode" (factory setting). See your modem's installation
information.

With the modem's DIP switches set to select "AT Command Mode," 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:

Synchronous Operation
Value Sync/ AT/ Addressed/ HDLC/BSC ASCII/EBCDIC
------------------------------------------------------------------------
Async V.25bis Direct
0 Async AT -- -- --
1 Async V.25bis Addressed -- --
2 Sync V.25bis Addressed 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

S95 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
different 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=32J will then enable the COMPRESSION negotiation messages.

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

S97 V.32 Automode 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.

S105 Link Layer (N401/V.42 or N1/X.25) Frame Size Selector;

S105 sets the maximum frame size (N401 in V.42, N1 in X.25) according to
the following parameter value-to-frame size (in bytes) conversions:

Value Explanation
------------------------------------------------------------------------
4 16 bytes
5 32 bytes
6 64 bytes
7 128 bytes (default)
8 256 bytes
9 512 bytes
------------------------------------------------------------------------

S108 Signal Quality Selector;

S108 sets the signal quality required for the modem handshake at the
highest designated V.32bis speed and for automatic rate re-negotiation.
If the modem determines during a carrier handshake or connection that
the signal quality is less than that specified by the value assigned to
S108, the modem will attempt to connect at the next lower carrier speed
specified by S109 - unless the N0 command has been selected. If the N0
command has been selected, then only the carrier speed specified by S37
is used. This register only affects V.32bis connections. (Refer to the
discussion of rate re-negotiation in the description of register S110
for related information.)

Value Explanation
------------------------------------------------------------------------
0 No limit.
1 Low quality.
2 Medium quality.
3 High quality.
------------------------------------------------------------------------

S109 V.32bis Carrier Speed Selector

S109 controls the speeds available for V.32bis carrier handshake,
retrains, and rate re-negotiation. This permits disabling speeds lower
than the highest carrier speed while enabling the highest carrier speed
or other carrier speeds. (Refer to the discussion of rate re-negotiation
in the description of register S110 for related information.)

S37 selects the highest carrier speed. If the N0 command is selected,
the carrier speed specified by S37 and one of the carrier speeds
specified by S109 must match; the modem will connect only at that
carrier speed. While the modem is in V.32bis mode, the S37 and N0
command settings do not affect the modem speed during retrain or rate
re-negotiation procedures.

Caution: If speed negotiation is disabled by the N0 command and S37
indicates a V.32bis speed that is not enabled by S109, then the modem
will not connect. N0 and S37 have no effect during retrains and rate re-
registration.

Decimal Explanation
Value
-------------------------------------------------------------------------
1 reserved
2 4800 bps
4 7200 bps
8 9600 bps
16 12000 bps
32 14400 bps
64 reserved
128 reserved
------------------------------------------------------------------------
Note: The decimal values may be added to specify several speeds from
which the modem can choose. For example, the factory default is 62 which
is the addition of decimal values 2, 4, 8, 16, and 32 (2+4+8+16+32=62).

S110 V.32/V.32bis Selector

The V.32 and V.32bis carrier handshake procedures are compatible. The
rate sequence (defined in V.32 and V.32bis) contains bit combinations
that specify which procedure shall be used. S110 provides control of
that selection for users who want to disable automatic rate re-
negotiation or limit the carrier handshake procedure to that specified
by V.32. (Refer to the description of registers S108 and S109 for
related information.)

When the value of S110 is 0, the V.32 handshake procedure follows. This
means that rate re-negotiation, which is allowed by V.32bis, is
disabled, and the &U command determines whether or not Trellis coding is
enabled.

When the value of S110 is 1, the V.32bis handshake is enabled, but
automatic rate re-negotiation (defined on the next page) is disabled.
The modem shall respond to a rate re-negotiation request from the other
end.

When the value of S110 is 2 (factory-setting), V.32bis handshake and
automatic rate re-negotiation are enabled.

Value Explanation
------------------------------------------------------------------------
0 V.32 enabled.
1 V.32bis enabled.
2 V.32bis and automatic rate re-negotiation enabled.
------------------------------------------------------------------------

Retrain and rate re-negotiation may be initiated, as follows, by either
modem involved in a V.32bis connection.

Rate Re-Negotiation:

Rate re-negotiation may be initiated by the other end modem, manually by
the O3 command (while in the on-line command state), and by the modem
when the signal quality or frame error rate indicate a lower or higher
speed should be used.

When in the V.32bis mode, the modem always responds to a rate re-
negotiation request from the other modem. The speeds to be indicated to
the other modem correspond to the speeds allowed by S109.

Automatic Rate Re-negotiation:

Retrains and rate re-negotiation initiated by the modem are called
"automatic" retrains or rate re-negotiations, respectively. Automatic
rate re-negotiation is always disabled when:

*the &X1 command is selected and the modem is in the synchronous
mode (&Q1, &Q2, or &Q3 selected) or
*the modem is in asynchronous mode (&Q0 selected).

When the modem recognizes that signal quality has dropped, the modem may
(if enabled by the &B1 command or the value of S110) initiate a retrain
or rate re-negotiation. The procedure is to try a retrain first. If that
does not yield acceptable signal quality or frame error rate, the modem
will try to re-negotiate a lower speed.

Line speed changes are only allowed when the modem is using a constant
DTE speed and in synchronous mode when the modem controls the DTE speed.
That is, rate re-negotiation speed changes are allowed only when the
&Q4, &Q5, or &Q6 command is selected and when the &X0 or &X2 commands
and one of the synchronous mode commands (&Q1, &Q2, or &Q3) are
selected.

AutoSync Mode:

Increases in line speed are allowed when AutoSync is in use only to the
extent that the current DTE speed will support AutoSync. The following
DTE speeds are required for the indicated line speeds, and are
established when the initial connection is made. If the line speed is
reduced from the initial line speed of a call, then the DTE speed will
always support a return to the initial line speed. The following table
shows the maximum line speeds (in bps) that will be supported by initial
AutoSync DTE speeds.

Maximum AutoSync Line Speeds
Initial line speed DTE speed Maximum line speed
------------------------------------------------------------------------
4800 9600 4800
7200 19200 12000
9600 19200 12000
12000 34400 14400
14400 34400 14400
------------------------------------------------------------------------

Error-control Mode:

When error correction is provided by the modem, automatic rate re-
negotiation, if enabled, is based on the current frame error rate.

Non Error-control Mode:

Automatic rate re-negotiation is based on signal quality when the modem
is using a constant DTE speed and not providing error correction and
when the modem is operating in synchronous mode. That is, 1) when the
&Q6 command is selected, or 2) &Q4 is selected and BSC mode is in use,
or 3) the &X0 command is selected and the modem is in &Q1, &Q2, or &Q3
mode.

Rate changes may be attempted according to the following:

*If the signal quality falls below the limit set by S108, first try
a retrain. If the signal quality stays below the limit, attempt the next
lower speed if that speed is allowed by S109.
*Never attempt to increase the line speed.

Note: Sometimes a rate re-negotiation attempt will not produce a
different speed because the speeds which the distant modem has enabled
match the local modem speeds only at the current speed.

DTE Interface Leads:

Depending on the settings of &Q, and &R, interface leads CTS (circuit
106) and RD (circuit 104) may be clamped when a retrain or rate re-
negotiation process starts, and released when the process is completed.

S115 V.25bis Auto-answer and Character Format Options
S115 is a bit-mapped register that specifies which auto-answer and
character format methods the modem will use during V.25bis operation. The
range of values for this register is 0-3, with a factory setting of 0.

Value Explanation
-----------------------------------------------------------------------
0 Use &E1 parity and V.25bis auto-answer.
1 Use 7E1 parity and alternate auto-answer method.
2 Use 8N1 parity and V.25bis auto-answer.
3 Use 8N1 parity and alternate auto-answer method.
-----------------------------------------------------------------------

The bit values for S115 specify the following:

Bit Value Definition
-----------------------------------------------------------------------
bit 0=0 Specifies V.25bis auto-answer, which does the following:
* Auto-answer after two rings unless a DIC (disregard
incoming call) is received for the DTE before the second
ring of a pending call*.
* Answer if a CIC (connect incoming call) is received
during a pending call.
* Inhibit auto-answer if DIC is received during the
currebt pending call.
* Issue an INV (invalid command) result code if a DIC or
CIC is received between pending calls.

bit0=1 Specifies an alternate auto-answer method, which does
the following:
* Auto-answer as specific by the S0 register.
* Answer if a CIC is received while an incoming call is
pending (regardless of the S0 setting).
* Inhibit auto-answer if a DIC is received during the
pending call.
* Issue an INV result code if a DIC or a CIC is received
between pending calls.

bit 1=0 Specifies 7 data bits, even parity, and one stop bit.
bit1=1 Specifies 8 data bits, no parity, and one stop bit.
-----------------------------------------------------------------------
Note: The term "pending call" means the period of time when an incoming
call attempt is active, which is indicated when S1 contains a non-zero
value and which is true from the first ring until 8 seconds of no ringing
has been detected.

S120 Auto Answer Control through DTR
S120 controls how DTR is used during auto answer. The range for S20 is 0
to 2, with a factory-set default of 0 (zero).

Value Explanation
-----------------------------------------------------------------------
0 If &D2 with &Q2 (or &Q4) is in effect, then DTR must be high
in order to permit S0 to enable auto-answer.
1 DTR is not required to enable auto-answer.
2 DTR must be on in order to enbable auto-answer.
-----------------------------------------------------------------------

*************************************************************************
1.4 Additional AT Command Definitions

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 your modem's installation
information for the speeds, formats, and transmission methods supported
by your modem.

+++ Escape Sequence

The patented escape sequence with guard time mechanism (U.S. Patent
#4,549,302) returns the modem to the command state from the on-line
state.

The escape sequence with guard time can be used when the modem is on-
line and you need to enter commands to the modem, but you do not want to
disconnect from a call. The escape sequence with guard time ensures that
the modem connection will not be dropped and no data will be lost while
the modem is off-line in the command state.

Because of this patented invention, intelligent modems can provide
reliable transmission of data, distinguishing the predetermined escape
sequence characters from the random occurrence of like characters in
user data.

A guard time must precede and follow the escape sequence to prevent the
modem from interpreting similar data (for example, another series of
plus (+) characters) as the escape sequence. The default guard time is 1
second.

To enter the escape sequence with guard time, pause a little longer than
the guard time, then type:

+++

Then pause again a little longer than the guard time. The guard time
pauses before and after the escape sequence, ensure that the modem will
distinguish the escape sequence from random user data.

When you receive OK from the modem, which acknowledges that it has
"escaped" from the on-line data state, you may enter AT commands.
When you are ready to resume your call to a remote system, type:

ATO

This is the command to return on-line.

The escape sequence character and the guard time interval can be changed
by assigning different values to registers S2 (for the escape character)
and S12 (for the guard time).

End-of-line Character

represents the key on your keyboard that 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 . For example, the command line ATV0 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 2 X.25 COMMUNICATIONS

This chapter includes information about the use of X.25 communications
with V-series products. The command and parameter descriptions are more
detailed than those offered in the user documentaion.
Also included are four recommended PAD (Packet Assembler/Disassembler)
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 Hayes
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 which control and specify a connection are described in
the sections that follow. An overview of the connection 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 5 0 3 6 3
system has X.25; otherwise,
use LAPB point-to-point
connection).
X.25 only (point-to-point 5 0 3 134 3
connection).
X.25 network without feature 5 0 3 6 0
negotiation.
X.25 network with feature 5 0 3 6 3
negotiation.
X.25 network with feature 5 0 2 6 3
negotiation and AFT.
-------------------------------------------------------------------------

The suggested configuration for establishing a synchronous X.25
connection with a packet-switched network or a remote Hayes product
that supports X.25, can be selected with AT&Q5 S44=3 S46=6 S48=0 .
Refer to the "S-register Listing" in Chapter 1 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/LAPB mode).

Example of &O commands use:

String Result Code/Explanation
------------------------------------------------------------------------
AT&O1 OK (PAD channel 1 selected)
AT&O9 ERROR (value entered is out of selectable range)
------------------------------------------------------------------------

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

************************************************************************
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 PAD 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 later use.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 PAD command 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 . This
action and most other conventions for editing a line and entering
commands are the same as those used 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 chapter, 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? [][,...].
------------------------------------------------------------------------

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] [ -] 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.
[ -] 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] []
------------------------------------------------------------------------

Parameter Description
------------------------------------------------------------------------
[R] Instructs the network that you will accept charges for
the call if requested to do so
Represents optional call facilities which 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] [] [ [,[] [,] ] ]
[CALL] D
[CALL] D
[CALL] [,[] [,] ] D
------------------------------------------------------------------------

Parameter Description
------------------------------------------------------------------------
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 (-).
Represents remote system's address containing up to 15
digits (0-9).
Represents source address containing up to 15 digits (0-9).
X.25 logical channel number (1-4095).
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 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 can be entered 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 Provides network with network user ID, identifying the
caller to the network.
T 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 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 PAD
Parameter 100 is used.
W Requested maximum window size (2-7). If W is not
specified, the default value (2) of National PAD
parameter 101 is used.
X 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
Parameter Description
------------------------------------------------------------------------
Specifies which virtual channel to switch to, indicated
by an ASCII digit (1-4)
-----------------------------------------------------------------------

Result Codes: Description
------------------------------------------------------------------------
ERR Invalid 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 -] []
-----------------------------------------------------------------------

Parameters Description
-----------------------------------------------------------------------
Hexadecimal data (0-9, A-F) supporting facilities
not supported by the Hayes modem supporting the X.25
feature.
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?
.

Sample EXEC Sequence:

To use the EXEC command, from the PAD command state type EXEC . 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

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

In this EXEC string, the PAD is instructed to:

ANS Respond to an incoming call request.
PROF VSM Load the emulation PAD profile.
SET 0:0 Set the National marker in order to change a National PAD
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

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 diaplay the current EXEC string (if any) stored in memory, type EXEC?
.

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

The OK result code is sent from the modem to the attached computer
then type:

ATH0

This AT command hangs up the modem, breaking the physical connection to
the 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
-----------------------------------------------------------------------
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 Description
-----------------------------------------------------------------------
Number of specific PAD parameter settings 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.
: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
------------------------------------------------------------------------

Parameter Description
------------------------------------------------------------------------
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 error-control/LAPB 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
------------------------------------------------------------------------

The Emulation Profile is automatically set if feature
negotiation results in an error-control/LAPB connection on virtual
channel 1 (error-control/LAPB 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 to move to channel 3. At the
prompt, type in the PAD parameters you want to adjust and store, issuing
them with . To save the settings as a profile, issue PROF SAV .

RESET - PAD Reset 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
------------------------------------------------------------------------
RESET [ ]
-----------------------------------------------------------------------

Parameter Description
-----------------------------------------------------------------------
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 Description
------------------------------------------------------------------------
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.
:INV Invalid parameter entered, or remote system does not
support parameter specified.
------------------------------------------------------------------------

For example, issuing RPAR? 1,4,0,70,71 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, issuing RPAR? displays the settings for
all of the remote system's PAD parameters.

RSET - Set Remote PAD Parameter Command

To set and display the remote system's PAD parameters, use the RSET
command.

Example Format
------------------------------------------------------------------------
RSET [?] [:] [,:] [, ...]
------------------------------------------------------------------------

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

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

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

To display the setting, type: RSET? 2:1. 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 Description
------------------------------------------------------------------------
Specifies the number of the PAD parameter to set/display.
Value that you want to set for the specified PAD parameter.
-----------------------------------------------------------------------

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

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

To display the setting, type: SET? 2:1 . 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 PAD Parameters.

Twenty-two PAD parameters (1-22) and an additional set of
"National PAD Parameters" offer configuration options. National PAD
Parameters (numbers starting at 70) are used to support and control
the enhanced functionality provided by the 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
Values Descriptionthe 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 Values 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 PAD 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 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 Factory Setting
------------------------------------------------------------------------
0-31 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, using the break signal to escape from the
data transfer state 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 Description
------------------------------------------------------------------------
READ ONLY None
-----------------------------------------------------------------------

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 PAD 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 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 PAD 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 PAD Parameter 70 - Streaming Data Forwarding

National PAD 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/LAPB 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 PAD 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.
National PAD 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 PAD Parameters 72 - Break Signal Timing

National PAD Parameters 72 is used to control whether or not break
timing information via National PAD Parameters 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 PAD
Parameters 73 specifies the duration of the break signal transmitted by
the PAD. If National PAD Parameters 72 is set to value 0, the indication
of break PAD message is sent normally, and will be compatible with all
networks.

If National PAD Parameters 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 PAD Parameters 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 PAD Parameters 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 PAD Parameters 73.

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

National PAD Parameters 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 PAD Parameters 73 is usually set by the remote
PAD, if the remote PAD supports National PAD Parameters 72.

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

National PAD Parameters 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 PAD Parameters 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 PAD Parameters 101 - Default Maximum Window Size

This parameter sets the default maximum window size.

Values Factory Setting
------------------------------------------------------------------------
2-7 2
------------------------------------------------------------------------

National PAD Parameters 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 Factory Setting
------------------------------------------------------------------------
1-255 20 (200 seconds)
------------------------------------------------------------------------

National PAD Parameters 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 Factory Setting
------------------------------------------------------------------------
1-255 18 (180 seconds)
------------------------------------------------------------------------

National PAD Parameters 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 Factory Setting
------------------------------------------------------------------------
1-255 18 (180 seconds)
------------------------------------------------------------------------

National PAD Parameters 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 Factory Setting
------------------------------------------------------------------------
1-255 18 (180 seconds)
------------------------------------------------------------------------

National PAD Parameters 106 - Reset Request Retransmission Counter

This parameter defines the maximum number of times a reset request
packet should be retransmitted.

Values Factory Setting
------------------------------------------------------------------------
0-255 1 retransmission
------------------------------------------------------------------------

National PAD Parameters 107 - Clear Request Retransmission Counter

This parameter defines the maximum number of times a clear request
packet should be retransmitted.

Values Factory Setting
------------------------------------------------------------------------
0-255 1 retransmission
------------------------------------------------------------------------

National PAD Parameters 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. Four standard profiles are
provided here:

Factory-Set Profile

PAD Values Description Default
Parameter
------------------------------------------------------------------------
1 0-126 PAD recall using a character 0 (disabled)
2 0,1 Echo 0 (disabled)
3 0-127 Selection of data forwarding 0 (disabled)
signal
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, Response to break from 5 (send interrupt
8,16 terminal 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, Terminal speed (speed of terminal
12-16 indicated)
12 0,1 Flow control of PAD by 0 (XON/XOFF disabled)
terminal
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, Editing PAD result codes 2 (display terminals)
32-126
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 0 (parameters set
settings 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 20 (200 seconds)
timer
103* 1-255 T22 reset request response 18 (180 seconds)
timer
104* 1-255 T23 clear request response 18 (180 seconds)
timer
105* 1-255 T26 interrupt response 18 (180 seconds)
timer
106* 0-255 R22 reset request 1 retransmission
retransmission
107* 0-255 R23 clear request 1 retransmission
retransmission
108* 0-3 Channel allocation 3 (normal channel
parameter allocation)
*National PAD Parameters
------------------------------------------------------------------------


CCITT Simple Standard Profile

Pad Values Description Default
Parameter
------------------------------------------------------------------------
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
signal control 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, Response to break from 2 (send reset packet)
8, 16 terminal
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, Terminal speed (speed of terminal
12-16 indicated)
12 0,1 Flow control of PAD by 1 (XON/XOFF disabled)
terminal
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 Editing PAD result codes 1 (printing
8,32-126 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 0 (parameters set by
settings 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 20 (200 seconds)
timer
103* 1-255 T22 reset request response 18 (180 seconds)
timer
104* 1-255 T23 clear request response 18 (180 seconds)
timer
105* 1-255 T26 interrupt response 18 (180 seconds)
timer
106* 0-255 R22 reset request 1 retransmission
retransmission
107* 0-255 R23 clear request 1 retransmission
retransmission
108* 0-3 Channel allocation parameter 3 (normal channel
allocation)
*National PAD Parameters
------------------------------------------------------------------------

CCITT Transparent Standard Profile

PAD Values Description Default
Parameter
------------------------------------------------------------------------
1 0-126 PAD recall using a character 0 (disabled)
2 0,1 Echo 0 (disabled)
3 0-127 Selection of data forwarding 0 (disabled)
signal
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, Response to break from 2 (send reset packet)
8, 16 terminal
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, Terminal speed (speed of terminal
12-16 indicated)
12 0,1 Flow control of PAD by 0 (XON/XOFF disabled)
terminal
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, Editing PAD result codes 1 (printing
8, 32-126 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 0 (parameters set by
settings by remote PAD remote PAD
settings 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 20 (200 seconds)
timer
103* 1-255 T22 reset request response 18 (180 seconds)
timer
104* 1-255 T23 clear request response 18 (180 seconds)
timer
105* 1-255 T26 interrupt response 18 (180 seconds)
timer
106* 0-255 R22 reset request 1 retransmission
retransmission
107* 0-255 R23 clear request 1 retransmission
retransmission
108* 0-3 Channel allocation parameter 3 (normal channel
allocation)
------------------------------------------------------------------------
*National PAD Parameters

Error-control/LAPB Profile

PAD Values Description Default
Parameter
------------------------------------------------------------------------
1 0-126 PAD recall using a character 0 (disabled)
2 0,1 Echo 0 (disabled)
3 0-127 Selection of data forwarding 0 (disabled)
signal
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, Response to break from 5 (send interrupt and
8, 16 terminal 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, Terminal speed (speed of terminal
12-16 indicated)
12 0,1 Flow control of PAD by 0 (XON/XOFF disabled)
terminal
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 Editing PAD result codes 2 (display terminals)
8,32-126
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 0 (parameters set by
settings 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 20 (200 seconds)
timer
103* 1-255 T22 reset request response 18 (180 seconds)
timer
104* 1-255 T23 clear request response 18 (180 seconds)
timer
105* 1-255 T26 interrupt response timer 18 (180 seconds)
106* 0-255 R22 reset request 1 retransmission
retransmission
107* 0-255 R23 clear request 1 retransmission
retransmission
108* 0-3 Channel allocation parameter 3 (normal channel
allocation)
------------------------------------------------------------------------
*National PAD 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.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.1 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 E. 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 E (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/LAPB
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 .

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 alpha-numeric 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 . This clears the current virtual
connection. The network responds with CLR CONF FAC: (followed by network
information as alpha-numeric characters X000...). Note: All virtual
calls should be cleared before returning to the AT command state.

Step 6: Exiting the PAD.

EXIT - Leaves PAD command state and enters the AT command state.

Step 7: Terminating the network connection.

ATH0 - Breaks the physical connection to the network node. This
action hangs up the telephone, in the same way other communication
sessions are terminated.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.2 Establishing a Virtual Connection

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

------------------------------------------------------------------------
ACTIVITY: User dials CompuServe, 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
COM
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 and issues CALL command to go on-
line with CompuServe:
Enter: AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123
Result: CARRIER 2400
PROTOCOL: X.25/LAPB
CONNECT 2400
Enter: CALL R-311020200202
Result: CON COM: W2:2,P7:7,X 0277 COM
----------------------------------------------------------------------

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.3 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

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
Result: CARRIER 2400
PROTOCOL: X.25/LAPB
CONNECT 2400
Enter: CALL R-311020200202
Result: CLR DTE 157 FAC:
X0000C10400000000C208080000000100000062
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.4 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 a 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

EXAMPLE LOG-ON: n/a
---------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.5 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
EXAMPLE LOG-ON: n/a
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.6 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
Result: CARRIER 2400
PROTOCOL: /X.25
CONNECT 2400
Enter: CALL R-311020200202
Result: CON W2:2,P7:7,X 0277, COM
Enter: User ID:
Result: *
Enter: Ctrl-P to return to the PAD command state
Result: CLR CONF FAC:
X0000C104000000103C208000000008800000004
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.7 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 by
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 COM
EXAMPLE LOG-ON: n/a
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.8 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
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.4.9 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
------------------------------------------------------------------------

========================================================================
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. Set-up 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:

Starts 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 your
modem's installation information.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 synchronous mode 4, Hayes AutoSync. The only
exceptions are the modems designed for the Apple Macintosh 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
PC XT, for example) has a synchronous adapter card installed, then a
Hayes standalone products that supports 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 for V-series, OPTIMA and ACCURA EC products. When a
Hayes product attempts 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 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 Hayes products 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 your user documentation.

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

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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/RS-232 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 1.

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

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
standalone Hayes 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 1.

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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A.2.6 Error-control Mode - &Q5

The error-control mode is a feature available between 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 1.

Error-control mode is automatically selected in &Q5 communication mode
(factory setting) for V-series, OPTIMA and ACCURA EC 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 Hayes product cannot complete an error-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 Hayes 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 1,
and the modem's installation information 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 transparent 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 1.

========================================================================
APPENDIX B: TROUBLESHOOTING TIPS

This appendix offers solutions should you encounter any modem
communications problems.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.

************************************************************************
B.1 The Communication Link

Because there is more to the connection than the modem, all of the
components should be verified. Typically, the components
in a communication link are 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 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
installation information and tips before assuming the problem is something
more. The suggestions in this section require some familiarity with the
Hayes Standard AT Command Set, DTE requirements, RS-232/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:

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

* Problems in Establishing Communications
DTE (computer, terminal) 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 communications problem
with the modem.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.2.1 Problems in Getting Started

If a newly-installed modem does not work properly, here are 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, on standalone
modems, if the MR (modem ready) light does not come on, the modem may
have a problem. Or if the HS light 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 (not supported by
all Hayes 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
commands directly to the modem. Some software will not permit direct
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.

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 to restore the modem's factory configuration.

If the modem is a V-series, OPTIMA or ACCURA EC product, try issuing
AT&Q0 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 1) are
returned, the modem is operating as it should. Try changing a few
configuration settings, then resetting the modem with ATZ. 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 to enable command state echo. If characters are double, issue
ATE0 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 was 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: First access the modem's AT command state.

When 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 user documentation
accompanying the modem to determine whether this capability is supported.

DTE Processor Restrictions

Some multitasking 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 Por (ESP*)
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 products that support error-control communications 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 S49 and S50, 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 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 inadvertently sent a
character that stops data transfer. 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 1. In addition, the problem could be the result of
incompatible RS-232/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 Limitations Hayes Soultions
------------------------------------------------------------------------
Can't control DTR or issue Select &D0: Modem ignores changes
escape sequence with guard time in 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
(older IBM Hosts) to handshake negotiation

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

Timing will not support lengthy Select &S2: DSR asserted
handshakes after handshake negotiation, but
(reassociated with some before CONNECT result code is
high-speed modems) 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 Increase S10 setting: Lost
spikes on the telephone line Carrier-to-Hang-UP Delay

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

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

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

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

System must be able to call After accessing the PBX,
past unattended operator positions issue 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
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), a test, when
initiated, will continue for 10 seconds. Setting S18 to zero
(ATS18=0) 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 by issuing the escape sequence
with guard time (+++) and then 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 analog
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 analog 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)

The modem will transmit a continuous tone pair until the 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 that the modem-to-DTE cable is shielded and fully
supports the pin-outs (pin assignments) according to the RS-232/CCITT
V.24 standards described in Appendix C.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 1. The
signals tested by this command are according to the RS-232/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 tests
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 1.

========================================================================
APPENDIX C: MODEM-TO-DTE INTERFACE

This appendix discusses the requirements and capabilities of the modem's
interfaces to the DTE line. Standalone modems interface to the DTE
according to the RS-232 standard. The particulars of this interface used
with Hayes standalone modems are described. Hayes internal modems use the
RS-232 signals, although the specific use of these circuits is determined
by the bus interface of the computer.

************************************************************************
C.1 RS-232/CCITT V.24 Interfaces

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

Although not exactly the same, RS-232 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. RS-232 supports speeds up to 20 Kbps at a
distance of 50 feet. RS-232 falls under layer one (physical layer) of
the OSI (Open Systems Interconnection) model.

Hayes modems support the electrical portion of the RS-232 standard
completely. However, signal definition varies from modem to modem.

************************************************************************
C.2 Signals Used in the RS-232 Interface

The following signal types are used in the RS-232 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 RS-232 signals and their CCITT equivalents are outlined below:

Inter- CCITT Description Pin To DTE To DCE
Change Equivalent
Circuit
------------------------------------------------------------------------
AA 101 Protective Ground 1
AB 102 Signal Ground or 7
Common Return
BA 103 Transmitted Data 2 X
BB 104 Received Data 3 X
CA 105 Request to Send (RTS) 4 X
CB 106 Clear to Send (CTS) 5 X
CC 107 Data Set Ready (DSR) 6 X
CD 108.2 Data Terminal Ready 20 X
(DTR)
CE 125 Ring Indicator (RI) 22 X
CF 109 Received Line Signal 8 X
Detector (DCD)
CG 110 Signal Quality Detector
- not used
CH 111 Data Signal Rate Detect 23 X
(DTE Source)
CI 112 Data Signal Rate Detect 12 X
(DCE Source)
DA 113 Transmitter Signal 24 X
Element
Timing (DTE Source)
DB 114 Transmitter Signal 15 X
Element
Timing (DCE Source)
DD 115 Receiver Signal Element 17 X
Timing (DCE Source)
------------------------------------------------------------------------
************************************************************************
C.3 RS-232 Signal Definitions

This section provides definitions of the signals used for modem
operation. The circuit is first defined according to RS-232, 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 modem case for standalone
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

Standalone modems typically interface to the attached computer or other
DTE through a serial port connector. The connector used on standalone
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 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: APPLICATION SUGGESTIONS

This appendix offers suggestions for developing applications software
using the Hayes Standard 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?). By limiting the AT command controller
portion of the software to work with a known set of modems, you can
limit the complexity of your 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 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 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
Hayes product capable of 9600 bps, which has additional commands and
behaviors.

The I4 command provides a reliable means of communicating
specific features and modulation protocols to software. The responses to
the I4 command are strings delimited by 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 1. The tables show the decoding of the hex-
map returned in the "a", and "b" 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 of different lengths than
previously implemented.

In spite of the modifications to this command necessary to be current
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 . 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 numeric 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
response:

a087840C004424
bF60410000
cUS J
m0000000001001FFFF
OK

Note: Each I4 result is surrounded by ; not all responses are
hex-strings; and some responses may not be expected at all.

************************************************************************
D.2 Result Code Recognition

Modems that are equivalent to Hayes modems support verbose and numeric
forms of result codes. Unless echo may be a problem and you will be
installing the controller in a limited-growth environment, verbose
results rather than numeric results are preferred. 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)
on:

AT ... S9=20

The resulting data, echoed by the modem, would be followed by the
numeric result code zero, meaning OK:

AT ... S9=200

Software may become confused by seeing a 0 result which is actually
part of the command echo, then another 0 which is the numeric
result. A program can become unsynchronized 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 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 following one. This state
machine recognizes strings surrounded by characters and stores
the string in a character array. are defined by S3 and S4.

Sample State Machine
Initialize with: state = 1 ;

ch =
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 */

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
set up 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 set up prior
to running the software, and all the program does is send the Z command
to recall the desired profile. Even more basically, software can assume
the modem 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 command 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.

&F Recall the factory profile.

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 numeric result codes or verbose (recommended)
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 process.

S12=10 Set the escape sequence guard time to 200ms to hasten the
escape for hang-up process. Also reduces the probability of
inadvertent user escapes.

S2=* Change the escape sequence character for two reasons: To
avoid inadvertent user escapes, and to provide different
escape sequence characters for answer and originate ends.
This prevents inadvertent escaping when data is echoed.

S4=* Modify the linefeed character to make the NO
CARRIER result code more unique if you scan for it
to detect carrier loss.

S95=60 Enables the result codes which will provide the maximum
amount of information about the connection when it is
established.

Two typical setup sequences using these recommendations are shown below:

Recommendation for software design based on using pre-existing user
settings:
AT E Q V S0=0 H S12=10 S2=28 S4=31 S95=60

Recommendation for software design based on starting from a known
factory setting:
AT &F S2=28 S4=31 S12=10 S95=60

Note: Where the zero suffix is used, it may be omitted from a command.
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.3.3 Establishing the Desired Connection and Fallback Strategy
(S36 Developers' Tips)

S36 determines which fallback action will occur if the protocols and
procedures set by S46 and S48 do not produce a LAP-based (LAPB) error-
controlled connection.

The optimum fallback control strategy depends on which Hayes error-
control modem you have. The fallback behavior is determined by S36, S46,
S48, and &Q5.

There have been two improvements in the V-series, OPTIMA and ACCURA EC
modems that affect S36: The first added &Q6 Asynchronous Speed Buffering
(ASB); ASB provides the same fixed speed DTE interface and local flow control
as in the error control mode but without the error control or remote
flow control. The second improvement added V.42 with its Alternate
Protocol (MNP).

Previously, S36 only consisted of one bit, Bit 0,
which permitted the user to decide whether the modem would hang up or
not if it did not succeed in negotiating an error-controlled connection.
The factory default for S36 was 1, which meant fall back to direct async
rather than hang up if an error control protocol is not established in
&Q5 mode.

When &Q6 (ASB) was added, a fall back option for &Q5 mode, which can be
controlled with S36, was also added. If S36 Bit 1 is set, and bit 0 is
also set, the modem will fall back to ASB instead of direct async if no
error control protocol is established in &Q5 mode. The factory default
for S36 remained 1.

When V.42 was added, it added another fall back option, MNP, to S36. If
S36 Bit 2 is set, then MNP will be attempted if the primary protocol
selected in S48 is not established. Bit 2 is evaluated before Bits 0,
then Bit 1. If MNP is established as the protocol, then Bits 0 and 1 are
ignored. The factory default became 5 and later was changed to 7 to take
more advantage of ASB.

Now that we know that there are three versions of S36, we may need a way
to tell which version our software is controlling. First, verify that it
is a Hayes error-control modem. This is done by issuing an I4 command
and looking for the existence of a "b-string". A b-string begins with a
lower case letter "b" and is followed by several upper case letters or
numbers forming a hex value.

The easiest way for software to identify whether a Hayes modem
supports Asynchronous Speed Buffering (also known as ASB, Buffered
Async, or Normal) is to issue the following AT command, AT &Q6 &Q5
. If the result code is OK then &Q6 is supported, and ASB is also
supported as a fall back. If the result code is ERROR, then &Q6 is not
supported. If this is the case, then software should be prepared to fall
back to a direct async connection.

The easiest way for software to identify whether a Hayes modem
supports V.42 (and MNP) is to decode the first character after the
leading "b" in the b-string of the I4 ID command response. The
characters following the "b" in that line are "ASCII-hex" (0-9, A-F),
which decode into 4 bits of ID code (3-0). If Bit 3 is set, then MNP is
supported; Bit 2 is V.42.

Armed with the knowledge of which S36 bits are supported, the software
may now safely configure the modem and properly anticipate the fall-back
action.

It should be safe to set S36 bit 2 to enable V.42 (and MNP) even if
those protocols are not supported in the modem.

If the modem does not support ASB, then software should be prepared to
follow the CONNECT XXXXX speed result code and change the DTE port speed
to match the indicated line speed of the direct connection when no error
controlled connection was negotiated.

If software will not change port speeds in response to the CONNECT
message, then when software has identified a 'pre-ASB' modem,
it should set S36 to 0 or 4 so that if no protocol is negotiated, the
modem will hang up.

The following table shows the order in which the bits of S36 are
evaluated: (Remember, these steps only occur after the S46/S48
selections have failed to make a LAPBased error controlled connection in
&Q5 mode.)

------------------------------------------------------------------------
S36 Bit 7-3=0 reserved
First Bit 2 (4) If set, means try MNP protocol; reset means
don't use MNP.
Third Bit 1 (2) If set, means fall back to ASB; reset means
direct async.
Second Bit 0 (1) If set, means fall back based on Bit 1;
reset means hang up.
------------------------------------------------------------------------

The following table shows the meaning of each setting:

------------------------------------------------------------------------
S36=7 Try MNP, then fall back to ASB.
S36=6 Try MNP, then hang up.
S36=5 Try MNP, then fall back to direct async.
S36=4 Try MNP, then hang up.
S36=3 Don't try MNP; fall back to ASB.
S36=2 Don't try MNP; hang up.
S36=1 Don't try MNP; fall back to direct async.
S36=0 Don't try MNP; hang up.
------------------------------------------------------------------------

There are three types of fallback stratagies which Hayes products use.

Type 1: Hayes Modem Operation in &Q5 Communications Mode
Applies to V-series Smartmodem 2400 up to and including Version 1.3 and
V-series Smartmodem 9600 up to and including Version 1.4.

Type 2: Hayes Modem Operation in &Q5 Communications Mode
Applies to V-series Smartmodem 2400 Version 1.4 and V-series Smartmodem
9600 Versions 1.5 and 1.6.

Type 3: Hayes Modem Operation in &Q5 Communications Mode
Applies to all V-series products newer than Types 1 and 2 and all OPTIMA
and ACCURA EC products.

------------------------------------------------------------------------
ATI3 Response contains...
V-SERIES SMARTMODEM 2400 V-SERIES SMARTMODEM 9600
Type 1 04-00005-10 04-00015-10
04-00005-11 04-00015-11
04-00005-12 04-00015-12
04-00005-13 04-00015-13
04-00015-14
Type 2 04-00005-14 04-00015-15
04-00015-16
Type 3 Does not contain any Does not contain any
of the above numbers any of the above numbers
------------------------------------------------------------------------

************************************************************************
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; you may need to change DTE
speed to the indicated baud rate. (See Wn and S95)
CARRIER ____ * DCE carrier speed. (See Wn and S95)
PROTOCOL: ____ * Error-correction protocol being used by the modems.
(See Wn and S95)
COMPRESSION:____ Compression technique in use by modems. (See Wn
and S95)
AUTOSTREAM Autostream technique in use by modems if selected by
user. (See Wn and S95)
------------------------------------------------------------------------

Ignore other responses, but continue to wait for CONNECT ___, BUSY, 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 Hayes 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.

Note: If you want to manually dial a call and then have the modem connect,
enter the command string ATX1D (X1 disables dial tone detection) when you
hear the dial tone.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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
into 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 RS-232 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
RS-232 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 (hangPup) 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 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 OK.

************************************************************************
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 and restore the modem settings.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.5.1 Using the CD line

If you are confident of the communications environment and cabling
requirements, and have access to the RS-232 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 power-up.

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 code 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 NO CARRIER 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 to
undo the effects of your changes. In any case, restoration of the modem
settings is necessary even if the connection was 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 sequence
guard time (specified by S12), then issue the escape sequence 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 sequence 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 sequence
recognition process. It is important that the serial transmitter be
permitted to be idle for the escape sequence 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 sequence characters. After sending
the escape sequence characters, the OK result will be received after
another 200 millisecond wait. This completes the escape sequence 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 RS-232 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. This also requires the cable to be properly wired. Unless the
software will operate in a highly-controlled environment, this technique
is discouraged over using the escape sequence 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 reliable in all environments if it is
properly utilized.

************************************************************************
D.7 Modem Re-configuration

When a 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
issue a Z command option to ensure the modem is restored to its power-up
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 power-up 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 "Tick Count" function will return the number of
vertical-retrace ticks since computer power-up. Each tick represents
1/60 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 = Tick Count( ) + 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.
Some 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 timeout 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 Transparent XON/XOFF Local Flow Control

The use of flow control during error-control modem connections is
essential to avoid loss of data during error-control protocol
retransmissions. Use of flow control allows the DTE-DCE interface to be
run faster than the line speed, permitting the additional benefit of
increased throughput due to stripping of start and stop bits by the
error control protocol and data compression techniques such as V.42bis.
When the interface is run at high speed, data loss due to modem buffer
overrun is quite likely to occur if flow control is absent or not
functioning properly.

Hayes modems support the industry standard "RTS/CTS" hardware
flow control (invoked by the &K3 command) and "XON/XOFF" character-based
flow control (&K4) schemes. However, in some situations, it is not
possible to use either of these. For example, hardware flow control
cannot be used if the DTE serial port does not support the RTS and/or
CTS hardware signals, if corresponding conductors are not present in the
interface cable, or if intermediate equipment does not properly transfer
the RTS and CTS signals. XON/XOFF flow control cannot be used if the XON
and XOFF characters appear in the user data or in the control
information associated with the file transfer protocol in use, since
this would interfere with the use of these characters for flow control,
resulting in failure of data transfer and possibly locking up the
interface.

Hayes addressed these problems in the design of V-series, OPTIMA and
ACCURA EC modems. Desiring to provide a complete solution for all users,
Hayes provided a third flow control scheme, which accommodates systems
which cannot use RTS/CTS but which must transfer data containing the
XON and XOFF characters. This scheme, known as Transparent XON/XOFF
Local Flow Control (invoked by the &K5 command), uses only the Transmit
Data and Receive Data circuits, yet provides for the transfer of all
256 possible 8-bit characters over the interface without interfering
with the flow control scheme.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.1 Summary

Transparent XON/XOFF Flow Control functions on the interface between the
local DTE (computer or terminal) and local DCE (modem). When the data is
placed on the link between the modems, the original characters have been
restored. Neither the remote DTE nor DCE are aware, or need to be aware,
of the fact that Transparent XON/XOFF Flow Control is in use.

Transparent flow control can be viewed as a layered process, organized
as follows. Note that this process is duplicated in the reverse
direction (operates in both directions simultaneously).

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.2 Transparentization

Transparent XON/XOFF Flow Control operates by scanning the data stream
for XON ($11), XOFF ($13), and DLE ($10) characters ("$" indicates
hexadecimal), with either 0 or 1 in the high-order bit position. When
one is found, a DLE with same parity character is inserted ahead of it.
The original character is then "transparentized" by exclusive-ORing the
character with the value $21 (hexadecimal 21, decimal 33, binary
00100001), which preserves the parity bit value. XON and XOFF characters
are thus "hidden" in the data stream.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.3 Flow Control

Once the XON and XOFF characters have been transparentized (hidden), the
DTE and DCE are free to insert XON and XOFF characters for flow control
purposes at any point in the data stream. This includes the possibility
of inserting XONs and XOFFs between a DLE and the following
transparentized character. XON and XOFF characters in the user data will
not interfere with the flow control scheme. The operation of this
XON/XOFF flow control process is identical to traditional XON/XOFF flow
control.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.4 De-Transparentization

In the de-transparentization process, the receiving device scans for
DLEs. When one is found, it is discarded, and the following character is
once again exclusive-ORed with the value $21, recovering the original
character. Note that XONs and XOFFs that appear between the DLE and the
following transparentized character are used for flow control purposes
and do not affect the detransparentization process.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.5 Examples

The following discussion is written in terms of the actions performed by
the computer software. The modem performs identical actions on the
reverse directions of transmission. This text is not meant to constrain
implementation or to imply that better implementations are not possible,
but serves simply as an example.

........................................................................
D.9.5.1 Transmitter Example

Each character in the user data stream is individual examined. It it is
any of the six characters $10, $11, $13, $90, $91, or $93, it is
exclusive-ORed with the value $21, and prefixed by a DLE character
($10). This can also be viewed as a replacement function according to
the following table:

Char Replaced By
------------------------------------------------------------------------
$10 $10 $31
$11 $10 $30
$13 $10 $32
$90 $10 $B1
$91 $10 $B0
$93 $10 $B2
------------------------------------------------------------------------

The characters are transmitted using the parity setting then in force on
the DTE-DCE interface; the XOR with $21 preserves the correct value of
the parity bit.

If the software wants the modem to suspend delivering data, it inserts
an XOFF ($13 at current parity setting) in the transmitted data stream
at any arbitrary point, which may be between a DLE ($10) and the
following transparentized character. The XOFF should be issued BEFORE
the buffer is completely full, since there may be a lag of several
characters before the modem is able to react to the XOFF and suspend
delivery. To resume delivery of data, the software inserts an XON ($11
at current parity setting) at any arbitrary point. Characters inserted
for flow control purposes are NOT passed through the transparency
algorithm defined above.

........................................................................
D.9.5.2 Receiver Example

Each character received from the modem is individually examined. A
"transparency sequence in progress" flag (TSIP-FLAG) is maintained as
part of a simple state machine. The initial value of the TSIP-FLAG is
OFF. The following tests and actions should be undertaken in the order
listed.

If the character received is $13 or $93 (XOFF with either parity), it is
interpreted (regardless of the setting of the TSIP-FLAG) as a request
from the modem for the DTE to suspend transmission of data to the modem.
The receiver portion of the software must communicate this request to
the transmitter portion of the software in a timely manner, since the
modem has a limited amount of buffer space to allow for additional
characters to be received after it sends XOFF (about 64 characters
maximum). The XOFF character is discarded from the received data stream.
The TSIP-FLAG is not changed.

If the character received is $11 or $91 (XON with either parity), it is
interpreted (regardless of the setting of the TSIP-FLAG) as a request
from the modem for the DTE to resume transmission of data to the modem,
if any is available. The XON character is discarded from the received
data stream. The TSIP-FLAG is not changed.

If the character is neither an XON or and XOFF, the following steps are
performed:

If the TSIP-FLAG is ON, the received character is exclusive-ORed with
$21, then delivered to the higher layer for further processing (e.g.,
placed in a receive data buffer). The TSIP-FLAG is then turned OFF.

If the TSIP-FLAG is OFF and the character received is $10 or $90 (DLE
with either parity), the beginning of a transparency sequence is
indicated. The DLE is discarded from the received data stream, and the
TSIP-FLAG is turned ON.

If the TSIP-FLAG is OFF and the character received is neither a $10 nor
$90, the character is a normal untransparentized user data character
which should be delivered to the higher layer for further processing
(e.g., placed in a receive data buffer). The TSIP-FLAG remains OFF
(unchanged).

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.9.6 Conclusion

When properly implemented, Transparent XON/XOFF Local Flow Control
permits a fully-functional flow-controlled interface even when only
three conductors are present (Transmit Data, Receive Data, and Signal
Ground). Versatile software may use the &T19 cable test feature of Hayes
modems to determine whether or not RTS/CTS flow control can be
used, and, if RTS/CTS is unavailable, automatically select &K5 operation
to use Transparent XON/XOFF flow control, and allow the user to continue
to transfer data using any protocol or data contents without concern for
possible interference with the XON/XOFF flow control scheme.

************************************************************************
D.10 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, OPTIMA and ACCURA EC products which specify this with S37).

* Any dependency on proper cabling can be eliminated by avoiding
techniques that depend on RS-232 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, OPTIMA and
ACCURA EC products rather than with RTS/CTS signals.
The escape sequence with guard time process and H command
should be used to hangup instead of terminate 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
00034 ATZ
00068 (one second to do
reset)
01068 0 (V0 stored as
default)
01084 (delay additional 600ms)
01684 ATEQV1S0=0S12=10S4=3HI
01884 ATEQV1S0=0S12=10S4=3HI
(echo)
02084 960
02142 OK
(19200
bps)
02192 ATM0X4L1S12=10S2=1&Q5W1S36
=7S37=9&K5
02206 OK
02209 ATDT9W14045551212
38000 CARRIER
2400
45000 PROTOCOL:
NONE
45010 CONNECT
2400
(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 OK
00538 ATHE1S2=43S12=50W0&Q0
00630 OK
------------------------------------------------------------------------

========================================================================
WHERE TO GO FROM HERE

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 a Hayes Smartcom product. Any Smartcom
program will fully control the modem to support almost any
telecommunication requirements.

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 Hayes Customer Service at the telephone number and/or address
provided with your modem package.