home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
PROTOCOL
/
ZSX2_310.ZI0
/
README.ZSX
< prev
next >
Wrap
Text File
|
1994-01-24
|
16KB
|
341 lines
ZSX v3.10 - a general purpose protocol driver
(C) 1990, 1994 by Jan R. Terpstra
WHAT IS ZSX
===========
ZSX is a general purpose protocol driver for Bulletin Board Systems. It
features SEAlink (with overdrive), Xmodem, Ymodem, Ymodem-Batch, Ymodem-G
and Zmodem (with RLE) protocols and requires only 55KB free RAM to run.
The DOS executable ZSX.EXE requires a FOSSIL driver like OPUS!COMM, x00
or BNU to drive the communication port. With x00 and BNU, up to 8 ports
are supported.
NOTE: Use x00 v1.24 or later or BNU v1.50 or later.
The OS/2 executable ZSX2.EXE runs best with Ray Gwinn's SIO serial port
device drivers for OS/2.
ZSX is a protocol driver for Bulletin Board systems, NOT a universal file
transfer program like DSZ, PCKERMIT, JMODEM, SuperK or Lynx. Compared to
other (tm) programs, ZSX is slightly crippled:
- Zmodem receive has no crash-recovery. This prevents files on your BBS
from being overwritten or changed by a user. Zmodem send does support
recovery so aborted downloads from your BBS can be picked up at the point
where they aborted.
- NAK, CANcel and Carrier Lost are ignored for the last block of a download.
This is to prevent nasty users to evade the up/download counter of your
BBS. The bozos do so by aborting the download between the last block of
the file and the subsequent NAK/ACK sequence on the EOT signal. That
trick won't work with ZSX.
- During Zmodem, Ymodem and SEAlink receive of a specific file, ZSX refuses
additional files to prevent existing files from being overwritten.
Running ZSX
===========
To run ZSX, type ZSX followed by one or more of these options:
NOTE: Options are CaSe SeNsItIvE!!!!
port N communications port to be used. N Can be 1....16, depending
on the type of FOSSIL driver used. Defaults to COM1.
The OS/2 version (ZSX2) can take either the absolute port
number (1.....16) or can be passed the com port's filehandle
from the parent process via the 'handle' option.
| handle N Handle of the com port to be used. Under OS/2, this handle is
| passed by the parent (calling) program. ZSX2 inherits all port
| characteristics set by the parent (e.g. TE/2, Maximus).
| For stand-alone operation, you may specify a real port number
| via the 'port' option. Either 'handle' or 'port' can be given,
| NOT both.
| speed N Modem-to-PC baudrate. Valid speeds are: 300, 1200, 2400, 4800,
| 9600, 19200 and 38400 bps. This is either the true line speed
| or the fixed speed between your modem and computer.
| If a non standard baudrate (7200, 12000, 14400, or 16800) is
| passed as speed parameter, it is ignored. The FOSSIL settings
| are left tas they are. and the speed value will only be used
| to calculate estimated transfer times and transfer efficiency.
| This allows you to use the "actual connect rate" feature of
| your modem is used
| Telebit modems is used (connect value of 7200, 12000, 14400,
| 16800 or 19200 bps), ZSX will also leave the FOSSIL settings
| as they are.
| If NO speed is given, ZSX will leave the FOSSIL settings as
| they are.
line N Actual modem-to-modem connect rate. If a fixed PC-to-modem
baudrate is used (i.e. the baudrate of the FOSSIL is locked),
the LINE parameter causes ZSX to give correct results for
estimated transfer time and throughput. If not given, LINE
takes the same value as SPEED.
NOTE: You must specify a value for either SPEED or LINE!
| b Shutup bell at end of transfers. The bell is only active in
| ZSXW, the windowing version of ZSX.
D (upper case D) Drop DTR when carrier is lost. Some BBS
programs act a little odd when an external protocol does not
reset the modem on carrier loss.
d (lower case d) Disable carrier monitor. Comes in handy when
sending files over a null-modem that isn't wired correclty.
e Escape all control characters for Zmodem. This slows down
transfer by up to 50%, but it allows Zmodem transfer over
non-transparent networks.
f Relaxed ACK/NAK timing. ZSX will be forgiving about Xmodem,
Ymodem and SEAlink timing. Usefull if transferring files over
slow network or via satellite links.
L N Length override for Zmodem subpackets (N = 32.....1024).
o Run SEAlink in Overdrive (ackless) mode. The fastest method
of transferring files over half-duplex mode ARQ links like
V.29, HST or PEP.
q Quiet mode. Do not send closing notice at end of transfer.
| w N SEAlink window size (N = 1....128). Some people believe big
| buffers is everything. If you have set an 8 KB xmit buffer
| in your FOSSIL driver, try this option. ZSX allows up to 128
| blocks "run ahead" with SEAlink send. A 128 block window size
| keeps the FOSSIL transmit buffer filled as much as possible.
| If you use x00 under DESQView, set the xmit buffer to 8192
| bytes and set a 64 block window. This may improve SEAlink
| performance JUST A TINY BIT at 9600 bps and higher.
| Default value for SEAlink window size is calculated by ZSX via
| the formula "linespeed/400". So at 1200 bps the window size is
| 3 blocks, at 9600 bps ZSX uses 24 blocks SEAlink window size.
y Allow receive to overwrite existing files.
| Z Use Zmodem RLE compression. ZSX automatically detects when it
| is sending already compressed ARC, ARJ, DWC, GIF, LZH, PAK,
| ZIP and ZOO files and ignores this command line switch.
log Filename to log succesful or failed transfers to. The logfile
is compatible with DSZ's log file. ZSX will recognize the
"DSZLOG=" environment variable.
list Filename where the names and sizes of received files are stored
when receiving multiple files. This file can later used by the
BBS program to prompt the user to enter the descriptions for
the uploaded files.
cmd sz = Zmodem send file(s)
ss = SEAlink send file(s)
sb = Ymodem-Batch (True-Ymodem) send file(s)
sy = Ymodem (Xmodem-1K) send file
sg = Ymodem-G send file
sx = Xmodem send file
rz = Zmodem receive file(s)
rs = SEAlink receive file(s)
rb = Ymodem-Batch (True-Ymodem) receive file(s)
ry = Ymodem (Xmodem-1K) receive file
rg = Ymodem-G receive file
rx = Xmodem receive file
file filename to be send/received (may include wildcards).
@file Name of the response file that lists all files to be send in
one batch.
| ENVIRONMENT SETTINGS
| ====================
| The environment variable DSZLOG is recognized by ZSX. If it is set, ZSX will
| write a DSZ/GSZ compatible logfile.
| Under OS/2, you may set the size of the transmit and receive buffers used
| by ZSX/2 via the RBUF and TBUF environment variables. ZSX/2 uses transmit
| and receive buffers of a maximum of 4096 bytes. The buffers can be made
| smaller by setting the environment variables TXBUF=xxxx (for the transmit
| buffer) and RBUF=xxxx (for the receive buffer), where xxxx is a multiple
| of 2.
SOME EXAMPLES
=============
ZSX port 1 speed 2400 Z rz C:\MYFILES\AAA.BBB
receive Zmodem/Compressed file AAA.BBB to subdir C:\MYFILES via port 1
at 2400 bps Only AAA.BBB will be received, additional file(s) will be
refused.
ZSX port 1 speed 9600 o ss @FIL.LST
send Sealink-Overdrive files listed in FIL.LST via port 1 at 9600 bps
ZSX port 1 line 1200 w 32 o ss @FIL.LST
send Sealink-Overdrive files listed in FIL.LST via port 1. Leave the port
at the current baudrate, but use actual linerate of 1200 bps to calculate
ETA and efficiency. Set SEAlink run-ahead to 32 blocks.
ZSX port 2 speed 9600 rb C:\FILES\
receive Ymodem-Batch via port 2 at 9600 bps. Received file(s) will be
written to subdir C:\FILES\
ZSX port 8 speed 300 rx C:\FILES\FILE.NEW
receive Xmodem FILE.NEW into subdir C:\FILES\ via port 8 at 300 bps
ZSX port 5 speed 38400 list UPLOADED.LST d y rz C:\FILES\
receive Zmodem via port 5 at 38400 bps. Omit carrier check. Received
file(s) will be written to subdir C:\FILES\ and existing file(s) will
be overwritten. Names and filesizes of received files will be written
to list-file UPLOADED.LST.
ZSX port 2 speed 19200 line 2400 o sg *.*
send all files in the current directory using Ymodem-G via port 2. The
modem to PC baudrate is 19200 bps, but the actual linerate of 2400 bps
will be used for estimated transfer time and throughput calculations.
ZSX port 1 speed 2400 f sx C:\FILES\*.*
Send all files in the current directory using Xmodem via port 2 at 2400 bps.
Because Xmodem and Ymodem (rather, Xmodem-1K) are not batch protocols, ZSX
will send the name of the file about to be sent as a readable string to the
receiver's end, right before the file is transmitted.
Use relaxed ACK/NACK timing.
Notice: ZSX reports the relative throughput at the end of the transfer,
using either the Modem to PC baudrate or (if specified) the actual modem
to modem line rate.
Contrary to other popular transfer utiltities, ZSX reports the ACTUAL
efficiency, including the protocol's overhead (init handshake, header
block transfer and EOF handshake). Thus the relative througput reported
will be slightly less (but more honest) when compared to other protocol
drivers.
Because the granularity of the throughput timer is 1 second, transferring
small files (i.e. transfers that take less then about 30 seconds) may
report an efficiency of over 100% or an efficiency that seems way to low.
COPYRIGHTS AND SUCH
===================
Apart from the rights on those parts of the code by Omen Tech and System
Enhancement Associates, this program is free of idiosyncratic license
requirements. You may use this program in a non-commercial environment in
whatever way you like. You may use it as a doorstop or feed it to your cat.
Some product names mentioned in this document may be registered trademarks
of their respective owners.
Use in a commercial environment may require you to enter a license agreement
with either Omen Tech or System Enhancement Associates. I don't want to get
involved in all sorts of legal discussions. Ask them and don't bug me.
However, regisation of this product is required! Simply register by
sending a postcard to:
J.R. Terpstra
P.O.Box 66
1462 ZH Beemster
The Netherlands
Registration won't buy you anything and you're not entitled to anything
special. I just happen to like postcards :-)
| RELEASE NOTES
| =============
| January 24, 1994 - v3.10
| Fixed line noise filter in Zmodem handshake routines. The filter was too
| agressive and "lesser" implementations of Zmodem would fail to handshake
| properly with ZSX.
| Fixed some cosmetics in ZSXW.
| ZSXW is now fully (S)VGA aware and will adjust its scrreen output to the
| number of rows and coloms of the current video mode (80x25 thru 132x50).
| Recompiled all ZSX flavours with 80286 instructions. You need at least a
| 80286 equipped PC to use ZSX 3.10 (and later).
December 24, 1993 - v3.01
Cosmetic fix in the log file
November 16, 1993 - v3.00
There are now 3 flavors of ZSX:
ZSX.EXE - straight DOS executable
ZSXW.EXE - DOS executable with windowing user interface
ZSX2.EXE - 16 bit OS/2 executable
Improved SEAlink and Zmodem performance by 15..20%
Fixed some cosmetics and some minor bugs.
November 26, 1991 - v2.40
Fixed problem with SEAlink EOT/EOF handshake.
Fixed receiver CRC recovery problem at speeds above 9600 bps.
Receiver timing now more forgiving.
November 21, 1991 - v2.32
Fixed problem with garbled SEAlink blocknumbers that would make SEAlink
transfers go in an endless NAK loop.
Fixed initial ACK/NAK handshake for Sealink and Ymodem.
November 19, 1991 - v2.31
Fixed problem in receive CRC routines (it turns out that Microsoft's
optimizing C compiler doesn't always "optimize" :-(
November 17, 1991 - v2.30
Fixed EOF handshake in Ymodem-Batch and Ymodem-G.
Receivers preference for Xmodem-CRC or Xmodem-Checksum now automatically
detected properly.
Fixed Xmitter timeout problem when sending at 300 or 1200 bps.
Oktober 9, 1991 - v2.21 **BETA**
Added QUIET option to suppress closing banner at end of transfer.
Added variable window size option for SEAlink send.
Fixed bug in automatic detection of SEALink Overdrive/non-Overdrive receive.
Fixed bug in relaxed ACK/NACK timing.
September 27, 1991 - v2.20 **BETA**
Changed the low level XMIT routines. SEAlink/Overdrive and Zmodem now
run at an efficinecy of over 95%, even at 38400 bps.
ZSX now returns DOS ERRORLEVEL 0 if at least 1 file was transferred
succesfully, or ERRORLEVEL=1 if the transfer was aborted or carrier was
lost during transfer.
July 27th, 1991 - v2.10
I rather not talk about that, since v 2.10 was severely brain damaged....
June 24, 1991 - v2.01
Fixed a minor bug in carrier detect of Zmodem routines
June 16, 1990 - v2.00
Added Zmodem/Compressed (RLE compression) and Zmodem variable headers.
Changed all CRC routines to assembler.
Changed logging, ZSX now writes a DSZ style logfile.
Bugs fixed:
- SEAlink/Overdrive timeout problem.
- Zmodem receive failure on last block.
December 1, 1990 - v1.70
After several beta-test releases, version 1.70 is now released to the
general public. The documentation is a bit sparse and the program needs
some minor cosmetic fixes, but the program is functional.
KUDOS
=====
ZSX was based on (and contains parts of) Chuck Forsberg's Zmodem routines
and SEAlink routines by Thom Henderson. Some of the ideas in this program
were blatantly stolen from Opus' Zmodem download driver and BinkleyTerm.
You have to thank the original authors for whatever quality is present in
this program. I merely glued the existing pieces together as a learning
project and to sink my teeth in some C code.
Many thanks to Doug Azzarito for scrutinizing the code. Also my thanks to
Heiko Rommelman for sending me the Proficient C book, which was the main
reason for me to start programming in C. Though my wife didn't understand
why I wanted to learn yet another programming language, I think it was
worth doing it.....
It is not :-) nor :-( nor ;-)
It is C:\>
<JT>
Fidonet: 2:280/216.0
OS2NET: 81:431/1.0
internet: dutchman@vnet.ibm.com
X.400: nlibmggm@ibmmail