

































































     KERMIT(1)                QNX Software Manual                 KERMIT(1)


     NAME        NAME 
          kermit - file transfer, virt.  terminal over tty link 

     SYNOPSIS        SYNOPSIS 

               kermit c [ lbe ] [ line ] [ baud ] [ esc ] 

               kermit r [ ddilb ] [ line ] [ baud ] 

               kermit s [ ddilb ] [ l
ine ] [ baud ] file ...  

     DESCRIPTION        DESCRIPTION 
          Kermit                                                                   Kermit provides reliable file transfer and primitive virtual 
          terminal communication   between  machines.    It  has  been
          implemented   on   many   different   computers,   including
          microprocessors (see  below).   The files transferred may be
          arbitrary ASCII  data  (7-bit  characteand  may  be  of  any
         length.    The   file   transfer  protocol  uses  small  (94
          character) checksummed packets, with ACK/NACK responses  and
                       Kermit                                                     timeouts.    Kermit currently uses a five second timeout and
          ten retries.  

                                 kermit                                                The arguments to  kermit are a set of flags (no  spaces
          between the flags), three optional
args (which, if included, 
          must  be in the same order as the flags which indicate their
          presence), and, if this is a Send operation a list of one or 
                                                                   tar            more files.  (It is similar in some way to  the  Unix    tar
          command structure).  

               Kermit                                                                   Kermit has three modes, Connect, Send, and Receive. The
     first  is  for  a virtual terminal connection, the other two
          for file transfer.  These modes are specified by  the  first
                                c  s  or r                                         flag, which should be c, s, or r, respectively.  Exactly one 
          mode must be specified.  

                      d                     kermit                                     The    d flag (debug) makes  kermit a bit more verbose.
                     kermit
                                              The states kermit goes through are printed along with  other
                                                     d                            traces  of  it's  operation.    A  second  d flag will cause
          kermit                                                   kermit to give an even more detailed trace.  

                    i                                                                   The  i flag (image) allows slightly more efficie
nt file 
          transfer between  Unix  machines.    Normally  (on   Kermits
          defined to run on Unix systems) newline is mapped to CRLF on 
          output, CR's are discarded on input, and bytes are masked to 
          7 bits.  If this is set, no mapping is done on newlines, and 
          all eight  bits  of each byte are sent or received.  This is
          the default for non-Unix kermits.  

                    l                                           kermit
      The  l flag (line) specifies the tty line that   kermit
          should use  to  communicate with the other machine.  This is
                                                                     l            specified as a regular device name, like "$mdm". If  no    l
                                                                kermit            option  is  specified,  standard  input  is used and  kermit
          assumes it is running  on  the  remote  host  (ie.  NOT  the
machine to which your terminal is attached).  

                      b                                                                The    b  flag  (baud)  sets  the baud rate on the line
                           l                                    b                  specified by the l flag.  No changes are made if the  b flag 
          is not used.  Legal speeds are: 110, 150, 300,  1200,  2400,


                                      -1-


     KERMIT(1)                QNX Soft
ware Manual                 KERMIT(1)


          4800, 9600.  

                      e                                                                The    e flag (escape) allows the user to set the first
          character of the two character escape sequence  for  Connect
                                                      kermit                       mode.  When the escape character is typed,  kermit will hold 
          it and  wait  for the next character.  If the next character

              c     C  kermit                                                     is  c or  C, kermit  will  close  the  connection  with  the
                                                              b     B             remote host.    Similarly, if the next character is b or  B,
          kermit                                                                  kermit will send a BREAK signal to the remote host.  If  the
                                     ____
          second  character  is  the same as the escape character, the
          escape character itself is passed.  Any character other than 
          these three results in a  bell  being  sent  to  the  user's
          terminal and  no  characters passed to the remote host.  All
          other typed characters are passed through  unchanged.    The
          default escape character is '^'.  

                      p                                                                The
p  flag  (parity)  allows  parity  to  be set on
          outgoing packets and stripped on incoming  ones.    This  is
          useful  for  communicating  with IBM hosts or over networks,
          such as TELENET, that usurp the parity bit.    The  possible
          values  for  parity  are mark, space, even, odd or none (the
          default).  

                    t                         kermit                                    The  t flag (turnaround) tells kermit while in protoc
ol 
          mode  (sending  or  receiving)  to  wait  for  a  turnaround
          character  (XON)  from  the other host after receiving every
                                             kermit                                packet.  This is necessary to run  kermit with a half duplex 
          host such as an IBM mainframe.  

                    h                            kermit                                The  h flag (half duplex) makes   kermit  echo  locally
          any char
acters   typed  in  connect  mode.    This  is  also
          necessary to communicate with a half duplex system  like  an
          IBM  370.   The file arguments are only meaningful to a Send
          kermit                  kermit                                          kermit.  The Receiving  kermit will  attempt  to  store  the
          file  with  the  same  name  that  was used to send it.  QNX
          kermits                                                                 kermits n
ormally convert outgoing file  names  to  uppercase
                                                        f                         and incoming  ones  to  lower  case (see the  f flag).  If a
          filename contains a slash  (/)  all  outgoing  kermits  will
          strip  off  the  leading  part  of the name through the last
          slash.  

     EXAMPLE        EXAMPLE 
          For this example we will assume two QNX machines.    We  are
          logged   onto  "qnxa"  (the
  local  machine),  and  want  to
          communicate with "qnxb" (the remote machine).   There  is  a
          modem on "$mdm".  

               We  want to connect to "qnxb", then transfer "file1" to
          that machine.  

          We type: kermit clb $mdm 1200 

          Kermit answers: Kermit: connected...  

          Now we dial  the  remote  machine  and  connect  the  modem.
          Anything  typed  on  the terminal will be sent to the remote
          machine a
nd any output from that machine will  be  displayed
          on our  terminal.   We hit Control-Z, get a login herald and


                                      -2-


     KERMIT(1)                QNX Software Manual                 KERMIT(1)


          log in.  

                                       kermit                                           Now we need to start a  kermit on the remote machine so 
          that we can send the file over.    First  we  start  up  the
                                              kermit                             remote,  (in  this  case receiving)  kermit, then the local,
          (sending) one.  Remember that we are talking to  qnxb  right
          now.  

               We type: kermit r 
                                   kermit                      (there is now a Receive  kermit on qnxb) 

                                                             c                         We  type  ^  (the escape character) a
nd then  c to kill
                                  kermit               the local (Connecting)  kermit.  

               Kermit disconnected.  

               We type: kermit slb $mdm 1200 file1 

               Kermit answers: Sending file1 as FILE1 

                                                    kermit                             When the transmission is finished,   kermit  will  type
          either  "Send complete", or "Send failed.", depending on the
          success
 of the transfer.  If we now  wanted  to  transfer  a
          file  from qnxb (remote) to qnxa (local), we would use these
          commands: 


                    kermit clb $mdm 1200
                    (connected to qnxb)
                    kermit s file9
                    ^c (up-arrow c not control-c)
                    (talking to qnxa again)
                    kermit rl $mdm 1200



               After all the transfers were done,  we  should  connect
                                  kermit                         again, log off of qnxb, kill the Connect  kermit and hang up 
          the phone.  

               Detail  on other implementations and on the protocol is
                        ______ _____ _____            ______  ________            given in the  Kermit Users Guide , and the  Kermit  Protocol
          ________             Handbook 

     FEATURES        FEATURES 

               The   KERMIT   Protocol   uses   onl
y   printing  ASCII
          characters, Ctrl-A, and CRLF. Ctrl-S/Ctrl-Q flow control can 
          be  used  "underneath"  the  Kermit  protocol  (TANDEM  line
          discipline on Berkeley Unix).  

                      kermit                                                           This   kermit does have timeouts when run under QNX, so
          the  protocol  is  stable  when  communicating  with  "dumb"
          kermits (that don't have timeouts).  

     OTHER IMPLEMENTATIO
NS        OTHER IMPLEMENTATIONS 
          Kermits  have been written for TOPS-20, TOPS-10, IBM VM/CMS,
          Unix, VAX/VMS, RT-11, MS-DOS, CP/M, and Apple DOS.  


                                      -3-


     KERMIT(1)                QNX Software Manual                 KERMIT(1)


                        kermit                                                         The QNX  kermit in use at Merrell Dow has  been  tested
          with  MS-Kermit (PC-DOS), Ckermit (Xenix), U
nix Kermit (Unix
          System V) Kermit-11 (RSX-11M) ,  Kermit-32  under  VMS,  and
          Kermit-20  under  TOPS-20.  More information is given in the
          ______ _____ _____               Kermit Users Guide.  

     SEE ALSO        SEE ALSO 
          stty(1) 

               ______ _____ _____  ______ _______  _ ___ __                             Kermit Users Guide, Fourth Edition (4 May 83), Frank da 
          Cruz, Daphne Tzoar, Bill Catchings 

               ____
__ ________ ______  ________ _______  _   __  _____                 Kermit Protocol Manual, Protocol Version  3  (29  April
          __                                             83), Frank da Cruz, Bill Catchings 

               Both  of  the  above  documents  are  from the Columbia
          University Center for Computing Activities,  New  York,  New
          York, 10027.  

     AUTHORS        AUTHORS 
          KERMIT  kernel by Bill Catchings, Columbia University Center
     for Computing Activities 

               KERMIT-Unix adaptation by Chris Maio and  Bob  Cattani,
          Columbia University Computer Science Dept.  

               Local  mods  for v6, System III, and System V by Walter
          Underwood. Includes bug fixes from Jim Guyton at RAND-Unix.  

               KERMIT-QNX adaption by Anthony J. Starks at Merrell Dow 
          Research Institute.  

     DIAGNOSTICS        DIAGNOSTICS 
           cannot open device
  "cannot open device" 

                                 line                                             The file named in the  line argument did not  exist  or  had
          the wrong permissions.  

           bad line speed              "bad line speed" 

               baud                                              The  baud argument was not a legal speed.  

           Could not create file              "Could not create file" 

                        kermit
                                        A  Receive    kermit could not create the file being sent to
          it.  

           nothing to connect to              "nothing to connect to" 

                     kermit                        line                        A Connect  kermit was started without a  line argument.  

     BUGS AND CAVEATS        BUGS AND CAVEATS 
          There is no  locking  on  the  use  of  the  outgoing  line.
                                     kermit
                                      Several  users  could run  kermit  (or anything else) on the
          line simultaneously.  

               The name "kermit" is not an acronym,  but  named  after
          the frog  of  Seasame Street fame.  ("Kermit" is also Celtic


                                      -4-


     KERMIT(1)                QNX Software Manual                 KERMIT(1)


          for "free") 

               This  implementation   does   not   send   or
   process
          error-message packets.  

               Eight-bit quoting is not implemented.  

               Terminal  emulation mode drops characters after 1200(?)
          baud.  

               The message "GETC: file not open for read" or some such 
          may occur during transfers.  
















































                                      -5-


