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 / DEDTNC1.ARK / TNC.DOC < prev   
Text File  |  1987-08-26  |  42KB  |  1,189 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                                    AX.25 Version 2
  9.                                     Multi-channel
  10.                                     TNC  FIRMWARE
  11.  
  12.                                     (version 1.2)
  13.  
  14.                       Copyright 1986, 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  assembled
  23.           for a maximum of four connections, although any reasonable number
  24.           of connections is possible by changing one MAXLNK symbol  in  the
  25.           source equate file.
  26.  
  27.                The firmware  is  contained  in  two  2764  EPROMs,  and  is
  28.           intended to be installed in a TAPR TNC-1 (or equivalent, such  as
  29.           the AEA PKT-1 or Heath HD-4040) in sockets  U11  (C000)  and  U12
  30.           (E000).  This assumes that a 6264 RAM  is  already  installed  in
  31.           socket U7, with additional  6264  RAMs  optionally  installed  in
  32.           sockets U8, U9, and U10 in any combination (verify that pin 26 is
  33.           connected to +5v).  Additional RAM is highly desirable if  multi-
  34.           channel or unattended operation is anticipated.  When  installing
  35.           the EPROMs (including newer versions), it will  be  necessary  to
  36.           start the tnc with the PARAMETER SOURCE switch set  to  the  PROM
  37.           position.  This will cause default parameters to be written  into
  38.           NOVRAM  memory  but  not  PERMed.   The  RS-232  port   will   be
  39.           initialized to 300  baud  with  xon/xoff  handshaking.   The  tnc
  40.           source call sign will be all blanks, and should be set  with  the
  41.           'I' command, as well as any other default parameters  that  might
  42.           need changing, before issuing a 'PERM' command.  At  this  point,
  43.           the PARAMETER SOURCE switch may be set to NOVRAM  for  subsequent
  44.           operation.  If the terminal baud rate has been changed,  the  new
  45.           value will take effect following a reset.  If the tnc source call
  46.           sign is left blank, the tnc will not activate the transmitter PTT
  47.           line.
  48.  
  49.                Commands and information are sent to the tnc in the form  of
  50.           lines.  Lines may be up to 256  characters  long,  including  the
  51.           terminating CARRIAGE RETURN.  If the 256th character  entered  is
  52.           not a CARRIAGE RETURN, it will be discarded and a BELL  character
  53.           will be output to the terminal.  BACKSPACE and DELETE may be used
  54.           to remove single characters from the line.  The entire  line  may
  55.           be permanently backspaced out by entering a CONTROL-U or CONTROL-
  56.           X.  A CONTROL-R will temporarily backspace out any  partial  line
  57.           to allow incoming frames to be  displayed.   A  second  CONTROL-R
  58.           will then restore  the  line  to  allow  continuation  of  entry.
  59.           During the time a partial line is saved, only  another  CONTROL-R
  60.           will be  accepted  from  the  keyboard  (with  the  exception  of
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.           xon/xoff, of course).  BELL characters are echoed to the terminal
  74.           when entered or  removed.   Lines  which  begin  with  an  ESCAPE
  75.           character (echoed as '* ') are interpreted  as  commands.   If  a
  76.           command is issued with no parameter, the current  value  of  that
  77.           commands parameter is displayed.  An embedded NULL character in a
  78.           command will cause the remainder  of  the  line  to  be  ignored.
  79.           Lines without a leading ESCAPE character are sent as information.
  80.  
  81.                The firmware provides the operator  with  five  virtual  tnc
  82.           channels, numbered 0 to 4.  The terminal is logically attached to
  83.           only one of these  channels  at  a  time,  selected  by  the  'S'
  84.           command.  Information sent on channel 0 is always  unproto.   The
  85.           unproto path may be set by issuing a 'C' command when  channel  0
  86.           is selected.  Channels 1 - 4 are also unproto  if  they  are  not
  87.           currently connected.  Outgoing connect requests may be issued  on
  88.           any unconnected channel, while incoming connect requests will use
  89.           the first available  channel  (provided  the  maximum  number  of
  90.           connections set  by  the  'Y'  command  will  not  be  exceeded).
  91.           Information received on a connected channel that is not currently
  92.           selected will remain queued there until that channel is  selected
  93.           (the 'L' command is useful in determining if there is information
  94.           waiting on other channels).  Information for transmission is sent
  95.           only to the currently selected channel.   When  a  connection  is
  96.           ended,  any  information  that  has  not  been   transmitted   or
  97.           acknowledged will be discarded.  Received information will remain
  98.           queued,  however,  until  it  has  been  displayed.   If  a   new
  99.           digipeater  path  is  desired  while  a   connection   is   being
  100.           established or is in progress, it is not necessary to  disconnect
  101.           first.  Simply re-issuing the 'C' command will  re-establish  the
  102.           connection via the new path  without  any  loss  of  information.
  103.           Attempting to connect to  the  same  station  on  more  than  one
  104.           channel is not permitted.
  105.  
  106.                Which protocol version is used to initiate a  connection  is
  107.           controlled by the 'V' command, but the version  will  be  changed
  108.           automatically, if necessary, to conform to the version of the tnc
  109.           responding.  Version 2 protocol is more  effecient  in  terms  of
  110.           network  throughput  and   loading,   especially   under   severe
  111.           conditions.  Version 2 protocol is the default and should be used
  112.           whenever possible.  (NOTE:  The  existing  firmware  supplied  by
  113.           TAPR for the TNC-1 (v3.x) will NOT digipeat version  2  protocol.
  114.           This is expected to  remedied  in  v4.0.   All  other  tnc's  and
  115.           digipeaters encountered to date  digipeat  version  2  properly.)
  116.           When version 2 protocol is used, a  watch-dog  timer  is  started
  117.           whenever information  is  not  being  transmitted.   If  the  tnc
  118.           remains idle for three minutes, it will poll  the  other  tnc  to
  119.           determine if the link is still established.  If  no  response  is
  120.           received after the number of tries set by the  'N'  command,  the
  121.           tnc will attempt to re-establish the connection.  This  procedure
  122.           will also detect the case where someone connects and then  leaves
  123.           without disconnecting.  Changing the protocol  version  during  a
  124.           connection is not permitted.
  125.  
  126.                The 'F', 'N', 'O',  and  'V'  commands  maintain  individual
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           parameters for each channel.  The value stored in  channel  0  is
  140.           the value that is  saved  in  NOVRAM.   This  value  is  used  to
  141.           initialize channels 1 - 4 after a  reset,  and  to  re-initialize
  142.           channels 1 - 4 after a disconnect.  This allows the values to  be
  143.           changed independently on each channel,  prior  to  and  during  a
  144.           connection, and then automatically revert back  to  the  standard
  145.           values when the connection is ended.  A 'D' command issued  on  a
  146.           disconnected channel 1 - 4 will also re-initialize that channel.
  147.  
  148.                Frame monitoring is controlled  by  the  'M'  command.   The
  149.           command parameter determines the types of frames  monitored,  and
  150.           is a list of desired  frames  chosen  from  the  letters  in  the
  151.           following table:
  152.  
  153.                LTR       FRAME
  154.                ---       -----
  155.                 N        None
  156.                 I        I frames
  157.                 U        UI frames
  158.                 S        Supervisory frames
  159.                 C        Monitor while connected
  160.                 R        Monitor received frames (addressed to)
  161.                 T        Monitor transmitted frames (addressed from)
  162.                 +        Call signs to be included (maximum of 8)
  163.                 -        Call signs to be excluded (maximum of 8)
  164.  
  165.           The '+' and '-' parameters may not be used together.   If  either
  166.           is used, it must be the last parameter (followed by one to  eight
  167.           call signs,  if  applicable).   If  no  list  of  call  signs  is
  168.           specified to be included or excluded,  all  call  signs  will  be
  169.           candidates for monitoring.  Entering a '+' or '-'  with  no  call
  170.           signs will empty the list.
  171.  
  172.           An asterisk displayed after a call sign in  the  digipeater  list
  173.           indicates the frame was transmitted by that station.  The control
  174.           field displayed will be one of the following:
  175.  
  176.                NAME   DESCRIPTION
  177.                ----   -----------
  178.                RRa  - Receive Ready
  179.                RNRa - Receive Not Ready
  180.                REJa - Reject
  181.                UI   - Unnumbered Information
  182.                DM   - Disconnected Mode
  183.                SABM - Connect Request
  184.                DISC - Disconnect Request
  185.                UA   - Unnumbered Acknowledge
  186.                FRMR - Frame Reject
  187.                Iab  - Information
  188.                ?ccH - Unknown
  189.  
  190.                a  = Next expected frame number (0 - 7)
  191.                b  = Frame number of this frame (0 - 7)
  192.                cc = Hexadecimal value
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.           In addition, one of the following characters will  be  displayed,
  207.           reflecting the protocol version, command/response bits,  and  the
  208.           poll/final bit:
  209.  
  210.            (blank) = version 1 frame without poll/final bit
  211.                  ! = version 1 frame with poll/final bit
  212.                  ^ = version 2 command frame without poll bit
  213.                  + = version 2 command frame with poll bit
  214.                  - = version 2 response frame with final bit
  215.                  v = version 2 response frame without final bit
  216.  
  217.           The protocol identifier field is displayed in hexadecimal,  which
  218.           is currently  always  an  F0,  signifying  that  no  layer  3  is
  219.           implemented.
  220.  
  221.                An unattended mode, controlled by the 'U' command,  provides
  222.           for sending user supplied text to a connecting station, and  then
  223.           allows that station to leave a  brief  message.   This  mode  can
  224.           operate on all channels simultaneously, but in no way limits  the
  225.           operators ability to interact with one of the connected  channels
  226.           or  the  ability  to  make  outgoing  connect   requests.    When
  227.           unattended mode is enabled, link status messages  are  queued  to
  228.           the associated channel and not output to the terminal unless that
  229.           channel  is  currently  selected.   Link  status  messages   will
  230.           therefore  be  displayed  in   chronological   order   with   the
  231.           information from that channel.  In addition, text supplied by the
  232.           user with the 'U' command  will  be  sent  to  any  station  that
  233.           connects.  If channel 0  is  left  selected,  stations  may  then
  234.           connect and leave messages on channels 1 - 4 (limited by the  'Y'
  235.           parameter, of course).  The 'L' command may be used to  determine
  236.           if messages have been left on any channel.  Selecting  a  channel
  237.           containing messages will cause all link  status  and  information
  238.           from that channel to be displayed.  If  xon/xoff  handshaking  is
  239.           enabled, CONTROL-S and CONTROL-Q may  be  used  to  regulate  the
  240.           output to  the  terminal  to  allow  comfortable  reading.   Also
  241.           provided,  but  intended  to  be  used  very  sparingly,  is   an
  242.           unattended QST facility.  In this mode, user supplied text may be
  243.           automatically transmitted unproto to the path set on  channel  0,
  244.           at periodic intervals spaced  1  -  65,535  minutes  apart.   The
  245.           interval and text must be entered each time QST mode is  enabled.
  246.           Use of unattended QST messages is generally degrading to  network
  247.           performance and is considered by many to  be  an  annoyance,  and
  248.           should only be used when absolutely necessary.
  249.  
  250.                The tnc parallel port supplies link status  information  for
  251.           channel 1 on lines PA0, PA1, and PA2 for  use  with  an  external
  252.           status indicator.  The following link states are possible:
  253.  
  254.                               1 = Disconnected
  255.                               2 = Link Setup
  256.                               3 = Frame Reject
  257.                               4 = Disconnect Request
  258.                               5 = Information Transfer
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.                The firmware source is written in  6809  assembly  language.
  273.           Emphasis was  placed  on  using  a  state  table  driven  design,
  274.           utilizing the state tables provided in  the  ARRL  specification.
  275.           The source was assembled using a 6809 cross assembler  from  2500
  276.           AD Software running on a Z-80/8086  TurboDOS  development  system
  277.           (CP/M & MS-DOS compatable).
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.           NOTE:   A  very  small  number  of  Western  Digital  1933   HDLC
  310.           Controller ICs manufactured in 1981 and 1982 have been  found  to
  311.           be defective.  The symptoms are erratic and unreliable  operation
  312.           of the tnc, due to the hdlc controller  occasionally  failing  to
  313.           interrupt  upon  successful  completion  of  frame  transmission.
  314.           These defective parts can be identified by  inspecting  the  mask
  315.           number on the underneath side of  the  IC.   The  defective  mask
  316.           number begins with the letters 'BA', and should be replaced.  The
  317.           current replacement part is called 1935 and requires no changes.
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                                    COMMAND SUMMARY
  338.                                    ===============
  339.  
  340.  
  341.  
  342.           COMMAND        PARAMETER               DESCRIPTION
  343.           -------        ---------               -----------
  344.  
  345.             A (1)            0             Auto linefeed disabled
  346.                              1             Auto linefeed enabled
  347.  
  348.             B (6)           1-15           Terminal baud rate
  349.  
  350.             C        Cs1 [Cs2 ... Cs9]     Connect path (0=unproto path)
  351.  
  352.             D                              Disconnect
  353.  
  354.             E (1)            0             Echo input disabled
  355.                              1             Echo input enabled
  356.  
  357.           * F (3)           1-15           Frame acknowledge (seconds)
  358.  
  359.             G               [0]            Get information (host mode)
  360.                             [1]            Get link status (host mode)
  361.  
  362.             H (1200)       50-9600         HDLC baud rate
  363.  
  364.             I                Cs            Tnc source call sign
  365.  
  366.             JHOST (0)        0             Terminal mode enabled
  367.                              1             Host mode enabled
  368.  
  369.             K               1-2            Calibrate
  370.  
  371.             L              [0-4]           Display channel status
  372.  
  373.             M (IU)       NIUSCRT+-         Monitor mode
  374.  
  375.           * N (10)          0-255          Number of tries (0=forever)
  376.  
  377.           * O (4)           1-7            Number of outstanding I frames
  378.  
  379.             PERM                           Save parameters to NOVRAM
  380.  
  381.             QRES                           Re-start firmware
  382.  
  383.             R (1)            0             Repeater disabled
  384.                              1             Repeater enabled
  385.  
  386.             S (1)           0-4            Select channel (0=unproto)
  387.  
  388.             T (30)          0-127          Transmitter delay (10ms)
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.             U (0)   0      [text]          Unattended mode disabled
  404.                     1      [text]          Unattended mode enabled
  405.                     2    interval  text    QST mode enabled
  406.  
  407.           * V (2)            1             Version 1 protocol initiated
  408.                              2             Version 2 protocol initiated
  409.  
  410.             W (16)          0-127          Repeater wait (10ms)
  411.  
  412.             X (1)            0             Transmitter PTT disabled
  413.                              1             Transmitter PTT enabled
  414.  
  415.             Y (1)           0-4            Maximum connections
  416.  
  417.             Z (3)            0             Flow disabled, xon/off disabled
  418.                              1             Flow enabled, xon/off disabled
  419.                              2             Flow disabled, xon/off enabled
  420.                              3             Flow enabled, xon/off enabled
  421.  
  422.             @   B                          Display number of free buffers
  423.                 C  (0)       0             Fast clock disabled
  424.                              1             Fast clock enabled
  425.                 P  (F0)     0-FF           Protocol id (hex)
  426.                 S                          Display current link state
  427.                 T2 (100)    0-255          Timer T2 interval (10ms)
  428.                 T3 (18000)  0-32767        Timer T3 interval (10ms)
  429.  
  430.  
  431.              Default values are shown in parenthesis
  432.           *  These commands are applicable to each connection channel
  433.                (Values set on channel 0 are used after a reset and
  434.                 disconnect to initialize each connection channel)
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.                                  COMMAND DESCRIPTION
  470.                                  ===================
  471.  
  472.  
  473.  
  474.                The 'A' command is used to enable or disable  the  automatic
  475.           insertion of LINEFEED characters after CARRIAGE RETURN characters
  476.           to the terminal.  This parameter is stored in NOVRAM.
  477.  
  478.                The 'B' command is used to set the terminal baud rate, using
  479.           one of the following parameters:
  480.  
  481.                Parameter     Baud rate
  482.                ---------     ---------
  483.                    1            50
  484.                    2            75
  485.                    3            110
  486.                    4            135
  487.                    5            150
  488.                    6            300
  489.                    7            600
  490.                    8            1200
  491.                    9            1800
  492.                   10            2400
  493.                   11            3600
  494.                   12            4800
  495.                   13            7200
  496.                   14            9600
  497.                   15            19200
  498.  
  499.           After setting the baud rate with the 'B' command, the value  must
  500.           be PERMed, and will then take effect  following  a  reset.   Baud
  501.           rates above  4800  may  not  be  reliable  with  sustained  input
  502.           (commands or information) from a host computer due  to  the  slow
  503.           cpu clock rate and non-vectored interrupt architecture.
  504.  
  505.                The 'C' command is used to initiate a link connection.  Note
  506.           that NO 'v' or 'via' is used between the  destination  call  sign
  507.           and the digipeater call signs.  A 'C' command may be issued on  a
  508.           channel already in use to change the digipeater call  signs,  but
  509.           not the destination call sign.  A 'C' command issued when channel
  510.           0 is selected sets the unproto path.  Attempting  to  connect  to
  511.           the same station on more than one channel is not permitted.
  512.  
  513.                The 'D' command is used to initiate a link disconnection.  A
  514.           'D' command issued during the establishment or  dis-establishment
  515.           of a link will cause an  immediate  return  to  the  disconnected
  516.           state.  A 'D' command issued on a disconnected channel  will  re-
  517.           initialize the connection  dependent  parameters  to  the  values
  518.           stored in channel 0.
  519.  
  520.                The 'E' command is used to enable or disable the echoing  of
  521.           input (commands and information) to the terminal.  This parameter
  522.           is stored in NOVRAM.
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.                The 'F' command is used to  set  the  frame  acknowledgement
  537.           interval.  This interval is used to compute the timeout  interval
  538.           before a packet is retransmitted, using the formula:
  539.  
  540.                time (seconds) = frame ack * (2 * number of digipeaters + 1)
  541.  
  542.           A separate frame acknowlegement interval value is maintained  for
  543.           each connection channel.  The value stored in channel 0  is  used
  544.           to  initialize  each  connection  channel  after   a   reset   or
  545.           disconnection, and is the value that is stored in NOVRAM.
  546.  
  547.                The 'G' command is used to interrogate virtual tnc  channels
  548.           when host mode is enabled.  If no  parameter  is  specified,  the
  549.           next chronological item (information  or  link  status)  will  be
  550.           returned, provided there is one.   This  command  is  invalid  in
  551.           terminal  mode.   A  later  section  is  devoted  to  host   mode
  552.           operation.
  553.  
  554.                The 'H' command is used to set the  HDLC  baud  rate.   Non-
  555.           standard values are rounded down to the next possible baud  rate.
  556.           In this case, use an 'H' command with no paramter to display  the
  557.           value actually set.  This parameter is stored  in  NOVRAM.   HDLC
  558.           rates up to 9600 baud are supported if the  fast  clock  mode  is
  559.           enabled.
  560.  
  561.                The 'I' command is used to set the  tnc  source  call  sign.
  562.           The initial value is all blanks.  After the source call sign  has
  563.           been entered, the 'PERM' command should be used to  save  it  for
  564.           use during subsequent operation.  Changing the  tnc  source  call
  565.           sign while connected is not permitted.  If the  tnc  source  call
  566.           sign is left blank, the tnc will not activate the transmitter PTT
  567.           line.
  568.  
  569.                The 'JHOST' command is used to select between  terminal  and
  570.           host modes.  A later section is devoted to host mode operation.
  571.  
  572.                The 'K' command is used to calibrate  the  tnc  modem.   The
  573.           following parameters set the calibration modes listed:
  574.  
  575.                Parameter         Calibration
  576.                ---------         -----------
  577.                    1          FREQUENCY COUNTER
  578.                    2          TONE LEVEL & NULL
  579.  
  580.           The frequency counter mode will display the measured  frequencies
  581.           on the terminal.  When each mode is  selected,  jumpers  settings
  582.           are displayed as well as the appropriate ajustment  points.   The
  583.           values shown in parenthesis are the normal targets for 1200  baud
  584.           operation.
  585.  
  586.                The 'L' command is used to display the link status of one or
  587.           all channels.   Information  displayed  includes  the  connection
  588.           path, number of receive frames not yet displayed, number of  send
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.           frames not yet transmitted, number of transmitted frames not  yet
  602.           acknowledged, and the  current  retry  count.   A  '+'  character
  603.           preceeding the channel number indicates  the  currently  selected
  604.           channel.  Operation of this command when host mode is enabled  is
  605.           somewhat different, and is described in a later section.
  606.  
  607.                The 'M' command is used to set the  frame  monitoring  mode.
  608.           The command parameter determines the types of  frames  monitored,
  609.           and is a list of desired frames chosen from the  letters  in  the
  610.           following table:
  611.  
  612.                LTR       FRAME
  613.                ---       -----
  614.                 N        None
  615.                 I        I frames
  616.                 U        UI frames
  617.                 S        Supervisory frames
  618.                 C        Monitor while connected
  619.                 R        Monitor received frames (addressed to)
  620.                 T        Monitor transmitted frames (addressed from)
  621.                 +        Call signs to be included (maximum of 8)
  622.                 -        Call signs to be excluded (maximum of 8)
  623.  
  624.           The '+' and '-' parameters may not be used together.   If  either
  625.           is used, it must be the last parameter (followed by one to  eight
  626.           call signs,  if  applicable).   If  no  list  of  call  signs  is
  627.           specified to be included or excluded,  all  call  signs  will  be
  628.           candidates for monitoring.  Entering a '+' or '-'  with  no  call
  629.           signs will empty the list.  This parameter is stored in NOVRAM.
  630.  
  631.                The 'N' command is used to set the maximum number of times a
  632.           frame  will  be  transmitted  without  receiving  an  appropriate
  633.           acknowledgement, before a link failure is  assumed.   A  separate
  634.           maximum number of tries value is maintained for  each  connection
  635.           channel.  The value stored in channel 0  is  used  to  initialize
  636.           each connection channel after a reset or  disconnection,  and  is
  637.           the value that is stored in NOVRAM.
  638.  
  639.                The 'O' command  is  used  to  set  the  maximum  number  of
  640.           unacknowledged I frames that may be outstanding at any one  time.
  641.           A separate maximum number of unacknowledged  I  frames  value  is
  642.           maintained for each connection  channel.   The  value  stored  in
  643.           channel 0 is used to initialize each connection channel  after  a
  644.           reset or disconnection, and  is  the  value  that  is  stored  in
  645.           NOVRAM.
  646.  
  647.                The 'PERM' command is used to change  the  parameter  values
  648.           stored in NOVRAM to those that are currently set.
  649.  
  650.                The 'QRES' command is used to restart the firmware as  if  a
  651.           hardware reset had been issued.
  652.  
  653.                The 'R' command is used to enable or disable the digipeating
  654.           of frames.  This parameter is stored in NOVRAM.
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.                The 'S' command  is  used  to  select  the  current  channel
  669.           number.  This parameter is stored in NOVRAM.
  670.  
  671.                The 'T' command is used to set the transmitter  keyup  delay
  672.           interval.  The parameter is specified in 10ms  increments.   This
  673.           parameter is stored in NOVRAM.
  674.  
  675.                The 'U' command is used  to  enable  or  disable  unattended
  676.           modes.  If QST mode is not used, previously entered text will  be
  677.           retained if new text is not provided.  If QST mode  is  selected,
  678.           the interval and text must be  supplied.   The  QST  interval  is
  679.           specified in minutes from 1 - 65,535.
  680.  
  681.                The 'V' command is used to select whether  version  1  or  2
  682.           protocol will be used to initiate a link connection.  A  separate
  683.           protocol version value is maintained for each connection channel.
  684.           The value  stored  in  channel  0  is  used  to  initialize  each
  685.           connection channel after a reset or  disconnection,  and  is  the
  686.           value that is stored in  NOVRAM.   Interrogating  this  parameter
  687.           during a connection will reflect the protocol  version  currently
  688.           being used on that channel.  Changing the protocol version during
  689.           a connection is not permitted.
  690.  
  691.                The 'W' command is used to set the digipeater wait interval.
  692.           The parameter is specified in 10ms increments.  This parameter is
  693.           stored in NOVRAM.
  694.  
  695.                The 'X' command is used to enable or disable the transmitter
  696.           PTT line.  This parameter is stored in NOVRAM.
  697.  
  698.                The 'Y' command  is  used  to  set  the  maximum  number  of
  699.           connections that may  established  by  incoming  requests.   This
  700.           command has no  effect  on  the  operators  ability  to  initiate
  701.           outgoing  connection  requests.   This  parameter  is  stored  in
  702.           NOVRAM.
  703.  
  704.                The 'Z' command is used to enable or  disable  flow  control
  705.           and xon/xoff handshaking to the terminal.   If  flow  control  is
  706.           enabled, output to the terminal will be inhibited while  entering
  707.           commands or information.  If flow control is disabled, output  to
  708.           the terminal will not be restricted.  Flow control  and  xon/xoff
  709.           handshaking should be disabled during periods in which the tnc is
  710.           operated without a terminal, to  avoid  suspending  output  which
  711.           will consume buffers.  If xon/xoff handshaking  is  enabled,  crt
  712.           scrolling may be stopped and started using CONTROL-S and CONTROL-
  713.           Q characters.  Flow control  and  xon/xoff  handshaking  are  not
  714.           performed when host mode is enabled.  This parameter is stored in
  715.           NOVRAM.
  716.  
  717.                The '@'  command  is  a  software  maintenance  command.   A
  718.           parameter of 'B' will display the  number  of  free  buffers.   A
  719.           parameter of 'C0' will select timing parameters  for  the  slower
  720.           cpu  clock  rate.   A  parameter  of  'C1'  will  select   timing
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.           parameters for the faster cpu clock rate.  The 'C'  parameter  is
  734.           stored in NOVRAM and must be PERMed if the change is to  stay  in
  735.           effect following a reset.  The 'P' parameter is used to  set  the
  736.           protocol id byte for each channel and is supplied  and  displayed
  737.           in hexadecimal.  A parameter of 'S' will display the current link
  738.           state.  The 'T2' parameter is used to set the timer T2  interval,
  739.           just as the 'T3' parameter is used to set the timer T3  interval.
  740.           The timer intervals are specified in 10ms  increments,  and  both
  741.           are stored in NOVRAM.  Timer T2  controls  the  amount  of  delay
  742.           between the time an information frame is received  and  the  time
  743.           the resulting response frame is sent.  This delay allows multiple
  744.           frames to be acknowledged with a single response.   Timer  T3  is
  745.           used maintain link integrity.  If there is no activity during the
  746.           T3 interval, the tnc will poll to verify the distant  station  is
  747.           still connected.
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.                                  HOST MODE OPERATION
  800.                                  ===================
  801.  
  802.  
  803.  
  804.                Host mode is intended to provide a user  interface  suitable
  805.           for operation under control of a host  processor.   Commands  and
  806.           information to the tnc, as well as status  and  information  from
  807.           the tnc, are clearly identified to allow orderly and  unambiguous
  808.           communication.  To alleviate any need for  hardware  or  software
  809.           handshaking,  the  tnc  will  not  send  to  the  host  processor
  810.           unsolicited,  and  all  exchanges  are  limited  to  256   bytes.
  811.           Information transfers are fully transparent.
  812.  
  813.                When host mode is enabled, the first byte sent  to  the  tnc
  814.           must be a channel number.  If  information  is  being  sent,  the
  815.           second byte must be a binary 0.  If a command is being sent,  the
  816.           second byte must be a binary 1.   The  third  byte  must  be  the
  817.           binary length of the actual information or  command,  decremented
  818.           by 1 (vacuous information or commands are  not  permitted).   The
  819.           actual  information  or   command   bytes   must   follow   last.
  820.           Information sent to channel 0 will be sent unproto.   Information
  821.           sent to an unconnected channel 1 - 4 will be discarded.  The  tnc
  822.           will respond to both information  and  commands  with  a  channel
  823.           number first, followed by a binary code of 0, 1, or 2, signalling
  824.           success or failure.  Codes of 1 or 2 will be followed by  a  null
  825.           terminated message.  Channels may be  interrogated  for  incoming
  826.           information or link status by using  the  'G'  command.   Monitor
  827.           headers and monitor information will always be sent to channel 0,
  828.           along with connect request link status messages.  All other  link
  829.           status messages will be sent to the  appropriate  channel,  along
  830.           with that channels connected information.  In response to  a  'G'
  831.           command, the tnc  will  respond  with  a  channel  number  first,
  832.           followed by a binary code of 0 if  nothing  is  available,  or  a
  833.           binary code of 3 - 7, identifying the bytes that follow.  A  code
  834.           of  4  indicates  the  monitored  frame  does  not   contain   an
  835.           information field.  A code of 5  indicates  the  monitored  frame
  836.           does contain an information field, and the next  'G'  command  on
  837.           channel 0 will return that information field, preceeded by a code
  838.           of 6.
  839.  
  840.                    Host to Tnc
  841.                    -----------
  842.  
  843.           CHANNEL   CODE           DESCRIPTION
  844.           -------   ----           -----------
  845.              n       0        Information (preceeded by length-1)
  846.              n       1        Command     (preceeded by length-1)
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.                    Tnc to Host
  866.                    -----------
  867.  
  868.           CHANNEL   CODE           DESCRIPTION
  869.           -------   ----           -----------
  870.              n       0        Success (nothing follows)
  871.              n       1        Success (message follows, null terminated)
  872.              n       2        Failure (message follows, null terminated)
  873.              n       3        Link Status (null terminated)
  874.              n       4        Monitor Header (null terminated)
  875.              n       5        Monitor Header (null terminated)
  876.              n       6        Monitor Information (preceeded by length-1)
  877.              n       7        Connect Information (preceeded by length-1)
  878.  
  879.           Success messages
  880.           ----------------
  881.  
  882.           {channel status}
  883.           {parameter value}
  884.           CHANNEL NOT CONNECTED
  885.  
  886.           Failure messages
  887.           ----------------
  888.  
  889.           INVALID COMMAND
  890.           TNC BUSY - LINE IGNORED
  891.           CHANNEL ALREADY CONNECTED
  892.           STATION ALREADY CONNECTED
  893.  
  894.           Link Status messages
  895.           --------------------
  896.  
  897.           BUSY fm {call} via {digipeaters}
  898.           CONNECTED to {call} via {digipeaters}
  899.           LINK RESET fm {call} via {digipeaters}
  900.           LINK RESET to {call} via {digipeaters}
  901.           DISCONNECTED fm {call} via {digipeaters}
  902.           LINK FAILURE with {call} via {digipeaters}
  903.           CONNECT REQUEST fm {call} via {digipeaters}
  904.           FRAME REJECT (x y z) fm {call} via {digipeaters}
  905.           FRAME REJECT (x y z) to {call} via {digipeaters}
  906.  
  907.           x y z = FRMR information bytes
  908.  
  909.           Monitor Header format
  910.           ---------------------
  911.  
  912.           fm {call} to {call} via {digipeaters} ctl {name} pid {hex}
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.           Channel Status format
  932.           ---------------------
  933.  
  934.           a b c d e f
  935.  
  936.           a = Number of link status messages not yet displayed
  937.           b = Number of receive frames not yet displayed
  938.           c = Number of send frames not yet transmitted
  939.           d = Number of transmitted frames not yet acknowledged
  940.           e = Number of tries on current operation
  941.           f = Link state
  942.  
  943.               Possible link states are:
  944.  
  945.                0 = Disconnected
  946.                1 = Link Setup
  947.                2 = Frame Reject
  948.                3 = Disconnect Request
  949.                4 = Information Transfer
  950.                5 = Reject Frame Sent
  951.                6 = Waiting Acknowledgement
  952.                7 = Device Busy
  953.                8 = Remote Device Busy
  954.                9 = Both Devices Busy
  955.               10 = Waiting Acknowledgement and Device Busy
  956.               11 = Waiting Acknowledgement and Remote Busy
  957.               12 = Waiting Acknowledgement and Both Devices Busy
  958.               13 = Reject Frame Sent and Device Busy
  959.               14 = Reject Frame Sent and Remote Busy
  960.               15 = Reject Frame Sent and Both Devices Busy
  961.  
  962.  
  963.  
  964.           NOTE 1:  Only items a and b are displayed for channel 0.
  965.  
  966.           NOTE 2:  Only states 0 - 4 are possible if version 1 is in use.
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.                                  DEFAULT PARAMETERS
  998.                                  ==================
  999.  
  1000.  
  1001.  
  1002.                In some instances, it  may  be  desirable  to  have  default
  1003.           parameters which differ from the standard values.  To allow  easy
  1004.           access, all default parameters have been placed at the  beginning
  1005.           of the EPROM.  The following listing defines the layout  of  this
  1006.           area:
  1007.  
  1008.                TYPE     VALUE          DESCRIPTION
  1009.                ----     -----          -----------
  1010.                BYTE      1BH           COMMAND CHARACTER
  1011.                BYTE    '      ',60H    SOURCE CALL SIGN (SEE NOTE 1)
  1012.                WORD     000AH          HDLC BAUD RATE DIVISOR (SEE NOTE 2)
  1013.                BYTE      06H           TERMINAL BAUD RATE
  1014.                BYTE      01H           MAXIMUM CONNECTIONS
  1015.                BYTE      03H           MONITOR MODE (SEE NOTE 3)
  1016.                BYTE      01H           REPEATER DISABLE/ENABLE
  1017.                BYTE      10H           REPEATER WAIT (10ms)
  1018.                BYTE      1EH           TRANSMITTER DELAY (10ms)
  1019.                BYTE      03H           FLOW CONTROL MODE
  1020.                BYTE      01H           TRANSMITTER PTT DISABLE/ENABLE
  1021.                BYTE      01H           CHANNEL NUMBER
  1022.                BYTE      01H           AUTO LINEFEED DISABLE/ENABLE
  1023.                BYTE      01H           ECHO COMMAND LINE DISABLE/ENABLE
  1024.                BYTE      01H           VERSION 2 INITIATED DISABLE/ENABLE
  1025.                BYTE      04H           MAXIMUM UNACKNOWLEDGED FRAMES
  1026.                BYTE      0AH           MAXIMUM TRY COUNT
  1027.                BYTE      03H           FRAME ACKNOWLEDGE INTERVAL
  1028.                BYTE      00H           FAST CLOCK DISABLE/ENABLE
  1029.                BYTE      64H           TIMER T2 INTERVAL (10ms)
  1030.                WORD     4650H          TIMER T3 INTERVAL (10ms)
  1031.                BYTE      F0H           PROTOCOL ID
  1032.                BYTE    'CQ    ',60H    UNPROTO CALL SIGN (SEE NOTE 1)
  1033.                BYTE      01H           VALIDATE CALL SIGN ENABLE/DISABLE
  1034.                BYTE      00H           STOP BIT/WORD LENGTH (SEE NOTE 4)
  1035.                BYTE      00H           PARITY (SEE NOTE 5)
  1036.  
  1037.  
  1038.             DISABLE = 00H / ENABLE = 01H
  1039.  
  1040.  
  1041.           NOTE 1:  The secondary station id must be shifted  left  one  bit
  1042.           and or'ed with 60H.
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.           NOTE 2:  The  HDLC  baud  rate  divisor  is  computed  using  the
  1064.           formula:
  1065.  
  1066.           SLOW CLOCK:     divisor = (14400 / buad rate) - 2
  1067.  
  1068.           FAST CLOCK:     divisor = (28800 / buad rate) - 2
  1069.  
  1070.           The HDLC baud rate divisor is stored most significant byte first.
  1071.  
  1072.  
  1073.           NOTE 3:  The monitor mode is composed from the following bits:
  1074.  
  1075.                BIT       FRAME
  1076.                ---       -----
  1077.                 0        I frames
  1078.                 1        UI frames
  1079.                 2        Supervisory frames
  1080.                 3        Monitor while connected
  1081.                 4        Monitor received frames (addressed to)
  1082.                 5        Monitor transmitted frames (addressed from)
  1083.  
  1084.  
  1085.           NOTE 4:  Stop bit and word length is controlled by the  following
  1086.           bit assignments:
  1087.  
  1088.                BIT 7     STOP BIT
  1089.                -----     --------
  1090.                  0       1 stop bit
  1091.                  1       2 stop bits
  1092.                  1       1.5 stop bits (word length=5/parity disabled)
  1093.                  1       1 stop bit (word length=8/parity enabled)
  1094.  
  1095.                BIT 6-5   WORD LENGTH
  1096.                -------   -----------
  1097.                  0 0     8 bits
  1098.                  0 1     7 bits
  1099.                  1 0     6 bits
  1100.                  1 1     5 bits
  1101.  
  1102.           Bits 4-0 MUST be set to 0.
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.           NOTE 5:  Parity is controlled by the following bit assignments:
  1130.  
  1131.                BIT 7-6   PARITY CONTROL
  1132.                -------   --------------
  1133.                  0 0     Odd parity transmitted/received
  1134.                  0 1     Even parity transmitted/received
  1135.                  1 0     Mark parity transmitted/parity check disabled
  1136.                  1 1     Space parity transmitted/parity check disabled
  1137.  
  1138.                BIT 5     PARITY ENABLE
  1139.                -----     -------------
  1140.                  0       Parity disabled
  1141.                  1       Parity enabled
  1142.  
  1143.           Bits 4-0 MUST be set to 0.
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.