home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / packet / dedtnc2.ark / TNC2U.DOC next >
Encoding:
Text File  |  1987-08-27  |  30.9 KB  |  925 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.                                    AX.25 Version 2
  10.                                     Multi-channel
  11.                                     TNC  FIRMWARE
  12.  
  13.                                     (version 2.0)
  14.  
  15.                       Copyright 1987, Ronald E. Raikes (WA8DED)
  16.  
  17.  
  18.  
  19.                This firmware supports the full AX.25  link-layer  protocol,
  20.           version 2.0 as described in the ARRL specification dated  October
  21.           1984,  as  well  as   the   pre-existing   version   1.x.    This
  22.           implementation supports multiple  simultaneous  link  connections
  23.           with either version protocol.  This release has been compiled for
  24.           a maximum of four connections, although any reasonable number  of
  25.           connections is possible by changing  one  MAXLNK  symbol  in  the
  26.           source header file.  The  firmware  is  contained  in  one  26256
  27.           EPROM, and is intended to  be  installed  in  a  TAPR  TNC-2  (or
  28.           equivalent, such as the MFJ-1270 or AEA  PK-80)  in  socket  U23.
  29.           RAM memory is automatically sized, supporting both  16k  and  32k
  30.           configurations.
  31.  
  32.                Commands and information are sent to the tnc in the form  of
  33.           lines.  Lines may be up to 256  characters  long,  including  the
  34.           terminating CARRIAGE RETURN.  If the 256th character  entered  is
  35.           not a CARRIAGE RETURN, it will be discarded and a BELL  character
  36.           will be output to the terminal.  BACKSPACE and DELETE may be used
  37.           to remove single characters from the line.  The entire  line  may
  38.           be permanently backspaced out by entering a CONTROL-U or CONTROL-
  39.           X.  A CONTROL-R will temporarily backspace out any  partial  line
  40.           to allow incoming frames to be  displayed.   A  second  CONTROL-R
  41.           will then restore  the  line  to  allow  continuation  of  entry.
  42.           During the time a partial line is saved, only  another  CONTROL-R
  43.           will be  accepted  from  the  keyboard  (with  the  exception  of
  44.           xon/xoff, of course).  BELL characters are echoed to the terminal
  45.           when entered or  removed.   Lines  which  begin  with  an  ESCAPE
  46.           character (echoed as '* ') are interpreted  as  commands.   If  a
  47.           command is issued with no parameter, the current  value  of  that
  48.           commands parameter is displayed.  Lines without a leading  ESCAPE
  49.           character are sent as information.
  50.  
  51.                The firmware provides the operator  with  five  virtual  tnc
  52.           channels, numbered 0 to 4.  The terminal is logically attached to
  53.           only one of these  channels  at  a  time,  selected  by  the  'S'
  54.           command.  Information sent on channel 0 is always  unproto.   The
  55.           unproto path may be set by issuing a 'C' command when  channel  0
  56.           is selected.  Channels 1 - 4 are also unproto  if  they  are  not
  57.           currently connected.  Outgoing connect requests may be issued  on
  58.           any unconnected channel, while incoming connect requests will use
  59.           the first available  channel  (provided  the  maximum  number  of
  60.           connections set  by  the  'Y'  command  will  not  be  exceeded).
  61.           Information received on a connected channel that is not currently
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.           selected will remain queued there until that channel is selected.
  75.           The STA led indicates there is queued information,  and  the  'L'
  76.           command may be used to  determine  the  channel(s)  where  it  is
  77.           located.  Information  for  transmission  is  sent  only  to  the
  78.           currently selected channel.  When a connection is ended, received
  79.           information will remain queued until it has been displayed.  If a
  80.           new digipeater path  is  desired  while  a  connection  is  being
  81.           established or is in progress, it is not necessary to  disconnect
  82.           first.  Simply re-issuing the 'C' command will  re-establish  the
  83.           connection via the new path without any loss of information.
  84.  
  85.                Which protocol version is used to initiate a  connection  is
  86.           controlled by the 'V' command, but the version  will  be  changed
  87.           automatically, if necessary, to conform to the version of the tnc
  88.           responding.  Version 2 protocol is more  effecient  in  terms  of
  89.           network  throughput  and   loading,   especially   under   severe
  90.           conditions.  Version 2 protocol is the default and should be used
  91.           whenever possible.  When version 2 protocol is used, a  watch-dog
  92.           timer is started whenever information is not  being  transmitted.
  93.           If the tnc remains idle for three minutes, it will poll the other
  94.           tnc to determine  if  the  link  is  still  established.   If  no
  95.           response is received after the number of tries  set  by  the  'N'
  96.           command, a link failure is reported.  This  procedure  will  also
  97.           detect the case where someone connects and  then  leaves  without
  98.           disconnecting.  Changing the protocol version during a connection
  99.           is not permitted.
  100.  
  101.                The 'F', 'I', 'N', 'O', and 'V' commands maintain individual
  102.           parameters for each channel.  The value stored in  channel  0  is
  103.           used to initialize channels 1 - 4  upon  power  up,  and  to  re-
  104.           initialize channels 1 - 4 after a disconnect.   This  allows  the
  105.           values to be changed independently on each channel, prior to  and
  106.           during a connection, and then automatically revert  back  to  the
  107.           standard values when the connection  is  ended.   A  'D'  command
  108.           issued on a disconnected channel 1 - 4  will  also  re-initialize
  109.           that channel.
  110.  
  111.                Frame monitoring is controlled  by  the  'M'  command.   The
  112.           command parameter determines the types of frames  monitored,  and
  113.           is a list of desired  frames  chosen  from  the  letters  in  the
  114.           following table:
  115.  
  116.                LTR       FRAME
  117.                ---       -----
  118.                 N        None
  119.                 I        I frames
  120.                 U        UI frames
  121.                 S        Supervisory frames
  122.                 C        Monitor while connected
  123.                 +        Call signs to be included (maximum of 8)
  124.                 -        Call signs to be excluded (maximum of 8)
  125.  
  126.           The '+' and '-' parameters may not be used together.   If  either
  127.           is used, it must be the last parameter (followed by one to  eight
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.           callsigns, if applicable).  If no list of callsigns is  specified
  141.           to be included or excluded, all callsigns will be candidates  for
  142.           monitoring.  Entering a '+' or '-' with no callsigns  will  empty
  143.           the list.
  144.  
  145.           An asterisk displayed after a callsign  in  the  digipeater  list
  146.           indicates the frame was transmitted by that station.  The control
  147.           field displayed will be one of the following:
  148.  
  149.                NAME   DESCRIPTION
  150.                ----   -----------
  151.                RRa  - Receive Ready
  152.                RNRa - Receive Not Ready
  153.                REJa - Reject
  154.                UI   - Unnumbered Information
  155.                DM   - Disconnected Mode
  156.                SABM - Connect Request
  157.                DISC - Disconnect Request
  158.                UA   - Unnumbered Acknowledge
  159.                FRMR - Frame Reject
  160.                Iab  - Information
  161.                ?ccH - Unknown
  162.  
  163.                a  = Next expected frame number (0 - 7)
  164.                b  = Frame number of this frame (0 - 7)
  165.                cc = Hexadecimal value
  166.  
  167.           In addition, one of the following characters will  be  displayed,
  168.           reflecting the protocol version, command/response bits,  and  the
  169.           poll/final bit:
  170.  
  171.            (blank) = version 1 frame without poll/final bit
  172.                  ! = version 1 frame with poll/final bit
  173.                  ^ = version 2 command frame without poll bit
  174.                  + = version 2 command frame with poll bit
  175.                  - = version 2 response frame with final bit
  176.                  v = version 2 response frame without final bit
  177.  
  178.           The protocol identifier field is displayed in hexadecimal
  179.  
  180.                An unattended mode, controlled by the 'U' command,  provides
  181.           for sending user supplied text to a connecting station, and  then
  182.           allows that station to leave a  brief  message.   This  mode  can
  183.           operate on all channels simultaneously, but in no way limits  the
  184.           operators ability to interact with one of the connected  channels
  185.           or  the  ability  to  make  outgoing  connect   requests.    When
  186.           unattended mode is enabled, link status messages  are  queued  to
  187.           the associated channel and not output to the terminal unless that
  188.           channel  is  currently  selected.   Link  status  messages   will
  189.           therefore  be  displayed  in   chronological   order   with   the
  190.           information from that channel.  In addition, text supplied by the
  191.           user with the 'U' command  will  be  sent  to  any  station  that
  192.           connects.  If channel 0  is  left  selected,  stations  may  then
  193.           connect and leave messages on channels 1 - 4 (limited by the  'Y'
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.           parameter, of course).  The 'L' command may be used to  determine
  207.           if messages have been left on any channel.  Selecting  a  channel
  208.           containing messages will cause all link  status  and  information
  209.           from that channel to be displayed.  If  xon/xoff  handshaking  is
  210.           enabled, CONTROL-S and CONTROL-Q may  be  used  to  regulate  the
  211.           output to the terminal to allow comfortable reading.
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.                                    COMMAND SUMMARY
  273.                                    ===============
  274.  
  275.  
  276.  
  277.           COMMAND        PARAMETER               DESCRIPTION
  278.           -------        ---------               -----------
  279.  
  280.             A (1)            0             Auto linefeed disabled
  281.                              1             Auto linefeed enabled
  282.  
  283.             C        Cs1 [Cs2 ... Cs9]     Connect path (0=unproto path)
  284.  
  285.             D                              Disconnect
  286.  
  287.             E (1)            0             Echo input disabled
  288.                              1             Echo input enabled
  289.  
  290.           * F (4)           1-15           Frame acknowledge (seconds)
  291.  
  292.             G               [0]            Get information (host mode)
  293.                             [1]            Get link status (host mode)
  294.  
  295.           * I                Cs            Tnc source callsign
  296.  
  297.             JHOST (0)        0             Terminal mode enabled
  298.                              1             Host mode enabled
  299.  
  300.             L              [0-4]           Display channel status
  301.  
  302.             M (IU)        NIUSC+-          Monitor mode
  303.  
  304.           * N (10)          0-127          Number of tries (0=forever)
  305.  
  306.           * O (4)           1-7            Number of outstanding I frames
  307.  
  308.             QRES                           Re-start firmware
  309.  
  310.             R (1)            0             Repeater disabled
  311.                              1             Repeater enabled
  312.  
  313.             S (0)           0-4            Select channel (0=unproto)
  314.  
  315.             T (30)          0-127          Transmitter delay (10ms)
  316.  
  317.             U (0)   0      [text]          Unattended mode disabled
  318.                     1      [text]          Unattended mode enabled
  319.  
  320.           * V (2)            1             Version 1 protocol initiated
  321.                              2             Version 2 protocol initiated
  322.  
  323.             W (16)          0-127          Repeater wait (10ms)
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.             X (1)            0             Transmitter PTT disabled
  339.                              1             Transmitter PTT enabled
  340.  
  341.             Y (4)           0-4            Maximum connections
  342.  
  343.             Z (3)            0             Flow disabled, xon/off disabled
  344.                              1             Flow enabled, xon/off disabled
  345.                              2             Flow disabled, xon/off enabled
  346.                              3             Flow enabled, xon/off enabled
  347.  
  348.             @   B                          Display number of free buffers
  349.                 S                          Display current link state
  350.                 T2 (100)    0-65535        Timer T2 interval (10ms)
  351.                 T3 (18000)  0-65535        Timer T3 interval (10ms)
  352.                 V  (0)       0             Callsign validation disabled
  353.                              1             Callsign validation enabled
  354.  
  355.  
  356.              Default values are shown in parenthesis
  357.           *  These commands are applicable to each connection channel
  358.                (Values set on channel 0 are used upon power up and
  359.                 disconnect to initialize each connection channel)
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.                                  COMMAND DESCRIPTION
  405.                                  ===================
  406.  
  407.  
  408.  
  409.                The 'A' command is used to enable or disable  the  automatic
  410.           insertion of LINEFEED characters after CARRIAGE RETURN characters
  411.           to the terminal.
  412.  
  413.                The 'C' command is used to initiate a link connection.  Note
  414.           that 'v' or 'via' is not required (but is  allowed)  between  the
  415.           destination callsign and the digipeater callsigns.  A 'C' command
  416.           may be  issued  on  a  channel  already  in  use  to  change  the
  417.           digipeater callsigns, but not the destination  callsign.   A  'C'
  418.           command issued when channel 0 is selected sets the unproto path.
  419.  
  420.                The 'D' command is used to initiate  a  link  disconnection.
  421.           If there is unsent or unacknowledged information  remaining,  the
  422.           disconnect request frame will not be sent until  all  information
  423.           has been transmitted and acknowledged.  No additional information
  424.           will be received after the 'D' command has been issued.  A second
  425.           'D' command may be entered  to  force  the  transmission  of  the
  426.           disconnect request frame before all information has been sent and
  427.           acknowledged.  A 'D' command issued during the establishment of a
  428.           link or after a disconnect request  frame  has  been  transmitted
  429.           will cause an immediate return to the disconnected state.  A  'D'
  430.           command issued on a disconnected channel will  re-initialize  the
  431.           connection dependent parameters to the values stored  in  channel
  432.           0.
  433.  
  434.                The 'E' command is used to enable or disable the echoing  of
  435.           input (commands and information) to the terminal.
  436.  
  437.                The 'F' command is used to  set  the  frame  acknowledgement
  438.           interval.  This interval is used to compute the timeout  interval
  439.           before a packet is retransmitted, using the formula:
  440.  
  441.                time (seconds) = frame ack * (2 * number of digipeaters + 1)
  442.  
  443.           A separate frame acknowlegement interval value is maintained  for
  444.           each connection channel.  The value stored in channel 0  is  used
  445.           to  initialize  each  connection  channel  upon   power   up   or
  446.           disconnection.
  447.  
  448.                The 'G' command is used to interrogate virtual tnc  channels
  449.           when host mode is enabled.  If no  parameter  is  specified,  the
  450.           next chronological item (information  or  link  status)  will  be
  451.           returned, provided there is one.   This  command  is  invalid  in
  452.           terminal  mode.   A  later  section  is  devoted  to  host   mode
  453.           operation.
  454.  
  455.                The 'I' command is used to set the tnc source callsign.  The
  456.           initial value is all blanks.  Changing the  tnc  source  callsign
  457.           while connected is not permitted.  If the tnc source callsign  is
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.           left blank, the tnc will not allow connect  commands  or  unproto
  471.           transmissions.  The callsign stored  in  channel  0  is  used  to
  472.           initialize   each   connection   channel   upon   power   up   or
  473.           disconnection.
  474.  
  475.                The 'JHOST' command is used to select between  terminal  and
  476.           host modes.  A later section is devoted to host mode operation.
  477.  
  478.                The 'L' command is used to display the link status of one or
  479.           all channels.   Information  displayed  includes  the  connection
  480.           path, number of receive frames not yet displayed, number of  send
  481.           frames not yet transmitted, number of transmitted frames not  yet
  482.           acknowledged, and the  current  retry  count.   A  '+'  character
  483.           preceeding the channel number indicates  the  currently  selected
  484.           channel.  Operation of this command when host mode is enabled  is
  485.           somewhat different, and is described in a later section.
  486.  
  487.                The 'M' command is used to set the  frame  monitoring  mode.
  488.           The command parameter determines the types of  frames  monitored,
  489.           and is a list of desired frames chosen from the  letters  in  the
  490.           following table:
  491.  
  492.                LTR       FRAME
  493.                ---       -----
  494.                 N        None
  495.                 I        I frames
  496.                 U        UI frames
  497.                 S        Supervisory frames
  498.                 C        Monitor while connected
  499.                 +        Call signs to be included (maximum of 8)
  500.                 -        Call signs to be excluded (maximum of 8)
  501.  
  502.           The '+' and '-' parameters may not be used together.   If  either
  503.           is used, it must be the last parameter (followed by one to  eight
  504.           callsigns, if applicable).  If no list of callsigns is  specified
  505.           to be included or excluded, all callsigns will be candidates  for
  506.           monitoring.  Entering a '+' or '-' with no callsigns  will  empty
  507.           the list.
  508.  
  509.                The 'N' command is used to set the maximum number of times a
  510.           frame  will  be  transmitted  without  receiving  an  appropriate
  511.           acknowledgement, before a link failure is  assumed.   A  separate
  512.           maximum number of tries value is maintained for  each  connection
  513.           channel.  The value stored in channel 0  is  used  to  initialize
  514.           each connection channel upon power up or disconnection.
  515.  
  516.                The 'O' command  is  used  to  set  the  maximum  number  of
  517.           unacknowledged I frames that may be outstanding at any one  time.
  518.           A separate maximum number of unacknowledged  I  frames  value  is
  519.           maintained for each connection  channel.   The  value  stored  in
  520.           channel 0 is used to  initialize  each  connection  channel  upon
  521.           power up or disconnection.
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.                The  'QRES'  command  is  used  to  restart  the   firmware,
  537.           including re-initialization  of  battery-backed  RAM  to  default
  538.           parameters.
  539.  
  540.                The 'R' command is used to enable or disable the digipeating
  541.           of frames.
  542.  
  543.                The 'S' command  is  used  to  select  the  current  channel
  544.           number.
  545.  
  546.                The 'T' command is used to set the transmitter  keyup  delay
  547.           interval.  The parameter is specified in 10ms increments.
  548.  
  549.                The 'U' command is used  to  enable  or  disable  unattended
  550.           modes.
  551.  
  552.                The 'V' command is used to select whether  version  1  or  2
  553.           protocol will be used to initiate a link connection.  A  separate
  554.           protocol version value is maintained for each connection channel.
  555.           The value  stored  in  channel  0  is  used  to  initialize  each
  556.           connection channel upon power up or disconnection.  Interrogating
  557.           this parameter during a  connection  will  reflect  the  protocol
  558.           version currently being  used  on  that  channel.   Changing  the
  559.           protocol version during a connection is not permitted.
  560.  
  561.                The 'W' command is used to set the digipeater wait interval.
  562.           The parameter is specified in 10ms increments.
  563.  
  564.                The 'X' command is used to enable or disable the transmitter
  565.           PTT line.
  566.  
  567.                The 'Y' command  is  used  to  set  the  maximum  number  of
  568.           connections that may  established  by  incoming  requests.   This
  569.           command has no  effect  on  the  operators  ability  to  initiate
  570.           outgoing connection requests.
  571.  
  572.                The 'Z' command is used to enable or  disable  flow  control
  573.           and xon/xoff handshaking to the terminal.   If  flow  control  is
  574.           enabled, output to the terminal will be inhibited while  entering
  575.           commands or information.  If flow control is disabled, output  to
  576.           the terminal will not be restricted.  Flow control  and  xon/xoff
  577.           handshaking should be disabled during periods in which the tnc is
  578.           operated without a terminal, to  avoid  suspending  output  which
  579.           will consume buffers.  If xon/xoff handshaking  is  enabled,  crt
  580.           scrolling may be stopped and started using CONTROL-S and CONTROL-
  581.           Q characters.  Flow control  and  xon/xoff  handshaking  are  not
  582.           performed when host mode is enabled.
  583.  
  584.                The '@'  command  is  a  software  maintenance  command.   A
  585.           parameter of 'B' will display the  number  of  free  buffers.   A
  586.           parameter of 'S' will display the current link state.   The  'T2'
  587.           parameter is used to set the timer T2 interval, just as the  'T3'
  588.           parameter is used to  set  the  timer  T3  interval.   The  timer
  589.           intervals are specified in 10ms increments.   Timer  T2  controls
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.           the amount of delay between the  time  an  information  frame  is
  603.           received and the time the resulting response frame is sent.  This
  604.           delay allows multiple frames to be  acknowledged  with  a  single
  605.           response.  Timer T3 is used maintain link integrity.  If there is
  606.           no activity during the T3 interval, the tnc will poll  to  verify
  607.           the distant station is still connected.   The  'V'  parameter  is
  608.           used to enable or disable callsign validation.
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.                                  HOST MODE OPERATION
  669.                                  ===================
  670.  
  671.  
  672.  
  673.                Host mode is intended to provide a user  interface  suitable
  674.           for operation under control of a host  processor.   Commands  and
  675.           information to the tnc, as well as status  and  information  from
  676.           the tnc, are clearly identified to allow orderly and  unambiguous
  677.           communication.  To alleviate any need for  hardware  or  software
  678.           handshaking,  the  tnc  will  not  send  to  the  host  processor
  679.           unsolicited,  and  all  exchanges  are  limited  to  256   bytes.
  680.           Information transfers are fully transparent.
  681.  
  682.                When host mode is enabled, the first byte sent  to  the  tnc
  683.           must be a channel number.  If  information  is  being  sent,  the
  684.           second byte must be a binary 0.  If a command is being sent,  the
  685.           second byte must be a binary 1.   The  third  byte  must  be  the
  686.           binary length of the actual information or  command,  decremented
  687.           by 1 (vacuous information or commands are  not  permitted).   The
  688.           actual  information  or   command   bytes   must   follow   last.
  689.           Information sent to channel 0 will be sent unproto.   Information
  690.           sent to an unconnected channel 1 - 4 will be discarded.  The  tnc
  691.           will respond to both information  and  commands  with  a  channel
  692.           number first, followed by a binary code of 0, 1, or 2, signalling
  693.           success or failure.  Codes of 1 or 2 will be followed by  a  null
  694.           terminated message.  Channels may be  interrogated  for  incoming
  695.           information or link status by using  the  'G'  command.   Monitor
  696.           headers and monitor information will always be sent to channel 0,
  697.           along with connect request link status messages.  All other  link
  698.           status messages will be sent to the  appropriate  channel,  along
  699.           with that channels connected information.  In response to  a  'G'
  700.           command, the tnc  will  respond  with  a  channel  number  first,
  701.           followed by a binary code of 0 if  nothing  is  available,  or  a
  702.           binary code of 3 - 7, identifying the bytes that follow.  A  code
  703.           of  4  indicates  the  monitored  frame  does  not   contain   an
  704.           information field.  A code of 5  indicates  the  monitored  frame
  705.           does contain an information field, and the next  'G'  command  on
  706.           channel 0 will return that information field, preceeded by a code
  707.           of 6.
  708.  
  709.                    Host to Tnc
  710.                    -----------
  711.  
  712.           CHANNEL   CODE           DESCRIPTION
  713.           -------   ----           -----------
  714.              n       0        Information (preceeded by length-1)
  715.              n       1        Command     (preceeded by length-1)
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.                    Tnc to Host
  735.                    -----------
  736.  
  737.           CHANNEL   CODE           DESCRIPTION
  738.           -------   ----           -----------
  739.              n       0        Success (nothing follows)
  740.              n       1        Success (message follows, null terminated)
  741.              n       2        Failure (message follows, null terminated)
  742.              n       3        Link Status (null terminated)
  743.              n       4        Monitor Header (null terminated)
  744.              n       5        Monitor Header (null terminated)
  745.              n       6        Monitor Information (preceeded by length-1)
  746.              n       7        Connect Information (preceeded by length-1)
  747.  
  748.           Success messages
  749.           ----------------
  750.  
  751.           {channel status}
  752.           {parameter value}
  753.           CHANNEL NOT CONNECTED
  754.  
  755.           Failure messages
  756.           ----------------
  757.  
  758.           INVALID CALLSIGN
  759.           MESSAGE TOO LONG
  760.           INVALID PARAMETER
  761.           INVALID BAUD RATE
  762.           NO SOURCE CALLSIGN
  763.           INVALID COMMAND: ?
  764.           NOT WHILE CONNECTED
  765.           INVALID VALUE: ?????
  766.           NO MESSAGE AVAILABLE
  767.           INVALID CHANNEL NUMBER
  768.           TNC BUSY - LINE IGNORED
  769.           CHANNEL ALREADY CONNECTED
  770.           STATION ALREADY CONNECTED
  771.           INVALID EXTENDED COMMAND: ?
  772.  
  773.           Link Status messages
  774.           --------------------
  775.  
  776.           BUSY fm {call} via {digipeaters}
  777.           CONNECTED to {call} via {digipeaters}
  778.           LINK RESET fm {call} via {digipeaters}
  779.           LINK RESET to {call} via {digipeaters}
  780.           DISCONNECTED fm {call} via {digipeaters}
  781.           LINK FAILURE with {call} via {digipeaters}
  782.           CONNECT REQUEST fm {call} via {digipeaters}
  783.           FRAME REJECT fm {call} via {digipeaters} (x y z)
  784.           FRAME REJECT to {call} via {digipeaters} (x y z)
  785.  
  786.           x y z = FRMR information bytes
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.           Monitor Header format
  801.           ---------------------
  802.  
  803.           fm {call} to {call} via {digipeaters} ctl {name} pid {hex}
  804.  
  805.           Channel Status format
  806.           ---------------------
  807.  
  808.           a b c d e f
  809.  
  810.           a = Number of link status messages not yet displayed
  811.           b = Number of receive frames not yet displayed
  812.           c = Number of send frames not yet transmitted
  813.           d = Number of transmitted frames not yet acknowledged
  814.           e = Number of tries on current operation
  815.           f = Link state
  816.  
  817.               Possible link states are:
  818.  
  819.                0 = Disconnected
  820.                1 = Link Setup
  821.                2 = Frame Reject
  822.                3 = Disconnect Request
  823.                4 = Information Transfer
  824.                5 = Reject Frame Sent
  825.                6 = Waiting Acknowledgement
  826.                7 = Device Busy
  827.                8 = Remote Device Busy
  828.                9 = Both Devices Busy
  829.               10 = Waiting Acknowledgement and Device Busy
  830.               11 = Waiting Acknowledgement and Remote Busy
  831.               12 = Waiting Acknowledgement and Both Devices Busy
  832.               13 = Reject Frame Sent and Device Busy
  833.               14 = Reject Frame Sent and Remote Busy
  834.               15 = Reject Frame Sent and Both Devices Busy
  835.  
  836.  
  837.  
  838.           NOTE 1:  Only items a and b are displayed for channel 0.
  839.  
  840.           NOTE 2:  Only states 0 - 4 are possible if version 1 is in use.
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.                                  DEFAULT PARAMETERS
  867.                                  ==================
  868.  
  869.  
  870.  
  871.                In some instances, it  may  be  desirable  to  have  default
  872.           parameters which differ from the standard values.  To allow  easy
  873.           access, all default parameters have been placed at the  beginning
  874.           of the EPROM at location 0040H.  The  following  listing  defines
  875.           the layout of this area:
  876.  
  877.                TYPE     VALUE          DESCRIPTION
  878.                ----     -----          -----------
  879.                BYTE      1BH           COMMAND CHARACTER
  880.                BYTE    '      ',60H    SOURCE CALLSIGN (SEE NOTE 1)
  881.                BYTE    '      '        MNEMONIC IDENTIFIER
  882.                BYTE      04H           MAXIMUM CONNECTIONS
  883.                BYTE      03H           MONITOR MODE (SEE NOTE 2)
  884.                BYTE      01H           REPEATER DISABLE/ENABLE
  885.                BYTE      10H           REPEATER WAIT (10ms)
  886.                BYTE      1EH           TRANSMITTER DELAY (10ms)
  887.                BYTE      03H           FLOW CONTROL MODE
  888.                BYTE      01H           TRANSMITTER PTT DISABLE/ENABLE
  889.                BYTE      01H           AUTO LINEFEED DISABLE/ENABLE
  890.                BYTE      01H           ECHO COMMAND LINE DISABLE/ENABLE
  891.                BYTE      01H           VERSION 2 INITIATED DISABLE/ENABLE
  892.                BYTE      04H           MAXIMUM UNACKNOWLEDGED FRAMES
  893.                BYTE      0AH           MAXIMUM TRY COUNT
  894.                BYTE      04H           FRAME ACKNOWLEDGE INTERVAL
  895.                BYTE      00H           VALIDATE CALLSIGN ENABLE/DISABLE
  896.                BYTE      64H           TIMER T2 INTERVAL (10ms)
  897.                WORD     4650H          TIMER T3 INTERVAL (10ms)
  898.  
  899.  
  900.             DISABLE = 00H / ENABLE = 01H
  901.  
  902.  
  903.           NOTE 1:  The secondary station id must be shifted  left  one  bit
  904.           and or'ed with 60H.
  905.  
  906.  
  907.           NOTE 2:  The monitor mode is composed from the following bits:
  908.  
  909.                BIT       FRAME
  910.                ---       -----
  911.                 0        I frames
  912.                 1        UI frames
  913.                 2        Supervisory frames
  914.                 3        Monitor while connected
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.