💾 Archived View for spam.works › mirrors › textfiles › computers › arthayes.txt captured on 2024-02-05 at 11:23:04.

View Raw

More Information

⬅️ Previous capture (2023-06-14)

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

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