home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / PROTOCOL / ZSX301.ZIP / README.ZSX < prev    next >
Text File  |  1993-12-20  |  15KB  |  327 lines

  1.  
  2.                ZSX v3.01 - a general purpose protocol driver
  3.              (C) 1990, 1993 by Jan R. Terpstra (FIDO 2:280/216.0)
  4.  
  5.  
  6.  
  7.   WHAT IS ZSX
  8.   ===========
  9.   ZSX is a general purpose protocol driver for Bulletin Board Systems. It
  10.   features SEAlink (with overdrive), Xmodem, Ymodem, Ymodem-Batch, Ymodem-G
  11.   and Zmodem (with RLE) protocols and requires only 55KB free RAM to run.
  12.  
  13.   The DOS executable ZSX.EXE requires a FOSSIL driver like OPUS!COMM, x00
  14.   or BNU to drive the communication port. With x00 and BNU, up to 8 ports
  15.   are supported.
  16.   NOTE: Use x00 v1.24 or later or BNU v1.50 or later.
  17.  
  18.   The OS/2 executable ZSX2.EXE runs best with Ray Gwinn's SIO serial port
  19.   device drivers for OS/2.
  20.  
  21.   ZSX is a protocol driver for Bulletin Board systems, NOT a universal file
  22.   transfer program like DSZ, PCKERMIT, JMODEM, SuperK or Lynx. Compared to
  23.   other (tm) programs, ZSX is slightly crippled:
  24.  
  25.    - Zmodem receive has no crash-recovery. This prevents files on your BBS
  26.      from being overwritten or changed by a user.  Zmodem send does support
  27.      recovery so aborted downloads from your BBS can be picked up at the point
  28.      where they aborted.
  29.    - NAK, CANcel and Carrier Lost are ignored for the last block of a download.
  30.      This is to prevent nasty users to evade the up/download counter of your
  31.      BBS. The bozos do so by aborting the download between the last block of
  32.      the file and the subsequent NAK/ACK sequence on the EOT signal. That
  33.      trick won't work with ZSX!
  34.    - During Zmodem, Ymodem and SEAlink receive of a specific file, ZSX refuses
  35.      additional files to prevent existing files from being overwritten.
  36.  
  37.  
  38.   Running ZSX
  39.   ===========
  40.   To run ZSX, type ZSX followed by one or more of these options:
  41.   NOTE: Options are CASE SENSITIVE!!!!
  42.  
  43.     port N      communications port to be used. N Can be 1....16, depending
  44.                 on the type of FOSSIL driver used. Defaults to COM1.
  45.                 The OS/2 version (ZSX2) can take either the absolute port
  46.                 number (1.....16) or can be passed the com port's filehandle
  47.                 from the parent process via the 'handle' option.
  48.  
  49. |   handle N    Handle of the com port to be used. Under OS/2, this handle is
  50. |               passed by the parent (calling) program. ZSX2 inherits all port
  51. |               characteristics set by the parent.
  52. |               For stand-alone operation, you may specify a real port number
  53. |               via the 'port' option. Either 'handle' or 'port' can be given,
  54. |               NOT both.
  55.  
  56.     speed N     (Fixed) Modem-to-PC baudrate. N = 300....38400. If NO
  57.                 speed is given, ZSX will leave the FOSSIL settings as they
  58.                 are. In this case the calling program must ensure that the
  59.                 comport is set to 8 bits and no parity (N,8,1).
  60.                 When the "actual connect rate" feature of the US Robotics or
  61.                 Telebit modems is used (connect value of 7200, 12000 or
  62.                 14400 bps), ZSX will also leave the FOSSIL settings as they
  63.                 are.
  64.  
  65.     line N      Actual modem-to-modem connect rate. If a fixed PC-to-modem
  66.                 baudrate is used (i.e. the baudrate of the FOSSIL is locked),
  67.                 the LINE parameter causes ZSX to give correct results for
  68.                 estimated transfer time and throughput. If not given, LINE
  69.                 takes the same value as SPEED.
  70.                 NOTE: You must specify a value for either SPEED or LINE!
  71.  
  72. |   b           Shutup bell at end of transfers. The bell is only active in
  73. |               ZSXW, the windowing version of ZSX.
  74.  
  75.     D           (upper case D) Drop DTR when carrier is lost. Some BBS
  76.                 programs act a little odd when an external protocol does not
  77.                 reset the modem on carrier loss.
  78.  
  79.     d           (lower case d) Disable carrier monitor. Comes in handy when
  80.                 sending files over a null-modem that isn't wired correclty.
  81.  
  82.     e           Escape all control characters for Zmodem. This slows down
  83.                 transfer by up to 50%, but it allows Zmodem transfer over
  84.                 non-transparent networks.
  85.  
  86.     f           Relaxed ACK/NAK timing. ZSX will be forgiving about Xmodem,
  87.                 Ymodem and SEAlink timing. Usefull if transferring files over
  88.                 slow network or via satellite links.
  89.  
  90.     L N         Length override for Zmodem subpackets (N = 32.....1024).
  91.  
  92.     o           Run SEAlink in Overdrive (ackless) mode. The fastest method
  93.                 of transferring files over half-duplex mode ARQ links like
  94.                 V.29, HST or PEP.
  95.  
  96.     q           Quiet mode. Do not send closing notice at end of transfer.
  97.  
  98. |   w N         SEAlink window size (N = 6....64). Some people believe big
  99. |               buffers is everything. If you have set an 8 KB xmit buffer
  100. |               in your FOSSIL driver, try this option. ZSX allows up to 64
  101. |               blocks "run ahead" with SEAlink send. A 64 block window size
  102. |               keeps the FOSSIL transmit buffer filled as much as possible.
  103. |               If you use x00 under DESQView, set the xmit buffer to 8192
  104. |               bytes and set a 64 block window. This may improve SEAlink
  105. |               performance JUST A TINY BIT at 9600 bps and higher.
  106. |               Default value is a regular 6 block SEAlink window.
  107.  
  108.     y           Allow receive to overwrite existing files.
  109.  
  110.     Z           Use Zmodem RLE compression. Automatically disabled when
  111.                 transferring ARC, ARJ, DWC, GIF, LZH, PAK, ZIP and ZOO files
  112.                 since those files are already compressed.
  113.  
  114.     log         Filename to log succesful or failed transfers to. The logfile
  115.                 is compatible with DSZ's log file. ZSX will recognize the
  116.                 "DSZLOG=" environment variable.
  117.  
  118.     list        Filename where the names and sizes of received files are stored
  119.                 when receiving multiple files. This file can later used by the
  120.                 BBS program to prompt the user to enter the descriptions for
  121.                 the uploaded files.
  122.  
  123.     cmd         sz = ZMODEM send file(s)
  124.                 ss = SEAlink send file(s)
  125.                 sb = Ymodem-Batch (True-Ymodem) send file(s)
  126.                 sy = Ymodem (Xmodem-1K) send file
  127.                 sg = Ymodem-G send file
  128.                 sx = Xmodem send file
  129.                 rz = Zmodem receive file(s)
  130.                 rs = SEAlink receive file(s)
  131.                 rb = Ymodem-Batch (True-Ymodem) receive file(s)
  132.                 ry = Ymodem (Xmodem-1K) receive file
  133.                 rg = Ymodem-G receive file
  134.                 rx = Xmodem receive file
  135.  
  136.     file        filename to be send/received (may include wildcards).
  137.  
  138.     @file       Name of the response file that lists all files to be send in
  139.                 one batch.
  140.  
  141.  
  142.   SOME EXAMPLES
  143.   =============
  144.   ZSX port 1 speed 2400 Z rz C:\MYFILES\AAA.BBB
  145.    receive Zmodem/Compressed file AAA.BBB to subdir C:\MYFILES via port 1
  146.    at 2400 bps Only AAA.BBB will be received, additional file(s) will be
  147.    refused.
  148.  
  149.   ZSX port 1 speed 9600 o ss @FIL.LST
  150.    send Sealink-Overdrive files listed in FIL.LST via port 1 at 9600 bps
  151.  
  152.   ZSX port 1 line 1200 w 32 o ss @FIL.LST
  153.    send Sealink-Overdrive files listed in FIL.LST via port 1. Leave the port
  154.    at the current baudrate, but use actual linerate of 1200 bps to calculate
  155.    ETA and efficiency. Set SEAlink run-ahead to 32 blocks.
  156.  
  157.   ZSX port 2 speed 9600 rb C:\FILES\
  158.    receive Ymodem-Batch via port 2 at 9600 bps. Received file(s) will be
  159.    written to subdir C:\FILES\
  160.  
  161.   ZSX port 8 speed 300 rx C:\FILES\FILE.NEW
  162.    receive Xmodem FILE.NEW into subdir C:\FILES\ via port 8 at 300 bps
  163.  
  164.   ZSX port 5 speed 38400 list UPLOADED.LST d y rz C:\FILES\
  165.    receive Zmodem via port 5 at 38400 bps. Omit carrier check. Received
  166.    file(s) will be written to subdir C:\FILES\ and existing file(s) will
  167.    be overwritten. Names and filesizes of received files will be written
  168.    to list-file UPLOADED.LST.
  169.  
  170.   ZSX port 2 speed 19200 line 2400 o sg *.*
  171.    send all files in the current directory using Ymodem-G via port 2. The
  172.    modem to PC baudrate is 19200 bps, but the actual linerate of 2400 bps
  173.    will be used for estimated transfer time and throughput calculations.
  174.  
  175.   ZSX port 1 speed 2400 f sx C:\FILES\*.*
  176.    Send all files in the current directory using Xmodem via port 2 at 2400 bps.
  177.    Because Xmodem and Ymodem (rather, Xmodem-1K) are not batch protocols, ZSX
  178.    will send the name of the file about to be sent as a readable string to the
  179.    receiver's end, right before the file is transmitted.
  180.    Use relaxed ACK/NACK timing.
  181.  
  182.   Notice: ZSX reports the relative throughput at the end of the transfer,
  183.   using either the Modem to PC baudrate or (if specified) the actual modem
  184.   to modem line rate.
  185.   Contrary to other popular transfer utiltities, ZSX reports the ACTUAL
  186.   efficiency, including the protocol's overhead (init handshake, header
  187.   block transfer and EOF handshake). Thus the relative througput reported
  188.   will be slightly less (but more honest) when compared to other protocol
  189.   drivers.
  190.   Because the granularity of the throughput timer is 1 second, transferring
  191.   small files (i.e. transfers that take less then about 30 seconds) may
  192.   report an efficiency of over 100% or an efficiency that seems way to low.
  193.  
  194.  
  195.   COPYRIGHTS AND SUCH
  196.   ===================
  197.   Apart from the rights on those parts of the code by Omen Tech and System
  198.   Enhancement Associates, this program is free of idiosyncratic license
  199.   requirements. You may use this program in a non-commercial environment in
  200.   whatever way you like. You may use it as a doorstop or feed it to your dog.
  201.  
  202.   Some product names mentioned in this document may be registered trademarks
  203.   of their respective owners.
  204.  
  205.   Use in a commercial environment may require you to enter a license agreement
  206.   with either Omen Tech or System Enhancement Associates. I don't want to get
  207.   involved in all sorts of legal discussions, so ask them and don't you dare
  208.   to bug me about it!
  209.  
  210.   However, regisation of this product is required! Simply register by
  211.   sending a postcard to:
  212.     J.R. Terpstra
  213.     P.O.Box 66
  214.     1462 ZH  Beemster
  215.     The Netherlands
  216.  
  217.   Registration won't buy you anything and you're not entitled to anything
  218.   special. I just happen to like postcards :-)
  219.  
  220.  
  221.   RELEASE NOTES
  222.   =============
  223. | December 20, 1993 - v3.01
  224. | Two fixes:
  225. |  Fixed wrong lay-out in the report file. This would cause some versions
  226. |  of RBBS-PC to report very weird bps/cps ratios to the user. Thanks to
  227. |  Benny Carr for reporting the problem.
  228. |
  229. |  ZSX/2 now honors the TBUF and RBUF environment variables to set the size
  230. |  of the internal async buffers. The buffer sizes default to a maximum of
  231. |  4096 bytes and can be made smaller by including one or both of the
  232. |  following lines in your OS/2 CONFIG.SYS or your main BBS .CMD file:
  233. |
  234. |    SET TBUF=<value>
  235. |    SET RBUF=<value>
  236. |
  237. |  where value is a multiple of 2. TBUF sets the Transmit buffer size, RBUF
  238. |  sets the receive buffer size. This acts compatible with OS/2 versions
  239. |  of BinkleyTerm that also support the TBUF and RBUF environment settings.
  240.  
  241.  
  242.   November 16, 1993 - v3.00
  243.   There are now 3 flavors of ZSX:
  244.    ZSX.EXE      - straight DOS executable
  245.    ZSXW.EXE     - DOS executable with windowing user interface
  246.    ZSX2.EXE     - 16 bit OS/2 executable
  247.   Improved SEAlink and Zmodem performance by 15..20%
  248.   Fixed some cosmetics and some minor bugs.
  249.  
  250.   November 26, 1991 - v2.40
  251.   Fixed problem with SEAlink EOT/EOF handshake.
  252.   Fixed receiver CRC recovery problem at speeds above 9600 bps.
  253.   Receiver timing now more forgiving.
  254.  
  255.   November 21, 1991 - v2.32
  256.   Fixed problem with garbled SEAlink blocknumbers that would make SEAlink
  257.   transfers go in an endless NAK loop.
  258.   Fixed initial ACK/NAK handshake for Sealink and Ymodem.
  259.  
  260.   November 19, 1991 - v2.31
  261.   Fixed problem in receive CRC routines (it turns out that Microsoft's
  262.   optimizing C compiler doesn't always "optimize" :-(
  263.  
  264.   November 17, 1991 - v2.30
  265.   Fixed EOF handshake in Ymodem-Batch and Ymodem-G.
  266.   Receivers preference for Xmodem-CRC or Xmodem-Checksum now automatically
  267.   detected properly.
  268.   Fixed Xmitter timeout problem when sending at 300 or 1200 bps.
  269.  
  270.   Oktober 9, 1991 - v2.21  **BETA**
  271.   Added QUIET option to suppress closing banner at end of transfer.
  272.   Added variable window size option for SEAlink send.
  273.   Fixed bug in automatic detection of SEALink Overdrive/non-Overdrive receive.
  274.   Fixed bug in relaxed ACK/NACK timing.
  275.  
  276.   September 27, 1991 - v2.20  **BETA**
  277.   Changed the low level XMIT routines. SEAlink/Overdrive and Zmodem now
  278.   run at an efficinecy of over 95%, even at 38400 bps.
  279.   ZSX now returns DOS ERRORLEVEL 0 if at least 1 file was transferred
  280.   succesfully, or ERRORLEVEL=1 if the transfer was aborted or carrier was
  281.   lost during transfer.
  282.  
  283.   July 27th, 1991 - v2.10
  284.   I rather not talk about that, since v 2.10 was severely brain damaged....
  285.  
  286.   June 24, 1991 - v2.01
  287.   Fixed a minor bug in carrier detect of Zmodem routines
  288.  
  289.   June 16, 1990 - v2.00
  290.   Added Zmodem/Compressed (RLE compression) and Zmodem variable headers.
  291.   Changed all CRC routines to assembler.
  292.   Changed logging, ZSX now writes a DSZ style logfile.
  293.   Bugs fixed:
  294.   - SEAlink/Overdrive timeout problem.
  295.   - Zmodem receive failure on last block.
  296.  
  297.   December 1, 1990 - v1.70
  298.   After several beta-test releases, version 1.70 is now released to the
  299.   general public. The documentation is a bit sparse and the program needs
  300.   some minor cosmetic fixes, but the program is functional.
  301.  
  302.  
  303.   KUDOS
  304.   =====
  305.   ZSX was based on (and contains parts of) Chuck Forsberg's Zmodem routines
  306.   and SEAlink routines by Thom Henderson. Some of the ideas in this program
  307.   were blatantly stolen from Opus' Zmodem download driver and BinkleyTerm.
  308.   You have to thank the original authors for whatever quality is present in
  309.   this program. I merely glued the existing pieces together as a learning
  310.   project and to sink my teeth in some C code.
  311.  
  312.   Many thanks to Doug Azzarito for scrutinizing the code. Also my thanks to
  313.   Heiko Rommelman for sending me the Proficient C book, which was the main
  314.   reason for me to start programming in C. Though my wife didn't understand
  315.   why I wanted to learn yet another programming language, I think it was
  316.   worth doing it.....
  317.  
  318.  
  319.               It is not :-) nor :-( nor ;-) it is C:\>
  320.  
  321.  
  322.                                                 <JT>
  323.  
  324.  
  325.  
  326.  
  327.