8/16/84 kermit

Function: Kermit allows files to be transferred between computers.  The files
          may be ascii or binary.  A kermit program must be available on the
          target (micro) computer.

Version:  Multics Kermit 2.0g of 8/16/84


Syntax:  kermit [<control_args>]

       When invoked without control arguments, kermit will enter a request
       loop.



Control arguments:  

   -logout  Logout after successfully transfering the file.  Must be used
            in conjunction with -send or -receive.  Will not logout if
            errors arise during the transfer.

   -send <star_name>  Send one (or a group) of files to the target system.

   -receive [<pathname>]  Receive a file from the micro.  Send, receive and
                          server are mutually exclusive arguments.

   -set <options>  See below.

   -status  Will display the status of the last transmission.  The name of
            the file, the total number of packets required and the total
            number of retries will be displayed.  This arg is ignored whem
            -send, -receive or -server is used.

   -server  Directs the Multics kermit to become a kermit server (slave).
            Subsequent commands for file transfer come directly from the
            remote computer.

   -show    Show the state of all settable options.  This arg is ignored when
            -send, -receive or -server is used.

   -debug  Debugging option.  Do not use.


The set control arg:
   -set <options>  Set the options to the indicated state.  This must be
                   the last control_arg on the line. Options to be set are
                   typed in following without commas or additional "-set"s

                   The syntax for <options> can be in one of two forms:
                   <option_group) {<parm> <val>} where <option_group> is
                   either send, receive or rec or <option_name> <val>.  Both 
                   types may be intermixed freely on a line.

                   All options for send or receive can be typed in following
                   one instance of the send or receive keyword.  For example,
                   to set the text mode off (binary transfer), default dir to
                   your home directory, the number of pad characters to 3 on
                   send and the send pad character to 002 (octal), use the
                   following command:
                   kermit -send -set text off dir [hd] send padding 3 padchar 2

                   Note that -send, -receive or -server must be used to
                   execute the program.  When executed without one of these
                   arguments, the only effect is to set option values.
                   All set arguments retain values between invocations
                   during the same process except trace and dir.

                   See the section on the set command later in this info
                   file for a complete description of the set parameters
                   and their allowed values.



Usage:

    The standard usage of Kermit to transfer files takes the following form:

    1) Start Kermit on the micro.
    2) Set any desired parameters (eg baud rate for the IBM PC).
    3) Connect to the mainframe.  The micro now appears to be an ordinary
       terminal.
    4) Login to Multics as usual.
    5) Execute the Multics command kermit.  You will get the Multics prompt
       of Kermit-Multics> .
    6) Set any desired parameters.
    7) Execute either a SEND or a RECEIVE command.
    8) Use the escape sequence ctrl-] c to get back to command level at the
       micro.  You will see the micro Kermit prompt.
    9) Execute the corresponding command (ie if the mainframe is expecting
       to RECEIVE a file, execute a SEND command and vice versa).
   10) The micro will display the status of the transmission.  After 
       the file is transfered, a COMPLETED message will be displayed.
       If, for some reason, the file could not be transferred a FAILED
       message will be displayed.
   11) To transfer more files, issue a CONNECT command to the micro.  You
       will be back in Multics-Kermit.  Type a carriage return to get the
       prompt.  Go back to step 7.
   12) If you are finished transferring files, EXIT (or QUIT also q) from 
       Kermit and logout.
   13) Use the ctrl-] c escape sequence to get back to micro-command level
       and exit the local Kermit.


Alternative usage:

    Kermit may also be invoked as a command without entering the request
    loop.  In this case, the action specified by a control argument is
    performed and Kermit will return to Multics command level.  If the
    -logout arg is specified, Kermit will log you out on the Multics
    end if the transfer was completed successfully.  This usage looks like:

    1) Start Kermit on the micro.
    2) Set any desired parameters (eg baud rate for the IBM PC).
    3) Connect to the mainframe.  The micro now appears to be an ordinary
       terminal.
    4) Login to Multics as usual.
    5) Issue the command   kermit -receive  or  kermit -send file_name
       to receive or send a file.  The file_name is optional on the -receive
       command, but necessary on the -send command.  You can also put the
       -logout argument on the line to automatically log you out after
       the transfer completes successfully.
    6) Use the escape sequence ctrl-] c  to get the prompt on the micro.
    7) Issue the corresponding SEND or RECEIVE command to the micro.
    8) The micro will display the status of the transmission.  When
       completed, you will get the micro Kermit prompt.
    9) If the -logout argument was given, you do not have to reCONNECT
       to Multics, you will have been automatically logged out.
   10) If the -logout argument was not given, CONNECT to Multics.  You
       will be at command level, even though you may not see a ready message.
       Logout.  You should also CONNECT if the transfer was unsuccessful.
       In that case, you can try again.  The -logout argument will be
       ignored if the transfer was not successful.


Usage as server:

    Multics Kermit may be placed into a special "slave" mode called server
    mode.  In this case, commands will be issued by the remote computer to
    initiate file transfer.  Once the server is started up, you do not have
    to tell it anything else directly.  Your micro will do it for you.
    Not all micros support kermit server commands, and some will use a
    special form of the RECEIVE command instead of the GET command.  Check
    the documentation on your version.

    1) Start Kermit on the micro.
    2) Set any desired parameters (eg baud rate for the IBM PC).
    3) Connect to the mainframe.  The micro now appears to be an ordinary
       terminal.
    4) Login to Multics as usual.
    5) Issue the command   kermit -server.  This puts Multics into a slave
       mode that you can take advantage of if your micro supports server
       commands.
    6) Use the escape sequence ctrl-] c  to get the prompt on the micro.
    7) Issue the corresponding SEND or GET command to the micro.
    8) The micro will display the status of the transmission.  When
       transmission is complete, the micro kermit prompt will reappear.
       You can send or receive more files just by typing in a send or
       receive command to the micro.
    9) When you are finished either type in a BYE command to logout the Multics
       kermit server or a FINISH command to terminate server mode and return
       to command level.  In the latter case, you should reCONNECT.


Available commands:

   The Multics implementation of Kermit allows the following commands.
   Optional arguments are enclosed in [].  Items to be replaced by actual 
   names or parameters (eg segment names) are enclosed in <>.

   SEND <pathname>  or  SEND <starname>
     Sends either a single file to the micro or a group of files matching
     <starname>.  At least one filename must match <starname> or the
     command is in error.  If all is well, an OK prompt will appear and
     you can go back to the micro.

   RECEIVE [<pathname>]
     Receive either a single file or multiple files from the micro.  When
     sending files from the micro, the name of the file is also sent and
     will be used on the Multics side to name the segment.  In the case of
     sending a single file, the file may be renamed by using an absolute or
     relative pathname for <pathname>.  By default, the files will be
     placed in your working directory.  This may be changed by the SET DIR
     command (see below).  You will get an OK prompt when Multics
     is ready to receive your file(s).


More commands:
   HELP [<command_name>]  When issued without a command name, help will list
     the available kermit commands.  When a command name is used, kermit will 
     display a short description of the command, its parameters and actions.

   EXIT, QUIT, Q
     Leave Kermit and return to the Multics command level.

   EXEC <line>  or  E <line>  or  ..<line>
     Send <line> to the Multics command processor.  Allows Multics commands
     to be executed without leaving Kermit.  The line does not have to be
     enclosed in quotes.

   .  Displays the current kermit version number and date.


The set command:
   SET <mode> <option> <value>  or  SET <option> <value>
     Sets the specified option to <value>.  The parameter <mode> may be 
     either SEND, RECEIVE or REC.  Many of these options are provided for
     compliance with the Kermit standard and are not very useful on
     Multics;  TIMEOUT, DELAY, DIR, and FILE-WARNING are probably the
     most useful.  All options default to standard values.  Setting RECEIVE
     options will change the default values for info coming to Multics from
     the micro.  The micro may override any of these values.
     
     The list of available options for SEND or RECEIVE are

     PADDING <n>  Set the number of padding characters to n.  The default
                  is zero.

     PADCHAR <o>  Set the padding character to that specified by the octal
                  number o.  Note that this is OCTAL.  The default is the
                  null character (octal 000).

     TIMEOUT <n>  Set the number of seconds to wait before giving up on a
                  transmission and retrying.  Defaults to 20.

     PACKET-LENGTH <n>  Set the length of the packet to n.  The default
                  (and maximum allowable) legth is 94.

     END-OF-LINE <o> Set the end of line character to that specified by the
                  octal number o.  The default is a carriage return (octal 15).
                  Note that this parameter may interact with the block transfer
                  modes used during a file transfer.
 
     QUOTE <o>    Set the quote character to that specified by the octal number
                  o.  The default is the # character (octal 43).  This
                  options can only be set for the SEND mode.


   Other Set Options:
   These options take the command form SET <option> <value>.

     DELAY <n>   Set the delay time to n seconds.  This is the time to
                 wait before sending a file after the SEND command has been
                 entered.  The default is to wait 8 seconds.

     DIR <pathname> Set the default directory for segments to be placed in
                 during RECEIVE or looked for during SEND.  The default 
                 is the working directory at the time Kermit was invoked.
                 <Pathname> may be an absolute or relative DIRECTORY 
                 pathname.  To reset this parameter to your current 
                 working directory, the -wd argument may be substituted 
                 for <pathname>.  Active functions in <pathname> are not
                 currently supported.

     FILE-WARNING <on | off>  or FW <on | off>  Set the file warning
                 switch to on or off.  When on, incoming files will be
                 renamed if a segment already exists with that name.
                 The default is off. 

     TEXT <on | off> Sets the file transfer mode.  The default is ON.  When
                 on during receive, character addition to the file halts when 
                 a ctrl-Z is encountered in the input stream.  In addition, 
                 lines are terminated with the standard Multics line 
                 terminator, the line feed.  During transmission, plain line
                 feeds are changed into the standard Kermit line terminator,
                 the carraige return/line feed combination.  When off, these
                 transformations are not enabled and binary files may be
                 sent.  See additional info in notes.

     REPEAT <on | off>  When on, Kermit will request character compression to 
                 be performed.  The default is ON.  If the other end does not
                 support this feature, it will not be used.  If the other end
                 requests this option in a transfer, it will be performed
                 regardless of the setting of this switch.

     PARITY <on | off>  When on, Kermit will precede eight bit characters with
                 a parity quote character when agreed upon by the micro.  When
                 off, parity quoting will never be done.  The default is OFF.
                 Parity quoting reduces transmission efficiency, is not needed
                 for text files and is normally not necessary at all in
                 Multics, although it may be useful over networks.
                 Turning this switch on may require modifying the MODES
                 parameter string.

     TRACE <on | off> Turns a trace facility on to log all packets in a file
                 call Kermit.trace.  This is a debugging feature only.  The
                 default is off.

     CHECKTYPE <1 | 2 | 3> Determines which checksum type Multics kermit will
                 attempt to use when initiating a transfer.  1 is the standard
                 single byte kermit checksum, good for most purposes.  2 is a
                 double byte checksum.  3 is a CRC triple byte checksum formed
                 by dividing the data bit string by the polynomial x**16 +
                 x**12 + x**5 + 1 and using the remainder.  Not all micro
                 kermits will support type 2 or type 3 checksums, in which case
                 type 1 will be used.

     MODES <modes_string>  Kermit modifies the terminal modes when sending or
                 receiving files or when in server mode.  The default modes
                 are suitable for most situations.  In the event that the
                 terminal modes must be modified, the <modes_string> is one
                 that is acceptable to stty.  The modes string is checked upon
                 entry.  Block transfer is a requirement for high speed 
                 transfer over most communications lines.


More Kermit commands:

   SHOW [<option>]
     Displays the status of the user settable option specified.  If entered
     without an option, all options are displayed.  Option may be chosen
     from SEND, RECEIVE, REC, DELAY, DIR, FILE-WARNING, FW, 
     TEXT, REPEAT, PARITY, CHECKTYPE or TRACE.


   STATUS
     Displays the status of the last transmission.  If an error occurred,
     a message stating the error will be shown.


Supported Multics Server Commands:
   When in server mode, the Multics implementation of kermit will support
   the following server commands:

     GET <filename>  (some implementations may use RECEIVE)
     SEND <filename>  - Note files cannot be renamed this way

     BYE
     FINISH
     LOGOUT
     REMOTE CWD <dirname>  - also changes default dir on Multics
     REMOTE DIRECTORY  -  prints current working directory
     REMOTE HELP
     REMOTE HOST <command_line>  - Any legal Multics command line
     REMOTE TYPE <path>  - Prints the indicated segment

   These are commands issued to the kermit running on the local micro that
   are, in turn, relayed to the Multics kermit for execution.  These commands
   are only valid when Mulitcs kermit is in server mode and the commands are
   issued by the micro.  Refer to the relevant micro kermit users guide for
   details.


Notes:
   All commands may be in any mixture of upper and lower case.

   File names are translated into all lower case on the Multics side.
   (except when using the pathname option on the RECEIVE command)

   When TEXT mode is ON, carraige return - line feeds on files transfered TO
   Multics are converted to single line feeds.  When sending files to
   micros, the single line feed is turned into a CR-LF combination for
   the micro kermit to handle as it will.  When TEXT mode is OFF, this
   transformation is not enabled.  See below.

   When text mode is on, binary files may not be transferred properly.  
   If text is on, file transfer halts when either a) the end of the file 
   is reached by the micro or b) an end of file character (ctrl-Z) is 
   encountered in the input stream on the Multics end (this is the default 
   mode).  This should not affect the transfer of straight text files.  
   Binaray files or files containing control Z characters require that 
   text mode be turned off for proper uploading or downloading. 
   Note that this process is symetric.  If you upload a file in binary mode
   it should be downloaded in the same mode to be sure that the file is
   not transformed by the transfer.  If a file has been transfered one
   direction in text mode, it should be transfered the other in the same
   manner.  Text mode transmission of binary files may result in a
   noninvertable transformation being performed on the contents of the file.

   Source files for all of the kermit implementations as of 5/84 are
   currently contained in the directory >udd>ACS>Kermit.
