home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PACKET / DEDTNC2.ARK / TNC2U.DOC next >
Text File  |  1987-08-26  |  32KB  |  925 lines

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