This is the file INFO;KERMIT >, which documents KERMIT, a file-transfer
program.

Kermit is a file transfer program which can send and receive text files
over a terminal line.  It is particularly useful for transferring files
between an ITS and a PC or other random computer which has a modem but
isn't connected to any network.

For purposes of this presentation, I'll refer to the machine which is at
the other end of the connection as the "PC", even though of course it
can be any machine which runs Kermit.

Typical use of Kermit is as follows:

  1. Get ahold of a terminal emulator and a kermit program for your PC.
     Often these come together in a single package.  Kermit has many
     implementations, inluding versions for Unix, IBM PC (crosstalk?),
     Macintosh, VAX/VMS, and Symbolics 3600.  Many of these are public
     domain.  I think the MIT microcomputer store sells it.  You can
     also get it from Columbia University, which is where Kermit originated.

  2. Start the terminal emulator, dial up the ITS machine on the phone,
     and log in.

  3. Run the Kermit server with the DDT command :KERMIT.  It will inform
     you that it is entering Kermit server mode.

  4. On the PC, run the kermit user program.  This is usually a command
     processor or menu which has commands like GET, SEND, and FINISH.

  5. Issue GET and SEND commands to receive or transmit files.

  6. Issue a FINISH command to halt the ITS KERMIT server.

  7. Return to the terminal emulator to get back to ITS, etc.

In order to accomodate Kermit user programs which are unable to send or
receive filenames with spaces in them, ITS Kermit will treat a period in
the filename as a FN1/FN2 separator.  E.g., to get file FOO STUFF in the
current directory, issue the command GET FOO.STUFF.  Yes, this means
that you can't ask for files that have dots in their names; this is an
unfortunate limitation.

A second filename of LSP, LISP, TXT, or SCM will be ignored (treated
like >).  (This is controlled by the variable *ITS-UNINTERESTING-TYPES*;
see the Parameters node.)

To accomodate Kermit programs that don't like semicolons, but do
like colons, ITS Kermit will treat FOO: as if it were FOO;,assuming
that there is no FOO device.

Kermit is a Maclisp program.  A number of interesting internal
parameters are stored as the values of Lisp global variables.  They can
be changed by using SETQ at a read-eval-print loop or in your Kermit
init file.  For example, if your uname is FOO, you can put

    (PUSH "tex" *ITS-UNINTERESTING-TYPES*)

in your Kermit init file FOO KERMIT.

To get to a read-eval-print loop, type control-G.  To enter Kermit
server mode again, call the function SERVE with no arguments.

E.g.:

        ^G
	QUIT
	(PUSH "tex" *ITS-UNINTERESTING-TYPES*)
	(...)
	(SERVE)
	Entering KERMIT server mode.

Here are some of the things you can set:

  Variable             Default  Description
  *DEBUG?*	       NIL      T means supply debugging info as you run
  *VERSION-NUMBERS?*   NIL      T means include version numbers in file names,
				 whenever possible
  *MAX-RETRY-COUNT*    10.      Times to retry a packet
  *MIN-TIMEOUT*	       2        Minimum timeout interval in seconds
  *SERVER-TIMEOUT*     30       Timeout interval when in server mode
  *SERIAL-INPUT*       NIL      Input stream for serial line
  *SERIAL-OUTPUT*      NIL      Output stream for serial line
  *COMMENTARY-STREAM*  terminal Stream for messages to user
  *DEFAULT-PATHNAME-DEFAULTS*

The variable *ITS-UNINTERESTING-TYPES* is a list of file types that
should be treated as if they aren't there.  The default value is
("LISP" "LSP" "SCM" "TXT" "lisp" "lsp" "scm" "txt" "" :UNSPECIFIC).

See the source code (AI: MATH; KERMIT >) for further inspiration.