                VMS Fortran/Pascal Kermit Distribution Document

                                 Bruce W. Pinn
                             University of Toronto
                              Computing Services
                               255 Huron Street
                               TORONTO, Ontario
                                Canada M5S 1A1

                          Telephone:  (416) 978-7063


[Editor's Note -- This is one of several implementations of KERMIT for VAX/VMS.
 Others include the Bliss-32 version from Stevens Institute of Technology, and
 an adaptation of UNIX Kermit for VMS.]

Introduction :

     This directory contains a VMS version of the Kermit protocol.  Kermit is a
means for allowing error free transfer of files between computers over normal
terminal communication lines.  The Kermit distribution is currently maintained
by Columbia University, the original designers of the protocol.

Implementation Differences (VMS Kermit .vs. TOPS-10):

     The VAX/VMS Kermit with a few minor exceptions is a full working Kermit.
It has been tested against the TOPS-10/TOPS-20 implementations with complete
success.  VMS kermit was implemented in two languages;  pascal, and fortran.

The pascal code implemented
	i) the Kermit protocol			(file(s) KERMIT.PAS)
       ii) the Kermit command parser		(file(s) PARSER.PAS,
							 PGLOBAL.PAS)

The fortran code implemented
	i) VMS virtual terminal support		(file(s) VTERM.FOR,
							 VTGLOBAL.FOR, 
							 BOOLEANS.FOR,
						 	 SSDEF.FOR, 
							 TTDEF.FOR,
						 	 IODEF.FOR)

[Editor's note:  These files have been placed in the monolithic KERMIT
 distribution directory with the prefix VF.  Before using these files, you
 should move them to a separate area and rename them as follows:

KERMIT Distribution Name                    Original Name 
------------------------                    -------------
VFREADME.TXT                                AAAREADME.TXT
VFBOOLEA.FOR                                BOOLEANS.FOR
VFINSTAL.COM                                INSTALL.COM
VFIODEF.FOR                                 IODEF.FOR
VFKERMIT.HLP                                KERMIT.HLP
VFKERMIT.PAS                                KERMIT.PAS
VFKERMIT.TXT                                KERMIT.TXT
VFKERMST.DAT                                KERMSTAT.DAT
VFMAKEFI.                                   MAKEFILE.
VFPARSER.PAS                                PARSER.PAS
VFPGLOBA.PAS                                PGLOBAL.PAS
VFSSDEF.FOR                                 SSDEF.FOR
VFTTDEF.FOR                                 TTDEF.FOR
VFVTERM.FOR                                 VTERM.FOR
VFVTGLOB.FOR                                VTGLOBAL.FOR

(end of editor's note)]

There are a few minor differences between VMS Kermit and TOPS-20 Kermit.

	1.  VMS Kermit does not allow the user to specify the virtual
	    terminal escape character sequence.  VMS Kermit uses cntrl-P
	    as its escape character.
	2.  VMS Kermit does not allow the user to specify the out-going
	    vterm line from within the command parser.
	3.  VMS Kermit does not allow the user to specify a new file name
	    when a file name collision occurs (simply generates new name).
	4.  VMS Kermit handles a variety of different input/output file
	    types.
	5.  VMS Kermit handles VMS wildcard names (ie. *.FOR for all
	    fortran files in a directory).
	6.  VMS Kermit gives better file transfer statistics.
	7.  VMS Kermit allows the user to specify vterm line parity, and
	    line speed (300, 600, 1200, 2400, 4800, 9600).

Building VMS Kermit :

     In order to build the VMS Kermit you must perform the following steps :

	a)  place the Kermit distribution in a secure directory with the
	    following protection on all files
		/owner=[1,4]/prot=(s:rwe,o:rwed,g:re,w:re)
	b)  log on to a priviledged account (ie. SYSTEM)
	c)  set default to Kermit directory.
	d)  Read INSTALL.COM, and make appropriate changes to it.
	e)  run the command file (ie. @INSTALL.COM)
	f)  hopefully there should be no errors.  If there are then
	    attempt to resolve them.  Re-do step e).
	g)  place the following lines in your system startup file 
	    (ie. SYSTARTUP.COM)
		$  assign/system  "{terminal list}" kermit$rem0
		$  assign/system  {kermit directory} kermdir:
			where {kermit directory} is the directory that the
					      kermit source is stored in.
		$  assign/system  kermdir:kermit.hlp kermithlp:
			where {terminal list} is a list of out going vterm
					      ports separated by spaces.
					      There must be a least one port.
		(ie. assign/system "_TTA0: _TTA1:" kermit$rem0: )
	h)  place the following lines in your system login file
	    (ie. SYLOGIN.COM)
		$  assign 'f$logical("SYS$OUTPUT")' kermit$local
		$  kermit := @kermdir:kermit.com

Running Kermit :

     An example run of VMS kermit would be as follows (assuming we are
establishing a VMS to DEC-10 Kermit through a Gandalf PACX front end
switching unit) :

Notes :	1.  the responses generated by the system are in braces.
	2.  many kermit commands allow for abbreviations.
	3.  assumes you're in a directory with files ending in .FOR .

     Sending a File(s) to DEC-10 :
	$ kermit <return>
	{Kermit-VMS> } set parity none <return>
	{Kermit-VMS> } set send packet 60 <return>
	{Kermit-VMS> } set receive packet 60 <return>
	{Kermit-VMS> } connect <return>
	{Proceed... }
	<return>
	<return>
	{Enter Class } 10 <return>
	<return>
	{Dec 10 login information } login 356,13536,abcde <return>
	{More Dec-10 login information }
	r kermit <return>
	{Kermit-10> } receive <return>
	cntl-P {Kermit-VMS> } <return>
	{Kermit-VMS> } send*.for <return>
	{Sending File... {a}.FOR}
	{etc... one line for each .FOR file sent }
	{Kermit-VMS> } status <return>
	{status of send ... }
	{Kermit-VMS> } connect <return>
	<return>
	{Kermit-10> } exit <return>
	{examine the transferred files and then ... }
	cntl-P {Kermit-VMS> } exit <return>


     Receiving a File(s) from DEC-10 :
	{ in receiving a file simply get on to the DEC-10 in same manner
	  as before, and replace the DEC-10 receive, with a send <filename>.
	  Return to VAX and type receive.  The following message
		Receiving File... {filename} will appear for each file
	  received. }


     For more details regarding the function of all the Kermit commands
examine the document KERMIT.DOC provided with the distribution.

Bugs or, "If I only had more time":

     1.  A friend of mine informed me that he does not appreciate my
	 virtual terminal program (ie. lumpy response at low baud rates).
	 I make no apologies; the program is tuned for 4800 baud, something
	 which most virtual terminal programs will not allow.  If you desire
	 to use it `constantly' at a slower speed, remove the buffering code
	 from the program.

     2.  Obviously (unfortunately), there are bugs lurking in the uncharted
	 corners of this code.  Please drop me a line if you find it (them).
