B.3. Xmodem,
Ymodem and
Zmodem
Xmodem sends 128 bytes and a
checksum, waits for a Acknowledgment to say all is well and sends
the next block. If a negative acknowledgement is received or if no
ACK or NAK ever appears then
the block is sent again.
Xmodem is a simple protocol, as
you would expect of a program written for 8-bit computers running
CP/M. It has lots of
inefficiencies and minor problems, such as rounding up the file
size to the next 128 byte boundary. These deficiencies lead to an
evolution of the protocol with revisions of
Xmodem, then
Ymodem and finishing with
Zmodem.
Zmodem is substantially faster than
Xmodem and has no niggling problems.
The Zmodem protocol is substantially
more complex than the Xmodem protocol,
but since we only seek to at most compile the code, that complexity
need not concern us.
If an upload fails and you are left with
rz waiting to recieve a file then typing
Ctrl-X a
number of times will return you to the command prompt. This also
works for Xmodem's rx
and Ymodem's
ry.
Useful Zmodem abilities are
resuming failed uploads and sending multiple files in a single
upload session.
An implementation of Xmodem,
Ymodem and
Zmodem for POSIX
computers is available from http://www.ohse.de/uwe/software/lrzsz.html.
Red Hat Linux distribute this in the
lrzsz RPM package.
lrzsz is a enhanced free software branch
of the public domain version of rzsz
from Omen
Technology.