HAYES modems and compatibles

      =================================================================

                                  COLUMNS

     =================================================================


     Host net 508, Node:508/4 Tel. int+55 421284

     Ignaat Simons

     Chopinlaan 3

     7333GA Apeldoorn Netherlands


                       HAYES modems and compatibles.



     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.


Comments

Popular posts from this blog

BOTTOM LIVE script

Fawlty Towers script for "A Touch of Class"