Alpha-Kermit User's Guide 1.0 Conventions Used in this Guide Entering a carriage return (or the ENTER or RETURN key) is indicated like this: [CR]. Control characters (which you enter by holding down the CONTROL or CTRL key while you press another character) are preceded with the caret "^" symbol like this: ^J (for control-J, which you enter by holding down the the CONTROL key while you press the J key). Arguments will be shown in curly brackets like this: COMMAND {argument} When you have a choice between two or more arguments, they are listed like this: {ON or OFF}, {FULL or HALF}, and so on. The argument {file spec} means you should type a file specification, like MYFILE.TXT or DSK0:FOO.TXT[7,0]. The argument {char} means you should type a character. The argument {number} is a number, like "8" or "30". 2.0 Step-by-Step Guide Kermit can be used for the transfer of both sequential ASCII and binary files. By design, Kermit will not transfer random files, because of the difficulty in translating different types of computers' methods of storing and allocating random files. 2.1 Starting Kermit Kermit is invoked on your system at the dot (or system prompt) by the command: KERMIT {TRMDEF} [CR] where {TRMDEF} is the TRMDEF, or name of the port, you want to communicate through. Most often, this will be the name of the port your modem is connected to. For example: KERMIT PHONE1 [CR] You may enter the command: KERMIT/? [CR] at the system dot prompt for a reminder of how to start up Kermit. After starting up Kermit, you should see a brief message about Kermit, and then the prompt: Alpha-Kermit > If you see instead: REMOTE Alpha-Kermit > this means that you did not specify a communications port. You will need to EXIT and start up Kermit again with the name of a TRMDEF before placing a call or starting a file transfer. Kermit recognizes both "HELP" and "?" from command mode. This will display the options available to you. When you are ready to talk to the modem, enter the command: CONNECT [CR] This gets you talking to whatever is connected to your communications port (usually a modem!). You will see a message like this: Escape character is ^ The "Escape character" is the keypress that will return you to your local Alpha-Kermit command prompt. Alpha-Kermit usually uses the ^ (caret) as the Escape character, but you can change it with the "SET ESCAPE" command. Be sure to remember what the Escape character is! If you have an auto-dial modem, you are now ready to dial out from the keyboard. Otherwise it is time to pick up the phone and dial out. (When using an auto-dial modem that uses the "AT" command set, you may find it helpful to give your modem this command before dialing, so you can see what you're typing, and get intelligible responses back from the modem: ATE1V1Q0 [CR] ; makes your modem Echo your keypresses, give ; Verbose responses, and turns off Quiet mode ; See your modem manual for specifics ) You can now dial the phone (either by hand or by "ATDT" or other modem command). 2.2 Starting the Remote Kermit Program When the remote modem answers and you connect to the host (remote) computer, you will need to invoke Kermit at the host end to be able to transfer files. Often, you simply type: KERMIT [CR] to start the remote host Kermit. If the remote computer is an AMOS Alpha Micro computer, you just type KERMIT [CR] at the system prompt to start Kermit. For other types of systems, the method for starting the remote Kermit may vary. Someone at the other end (like the remote system operator) should be able to help you if the KERMIT command doesn't work on that system. If the remote Kermit is an Alpha-Kermit, you should see the initial Alpha-Kermit message and the prompt: REMOTE Alpha-Kermit > You're now ready to transfer files! NOTE: If AUTOSEND or AUTORECEIVE is turned on, the remote host computer may be sent the command "KERMIT [CR]" automatically when you start a file transfer. 2.3 Uploading Files If you want to send a file to the remote host computer ("upload" a file), you enter the command: RECEIVE [CR] at the remote Kermit's command level on the host computer. You then use the Escape character (usually the caret ^) to return to your local Alpha-Kermit command prompt. On your own machine, to your local Alpha-Kermit, you enter: SEND {file spec} [CR] where {file spec} can be a single file (e.g., MYFILE.TXT) or a wildcard file specification (e.g., ??FILE.TXT or MY*.*). NOTE: If AUTOSEND is turned on, the remote computer will be sent the commands "KERMIT [CR]" and "RECEIVE [CR]" automatically when you give the local Alpha-Kermit the SEND command. Kermit now starts the file transfer. A dot "." will be displayed for each "chunk" or packet of the file that is transferred. A "t" will be displayed for each packet that "times out": i.e., is unacknowledged after a certain period of time. A "c" will be displayed for each checksum or CRC error: i.e., each packet that doesn't "add up" according to Kermit's error-checking scheme and so must be retransmitted. An "n" will be displayed each time the remote system send a negative acknowledgment (NAK). When the transfer is finished, you get a message stating that the file has been transferred, and what the effective baud rate was during transfer. If you want to rename a file as it is transferred, give the remote Kermit a file specification in the RECEIVE command. For instance: RECEIVE NEWFIL.TXT [CR] NOTES: You can usually (depending on the remote Kermit program) only rename one file this way. If you SEND a batch of files, only the first file will be renamed and the rest will be sent with their original file names. AUTOSEND must be off in order to rename files when SENDing. 2.4 Downloading Files If you wish to receive a file from the remote host computer ("download" a file), you follow a procedure similar to the one above. After making sure that you have started up the remote Kermit, give the remote Kermit the command: SEND {file spec} [CR] where {file spec} is the name(s) of the file(s) you want off the remote system. If the remote computer is a non-Alpha Micro system, you must use the remote system's file naming conventions. If the remote Kermit is Alpha-Kermit 2.0 or later, you can use a wildcard specification like ???FIL.TXT or MY*.BAS to get a batch of files. Then press the Escape character (normally the caret ^), and give your local Alpha-Kermit the command: RECEIVE [CR] Kermit now starts the file transfer. A dot "." (or "t", "c", or "n") will be displayed for each packet of the file. When the transfer is finished, you get a message stating that the file has been transferred, and what the effective baud rate was during transfer. If you want to rename a file as it is transferred, give a file specification in the RECEIVE command. For instance: RECEIVE NEWFIL.TXT [CR] NOTES: You can only rename one file this way. If you SEND a batch of files, only the first file will be renamed and the rest will retain their original file names. If the AUTORECEIVE option is turned on, you can have Alpha-Kermit send the commands "KERMIT [CR]" and "SEND {file specification}" to the remote system automatically. Enter the RECEIVE command with an equal sign, like this: RECEIVE = {file spec} where {file spec} is the name of the remote file(s) you want to receive. The equal sign is important, because it tells your local Alpha-Kermit what file specification to use when sending the remote Kermit the "SEND" command. 2.5 Notes on Transferring Batches of Files When transferring files with Kermit, only the file name and extension are passed between the local and remote Kermits, not the complete file specification. Device and PPN information (directory or location information) are not transmitted. Between unlike types of computers, directory information is usually useless anyway, since different operating systems use different methods to create and specify directories. This means that if you are trying to transfer a group of files from different PPNs or directories on the original system, they will all be placed in one account on the receiving system: the account where the receiving Kermit is currently logged. The information about what device and PPN the files came from is not passed from one Kermit to another. This is true even when transferring files from one Alpha-Kermit to another Alpha-Kermit. A batch of files from different devices and or PPNs (e.g., ALL:*.TXT[]) will all be put in the one account where the receiving Kermit is currently logged. 2.6 Finishing After transferring files, you must enter: CONNECT [CR] to talk to the remote computer again. Then give the remote Kermit the command: EXIT [CR] to exit the remote Kermit. If you're finished using the remote host, logoff, then hang up your modem (either manually or by "+++ATH" or other modem command). Enter the Escape character "^" to return to your local Alpha-Kermit system, and give your local Alpha-Kermit the command: EXIT [CR] to exit Alpha-Kermit and return to your system prompt. Kermit handles all the attaching and detaching of the modem job during the communication session. 3.0 Summary of Alpha-Kermit Commands AMOS Temporarily exit Alpha-Kermit, for instance, to LOG to a different account or to do a DIR to locate a file. CONNECT Use to "talk" to the modem, the remote host computer, or the remote Kermit. This switches you to a mode where all your keypresses are sent through the "connect" channel (to the modem, the remote computer, or the remote Kermit). Press the ESCAPE character (normally the ^ key) when you want to get back to your local Alpha-Kermit. EXIT When you're all finished, use EXIT to get out of Kermit and return to system monitor level. HELP Causes a brief summary of Kermit commands to be displayed on the screen. ? Same as HELP. RECEIVE Receive a file. The file will have the same name as the file on the remote system, unless an optional {file spec} is given. SEND {file spec} Send the file or batch of files indicated by {file spec}. SET AUTORECEIVE {ON or OFF} Causes Kermit to automatically send the commands "KERMIT" and "SEND" to the remote system when you enter a local "RECEIVE =" command. SET AUTOSEND {ON or OFF} Causes Kermit to automatically send the commands "KERMIT" and "RECEIVE" to the remote system when you enter a local SEND command. SET BELL {ON or OFF} Causes a beep to be sounded after each file transfer is done executing. This can be useful when transferring long files if you want an "alarm" to let you know when the file has been transferred (while you take a little nap or get some coffee or whatever). SET BLOCKCHECK {1, 2 or 3} Sets the error-checking method to use one- or two-byte checksum, or three-byte CRC. In general, the more check bytes, the more reliable the error-checking, but the local and remote Kermits will "negotiate" the error-checking method. This means that the actual error-checking used for a file transfer may differ than the method you set if the remote Kermit does not support the checksum selected. SET DEBUG {ON or OFF} Causes some interesting diagnostics to be displayed during file transfers instead of the usual dots. As each packet of the file is transferred, when DEBUG is ON, information about the packet is displayed on your screen. This can be useful if you are having problems transferring files and want to see what is "really going on." SET DUPLEX {FULL or HALF} Changes the DUPLEX (also known as "echoplex" or "echoing" to FULL or HALF. FULL duplex should be used when the remote computer will echo your characters back to your screen. Most remote computers you encounter will work in FULL duplex mode, so you can leave Alpha-Kermit in FULL duplex. If the remote computer does not echo your characters, you won't be able to see what you're typing in CONNECT mode, so try setting duplex to HALF, which will make Alpha-Kermit echo your characters for you instead. If you SET DUPLEX HALF, and then in CONNECT mode everything you type is echoed TTWWIICCEE, try setting DUPLEX FULL. SET ENDLINE {char} Redefines the "end-of-packet" signal for file transfers. With most remote Kermits that use control-M for the "end-of-packet" character, you normally won't need to change this. If your file transfers aren't working, however, you can use the SHOW or STATUS command on the remote Kermit to see what character it uses for the "end-of-packet" signal, and then use SET ENDLINE to change the end-of-packet character to whatever the remote Kermit is using. To define the end-of-packet character as a control character, precede it with the "^" character (for example, control-M would be "^M"). NOTE: The remote Kermit may have two separate "end-of-packet" signals: one that it uses when sending packets, and one that it uses when receiving packets. Make sure you define your local Alpha-Kermit's ENDLINE character to match the character the remote Kermit wants when receiving packets (the RECEIVE end-of-line character). SET ESCAPE {char} Defines the character you want to use as the ESCAPE character, which is the key you press to get out of CONNECT mode (talking to the remote computer or remote Kermit) and back to giving commands to your local Alpha-Kermit. This key is normally the ^ key, but if you need to type the ^ character while talking to the remote computer, you'll need to change the ESCAPE key to something else that you won't need to use while talking to the remote computer. Indicate control characters by preceding them with the ^ key: for instance, control-G would be ^G. SET PACKETSIZE {number} Alpha-Kermit normally uses a 94-byte packet, which works fine with most Kermits. Normally, you won't need to change the packet size, which is negotiated with the remote Kermit. If special circumstances require that you change the packet size, Alpha-Kermit can use packets from 10 to 94 bytes large. SET PACKETSTART {char} Changes the character used to mark the beginning of a packet. Most Kermits, including Alpha-Kermit, use control-A, but you can redefine this character as needed by the remote Kermit. SET PARITY {NONE, EVEN, ODD, MARK, SPACE} Tells Kermit to use only 7 data bits when transferring files. EVEN parity is most common, particularly on IBM equipment. Note that this command does NOT change the real parity of your communications serial port. It simply causes Kermit to strip the eighth bit (or parity bit) in bytes that it SENDs or RECEIVEs during a file transfer. Not setting the parity correctly will make the error-correcting checksums add up incorrectly, so that file transfers will not work. The parity setting is information that is frequently supplied when you are first given access to a remote system, along with the telephone number to dial, your sign-on information, the baud rate, etc. If, however, you don't know what parity setting to use, try leaving it as NONE. If your file transfers don't work, try SET PARITY EVEN, since EVEN parity is the next most popular parity in use. SET RETRIES {number} Sets the number of times a block will be re-sent during a file transfer before Kermit "gives up" and aborts the file transfer. This is normally 10 retries, but you can make it fewer (if you have a really excellent connection!) or more (if your connection is noisy, or any other time when there may be a lot of transmission errors). SET STALL {number} Sets the amount of time to pause between characters in 1/100ths of a second. Use to slow down file transfers if necessary for mainframe computers or slow, heavily-burdened remote systems. SET TIMEOUT {number} Sets the number of seconds Kermit will wait for an acknowledgement (when SENDing) or new packet (when RECEIVing) before re-sending the packet or sending a negative acknowledgement. This is normally 8 seconds, but you can make it shorter (if you have a really excellent connection!) or longer (if your connection is noisy, if you are connected via satellite as when dialing overseas, or any other time when there may be unusual delays between packets). SHOW Displays the current settings (your CONNECT port, type of DUPLEX, etc.) and packet characteristics (size, end-of-packet character, etc.) on your screen. 4.0 Alpha-Kermit Commands by Function For exchanging files: SEND, RECEIVE For connecting to a remote host: CONNECT, SET DUPLEX, SET ESCAPE, SET AUTORECEIVE, SET AUTOSEND For setting non-standard transmission and file parameters: SET BELL, SET BLOCKCHECK, SET DEBUG, SET ENDLINE, SET PACKETSIZE, SET PACKETSTART, SET PARITY, SET RETRIES, SET STALL, SET TIMEOUT For interrupting file transmission: Control-C For getting information: HELP, ?, SHOW For leaving Kermit: EXIT, AMOS 5.0 Sample Kermit Session .KERMIT MODEM1 Copyright 1984, 1991 Robert P. Rubendunst. Alpha-Kermit by Soft Machines. Permission is granted to use this software at no charge provided that this message is not changed or deleted from any copy of this software. Alpha-Kermit version 2.0(21) Alpha-Kermit >CONNECT You are now communicating with whatever device is connected to the serial port (e.g. your modem, or another system.) Data received by the serial port will be displayed on this screen. Until you press the special escape character, all of your keypresses will be sent out of the serial port. Pressing the escape character returns you to Alpha-Kermit's command mode. If you are using a modem, your terminal is now "connected" to the modem. Consult your modem manual for instructions on dialing, hanging up, changing modem settings, etc. Special tips for most modem users: Before dialing, enter the characters ATE1Q0 and a return, even though your keypresses may not be echoed on the screen. Before exiting CONNECT, enter ATE0Q1 and a return! Have fun! Escape character is ^ ATE1V1Q0 OK ATDT 3517411 CONNECT 9600 RELIABLE COMPRESSED UDS V.3225 V.32/MNP5 Enter name: MY NAME Enter password: ********* Welcome to Soft Machines MSP-based Update System . .KERMIT Copyright 1984, 1991 Robert P. Rubendunst. Alpha-Kermit by Soft Machines. Permission is granted to use this software at no charge provided that this message is not changed or deleted from any copy of this software. Alpha-Kermit version 2.0(21) REMOTE Alpha-Kermit >SEND SALREP.RUN (press the ^ key here) Alpha-Kermit >RECEIVE SALREP.NEW Receiving salrep.run as SALREP.NEW ............................................................................... ............................................................................... ................................... elapsed time was 0:01:05, effective baud rate was 1877. A total of 12204 bytes in 1 file transferred. Alpha-Kermit >CONNECT Escape character is ^ REMOTE Alpha-Kermit >RECEIVE X.X (press the ^ key here) Alpha-Kermit >SEND MYFILE.TXT MYFILE.TXT ........................ elapsed time was 0:00:10, effective baud rate was 1994. A total of 1994 bytes in 1 file transferred. Alpha-Kermit >CONNECT Escape character is ^ REMOTE Alpha-Kermit >EXIT .LOGOUT Logged out. NO CARRIER ATE0Q1 (press the ^ key here) Alpha-Kermit >EXIT . 6.0 About the Kermit Protocol "The KERMIT file transfer protocol has always been open, available, and free to all. The protocol was developed at the Columbia University Center for Computing Activities, as were the first several KERMIT programs. Columbia has shared these programs freely with the worldwide computing community since 1981, and as a result many individuals and institutions have contributed their own improvements or new implementations in the same spirit." -- Policy on Commercial Use and Distribution of Kermit Frank da Cruz, Columbia Center for Computing Activities September 1985. Alpha-Kermit was written in 1984 by Bob Rubendunst of Soft Machines, and was donated both to AMUS and to Columbia University's Kermit Distribution Center. For more information about other Kermit programs for other computers, contact: Kermit Distribution Center for Computing Activities Columbia University 612 West 115th St. New York, NY 10025 An excellent book about Kermit, "Kermit: a File Transfer Protocol" by Frank da Cruz, is available from Digital Press, 1987, ISBN 0-932376-88-6. 7.0 Acknowledgments Thanks to Ron, formerly of the AMUS staff, and Ulrich Wetsler of SCAN-TECH, for the original Alpha-Kermit documentation they made available on the AMUS network, from which I've borrowed extensively. Karen L. Bojda Soft Machines January 9, 1992 .