586 lines
30 KiB
Plaintext
586 lines
30 KiB
Plaintext
=================================================================
|
|
COLUMNS
|
|
=================================================================
|
|
|
|
Host net 508, Node:508/4 Tel. int+55 421284
|
|
Ignaat Simons
|
|
Chopinlaan 3
|
|
7333GA Apeldoorn Netherlands
|
|
|
|
HAYES modems and compatables.
|
|
|
|
|
|
1. Introduction.
|
|
|
|
In the world of modem freaks and slowly on in the industrial
|
|
world, the HAYES modem is a defacto standard.
|
|
|
|
The official standards like RS232c (USA) and V24/V28 (CCITT)
|
|
describe the Physical part of a data circuit, while the V25
|
|
(CCITT) describes the A(uto) C(call) U(unit) function. The
|
|
speeds and usage of the modems are laid down by the CCITT V-
|
|
standards, mainly in the V21 till V36 books.
|
|
|
|
Due to the different country and telephone company laws,
|
|
modems are different and not compatable with each other,
|
|
exept modems of one vendor. Some years ago, it was very
|
|
unwise to make a connection with two different modems, even
|
|
if they claimed to be according a V-xx norm. Mostly this
|
|
was no problem, because a data transport was mainly between
|
|
two predefined points via a leased line or switched network.
|
|
The connection was buildup manual, or made automatic via
|
|
autocall function ACU (V25/RS232).
|
|
|
|
The HAYES-300 modem (I think this was the start), besides
|
|
the Physical RS232/V24/V28 norm did specify the modem
|
|
control command level between modem and terminal via the AT
|
|
leadin and the <silence>+++<silence> command to return from
|
|
a data state to the command state. Also it describes the
|
|
handling of automatic speed detection. This command set
|
|
enables operators and application programmers to buildup a
|
|
connection via normal conversation. As it could be
|
|
programmed, the connection via a switched network was
|
|
possible automatical via simple statements like "CALL John".
|
|
The original HAYES-300 was not using call procedures like
|
|
108/1 or 108/2 (DTR circuit). With the HAYES-1200, this
|
|
command set was extended to cope with more than one line
|
|
speed, the BELL 103 and BELL 212A. The last one more or less
|
|
compatable with the CCITT V22 norm. Also the automatic speed
|
|
selection in 'answering' mode was build in. With the HAYES-
|
|
2400, the set was dramatically extended with three speeds,
|
|
BELL-103, BELL-212A and the CCITT V22 and V22bis norms. So
|
|
handling also in 'answering' mode an automatic selection. As
|
|
the BELL-212A and V22 uses a PSK (four-level phase shift
|
|
keying) and V22bis uses QAM (Quadrature Amplitude
|
|
Modulation) technic, which were designed for synchronous
|
|
modems, the HAYES-modem translates the asynchrone data into
|
|
|
|
|
|
a synchronous way by inserting and consequently removing a
|
|
STOP bit in periods where no character is send. The HAYES-
|
|
1200 is not compatible with the BELL-212A/V22 synchronous
|
|
modems. The HAYES-2400 is also in this aspect compatible and
|
|
serves also the formal Half duplex (RTS/CTS-handling). As
|
|
the HAYES-1200 did serve only the CCITT 108/2 mode, the
|
|
HAYES-2400 supports also the 108/1 mode. Really you can say,
|
|
the HAYES-2400 is a complex intelligent unit. Despite the
|
|
well written handbook of HAYES, it is a hard job to make a
|
|
compatible one. From all modems (compatibles) I have seen,
|
|
there are a few which come close to the HAYES, the most are
|
|
fare away.
|
|
|
|
As my job is Faultfinder (Support), I really was very
|
|
pleased, HAYES did implement in the HAYES-2400, a really
|
|
complete circuit test via the S16-register, even with remote
|
|
commands, so the fully V54 norm of CCITT. As most Hobbyist
|
|
but even profesionals have big problems with reliable
|
|
circuit connections, and more the solvation of it, a modem
|
|
without this feature nowadays isn't worth the word MODEM so
|
|
certainly not the word HAYES.
|
|
|
|
2. HAYES-clones.
|
|
|
|
What is "compatible". Really nothing if not exactly said
|
|
with WHAT. "HAYES compatible" is to vaque. "HAYES command
|
|
set compatible" is better. Most modems, so not all, are only
|
|
compatible with a "subset of HAYES command set". But also
|
|
most "hayes" modems have commands not existing with hayes.
|
|
Some unlucky vendors did use commands or registers not used
|
|
with hayes-1200 at that time, but later used in the HAYES-
|
|
2400. (Bad Ques).
|
|
|
|
The best I can say most of the better clones are more or
|
|
less compatible upto HAYES-1200.
|
|
|
|
As I don't know if besides HAYES-1200 and the HAYES-2400,
|
|
also a HAYES-300 exists, I further only refer to this two,
|
|
from which both I have the specifications. In Europe a lot
|
|
of 'hayes' modems with only the V21 and V23 speeds exists,
|
|
which are similar, but absolute not connectable, with the
|
|
BELL-103 and BELL-202 norm modems.
|
|
|
|
As most application programs only use a small set of the
|
|
HAYES-command set, most clones will run with these packages
|
|
such that the user is pleased, not to use his fingers and
|
|
ear to make a connection. This if he has a user friendly
|
|
telephone company (are there), but mostly the results are
|
|
hopeless in peak hours, if there is a mismatch between the
|
|
modem commands and the terminal commands. I had a modem and
|
|
a terminal program and on some day no nice CALL <my mother>
|
|
was succesfully. With finger and ear there was no problem.
|
|
Reaction of the terminal was "BUSY". The real point was, the
|
|
modem did not pickup in ATX2 mode the dial tone from the
|
|
Telephone company, so didn't start dialling. As the modem
|
|
had not a speaker (for cheapness), I could not use the ATM1
|
|
|
|
|
|
command, to follow the connection process. The dial signal
|
|
was strong enough, but the frequency was a little ouside
|
|
(WHO's) specification.
|
|
|
|
3. The HAYES set.
|
|
|
|
With this I hope, without copying the whole 250 pages of
|
|
both Hayes handbooks, to give enough information to
|
|
understand the HAYES-set and the differences.
|
|
|
|
Hayes propose to use as terminal program, the Hayes Smartcom
|
|
II Version 2.1.
|
|
|
|
3.1. The Physical DCE/DTE-lines.
|
|
|
|
With DTE is meant the Data Terminal Equipment (Your terminal
|
|
or Host computer) and with DCE the Data Circuit
|
|
(termination) Equipment (all equipment between two modems
|
|
RS232 plugs). The HAYES-1200B is the 1200 type but as a card
|
|
to be fitted into an IBM-PC. The same for HAYES-2400B.
|
|
|
|
The pin assignments must be in accordance to ISO 2110.
|
|
|
|
Pin # Circuit Towards Description 1200 2400
|
|
EIA/CCITT
|
|
1 AA 101 N/A prot. ground x x
|
|
7 AB 102 N/A signal ,, x x
|
|
|
|
2 BA 103 DCE transmit data x x
|
|
3 BB 104 DTE receive data x x
|
|
|
|
4 CA 105 DCE request to send x
|
|
5 CB 106 DTE clear to send H x
|
|
6 CC 107 DTE data set ready R x
|
|
20 108.1 DCE connect data set x x
|
|
20 CD 108.2 DCE data term. ready x x
|
|
22 CE 125 DTE ring indicator x x
|
|
8 CF 109 DCE data carrier detected x x
|
|
23 CI 112 DTE select altern. rate x
|
|
12 CI DTE as previous (Bell212) x x
|
|
|
|
24 DA 113 DCE TX-clock (DTE source) x
|
|
15 DB 114 DTE TX-clock (synchr.) x
|
|
17 DD 115 DTE RX-clock (synchr.) x
|
|
|
|
Remark: x means served by the modem.
|
|
H means tied to +10 volt (True).
|
|
R means tied to pin 8.
|
|
Pin 20 (DTR) can be simulated in the 1200 and
|
|
1200B type with a dipswitch.
|
|
Pin 6 and 8 can be forced to true in the 1200
|
|
and 1200B type with a dipswitch.
|
|
|
|
3.2. The telephone line.
|
|
|
|
On the telephone lin level some distinction can be made on
|
|
|
|
|
|
the HAYES-2400, between jack type RJ12/RJ13 (multi line
|
|
jack) and the RJ11/RJ41S/RJ45S (single line jack). The 1200
|
|
only supports the RJ11 (single line), RJ12/RJ13 (multi
|
|
line), which can be set by dipswitches. This typically is
|
|
different per country. In the USA and some other countries,
|
|
the telephone set remaines connected in parallel to the
|
|
modem. In other countries like the Netherlands the telephone
|
|
set is switched of, as soon as the modem goes off-hook.
|
|
|
|
3.3. The modulation frequencies and call setup phase tones.
|
|
|
|
The following information is not exactly the HAYES-modem
|
|
information, but a hopefully readable extract from the
|
|
CCITT-norms. As I have not the Bell-norms, more or less the
|
|
USA norms are deducted from other documents.
|
|
|
|
The frequencies used with the different baudrates are:
|
|
|
|
3.3.1. For the F(requency) S(hift) K(eying) methodes.
|
|
These can be used as well as Synchrone.
|
|
|
|
Norm Send Receive Answ. mode
|
|
'0' '1' '0' '1' tone
|
|
Bell-103(ORG) 1070 1270 2025 2225 1270 300 FD
|
|
Bell-103(ANS) 2025 2225 1070 1270 2225 300 FD
|
|
Bell-202(main) 2200 1200 2200 1200 2025 1200 HD
|
|
Bell-202(back) 487 387 487 387 - 0-150 HD
|
|
V21 (ORGinate) 1180 980 1850 1650 980 300 FD
|
|
V21 (ANSwer) 1850 1650 1180 980 2100 300 FD
|
|
V23-1 (main) 1700 1300 2100 1300 2100 600 HD
|
|
V23-2 (main) 2100 1300 1700 1300 2100 1200 HD
|
|
V23 (back) 450 390 450 390 - 0-150 HD
|
|
Remark: '0'= "start bit" = "space"
|
|
'1'= "stop bit" = "mark"
|
|
FD = Full Duplex, HD = Half Duplex.
|
|
|
|
Important is, the modems use filter technics to seperate
|
|
the transmit channel and receive channel. Some autoanswering
|
|
modems also by filter technics decide in which mode they are
|
|
called.
|
|
|
|
3.3.2. Automatic answering sequence (V25).
|
|
|
|
If ringing is received on the line, the CE/CT125 circuit
|
|
(pin 22) will be raised true. If CD/108 circuit was true,
|
|
the modem goes OFF-HOOK. If not the modem waits for a true
|
|
signal on CD/108 (pin 20), before it goes OFF-HOOK. The
|
|
modem remains after 'off hook', for 1.8-2.5 sec. silent and
|
|
then transmits the 2100 Hz. answer tone during 2.6-4.0 sec.
|
|
or till 100msec. after a response from the calling station.
|
|
At least now 75 msec. silence is maintained. The 2100 Hz is
|
|
intended to disable network echo cancellers or echo
|
|
suppressors and is reversed in phase every 425-475 msec. Now
|
|
the circuit CC/107 (pin 6) is set true to indicate to the
|
|
terminal, a connection is ready. The calling modem reacts on
|
|
the answer tone also by setting circuit CC/107 (pin 6) true.
|
|
|
|
|
|
A response normally as mentioned is the frequency of a
|
|
binary '1'. If the equipment of the telephone company does
|
|
not have echo control devices, the 2100 Hz tone may be
|
|
replaced by any other tone e.g. directly the binary '1'.
|
|
Only after this sequence (or in ommission of it) directly
|
|
the autospeed modems will determine the baudrate norm. In
|
|
Europe, with its V23-splitbaud rate complexity, there are
|
|
Hayes compatibles trying to select at the moment after the
|
|
answer sequence to select: V21, V23 (viditel), V22 and
|
|
V22bis. This means actually a detection criteria for carrier
|
|
frequencies at 980/1180 (V21), 450/390 (V23) and 1200
|
|
V22(bis) modulated with 600 baud. At the same time all kind
|
|
of frequencies like 2100, 550, 1800 Hz. and busy tone, dial
|
|
tones around 425 Hz. has to be ignored.
|
|
|
|
3.3.3. For the D(iferential) P(hase) S(hift) K(eying)
|
|
and the Q(uadrature) A(mplitude) M(odulation) methodes.
|
|
|
|
These methodes are primarly for synchrone transmission, but
|
|
asynchrone is allowed by inserting extra stop bits between
|
|
characters.
|
|
|
|
Norm Send Rec. Guard tone Mode Methode
|
|
|
|
V22 (ORG) 1200 2400 - 600/1200 FD DPSK
|
|
V22 (ANS) 2400 1200 1800(550) 600/1200 FD DPSK
|
|
V22(bis) (ORG) 1200 2400 - 1200/2400 FD QAM
|
|
V22(bis) (ANS) 2400 1200 1800(550) 1200/2400 FD QAM
|
|
Bell-212A (ORG) 1200 2400 - 1200 FD DPSK
|
|
Bell-212A (ANS) 2400 1200 - 1200 FD DPSK
|
|
|
|
The guard tone is only send in the high channel (2400 Hz.
|
|
carrier, so by the answering modem, but can be disabled per
|
|
country. The 550 guard tone is another option. Basically
|
|
the Bell-212 and the CCITT-V22 are the same. But in detail
|
|
there are differences. Which, I don't know yet for sure, it
|
|
may be the scrambled '0' instead '1's (see lateron). But in
|
|
the HAYES-2400, there is a command ATBn, with which the
|
|
BELL-212 (n=1) or V22 (n=0) is selected. This only for the
|
|
1200 baud FD mode. The V22bis is fully compatible with the
|
|
V22 norm. The difference between V22 (600/1200 baud) and
|
|
V22bis (1200/2400 baud) is V22 works with 2 dibits and
|
|
V22bis with quadbits. The way of working of PSK/QAM modems
|
|
is to complex to explain here, but it is important to know
|
|
that a phase change of the modulated carrier of:
|
|
|
|
0 degrees is equal to dibit 01
|
|
90 degrees is equal to dibit 00
|
|
180 degrees is equal to dibit 10
|
|
270 degrees is equal to dibit 11
|
|
|
|
These first two bits in the V22bis quadbit are compatible
|
|
with the dibits of V22, to remain compatabilty for fallback
|
|
mode. The V22bis has another 4 levels of detection by means
|
|
of a quadrature amplitude modulation technic.
|
|
|
|
|
|
|
|
3.3.4. Automatic answering mode V22(bis).
|
|
|
|
At calling time the sequence as described above with the FSK
|
|
type modem is valid for the V22(bis). The called modem
|
|
reacts instead or after the answer sequence with unscrambled
|
|
binary '1's at 1200 bit/sec. and well in the upper channel
|
|
(2400 Hz. carrier). This till it detects scrambled '0' or
|
|
'1's in the lower channel (1200 Hz. carrier). The calling
|
|
modem remains silent till it for 155 msec. detects
|
|
unscrambled '1's in the upper channel, after which it
|
|
remains silent for 456 msec. and then transmit unscrambled
|
|
double dibits 00 and 11, if in V22bis mode, for 100 msec.
|
|
followed by scrambled binary '1's or if in V22 mode it
|
|
transmits direct scrambled binary '1's (*). Here the
|
|
distinction 1200/2400 baud is made by the calling modem. The
|
|
called modem reacts with scrambled '1's preceded, if V22bis
|
|
with the unscrambled double dibit 00 and 11. At the moment
|
|
of detection of the double dibits, the circuit CI/112 (pin
|
|
12) is set true (indicating 2400 baud). In both cases the
|
|
scrambled '1's are observed for 600 msec. after which the
|
|
circuit CF/109 (pin 8) is set true. If V22 (1200) the data
|
|
transfer is started under control of CA/104 (pin 3). In the
|
|
V22bis mode (2400), first scrambled binary '1's are send
|
|
form both sides for 200 msec. on 2400 bit/sec. mode. Noted,
|
|
that till now all was transmitted on 1200 bit/sec. After
|
|
this 200 msec. also the V22bis mode is ready for data
|
|
transfer.
|
|
|
|
I know it is confusing, but so it works. To make it more
|
|
difficult, the (*) mentioned in the text is true for V22bis
|
|
and for V22 alternative A and B only. For V22 alternative C,
|
|
for the '1's you have to read '0's. As the V22 norm is very
|
|
confusing on some aspects, one remark has to be made. In V22
|
|
(not V22bis) 3 alternatives can be selected. Alternative A
|
|
and B are compatible with V22bis, but alternative C not. The
|
|
difference is the scrambled binary '0's stead '1's of the
|
|
calling modem. So the real difference between alternatives
|
|
A/B and C is, that alternative C includes the possibility
|
|
for mode V, for anisochronenous data upto 300 bit/sec. Which
|
|
manufacturer tells me which alternative as mentioned in V22
|
|
he serves. Or has this to do with the Bell-212 norm. Who can
|
|
tell? Has this to do with the famous ATBn command in the
|
|
HAYES-2400 modem? See above.
|
|
|
|
Be carefully with these V22 and Bell-212A norms. As
|
|
explained before only the 2400 baud (V22bis) is compatible.
|
|
The 1200 sometimes works, but sometimes not. E.g. I had an
|
|
USA RIXTON 212 modem, not corrected for the European market.
|
|
Also I had a Dutch designed (DATAD) V22(bis) V23 and V21
|
|
modem and an English (PACE) for the same speeds. The RIXTON
|
|
works pretty most at the time with both the DATAD and PACE
|
|
modem. But sometimes it goes wrong and the Eurpeans connects
|
|
at 2400, which is strange, but true. With an original HAYES-
|
|
1200 (with no ATBn) command as the HAYES-2400 has, nearly
|
|
the same result. The two Europeans hardly are connectable at
|
|
1200 baud to each other. This has in my opinion to do with
|
|
|
|
|
|
the way of speed selection. We try to come out of this
|
|
struggle.
|
|
|
|
3.4. Some advise on real physical level.
|
|
|
|
If you are ggiing into communications with modems and you
|
|
have no Telecomfreak-friend close to you and you want no
|
|
nervous breakdown in the near future, have at least a
|
|
"breakbox", self made or from the shop. This to follow the
|
|
different DTE/DCE levels. If you want to log a HAYES session
|
|
to evaluate the connection process or data exchange process,
|
|
make from your old computer a "DATASCOPE". (See Appendix A
|
|
for some suggestions). An other advise is to standardise
|
|
your cable set. As some manufactures make a mash of the V24
|
|
or RS232C pins, you have not to follow it. On telephone
|
|
line level it is handy to have in your surrounding a scope
|
|
or frequency counter.
|
|
|
|
3.5. Connection of the terminal to the HAYES.
|
|
|
|
The Hayes modem has a minimum and a maximum baud rate. If
|
|
you connect a terminal to the modem, make sure you have the
|
|
right pins connected in relation with the dipswitches. Also
|
|
if you have selected e.g. 108/2 mode, be sure your terminal
|
|
program support them. It is possible to connect only the
|
|
pins 2,3 and 7. So in this case the DTR and the DCD are
|
|
forced true. In general I don't like this methode. With the
|
|
Hayes-1200, RTS and CTS are not used, so only full duplex is
|
|
possible. With Hayes-2400 you have to use these signals only
|
|
if you use the Half Duplex mode (Synchrone mode). Otherwise
|
|
RTS (pin 4) is neglected and CTS (pin 5) is set true.
|
|
|
|
So if you have connected the terminal properly, at the time
|
|
you give an 'A' or 'a', the modem decides what the baudrate
|
|
is and set the terminal interface UART according to it.
|
|
Hayes is very street forward. This speed is maintained till
|
|
after the <carriage return>, which always finishes a command
|
|
line. With the next A from a new AT command line, a new
|
|
speed can be defined. There is one other possibility. In
|
|
auto answer mode or if a call is made, the baudrate can be
|
|
else as the speed in the last passed command mode. This on
|
|
real modem level, the baudrate detection selects another
|
|
speed. The Hayes reacts with the connect code on this last
|
|
command mode speed and than switches to the new speed. To
|
|
give an example. Suppose the terminalspeed is 2400 baud. A
|
|
dial is made towards a 1200 baud only modem. The Hayes will
|
|
start the connect phase as described in 3.3.2. but finally
|
|
will get a connection on 1200 baud. So he will react towards
|
|
the terminal with 2400 baud with 'CONNECT' or '1', switches
|
|
back to 1200 baud, which the terminal has to follow,
|
|
otherwise it result in a terminal/modem mismatch. Also a
|
|
<silence>+++<silence> on 2400 baud will not be accepted.
|
|
Only 1200 baud, from this moment on. So suppose the
|
|
established call at 1200 baud is broken. The Hayes will,
|
|
after the carrier disappear, fall back into command mode
|
|
still in 1200 baud. The terminal has to give an AT<string>
|
|
|
|
|
|
on 2400 baud if it wants the original 2400 baud connection
|
|
again.
|
|
|
|
3.6. The differences in the Hayes command set.
|
|
|
|
Very short a comparision between HAYES-1200 and HAYES-2400
|
|
modem will be given and only per command a short functional
|
|
recoqnition. First however the Hayes command-input line. It
|
|
starts with AT or at (no mix of UPPER/lower) and ends with a
|
|
cariage return from now on indicated with <CR>. The only
|
|
exeption is the A/ command, which needs no <CR>. During
|
|
commandline editing backspace (hex '08') is accepted. One or
|
|
more commands can be given after one leading AT. The max.
|
|
length of the input string however is 40 char.
|
|
Blanks can be inserted for more readability.
|
|
|
|
Command. What does it. Hayes-1200 Hayes-2400 Return code
|
|
|
|
AT Attention y y OK
|
|
A/ Repeat last comm. y y depends
|
|
A Off hook (ANS) y y none (data)
|
|
Bn 1200 (V22/Bell) - n=0-1,1 OK
|
|
Cn TX off/on n=0-1 - OK
|
|
D<modif> Dial y y see modifier
|
|
En Echo off/on(comm) n=0-1 n=0-1,1 OK
|
|
Fn Echo off/on(data) n=0-1 - OK
|
|
Hn Hook on/off/spec. n=0-2 n=0-1 none (data)
|
|
In prod.code/prom-cc n=0-1 n=0-2 info
|
|
Ln Speaker (L/M/H) - n=0-2,1 OK
|
|
Mn Speaker off/on n=0-2 n=0-3,1 OK
|
|
On Online only O n=0-1 none (data)
|
|
P Set pulse dial y y OK
|
|
Qn Result code Y/N n=0-1 n=0-1,0 OK
|
|
Sr=n Set reg. r to n r=0-16 r=0-27 OK
|
|
Sr? Display reg. r r=0-16 r=0-27 contents r
|
|
T Set touch dial y y OK
|
|
Vn Result code N/W n=0-1 n=0-1,1 OK
|
|
Xn Dial process n=0-1 n=0-4,4 OK
|
|
Yn Long disconn. - n=0-1,0 OK
|
|
Zn Reset only Z n=0-1 OK
|
|
|
|
&Cn DCD on/carrier - n=0-1,0 OK
|
|
&Dn DTR modes - n=0-3,0 OK
|
|
&F Load factory set - y OK
|
|
&Gn Gaurd tone - n=0-2,0 OK
|
|
&Jn RJ-jack sel. - n=0-1,0 OK
|
|
&Mn Asynch./Synchr. - n=0-3,0 OK
|
|
&Pn Pulse ratio - n=0-1,0 OK
|
|
&Rn CTS mode - n=0-1,0 OK
|
|
&Sn DSR mode - n=0-1,0 OK
|
|
&Tn Test local/remote - n=0-8 OK
|
|
&V Display conf/tel - y OK
|
|
&Wn Write conf. MOS - n=0-1 OK
|
|
&Xn Line clock mode - n=0-2,0 Ok
|
|
&Yn Sel. default prof.- n=0-1 OK
|
|
&Zn Store teleph. nr. - n=0-3 OK
|
|
|
|
|
|
Remark: n=0-2,1 means, n can be 0,1,2 and 1=default.
|
|
If n=0 this may ommitted. (ATV0 equal to ATV).
|
|
All numbers are in decimal (max.=255).
|
|
|
|
Dial What does Hayes-1200 Hayes-2400
|
|
Modifier it
|
|
P Pulse dial y y
|
|
R Reverse to ANSW y y
|
|
Sn Dial stored tel. - n=0-3
|
|
T Touch dial y y
|
|
W Wait 2e dialtone - y
|
|
. Pause y y
|
|
! Flash - y
|
|
@ Wait for silence - y
|
|
; Return to comm. y y
|
|
|
|
The registers.
|
|
Reg. What does it. Hayes-1200 Hayes-2400
|
|
S0 Ring to answ.on 0-255 0-255,00
|
|
S1 Ring count 0-255,00 0-255,00
|
|
S2 Escape code 0-127,43 0-127,43 ASCII
|
|
S3 Cariage return 0-127,13 0-127,13 ASCII
|
|
S4 Line feed code 0-127,10 0-127,10 ASCII
|
|
S5 Back space code 0-127,08 0-127,08 ASCII
|
|
S6 Wait for dial tone 0-255,02 0-255,02 Sec.
|
|
S7 Wait for carrier 1-30,30 1-30,30 Sec.
|
|
S8 Pause time comma 0-255,02 0-255,02 Sec.
|
|
S9 Carrier detect time 1-255,06 1-255,06 1/10 Sec.
|
|
S10 Lost carrier time 1-255,07 1-255,14 1/10 Sec.
|
|
S11 DTMF dialing speed 50-255,70 50-255,95 mSec.
|
|
S12 Escape code guard 0-255,50 0-255,50 1/50 Sec.
|
|
S13 UART status reg. y y
|
|
S14 Option reg. y x'AA'
|
|
S15 Flag reg. y y
|
|
S16 Modem test 0-2,0 bit settings
|
|
S17 res. - res.
|
|
S18 Modem test time - 1-255,00 Sec.
|
|
S19 Res. - Res.
|
|
S20 Res. - Res.
|
|
S21 Bit mapped options - 00
|
|
S22 Bit mapped options - x'76'
|
|
S23 Bit mapped options - 07
|
|
S24 Res. - Res.
|
|
S25 Detect DTR change - 0-255,05 1/100 Sec.
|
|
S26 RTS to CTS delay - 0-255,01 1/100 Sec.
|
|
S27 Bit mapped options - x'40'
|
|
|
|
Remark: 1-255,01 means, range 1 till 255, 01=default.
|
|
All numbers are in decimal (max.=255).
|
|
x'76' is hexadecimal.
|
|
|
|
|
|
|
|
Return codes Hayes-1200 Hayes-2400
|
|
Digit Word
|
|
0 OK y y
|
|
1 CONNECT y y
|
|
2 RING y y
|
|
3 NO CARRIER y y
|
|
4 ERROR y y
|
|
5 CONNECT 1200 y y
|
|
6 NO DIALTONE - y
|
|
7 BUSY - y
|
|
8 NO ANSWER - y
|
|
9 reserved - -
|
|
10 CONNECT 2400 - y
|
|
|
|
========
|
|
|
|
Appendix A. Datascope.
|
|
|
|
A datascope looks to both the RXD and the TXD line of a
|
|
V24/RS232C line. So only follows what happens on the line.
|
|
There are very nice commercial packages as FELINE, HP etc.,
|
|
but they are expensive and they use mostly a special POD to
|
|
connect to the V24 line. Most of them you have to preset on
|
|
one speed and than to start the logging.
|
|
|
|
If you have an old computer with better two speed
|
|
programmable UART or a SIO chip and you can program them in
|
|
Assembler/basic/pascal or C, you can make your one one.
|
|
|
|
The next story is a simplified logunit only to log
|
|
datastreams preceded with a AT-string. Most of the
|
|
application programs works in terminal session as well
|
|
|
|
filetransport in a half duplex mode. Or better, never the TX
|
|
and RX line transports a character. So basically in default
|
|
you have to look to the TXD-line, and look at 2400 baud for
|
|
a character x'41','06', '78' or '01'. At that moment you
|
|
know that probably the speed is 2400, 1200, 600 or 300 baud.
|
|
You get on line speeds 600 and 1200 a framing error, because
|
|
the stop-bit is not detected. Now depending the detected
|
|
speed you have to wait (time-out) till the rest of the
|
|
character is passed, then you have to change the speed of
|
|
your comm-port, and await for the 'T', If it is a 'T' than
|
|
you have the speed, if not wait on 2400 baud for the
|
|
posibilities as described above. The basic idee behind this
|
|
is really simple. If you listen with 2400 bit/sec to a 300
|
|
bit/sec send character, the start bit is detected and will
|
|
serve for the startbit and 7 bits char. bits (so 7 zero
|
|
bits). The eights char. bit is formed of the LSB bit and
|
|
well 1/8 portion of it. The second portion will be the stop
|
|
bit. So if on the line really is transmitted a 600 bit/sec
|
|
char., the same is true with 1/4 portions. Furthermore you
|
|
have to look to both the TXD and RXD line, if on one a char.
|
|
is received. If so you put this char. in its own buffer and
|
|
in the other one a x'00'. Lateron you can print it out, one
|
|
line from buffer RXD, one line from buffer TXD in Hex or
|
|
|
|
|
|
ASCII (or both) outfit.
|
|
|
|
Go on on the same speed till you didn't receive for 30 sec.
|
|
any character on both lines and start again with AT
|
|
synchronisation. In fact the HAYES inside micro computer is
|
|
doing the same. Don't try to write the buffer to disk at
|
|
first instance, because you need a DMA at least, but also 2
|
|
buffers. So buffer it in memory only. You can try to write
|
|
to disk in the silence just before the new AT string.
|
|
|