KERMIT-88 1. Kermit-88 is the Z88 implementation of the widely used Kermit file transfer program. Copyright of Kermit is retained by the Columbia University Centre for Computing Activities, although anyone is free to implement a Kermit on a given machine. This must not be done for commercial purposes however. Kermit-88 is supplied as a single program file "KERMIT" which is CHAINed from BBC BASIC. Kermit-88 will not run on a machine with only 32k of RAM. It MAY run on a 64k machine, but testing has been carried out on a 160k machine (32k + 128k) without problems. Kermit is actually written in 8080 assembler on a CP/M machine. It is impractical to distribute the source files, although they will shortly be available from Lancaster University Kermit distribution centre. 2. KERMIT-88 Commands KERMIT-88 uses the DECSYSTEM-20 keyword style command language. Each keyword may be abbreviated to its minimum unique length. "?" may be typed to request a menu of the available options for the current field at any point in a command. ESC may be typed at any point in a command to fill out the current keyword ; if sufficient characters have not been typed to identify the current field uniquely, KERMIT-88 will sound a beep and allow you to continue from that point. If a "?" is accepted and the prompting system does not intervene, it indicates that it has been accepted as a filename wildcard character (matching a single character) E.g. SEND ? will send all files in the current directory having a filename of 1 character. Capabilities: As well as the ability to transfer files, Kermit-88 can also behave as a terminal emulator (CONNECT) and can send text files to a non-Kermit system (TRANSMIT). It is able to execute command files written in Kermit command language (TAKE) and has limited facilities for scripts to perform "conversations" with a remote host. These can be used for login scripts or for running remote software (see STRING, INPUT, PAUSE). Kermit-88 makes local file management easier by providing some basic operating system functions (CD/CWD, DIRECTORY and TYPE). File transfer occurs in one of two ways, depending on the type of Kermit we are talking to. For two micro based Kermits, the SEND and RECEIVE commands are used. When we are accessing a larger system, the remote Kermit will normally have a SERVER mode. This enables everything to be driven from the micro end. File transfer is accomplished with the SEND and GET commands. (See also REMOTE). Commands at a glance: BREAK Send a Break condition to the remote system. (This does nothing as at Version 1.04) BYE When talking to a remote Kermit Server, this command shuts down the server and logs it out, and also exits from Kermit-88 to BASIC command level. (Not yet implemented) CD/CWD directory-name Change to the specified directory. If no name is given the current directory is displayed. You can also change to a device name CONNECT Establish a terminal connection to the host connected to the serial port, i.e. pass all typein to the serial port and display all input from the serial port on the screen. Also, emulate a DEC VT52 to allow cursor control, screen clearing, etc, if TERMINAL is set to VT52 (see below), in which case you should also set your terminal type on the remote host to VT52. The escape character is initially set to <>\ (diamond backslash). When you issue the CONNECT command, the escape sequence is displayed to show you how to get back. The escape sequence is generally an uncommonly used control character, like <>-backslash or <>-rightbracket (<>-]) followed by a single letter "command". Q Suspend logging (only if logging is switched on) R Resume logging C Close Connection, return to Kermit-88> command level. S Display Status of connection, but maintain remote connection. ? List available single-character commands. 0 (zero) Send a null (0) character. B Send a BREAK signal. <>\ (or whatever - a second copy of the escape character) Send the escape character itself to the remote host. DIRECTORY [filespec] This provides a directory listing of the specified files. If no files are specified, all files in the current directory are listed. EXIT Exit from Kermit back to BBC BASIC. Panel settings are restored to their values when Kermit was entered. (Affects BAUD, PARITY and XON/XOFF) FINISH Like LOGOUT, but shuts down the remote server without logging it out. Leaves you at Kermit-88 command level; subsequent CONNECT commands will put you back at host system command level. GET remotefile [localfile] When Kermit-88 is talking to a Kermit Server on the host, you should use the GET command to request the server to send files to you, for example: get k*.hlp You may optionally specify localfile to force a local name, otherwise Kermit attempts to build a filename based on the remote name. HELP Shows available commands. (Same as "?") INPUT time-delay string Sets a string and a time delay in seconds, then waits to receive them from the remote system. This command is meant for use in TAKE files. Note that characters which cannot be entered from the keyboard can be entered in octal (See STRING) LOG filespec When CONNECTed to a foreign host as a terminal, log the terminal session to the specified file. The log file is closed when the connection is closed by typing the escape character followed by the single-character command "C". The default LOG file name is "KERMIT.LOG" LOGOUT Like BYE, but leaves you at Kermit-88 command level. PAUSE time-delay Waits specified number of seconds before continuing. Its main purpose is to introduce delays in TAKE files (while dialling a number for example). RECEIVE [localfile] Receive file(s) from the remote Kermit. If localfile is specified, use this name, otherwise store it under the name provided in the file header supplied by the remote host. If the name is illegal, Kermit uses as many legal characters from the name as possible (see the description of SET FILE-WARNING below). If the file exists, and FILE-WARNING is ON, it warns the user and tries to build a unique name for the file by adding numeric characters to the end. REMOTE command Sends command to a remote Kermit server. Not all servers support all commands so results can be varied. Current commands which KERMIT-88 can send are: REMOTE DIRECTORY - list remote files (Not implemented at 1.04) SEND localfile [remotefile] Send file(s) specified by localfile to the remote Kermit. Localfile may contain wildcards. If remotefile is specified, the remote Kermit will attempt to save the file as remotefile as opposed to localfile. Note that if localfile contains wildcards and remotefile is specified, the remote Kermit will try to save all files as remotefile. See RECEIVE for information on how Kermit deals with filename conflicts. SET parameter [value] Set the specified parameter to the specified value. Possible settings: AUTORECEIVE ON | OFF Allows several files to be received without having to type RECEIVE on the receiving machine. The first packet from the sender will be lost. BAUD-RATE value Change the baud rate of the communications port. The value is the numeric baud rate (300, 9600, etc.) desired. Type SET BAUD followed by a question mark for a list of supported baud rate@s. NOTE: Kermit uses whatever is set y the sytem Panel- If you SET the BAUD-RATE values, you must be aware that this affects the system, and other applications. That is, if you suspend KERMIT having changed any of the port settings the new settings would apply to (say) a copy of Pipedream that may be about to print. When you EXIT from KERMIT, the original Panel settings are restored. BLOCK-CHECK-TYPE 1 | 2 | 3 The options are: 1-CHARACTER-CHECKSUM Normal, default, standard 6-bit checksum. 2-CHARACTER-CHECKSUM A 12-bit checksum encoded as two characters. 3-CHARACTER-CRC-CCITT A 16-bit CCITT-format Cyclic Redundancy Check, encoded as 3 characters. The 2 and 3 character options should only be used under conditions of extreme line noise. Many implementations of KERMIT only support the single character checksum. DEBUG ON | OFF. Enables/disables displaying of packets on the screen during file transfer. ESCAPE Change the escape character to exit from terminal connections. Kermit-88 will prompt you for the new escape character, which you enter literally. Eg. to change the character to <>-] type SET ESCAPE [enter] , then press diamond, then ]. FILE-MODE ASCII | BINARY Tells KERMIT-88 what kind of file it is sending, so that KERMIT can correctly define the ends of lines. SET FILE BINARY means to send all the data exactly as it appears in the file. SET FILE ASCII is used for text files. FLOW-CONTROL ON | OFF Enables or disables XON/XOFF flow control. See SET BAUD-RATE for implications of changing system communication settings. LOCAL-ECHO ON | OFF When you CONNECT to a remote host, you must set LOCAL- ECHO ON if the host is half duplex, OFF if full duplex. OFF by default. LOGGING ON | OFF Enable or disable file logging during CONNECT sessions. The log file name is set using the LOG command. PARITY value Sets parity for outgoing characters to one of the following: NONE, SPACE, MARK, EVEN, or ODD. On input, if parity is NONE, then the 8th bit is kept (as data), otherwise it is stripped and ignored. The parity setting applies to both terminal connection and file transfer. If you set parity to anything other than none, KERMIT-88 will attempt to use "8th bit prefixing" to transfer binary files. If the other KERMIT is also capable of 8th bit prefixing, then binary files can be transferred successfully; if not, the 8th bit of each data byte will be lost (you will see a warning on your screen if this happens). See SET BAUD-RATE for implications of changing system communications settings. RECEIVE parameter value SET a receive parameter PAD-CHAR Sets the pad character to use while receiving files. You will be prompted for the character literally. PADDING value Set the number of pad characters to use while receiving files. START-OF-PACKET Set the default start of packet character for receiving files (See SET SEND START-OF-PACKET for considerations.) Default is <>A SEND parameter value SET a send parameter PAD-CHAR Sets the pad character to use while sending files. You will be prompted for the character literally. PADDING value Set the number of pad characters to use while sending files. START-OF-PACKET Set the default start of packet character for sending files. The SOP character is Control-A by default, but it may be necessary to change this on some networks. Choose a control character not otherwise used, ie not <>-M (return) <>-J (linefeed) <>-H (backspace) <>-G (bell) or <>-I (tab). TACTRAP Set the TAC intercept character. If you are attached to a TAC (or indeed any other piece of equipment which "eats" a particular character) you can specify the character to Kermit so that it will double it up during transmission. TERMINAL VT52 | DUMB When connected as a terminal to a foreign host, controls whether the micro emulates a VT52 or runs in "native mode". TERMINAL is VT52 by default. TIMER ON | OFF Enable or disable the timer. The timer is off by default, because in the normal case KERMIT-88 is communicating with a mainframe KERMIT that has its own timer. Mainframe KERMIT timers tend to be more precise or adaptable to changing conditions. You should SET TIMER ON if you are communicating with a KERMIT that does not have a timer. You should SET TIMER OFF if you are communicating over a network with long delays. WARNING ON | OFF Warn user of filename conflicts when receiving files from remote host, and attempt to generate a unique name by adding numeric characters to the given name. ON by default. SHOW Shows various settable parameters. STATUS A synonym for SHOW STRING text Sends a character string to the remote system. It is intended for use in TAKE files. The text can include octal control characters in the form \nnn where nnn can be less than or equal to \377. Eg. \015 is a carriage-return character. TAKE filespec Takes commands from the specified file as if they had been typed at the keyboard. This is useful if you want to set up a batch job to dialup a remote machine for example. The TAKEfile must be an ASCII file such as a Pipedream file saved with Save Plain Text option set to Yes. An automatic TAKE is performed when Kermit is started, taking commands from KERMIT.INI if it exists in the current directory. This is useful for setting up a commonly used baud-rate, parity etc. TRANSMIT filespec reply-string Send the specified file to the system on the other end of the connection as though it were being typed at the terminal, one line at a time. No KERMIT protocol is involved. You must manually confirm each line and Kermit waits until it receives the reply-string before continuing. This is useful for sending files to systems that don't have a KERMIT program. During transmission, you may type the escape character followed by one of these single-character commands: C Cease transmission R Re-transmit the previous line TYPE filespec Types an ASCII text file to the screen, pausing every 8 lines. This is meant for quickly looking at TAKE files or other plain text files. Pipedream documents are not particularly legible. VERSION Show the name, edit number, and edit date of several of the modules that make up Kermit-88. Wally Wright 4 Welland Court ST.NEOTS Cambridgeshire PE19 3JZ Tel. (0480) 212904