SCIENCE AND ENGINEERING RESEARCH COUNCIL RUTHERFORD APPLETON LABORATORY INFORMATICS DIVISION OS 4000 USER NOTE 105 ____________________________________________ Kermit-40 for GEC OS4000(RAL), Version 3.5 issued by M J Loach March 1986 _________________________________________________________________________ ABSTRACT Kermit is an error protected, asynchronous file transfer protocol designed by Columbia University, USA, intended to work over RS232/V24 interfaces. It is widely used as a 'standard' means of file transfer between micro-computers and other micro-computers or larger machines. Any two machines which have Kermit implemented on them can transfer text files, (and sometimes also binary files) provided the necessary hardware inter-connection is provided. Kermit-40 is the implementation for GEC 4000 series computers running under RAL OS4000, and provides the means whereby Kermit on micro (or larger) computers can transfer text and binary files with OS4000 machines. Kermit distribution policy requires that permission hereby be granted to any individual or institution to copy or use this document and the programs described in it, except for explicitly commercial purposes. _________________ Table of Contents 1 Preface.............................................................1 1.1 Revisions for Version 3.2.......................................1 1.2 Revisions for Version 2.1.......................................2 2 Introduction........................................................4 3 Running Kermit-40...................................................7 4 The command list....................................................7 5 The commands, in detail.............................................9 5.1 To send a file, or files, to micro-kermit.......................9 5.2 To receive files from micro-kermit.............................10 5.3 To reset default parameters....................................10 5.3.1 DEBUG (off/on)...........................................12 5.3.2 EOL n....................................................12 5.3.3 STX n....................................................13 5.3.4 PAD n....................................................13 5.3.5 CHAR n...................................................13 5.3.6 SEND n...................................................13 5.3.7 RETRYS n.................................................13 5.3.8 TIME n...................................................13 5.3.9 TIMEOUT n................................................14 5.3.10 QUOTE n.................................................14 5.3.11 8BIT n..................................................14 5.3.12 BINARY (off/on).........................................14 5.3.13 REPEAT..................................................14 5.3.14 NORMAL (on/off).........................................15 5.4 To display the settings of SET parameters......................15 5.5 To switch Kermit-40 into remote Server mode....................16 5.6 To obtain on-line help on the Kermit-40 commands...............17 5.7 To exit from Kermit-40.........................................17 6 Examples of using Kermit-40........................................18 6.1 Example- Kermit-40/IBM PC (Telios).............................18 6.2 Example- Kermit-40/IBM PC (Kermit-MS)..........................20 6.3 Example- Kermit-40/ VAX/VMS (Kermit-32)........................23 7 What to do when things go wrong....................................25 7.1 Failure to be able to Connect to host..........................25 7.2 Failure of the transfer of the file(s).........................25 8 Appendix A.........................................................26 Kermit-40 Users Guide _______ 1 Preface | | _________________________ 1.1 Revisions for Version 3.2 | | This version of Kermit-40 provides the following: | | | Main features: | | * Inclusion of Server mode. | | * Repeat count prefixing available. | | * Receive command can be specified with a filename. | | * A file of initialising commands can be read at the start of a Kermit | run, as provided for in some Kermits as a 'TAKE' file. | | * Packets of upto 94 characters can now be sent, and upto 80 characters | can be received. | | | Bugs fixed: | | * Overprints were still output to &KERMLOG, this has been fixed. | | * Error messages from the Send command were incorrect. | | * I/O buffers have been enlarged, to prevent overwriting problems in | &KERMLOG. | | * Eight bit quoting is now handled whenever agreed, irrespective of the | SET BINARY option. | | * The code has been altered so that the standard GEC version will now | compile. | | * Prefix encoding and decoding is now done on file header packets. | | * A check has been included to prevent text file records received from | exceeding 235 characters. | | | General improvements: | | * The Data Management error code after a DMCONNECT is now written to | &KERMLOG. | | * Conversion of file names to 'normal form' can now be switched off. | | * Output from the SHOW command displays off/on instead of 0/1. | | * In Receive, the message 'oldname receiving as newname' appears in | &KERMLOG. | March 1986 Page 1 Kermit-40 Users Guide | | _________________________ 1.2 Revisions for Version 2.1 This release of Kermit-40 is a more complete version of the Kermit protocol. There are two added main features, eight bit quoting for binary file transfer, and the ability to timeout failed protocol exchanges. A number of bug fixes and other improvements are also incorporated. Main features: * Binary file transfer included, with an eight bit quoting ability. * 10 second timeout added, with SET timeout facility included. Bugs fixed: * Message output when number of packet retries exceeds the maximum allowed. * Help can be abreviated to 'h' instead of 'he'. * Parameters can be abbreviated sensibly. * Overprint control records no longer appear in the logfile. * A command field consisting of only spaces is now treated as a null command instead of causing Exit. * ASCII character Delete is now transferred correctly. * If a transfer was aborted by the micro-kermit, and a subsequent one started, Kermit-40 could crash. This should be fixed. General improvements: * Parameter MAXTRY is renamed to RETRYS. * Parameters IMAGE and REMOTE are redundant and therefore have been removed. * Parameter DEBUG now prints hex values in 8 digits instead of 6. * Parameter SEND should be specified in seconds instead of milli seconds. * Checks are made for correct filetype on opening files, (types LST and LSB ). * Checks are made for legal timeout periods, both for those entered Page 2 March 1986 Kermit-40 Users Guide with SET and the one received in the initialisation exchange. * The logfile is now called &KERMLOG instead of USER.KERMLOG, and is not deleted by Kermit-40. * All error packets have 'Kermit-40' prefix, and will be written to the logfile. ____________________ Binary file transfer OS4000 files with an attribute of type LSB have a concept of variable length records. Records are normally of a length determined by the size of data block written by each Babbage write statement in a particular program. Most other operating systems treat a binary image as a stream of bytes with no record terminators, hence Kermit cannot be used to transfer binary files while retaining this record information. Whilst transfer of binary image streams from other computers to OS4000 and back again will involve the use of records in the GEC file, a correct binary image without records will be returned to the computer receiving the files back again. However, if an LSB file originating from OS4000 is sent away to another machine with Kermit, and then returned to a GEC machine, the record structure will not be preserved in the original fashion. Thus such a file will no longer be useable in the orginal sense under OS4000. Since the binary transfer facility is expected to be used for the movement of binary images between machines other than GECs, where the GEC machine is purely acting as carrier, this is not expected to be of concern. It seems very unlikely that anyone would want to use Kermit-40 for the transfer of OS4000 image files, but if they did then it would be possible to use COPY with OPT BTOT to create a text listing of the file, which could then be transferred to another machine via Kermit, and then rebuilt in the same way using OPT TTOB. March 1986 Page 3 Kermit-40 Users Guide ____________ 2 Introduction Kermit-40 is the RAL GEC implementation of the Kermit file transfer protocol as devised by Columbia University Centre for Computing Activities, USA. It is written to run under OS4000(RAL modified) and enables transfers between a GEC machine and any asynchronously attached micro, also running Kermit. To transfer files, a version of Kermit must be present on both machines involved. There is a version available for most current computer systems, many of which can be obtained all together on magnetic tape from Columbia University. However, some sites in UK maintain a current on-line version of the tape, often including other extra versions which are too new to be included on the Columbia tape. It is useful to look at the filestore of one of these sites, and possibly even to register on their electronic mailing list, particularly if you are going to use Kermit a lot. The exchange of experience, ideas and talk of new versions is worth following. The protocol is based on the use of packets, which are chunks of data with leading and trailing information added indicating the type of packet and helping with error protection. Packets are often about the length of one line on a display terminal, and they can be accepted or rejected by the receiving Kermit. There are different types of packets, not all contain file data, some are for acknowledgment/rejection purposes only, others may contain initialisation parameters or error messages. Data packets contain sequential fragments of the file, often of about 70-80 characters in length, with some protocol information appended 'around' them. There is a checksum character, which is calculated from the whole of the data in one packet, and appended to the end of that packet. If errors occur in transmission, then the checksums will be different and the packet would be rejected for re-sending. By means of this protected packet system, errors can rarely occur in files. However users should be aware that there are ways it can fail, even though the file may appear to transfer correctly. This can happen as the result of multiple separate errors occuring which are opposite in effect in the same packet, which then preserve the correct value of the checksum. All Kermit packets are made up from printable characters only. There are no control characters used by the protocol, except for the beginning of packet marker and the end-of-line (end-of-packet) character, by default ASCII 1 and 13 respectively. Kermit transforms any control characters which appear in data, into printable representations, using a technique called control-quoting. When data is to be transferred with eight bit values then 'eighth bit quoting' will also be used. Repeat | count prefixing is available in order to provide data compression and | therefore greater efficiency over communication lines. | Kermit-40 can operate as a remote Server, and once in this mode, the | user is able to send and receive files at will by issuing commands only | from the local Kermit, without having to 'Connect' back to the remote | Kermit. | Page 4 March 1986 Kermit-40 Users Guide ____________ Reading note In any documentation on the use of Kermit, it is convenient to be able to refer separately to the two Kermits which are to talk to each other. Therefore, from here onwards, the Kermit running on the GEC machine will be referred to as Kermit-40, and that on your micro/mini will be referred to as micro-kermit. In addition, this guide particularly refers to the version of Kermit known as Kermit-40, written for use on the GEC MUMs in SERC, and should be regarded as supplementary to the fuller versions of the Kermit documentation as distributed by Columbia University. They provide two documents, the protocol manual, and the user manual, in addition to other supplementary documents. Recent versions are available on line, and full details of how to read them can be obtained from ICF User Support. All | queries relating to Kermit-40 specifically should be addressed to | | Martin J Loach | | Mail addresses NSIN12 @ UK.AC.RL.GB or via SUPPORT @ UK.AC.RL.GB, | | or at | | ICF User Support, | Rutherford Appleton Laboratory, | Chilton, | Didcot, | Oxon, | OX11 0QX. | | Telephone Abingdon (0235) 446252. | ______________________________ Kermit-40 implementation notes Version 3.2 of Kermit-40 is not a full implementation of any particular version of the Kermit protocol, but has been based on Version 2 and the structure of the prototype program followed that of the UNIX C listing. It embraces most of the essential parts needed to transfer text and binary files successfully with other Kermits of any generation, since Kermits should always be upward-compatible. There are a number of restrictions which the user familiar with other Kermits should be aware of. Kermit-40 works in REMOTE mode only, and therefore has no CONNECT command. No Image mode is possible due to the | restrictions of the RAL OS4000 communications format using even parity. | However 8-bit quoting is available for binary transfers. There is no '?' | help facility, although a limited 'HELP' command is available. Error | checks are done with single character checksumming, no other type is | supported. | March 1986 Page 5 Kermit-40 Users Guide Kermit-40 Capabilities at a glance: | | Local operation: No | Remote operation: Yes | Transfers text files: Yes | Transfers binary files: Yes | Wildcard send: No | ^X/^Y interruption: No | Filename collision avoidance: No | Can time out: Yes | 8th-bit prefixing: Yes | Repeat count prefixing: Yes | Alternate block checks: No | Terminal emulation: No | Communication settings: No | Transmit BREAK: No | IBM mainframe communication: No | Transaction logging: Yes | Session logging: No | Raw transmit: No | Act as server: Yes | Talk to server: No | Advanced server functions: No | Advanced commands for servers: No | Local file management: No | Handle file attributes: No | Command/init files: Yes | Command macros: No | Page 6 March 1986 Kermit-40 Users Guide _________________ 3 Running Kermit-40 Normally micro-kermit will be invoked on the local machine, using the procedures given in the documentation for that version. Once the hardware connection has been established to the remote GEC computer, then the CONNECT command will be used on the micro-kermit, enabling login to the GEC in the usual manner, the micro emulating a terminal. Once logged in Kermit-40 is started on the GEC machine by the command RARESYS.KERMIT . The proforma is: RARESYS.KERMIT IN = stream 1 (*) - | OUT = stream 2 (*/NEW) | WITH = stream 5 (SINK) | | Arguments: | | IN The input stream for commands and reception from the micro-Kermit. | | OUT The output stream used for messages and for transmission to the | micro-kermit. | | WITH The input stream used for initialisation purposes, which may contain | Kermit commands, and is read when Kermit-40 first starts up. | | Other streams: | | 3 The input stream used for reading OS4000 files being sent to | micro-kermit. | | 4 The output stream used for writing files received by Kermit-40. | | 6 The output stream used for writing &KERMLOG, the log file. | The prompt will appear thus: KERMIT-40> ________________ 4 The command list A number of commands are available to set up, and initiate file transfers. ____ SEND Initiate the sending of a file(s) from the GEC to micro-kermit _______ RECEIVE Initiate the reception of a file(s) to be sent from micro-kermit. March 1986 Page 7 Kermit-40 Users Guide ___ SET Alter various default parameters which MAY need to be set according to the micro and communications hardware etc in use. ____ SHOW (also STATUS) Display the current values of all parameters. ______ SERVER | | Switch Kermit-40 into Server mode, further commands are taken from | the micro-kermit. | ____ HELP Obtain help by listing the commands available and/or by giving further information on a particular command. ____ EXIT (also QUIT/END/BYE) End the Kermit program. All commands can be safely abbreviated to the least number of characters required to make the command unique. However, abbreviating to less will not produce an error message, the command chosen will be according to the priority given above. Case has no significance, and any parameters are separated by one or more spaces. There may appear to be some similarity to CAMTEC PAD commands, but any such duplication is purely coincidental. Page 8 March 1986 Kermit-40 Users Guide _______________________ 5 The commands, in detail __________________________________________ 5.1 To send a file, or files, to micro-kermit. SEND command Format: SEND[ filename][ filename filename...] where 'filename' is a valid OS4000 filename (default %C), For example: send .klog me.mjl.text will send the two files, .klog in the current directory, and .mjl.text in the top directory. Each file will be sent separately, but automatically. Unless Set | Normal Off has been specified, Kermit-40 will form a simple filename | from each file identifier, which will be sent to micro-kermit at the start of each file transfer, and used by micro-kermit as the local filename to be created. The full OS4000 identifier is stripped of all leading directory structures including the leading full-stop. Thus, for example, NSIN99.MACRO.TEST will become TEST, which is the simplest form of file name which should be useable by most micro-kermits. There will be, by default, a 15 second delay before the first packet is sent, during which period the user should escape back to micro-kermit (ie escape from CONNECT mode on the micro-kermit, generally something like control-] C ), and switch that Kermit to RECEIVE. The transfer should then take place, and on completion, the user should return the micro-kermit to CONNECT mode, whereupon further commands can be given to the outstanding KERMIT-40 prompt on the GEC machine. It is possible that if the user is too slow returning to micro-kermit at the start of sending then the first packet from Kermit-40 could be missed. If this happens, then the transfer should eventually proceed normally after micro-kermit or Kermit-40 has timed out and sent some NAK (negative-acknowledgment) packets. Be patient, don't give up 'till Kermit does, as indicated on your screen by a message something like, 'Too many retries'. If the transfer does really fail, then use CONNECT to return to Kermit-40, which may still be in SEND mode. If so, indicated by the failure of the prompt to appear when pressing , then control Z should allow Kermit-40 to be aborted, which must then be restarted before further attempts can be made. Wildcards are not allowed in file specifications on Kermit-40. March 1986 Page 9 Kermit-40 Users Guide Binary files: To send files containing binary images, it is necessary to use the SET BINARY ON command, (see 5.3.12) before carrying out the above instructions. The micro-kermit must be capable of doing eight bit quoting. (See preface, 'Binary File Transfer') ___________________________________ 5.2 To receive files from micro-kermit. RECEIVE command | | Format: | | RECEIVE[ filename] | This command switches Kermit into receive mode, after which Kermit-40 will sit and wait for the first valid packets to arrive from micro-kermit. At this stage, escape and return to the micro-kermit and use a SEND file(s) command to start the transfer. If a filename is given to this command, then that will be used as the | received filename regardless of the name sent by micro-kermit. If | however there is no filename given, then the name supplied by | micro-kermit will be used. The filenames given by micro-kermit may | not be valid OS4000 names. Provided Set Normal Off has not been set, | then this will not matter since Kermit-40 will hash any name given to | it into an acceptable name. Firstly any non alpha-numeric characters will be removed, and if the result is longer than eight characters, then the name will be truncated to the last eight. Secondly a period will be added to the front, and finally the /ADD attribute will be added, which implies that any existing file in the current catalogue with the same name will be appended to, (as in FTP). On completion of sending files, use CONNECT to return to Kermit-40 and proceed with the next command, which could be to EXIT, SEND or RECEIVE more files. If the transfer fails in any way, and the process is not properly completed, it is possible that, on return to Kermit-40, no prompt appears on pressing . This means that Kermit-40 is still in Receive mode, and pressing control Z should allow Kermit-40 to be aborted, which must then be restarted before further attempts can be made. Binary files: To receive files containing binary images, it is necessary to use the SET BINARY ON command, (see 5.3.12) before carrying out the above instructions. The micro-kermit must be capable of doing eight bit quoting. (See preface, 'Binary File Transfer') ____________________________ 5.3 To reset default parameters. There are a number of parameters which start with a default value. For many cases these defaults will be satisfactory to inititiate and continue file transfer. If, however, problems are experienced, then alteration of some of these values may be needed. Page 10 March 1986 Kermit-40 Users Guide For example, if your micro-kermit should require a line-feed character to terminate input, instead of , then parameter EOL would need to be reset to ASCII code 10. When first trying to use Kermit-40 it may not be necessary to be concerned about the SET command, except for binary file transfer, but if you understand communications and think that some parameter may need to be reset, then reading this section could save some frustration. Obviously, if file transfers do fail to take place then it will be neccessary to establish why and use this command to alter any suspect parameters. SET command Format: SET[ param][ value][ param[ value]...] For example: set binary on time 20 will set binary file transfer to send or receive a LSB file, and tell micro-kermit to time me out after 20 seconds. This command allows tailoring of the communications protocol to your micro-kermit and hardware, as well as allowing setting of some useful switchable options such as DEBUG and BINARY. Some of these communications parameters are set during an initial exchange of agreement which takes place automatically before each transfer begins, but some parameters may need to be set by hand before even this initial exchange can take place, for example if EOL needs to be set to some character other than the default ASCII 13. If this is wrong then the initial packets will be terminated with the wrong end-of-line character, and may therefore not be recognised by the micro-kermit. Although some parameters may be set by hand, or left at the default value initially, they could later be overwritten by the agreed values provided by micro-kermit at the start of transfer. The following is a list of the parameters set by the initial packet exchange. Received by Kermit-40 from micro-kermit: Maximum size of packet to send Period after which to time-out micro-kermit (** TIMEOUT) Number of pad characters to send (** PAD) Pad character to send (** CHAR) End-Of-line character to send (** EOL) Character to receive for control quoting Character to receive for 8 bit quoting Type of checksum to receive, (only one allowed in Kermit-40) Character to receive for repeat quoting | March 1986 Page 11 Kermit-40 Users Guide Sent by Kermit-40 to micro-kermit: Maximum size of packet I receive Period after which Kermit-40 is to be timed out (** TIME) Number of pad characters to receive, (not required) Pad character to receive End-of-line character to receive Character I send for control quoting (** QUOTE) Character I send for 8 bit quoting (** 8BIT) Type of checksum I send, (only one done in Kermit-40) Character I send for repeat quoting (** REPEAT) | Those parameters which can be set in advance with the SET command are marked (** parameter-name) The parameters adjustable, and their functions are listed below. They can all be abbreviated sensibly. Further explanation may be found by reference to the KERMIT protocol manual. 5.3.1 DEBUG (off/on) Switch debugging mode. Whenever Kermit-40 is run a file called &KERMLOG is opened. This normally will contain a minimum of information logging the use of Kermit-40, such as the commands given and the result, success or failure. However, the command SET DEBUG ON, will cause much more data to be logged to this file, enabling failures and errors to be tracked down. If &KERMLOG already exists it will be appended to. The additional details logged are as follows: * All characters received and sent, which will include all packets and any other spurious data which may arise. * The results of decoding each packet received, giving length, packet number, type and data buffer. * The encoding details of each packet sent, giving length, packet number, type and data buffer, and also the packet itself. * Changes of state within the program state table switcher, (see Kermit Protocol Guide, 5th ed, p17, 5.8) Default, Debug off 5.3.2 EOL n SETs the packet end of line terminator character sent to micro-kermit as ASCII value n (in decimal). Default, 13 () Page 12 March 1986 Kermit-40 Users Guide 5.3.3 STX n SETs the start-of-packet synchronising character to ASCII value n (in decimal). Some micros or communications systems may respond incorrectly when the normal STX character is sent, so this enables it to be changed, (provided the same change is set on the micro-kermit.) Default, 1 (SOH) 5.3.4 PAD n This will cause n CHAR characters (see below) to be sent before each packet. These padding characters are sometimes required to give time for the micro-kermit, or the communications line, to 'turn-around' after each packet. The actual character used is as defined by SET CHAR n . (see below) Default, 0 (no characters sent) 5.3.5 CHAR n This parameter defines the padding character sent when PAD (above) is set to n>0. n is the ASCII value (in decimal) of the required character. Default, 0 (null) 5.3.6 SEND n When sending files to micro-kermit, there is a delay period before the first packet is sent, to allow the user to return to micro-kermit to switch to receive mode. The period can be altered with this command and is specified in seconds and must be greater than or equal to zero. Default, 15 seconds 5.3.7 RETRYS n This defines the maximum number of times to retry sending a packet that is rejected by micro-kermit. The number must be in the range 0 - 50 times. Default, 10 times 5.3.8 TIME n This parameter, sent out at initialisation, requests the number of seconds after which micro-kermit should timeout Kermit-40. It must be greater than or equal to one second. Default, 5 seconds March 1986 Page 13 Kermit-40 Users Guide 5.3.9 TIMEOUT n This specifies the period after which Kermit-40 will timeout the micro-kermit if there has been no packet received when expected. It is given in seconds, and must be greater than or equal to one second. Default, 10 seconds 5.3.10 QUOTE n Control-quoting, when sending data to micro-kermit, is normally carried out using the ASCII '#' character. This character will be inserted into sent data preceeding any byte which has an ASCII value less than 32, and also preceeding a delete character, hex FF. It has to be agreeable to the micro-kermit and will be checked in the initial exchange agreement. The character can be altered by setting this parameter to a new ASCII code (in decimal) for the required character. Default, 35 ('#') 5.3.11 8BIT n Eight bit quoting is intended for use when transfering binary files, and is carried out normally with the '&' character. This character will be inserted into the sent data preceeding any byte in which the eigth bit is set to one. It has to be agreeable to the micro-kermit and will be checked in the initial exchange agreement. In this way, 8 bit bytes can be transfered over 7-bit-plus-parity asynchronous lines. The character can be altered by setting this parameter to a new ASCII code (in decimal) for the required character. Default, 38 ('&') 5.3.12 BINARY (off/on) This parameter must be switched on if transfer of a LSB file is to take place. When this is set then Kermit-40 will ask the micro-kermit to do eight bit quoting. If this is not agreed, (not all Kermits can do this) then Kermit-40 will abort with an error message, and binary files cannot be transferred. Default, off (LST textfiles only) 5.3.13 REPEAT | | Repeat quoting is used when agreed, and allows data | compression by expressing, for example, sequences of 4 or more | similar characters in terms of only three characters. The quote | character used is normally the '~', and must be agreed by | micro-kermit in the initial exchange agreement. The character | Page 14 March 1986 Kermit-40 Users Guide can be altered by setting this parameter to a new ASCII code (in | decimal) for the required character. | | Default, 126 ('~') | | 5.3.14 NORMAL (on/off) | | Normal mode refers to the conversion of filenames to | 'Normal-form'. When filenames are sent from micro-kermit to | Kermit-40, they are not always likely to be valid names for | OS4000. Similarly, when sending a filename to micro-kermit, | Kermit-40 does not know anything about the rules of filenames on | that system. Thus the filenames will be hashed by Kermit-40 as | described under SEND and RECEIVE commands described previously, | providing NORMAL is set On. | | If however, NORMAL is set Off, then no hashing will occur at | all, and whatever micro-kermit sends for filenames will be | offered to OS4000 for the Kermit-40 filenames. Obviously they | will be rejected by OS4000 if not valid. If the RECEIVE command | has been used with an argument, then the name given in the | argument will be used anyway, regardless of whatever micro-kermit | sends. When micro-kermit is receiving files from Kermit-40, it | will similarly have to be able to cope with the full OS4000 names | given in the Kermit-40 SEND command. | This option therefore allows full directory structures to be | used if required. | | Default, on | __________________________________________ 5.4 To display the settings of SET parameters. SHOW The SHOW command displays the current settings of the parameters as defined by SET, or as over-written by the initialisation sequence. March 1986 Page 15 Kermit-40 Users Guide eg: | | Kermit-40> show | | KERMIT file transfer utility, Version 40/3.2 for GEC 4000 | Status of SET parameters- | Debug is set to OFF | Eol is set to 13 | Stx is set to 1 | Pad is set to 0 | Char is set to 0 | Send is set to 15 | Retrys is set to 10 | Time is set to 5 | Timeout is set to 10 | Quote is set to 35 | 8bit is set to 38 | Binary is set to OFF | Repeat is set to 126 | Normal is set to ON | | ____________________________________________ 5.5 To switch Kermit-40 into remote Server mode. | | SERVER | | If this command is given then Kermit-40 will immediately go into | remote server mode, after which it will wait in 'Receive-Idle' state, | for commands from the micro-kermit. The message shown below will be | displayed: | | Kermit-40: Server running, Now type local escape sequence- | | The Server commands supported which may be issued from the | micro-kermit, assuming it is capable of giving commands to a remote | server, are: | | SEND | Files will be sent from the micro-kermit to Kermit-40, the normal | rules for Kermit-40 RECEIVE will apply. | | GET | | Files will be sent as requested from Kermit-40 to micro-kermit, | and the normal rules for Kermit-40 SEND will apply. | | FINISH | | Kermit-40 Server mode will close down, Kermit-40 will still be | active and will be awaiting input to it's usual prompt, Kermit-40>. | Note that this is not standard Kermit practice, since Kermit-40 | should close down completely. However, especially since this Server | recognises no command to change Kermit-40 SET parameters, it is | useful to be able to come back to this Kermit to change parameters | and then continue server mode again. See BYE below. | Page 16 March 1986 Kermit-40 Users Guide | BYE, or LOGOUT | | Kermit-40 will close down completely. It is not possible nor | desirable to logout a user under GEC OS4000, therefore there is no | _______________ further effect of this command. The user will stay logged in. | _________________________________________________ 5.6 To obtain on-line help on the Kermit-40 commands. HELP Format: HELP[ command command....] Typing HELP alone will display the version number of Kermit-40 and the commands available. Typing HELP 'command' will give full information on that command. _______________________ 5.7 To exit from Kermit-40. EXIT Type EXIT to leave Kermit-40 when transfers are finished. March 1986 Page 17 Kermit-40 Users Guide ___________________________ 6 Examples of using Kermit-40 __________________________________ 6.1 Example- Kermit-40/IBM PC (Telios) Below is given an example of file transfers between Kermit-40 and the IBM PC, using TELIOS (Genasys Corporation) in Kermit emulation mode. In this example the PC is connected to the GEC via a RAL PAD line. Note- Comments are (in parenthesis) ______ A: telios (Invoke Telios on the PC, from logged-on disc A:) _________ > baud 4800 (set speed, full duplex, and Kermit protocol) ________ > echo off _______________ > protocol kermit ________ > (carriage return causes Telios to resume CONNECT mode) ________ (carriage return awakes PAD) * RAL Atlas PAD RLCG (Vn 2.1R) DTE=1106 line 9 speed 4800 ____________ PAD>controlchars (allow control characters through the pad) _________ PAD>call rlgb (logon to RLGB) **** This is the Rutherford GEC 4090 - RLGB **** OS4000+Rlix V25 RAL Atlas Logging in _____ user notu2 password ID last used Wednesday, 30 January 1985 11:24 Started - Wed 30 Jan 1985 11:27:39 ready ______________ raresys.kermit (start Kermit-40) KERMIT file transfer utility, Version 40/3.2 for GEC 4000 by M J Loach, RAL. Kermit-Copyright Columbia University Centre for Computing Activities, 1986 ________ Kermit-40> help set (use help command to check if parameters need setting) SET COMMAND *********** (SET) allows certain parameters to be switched on and off, or set to a value. The ones available at present are- (s-on/off, n-value) DEBUG s- If on, debugging information is logged to .KERMLOG, default off EOL n- set END-OF-LINE character, to ascii value n, default 13(CR) STX n- set start of packet text sync char to ascii n, default 1 PAD n- set number of pad characters to preceed each packet, default 0 CHAR n- set pad character to be ascii n, default 0 (null) SEND n- set delay before first SEND packet to n secs, default 15 RETRYS n-set maximum number of sending retries before abort,default 10 TIME n- set number of seconds before micro-kermit times me out, def 5 TIMEOUT n- set number of seconds for Kermit-40 timeout, default 10 Page 18 March 1986 Kermit-40 Users Guide QUOTE n- set the ASCII value of the character I send for quoting,def 35 8BIT n- set ASCII value of the character I send for 8bit quoting. (38) BINARY s-If on, LSB files are sent and received, via 8bit quote. (off) REPEAT n-set ASCII value of the character I send for repeat quote.(126) NORMAL s-If on, filenames are converted to a 'normal form', default on ____________ Kermit-40> set debug on ( decide to set debugging mode, into file &kermlog) _____________ Kermit-40> send .kermdoc ( going to send .kermdoc to the PC) _______ (alt-H) (get back to PC command level) ____________ > pcapture k.k (tell PC to capture the file about to be sent to it,) Recvd #00001 (as k.k . 'P'rotocol 'Capture' refers to Kermit, as) Recvd #00002 (chosen at the start, above) ...... Recvd #00212 (last packet received) #7YU (last packet from Kermit-40, superfluous) _ Kermit-40>q (quit Kermit-40) ready (GEC prompt) _______ (alt-H) (return to PC Telios command mode) ________ > type k.k (type file captured, to see if OK.) ....... ________ (return to CONNECT mode) ready (GEC prompt) ______________ raresys.kermit KERMIT file transfer utility, Version 40/3.2 for GEC 4000 by M J Loach, RAL. Kermit-Copyright Columbia University Centre for Computing Activities, 1986 ___ Kermit-40> rec (switch kermit-40 to receive a file from the PC) _______ (alt-H) ______________ >psend demo.fil (ask PC to send demo.fil from disc A: to GEC) Sent #00001 (sends ok) Sent #00002 ...... Sent #00031 _ Kermit-40> q (finished) ready (GEC prompt) _____________ type .demofil (check file is on GEC) ....... ready (GEC prompt) __ lo (logout) CPU used: 1 ieu, Elapsed: 2 mins, IO: 772 units, Breaks: 20 Budgets: this period = 15.400 AUs, used = 0.010 AUs, left = 14.303 AUs User NOTU2 terminal 14 logged out Wed 30 Jan 1985 11:26:47 PAD>clear *** Cleared March 1986 Page 19 Kermit-40 Users Guide _____________________________________ 6.2 Example- Kermit-40/IBM PC (Kermit-MS) Below is given an example of file transfers between Kermit-40 and the IBM PC, using Kermit-MS. In this example the PC is connected to the GEC via a RAL PAD line. Note- Comments are (in parenthesis) ______ C> kermit (invoke kermit on PC, from logged-on disc C:) IBM-PC Kermit-MS V2.27 Type ? for help _______________ Kermit-MS> set parity even (even parity for GEC MUM) _______ Kermit-MS> connect [Connecting to host, type Control-] C to return to PC] ________ (awake PAD at RAL) * RAL Atlas PAD RLCG (Vn 2.1R) DTE=1106 line 9 speed 4800 ____________ PAD>controlchars (allow control characters through the pad) _________ PAD>call rlgb (logon to RLGB) **** This is the Rutherford GEC 4090 - RLGB **** OS4000+Rlix V25 RAL Atlas Logging in _____ user notu2 password ID last used Wednesday, 30 January 1985 12:19 Started - Wed 30 Jan 1985 17:27:01 ready ______________ raresys.kermit (start Kermit-40) KERMIT file transfer utility, Version 40/3.2 for GEC 4000 by M J Loach, RAL. Kermit-Copyright Columbia University Centre for Computing Activities, 1986 (firstly receive a binary file from the PC) _____________ Kermit-40> set binary on _______ Kermit-40> receive (receive a LSB file into the current catalogue) ____________ (return to PC) ______________ Kermit-MS> send a:char256 (tell it to send a file from disc A) (now the screen will show the following display:) Page 20 March 1986 Kermit-40 Users Guide File name : KBytes transferred : Sending : In progress Number of packets : 0 Number of retries : 0 Last error : None Last warning : None (this display updates as the transfer takes place, and will appear thus, when finished:) File name : CHAR256 KBytes transferred : 0 Percent transferred : 100% Sending : Completed Number of packets : 12 Number of retries : 0 Last error : None Last warning : None _______ Kermit-MS> connect (now go back and send file back to PC) [Connecting to host, type Control-] C to return to PC] ________ (get Kermit prompt on GEC) _____________ Kermit-40> send .char256 (send the LSB file back to the PC again) ____________ (return to PC) ___ Kermit-MS> rec File name : KBytes transferred : Receiving : In progress Number of packets : 0 Number of retries : 0 Last error : None Last warning : None (this display updates as the transfer takes place, and will appear thus, when finished:) March 1986 Page 21 Kermit-40 Users Guide File name : CHAR256 KBytes transferred : 0 Receiving : Completed Number of packets : 13 Number of retries : 0 Last error : None Last warning : None _______ Kermit-MS> connect [Connecting to host, type Control-] C to return to PC] ________ (get Kermit prompt on GEC) ____ Kermit-40> exit (finished) ready (GEC prompt) __ lo (logout) CPU used: 1 ieu, Elapsed: 4 mins, IO: 1043 units, Breaks: 20 Budgets: this period = 15.400 AUs, used = 0.010 AUs, left = 14.303 AUs User NOTU2 terminal 14 logged out Wed 30 Jan 1985 17:35:15 PAD>clear *** Cleared Page 22 March 1986 Kermit-40 Users Guide _______________________________________ 6.3 Example- Kermit-40/ VAX/VMS (Kermit-32) Below is given an example of file transfers between Kermit-40 and the VAX 11/750, using Kermit-32. Kermit-32 is run from terminal NVA1:, to which has been allocated terminal TTA2: . A connection has been wired from a PACX line connected to TTA2: , to another PACX line which has already been connected to, and logged in to RLGB. ie: NVA1 to Kermit-32 to TTA2 to PACX to PACX to RLGB It is unlikely that anyone would want to use this method of file transfer between VAX/GEC, especially since transfer via SERCNET is easier. However, it is a useful example showing the versatility of Kermit. Note- Comments are (in parenthesis) (logging into VAX...) Central Computing Division Vax 11/750 ______ Username: Anyone Password: Welcome to RLVE running VMS V3.7 If you are connected to this Vax via PACX please hit the PACX key after you have logged off. ________ $ all tta2 (allot another port to connect to GEC) TTA2: allocated ________________________ $ set term tta2/speed=4800 (set its speed accordingly) ______ $ kermit (start Kermit) VMS Kermit-32 version 3.0.051 Default terminal for transfers is: NVA1: _____________ Kermit-32>set line tta2 (tell kermit which port) _______________ Kermit-32>set parity even (set its parity) ______________ Kermit-32>local host dir (DIR command to VAX) Directory DUA0:[ANYONE] 0R.DOC;1 COM.DOC;1 CONTROL.EXE;1 CONTROL.FOR;1 CONTROL.OBJ;1 FILE.TXT;4 FLY.DOC;1 INITB.;1 INITK.;3 INITK.;2 INITK.;1 KERMIT.DIR;1 LOGIN.COM;3 MAIL.MAI;1 MAILMAI.;1 TEST.FDL;1 VER.DOC;1 Total of 17 files. March 1986 Page 23 Kermit-40 Users Guide _______ Kermit-32>connect (connect to GEC) [RLVED::Connecting to TTA2:. Type ^]C to return to VAX/VMS Kermit-32] ________ (get prompt, already logged in) ready (GEC prompt) ______________ raresys.kermit (run Kermit-40) KERMIT file transfer utility, Version 40/3.2 for GEC 4000 by M J Loach, RAL. Kermit-Copyright Columbia University Centre for Computing Activities, 1986 ___ Kermit-40> rec (prepare to receive file from VAX) ____________ (return to VAX) [RLVED::Returning to VAX/VMS Kermit-32] ____________ Kermit-32>send ver.doc (ask VAX to send file to GEC) Sending: DUA0:[ANYONE]VER.DOC;1 as VER.DOC (this is displayed when sending) (when finished the word OK is added thus:) Sending: DUA0:[ANYONE]VER.DOC;1 as VER.DOC[OK] _______ Kermit-32>connect (return to GEC) [RLVED::Connecting to TTA2:. Type ^]C to return to VAX/VMS Kermit-32] ________ __________ Kermit-40> send .inik (now send a file to VAX) ____________ [RLVED::Returning to VAX/VMS Kermit-32] ___ Kermit-32>rec (switch VAX to receive) Kermit-40: Cannot open file: .INIK (message from GEC Kermit) _______ Kermit-32>connect (return and try again) [RLVED::Connecting to TTA3:. Type ^]C to return to VAX/VMS Kermit-32] ________ ___________ Kermit-40> send .initk ____________ [RLVED::Returning to VAX/VMS Kermit-32] ___ Kermit-32>rec Receiving: INITK as DUA0:[ANYONE]INITK.;4 (this time transfer starts ok) (display is as below when finished:) Receiving: INITK as DUA0:[ANYONE]INITK.;4[OK] ____ Kermit-32>quit $ Page 24 March 1986 Kermit-40 Users Guide _______________________________ 7 What to do when things go wrong ______________________________________ 7.1 Failure to be able to Connect to host. Check the following: * micro-kermit set for even parity * micro-kermit set for correct baud rate * communications medium, eg PAD, set to allow control characters through * micro-kermit set to use correct port on micro * cable correct to link micro to comms port * micro-kermit set to operate in full duplex(no-echo) ______________________________________ 7.2 Failure of the transfer of the file(s) There are two ways in which failure may be indicated. 1. Transfer completes but on inspection the file has not been transferred correctly 2. Transfer aborts, or just halts, with or without a failure message In the first instance a rare combination of errors has led to the error checksum being corrupted and then corrupted back to the correct value for the corrupted packet. This has then been accepted as a valid packet. The chances of this sort of problem occuring are small unless there are a lot of short bursts of corruption on the link, leading to many packets being repeated. Trying the transfer again may well lead to a successful result. In the second case it is worthwhile trying a second time to make sure a spurious error did not occur. If problems are encountered then check the following: * All the possible causes in 7.1, above * Check the SET parameters, particularly if the failure is at the start, both on Kermit-40 and on micro-kermit (see 5.3) Note that if you return to Kermit-40 to find it is no longer running, but you have a GEC OS prompt instead, then Kermit-40 has probably crashed. If so, please report with as much information as possible to | NSIN12 @ UK.AC.RL.GK March 1986 Page 25 Kermit-40 Users Guide __________ 8 Appendix A ____________________________________ Error messages and their explanation _________________________ There is a checksum error This is written to the log file each time a checksum error is encountered in the incoming packets. It is a warning only and a negative-ackknowledgement will be sent to the micro-kermit until a correct packet is received or the maximum number of retries is exceeded. _________________________________ File being opened for sending is: This gives the name of the next file obtained from the file list given on the send command. __________________ Closing input file This is output when the currently sent file is completed. ___________________________ looking for next file...... This is output after the above message and indicates that Kermit-40 is looking for the next filename from the SEND filelist. ____________ New file is- This gives the name of the next file obtained from the filelist given on the SEND command. ____________ Send command This indicates that the SEND command has been given _______________ Receive command This indicates that the RECEIVE command has been given Page 26 March 1986 Kermit-40 Users Guide ______________ Receive failed This means that receiving a file has failed. This could be accompanied by any of the following messages- Eight bit quoting not agreed. Number of retries exceeded. Packet number is out of sequence. Failed to connect to file. File is wrong type, compared to existing file, ie not LSB or not LST. _____ done. Output on completion of the SEND or RECEIVE command. ___________ Send failed This means that sending a file has failed. This could happen due to any of the reasons given under Receive Failed (above). _____________________________________________ File already exists with different attributes An attempt has been made to receive a file which already exists having a different type, eg receiving a binary file when a CAT or LST file exists with the same name. __________________________________________________________ Kermit aborting with the following error from remote host: This accompanies a message which has been received from micro-kermit in an error packet. ______________ Cannot create: Receiving a file has been aborted because an attempt to connect to the file specified for creation failed. Could be due to trying to receive to an existing LSB file (/ADD attribute cannot be used with LSB). ___________________________ Cannot open file:(binary?): On receiving a text file a LSB file has been found to already exist with the same name, or, on sending a text file, the file specified is in fact a LSB file. _____________________________ Cannot open file:(textfile?): On receiving a binary file a LST file has been found to already exist March 1986 Page 27 Kermit-40 Users Guide with the same name, or, on sending a binary file, the file specified is in fact a LST file. ___________________________ Cannot open file:(not LS?): On receiving a file a non logical sequencial file has been found to already exist with the same name, or, on sending a file, the file specified is in fact a non logical sequential file (eg, attempt to transfer a catalogue). _______________________ DM Error, RA= @hexvalue | | This gives the Data management error code associated with attempting | to connect a filename to a stream(DMCONNECT), and is written to | &KERMLOG. | __________ Sending as Kermit-40 takes the catalogue name of a file and removes all the catalogue structure, leaving just the filename without a '.' character, to give as the name for the file to be sent. This shows the name which has been constructed. ____________ Receiving as | | This shows the name being given to the received file under OS4000, | which will normally be as hashed from the name supplied by | micro-kermit, but could be as specified by a RECEIVE filename | command. | ______________________________________ Timeout retries exceeded, press return This message will appear on the terminal stream when Kermit-40 has aborted due to timeout retries exceeding the maximum. This is most likely to be due to a failure in the communications between the two Kermits. In this situation, the timeouts occured due to no records being received by Kermit-40 from the terminal stream. The result is that there is still an outstanding GET which must be satisfied before Kermit-40 can continue with any more commands successfully. Hence the reason to have to press return once before the prompt will appear. In most situations the user will probably not see this message on the screen, and will have pressed return anyway to get a Kermit-40 prompt. __________________________________ Too many retries, transfer aborted This means that Kermit-40 has given up retrying to send or receive a packet which is either corrupted in transmission or incorrect for some reason. It is most likely due to a failure in the communications between the two Kermits. _____________________________________________________ 8 bit quoting not agreed, so can't do binary transfer The micro-kermit rejected the request to do 8 bit quoting, so Page 28 March 1986 Kermit-40 Users Guide Kermit-40 will not be able to transfer a binary file. The micro-kermit presumeably has no eight bit quote facility. ______________ Kermit aborted This message is output when control-Z is used to jump out of Kermit. _______________ Invalid command A command typed in to the Kermit-40 prompt was un-recognised. _________________ Excess parameters More than the allowed number of parameters have been typed after a command. _________________ Invalid parameter A parameter typed after a command is not recognised or is missing when required. ______________ No information Output by the Help command if the help requested is not available, ie the command given does not match any Kermit-40 command. ______________________ Parameter out of range A parameter given to the SET command is invalid, eg a negative or zero timeout, or an excessively large number of permitted retries. ____________________________ Unimplemented server command | | In Server mode, an unsupported command has been received from | micro-kermit. The command subset allowed currently is, GET, SEND, | FINISH, BYE and LOGOUT. | | ________________________________ Taking commands from With stream | | An argument has been supplied for the WITH stream for this run, and | Kermit-40 is reading commands from this file. | | ___________________ End of command file | | Kermit-40 has read all the commands from the WITH stream, and is now | expecting terminal commands again. | March 1986 Page 29 Kermit-40 Users Guide References 1. Kermit Protocol Manual, Fifth edition, Frank da Cruz, Columbia University Centre for Computing Activities, New York 10027, 3 April 1984. 2. Kermit Users Guide, Fifth edition, Rev 1, Frank da Cruz, Columbia University Centre for Computing Activities, New York 10027, 27 July 1984. 3. Access to Kermit Distribution at Lancaster, M J Loach, October 1985. | Page 30 March 1986