


     RRRRZZZZ((((1111))))                   XXXXEEEENNNNIIIIXXXX 3333....0000 ((((OOOOMMMMEEEENNNN))))                    RRRRZZZZ((((1111))))



     NNNNAAAAMMMMEEEE
          rx, rb, rz - XMODEM, YMODEM, ZMODEM (Batch) file receive

     SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
          rrrrzzzz [- ++++1111aaaabbbbeeeeppppqqqqttttuuuuvvvv]
          rrrrbbbb [- ++++1111aaaabbbbqqqqttttuuuuvvvv]
          rrrrzzzz [- 1111aaaabbbbcccceeeeqqqqttttuuuuvvvv] _f_i_l_e
          ggggzzzz _f_i_l_e ...
          [----][vvvv]rrrrzzzzCCCCOOOOMMMMMMMMAAAANNNNDDDD

     DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
          This program uses error correcting protocol to receive files
          over a serial port from a variety of programs running under
          PC-DOS, CP/M, Unix, and other operating systems.

          The first form of _r_z (Receive ZMODEM) receives files with
          the ZMODEM batch protocol.  If the sending program does not
          support ZMODEM, _r_z steps down to YMODEM protocol after 50
          seconds.  This delay can be eliminated by invoking the
          program as _r_b .

          When receiving with XMODEM or YMODEM, _R_z accepts either
          standard 128 byte sectors or 1024 byte sectors (YAM ----kkkk
          option).  The user should determine when the longer block
          length actually improves throughput without causing
          problems.

          If extended file information (file length, etc.) is
          received, the file length controls the number of bytes
          written to the output dataset (YMODEM only), and the modify
          time and file mode (iff non zero) are set accordingly.

          If no extended file information is received, slashes in the
          pathname are changed to underscore, and any trailing period
          in the pathname is eliminated.  This conversion is useful
          for files received from CP/M systems.  With YMODEM, each
          file name is converted to lower case unless it contains one
          or more lower case letters.


          The second form of _r_z receives a single _f_i_l_e with XMODEM
          protocol.  The user must supply the file name to both
          sending and receiving programs.

          _G_z is a shell script which calls _s_z to command Pro-YAM or
          ZCOMM to transmit the specified files.  Pathnames used with
          _g_z must be escaped if they have special significance to the
          Unix shell.
          EXAMPLE: gz "-a C:*.c D:*.h"


          The third form of _r_z is invoked as rrrrzzzzCCCCOOOOMMMMMMMMAAAANNNNDDDD (with an



     Page 1                                          (printed 9/30/89)






     RRRRZZZZ((((1111))))                   XXXXEEEENNNNIIIIXXXX 3333....0000 ((((OOOOMMMMEEEENNNN))))                    RRRRZZZZ((((1111))))



          optional leading - as generated by login(1)).  For each
          received file, rz will pipe the file to ``COMMAND filename''
          where filename is the name of the transmitted file with the
          file contents as standard input.

          Each file transfer is acknowledged when COMMAND exits with 0
          status.  A non zero exit status terminates transfers.

          A typical use for this form is _r_z_r_m_a_i_l which calls rmail(1)
          to post mail to the user specified by the transmitted file
          name.  For example, sending the file "caf" from a PC-DOS
          system to _r_z_r_m_a_i_l on a Unix system would result in the
          contents of the DOS file "caf" being mailed to user "caf".

          On some Unix systems, the login directory must contain a
          link to COMMAND as login sets SHELL=rsh which disallows
          absolute pathnames.  If invoked with a leading ``v'', _r_z
          will report progress to /tmp/rzlog.  The following entry
          works for Unix 3.0:
                     rzrmail::5:1::/bin:/usr/local/rzrmail
          If the SHELL environment variable includes _r_s_h or _r_k_s_h
          (restricted shell), rz will not accept absolute pathnames or
          references to a parent directory, will not modify an
          existing file, and removes any files received in error.

          If rrrrzzzz is invoked with stdout and stderr to different
          datasets, Verbose is set to 2, causing frame by frame
          progress reports to stderr.  This may be disabled with the qqqq
          option.


          The meanings of the available options are:

          1111    Use file descriptor 1 for ioctls and reads (Unix only).
               By default, file descriptor 0 is used for ioctls and
               reads.  This option allows rrrrzzzz to be used with the
               _P_r_o_f_e_s_s_i_o_n_a_l-_Y_A_M $$$$ command and some versions of ncu(1).
          aaaa    Convert files to Unix conventions by stripping carriage
               returns and all characters beginning with the first
               Control Z (CP/M end of file).
          bbbb    Binary (tell it like it is) file transfer override.
          cccc    Request 16 bit CRC.  XMODEM file transfers default to 8
               bit checksum.  YMODEM and ZMODEM normally use 16 bit
               CRC.
          DDDD    Output file data to /dev/null; for testing.
          eeee    Force sender to escape all control characters; normally
               XON, XOFF, DLE, CR-@-CR, and Ctrl-X are escaped.
          pppp    (ZMODEM) Protect: skip file if destination file exists.
          qqqq    Quiet suppresses verbosity.
          tttt ttttiiiimmmm
               Change timeout to _t_i_m tenths of seconds.
          vvvv    Verbose causes a list of file names to be appended to



     Page 2                                          (printed 9/30/89)






     RRRRZZZZ((((1111))))                   XXXXEEEENNNNIIIIXXXX 3333....0000 ((((OOOOMMMMEEEENNNN))))                    RRRRZZZZ((((1111))))



               /tmp/rzlog .  More v's generate more output.

     EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
          (Pro-YAM command)
          <_A_L_T-_2>
          Pro-YAM Command: _s_z *._h *._c
          (This automatically invokes _r_z on the connected system.)

     SSSSEEEEEEEE AAAALLLLSSSSOOOO
          ZMODEM.DOC, YMODEM.DOC, IMP(CP/M), Professional-YAM,
          sz(omen), usq(omen), undos(omen)

          Compile time options required for various operating systems
          are described in the source file.

     NNNNOOOOTTTTEEEESSSS
          The Unix "ulimit" parameter must be set high enough to
          permit large file transfers.

          The TTY input buffering on some systems may not allow long
          blocks or streaming input at high speed.  You should suspect
          this problem when you can't send data to the Unix system at
          high speeds using ZMODEM when YMODEM with 128 byte blocks
          works properly.  If the system's tty line handling is really
          broken, the serial port or the entire system may not survive
          the onslaught of long bursts of high speed data.

          The DSZ or Pro-YAM zzzzmmmmooooddddeeeemmmm llll numeric parameter may be set to
          a value between 64 and 1024 to limit the burst length
          ("zmodem pl128").

          32 bit CRC code courtesy Gary S. Brown.

     BBBBUUUUGGGGSSSS
          Calling _r_z from most versions of cu(1) doesn't work because
          cu's receive process fights _r_z for characters from the
          modem.

          Pathnames are restricted to 127 characters.  In XMODEM
          single file mode, the pathname given on the command line is
          still processed as described above.  The ASCII option's
          CR/LF to NL translation merely deletes CR's; undos(omen)
          performs a more intelligent translation.

     VVVVMMMMSSSS VVVVEEEERRRRSSSSIIIIOOOONNNN
          Some of the #includes with file names enclosed with angle
          brackets <> may need to have the angle brackets changed to
          "", or vice versa.

          The VMS version does not set binary mode according to the
          incoming file type.  Non binary file processing consists of
          stripping all characters beginning with CPMEOF (^Z).



     Page 3                                          (printed 9/30/89)






     RRRRZZZZ((((1111))))                   XXXXEEEENNNNIIIIXXXX 3333....0000 ((((OOOOMMMMEEEENNNN))))                    RRRRZZZZ((((1111))))



          The VMS version does not set the file time.

          At high speeds, VMS sometimes loses incoming characters,
          resulting in retries and degradation of throughput.

          The mysterious VMS C Standard I/O Package and RMS may
          interact to modify file contents unexpectedly.

          The VMS version does not support invocation as rrrrzzzzCCCCOOOOMMMMMMMMAAAANNNNDDDD ....
          ZMODEM has not yet been implemented on the VMS version.

     ZZZZMMMMOOOODDDDEEEEMMMM CCCCAAAAPPPPAAAABBBBIIIILLLLIIIITTTTIIIIEEEESSSS
          _R_z supports incoming ZMODEM binary (-b), ASCII (-a), protect
          (-p), and append (-+) requests, and ZMODEM command
          execution.

     FFFFIIIILLLLEEEESSSS
          rz.c, rbsb.c, zm.c, zmodem.h source files.

          /tmp/rzlog stores debugging output generated with -vv
          option.


































     Page 4                                          (printed 9/30/89)



