VMS Kermit Distribution Document Introduction : This directory contains a VMS version of the Kermit protocol. Kermit, "KL-10 Error-free Reciprocal Microcomputer InterChange over TTY-Lines", as the acronym implies, is a means for allowing errorfree transfer of files between computers over normal terminal communication lines. The protocol was originally designed for Digital Equipment's DECSYSTEM-20 KL 10 machines, but within recent years has been extended to work on a variety of other processors; both mainframes (Vax, IBM/VM, etc.), and micros (CP/M systems, Apples, ...). The Kermit distribution is currently maintained by Columbia University, the original implementors of the TOPS-20 Kermit. 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. *************************************************************************** Use @VXREN to rename files *************************************************************************** The pascal code implemented i) the Kermit protocol (file(s) KERMIT.PAS, VERSION.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) As mentioned earlier, there are a few minor differences between the VMS Kermit, and the standard 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 : (NOTE: you no longer need PASCAL to use this version of KERMIT - just FORTRAN is needed to convert from a "HEX" file) In order to build the VMS Kermit you must perform the following steps : - 2 - 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) : Note : 1. the responses generated by the system are in braces. 2. many kermit commands allow for abbreviations. 3. assumes your 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> } - 3 - {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). Recent changes and/or Bug fixes: (The one for version 1.1D is important -- the rest are less important) 22-MAY-84 Add error messages for file opens and add flush of TypeAhead in SendInit. Add message for non-ascii send in Text file. (Version 1.1A) 23-JUL-84 On unsucessful receive delete file. Modify ErrorPack (Version 1.1B) 26-JUL-84 Increase line length for Text file to 255 on write. Fix DataToFile for sequence. (Version 1.1C) !! 10-AUG-84 GetData does not quote properly !! (Version 1.1D) 22-AUG-84 Fix GetData for DEL. Modify ErrorPack. (Version 1.1E) Address: University of Toronto Computing Services Attention: Bruce W. Pinn 255 Huron Street TORONTO, Ontario Canada M5S 1A1 Telephone: (416) 978-7063