UniFLEX KERMIT Users guide UniFLEX Kermit -------------- Author: Jur van der Burg Nettelhorst 56 2402 LS Alphen aan den Rijn The Netherlands Language: C (Compiled with McCosh compiler Version 27.0:2) Version: 1.4 Date: Januari 11, 1989 KERMIT for UniFLEX has it's roots in the UNIX version. It is enhanced in several ways, such as data logging, server mode etc. UniFLEX KERMIT has most of the features specified in the KERMIT Protocol Manual. UniFLEX kermit capabilities at a glance: Local operation: Yes Remote operation: Yes Transfers text files: Yes Transfers binary files: Yes Wildcard send: Yes ^X/^Z interruption: Yes Filename collision avoidance: Yes Timeouts: Yes 8th-bit prefixing: Yes Repeat character compression: Yes Alternate block check types: Yes Communication settings: Yes Transmit BREAK: Yes IBM mainframe communication: No Transaction logging: No Session logging: Yes Debug logging: Yes Raw transmit: Yes Login scripts: No Act as a server: Yes Talk to server: Yes Advanced commands for servers: No Local file management: Yes Command/init files: Yes Attribute packets: Yes Extended packet length: Yes Sliding windows: No Kermit should be installed in the '/bin' directory. Also in '/bin' should be the support task for privileged operations, 'kermit_support'. This file should have the 's' bit on, and should be owned by 'system'. Also the device '/dev/smem' should be present. The help files will go into '/gen/kermit' (and subdirectories), while the (optional) termcap file should be in '/etc'. - 1 - UniFLEX KERMIT Users guide 1. Remote and Local Operation KERMIT programs can be run in two ways, remote and local. A remote Kermit is usually running on a mainframe, which you have CONNECTed to through a PC or other computer. When KERMIT runs remotely, all file transfer is done over the job's controlling terminal line -- the same line over which you logged in, and to which you would type interactive commands. What the system thinks is your terminal is really another computer, usually a microcomputer, running its own copy of Kermit. When KERMIT is in "local mode", file transfer is done over an external device, such as a microcomputer's serial communication port, or an assigned terminal line on a mainframe. The local Kermit is connected in some way (like a dialout mechanism) to another computer, again running its own copy of Kermit. A local Kermit is in control of the screen, a remote Kermit has no direct access to it. Microcomputer KERMITs usually run in local "mode", whereas mainframe Kermits usually need to be given some special command to run in local mode. Some commands make sense only for remote Kermits, others only for local, still others can be used with either. Local and remote operation of KERMIT is shown schematically here: Micro is Local, Mainframe is Remote: Communication Line (Packets) +-------------------/ /-----------------+ Other terminals ! ! ! ! ! ! ! ! ! ! Micro ! LOCAL Mainframe ! ! ! ! REMOTE +----------+----------+ +------------+--+--+--+--------+ ! Serial Port ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! +---------------+ ! ! Your job's ! ! ! Packets: 724 ! ! ! terminal line ! ! ! ! ! ! ! ! ! File: FOO.BAR ! ! ! ! ! +---------------+ ! ! ! ! Screen ! ! ! ! ! ! ! +---------------+-----+ +------------------------------+ ! ! (Commands) ! +------------+---------+ \ Keyboard \ +----------------------+ You - 2 - UniFLEX KERMIT Users guide The KERMIT program on the micro is a local Kermit. It can control the screen, the keyboard, and the port separately, thus it can update the screen with status information, watch for interrupt signals from the keyboard, and transfer packets on the communications port, all at the same time. The KERMIT program running on the mainframe is a remote Kermit. The user logs in to the mainframe through a terminal port. The host computer cannot tell that the user is really coming in through a microcomputer. The keyboard, screen, and port functions are all combined in user's mainframe terminal line. Therefore a remote Kermit is cut off from your screen and keyboard during file transfer. A KERMIT server is always remote, and must get its commands from a local KERMIT. The following descriptions will indicate when a command must be remote or local. 2. Command Interface The UniFLEX implementation has a Unix-like interface, as well as an interactive keyword-style command interface, modelled after that of the DEC VAX/VMS operating system. The latter is roughly as follows: In response to the "UF-Kermit>" prompt you may type a keyword, such as SEND, RECEIVE, or EXIT, possibly followed by additional keywords or operands, each of which is called a field. You can abbreviate keywords (but not file names) to any length that makes them distinguishable from any other keyword valid for that field. The command is terminated by a carriage return. Before the carriage return is typed, the command can be edited using BACKSPACE or other command editing keys. Finally, the same command is entered again with a minimum of keystrokes, with each field abbreviated to its shortest unique length. 3. Notation In the command descriptions, the following notation is used: anything A parameter - the symbol is replaced by an argument of the specified type (number, filename, etc). [anything] An optional field. If omitted, it defaults to an appropriate value. number A whole number, entered in hexadecimal or decimal notation. character A single character, entered literally, or as a number (perhaps decimal or hexadecimal) representing the ASCII value of the character. file-spec A file specification, i.e. the name of a file, possibly including a directory specification or other qualifying - 3 - UniFLEX KERMIT Users guide information, and possibly containing "wildcard" or pattern-matching characters to denote a group of files. ^X A control character may be written using "uparrow" or "caret" notation, since many systems display control characters this way. Control characters are produced by holding down the key marked CTRL or Control and typing the appropriate character, e.g. X. Commands are shown in upper case, but can be entered in any combination of upper and lower case. 4. Summary of KERMIT Commands Here is a brief list of KERMIT commands as they are found in the UniFLEX KERMIT program. The following sections will describe these commands in detail. For exchanging files: SEND, RECEIVE, GET For connecting to a remote host: CONNECT, SET LINE, SET CONFIGURATION, SET BAUD, SET DUPLEX, SET HANDSHAKE, SET ESCAPE, SET PROMPT, SET LOG For acting as a server: SERVER For talking to a server: BYE, FINISH, GET, SEND Setting nonstandard transmission and file parameters: SET AUTO_RECOVER, BLOCK_CHECK_TYPE, SET DEBUG, SET DELAY, SET FILETYPE, SET INCOMPLETE, SET WARNING, SET MAPPING, SET RETRY, SET END_OF_LINE, SET START_OF_PACKET, SET PACKET_LENGTH, SET TIMEOUT, SET PADDING, SET PADCHAR, SET QUOTE, SET REPEAT_QUOTE, SET EIGHT_BIT_QUOTE, SET END_OF_LINE, TAKE For interrupting transmission: Control-X, Control-Z Getting information: HELP, STATISTICS, SHOW, Control-D For recording the history of a file transfer operation: SET DEBUG LOG For non-protocol file capture or transmission: SET LOG, TRANSMIT Local environment management: CHD, LOCAL Leaving the program: EXIT, QUIT If you have a file called 'kermit.ini' in your default directory, - 4 - UniFLEX KERMIT Users guide KERMIT will execute an automatic TAKE command on it upon initial startup. 'kermit.ini' may contain any KERMIT commands, for instance SET commands to configure KERMIT to various systems or communications media. 5. The SEND Command Syntax: SEND filespec [filespec2] [filspec3...] The SEND command causes a file or file group to be sent to the other system. The filespec may contain the commonly used wild-card characters '*' and/or '?', where '*' stands for a string match (including null) and '?' stands for a single character match. Use of wildcard characters is the most common method of indicating a group of files in a single file specification. For instance if FOO.BAS is a single file, a BASIC program named FOO, then *.BAS might be a group of BASIC programs. If filespec1 contains wildcard characters then all matching files will be sent, in directory- listing order by name. If a file can't be opened for read access, it will be skipped. There may be a total of twenty files or file groups specified. SEND Command General Operation Files will be sent with their filename and filetype (for instance FOO.BAR, no device or directory field, no generation number or attributes). If communication line parity is being used (see SET CONFIGURATION), the sending KERMIT will request that the other KERMIT accept a special kind of prefix notation for binary files. This is an advanced feature, and not all KERMITs have it; if the other KERMIT does not agree to use this feature, binary files cannot be sent correctly. SEND Remote Operation If you are running KERMIT remotely (for instance, from a microcomputer), you should "escape back" to your local Kermit within a reasonable amount of time and give the RECEIVE command. Don't take more than about one minute to complete the switch, or KERMIT may "time out" and give up (in that case, you'll have to CONNECT back to the remote system and reissue the SEND command). SEND Local Operation If you're running KERMIT locally, for instance on a microcomputer, you should have already run KERMIT on the remote system and issued either a RECEIVE or a SERVER command. Once you give KERMIT the SEND command, the name of each file will be printed on your screen as the transfer begins, and information will be displayed to indicate the packet traffic. When the specified operation is complete, the program will sound a beep, and the status of the operation will be indicated by the message Complete, Interrupted, or Failed. If you see many packet retry indications, you are probably - 5 - UniFLEX KERMIT Users guide suffering from a noisy connection. You may be able to cut down on the retransmissions by using SET PACKET_LENGTH to decrease the packet length; this will reduce the probability that a given packet will be corrupted by noise, and reduce the time required to retransmit a corrupted packet. If you notice a file being sent which you do not really want to send, you may cancel the operation immediately by typing either Control-X or Control-Z. If your are sending a file group, Control-X will cause the current file to be skipped, and KERMIT will go on to the next file, whereas Control-Z will cancel sending the entire group and return you to the KERMIT command level. 6. The RECEIVE Command Syntax: RECEIVE [filespec] The RECEIVE command tells KERMIT to wait for the arrival a file or file group sent by a SEND command from the other system. If only one file is being received, you may include the optional filespec as the name to store the incoming file under; otherwise, the name is taken from the incoming file header. If the name in the header is not a legal file name on the local system, KERMIT will attempt to transform it to a legal name. If an incoming file has the same name as an existing file, KERMIT will either overwrite the old file or else try to create a new unique name, depending on the setting of FILE WARNING. If you have SET CONFIGURATION with parity, then 8th-bit prefixing will be requested. If the other side cannot do this, binary files cannot be transferred correctly. The sending KERMIT may also request that repeated characters be compressed. If an incoming file does not arrive in its entirety, KERMIT will normally discard it; it will not appear in your directory. You may change this behaviour by using the command SET INCOMPLETE KEEP, which will cause as much of the file as arrived to be saved in your directory. RECEIVE Remote Operation If your are running KERMIT remotely, you should escape back to your local Kermit and give the SEND command. You should do this within about one minute, or KERMIT may time out and give up; if this happens, you can CONNECT back to the remote system and reissue the RECEIVE command. RECEIVE Local Operation If you are running KERMIT locally, you should already have issued a SEND command to the remote KERMIT, and then escaped back to UF-KERMIT (not SERVER -- use the GET command to receive files from a KERMIT server). As files arrive, their names will be shown on your screen, along with a continuous display the packet traffic. If a file begins to arrives that you don't really want, you can - 6 - UniFLEX KERMIT Users guide attempt to cancel it by typing Control-X; this sends a cancellation request to the remote Kermit. If the remote Kermit understands this request (not all implementations of Kermit support this feature), it will comply; otherwise it will continue to send. UF-KERMIT will detect this situation and send an error packet. If a file group is being sent, you can request the entire group be cancelled by typing Control-Z. 7. GET LOCAL ONLY -- Syntax: GET remote-filespec [filespec2...] The GET command requests a remote KERMIT server to send the file or file group specified by remote-filespec. Note the distinction between the RECEIVE and GET commands: RECEIVE puts KERMIT into a passive wait state, whereas GET actively sends a command to a server. The GET command can be used only when KERMIT is local, with a KERMIT server on the other end of the line. This means that you must have CONNECTed to the other system, logged in, run KERMIT there, issued the SERVER command, and escaped back to the local KERMIT. The remote filespec is any string that can be a legal file specification for the remote system; it is not parsed or validated locally. As files arrive, their names will be displayed on your screen, along with a continuous indication of the packet traffic. As in the RECEIVE command, you may type Control-X to request that the current incoming file be cancelled, Control-Z to request that the entire incoming batch be cancelled. If the remote KERMIT is not capable of server functions, then you will probably get an error message back from it like "Illegal packet type". In this case, you must connect to the other Kermit, give a SEND command, escape back, and give a RECEIVE command. 8. SERVER Syntax: SERVER The SERVER command instructs KERMIT to cease taking commands from the keyboard and to receive all further instructions in the form of KERMIT packets from another system. A KERMIT server must be remote; that is, you must be logged in to the system through another computer, such as a microcomputer. In addition, your local KERMIT should have commands for communicating with remote servers; these include GET, FINISH, and BYE. After issuing this command, escape back to your local system and issue SEND, GET, BYE, FINISH, or other server-oriented commands from there. If your local KERMIT does not have a BYE command, then it does not have the full ability to communicate with a KERMIT server and you should not put the remote KERMIT into SERVER mode. If your local KERMIT does have a BYE command, use it to shut down and log out the KERMIT server when you are done with it. The UF- KERMIT server can also be shutdown by typing Control-X or Control- Z. Then the server will stop after the timeout. - 7 - UniFLEX KERMIT Users guide Any nonstandard parameters should be selected with SET commands before putting KERMIT in server mode, in particular the block check type and special file modes. 9. BYE LOCAL ONLY -- Syntax: BYE When running as a local Kermit talking to a KERMIT server, use the BYE command to shut down and log out the server. This will also close any debugging log files and exit from the local KERMIT. 10. FINISH LOCAL ONLY -- Syntax: FINISH When running as a local Kermit talking to a remote KERMIT server use the FINISH command to shut down the server without logging out the remote job, so that you can CONNECT back to it. 11. LOCAL Syntax: LOCAL [command] Execute the specified command on the local system -- on the system where KERMIT to which your are typing this command is running. This command is a method of entering UniFLEX commands without leaving kermit. If no command is specified, a separate shell will be started. 12. CHD Syntax: CHD [directory] This command will change the current directory. If no directory is specified, the login directory will be selected. 13. CONNECT LOCAL ONLY -- Syntax: CONNECT [terminal-designator] Establish a terminal connection to the system at the other end of the communication line. On a microcomputer, this is normally the serial port. On a mainframe, you will have to specify a terminal line number or other identifier, either in the CONNECT command itself, or in a SET LINE command. If a log file was opened (see SET LOG) then the data will be written to disk. Handshaking is provided (see SET HANDSHAKE). Get back to the local KERMIT by typing the escape character followed by a single character "command". - 8 - UniFLEX KERMIT Users guide Several single-character commands are possible: B Send a 'BREAK' signal. C Close the connection and return to the local KERMIT. H Show availability. S Show status of the connection. 0 (zero) Send a NUL (0) character. Q Quit logging session transcript. R Resume logging session transcript. ? List all the possible single-character arguments. ^ (or whatever you have set the escape character to be) Typing the escape character twice sends one copy of it to the connected host. other Passed to remote kermit. You can use the SET ESCAPE command to define a different escape character, and SET CONFIGURATION, SET BAUD, SET DUPLEX, SET HANDSHAKE to establish or change those parameters. 14. HELP Syntax: HELP [subject] [sub-subject] Typing HELP alone prints a brief summary of KERMIT and its commands. Help about a particular topic can be obtained by giving it as a parameter. The HELP data file which will be searched is called '/gen/kermit/kermit.hlp'. 15. EXIT, QUIT Syntax: EXIT or: QUIT Exit from KERMIT. QUIT is a synonym for EXIT. If a log file was used with CONNECT, and the buffer still contains data, then the buffer will we written to disk before terminating UF-KERMIT. Another way to exit KERMIT is entering CTRL-D (EOF). 16. The SET Command Syntax: SET parameter [option] [value] Establish or modify various parameters for file transfer or terminal connection. When a file transfer operation begins, the two KERMITs automatically exchange special initialisation messages, in which each program provides the other with certain information about itself. This information includes the maximum packetsize it wants to receive, the timeout interval it wants the other KERMIT to use, the number and type of padding characters it needs, the end-of-line character it needs to terminate each packet (if any), the block check type, the desired prefixes for control characters, characters with the "high bit" set, and repeated characters. Each KERMIT program has its own preset "default" values for these parameters, and you normally need not concern yourself with them. You can examine their values with the SHOW command; the SET command is provided to allow you to change them in order to adapt to unusual conditions. - 9 - UniFLEX KERMIT Users guide The following parameters may be SET: AUTO_RECOVER Set automatic packet length reduction on receipt of an error during extended length transfer BAUD Set the speed of the current communications port BLOCK_CHECK_TYPE Packet transmission error detection method CONFIGURATION Character parity to use DEBUG Mode or log file DELAY How long to wait before starting to send DUPLEX For terminal connection, full (remote echo) or half (local echo) EIGHT_BIT_QUOTE Character to use for binary file transfer if parity used END_OF_LINE End of line character ESCAPE Character for terminal connection FILETYPE For setting ascii or binary file type. HANDSHAKE Selecting flow control characters, like XON/XOFF INCOMPLETE What to do with an incomplete file LINE Terminal line to use for terminal connection or file transfer LOG CONNECTion logging file MAPPING Filename case mapping PACKET_LENGTH Length of a packet PADDING Number of padding characters PADCHAR Padding character PROMPT Prompt of the local KERMIT QUOTE Character used to transfer control characters REPEAT_QUOTE Character to use for data compression RETRY How many times to retry a packet before give up START_OF_PACKET Start of packet character TIMEOUT Time to wait for a packet WARNING File conflict warning flag SET AUTO_RECOVER Syntax: SET AUTO_RECOVER on/off This command sets the method of error recovery used when the extended packet length protocol is selected. If it is set off, then the packet length will remain the same after an error has occurred. If on, then the packet length will be shortened automatically to recover from an eventual buffer size error from a device on the communication line. The packet size will not be shortened below 40 bytes. SET BAUD Syntax: SET BAUD number Set or change the baud rate (approximate translation: transmission speed in bits per second) on the currently selected communications device. The baudrate will be set by a special program ('/bin/baud'), which will check if the user is allowed to set the baudrate, and if the hardware has the desired capabilities. The baudrate will not be set in 'remote' operation. SET BLOCK_CHECK_TYPE - 10 - UniFLEX KERMIT Users guide Syntax: SET BLOCK_CHECK_TYPE number KERMIT normally uses a 1-character block check, or "checksum", on each packet. The sender of the packet computes the block check based on the other characters in the packet, and the receiver recomputes it the same way. If these quantities agree, the packet is accepted and the transmission proceeds. If they disagree, the packet is rejected and transmitted again. However, the block check is not a foolproof method of error detection. The normal single-character KERMIT block check is only a 6-bit quantity (the low order 8 bits of the arithmetic sum folded upon itself). With only six bits of accuracy, the chances are one 6 in 2 -- that is, 1/64 -- that an error can occur which will not be detected in the checksum, assuming that all errors are equally likely. You can decrease the probability that an error can slip through, at the expense of transmission efficiency, by using the SET BLOCK_CHECK_TYPE command to select more rigorous block check methods. Note that all three methods will detect any single-bit error, or any error in an odd number of bits. The options are: 1-CHARACTER-CHECKSUM: The normal single-character 6-bit checksum. 2-CHARACTER-CHECKSUM: A 2-character, 12-bit checksum. Reduces the probability of an error going undetected to 1/4096, but adds an extra character to each packet. 3-CHARACTER-CRC: A 3-character, 16-bit Cyclic Redundancy Check, CCITT format. In addition to errors in any odd number of bits, this method detects double bit errors, all error bursts of length 16 or less, and more than 99.99% of all possible longer bursts. Adds two extra characters to each packet. The single character checksum has proven to be quite adequate in practice, much more effective than straightforward analysis would indicate, since all errors are not equally likely, and a simple checksum is well suited to catching the kinds of errors that are typical of telecommunication lines. The other methods should be requested only when the connection is very noisy. Note that the 2- and 3-character block checks are not available in all versions of KERMIT; if the other KERMIT is not capable of performing the higher-precision block checks, the transfer will automatically use the standard single-character method. SET DEBUG - 11 - UniFLEX KERMIT Users guide Syntax: SET DEBUG options [file] Record the packet traffic, either on your terminal or in a file. Options are: ON Display each incoming and outgoing packet (lengthy). OFF Don't display debugging information (this is the default). If debugging was in effect, turn it off and close any open debug log file. LOG Log the information to the specified file. During data transfer, debugging can be toggled on and off by pressing Control-D. If a log file was opened, it will be closed. SET DELAY Syntax: SET DELAY number Specify how many seconds to wait before sending the first packet after a SEND command. Use when remote and SENDing files back to your local Kermit. This gives you time to "escape" back and issue a RECEIVE command. The normal delay is 5 seconds. In local mode or server mode, KERMIT does not delay before sending the first packet. SET DUPLEX Syntax: SET DUPLEX keyword For use when CONNECTed to a remote system. The keyword choices are FULL and HALF. FULL means the remote system echoes the characters you type, HALF means the local system echoes them. FULL is the default, and is used by most hosts. HALF is necessary when connecting to IBM mainframes. Half duplex is also called "local echo". SET ESCAPE Syntax: SET ESCAPE character Specify or change the character you want to use to "escape" from remote connections back to KERMIT. This would normally be a character you don't expect to be using on the remote system, perhaps a control character like ^[, ^], ^^, or ^_. UF-KERMIT uses the up-arrow ('^') by default. After you type the escape character, you must follow it by a single-character "argument", such as "C" for Close Connection. The arguments are listed above, under the description of the CONNECT command. SET FILETYPE Syntax: SET FILETYPE parameter Establish file-related parameter. This may be either ASCII for text files or BINARY for non-text files. This is a very important command if you intend to transfer binary files, but is normally - 12 - UniFLEX KERMIT Users guide unnecessary for transmitting textual files. SET HANDSHAKE Syntax: SET HANDSHAKE start stop For communicating with full duplex systems. System-level flow control is not necessary to the KERMIT protocol, but it can help to use it if the same method is available on both systems. The most common type of flow control on full duplex systems is XON/XOFF. If the KERMIT input buffer is filled up to 250 characters, the stop character is sent. If the buffer becomes empty and contains only 10 characters, the start character will be send. The defaults for start is XON (17), and for stop XOFF (19). SET INCOMPLETE Syntax: SET INCOMPLETE option Specify what to do when a file transfer fails before it is completed. The options are DISCARD (the default) and KEEP. If you choose KEEP, then if a transfer fails to complete successfully, you will be able to keep the incomplete part that was received. SET LINE Syntax: SET LINE terminal-designator Specify the terminal line to use for file transfer or CONNECT. This command is found on mainframe KERMITs, which normally run in "remote mode" using their own controlling terminal for file transfer. Specifying a separate line puts the program in "local mode". If the line is specified as 'REMOTE', the communication will revert to the job's controlling terminal. SET CONFIGURATION Syntax: SET CONFIGURATION number Parity is a technique used by communications equipment for detecting errors on a per-character basis; the "8th bit" of each character acts as a check bit for the other seven bits. KERMIT uses block checks to detect errors on a per-packet basis, and it does not use character parity. However, some systems that KERMIT runs on, or equipment through which these systems communicate, may be using character parity. If KERMIT does not know about this, arriving data will have been modified and the block check will appear to be wrong, and packets will be rejected. If parity is being used on the communication line, you must inform both KERMITs, so the desired parity can be added to outgoing characters, and stripped from incoming ones. SET CONFIGURATION should be used for communicating with hosts that require character parity (IBM mainframes are typical examples) or through devices or networks that add parity to characters that pass through them. Both KERMITs should be set to the same parity. The specified configuration parity is used both for terminal connection (CONNECT) and file transfer (SEND, RECEIVE, GET). - 13 - UniFLEX KERMIT Users guide The choices for SET CONFIGURATION are: 0. Seven data bits, even parity and two stop bits. 1. Seven data bits, odd parity and two stop bits. 2. Seven data bits, even parity and one stop bit. 3. Seven data bits, odd parity and one stop bit. 4. Eight data bits, no parity and two stop bits. 5. Eight data bits, no parity and one stop bit (default). 6. Eight data bits, even parity and one stop bit. 7. Eight data bits, odd parity and one stop bit. Eight bits means no parity is affecting the data, and the 8th bit of each character can be used for data when transmitting binary files. If you have set to use parity then advanced versions of KERMIT (including UF-KERMIT) will request that binary files will be transferred using 8th-bit-prefixing. If the KERMIT on the other side knows how to do 8th-bit-prefixing (this is an optional feature of the KERMIT protocol, and not all implementations of KERMIT have it), then binary files can be transmitted successfully. If eight- bits communication is specified, 8th-bit-prefixing will not be requested. SET EIGHT_BIT_QUOTE Syntax: SET EIGHT_BIT_QUOTE character What character to use to process eight_bit bytes over a line using only seven data bits. The sending KERMIT will ask the other KERMIT whether it can handle a special prefix encoding for characters with the eighth bit on, using the eight_bit_quote character. This character should be distinct from the REPEAT_QUOTE character and the QUOTE character. The default is "&" (38). There should be no reason to change this. SET END_OF_LINE Syntax: SET END_OF_LINE character The ASCII character to be used as a line terminator for packets, if one is required by the other system, carriage return by default. You will only have to use this command for systems that require a line terminator other than carriage return. The character must be specified as a hexadecimal number. SET LOG Syntax: SET LOG filespec Create a transcript of a CONNECT session, when running a local KERMIT connected to a remote system, in the specified file. Logging can be "toggled" by typing the connect escape character followed by Q (Quit logging) or R (Resume logging). Session-logging is useful for recording dialogue with an interactive system, and for "capturing" from systems that don't have KERMIT. No guarantee can be made that the file will arrive correctly or completely, since no error checking takes place. The log file will be closed if the filespec is a dash ("-"). - 14 - UniFLEX KERMIT Users guide SET MAPPING Syntax: SET MAPPING keyword Enable or disable filename case mapping, where the keyword must be either ON or OFF. When set to ON (the default) the outgoing file will be mapped to upper case, and the incoming file will be mapped to lower case. When set to OFF, no case mapping will be done. SET PACKET_LENGTH Syntax: SET PACKET_LENGTH number This will set the packet length. The value for this parameter must be between 10 and 94 for normal use. A length greater than 94 will tell Kermit to negotiate for extended packet length. If the remote kermit can handle this protocol extension, it will be used. Otherwise the maximum of 94 will be used. The maximum length value is 9024 bytes, and the default value is 94. Shortening the packets might allow more of them to get through through without error on noisy communication lines. Lengthening the packets increases the throughput on clean lines. If extended packet length is specified, it is advisable to use a CRC blockcheck type. SET TIMEOUT Syntax: SET TIMEOUT number How many seconds to wait for a packet before trying again. SET PADDING Syntax: SET PADDING number How much padding to send before a packet, if the other side needs padding. Default is no padding. SET PADCHAR Syntax: SET PADCHAR character What kind of padding character to send. Default is NUL (0). The character must be specified as a hexadecimal number. SET QUOTE Syntax: SET QUOTE character What printable character to use for quoting of control characters. This character should be distinct from the EIGHT_BIT_QUOTE character and the REPEAT_QUOTE character. The default is "#" (35). There should be no reason to change this. SET REPEAT_QUOTE Syntax: SET REPEAT_QUOTE character What character to use to process repeat count characters. The - 15 - UniFLEX KERMIT Users guide sending KERMIT will ask the other KERMIT whether it can handle a special prefix encoding for repeated characters, using the repeat_quote character. This character should be distinct from the EIGHT_BIT_QUOTE character and the QUOTE character. The default is "~" (126). There should be no reason to change this. SET RETRY Syntax: SET RETRY number Set the maximum number of retries for how many times to try sending a particular packet before giving up, normally 10. If a line is very noisy, you might want to increase this number. SET START_OF_PACKET Syntax: SET START_OF_PACKET character The start-of-packet character is the only control character used "bare" by the KERMIT protocol. It is Control-A by default. If a bare Control-A causes problems for your communication hardware or software, you can use this command to select a different control character to mark the start of a packet. You must also set the start_of_packet character at the KERMIT on the other system (providing it has such a command). The character must be specified as a hexadecimal number. SET WARNING Syntax: SET WARNING keyword Enable or disable the warning if an incoming file already exists, where the keyword must be either ON or OFF. When set to ON (the default) and an incoming file already exists, an attempt will be made to store the file under a new and unique name. When set to OFF, an existing file will be overwritten. 17. SHOW Syntax: SHOW option The SHOW command displays the values of the parameters which can be set by the SET command. If the option is ALL, then a complete display will be provided. 18. STATISTICS Syntax: STATISTICS Give statistics about the most recent file transfer, such as the total number of characters transmitted, the effective baud rate and so forth. 19. TAKE Syntax: TAKE filespec Execute KERMIT commands from the specified file. The file may contain any valid KERMIT commands, including other TAKE commands. - 16 - UniFLEX KERMIT Users guide 20. TRANSMIT Syntax: TRANSMIT filespec Send the contents of the specified file to the other system "bare", without protocol, packets, error checking, or retransmission. This command is useful for sending standard logon or connection sequences, or to send commands to a smart modem, or for sending files to systems that don't have KERMIT. No guarantee can be made that the target system will receive the file correctly and completely. When receiving a file, the target system would normally be running a text editor in text collection mode. The transferred data will be displayed on the screen if DEBUG is on. - 17 - UniFLEX KERMIT Users guide Kermit usage with command line options. --------------------------------------- When KERMIT is called with command line options, only one command will be executed. After this command KERMIT will return to UniFLEX. The syntax is: kermit option [,option...] [parameter] [,parameter...] Valid options: n Don't read any existing 'kermit.ini' file. If this is the only option supplied, interactive mode will be entered. v Verbose. Show all input from a 'kermit.ini' file. If this is the only option supplied, interactive mode will be entered. u Use the specified command file for startup. This option can be used to override the default search for a 'kermit.ini' file. c Connect to the communication line. g Get file(s) from a remote server. The parameters are the requested files. r Receive files. No parameters are allowed. The filenames are specified by the remote kermit. s Send file(s). The parameters are the files to transfer. x Enter server mode. l Use the local device '/dev/modem'. t Use the specified device. The parameter is the specified device. d Turn debug mode on. i Turn image mode on. f Turn filename mapping off. e Use new escape character (for connect only). The parameter is the new character. b Set new baudrate. The parameter is the new baudrate. - 18 - UniFLEX KERMIT Users guide Examples: kermit sld data*.dat This will send the file(s) 'data*.dat' to the remote kermit via the line '/dev/modem'. Debugging is on. kermit tbg /dev/tty05 4800 remote_file This will get the file 'remote_file' from the remote kermit, via the line '/dev/tty05', at the baudrate of 4800 baud. Notice that the sequence of the option parameters is the same as the sequence of the options. kermit cte /dev/tty03 # This will bring kermit in 'connect' mode (terminal emulator). The line will be '/dev/tty03', at the default speed of 1200 baud. The escape character will be '#'.