pc micro systems

Beta Test
User's Guide
Company Info

Public Domain Zmodem Documentation

                               Public Domain Zmodem
                                   Release 1.26
                            by Peter Mandrella, 1994-98

        NOTE: I did everything I could to avoid and remove bugs and errors
        in this program. Though, I do not guarantee that this program will
        work in the way you expect. I will take no responsibility for
        anything it does or does not. It is released without any warranty
        or support.

        What is Zmodem?

        Zmodem is a fast, reliable and popular "file transfer protocol" -
        a program for transfering files from one computer to another over
        a serial connection. Because of its speed, robustness and easy of
        use, Zmodem has replaced the formerly common protocols "Xmodem"
        and "Kermit" in most applications.

        Besides the original Unix Zmodem and the DOS implementations DSZ
        and GSZ, there are many other implementations for nearly any type
        of hardware and operating system. There are many wide-spread
        Zmodems for DOS - e.g. DSZ, GSZ, Texas Zmodem, CE-XYZ and others.
        So why had just another Zmodem clone to be invented? Because none
        of the existing implementations offers all of the below mentioned

        What is PD Zmodem?

        PD Zmodem is a new Zmodem program for DOS, featuring ...

        +  full Public Domain status, including commercial use
        +  support of any IBM compatible serial interface, using any IRQ
           up to #15
        +  FOSSIL support
        +  high throughput, especially with ISDN; optimum throughput on
           bad lines due to calculation of the best data block size
        +  all standard Zmodem functions
        +  ZedZap support (8k data blocks)
        +  optional transfer of whole directory trees
        +  chat function
        +  automatic cps rate and transfer time control
        +  time synchronization
        +  minimum system load under OS/2 or DesqView
        +  choice of English or German user interface

        There are three or four things (depending on how you count) which
        are not supported and currently not being considered for future
        versions of PD Zmodem:

        -  built-in Xmodem and Ymodem
        -  XON/XOFF (software) handshake

        The latter one may be accomplished, though, by using a FOSSIL

        PD Zmodem assumes the following hardware and software environment:

        o  any DOS compatible or emulating system
        o  DOS version 3.0 or higher
        o  about 130 KB of free DOS main memory
        o  IBM compatible serial interface, or FOSSIL driver


        Receive files:

              ZM [options] rz [path][file name]

        If a path name is issued, all received files will be stored there.
        If a file name is issued with or without path, the files are
        stored under this file name; of course, this only makes sense if
        only one file is transmitted. If "rz" is used without a path or
        file name, all files are received into the current directory.

        Send files:

              ZM [options] sz 

         may be a single file name, a wild card (like "*.*") or a
        space-separated list of several file names and/or wild cards. All
        file names may include a path name.

        Instead of including the paramaters in the command line, you may
        put them into a seperate file - one parameter in each line - and
        issue the name of this file with a preceeding "@", e.g.

              ZM sz @FILELIST

        ZM will read the parameters line by line from FILELIST and handle
        them exactly like parameters typed in a DOS command line. The main
        purpose of this feature is to enable a large list of files to be
        send - as you know, the length of the DOS command line is limited.

        The parameters "rz" and "sz" may be abbreviated as "r" and "s".


        All Options start with "-" or "/" and are separated from other
        options or parameters by at least one space. Options may be inser-
        ted at any place and in any order. So,

            ZM -c1 -b19200 -d sz FILE1.ZIP FILE2.ZIP

        is the same as

            ZM -d sz FILE.ZIP /b19200 -c1 FILE2.ZIP

        *All* options are, as their name says, optional and may be
        omitted. ZM assumes a default setting for any option.

        Serial interface settings:

        -cN            Selects the serial interface. You may either use a
        -cXXX,YY       COM number (N), e.g. "-c1" for COM1, or a combina-
                       tion of address and IRQ (XXX,YY), like "-c2e8,5".
                       If you issue a COM number, ZM uses the following
                       addresses and IRQs:

                          -c1 = -c3f8,4       -c3 = -c3e8,4
                          -c2 = -c2f8,3       -c4 = -c2e8,3

                       Default is "-c2". When using FOSSIL, possible COM
                       numbers range from 1 to 50, otherwise from 1 to 4.

        -f             Use FOSSIL driver. If you use this switch, you have
                       to use the "-cN" form for the serial interface

        -bN            Selects the DTE speed, i.e. the speed (bps rate,
                       "baud rate") between modem and CPU, e.g. "-b38400"
                       for 38400 bps. If -bN is omitted, ZM uses the
                       currently selected speed.

        -d             Ignore Carrier Detect (CD). Normally, your modem
                       should indicate a connection by the CD signal. If
                       your modem is not properly configured or if you are
                       using a null modem (direct connection between two
                       computers) without a CD line, then you may consider
                       disabling the CD detection by "-d". Warning! If
                       "-d" is used, ZM will not be able to detect a "NO
                       CARRIER" connection breakdown! Instead, it will
                       time out after at least 70 seconds.

        -h             Ignore CTS. Normally, the modem uses CTS to signal
                       when it is ready to receive. If the modem is not
                       properly configured or if your null modem connec-
                       tion lacks a CTS line, there might be no CTS
                       signal. Warning! Do not use "-h" when sending files
                       over modem connections with data compression! It
                       will inevitably cause transmission errors.
                       Hint: When transfering files from a very slow com-
                       puter via null modem, the -h switch may increase
                       speed by up to 10 per cent.

        -rts           (1) PD-Zmodem uses RTS handshake and thus prevents
                       receive buffer overruns at high transfer speeds on
                       slow machines. If periodic transmission errors
                       occur, try -rts.

                       (2) If transmission errors occur while writing data
                       to disk, you should issue "-rts". This will suspend
                       the transmission during disk access. Warning: When
                       being used with old ZyXEL ROM releases (4.x), the
                       use of RTS handshake will cause the modem to crash.

        -n             Disable the serial interface's 16550A FIFO buffer.
                       This switch is intended for test purpose only. The
                       FIFO buffer is necessary for stable data transmis-
                       sion at high speeds (38.400 bps or more).

        -tlX           selects a FIFO trigger level of 2, 4, 8 (default)
                       or 14. This setting applies only to 16550A chips
                       and not to FOSSIL drivers. Under DOS changing the
                       trigger level may change the transfer stability.
                       The effect of a lower or higher trigger level
                       depends on the hardware. A level of 8 will work
                       fine in most circumstances.

                       Note: PD Zmodem 1.0 used a trigger level of 14.

        -dtr           drops the DTR signal when PD Zmodem is finished. If
                       you use the right modem settings, this causes your
                       modem to drop the carrier. This feature is useful
                       to end a connection after an unsupervised Zmodem
                       transfer. -dtr may not work under OS/2.

        Zmodem settings:

        (rz)  =  setting is valid for receiving files
        (sz)  =  setting is valid for sending files

        -r  (rz/sz)    Disable Crash Recovery. If crash recovery is
                       enabled, an aborted file transfer may be resumed at
                       the position where the connection was lost. If the
                       file is already complete, it will be skipped.
                       When receiving, "-r" will work under any condition.
                       If it works when sending, too, depends on the
                       receiver's Zmodem implementation. If "-r" has been
                       issued and the transfer is aborted, the incomplete
                       file will be deleted.

        -oX  (rz)      Determines what will happen if the received file
                       already exists and crash recovery is not appli-
                          -o0 = refuse new file
                          -o1 = replace old by new file
                          -o2 = rename new file (default)
                          -o3 = rename old file
                       The old -o switch does still exist and is the same
                       as -o1.

        -16  (rz/sz)   Use 16 bit instead of 32 bit checksums. This
                       feature has been implemented for Zmodem standard
                       conformance only. Actually, all Zmodem implemen-
                       tations use the more secure 32 bit checksums.

        -8  (sz)       Increase the maximum block size from 1024 to 8192
                       bytes ("ZedZap"). This will increase the throughput
                       by about 0.5 per cent if the connection is error
                       free. When "-8" is issued, ZM starts with normal 1k
                       blocks and increases the block size slowly up to 8k
                       if the transmission stays error free. When recei-
                       ving, ZM automatically adapts to any block size up
                       to 8k, independend of the "-8" switch.
                       Warning! "ZedZap" is not a Zmodem but a FidoNet
                       standard. It will work only if the receiver
                       supports this special Fido feature, too.

        -8N  (sz)      Like "-8", with the exception that file transfers
                       start immediately with N KB sized blocks. Possible
                       values of N are 1, 2, 4 and 8. This switch only
                       makes sense if the connection is stable and a maxi-
                       mum of one error - including connection breakdowns
                       - occurs per MB of transferred data.

        -p  (sz)       Transfer path names. Normally, ZM strips path names
                       when transferring file names. If "-p" is issued and
                       the receiver is configured properly, you may use
                       this feature to send files into any directory path.
                       The transferred path name is the same as the one
                       given as paramater. If you specify only file names
                       without paths, "-p" has no effect, except for the
                       case that you used "-s" to transfer subdirectories.
        -s  (sz)       Sends files from subdirectories, too. If combined
                       with "-p" and "*.*" as file name, you may use this
                       feature for transmitting a whole directory tree.

        -s  (rz)       Allows receiving into any directory and creates
                       directories, if necessary. If "-s" is omitted, all
                       incoming files are stored in the current directory
                       or the one which is given as command line parame-
                       ter. More details are given in a section below.

                       Warning! If "-s" is issued without an additional
                       receive path name, the sending program will be able
                       to write files into any directories on your hard
                       disk! When combined with "-o", it may even over-
                       write any existing files that are not protected by
                       a "read only" attribute. DO NOT USE THE "-s"
                       SECURITY HOLE!

        -e  (sz)       Encode all control characters. This switch is
                       useful if the line is not "8 bit clean", i.e. if
                       certain control characters cannot be transmitted.
                       This applies especially to Unix-like terminal
                       connections. "-e" reduces the data transfer rate by
                       about 22 per cent.

        -ts (sz/rz)    Synchonizes the receiver's system clock to the
                       sender's clock. This works only if PD Zmodem is
                       used and -ts is issued on both sides. If a PD
                       Zmodem style log file (switch -lz) is created, the
                       last log file entry shows the time difference. The
                       accuracy is +/- 4 seconds.
                       Warning: If PD Zmodem is used as external protocol
                       within a program that does not recognize the PD
                       Zmodem log file, time synchronization may result in
                       calculating a wrong transfer time.

|       -iKB (rz)      Limits the size of received files. Files that are
|                      larger than the given number of KBytes will be
|                      refused.

        Settings for transfer time restrictions:

        -zN            sets a minimum transfer speed of N cps. If the cps
                       rate drops for at least two minutes below N, the
                       transfer will be aborted. ZM then returns errorle-
                       vel 4.

        -tN            sets a maximum transfer time of N minutes or an end
        -thh:mm        time (e.g. -t20:15 fr 8:15pm). If the given time
                       limit was exceeded, but at least after two minutes,
                       ZM aborts the transfer with errorlevel 5.

        -xtN           Like -t, but instead of the real time, the
        -xthh:mm       currently calculated transfer time is used. The
                       transfer will be aborted "preventive" if PD Zmodem
                       has recognized that it probably cannot be finished
                       within the given time limit.
                       Note: -t and -xt cannot be combined.

        -tiN           sets timeout in seconds. If the Zmodem on the other
                       end does not react for more than N seconds, the
                       transfer is aborted. N is rounded up to a multiple
                       of 10 seconds and may range between 30 and 600. The
                       default is 80 seconds.

        Other settings:

        -ld      creates a DSZ style log file (see below). Replace
                        by the desired file name, optionally inclu-
                       ding a full path specifier. This switch supersedes
                       the environment settings DSZLOG= and ZMLOG=.

        -\             uses "\" as separator in DSZ style log files
                       instead of the Zmodem standard separator "/".

        -lz      creates a PD Zmodem style log file (see below).
                       This switch supersedes the environment settings
                       DSZLOG= and ZMLOG= and the switch -ld.

        -m             Monochrome Display, e.g. for VGA mono screens or
                       for laptop LC displays.

        -nochat        Disables ZM's chat feature. More details are
                       described below.

        -nologo        Disables any screen output before and after
                       displaying the Zmodem transfer window.

        -nowin         Disables the Zmodem transfer window display.

        -beep          Enables an acoustic signal before program termi-

        -q             Disables the 1 to 2 seconds pause before program
                       termination. The pause shall make readable the last
                       displayed message before closing the Zmodem window.
                       If you do not use a FOSSIL driver, characters
                       received during this pause may be lost, which might
                       be annoying if ZM is used as external protocol
                       within a terminal program.

        -os2x          reduces the system load under OS/2. "x" may be any
                       character from a to d and selects different methods
                       for releasing time slices:
                       -os2a   uses int 15h/86h      (BIOS)
                       -os2b   uses int 28h          (DOS)
                       -os2c   uses sti/hlt/35h/cah  (OS/2)
                       -os2d   uses int 2fh/1680h    (DPMI)
                       You will have to try which method works best. All
                       four methods use undocumented OS/2 functions and at
                       least -os2a and -os2d are not supported by all OS/2
                       versions. Using unsupported functions may result in
                       OS malfuncions, including a total system stop

        -dv            reduces the system load when receiving data under

        -w             suppress startup warnings, e.g. if no files to send
                       are specified.

        Transmission of subdirectories

        If PD Zmodem is running on both sides of the connection, you may
        use it to transfer whole directory trees. Example:

        Sender:    ZM -b38400 -s -p sz C:\TEXT\*.*
        Receiver:  ZM -b38400 -s rz

        Here, the whole directory tree contents of C:\TEXT\... are trans-
        ferred at 38.400 bps via COM2 to the receiving system. Note that
        the disk letter "C:" is stripped. If the current directory of the
        receiver is D:, the files will be stored into D:\TEXT\...

        If the receiver specifies a directory path, too, e.g.

                    ZM -b38400 -s rz C:\COPY

        then the receiver's path will be inserted before the sender's
        path. So our example files will end up in C:\COPY\TEXT\... If the
        sender used only a relative path name without the leading "\" and
        if the receiver did not specify a receive path, then the files
        will be stored within and/or below the receiver's current direc-
        tory. Example:

        Sender:    C:\>          ZM -b38400 -s -p sz TEXT\*.*
        Receiver:  D:\DOWNLOAD>  ZM -b38400 -s rz

        Here, the files will be stored in D:\DOWNLOAD\TEXT\...

        Skipping files

        You may use Ctrl-S to skip the rest of the currently received
        file. This is not a Zmodem standard function. The result depends
        on the sending Zmodem:

        PD-Zmodem, CeXYZ, Terminate, miscellaneous Fido Mailers:

           The rest of the current file is skipped. The sender handles the
           file as "correctly transmitted", but of course it is incom-


           The rest of the current file is skipped. The file is incomplete
           and the sender considered it to be bad.


           The skip command is not accepted, but the senders reacts in the
           right way. PD Zmodem says "file skip failed" and proceeds with
           receiving. The file will be received complete and correctly.

        Not seen yet, but ...
           The skip command doesn't work, and the sender is dumb. The
           transfer is either continued, or it will be or must be aborted.
           The received file is bad.


        PD Zmodem features a built in chat function. When ZM is used on
        both sides of the connection, it will display an additional window
        within which you may "talk" to the person at the other side.

        Note that pressing a key during the transmission may cause a loss
        of characters by the serial interface and thus transmission
        errors, if no 16550A FIFO chip is present and the speed is 38400
        bps or above. The errors will be corrected by Zmodem, but this
        will slow down the transfer.

        If chat characters were transmitted during the last 10 seconds of
        file transmission, ZM will stay in chat mode until no character
        was transmitted for at least 15 seconds or until the Escape key is

        You may clear the chat window at any time using Ctrl-L.

        ZM's chat function is NOT compatible to chat functions of other
        Zmodem implementations, e.g. Super Zmodem. It is not part of the
        Zmodem standard, but a special PD Zmodem extension. In the very
        unlikely case that the chat extension may cause problems when
        starting transmissions to other Zmodem programs, you may disable
        it by the command line switch "-nochat".

        When chat mode is active, ZM uses a turbo mode to increase the
        data transfer rate by about 1 per cent. This turbo mode is not
        part of the Zmodem standard, too, and is implemented in different
        ways in different programs (GSZ, Super Zmodem). It works only if
        the same program is used at both ends of the line.


        ZM sz FILE.ZIP               sends the file FILE.ZIP on COM2 at
                                     the current baud rate.

        ZM -c3e8,5 -d sz @FILELIST   sends all files that are listed in
                                     the file FILELIST (one file name each
                                     line) on COM3 (address 3e8) / IRQ 5,
                                     ignoring the Carrier signal.

        ZM -c1 -b38400 -f rz         receives files on COM1 at 38.400 bps
                                     using a FOSSIL driver.

        ZM -o rz D:\DOWN\FILE.ZIP    receives files on COM2 and stores
                                     them in the directory D:\DOWN, over-
                                     writing any existing files.

        ZM -c1 -b9600 -e sz *.*      sends all files from the current
                                     directory on COM1 at 9600 bps over a
                                     terminal connection to something like
                                     a unix host.


        You may use the program ZCONFIG to customize ZM's colors. Besides
        that, ZCONFIG allows changing the language for all screen outputs
        of ZM between English and German. Changes within ZCONFIG must be
        saved explicitely using the menu choice "Save changes".

        If you do not have the file ZCONFIG.EXE, your PD Zmodem package is

        Renaming of ZM

        You may rename or copy ZM.EXE into RZ.EXE and SZ.EXE. When star-
        ting RZ or SZ, you don't have to issue the parameter "rz" resp.
        "sz". Thus, you may e.g. receive files on COM2 at the current baud
        rate by only typing the two letters "RZ".

        PD Zmodem and CrossPoint

        When using PD Zmodem as external Protocol for the point and
        offline software CrossPoint, you should use the following

        Uploader:    ZM.EXE -c$ADDRESS,$IRQ sz $UPFILE
        Downloader:  ZM.EXE -c$ADDRESS,$IRQ rz $DOWNFILE

        If you enabled "ignore CD" and "ignore CTS" at /Config/Modem, you
        must add the switch -d resp. -h. It might be useful to add the
        following switches for download:

        -rts    if periodic transmission errors occur during download
        -beep   if you wish an acoustic signal at the end of netcall

        When using a FOSSIL driver, the settings are:

        Uploader:    ZM.EXE -c$PORT -f sz $UPFILE
        Downloader:  ZM.EXE -c$PORT -f rz $DOWNFILE

        Log file

        [All properties of GSZ mentioned below refer to the Nov-29-93

        ZM scans the DOS environment for the entry "DSZLOG=" and creates
        or appends to a DSZ compatible log file if "DSZLOG=" contains a
        valid file name. The same is done if the switch -ld is issued. -ld
        supersedes DSZLOG=.


        Z   1201 19200 bps 1286 cps   0 errors     0 1024 turbo.pck -1
        z   1226 19200 bps 1313 cps   0 errors     0 1024 turbo.tp -1
        z  25811 19200 bps 1753 cps   0 errors     0 1024 zm-recv.inc -1
        e  17408 19200 bps 1864 cps   1 errors     0 1024 zm-recv.bak -1

        The first character means:

           Z = file was received successfully
           z = file was sent successfully
           E = file reception was aborted
           e = file sending was aborted
           L = carrier lost while receiving
           l = carrier lost while sending

        Note: GSZ ignores at this point the "d" switch (ignore carrier
        signal) and creates a "L" or "l" instead of "E" or "e" if no
        carrier is present. ZM never creates a "L" or "l" entry if the "-
        d" switch is issued.

        The other columns contain (from left to right):

        - Number of transferred Bytes, including bytes skipped by crash

        - DTE bps rate

        - average cps rate (characters per second)

        - Number of transmission errors

        - Number of "CTS lows", i.e. a count how often the CTS handshake
          was used (the number the CTS LED of your modem went off and on
          during the transmission).

        - The size of the last but one data block, or some useless number
          if the file consists of only one block (it is *not* the size of
          the last data block, as stated in the GSZ documentation).

        - The file name, including a path name if present. Instead of the
          DOS "\" separators, Unix-like "/" separators are used - except
          if you specify the "-\" switch.

        - The other program's serial number, or -1 if not present. GSZ
          puts its registration number here.

        Note that the columns have no fixed width. If the file size, the
        number of errors or another field exceeds the width of the corres-
        ponding column, the other fields will be moved to the right. GSZ
        may give any number up to the file's size as cps rate when crash
        recovery is used, which may significantly disturb the logfile's
        format. Thus, DSZLOG processing programs should interpret any line
        as a space-separated list of fields and should be aware of false
        entries created by buggy programs.

        If the environment variable "ZMLOG=" is present and contains a
        valid file name, or if the switch -lz is issued, ZM appends to or
        creates a log file with this file name. -lz supersedes ZMLOG=. The
        PD Zmodem log file is preferred to a DSZ log file, if both are


        Z 03-05-95 21:28:05  c:\test\turbo.pck, 1201 bytes, 1 s, 1286 cps
        z 03-05-95 21:28:06  e:\turbo.tp, 1226 bytes, 0 s, 1753 cps
        e 03-05-95 21:28:32  e:\test.bak, 17408 bytes, 9 s, 1864 cps,
                                                                  1 errors
        T 03-05-95 21:28:52  +10s

        The coloumns except for the first one are not fixed. The first
        four entries on each line are separated by one ore more spaces.
        The meaning of these entries is (from left to right):

        - tag like in DSZ log file, or one of the following:

            T   time synchronization entry
            S   received file was skipped by Ctrl-S

        - transfer start date (mm-tt-jj)
        - transfer start time (hh:mm:ss)
        - within "T" lines: the time difference in seconds; otherwise:
          full path and name of the transferred file

        After this, there may be any additional entries in any order,
        separated by ",". Each entry consists of a value, one or more
        spaces and a label. There may be spaces before and after the ",".
        The following additional entries are defined at the moment:

        - bytes:  number of transferred bytes. If crash recovery was used,
                  two numbers are given, separated by "/". The first one
                  is the number of bytes transmitted and the second one
                  the total file size.

        - s:      transfer time, rounded to full seconds, including wai-
                  ting time before and after the file transmission itself.

        - cps:    characters per second, calculated using a 1/18 seconds
                  clock, *without* waiting time before and after the file

        - errors: number of transfer errors.

        Future PD Zmodem releases may add more entries and more tags in
        the first coloumn.

        Transfer abortion

        ZM will abort the transfer if one of the following conditions is

        -  You have pressed the Escape key.  (*)
        -  The other side's Zmodem wants to stop the transfer.
        -  Someone at the other end has pressed Ctrl-X several times
        -  ZM made 25 subsequent unsuccessful tries to transmit a single
           data block
        -  Nothing has happened for more than 70 seconds resp. the time
           issued by the -ti switch (timeout).
        -  Your hard disk is full.
        -  You have issued -o0 and a file was refused.
        -  The cps rated dropped for at least two minutes below the
           minimum given by the -z switch
        -  The maximum transfer time given by -t or -xt was exceeded.
        -  When Ctrl-S is pressed, the rest of current file is aborted and
           the transfer continues with the next file.

        (*) If the other side does not react, it may take up to 10 seconds
            until the transfer is aborted. You may force an instant
            transfer shutdown by pressing Escape twice.


        ZM returns the following errorlevels:

        0  =  transfer was completed successfully
        1  =  transfer was aborted
        4  =  cps rate too low (see -z switch)
        5  =  the maximum transfer time (-t/-xt switch) was exceeded
        9  =  wrong or missing parameter(s)

        Please note that errorlevel 4 and and 5 normally occur only on the
        one connection side that stopped the transfer - even if PD-ZM is
        used on both sides and the same time limits are given. The two
        Zmodem programs never work totally synchrone. On the other side,
        PD-ZM returns errorlevel 1.


        PD Zmodem does not support the Zmodem windowing mode. This may
        result in a lower throughput if errors occur on a buffered conenc-
        tion, e.g. over packet-switching networks. With normal point-to-
        point operation this restriction doesn't matter.


        16550A          Serial interface chip which reduces the CPU load
                        by an I/O buffer (FIFO) and thus increases the
                        transfer stability at high speeds. It is absolute-
                        ly necessary when transfering at more than 38400
                        bps oder when using a multitasking environment.
                        Unfortunately, most manufacturers still equip
                        their serial intefaces with a cheap 16450 chip.

        Batch           Concerning Zmodem: Transmission of multiple files
                        within one transfer.

        baud            Steps per seconds. That's NOT the same as bps! A
                        14400 bps modem works at 2400 baud and transmits 6
                        bits with each step. One exception from the rule
                        are serial interfaces, where 1 baud is equal to 1
                        cps because only one bit is transmitted per step.

        bps             Bits (information units) per second

        Carrier         If a modem carrier is present, a connection
                        between two modems has been established.

        Carrier Detect  Serial interface line which is used by the modem
                        to signal a connection to the CPU

        cps             Characters per second

        Crash Recovery  Zmodem feature for resuming an interrupted file

        CRC             Cyclic Redundancy Check - checksum method for
                        securing data integrity. It is used by Zmodem, by
                        Modems, by Archivers and by other data equipment
                        and software to detect damaged data blocks.

        CTS             Clear to Send - Control signal which means that
                        the modem is ready to receive data

        DSZ / GSZ       Wide-spread Zmodem implementation from Omen Tech-
                        nologies. DSZ and GSZ have some minor bugs but are
                        very stable and reliable, though.

        FidoNet         largest non-commercial BBS net

        FIFO            see 16550A

        Flow Control    Method for controlling the data flow, e.g. over a
                        serial interface. Common forms of flow control are
                        hardware (RTS/CTS) and software (XON/XOFF) flow
                        control. PD-ZM supports only the hardware version.

        Handshake       see "Flow Control"

        IRQ             Interrupt Request. It is used e.g. by the serial
                        interface to signal reception or transmission of
                        data to the CPU. Each interface needs an own IRQ.
                        XTs have IRQs from 0 to 7; ATs add IRQ 8 to 15.

        Kermit          relatively secure, very slow and pretty
                        complicated file transfer protocol

        Overhead        The amount of control data added to transferred or
                        stored data. If 20 additional bytes are needed for
                        transferring 1000 data bytes, the overhead is 2
                        per cent. Zmodem's minimum overhead is about 3.5
                        per cent.

        RTS             Ready to Send - control line used by the CPU to
                        signal to the modem that it is ready to receive

        Windows         Graphical operating system extension which makes
                        an adventure of data communications once more

        Xmodem          unsecure, slow and primitive file transfer
                        protocol, invented in 1974 by Ward Christiansen

        Ymodem          fairly secure, medium fast, but rather primitive
                        file transfer protocol

        ZedZap          Zmodem extension with 8k data blocks, originating
                        in FidoNet. The only advantage compared to stan-
                        dard Zmodem is a neglectable 0.5 per cent increase
                        of throughput over error free lines.

        Zmodem          secure, fast and powerful file transfer protocol,
                        created in 1986 by Chuck Forsberg.

        Copyrights, Credits, Trademarks ...

        The CRC routines within PD Zmodem are used courtesy of Stephen
        Satchell. The Zmodem implementation is based on a port of Chuck
        Forsberg's public domain source "rz/sz", released in the beginnig
        of 1988 (later releases os this C source are not public domain,
        but shareware with certain restrictions).

        My very special thanks to Anders Hejlsberg for the world's finest
        (Pascal) compiler.

        Thanks to Mike Ehlert for proof reading this text.

        Any product names mentioned in this text may be (and in most cases
        are) trademarks or registered trademarks.

        PD Zmodem is not copyrighted, -lefted, -upped, -downed or
        registered in any way and may be used for anyting that is fun for
        you (as long as you consider using a Zmodem for it). You may debug
        and reverse engineer it until you become mad.

        Bug reports and other hints concerning PD Zmodem are welcome.
        Please write to

        Internet:  pm@daisy.de
        Fidonet:   Peter Mandrella @ 2:2454/97.80

        Please do not ask me any questions about Zmodem or the use of PD
        Zmodem! If you don't find answers within this text, please ask
        your hardware manufacturer, your software dealer, your mom, your
        dad, your wife, your psychiatrist, or even post your questions
        into an appropriate net newsgroup.

        Please don't send me any fido crash mails with RREQ flag, because
        my bossnode's software doesn't like them.

        Programmer's literature

        Chuck Forsberg, 1986-88: "The ZMODEM Inter Application File
               Transfer Protocol". Available as file (ZMODEM.DOC) on the

        Chuck Forsberg, 1986-88: C source of "rz" and "sz" (Public
               Domain). Available on the net (especially Internet).

        J.R.Louvau, Philip R. Burn: TPZ - Pascal Zmodem source. The public
               available TPZ release(s?), or at least one of them, is/are
               extremely buggy. Anyway, they are useful for demonstration
               purpose and for understanding Chuck's C source.

        Rick Moore, 1988: "Fundamentals of FOSSIL implementation and use".
               Avaliable as file (FSC-0015.*) on the net (especially

        Arne Schaepers: "Turbo Pascal 4.0/5.0", Volume 2, Addison Wesley.
               A German book that contains a very useful discussion of
               serial interface programming with Turbo Pascal.

        Wolfgang Hartung, Michael Felsmann, Andreas Stiller:
               Programming of UART 8250. c't 5/88, page 204 (German)

        Martin Ernst, Andreas Stiller: PC interrupt programming.
               c't 8/88, page 174 (German)

        Markus Maeder: 16550 FIFO programming. c't 2/92, page 170 (German)

        If you know any good English sources of information about UART and
        interrupt programming, e.g. from Byte or Dr. Dobb's journal,
        please let me know, so that I may mention them in future versions
        of this text.

        The Inevitable Version History (TM)

        + = new      * = changed      ! = fixed      - = removed

        0.97  10-10-94
              first release including English documentation

        1.0   11-05-94
        *     DSZ logfile is kept open only when needed
        +     sz: new switch -88
        +     new switch -beep
        *     online time display until end of chat

        1.1b  12-12-94
        !     sz: corrected internal timeouts
        !     corrected remaining transfer time after files were skipped
        +     Switches -z, -t and -xt limit connection time
        +     Switch -os2 reduces OS/2 system load

        1.1   03-10-95
        +     Switches -nologo and -nowin deactivate screen output
        +     COM port numbers up to 255 when using FOSSIL
        +     Switch -tl selects FIFO trigger level
        +     Switch -dv reduces DesqView system load
        !     corrected CTS timeout

        1.15b 03-18-95
        +     switch -ld for DSZ log file
        +     ZMLOG= and switch -lz for PD Zmodem log file
        +     switch -w suppresses warnings
        +     additional options for switch -o
        !     minor chat display error fixed
        !     correct "L" tag in log file on carrier loss
        *     send speed optimized
        *     changed FOSSIL support from byte to block transfers
        !     fixed timeout bug on date change (23:59 -> 00:00)
        +     switch -ti for timeout
        +     switches -82 and -84 for starting block sizes 2k resp. 4k
        +     switch -ts for time synchronization

        1.2   06-02-95
        +     switches -os2a to -os2d
        +     switch -\ for backslashes in DSZ log files

        1.21  08-07-95
        !     fixed -os2a bug
        !     -ts works now without PD-ZM log file, too
        +     Ctrl-S skips rest of the file being received
        +     -dtr switch
        *     improved RTS handshake

        1.22  09-18-95
        !     sz: fixed problem when skipping existing files

        1.23  11-03-95
        *     fixed SMC chipset problem

        1.24  04-06-96
        !     fixed chat time extension bug
        *     increased FOSSIL send buffer size

|       1.26  01-08-98
|       !     fixed bug when running on fast Pentium CPUs
|       +     -i switch for receive file size limit


hot deals on computers

Modem Pool
Home | About NetFoss | Download | Beta Test | Guide | Support | Company Info

Copyright © 1995 - 2007 pcmicro.com    All rights reserved