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