home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1996 October / PCO_10.ISO / filesbbs / pdzm122.arj / ZM.DOC < prev    next >
Encoding:
Text File  |  1995-09-21  |  42.8 KB  |  993 lines

  1.  
  2.         Eine deutschsprachige Anleitung finden Sie in ZM-GER.DOC.
  3.  
  4.         (For a German documentation see ZM-GER.DOC.)
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                                --------------------
  12.                                Public Domain Zmodem
  13.                                --------------------
  14.                                          
  15.                                          
  16.                                          
  17.                                    Release 1.22
  18.                                          
  19.                                          
  20.                                          
  21.                             by Peter Mandrella, 1994-95
  22.                                          
  23.                                          
  24.                                          
  25.                                          
  26.  
  27.  
  28.         NOTE: I did anything to avoid and remove bugs and errors in/from
  29.         this program. Though, I do not guarantee that this program will
  30.         work in the way you expect. I will take no responsibility for
  31.         anything it does or does not. It is released without any warranty
  32.         or support.
  33.  
  34.         This text has been translated from German to English. It may
  35.         contain some German idioms. If you are a native English speaker, I
  36.         would appreciate if you would mark and correct any errors while
  37.         reading and send the revised text to one of the e-mail addresses
  38.         mentioned below.
  39.  
  40.  
  41.  
  42.  
  43.         What is Zmodem?
  44.         ---------------
  45.  
  46.         Zmodem is a fast, reliable and popular "file transfer protocol" -
  47.         a program for transfering files from one computer to another over
  48.         a serial connection. Because of its speed, robustness and pretty
  49.         comfortable use, Zmodem has replaced the formerly common protocols
  50.         "Xmodem" and "Kermit" in most applications.
  51.  
  52.         Besides of the original Unix Zmodem and the DOS ports DSZ and GSZ,
  53.         there are many other implementations for nearly any type of
  54.         hardware and operating system. There are lots of wide-spread
  55.         Zmodems for DOS - e.g. DSZ, GSZ, Texas Zmodem, CE-XYZ and others.
  56.         So why had just another Zmodem clone to be invented? Because none
  57.         of the existing implementations offers all of the below mentioned
  58.         features.
  59.  
  60.  
  61.  
  62.         What is PD Zmodem?
  63.         ------------------
  64.  
  65.         PD Zmodem is a new Zmodem program for DOS, featuring ...
  66.  
  67.         +  full Public Domain status, including commercial use
  68.         +  support of any IBM compatible serial interface, using any IRQ
  69.            up to #15
  70.         +  FOSSIL support
  71.         +  high throughput, especially with ISDN; optimum throughput on
  72.            bad lines due to calculation of the best data block size
  73.         +  all standard Zmodem functions
  74.         +  ZedZap support (8k data blocks)
  75.         +  optional transfer of whole directory trees
  76.         +  chat function
  77.         +  automatic cps rate and transfer time control
  78.         +  time synchronization
  79.         +  minimum system load under OS/2 or DesqView
  80.         +  choice of English or German user interface
  81.  
  82.         There are three or four things (depending on how you count) which
  83.         are not supported and currently not being considered for future
  84.         versions of PD Zmodem:
  85.  
  86.         -  built-in Xmodem and Ymodem
  87.         -  XON/XOFF (software) handshake
  88.  
  89.         The latter one may be accomplished, though, by using a FOSSIL
  90.         driver.
  91.  
  92.  
  93.         PD Zmodem assumes the following hardware and software environment:
  94.  
  95.         o  any DOS compatible or emulating system
  96.         o  DOS version 3.0 or higher
  97.         o  about 130 KB of free DOS main memory
  98.         o  IBM compatible serial interface, or FOSSIL driver
  99.  
  100.  
  101.  
  102.         Syntax
  103.         ------
  104.  
  105.         Receive files:
  106.  
  107.               ZM [options] rz [path][file name]
  108.  
  109.         If a path name is issued, all received files will be stored there.
  110.         If a file name is issued with or without path, the files are
  111.         stored under this file name; of course, this only makes sense if
  112.         only one file is transmitted. If "rz" is used without a path or
  113.         file name, all files are received into the current directory.
  114.  
  115.  
  116.         Send files:
  117.  
  118.               ZM [options] sz <files>
  119.  
  120.         <Files> may be a single file name, a wild card (like "*.*") or a
  121.         space-separated list of several file names and/or wild cards. All
  122.         file names may include a path name.
  123.  
  124.         Instead of including the paramaters in the command line, you may
  125.         put them into a seperate file - one parameter in each line - and
  126.         issue the name of this file with a proceeding "@", e.g.
  127.  
  128.               ZM sz @FILELIST
  129.  
  130.         ZM will read the parameters line by line from FILELIST and handle
  131.         them exactly like parameters typed in a DOS command line. The main
  132.         purpose of this feature is to enable a large list of file to send
  133.         - as you know, the length of the DOS command line is limited.
  134.  
  135.         The parameters "rz" and "sz" may be abbreviated as "r" and "s".
  136.  
  137.  
  138.  
  139.         Options
  140.         -------
  141.  
  142.         All Options start with "-" or "/" and are separated from other
  143.         options or parameters by at least one space. Options may be inser-
  144.         ted at any place and in any order. So,
  145.  
  146.             ZM -c1 -b19200 -d sz FILE1.ZIP FILE2.ZIP
  147.  
  148.         is the same as
  149.  
  150.             ZM -d sz FILE.ZIP /b19200 -c1 FILE2.ZIP
  151.  
  152.         *All* options are, as their name says, optional and may be
  153.         omitted. ZM assumes a default setting for any option.
  154.  
  155.  
  156.         Serial interface settings:
  157.  
  158.         -cN            Selects the serial interface. You may either use a
  159.         -cXXX,YY       COM number (N), e.g. "-c1" for COM1, or a combina-
  160.                        tion of address and IRQ (XXX,YY), like "-c2e8,5".
  161.                        If you issue a COM number, ZM uses the following
  162.                        addresses and IRQs:
  163.  
  164.                           -c1 = -c3f8,4       -c3 = -c3e8,4
  165.                           -c2 = -c2f8,3       -c4 = -c2e8,3
  166.  
  167.                        Default is "-c2". When using FOSSIL, possible COM
  168.                        numbers range from 1 to 50, otherwise from 1 to 4.
  169.  
  170.         -f             Use FOSSIL driver. If you use this switch, you have
  171.                        to use the "-cN" form for the interface number.
  172.  
  173.         -bN            Selects the DTE speed, i.e. the speed (bps rate,
  174.                        "baud rate") between modem and CPU, e.g. "-b38400"
  175.                        for 38400 bps. If -bN is omitted, ZM uses the
  176.                        currently selected speed.
  177.  
  178.         -d             Ignore Carrier Detect (CD). Normally, your modem
  179.                        should indicate a connection by the CD signal. If
  180.                        your modem is not properly configured or if you are
  181.                        using a null modem (direct connection between two
  182.                        computers) without a CD line, then you may consider
  183.                        to disable the CD detection by "-d". Warning! If
  184.                        "-d" is used, ZM will not be able to detect a "NO
  185.                        CARRIER" connection breakdown! Instead, it will
  186.                        time out after at least 70 seconds.
  187.  
  188.         -h             Ignore CTS. Normally, the modem uses CTS so signal
  189.                        when it is ready to receive. If the modem is not
  190.                        properly configured or if your null modem connec-
  191.                        tion lacks a CTS line, there might be no CTS
  192.                        signal. Warning! Do not use "-h" when sending files
  193.                        over modem connections with data compression! It
  194.                        will inevitably cause transmission errors.
  195.                        
  196.                        Hint: When transfering files from a very slow com-
  197.                        puter via null modem, the -h switch may increase
  198.                        speed by up to 10 per cent.
  199.  
  200.         -rts           (1) PD-Zmodem uses RTS handshake and thus prevents
  201.                        receive buffer overruns at high transfer speeds on
  202.                        slow machines. If periodic transmission errors
  203.                        occur, try -rts.
  204.  
  205.                        (2) If transmission errors occur while writing data
  206.                        to disk, you should issue "-rts". This will suspend
  207.                        the transmission during disk access. Warning: When
  208.                        being used with old ZyXEL ROM releases (4.x), the
  209.                        use of RTS handshake will cause the modem to crash.
  210.  
  211.         -n             Disable the serial interface's 16550A FIFO buffer.
  212.                        This switch is intended for test purpose only. The
  213.                        FIFO buffer ist necessary for stable data transmis-
  214.                        sion at high speeds (38.400 bps or more).
  215.  
  216.         -tlX           selects a FIFO trigger level of 2, 4, 8 (default)
  217.                        or 14. This setting applies only to 16550A chips
  218.                        and not to FOSSIL drivers. Under DOS changing the
  219.                        trigger level may change the transfer stability.
  220.                        The effect of a lower or higher trigger level
  221.                        depends on the hardware. A level of 8 will work
  222.                        fine in most circumstances.
  223.  
  224.                        Note: PD Zmodem 1.0 used a trigger level of 14.
  225.  
  226.         -dtr           drops the DTR signal when PD Zmodem is finished. If
  227.                        you use the right modem settings, this causes your
  228.                        modem to drop the carrier. This feature is useful
  229.                        to end a connection after an unsupervised Zmodem
  230.                        transfer. -dtr may not work under OS/2.
  231.  
  232.  
  233.         Zmodem settings:
  234.  
  235.         (rz)  =  setting is valid for receiving files
  236.         (sz)  =  setting is valid for sending files
  237.  
  238.         -r  (rz/sz)    Disable Crash Recovery. If crash recovery is
  239.                        enabled, an aborted file transfer may be resumed at
  240.                        the position where the connection was lost. If the
  241.                        file is already complete, it will be skipped.
  242.                        
  243.                        When receiving, "-r" will work under any condition.
  244.                        If it works when sending, too, depends on the
  245.                        receiver's Zmodem implementation. If "-r" has been
  246.                        issued and the transfer is aborted, the incomplete
  247.                        file will be deleted.
  248.  
  249.         -oX  (rz)      Determines what will happen if the received file
  250.                        already exists and crash recovery is not appli-
  251.                        cable:
  252.                        
  253.                           -o0 = refuse new file
  254.                           -o1 = replace old by new file
  255.                           -o2 = rename new file (default)
  256.                           -o3 = rename old file
  257.                        
  258.                        The old -o switch does still exist and is the same
  259.                        as -o1.
  260.  
  261.         -16  (rz/sz)   Use 16 bit instead of 32 bit checksums. This
  262.                        feature has been implemented for Zmodem standard
  263.                        conformance only. Actually, all Zmodem implemen-
  264.                        tations use the more secure 32 bit checksums.
  265.  
  266.         -8  (sz)       Increase the maximum block size from 1024 to 8192
  267.                        bytes ("ZedZap"). This will increase the throughput
  268.                        by about 0.5 per cent if the connection is error
  269.                        free. When "-8" is issued, ZM starts with normal 1k
  270.                        blocks and increases the block size slowly up to 8k
  271.                        if the transmission stays error free. When recei-
  272.                        ving, ZM automatically adapts to any block size up
  273.                        to 8k, independend of the "-8" switch.
  274.                        
  275.                        Warning! "ZedZap" is not a Zmodem but a FidoNet
  276.                        standard. It will work only if the receiver
  277.                        supports this special Fido feature, too.
  278.  
  279.         -8N  (sz)      Like "-8", with the exception that file transfers
  280.                        start immediately with N KB sized blocks. Possible
  281.                        values of N are 1, 2, 4 and 8. This switch only
  282.                        makes sense if the connection is stable and a maxi-
  283.                        mum of one error - including connection breakdowns
  284.                        - occurs per MB of transferred data.
  285.  
  286.         -p  (sz)       Transfer path names. Normally, ZM strips path names
  287.                        when transferring file names. If "-p" is issued and
  288.                        the receiver is configured properly, you may use
  289.                        this feature to send files into any directory path.
  290.                        The transferred path name is the same as the one
  291.                        given as paramater. If you specify only file names
  292.                        without paths, "-p" has no effect, except for the
  293.                        case you used "-s" to transfer subdirectories.
  294.                        
  295.         -s  (sz)       Sends files from subdirectories, too. If combined
  296.                        with "-p" and "*.*" as file name, you may use this
  297.                        feature for transmitting a whole directory tree.
  298.  
  299.         -s  (rz)       Allowes receiving into any directory and creates
  300.                        directories, if necessary. If "-s" is omitted, all
  301.                        incoming files are stored in the current directory
  302.                        or the one which is given as command line parame-
  303.                        ter. More details are given in a section below.
  304.  
  305.                        Warning! If "-s" is issued without an additional
  306.                        receive path name, the sending program will be able
  307.                        to write files into any directories on your hard
  308.                        disk! When combined with "-o", it may even over-
  309.                        write any existing files that are not protected by
  310.                        a "read only" attribute. DO NOT USE THE "-s"
  311.                        RECEIVER SWITCH WIHIN A BBS! IT WILL CAUSE A GIANT
  312.                        SECURITY HOLE!
  313.  
  314.         -e  (sz)       Encode all control characters. This switch is
  315.                        useful if the line is not "8 bit clean", i.e. if
  316.                        certain control characters cannot be transmitted.
  317.                        This applies especially to Unix-like terminal
  318.                        connections. "-e" reduces the data transfer rate by
  319.                        about 22 per cent.
  320.  
  321.         -ts (sz/rz)    Synchonizes the receiver's system clock to the
  322.                        sender's clock. This works only if PD Zmodem is
  323.                        used and -ts is issued on both sides. If a PD
  324.                        Zmodem style log file (switch -lz) is created, the
  325.                        last log file entry shows the time difference. The
  326.                        accuracy is +/- 4 seconds.
  327.                        
  328.                        Warning: If PD Zmodem is used as external protocol
  329.                        within a program that does not recognize the PD
  330.                        Zmodem log file, time synchronization may result in
  331.                        caluclating a wrong transfer time.
  332.  
  333.  
  334.         Settings for transfer time restrictions:
  335.  
  336.         -zN            sets a minimum transfer speed of N cps. If the cps
  337.                        rate drops for at least two minutes below N, the
  338.                        transfer will be aborted. ZM then returns errorle-
  339.                        vel 4.
  340.  
  341.         -tN            sets a maximum transfer time of N minutes or an end
  342.         -thh:mm        time (e.g. -t20:15 für 8:15pm). If the given time
  343.                        limit was exceeded, but at least after two minutes,
  344.                        ZM aborts the transfer with errorlevel 5.
  345.  
  346.         -xtN           Like -t, but instead of the real time, the
  347.         -xthh:mm       currently calucalted transfer time is used. The
  348.                        transfer will be aborted "preventive" if PD Zmodem
  349.                        has recognized that it probably cannot be finished
  350.                        within the given time limit.
  351.                        
  352.                        Note: -t and -xt cannot be combinded.
  353.  
  354.         -tiN           sets timeout in seconds. If the Zmodem on the other
  355.                        end does not react for more than N seconds, the
  356.                        transfer is aborted. N is rounded up to a multiple
  357.                        of 10 seconds and may range between 30 and 600. The
  358.                        default is 80 seconds.
  359.  
  360.  
  361.         Other settings:
  362.  
  363.         -ld<file>      creates a DSZ style log file (see below). Replace
  364.                        <file> by the desired file name, optionally inclu-
  365.                        ding a full path specifier. This switch supersedes
  366.                        the environment settings DSZLOG= and ZMLOG=.
  367.  
  368.         -\             uses "\" as separator in DSZ style log files
  369.                        instead of the Zmodem standard separator "/".
  370.  
  371.         -lz<file>      creates a PD Zmodem style log file (see below).
  372.                        This switch supersedes the environment settings
  373.                        DSZLOG= and ZMLOG= and the switch -ld.
  374.  
  375.         -m             Monochrome Display, e.g. for VGA mono screens or
  376.                        for laptop LC displays.
  377.  
  378.         -nochat        Disables ZM's chat feature. More details are
  379.                        described below.
  380.  
  381.         -nologo        Disables any screen output before and after
  382.                        displaying the Zmodem transfer window.
  383.  
  384.         -nowin         Disables the Zmodem transfer window display.
  385.  
  386.         -beep          Enables an acoustic signal before program termi-
  387.                        nation.
  388.  
  389.         -q             Disables the 1 to 2 seconds pause before program
  390.                        termination. The pause shall make readable the last
  391.                        displayed message before closing the Zmodem window.
  392.                        If you do not use a FOSSIL driver, characters
  393.                        received during this pause may be lost, which might
  394.                        be annoying if ZM is used as external protocol
  395.                        within a terminal program.
  396.  
  397.         -os2x          reduces the system load under OS/2. "x" may be any
  398.                        character from a to d and selects different methods
  399.                        for releasing time slices:
  400.                        
  401.                        -os2a   uses int 15h/86h      (BIOS)
  402.                        -os2b   uses int 28h          (DOS)
  403.                        -os2c   uses sti/hlt/35h/cah  (OS/2)
  404.                        -os2d   uses int 2fh/1680h    (DPMI)
  405.                        
  406.                        You will have to try which method works best. All
  407.                        four methods use undocumented OS/2 functions and at
  408.                        least -os2a and -os2d are not supported by all OS/2
  409.                        versions. Using unsupported functions may result in
  410.                        OS malfuncions, including a total system stop
  411.                        (Trap).
  412.  
  413.         -dv            reduces the system load when receiving data under
  414.                        DesqView.
  415.  
  416.         -w             suppress startup warnings, e.g. if no files to send
  417.                        are specified.
  418.  
  419.  
  420.  
  421.         Transmission of subdirectories
  422.         ------------------------------
  423.  
  424.         If PD Zmodem is running on both sides of the connection, you may
  425.         use it to transfer whole directory trees. Example:
  426.  
  427.         Sender:    ZM -b38400 -s -p sz C:\TEXT\*.*
  428.         Receiver:  ZM -b38400 -s rz
  429.  
  430.         Here, the whole directory tree contents of C:\TEXT\... are trans-
  431.         ferred at 38.400 bps via COM2 to the receiving system. Note that
  432.         the disk letter "C:" is stripped. If the current directory of the
  433.         receiver is D:, the files will be stored into D:\TEXT\...
  434.  
  435.         If the receiver specifies a directory path, too, e.g.
  436.  
  437.                     ZM -b38400 -s rz C:\COPY
  438.  
  439.         then the receiver's path will be inserted before the sender's
  440.         path. So our example files will end up in C:\COPY\TEXT\... If the
  441.         sender used only a relative path name without the leading "\" and
  442.         if the receiver did not specify a receive path, then the files
  443.         will be stored within and/or below the receiver's current direc-
  444.         tory. Example:
  445.  
  446.         Sender:    C:\>          ZM -b38400 -s -p sz TEXT\*.*
  447.         Receiver:  D:\DOWNLOAD>  ZM -b38400 -s rz
  448.  
  449.         Here, the files will be stored in D:\DOWNLOAD\TEXT\...
  450.  
  451.  
  452.  
  453.         Skipping files
  454.         --------------
  455.  
  456.         You may use Ctrl-S to skip the rest of the currently received
  457.         file. This is not a Zmodem standard function. The result depends
  458.         on the sending Zmodem:
  459.  
  460.         PD-Zmodem, CeXYZ, Terminate, miscellaneous Fido Mailers:
  461.  
  462.            The rest of the current file is skipped. The sender handles the
  463.            file as "correctly transmitted", but of course it is incom-
  464.            plete.
  465.  
  466.         Telemate:
  467.  
  468.            The rest of the current file is skipped. The file is incomplete
  469.            and the sender considered it to be bad.
  470.  
  471.         GSZ:
  472.  
  473.            The skip command is not accepted, but the senders reacts in the
  474.            right way. PD Zmodem says "file skip failed" and proceeds with
  475.            receiving. The file will be received complete and correctly.
  476.  
  477.         Not seen yet, but ...
  478.            
  479.            The skip command doesn't work, and the sender is dumb. The
  480.            transfer is either continued, or it will be or must be aborted.
  481.            The received file is bad.
  482.  
  483.  
  484.  
  485.         Chat
  486.         ----
  487.  
  488.         PD Zmodem features a built in chat function. When ZM is used on
  489.         both sides of the connection, it will display an additional window
  490.         within which you may "talk" to the person at the other side.
  491.  
  492.         Note that pressing a key during the transmission may cause a loss
  493.         of characters by the serial interface and thus transmission
  494.         errors, if no 16550A FIFO chip is present and the speed is 38400
  495.         bps or above. The errors will be corrected by Zmodem, but this
  496.         will slow down the transfer.
  497.  
  498.         If chat characters were transmitted during the last 10 seconds of
  499.         file transmission, ZM will stay in chat mode until no character
  500.         was transmitted for at least 15 seconds or until the Escape key is
  501.         pressed.
  502.  
  503.         You may clear the chat window at any time using Ctrl-L.
  504.  
  505.         ZM's chat function is NOT compatible to chat functions of other
  506.         Zmodem implementations, e.g. Super Zmodem. It is not part of the
  507.         Zmodem standard, but a special PD Zmodem extension. In the very
  508.         unlikely case that the chat extension may cause problems when
  509.         starting transmissions to other Zmodem programs, you may disable
  510.         it by the command line switch "-nochat".
  511.  
  512.         When chat mode is active, ZM uses a turbo mode to increase the
  513.         data transfer rate by about 1 per cent. This turbo mode is not
  514.         part of the Zmodem standard, too, and is implemented in different
  515.         ways in different programs (GSZ, Super Zmodem). It works only if
  516.         the same program is used at both ends of the line.
  517.  
  518.  
  519.  
  520.         Examples
  521.         --------
  522.  
  523.         ZM sz FILE.ZIP               sends the file FILE.ZIP on COM2 at
  524.                                      the current baud rate.
  525.  
  526.         ZM -c3e8,5 -d sz @FILELIST   sends all files that are listed in
  527.                                      the file FILELIST (one file name each
  528.                                      line) on COM3 (address 3e8) / IRQ 5,
  529.                                      ignoring the Carrier signal.
  530.  
  531.         ZM -c1 -b38400 -f rz         receives files on COM1 at 38.400 bps
  532.                                      using a FOSSIL driver.
  533.  
  534.         ZM -o rz D:\DOWN\FILE.ZIP    receives files on COM2 and stores
  535.                                      them in the directory D:\DOWN, over-
  536.                                      writing any existing files.
  537.  
  538.         ZM -c1 -b9600 -e sz *.*      sends all files from the current
  539.                                      directory on COM1 at 9600 bps over a
  540.                                      terminal connection to something like
  541.                                      a unix host.
  542.  
  543.  
  544.  
  545.         ZCONFIG
  546.         -------
  547.  
  548.         You may use the program ZCONFIG to customize ZM's colors. Besides
  549.         of that, ZCONFIG allowes to change the language for all screen
  550.         outputs of ZM between English and German. Changes within ZCONFIG
  551.         must be saved explicitely using the menu choice "Save changes".
  552.  
  553.         If you do not have the file ZCONFIG.EXE, your PD Zmodem package is
  554.         incomplete.
  555.  
  556.  
  557.  
  558.         Renaming of ZM
  559.         --------------
  560.  
  561.         You may rename or copy ZM.EXE into RZ.EXE and SZ.EXE. When star-
  562.         ting RZ or SZ, you don't have to issue the parameter "rz" resp.
  563.         "sz". Thus, you may e.g. receive files on COM2 at the current baud
  564.         rate by only typing the two letters "RZ".
  565.  
  566.  
  567.  
  568.         PD Zmodem and CrossPoint
  569.         ------------------------
  570.  
  571.         When using PD Zmodem as external Protocol for the point and
  572.         offline software CrossPoint, you should use the following
  573.         settings:
  574.  
  575.         Uploader:    ZM.EXE -c$ADDRESS,$IRQ sz $UPFILE
  576.         Downloader:  ZM.EXE -c$ADDRESS,$IRQ rz $DOWNFILE
  577.  
  578.         If you enabled "ignore CD" and "ignore CTS" at /Config/Modem, you
  579.         must add the switch -d resp. -h. It might be useful to add the
  580.         following switches for download:
  581.  
  582.         -rts    if periodic transmission errors occur during download
  583.         -beep   if you wish an acoustic signal at the end of netcall
  584.  
  585.  
  586.         When using a FOSSIL driver, the settings are:
  587.  
  588.         Uploader:    ZM.EXE -c$PORT -f sz $UPFILE
  589.         Downloader:  ZM.EXE -c$PORT -f rz $DOWNFILE
  590.  
  591.  
  592.  
  593.         Log file
  594.         --------
  595.  
  596.         [All properties of GSZ mentioned below refer to the Nov-29-93
  597.         release.]
  598.  
  599.         ZM scans the DOS environment for the entry "DSZLOG=" and creates
  600.         or appends to a DSZ compatible log file if "DSZLOG=" contains a
  601.         valid file name. The same is done if the switch -ld is issued. -ld
  602.         supersedes DSZLOG=.
  603.  
  604.         Example:
  605.  
  606.         Z   1201 19200 bps 1286 cps   0 errors     0 1024 turbo.pck -1
  607.         z   1226 19200 bps 1313 cps   0 errors     0 1024 turbo.tp -1
  608.         z  25811 19200 bps 1753 cps   0 errors     0 1024 zm-recv.inc -1
  609.         e  17408 19200 bps 1864 cps   1 errors     0 1024 zm-recv.bak -1
  610.  
  611.         The first character means:
  612.  
  613.            Z = file was received successfully
  614.            z = file was sent successfully
  615.            E = file reception was aborted
  616.            e = file sending was aborted
  617.            L = carrier lost while receiving
  618.            l = carrier lost while sending
  619.  
  620.         Note: GSZ ignores at this point the "d" switch (ignore carrier
  621.         signal) and creates a "L" or "l" instead of "E" or "e" if no
  622.         carrier is present. ZM never creates a "L" or "l" entry if the "-
  623.         d" switch is issued.
  624.  
  625.         The other coloumns contain (from left to right):
  626.  
  627.         - Number of transferred Byes, including bytes skipped by crash
  628.           recovery
  629.  
  630.         - DTE bps rate
  631.  
  632.         - average cps rate (characters per second)
  633.  
  634.         - Number of transmission errors
  635.  
  636.         - Number of "CTS lows", i.e. a count how often the CTS handshake
  637.           was used (the number the CTS LED of your modem went off and on
  638.           during the transmission).
  639.  
  640.         - The size of the last but one data block, or some useless number
  641.           if the file consists of only one block (it is *not* the size of
  642.           the last data block, as stated in the GSZ documentation).
  643.  
  644.         - The file name, including a path name if present. Instead of the
  645.           DOS "\" separators, Unix-like "/" separators are used - except
  646.           if you specify the "-\" switch.
  647.  
  648.         - The other program's serial number, or -1 if not present. GSZ
  649.           puts its registration number here.
  650.  
  651.         Note that the columns have no fixed width. If the file size, the
  652.         number of errors or another field exceeds the width of the corres-
  653.         ponding column, the other fields will be moved to the right. GSZ
  654.         may give any number up to the file's size as cps rate when crash
  655.         recovery is used, which may significantly disturb the logfile's
  656.         format. Thus, DSZLOG processing programs should interprete any
  657.         line as a space-seperated list of fields and should be aware of
  658.         false entries created by buggy programs.
  659.  
  660.  
  661.         If the environment variable "ZMLOG=" is present and contains a
  662.         valid file name, or if the switch -lz is issued, ZM appends to or
  663.         creates a log file with this file name. -lz supersedes ZMLOG=. The
  664.         PD Zmodem log file is preferred to a DSZ log file, if both are
  665.         issued.
  666.  
  667.         Example:
  668.  
  669.         Z 03-05-95 21:28:05  c:\test\turbo.pck, 1201 bytes, 1 s, 1286 cps
  670.         z 03-05-95 21:28:06  e:\turbo.tp, 1226 bytes, 0 s, 1753 cps
  671.         e 03-05-95 21:28:32  e:\test.bak, 17408 bytes, 9 s, 1864 cps,
  672.                                                                   1 errors
  673.         T 03-05-95 21:28:52  +10s
  674.  
  675.         The coloumns except for the first one are not fixed. The first
  676.         four entries on each line are separated by one ore more spaces.
  677.         The meaning of these entries is (from left to right):
  678.  
  679.         - tag like in DSZ log file, or one of the following:
  680.  
  681.             T   time synchronization entry
  682.             S   received file was skipped by Ctrl-S
  683.  
  684.         - transfer start date (mm-tt-jj)
  685.         - transfer start time (hh:mm:ss)
  686.         - within "T" lines: the time difference in seconds; otherwise:
  687.           full path and name of the transferred file
  688.  
  689.         After this, there may be any additional entries in any order,
  690.         separated by ",". Each entry consists of a value, one or more
  691.         spaces and a label. There may be spaces before and after the ",".
  692.         The following additional entries are defined at the moment:
  693.  
  694.         - bytes:  number of transferred bytes. If crash recovery was used,
  695.                   two numbers are given, separated by "/". The first one
  696.                   is the number of bytes transmitted and the second one
  697.                   the total file size.
  698.  
  699.         - s:      transfer time, rounded to full seconds, including wai-
  700.                   ting time before and after the file transmission itself.
  701.  
  702.         - cps:    characters per second, caluclated using a 1/18 seconds
  703.                   clock, *without* waiting time before and after the file
  704.                   transmission.
  705.  
  706.         - errors: number of transfer errors.
  707.  
  708.         Future PD Zmodem releases may add more entries and more tags in
  709.         the first coloumn.
  710.  
  711.  
  712.  
  713.         Transfer abortion
  714.         -----------------
  715.  
  716.         ZM will abort the transfer if one of the following conditions is
  717.         true:
  718.  
  719.         -  You have pressed the Escape key.  (*)
  720.         -  The other side's Zmodem wants to stop the transfer.
  721.         -  Someone at the other end has pressed Ctrl-X for several times
  722.         -  ZM made 25 subsequent unsuccessful tries to transmit a single
  723.            data block
  724.         -  Nothing has happened for more than 70 seconds resp. the time
  725.            issued by the -ti switch (timeout).
  726.         -  Your hard disk is full.
  727.         -  You have issued -o0 and a file was refused.
  728.         -  The cps rated dropped for at least two minutes below the
  729.            minimum given by the -z switch
  730.         -  The maximum transfer time given by -t or -xt was exceeded.
  731.         -  When Ctrl-S is pressed, the rest of current file is aborted and
  732.            the transfer continues with the next file.
  733.  
  734.         (*) If the other side does not react, it may take up to 10 seconds
  735.             until the transfer is aborted. You may force an instant
  736.             transfer shutdown by pressing Escape twice.
  737.  
  738.  
  739.  
  740.         Errorlevel
  741.         ----------
  742.  
  743.         ZM returns the following errorlevels:
  744.  
  745.         0  =  transfer was completed successfully
  746.         1  =  transfer was aborted
  747.         4  =  cps rate too low (see -z switch)
  748.         5  =  the maximum transfer time (-t/-xt switch) was exceeded
  749.         9  =  wrong or missing parameter(s)
  750.  
  751.         Please note that errorlevel 4 and and 5 normally occur only on the
  752.         one connection side that stopped the transfer - even if PD-ZM is
  753.         used on both sides and the same time limits are given. The two
  754.         Zmodem programs never work totally synchrone. On the other side,
  755.         PD-ZM returns errorlevel 1.
  756.  
  757.  
  758.  
  759.         Drawbacks
  760.         ---------
  761.  
  762.         PD Zmodem does not support the Zmodem windowing mode. This may
  763.         result in a lower throughput if errors occur on a buffered conenc-
  764.         tion, e.g. over packet-switching networks. With normal point-to-
  765.         point operation this restriction doesn't matter.
  766.  
  767.  
  768.  
  769.         Glossary
  770.         --------
  771.  
  772.         16550A          Serial interface chip which reduces the CPU load
  773.                         by an I/O buffer (FIFO) and thus increases the
  774.                         transfer stability at high speeds. It is absolute-
  775.                         ly necessary when transfering at more than 38400
  776.                         bps oder when using a multitasking environment.
  777.                         Unfortunately, most manufacturers still equip
  778.                         their serial intefaces with a cheap 16450 chip.
  779.  
  780.         Batch           Concerning Zmodem: Transmission of multiple files
  781.                         within one transfer.
  782.  
  783.         baud            Steps per seconds. That's NOT the same as bps! A
  784.                         14400 bps modem works at 2400 baud and transmits 6
  785.                         bits with each step. One exception from the rule
  786.                         are serial interfaces, where 1 baud is equal to 1
  787.                         cps because only one bit is transmitted per step.
  788.  
  789.         bps             Bits (information units) per second
  790.  
  791.         Carrier         If a modem carrier is present, a connection
  792.                         between two modems has been established.
  793.  
  794.         Carrier Detect  Serial interface line which is used by the modem
  795.                         to signal a connection to the CPU
  796.  
  797.         cps             Characters per second
  798.  
  799.         Crash Recovery  Zmodem feature for resuming an interrupted file
  800.                         transfer
  801.  
  802.         CRC             Cyclic Redundancy Check - checksum method for
  803.                         securing data integrity. It is used by Zmodem, by
  804.                         Modems, by Archivers and by other data equipment
  805.                         and software to detect damaged data blocks.
  806.  
  807.         CTS             Clear to Send - Control signal which means that
  808.                         the modem is ready to receive data
  809.  
  810.         DSZ / GSZ       Wide-spread Zmodem implementation from Omen Tech-
  811.                         nologies. DSZ and GSZ have some minor bugs but are
  812.                         very stable and reliable, though.
  813.  
  814.         FidoNet         largest non-commercial BBS net
  815.  
  816.         FIFO            see 16550A
  817.  
  818.         Flow Control    Method for controlling the data flow, e.g. over a
  819.                         serial interface. Common forms of flow control are
  820.                         hardware (RTS/CTS) and software (XON/XOFF) flow
  821.                         control. PD-ZM supports only the hardware version.
  822.  
  823.         Handshake       see "Flow Control"
  824.  
  825.         IRQ             Interrupt Request. It is used e.g. by the serial
  826.                         interface to signal reception or transmission of
  827.                         data to the CPU. Each interface needs an own IRQ.
  828.                         XTs have IRQs from 0 to 7; ATs add IRQ 8 to 15.
  829.  
  830.         Kermit          relatively secure, very slow and pretty uncomfor-
  831.                         table file transfer protocol
  832.  
  833.         Overhead        The amount of control data added to transferred or
  834.                         stored data. If 20 additional bytes are needed for
  835.                         transferring 1000 data bytes, the overhead is 2
  836.                         per cent. Zmodem's minimum overhead is about 3.5
  837.                         per cent.
  838.  
  839.         RTS             Ready to Send - control line used by the CPU to
  840.                         signal to the modem that it is ready to receive
  841.                         data
  842.  
  843.         Windows         Graphical operating system extension which makes
  844.                         an adventure of data communications once more
  845.  
  846.         Xmodem          unsecure, slow and uncomfortable file transfer
  847.                         protocol, invented in 1974 by Ward Christiansen
  848.  
  849.         Ymodem          fairly secure, medium fast, but pretty uncomfor-
  850.                         table file transfer protocol
  851.  
  852.         ZedZap          Zmodem extension with 8k data blocks, originating
  853.                         in FidoNet. The only advantage compared to stan-
  854.                         dard Zmodem is a neglectable 0.5 per cent increase
  855.                         of throughput over error free lines.
  856.  
  857.         Zmodem          secure, fast and pretty comfortable file transfer
  858.                         protocol, created in 1986 by Chuck Forsberg.
  859.  
  860.  
  861.  
  862.         Copyrights, Credits, Trademarks ...
  863.         -----------------------------------
  864.  
  865.         The CRC routines within PD Zmodem are used courtesy of Stephen
  866.         Satchell. The Zmodem implementation is based on a port of Chuck
  867.         Forsberg's public domain source "rz/sz", released in the beginnig
  868.         of 1988 (later releases os this C source are not public domain,
  869.         but shareware with certain restrictions).
  870.  
  871.         My very special thanks to Anders Hejlsberg for the world's finest
  872.         (Pascal) compiler.
  873.  
  874.         Any product names mentioned in this text may be (and in most cases
  875.         are) trademarks or registered trademarks.
  876.  
  877.         PD Zmodem is not copyrighted, -lefted, -upped, -downed or
  878.         registered in any way and may be used for anyting that is fun for
  879.         you (as long as you consider using a Zmodem for it). You may debug
  880.         and reverse engineer it until you become mad.
  881.  
  882.  
  883.  
  884.         Bug reports and other hints concerning PD Zmodem are welcome.
  885.         Please write to
  886.  
  887.         Internet:  pm@daisy.de
  888.         Fidonet:   Peter Mandrella @ 2:2454/97.80
  889.  
  890.         Please do not ask me any questions about Zmodem or the use of PD
  891.         Zmodem! If you don't find answers within this text, please ask
  892.         your hardware manufacturer, your software dealer, your mom, your
  893.         dad, your wife, your psychiatrist, or even post your questions
  894.         into an appropriate net newsgroup.
  895.  
  896.         Please don't send me any fido crash mails with RREQ flag, because
  897.         my bossnode's software doesn't like them.
  898.  
  899.  
  900.  
  901.         Programmer's literature
  902.         -----------------------
  903.  
  904.         Chuck Forsberg, 1986-88: "The ZMODEM Inter Application File
  905.                Transfer Protocol". Available as file (ZMODEM.DOC) on the
  906.                net.
  907.  
  908.         Chuck Forsberg, 1986-88: C source of "rz" and "sz" (Public
  909.                Domain). Available on the net (especially Internet).
  910.  
  911.         J.R.Louvau, Philip R. Burn: TPZ - Pascal Zmodem source. The public
  912.                available TPZ release(s?), or at least one of them, is/are
  913.                extremely buggy. Anyway, they are useful for demonstration
  914.                purpose and for understanding Chuck's C source.
  915.  
  916.         Rick Moore, 1988: "Fundamentals of FOSSIL implementation and use".
  917.                Avaliable as file (FSC-0015.*) on the net (especially
  918.                FidoNet).
  919.  
  920.         Arne Schaepers: "Turbo Pascal 4.0/5.0", Volume 2, Addison Wesley.
  921.                A German book that contains a very useful discussion of
  922.                serial interface programming with Turbo Pascal.
  923.  
  924.         Wolfgang Hartung, Michael Felsmann, Andreas Stiller:
  925.                Programming of UART 8250. c't 5/88, page 204 (German)
  926.  
  927.         Martin Ernst, Andreas Stiller: PC interrupt programming.
  928.                c't 8/88, page 174 (German)
  929.  
  930.         Markus Maeder: 16550 FIFO programming. c't 2/92, page 170 (German)
  931.  
  932.         If you know any good English sources of information about UART and
  933.         interrupt programming, e.g. from Byte or Dr. Dobb's journal,
  934.         please let me know, so that I may mention them in future versions
  935.         of this text.
  936.  
  937.  
  938.  
  939.         The Inevitable Version History (TM)
  940.         -----------------------------------
  941.  
  942.         + = new      * = changed      ! = fixed      - = removed
  943.  
  944.         0.97  10-10-94
  945.               first release including English documentation
  946.  
  947.         1.0   11-05-94
  948.         *     DSZ logfile is kept open only when needed
  949.         +     sz: new switch -88
  950.         +     new switch -beep
  951.         *     online time display until end of chat
  952.  
  953.         1.1b  12-12-94
  954.         !     sz: corrected internal timeouts
  955.         !     corrected remaining transfer time after files were skipped
  956.         +     Switches -z, -t and -xt limit connection time
  957.         +     Switch -os2 reduces OS/2 system load
  958.  
  959.         1.1   03-10-95
  960.         +     Switches -nologo and -nowin deactivate screen output
  961.         +     COM port numbers up to 255 when using FOSSIL
  962.         +     Switch -tl selects FIFO trigger level
  963.         +     Switch -dv reduces DesqView system load
  964.         !     corrected CTS timeout
  965.  
  966.         1.15b 03-18-95
  967.         +     switch -ld for DSZ log file
  968.         +     ZMLOG= and switch -lz for PD Zmodem log file
  969.         +     switch -w suppresses warnings
  970.         +     additional options for switch -o
  971.         !     minor chat display error fixed
  972.         !     correct "L" tag in log file on carrier loss
  973.         *     send speed optimized
  974.         *     changed FOSSIL support from byte to block transfers
  975.         !     fixed timeout bug on date change (23:59 -> 00:00)
  976.         +     switch -ti for timeout
  977.         +     switches -82 and -84 for starting block sizes 2k resp. 4k
  978.         +     switch -ts for time synchronization
  979.  
  980.         1.2   06-02-95
  981.         +     switches -os2a to -os2d
  982.         +     switch -\ for backslashes in DSZ log files
  983.  
  984.         1.21  08-07-95
  985.         !     fixed -os2a bug
  986.         !     -ts works now without PD-ZM log file, too
  987.         +     Ctrl-S skips rest of the file being received
  988.         +     -dtr switch
  989.         *     improved RTS handshake
  990.  
  991. |       1.22  09-18-95
  992. |       !     sz: fixed problem when skipping existing files
  993.