home *** CD-ROM | disk | FTP | other *** search
-
- Eine deutschsprachige Anleitung finden Sie in ZM-GER.DOC.
-
- (For a German documentation see ZM-GER.DOC.)
-
-
-
-
-
-
- --------------------
- Public Domain Zmodem
- --------------------
-
-
-
- Release 1.22
-
-
-
- by Peter Mandrella, 1994-95
-
-
-
-
-
-
- NOTE: I did anything to avoid and remove bugs and errors in/from
- 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.
-
- This text has been translated from German to English. It may
- contain some German idioms. If you are a native English speaker, I
- would appreciate if you would mark and correct any errors while
- reading and send the revised text to one of the e-mail addresses
- mentioned below.
-
-
-
-
- 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 pretty
- comfortable use, Zmodem has replaced the formerly common protocols
- "Xmodem" and "Kermit" in most applications.
-
- Besides of the original Unix Zmodem and the DOS ports DSZ and GSZ,
- there are many other implementations for nearly any type of
- hardware and operating system. There are lots of 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
- features.
-
-
-
- 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
- driver.
-
-
- 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
-
-
-
- Syntax
- ------
-
- 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 <files>
-
- <Files> 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 proceeding "@", 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 file to 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".
-
-
-
- Options
- -------
-
- 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 interface number.
-
- -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
- to disable 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 so 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 ist 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-
- cable:
-
- -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 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) Allowes 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"
- RECEIVER SWITCH WIHIN A BBS! IT WILL CAUSE A GIANT
- 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
- caluclating a wrong transfer time.
-
-
- 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 für 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 calucalted 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 combinded.
-
- -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<file> creates a DSZ style log file (see below). Replace
- <file> 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<file> 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-
- nation.
-
- -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
- (Trap).
-
- -dv reduces the system load when receiving data under
- DesqView.
-
- -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-
- plete.
-
- Telemate:
-
- The rest of the current file is skipped. The file is incomplete
- and the sender considered it to be bad.
-
- GSZ:
-
- 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.
-
-
-
- Chat
- ----
-
- 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
- pressed.
-
- 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.
-
-
-
- Examples
- --------
-
- 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.
-
-
-
- ZCONFIG
- -------
-
- You may use the program ZCONFIG to customize ZM's colors. Besides
- of that, ZCONFIG allowes to change 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
- incomplete.
-
-
-
- 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
- settings:
-
- 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
- release.]
-
- 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=.
-
- Example:
-
- 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 coloumns contain (from left to right):
-
- - Number of transferred Byes, including bytes skipped by crash
- recovery
-
- - 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 interprete any
- line as a space-seperated 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
- issued.
-
- Example:
-
- 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, caluclated using a 1/18 seconds
- clock, *without* waiting time before and after the file
- transmission.
-
- - 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
- true:
-
- - 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 for 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.
-
-
-
- Errorlevel
- ----------
-
- 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.
-
-
-
- Drawbacks
- ---------
-
- 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.
-
-
-
- Glossary
- --------
-
- 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
- transfer
-
- 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 uncomfor-
- table 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
- data
-
- Windows Graphical operating system extension which makes
- an adventure of data communications once more
-
- Xmodem unsecure, slow and uncomfortable file transfer
- protocol, invented in 1974 by Ward Christiansen
-
- Ymodem fairly secure, medium fast, but pretty uncomfor-
- table 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 pretty comfortable 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.
-
- 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
- net.
-
- 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
- FidoNet).
-
- 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
-