1 UMODEM UMODEM is a program which is used to assist in file transfers between a microcomputer running the CP/M operating system and a minicomputer running either VAX/VMS or Version 7 UNIX. It is an implementation of the CP/M User's Group MODEM file transfer protocol. UMODEM supports both text and binary file transmission, error detection by checksums, and automatic error recovery. To transfer files between the microcomputer and the VAX, you must have a compatible program running on the CP/M system, such as the popular MODEM program. MODEM is in the public domain. UMODEM is identical in function to the XMODEM file transfer program found on most CP/M Computer Bulletin Board Systems and the SNDRCV programs used with VAXNET. 2 Qualifiers UMODEM reads the command line to find the switches governing its operation and the name of the file to be sent to the CP/M system or created on the VAX. Switches begin with a "-", file names don't. Each switch is one-letter long and multiple switches are permitted (such as "-lrt"). The most important switches are "r" and "s": "Receive" and "Send" a file. 3 R Receive a file on the VAX Used in conjunction with the "t" (text) or "b" (binary) commands. Creates a new file on the VAX with the name given by the file name argument. A new version of the file is created under VMS; an error message is sent under UNIX if the file already exists. 3 S Send a file to the VAX Used in conjunction with the "t" (text) or "b" (binary) commands. Sends an existing file named in the file name argument from the VAX to the CP/M system. 3 T Text file transfer A qualifier to the "r" and "s" commands. Selects "text mode file transfer": converts CP/M CR-LF record delimiters into UNIX LF (or VMS LF stream file) record delimiters. Handles VMS CR-LF pairs properly. This is the normal mode of file transfer. 3 B Binary file transfer A qualifier to the "r" and "s" commands. Selects "binary mode file transfer": no conversions are made between CP/M file format and the VMS or UNIX file formats. 3 L Log file suppression This qualifier causes UMODEM to supress the normal action of logging its activity to the file UMODEM.LOG. If this switch is NOT present, UMODEM will create a file called UMODEM.LOG in the current directory and write statistics regarding the file transfer to it. These statistics include the name of the file transferred and its size. If UMODEM.LOG already exists, the new information is appended to the old file. 3 Y Display file information only--no file transfer Displays the size of the existing file specified in the file name argument and an estimate of the time needed to transfer the file at 300 baud. No file transfer will be performed. This information is also displayed when the "s" switch is selected. ! 3 M ! "Mung mode"--permit file overwrite on receive (UNIX only) ! Use of this qualifier to the "r" switch permits the user to ! overwrite an existing file on the UNIX system. Normally, UMODEM ! first checks to see if a file with the name specified in the file ! name argument already exists before attempting to create a new ! file and stops with an error message if such a file does exist. 3 File name The file name is any legal file name. If no directory specification is present, the current default directory is assumed. Under VMS, logical names may be used. 2 Error recovery UMODEM permits up to ten retries when a transmission error is detected. If this limit is exceeded, UMODEM will quit with an error message. If UMODEM is invoked with insufficient parameters or encounters an error in opening the file you specify, an error message is sent and the program terminates. In addition, the program times out if it doesn't receive the acknowledgment it expects from the microcomputer within a minute or so. If you inadvertently start up UMODEM, just don't do anything and the program will stop itself eventually. See the subtopic "Operation" for more details. 2 Operation UMODEM is an implementation of the CP/M User's Group file transfer protocol of Ward Christensen. Files are sent in "packets" of 128 characters each. Control information is prepended and appended to each packet to identify the packet and provide a means of verifying the integrity of the information contained in the packet. UMODEM waits for an acknowledgment from the other computer before beginning a file transfer. If it has to wait too long, it automatically quits. This "timeout" feature is important, as interrupts (^C, ^Y) are disabled during file transfer. The cyclic redundancy check (CRC) method of error detection implemented on many CP/M systems is not yet available; the checksum method specified in the original CPMUG standard is the technique used in UMODEM. 2 UNIX-VMS_file_transfers Since UMODEM runs under both VMS and Version 7 UNIX, it is capable of transferring files between such machines when used in conjunction with a virtual terminal program such as VAXNET, which runs under VMS. Naturally, the same procedure may be used to initiate file transfers between a VMS machine and a remote CP/M system from the VMS machine. UMODEM/VMS translates the logical name TT to determine which terminal to communicate with. Normally TT corresponds to the terminal you are currently logged in to ("local"). By issuing a "$ DEFINE/USER TT term" command before invoking UMODEM, one may perform transfers over a different terminal line (a "remote" line) than the one you are currently using for your interactive session. See the following example. NOTE that UMODEM requires that the remote line be set to EIGHT_BIT operation. This is done automatically when UMODEM is used on the local line, but must be done manually when using UMODEM on a remote line. 3 Example UNIX-VMS file transfer initiated from the VMS system using VAXNET. $ set terminal/eight_bit remote ! Needed for UMODEM, but $ vaxnet remote ! not VAXNET % umodem -rt vms.file ! Start UMODEM on the ... ! remote UNIX system UMODEM: Ready to RECEIVE File ^/ Q ! Get out of VAXNET $ define/user tt remote ! Temporarily redefine ! logical name TT $ umodem -st vms.fil ! Sends file from the ... ! VMS system UMODEM: Ready to SEND File $ vaxnet remote ! Back to remote terminal % ! operation. Remember ! to log off! 2 Problems/Questions Contact Wally Reiher: username REIHER, MB9-19, 495-1768. He has a version of MODEM configured for the Heath/Zenith-89 microcomputer system which is in the public domain and free for the asking.