































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<CR>. The modem will send an 
answer carrier signal to the originating modem and wait for an originate 
carrier signal. When the modem receives the carrier from the originating 
modem, the modems go through a`handshaking' process then go on-line. The 
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 <CR>. (Note that <CR> 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, 
ATDT9W5552368!@#71234; <CR> 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 <CR>.

! - 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 <CR>), instructs the modem to return to the command 
state immediately after dialing, without breaking the connection. 

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

------------------------------------------------------------------------
ATDP 5552368; <CR>      Dials bank using pulse method.
OK                      Command executed, but keeps the modem in command
                        state (no carrier handshake takes place).
ATDT 4768; <CR>         Sends an ID code via tones and maintains modem
                        in command state.
OK                      Modem in command state; command executed.
------------------------------------------------------------------------

In this example, the ; differs from the +++ in that the 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<CR> 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 
<CR>. The R modifier directs the modem to act as if it had been sent an 
A command in that part of the command string. 

E - Command State Character Echo Selection

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

-----------------------------------------------------------------------
E0     Command state character echo disabled.
E1     Command state character echo enabled.
-----------------------------------------------------------------------

F - On-line State Character Echo Selection

The F command is used by some Hayes modems, such as Smartmodem 1200, to 
determine whether characters are echoed to the DTE from the modem when 
it is in the on-line state. High-speed Hayes modems do not support the 
F0 option. However, because the F command may be issued by older 
communications software, 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 <CR> and <LF> characters as are required by the 
V command option in effect. According to convention, all <CR> and <LF> 
characters are defined by S3 and S4, respectively. The meanings of the 
a, b, r1, and r3 strings currently defined are described below.

I4 "a" String
The first string, the a-string, is 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 <CR><LF>'s that will be 
used to separate them from other strings. Those 39 additional characters 
are limited to the ASCII-HEX alphabet 0-9 and A-F.

After the two lead-in characters (i.e., r<n>), all subsequent characters 
contain the DTE rate maps. All maps have the same mapping for 
convenience to software. (Refer to the 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 <CR><LF> as 
determined by the V command currently in effect.  If no n (suffix) is 
present, the last register selection is assumed. (Refer to the Sr 
command.) On power up, the factory-set selection is 0. Note 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<CR> from the on-line state, then DCD will 
      return ON just prior to the modem issuing the OK result code. If 
      S10<255 (lost carrier to hang-up delay) and a timeout equal to S10 
      expires before the remote carrier is restored, then the hang-up 
      process begins during which DCD=0. 
      
      DCD will return ON again just prior to the issue of the NO CARRIER 
      result code. If the remote carrier is restored and the S9 delay is 
      completed before the S10 delay expires; then the modem does not hangup, 
      and DCD will go ON again when the modem returns on-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<CR>
      when on-line, DCD will return ON just prior to the modem issuing 
      the OK result code. The modem will not begin the hangup process 
      if S10=255.
------------------------------------------------------------------------

&D - Data Terminal Ready Options

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

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

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

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 <CR> 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<CR> 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     <dial string><CR>
&Z=    <dial string><CR>
&Zn=   <dial string><CR>     ... where n=0-3
------------------------------------------------------------------------

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

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

************************************************************************
1.2     Result Code Listing

This section defines the result codes returned by Hayes modems in 
response to commands.

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

------------------------------------------------------------------------
                  V0            V1
Information Text  text          <CR><LF>
                  <CR><LF>      text
                                <CR><LF>
Result Codes      numeric code  <CR><LF>
                  <CR>          verbose code
                                <CR><LF>
------------------------------------------------------------------------

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

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

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

1 - CONNECT
This result code indicates a connection was made between the DTE and the 
modem. If X4 (extended set of call progress monitoring) were selected, 
the code indicates that a connection from at 0 to 300 bps was made. 
However, if X0 (basic set of call progress monitoring) were selected, 
the connection could be 0-300, 1200, 1200/75, 75/1200, 2400, 4800, 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 (<CR>) - the range for the
register is 0-127. This character is used both as the command line 
terminator and the result code terminator.

S4     Line Feed Character

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? <CR>. 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? <CR>. The modem will report one of the values below.

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

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

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

<CR> End-of-line Character

<CR> 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 <CR>. For example, the command line ATV0 <CR> gets the 
modem's attention, then instructs the modem to display its responses to 
commands (result codes) as numbers.

A/ Repeat Last Command

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

========================================================================
CHAPTER 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 <CR>. 
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 <CR>   OK (PAD channel 1 selected)
AT&O9 <CR>   ERROR (value entered is out of selectable range)
------------------------------------------------------------------------

See the description of the &O command in the "AT Command Listing" in 
Chapter 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 <CR>. 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? [<parameter>][,<parameter>...].
------------------------------------------------------------------------

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

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

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

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

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

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

ACC - Accept Call Command

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

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

Example Format
------------------------------------------------------------------------
ACC [R] [<facility>]
------------------------------------------------------------------------

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

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

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

Call Facilities

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

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

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

CHAN - Channel Selection Command

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

Example Format

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

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

CLR - Clear Channel Command

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

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

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

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

EXEC - Execute String Command

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

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

Sample EXEC Sequence:

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

EXEC> CALL R- 3110 20200202 <CR>

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

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

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

In this EXEC string, the PAD is instructed to:

ANS          Respond to an incoming call request.
PROF VSM     Load the 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 <CR>

the PAD is instructed to:

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

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

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

This message is received by the remote system as:

Welcome to hayes
X.25/dial-up!

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

EXIT - Exit PAD Command

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

EXIT <CR>

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

ATH0 <CR>

This AT command hangs up the modem, breaking the physical connection to 
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
-----------------------------------------------------------------------
<CR/LF>         The remote host has acknowledged the interrupt.
ERR             Virtual connection not established on this channel.
-----------------------------------------------------------------------

PAR? - Read Parameter Command

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

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

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

Parameter     Description
-----------------------------------------------------------------------
<parameter>   Number of specific PAD parameter 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.
<parameter>:INV   Invalid parameter entered. For example, if PAR?40 were 
                  typed, PAR 40:INV would be displayed since 40 is out 
                  of the range 1-22.
------------------------------------------------------------------------

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

If no parameters are specified: PAR? the settings for all twenty-two PAD 
parameters are displayed:

PAR 1:0, 2:0, 3:0, 4:0, 5:0, 6:5, 7:5, 8:0, 9:0, 10:0, 11:14,12:0, 13:0, 
14:0, 15:0, 16:8, 17:24, 18:18, 19:1, 20:65, 21:0,22:0

PROF - PAD Profile Command

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

Example Format
------------------------------------------------------------------------
PROF <identifier>
------------------------------------------------------------------------

Parameter       Description
------------------------------------------------------------------------
<identifier>    Enter the alphanumeric characters that specify the 
                profile to be recalled for the current channel.
                Possible identifiers are:
DEF             Selects the factory default profile.
SIM             Selects CCITT simple standard profile.
TRA             Selects CCITT transparent standard profile.
VSM             Selects 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 <identifier>
------------------------------------------------------------------------

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 <CR> to move to channel 3. At the 
prompt, type in the PAD parameters you want to adjust and store, issuing 
them with <CR>. To save the settings as a profile, issue PROF SAV <CR>.

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

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

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

RPAR? - Read Remote PAD Parameter Command

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

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

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

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

For example, issuing RPAR? 1,4,0,70,71 <CR> displays the current 
settings for the specified parameters of the remote system's PAD. The 
string: RPAR 1:0, 4:0, 0:0, 70:1, 71:0 is displayed.

If no parameters are specified, 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>:<value>] [,<parameter>:<value>] [, ...]
------------------------------------------------------------------------

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

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

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

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

STAT - Status of Current Channel Command

The STAT command displays the current status of a virtual connection.

Example Format
------------------------------------------------------------------------
STAT
------------------------------------------------------------------------

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

SET - Set PAD Parameter Command

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

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

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

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

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

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

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.2.2  PAD Parameters

PAD parameters are used to control the display and transmission of data 
over the packet-switched network. Parameters are of two types: PAD 

Parameters and National 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 <value> multiplied by
           0.05 seconds.
50         50 msec. timeout (factory setting)
------------------------------------------------------------------------

Parameter 5 - Ancillary Device Control

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

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

Parameter 6 - Control of PAD Result Codes

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

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

Parameter 7 - Action on Receipt of Break from Terminal

Parameter 7 is bit-mapped; binary bit values represent the following 
actions when the break signal is received by the PAD.

Values    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 <BS> <SP> <BS> to the DTE (depending on the setting of parameter 
19). If the editing buffer is empty, then no response is sent.

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

Parameter 17 - Line Delete

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

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

Parameter 18 - Line Display

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

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

Parameter 19 - Editing PAD result codes

Parameter 19 provides the PAD information about the attached DTE 
(terminal or printer). This ensures that the PAD sends the proper 
editing character sequences. 

For example, on a printer, the character delete function simply prints a 
backslash (\) for each printable character that is deleted, while 
a terminal is sent a BS-SP-BS sequence to backspace the cursor and erase 
the deleted character from the screen. The PAD uses editing PAD result 
codes for display terminals regardless of the value of parameter 19 
when bit 2 of S53 is set.

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

Parameter 20 - Echo Mask

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

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

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

Parameter 21 - Parity Treatment

This parameter controls the parity and character format used by the 
terminal. 

Values   Description
------------------------------------------------------------------------
0        No parity checking or generation (factory setting).
2        Parity is applied to data sent to the terminal according to
         the parity specified by National 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 <CR>.

CALL is the command for initiating connections with a remote system. 
The (R) command permits reverse charging if the user at the other end
of the virtual connection requests it. 3110 is a network ID code and 
20200202 is the destination address. 

If the call is accepted by the remote system, the network will return 
the result code sequence: CON COM: W2:2,P7:7,X0277 COM. The PAD then 
enters the data transfer state. If the call is not accepted, the 
network returns a response such as CLR DTE 157 FAC: (followed by 
network information as 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 <CR>. 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 <CR> - Leaves PAD command state and enters the AT command state.

Step 7:  Terminating the network connection.

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

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 <address> <facility_codes> COM <user_data>
                  Note: The data in capital letters is sent to you; the 
                  data in angle brackets may or may not be sent to you.
EXAMPLE LOG-ON:   User calls Telenet and issues CALL command to go on-
                  line with CompuServe:
              Enter:     AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR>
              Result:    CARRIER 2400 
                         PROTOCOL: X.25/LAPB
                         CONNECT 2400
              Enter:     CALL R-311020200202 <CR>
              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 <clear_cause_codes> <diagnostic_codes> 
                  <address> <facility_codes>
EXAMPLE LOG-ON:   User calls Telenet and issues CALL command to go on-
                  line with CompuServe:
               Enter:     AT&Q5 S44=3 S46=6 S48=0 W1 DT 9,5550123 <CR>
               Result:     CARRIER 2400 
               PROTOCOL: X.25/LAPB
               CONNECT 2400
               Enter:     CALL R-311020200202 <CR>
               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 
                  <reset_cause_codes>
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 <reset_cause_codes> <diagnostic_codes>
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 <CR>
               Result:    CARRIER 2400 
                          PROTOCOL: /X.25
                          CONNECT 2400
               Enter:     CALL R-311020200202 <CR>
               Result:    CON W2:2,P7:7,X 0277, COM
               Enter:     User ID: <CR>
               Result:    *
               Enter:     Ctrl-P to return to the PAD command state
               Result:    CLR CONF FAC:
               X0000C104000000103C208000000008800000004
------------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 <facility_codes> COM <user_data> 
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 <restart_cause_codes> 
------------------------------------------------------------------------

========================================================================
APPENDIX A  COMMUNICATION OPTIONS

This appendix describes the various methods of communication supported 
by Hayes modems. Set-up recommendations for each of these modes are 
provided. 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<CR>. 

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

Step 2: If you can't see anything you type, or if for any other reason, 
you suspect that the modem's settings may be preventing the connection, 
issue AT&F<CR> to restore the modem's factory configuration. 

If the modem is a V-series, OPTIMA or ACCURA EC product, try issuing 
AT&Q0<CR> to put it into normal asynchronous mode. In this mode, any 
software should talk to the modem. For example, local flow control will 
not be an issue if it is configured for standard asynchronous mode.

Step 3: Try issuing commands to the modem. 

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

Analysis

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

This setting should be changed in the original software.
If the connection 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<CR>), a test, when 
initiated, will continue for 10 seconds. Setting S18 to zero 
(ATS18=0<CR>) disables the test timer (factory setting). Tests are then 
terminated with the &T0 command or by resetting the modem.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.4.3  Testing with Analog Loopback

Use the analog loopback tests if you suspect the modem is causing errors 
in data transmission. The local analog loopback test will verify both 
the local modem and the local data terminal equipment. If this test 
fails, the data terminal equipment rather than the modem may be at 
fault. 

The local analog loopback with self test will verify the 
integrity of the local modem only. If this test fails, the local modem 
is at fault. If the modem passes both of these tests, attempt the remote 
digital loopback with self test to verify the modem-to-modem 
communication path.

........................................................................
B.4.3.1  Local Analog Loopback L3 - &T1

Use the analog loopback test if you suspect the modem is causing errors 
in data transmission. The local analog loopback test will verify both 
the modem and the local computer. If the local analog loopback test 
fails, the local computer may be at fault.

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

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

If the modem echoes your keyboard input to the screen as you typed it, 
the modem is operating correctly. If not, the modem may be faulty. To 
end the test, enter the command state 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) <CR>

The modem will transmit a continuous tone pair until the <CR> key is 
pressed or &T0 is entered to terminate the test.

************************************************************************
B.5  Testing the Cable

The cable (if used to connect the modem to the DTE, rather than through 
an internal slot) is an integral part of the communication link. Even if 
the DTE, serial card, and modem support all of the signals necessary for 
full communications, if the cable supports only transmit and receive 
signals, communication may be limited.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
B.5.1  Cable Quality

High-speed and lengthy distances between the modem and the DTE are two 
reasons to make sure 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 <CR> and beginning with a 
lowercase letter and typically followed by a hex-character bit-map. The 
I0 and I4 responses currently defined are detailed in the description of 
the I4 command in Chapter 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 <CR><LF>. The 
string will begin with a lower-case letter followed by up to 39 
additional characters.

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

*  ERROR, OK, or a 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 <CR>
response:

     <CR><LF>a087840C004424<CR><LF> 
     <CR><LF>bF60410000<CR><LF> 
     <CR><LF>cUS<CR><LF> J
     <CR><LF>m0000000001001FFFF<CR><LF> 
     <CR><LF>OK<CR><LF> 

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

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

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

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

                      AT ... S9=20<CR>0 <CR>

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

Sample State Machine
Initialize with: state = 1 ;

ch = <next character from the input>
switch( state )
{
     case 1:     /*-- Scanning for leading CR --*/
               if( ch == CR ) state = 2 ;
               i = 0 ;
               break ;
     case 2:     /*-- Scanning for leading LF --*/
               if( ch == LF ) state = 3 ;
               else if( ch == CR ) state = 2 ;
               else state = 1 ;
               break ;
     case 3:     /*-- Buffer result, watch for trailing CR --*/
               if( ch == CR ) state = 4 ;
               else buf[ i++ ] = ch ;
               if( i > LIMIT ) state = 1 ;
               break ;
     case 4:     /*-- Scanning for trailing LF --*/
               if( ch == LF ) state = 5 ;
               else if( ch == CR ) state = 2 ;
               else state = 1 ;
               break ;
}
if( state == 5 )
{
     buf[ i ] = 0 ; /* Null terminate buffer */
     <process result in 'buf'>
     state = 1 ;
}

This state machine can be imbedded within a loop that reads all received 
data one character at a time, checks for a timeout, and also checks for 
user abort. Once a result is recognized, that loop can be exited or 
continued if additional results are expected.

Once a result code string is returned, it can be compared against the 
known result code strings. Some strings may incorporate wild-card 
suffixes. For example CONNECT followed by any numeric value indicates a 
successful connection at the indicated transmission rate. Even if a 
result such as CONNECT 38400 is not anticipated, if the controller has 
been coded for wild-card recognition, the controller will be capable of 
interpreting such responses correctly. This practice also facilitates 
interpretation of connection failed messages that are preceded by NO 
followed by any other character string such as DIALTONE, CARRIER, or 
ANSWER.

************************************************************************
D.3  Modem Preparation

Once the modem has been identified, the controller can continue to 
program any registers or user-defined values into the modem necessary 
prior to initiating the connection process. Typically, the setup 
operation is separated from the connection processing because it is 
performed independently of whether the call establishment will be in the 
originating or answering mode.

Setup commands can be issued at the highest transmission rate the modem 
supports as determined from the identification process or it may be 
fixed at a certain value if the modem is not identified.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
D.3.1  Reset

Before issuing any other commands to the modem, it is advisable to issue 
a Z or &F command to the modem before the identification or setup 
process. No specific response should be anticipated. The modem may be 
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 <CR><LF>NO 
           CARRIER<CR><LF> 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 <CR>

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 
<CR>. 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<CR> to abort an in-progress connect command. 
This elicits a result code regardless of whether the modem were off-hook 
or not. If the modem was off-hook attempting to connect, this will abort 
the connect operation and return NO CARRIER. If the modem was on-hook in 
command mode, this simply returns <CR><LF>OK<CR><LF>.

************************************************************************
D.5  Carrier Loss Detection

You want your application to be able to detect when the carrier has been 
lost so you can determine when the connection is complete. You might be 
unable to put this part of the code in your controller software, since 
the controller is typically running only during the connect or hang-up 
process. Once the application has detected the carrier loss event, it 
can call the modem controller 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 <CR><LF>NO CARRIER<CR><LF> result 
code. If a match is found, the carrier lost event is triggered.

By only checking when there is idle time, or after no data has been 
received for a while, you reduce the CPU overhead and ensure that the 
modem is not falsely triggered when the string is imbedded in an actual 
data stream.

You can also modify the linefeed character by using S4 to a different 
value such as S4=31 to make the result code sequence more unique. This 
action, however, affects other result codes generated by the modem.

************************************************************************
D.6  Escape and Hang Up

When your controller has been instructed to terminate the connection, 
you must put the modem back in command state and issue the hang-up (H) 
command. In addition to hanging-up, you will also want to restore 
settings you changed to their factory-set values, or issue an ATZ<CR> to 
undo the effects of your changes. In any case, 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<CR>                        
00034                                              ATZ<CR>
00068                                             (one second to do 
                                                   reset)
01068                                             0<CR> (V0 stored as 
                                                   default)
01084     (delay additional 600ms)
01684     ATEQV1S0=0S12=10S4=3HI<CR>          
01884                                             ATEQV1S0=0S12=10S4=3HI
                                                  <CR> (echo)
02084                                             <CR><LF>960<CR><LF> 
02142                                             <CR><LF>OK<CR><LF>
                                         (19200
                                          bps)     
02192     ATM0X4L1S12=10S2=1&Q5W1S36
          =7S37=9&K5<CR>
02206                                             <CR><LF>OK<CR><LF> 
02209     ATDT9W14045551212<CR>
38000                                             <CR><LF>CARRIER 
                                                  2400<CR><LF>
45000                                             <CR><LF>PROTOCOL: 
                                                  NONE<CR><LF>
45010                                             <CR><LF>CONNECT 
                                                  2400<CR><LF>
                                        (2400 
                                        bps)
                                        
(Connection Established)
-----------------------------------------------------------------------
                                        (2400 
                                         bps)
00000     (delay 300ms, need 200, add 
          100 for safety)
00300     (escape char is ^A, S2=1)
00313                                              (waits 200ms)
00513                                              <CR><LF>OK<CR><LF>
00538     ATHE1S2=43S12=50W0&Q0<CR>
00630                                              <CR><LF>OK<CR><LF> 
------------------------------------------------------------------------

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