KERMIT(1) QNX Software Manual KERMIT(1) NAME NAME kermit - file transfer, virt. terminal over tty link SYNOPSIS SYNOPSIS kermit c [ lbe ] [ line ] [ baud ] [ esc ] kermit r [ ddilb ] [ line ] [ baud ] kermit s [ ddilb ] [ l ine ] [ baud ] file ... DESCRIPTION DESCRIPTION Kermit Kermit provides reliable file transfer and primitive virtual terminal communication between machines. It has been implemented on many different computers, including microprocessors (see below). The files transferred may be arbitrary ASCII data (7-bit characteand may be of any length. The file transfer protocol uses small (94 character) checksummed packets, with ACK/NACK responses and Kermit timeouts. Kermit currently uses a five second timeout and ten retries. kermit The arguments to kermit are a set of flags (no spaces between the flags), three optional args (which, if included, must be in the same order as the flags which indicate their presence), and, if this is a Send operation a list of one or tar more files. (It is similar in some way to the Unix tar command structure). Kermit Kermit has three modes, Connect, Send, and Receive. The first is for a virtual terminal connection, the other two for file transfer. These modes are specified by the first c s or r flag, which should be c, s, or r, respectively. Exactly one mode must be specified. d kermit The d flag (debug) makes kermit a bit more verbose. kermit The states kermit goes through are printed along with other d traces of it's operation. A second d flag will cause kermit kermit to give an even more detailed trace. i The i flag (image) allows slightly more efficie nt file transfer between Unix machines. Normally (on Kermits defined to run on Unix systems) newline is mapped to CRLF on output, CR's are discarded on input, and bytes are masked to 7 bits. If this is set, no mapping is done on newlines, and all eight bits of each byte are sent or received. This is the default for non-Unix kermits. l kermit The l flag (line) specifies the tty line that kermit should use to communicate with the other machine. This is l specified as a regular device name, like "$mdm". If no l kermit option is specified, standard input is used and kermit assumes it is running on the remote host (ie. NOT the machine to which your terminal is attached). b The b flag (baud) sets the baud rate on the line l b specified by the l flag. No changes are made if the b flag is not used. Legal speeds are: 110, 150, 300, 1200, 2400, -1- KERMIT(1) QNX Soft ware Manual KERMIT(1) 4800, 9600. e The e flag (escape) allows the user to set the first character of the two character escape sequence for Connect kermit mode. When the escape character is typed, kermit will hold it and wait for the next character. If the next character c C kermit is c or C, kermit will close the connection with the b B remote host. Similarly, if the next character is b or B, kermit kermit will send a BREAK signal to the remote host. If the ____ second character is the same as the escape character, the escape character itself is passed. Any character other than these three results in a bell being sent to the user's terminal and no characters passed to the remote host. All other typed characters are passed through unchanged. The default escape character is '^'. p The p flag (parity) allows parity to be set on outgoing packets and stripped on incoming ones. This is useful for communicating with IBM hosts or over networks, such as TELENET, that usurp the parity bit. The possible values for parity are mark, space, even, odd or none (the default). t kermit The t flag (turnaround) tells kermit while in protoc ol mode (sending or receiving) to wait for a turnaround character (XON) from the other host after receiving every kermit packet. This is necessary to run kermit with a half duplex host such as an IBM mainframe. h kermit The h flag (half duplex) makes kermit echo locally any char acters typed in connect mode. This is also necessary to communicate with a half duplex system like an IBM 370. The file arguments are only meaningful to a Send kermit kermit kermit. The Receiving kermit will attempt to store the file with the same name that was used to send it. QNX kermits kermits n ormally convert outgoing file names to uppercase f and incoming ones to lower case (see the f flag). If a filename contains a slash (/) all outgoing kermits will strip off the leading part of the name through the last slash. EXAMPLE EXAMPLE For this example we will assume two QNX machines. We are logged onto "qnxa" (the local machine), and want to communicate with "qnxb" (the remote machine). There is a modem on "$mdm". We want to connect to "qnxb", then transfer "file1" to that machine. We type: kermit clb $mdm 1200 Kermit answers: Kermit: connected... Now we dial the remote machine and connect the modem. Anything typed on the terminal will be sent to the remote machine a nd any output from that machine will be displayed on our terminal. We hit Control-Z, get a login herald and -2- KERMIT(1) QNX Software Manual KERMIT(1) log in. kermit Now we need to start a kermit on the remote machine so that we can send the file over. First we start up the kermit remote, (in this case receiving) kermit, then the local, (sending) one. Remember that we are talking to qnxb right now. We type: kermit r kermit (there is now a Receive kermit on qnxb) c We type ^ (the escape character) a nd then c to kill kermit the local (Connecting) kermit. Kermit disconnected. We type: kermit slb $mdm 1200 file1 Kermit answers: Sending file1 as FILE1 kermit When the transmission is finished, kermit will type either "Send complete", or "Send failed.", depending on the success of the transfer. If we now wanted to transfer a file from qnxb (remote) to qnxa (local), we would use these commands: kermit clb $mdm 1200 (connected to qnxb) kermit s file9 ^c (up-arrow c not control-c) (talking to qnxa again) kermit rl $mdm 1200 After all the transfers were done, we should connect kermit again, log off of qnxb, kill the Connect kermit and hang up the phone. Detail on other implementations and on the protocol is ______ _____ _____ ______ ________ given in the Kermit Users Guide , and the Kermit Protocol ________ Handbook FEATURES FEATURES The KERMIT Protocol uses onl y printing ASCII characters, Ctrl-A, and CRLF. Ctrl-S/Ctrl-Q flow control can be used "underneath" the Kermit protocol (TANDEM line discipline on Berkeley Unix). kermit This kermit does have timeouts when run under QNX, so the protocol is stable when communicating with "dumb" kermits (that don't have timeouts). OTHER IMPLEMENTATIO NS OTHER IMPLEMENTATIONS Kermits have been written for TOPS-20, TOPS-10, IBM VM/CMS, Unix, VAX/VMS, RT-11, MS-DOS, CP/M, and Apple DOS. -3- KERMIT(1) QNX Software Manual KERMIT(1) kermit The QNX kermit in use at Merrell Dow has been tested with MS-Kermit (PC-DOS), Ckermit (Xenix), U nix Kermit (Unix System V) Kermit-11 (RSX-11M) , Kermit-32 under VMS, and Kermit-20 under TOPS-20. More information is given in the ______ _____ _____ Kermit Users Guide. SEE ALSO SEE ALSO stty(1) ______ _____ _____ ______ _______ _ ___ __ Kermit Users Guide, Fourth Edition (4 May 83), Frank da Cruz, Daphne Tzoar, Bill Catchings ____ __ ________ ______ ________ _______ _ __ _____ Kermit Protocol Manual, Protocol Version 3 (29 April __ 83), Frank da Cruz, Bill Catchings Both of the above documents are from the Columbia University Center for Computing Activities, New York, New York, 10027. AUTHORS AUTHORS KERMIT kernel by Bill Catchings, Columbia University Center for Computing Activities KERMIT-Unix adaptation by Chris Maio and Bob Cattani, Columbia University Computer Science Dept. Local mods for v6, System III, and System V by Walter Underwood. Includes bug fixes from Jim Guyton at RAND-Unix. KERMIT-QNX adaption by Anthony J. Starks at Merrell Dow Research Institute. DIAGNOSTICS DIAGNOSTICS cannot open device "cannot open device" line The file named in the line argument did not exist or had the wrong permissions. bad line speed "bad line speed" baud The baud argument was not a legal speed. Could not create file "Could not create file" kermit A Receive kermit could not create the file being sent to it. nothing to connect to "nothing to connect to" kermit line A Connect kermit was started without a line argument. BUGS AND CAVEATS BUGS AND CAVEATS There is no locking on the use of the outgoing line. kermit Several users could run kermit (or anything else) on the line simultaneously. The name "kermit" is not an acronym, but named after the frog of Seasame Street fame. ("Kermit" is also Celtic -4- KERMIT(1) QNX Software Manual KERMIT(1) for "free") This implementation does not send or process error-message packets. Eight-bit quoting is not implemented. Terminal emulation mode drops characters after 1200(?) baud. The message "GETC: file not open for read" or some such may occur during transfers. -5-