XMODEM(LOCAL) XMODEM(LOCAL)
November 2, 1990
NAME
xmodem - Christensen protocol file transfer utility - Version 3.9,
November 1990
SYNOPSIS
xmodem [st|sb|sa|rt|rb|ra][ygmkctdlxpwen] [file...]
DESCRIPTION
The xmodem program implements the Christensen (XMODEM) file transfer
protocol for moving files between 4.2/4.3BSD Unix systems (and
successors, including Suns) and microcomputers. The XMODEM/CRC
protocol, the MODEM7 batch protocol, the XMODEM-1K block protocol, the
YMODEM batch protocol and the YMODEM-G streaming protocol are all
supported by xmodem. The ZMODEM protocol is not supported. For
details of the XMODEM/YMODEM protocols, see the document edited by
Chuck Forsberg titled XMODEM/YMODEM Protocol Reference.
Option Flags are case insensitive; the cluster of flags may be
preceded by an optional "-" character.
PARAMETERS
Exactly one of the following must be selected:
rb Receive Binary - files are placed on the Unix disk without
conversion. Xmodem will silently destroy existing files of the
same name.
rt Receive Text - files are converted from the CP/M and MS-DOS
format of CR-LF pairs to the Unix convention of newline
characters only between lines. Null bytes are ignored and bit 8
of each character is stripped (which makes Wordstar files much
more readable). A CTRL-Z character is deemed to indicate the EOF
location in the incoming file. The resulting file is acceptable
to the Unix editors and compilers, and is usually slightly
smaller than the original file. Xmodem will silently destroy
existing files of the same name.
ra Receive Apple - same as rt save CR characters in the incoming
file are translated into Unix newline characters.
sb Send Binary - files are sent without conversion as they exist on
the Unix disk.
st Send Text - newline characters in the file are converted to CR-LF
pairs in accord with the CP/M and MS-DOS conventions for text
files. The file "grows" in this process.
sa Send Apple - same as st save newline characters are converted
into CR characters in accord with Apple Macintosh conventions for
text files.
- 1 - Formatted: October 30, 2025
XMODEM(LOCAL) XMODEM(LOCAL)
November 2, 1990
OPTIONS
y Select the YMODEM batch protocol for sending files; a list of
files specified on the command line will be sent in sequence.
The YMODEM batch protocol is used automatically for file
reception if the sending program requests it. If this flag is
specified for a batch receive, (xmodem rty, for example), the
transfer will never attempt to switch from CRC to checksum mode.
g Select the YMODEM-G variant of YMODEM when receiving files.
YMODEM-G is automatically invoked on transmit if the receiving
program requests it. YMODEM-G is designed for "error-free"
connections with proper flow control; the transmitting program
blasts packets to the receiver as fast as it can without waiting
for acknowledgements. Any errors cause the entire file transfer
to be aborted.
m Select the MODEM7 batch protocol for sending files; a list of
files specified on the command line will be sent in sequence.
The MODEM7 batch protocol is used automatically for file
reception if the sending program requests it. If this flag is
specified for a batch receive, (xmodem rbm, for example), the
transfer starts in checksum mode rather than CRC mode. If both
"m" and "c" are specified on a receive command, the initial
"file-name" negotiations are done using checksums while the file
transfers are done using CRC-16.
k Select the XMODEM-1K file transfer mode for sending files. Use of
1K packets on low-error lines increases throughput. However, over
direct connections at 9600 bps to a busy host, 1K packets may
cause data overflows generating excessive retries. 1K packets
are automatically used for file reception if the sending program
requests it. If this flag is specified with the YMODEM flag in a
batch receive (xmodem rbyk, for example), the program will
attempt to use the "KMD/IMP" convention to invoke 1K file
transfers.
c Select the CRC-16 error-checking protocol on receive. CRC mode
is better at catching transmission errors that occur than the
alternative checksum protocol. CRC mode is automatically selected
for file transmission if the receiving modem program requests it.
t Indicates the Unix system is Too Busy and xmodem should fall back
to a simpler I/O strategy than normal.
d Delete the xmodem.log file before file transfer is begun.
l Do NOT write to the log file. If logging is selected, a file
xmodem.log will be created (or appended to), with entries for
significant events, errors and retries. This can be useful to
see why things went wrong when they do.
- 2 - Formatted: October 30, 2025
XMODEM(LOCAL) XMODEM(LOCAL)
November 2, 1990
x Toggle on debug mode. If debug mode is selected, copious and
possibly useful debugging information will be placed in
xmodem.log.
p Assume that xmodem is being invoked through SunOS tip (via the ~C
command). Status and error messages will be sent to stderr, and
hence to your screen, while the transfer is in progress. Do not
use this option unless you are using tip!
w Wait 15 seconds before initiating the startup handshake. Useful
if handshake characters are trashing things you need to type.
e Suppress EOT verification. Normally, xmodem tries to verify an
EOT character (used to signify the end of file) by NAKing it and
waiting for the EOT to be resent. This reliability feature can
generate harmless error messages in some microcomputer file
transfer programs; other programs refuse to work at all. To
accomodate the latter brain-damaged programs, use the "e" option.
n Allow CAN-CAN aborts during mid-transfer. Normally, as a
reliability feature, CAN-CAN aborts are only allowed at the
beginning of a file transfer. If you don't like this feature,
use the "n" flag.
FILE NAMES
Files transmitted using one of the batch modes will be stored on the
remote machine under a CP/M-ified name (path names stripped, limited
to eight characters plus a three character extension; ":" characters
will be turned into "/" characters; all characters will be in
monocase). Files received using one of the batch modes will be stored
under their transmitted names (except that any "/" characters in the
file name will be converted into ":" characters, all upper-case
characters will be translated into lower case and trailing dots will
be expunged).
When a batch receive is requested, xmodem takes a wait and see
attitude and can adapt to either batch protocol or even a classic
XMODEM transfer (note that CRC-16 mode is automatically set under
these circumstances unless the b flag is specified). If a classic,
"non-batch" XMODEM file reception takes place, the received file is
stored as xmodem.in. File names present on the command line for a
batch receive are ignored.
NOTES
Remember, CRC-16 error detection and YMODEM-G streaming must be
invoked by the receiving program while 1K blocksize must be invoked by
the sending program.
While waiting for the beginning of a file transfer, xmodem treats two
CAN (CTRL-X) characters that are received within 3 seconds as a
request to abort. CAN characters will not cause an abort if received
- 3 - Formatted: October 30, 2025
XMODEM(LOCAL) XMODEM(LOCAL)
November 2, 1990
in the midst of a file transfer (unless the "n" option was invoked).
If 10 or more errors are detected during the transmission or reception
of any one packet, the transfer is aborted.
Squeezed, compressed, ZIPed or ARCed files must be transferred in
binary mode, even if they contain text.
If you use xmodem over a rlogin link, you may have to use the form
rlogin machine -8.
If an unexpected error occurs before a file is completely received,
the incomplete file is deleted.
Files received using both binary and text mode in a YMODEM batch
transfer will be truncated to the file size specified in the YMODEM
header (extra CR characters in the incoming file are correctly
handled). File sizes are included in the YMODEM header when sending
both binary and text files. Thus files transferred via YMODEM should
preserve their exact length. File modification times are set for
received files if present in the YMODEM header; they are included in
the headers for transmitted files (watch for timezone problems,
however).
The "KMD/IMP" record count field in the YMODEM header is both set and
read.
xmodem can be used through the SunOS tip program to transfer files.
Use tip to establish a session on a remote computer. Enter the file
transfer command on the remote computer to send or receive files, then
use the ~C command which causes tip to request a local command string
and enter the appropriate xmodem command. Use the "p" option on the
local xmodem command so you will see status reports on your screen.
If the xmodem is running on the remote machine, use the "w" option
there to halt the initiation of file-transfer handshaking for a bit to
allow you to enter the ~C command line without interference.
The MODEM7 batch protocol is archaic and should only be used if YMODEM
batch protocols are not available in your PC's communication program.
If you must use MODEM7, you may have to specify the "m" option or,
preferably, "cm" when receiving files with xmodem.
EXAMPLES
To receive a text file transmitted from a micro (using CRC-16 error-
checking) and store it under the name file.name, use the command line
xmodem rtc file.name
Note that if the transmitting program on the micro uses the 1K packet
protocol and/or the YMODEM batch protocol, xmodem detects this
automatically and takes appropriate action. Further note that if one
of the batch protocols is used, the received file(s) will be stored
under their own names and the name on the command line (if any) will
- 4 - Formatted: October 30, 2025
XMODEM(LOCAL) XMODEM(LOCAL)
November 2, 1990
be ignored. Finally, note that CRC-16 error checking is the default.
Thus, a generic command to receive files would be
xmodem rt
To send a set of text files to a microcomputer using 1K packets and
the YMODEM batch protocol, use the command line
xmodem styk *.txt
FILES
xmodem.log (if logging is enabled)
BUGS
Batch mode could be smarter about bad file-names in the midst of a
batch transmit/receive.
Batch mode could allow a mixture of binary and text files.
Bare Carriage Return characters (i.e., those not immediately followed
by a Line Feed character) are mishandled in a received file when using
text mode. A file with "overstruck" lines will thus come out looking
funny.
SEE ALSO
kermit(1), rz(1), sz(1)
AUTHOR
Steve Grandi, National Optical Astronomy Observatories
(grandi@noao.edu). Based on xmodem by Brian Kantor, University of
California at San Diego. This, in turn, was based on umodem by Lauren
Weinstein, Richard Conn and others.
- 5 - Formatted: October 30, 2025