home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / UTILITY / CEXYZ.DOC < prev    next >
Text File  |  1993-08-16  |  18KB  |  418 lines

  1.  
  2.                                 CE-XYZ v1.00
  3.                       A File Transfer Protocol Module
  4.            Supporting Xmodem, Ymodem, Zmodem, and their variants
  5.  
  6.                 Copyright (C) 1993 by Cutting Edge Computing
  7.                             All Rights Reserved.
  8.  
  9.  
  10. ALSO AVAILABLE
  11. --------------
  12. An OS/2 version of CE-XYZ is also available.  CE-XYZ/2 is a full 32-bit
  13. protocol module for OS/2 version 2.0 and higher.  XYZ2-100.ZIP is available
  14. from FidoNet node 1:2240/176, or by calling the BBS at 1-313-743-8464.
  15.  
  16.  
  17. LICENSE AGREEMENT
  18. -----------------
  19. This program is free for non-commercial use.  Commercial users are granted
  20. a license to use CE-XYZ if, and only if, the user has purchased a license
  21. to use The Blue Wave Offline Mail Door.  Your Blue Wave Offline Mail Door
  22. Registration Certificate is sufficient "proof" of license to use this
  23. protocol module.
  24.  
  25. If you are a commercial user and would like to use this protocol module for
  26. other purposes, please write to the address below with contact information
  27. so that we may negotiate a license fee.
  28.  
  29. Software authors that would like to distribute CE-XYZ in their distribution
  30. packages will be granted a license to do so for a reasonable, one-time
  31. licensing fee.  Please contact me at the address below for more
  32. information.  Special hooks are provided in the developer's edition for
  33. executing CE-XYZ directly from your applications, no matter what programming
  34. language you may be using.  Source code is NOT provided - however any minor
  35. cosmetic/color changes, default settings, and a customized title banner can
  36. be done with no extra fee (other than the licensing/redistribution fee).  All
  37. licensing is done with a one-time flat fee.  There are no "per-copy" or
  38. "royalty" fees involved.
  39.  
  40. Cutting Edge Computing
  41. PO Box 90476
  42. Burton, MI  48509
  43.  
  44. FidoNet : 1:2240/176
  45. InterNet: george.hatchew@f176.n2240.z1.fidonet.org
  46.  
  47.  
  48. WARRANTY
  49. --------
  50. There is no warranty for this software, either expressed or implied.  The
  51. user assumes full responsibility for the use of this software.
  52.  
  53.  
  54. SUPPORT
  55. -------
  56. Because this is a "free for non-commercial use" program, no support will be
  57. given for this program, except in the following cases:
  58.  
  59.   1)  User has also registered one of The Blue Wave Offline Mail Doors,
  60.       produced by Cutting Edge Computing.
  61.  
  62.   2)  To commercial users who have paid the licensing fee to Cutting Edge
  63.       Computing.
  64.  
  65.   3)  BBS authors, after they have paid the one-time licensing fee to
  66.       Cutting Edge Computing.
  67.  
  68. General help with this protocol engine can be obtained through the
  69. International FidoNet BLUEWAVE Echo.  Netmail (except in the above cases)
  70. will not be answered, but bug reports will be worked on.
  71.  
  72.  
  73.  
  74.  
  75. PURPOSE
  76. -------
  77. The purpose of this program is to provide a file transfer protocol module
  78. specifically designed for use with The Blue Wave Offline Mail Door.
  79.  
  80. Although the 'windowing' of the transfer screen is designed so that the
  81. current BW mail doors' user status is left on the screen (which is why I
  82. say it is BW-door specific), it can be used in the place of ANY external
  83. protocol module, such as DSZ and GSZ.
  84.  
  85. The file transfer protocol module is excellent for use on BBS systems, as
  86. it provides security against users uploading files to a remote-defined
  87. path on the BBS system.  (The default, and only, mode of batch uploading
  88. is the same as DSZ/GSZ's "restrict" keyword).  Users will not be able to
  89. upload files to any path except for the path that you specify.  Also, the
  90. FTP does not allow the "overwriting" of an existing file.
  91.  
  92.  
  93. DESCRIPTION
  94. -----------
  95. The file transfer protocol (named "CE-XYZ", and referred to as the FTP
  96. throughout the rest of the document) currently supports the following
  97. protocols:
  98.  
  99.   - Zmodem with 32-bit CRC   1024 byte subpackets
  100.   - Zmodem with 16-bit CRC   1024 byte subpackets
  101.   - ZedZap with 32-bit CRC   8192 byte subpackets
  102.   - Ymodem-Batch              128 byte blocks (True Ymodem)
  103.   - Ymodem-1K                1024 byte blocks
  104.   - Ymodem-G                 1024 byte blocks
  105.   - Xmodem-1K                1024 byte blocks
  106.   - Xmodem CRC/Checksum (CRC is the default, fallback to Checksum if remote
  107.                         end doesn't seem to like the CRC method)
  108.  
  109. The FTP can use 3 different methods of "talking" to your serial port:
  110.   - FOSSIL communications (most compatible with FidoNet systems, default)
  111.   - Direct communications (standard for most comm programs)
  112.   - Interrupt driven communications (fastest, takes over INT 14h)
  113.  
  114. Because the FTP can utilize a FOSSIL driver, it can support shared IRQs
  115. (unlike DSZ/GSZ) and "non-standard" IRQs if the FOSSIL driver has the
  116. capability (X00 supports shared IRQs).
  117.  
  118. The FTP is command line driven;  it must be invoked with command line
  119. parameters specifying, at the very least, the locked speed of the port
  120. and the protocol transfer method.
  121.  
  122. In order to accomodate terminal and BBS programs that require the use of
  123. a DSZ-style log file, the FTP will create/append to a DSZLOG-type log file
  124. if the following environment variable is set:
  125.  
  126.   SET CEXYZLOG=cexyz.log
  127.   SET DSZLOG=dsz.log
  128.  
  129. If the CEXYZLOG environment variable is not set, then the driver looks for
  130. the DSZLOG environment variable.  (CEXYZLOG always has precedence over
  131. DSZLOG).  If the DSZLOG environment variable is not set, then no protocol
  132. logging will take place.  The log file generated by CE-XYZ is 100% DSZ
  133. compatible.
  134.  
  135.  
  136. COMMAND LINE PARAMETERS
  137. -----------------------
  138. In order to successfully invoke the FTP, you must use at least the
  139. following command line parameters:
  140.  
  141.   /L or /B to specify either the locked speed or the line speed (or both).
  142.   /R or /S to specify send/receive mode
  143.   /P, if your modem is not on COM1 to specify the port.
  144.  
  145. Below is a description of all available command line parameters.  Any
  146. command line parameter that does not start with a / or a - is assumed to
  147. be the file name(s) to send or receive.  More on file name parameters in
  148. the next section.  All command lines are case insensitive (capital
  149. letters and lower-case letters will do the same thing.)
  150.  
  151.  
  152. * EXAMPLE COMMAND LINE PARAMETERS ARE GIVEN AT THE VERY END OF THIS DOCUMENT *
  153.  
  154.  
  155.   /T<number>   -  By default, the FTP places its window and other
  156.                   information beginning on line number 8 of the display in
  157.                   order to "fit into" the window left by BW mail doors.  By
  158.                   using /T<number>, you can tell the FTP to place the first
  159.                   line of the window beginning on a different line.
  160.  
  161.                   /T1 through /T8 are valid.  If <number> is greater than
  162.                   8, 8 is used.  If <number> is less than 1, 1 is used.
  163.  
  164.   /N<1st_last> -  If you pass a User Name to the protocol engine, the name
  165.                   will be displayed on the screen so you know who is online
  166.                   (mainly for BBS usage).
  167.  
  168.                   /NGeorge_Hatchew would display my name on the left-most
  169.                   column of the display screen.  Please note that an
  170.                   underscore between names IS REQUIRED.
  171.  
  172.   /P<number>   -  Specifies the COM port to use for the file transfer.  If
  173.                   no port is specified, the driver defaults to COM1.  To
  174.                   invoke the driver on COM2, use "/p2".
  175.  
  176.   /L<number>   -  The LOCKED baud rate of the transfer session, if the serial
  177.                   port should be locked.  High speed modem users should use
  178.                   one of /L19200, /L38400, /L57600, or possibly /L9600.  If
  179.                   you do not specify the locked baud rate, the driver will
  180.                   try to open the port at the rate specified with the /B
  181.                   parameter.
  182.  
  183.   /B<number>   -  The actual line speed of the current connection.  If /L
  184.                   is also specified, /B is used for time and CPS
  185.                   estimations ONLY. If you do not have a locked serial
  186.                   port, you should specify the connect rate of modem with
  187.                   /B.  /B300, /B1200, /B2400, /B7200, etc. are some
  188.                   examples.
  189.  
  190.                   The use of the /B command line parameter is not
  191.                   absolutely required if you use a /L command line
  192.                   parameter, but transfer estimations will be wrong if you
  193.                   do not.  The use of /B with /L is much like the
  194.                   "estimate" command in DSZ/GSZ.
  195.  
  196.   /R<protocol> -  Use the /R parameter to receive files via one of the
  197.                   supported protocols.  The following /R switches are
  198.                   supported:
  199.  
  200.                   /Rx    - Receive file with Xmodem-CRC (Checksum fallback)
  201.                   /Rxcrc - Receive file with Xmodem-CRC
  202.                   /Rxchk - Receive file with Xmodem-Checksum
  203.                   /Rx1k  - Receive file with Xmodem-CRC (1024 byte blocks).
  204.                   /Ry    - Receive file(s) with Ymodem-Batch
  205.                   /Ry1k  - Receive file(s) with Ymodem-Batch (1024 byte blks).
  206.                   /Ryg   - Receive file(s) with Ymodem-G
  207.                   /Rz    - Receive file(s) with Zmodem
  208.                   /Rzap  - Receive file(s) with ZedZap (a mutant Zmodem that
  209.                            transfers up to 8K in one subpacket).
  210.  
  211.   /S<protocol> -  Use the /S parameter to send files via one of the
  212.                   supported protocols.  The following /S switches are
  213.                   supported:
  214.  
  215.                   /Sx    - Send file with Xmodem-CRC (Checksum fallback)
  216.                   /Sxcrc - Send file with Xmodem-CRC
  217.                   /Sxchk - Send file with Xmodem-Checksum
  218.                   /Sx1k  - Send file with Xmodem-CRC (1024 byte blocks).
  219.                   /Sy    - Send file(s) with Ymodem-Batch
  220.                   /Sy1k  - Send file(s) with Ymodem-Batch (1024 byte blks).
  221.                   /Syg   - Send file(s) with Ymodem-G
  222.                   /Sz    - Send file(s) with Zmodem
  223.                   /Szap  - Send file(s) with ZedZap
  224.  
  225.   /U<method>   -  The /U command line parameter tells the FTP which serial
  226.                   communications method to use.  The <method> can be one of
  227.                   the following:
  228.  
  229.                   /Ufos  -  Use the installed FOSSIL for port communications.
  230.                             This is the default mode.  If you want FOSSIL
  231.                             communications, you need not specify a /U
  232.                             parameter.
  233.  
  234.                   /Udir  -  Use direct (standard) communications.  Next to
  235.                             having an installed, working FOSSIL driver, this
  236.                             method is the most compatible.
  237.  
  238.                   /Ufas  -  Use the FAST, interrupt driven communications
  239.                             routines.  This may not be compatible with all
  240.                             serial cards and/or BIOS.  The FTP will "take
  241.                             over" INT 14h, and restore the previous 14h
  242.                             vector upon termination.  (This should allow you
  243.                             to use /Ufas, even if you also have a FOSSIL
  244.                             driver installed.  A FOSSIL "int 14 recapture"
  245.                             should *not* be necessary upon normal
  246.                             termination.  If you experience lockups, it is
  247.                             most likely interference from other TSR
  248.                             programs or system incompatibilities.  In this
  249.                             case, use /Udir instead.
  250.  
  251.  
  252.  
  253. Passing File Names to the FTP
  254. -----------------------------
  255. Any command line parameter not preceeded with a "/" or a "-" is assumed
  256. to be the file name to send or receive.
  257.  
  258.  
  259.     SEND Mode
  260.     ---------
  261.     To send files with the FTP, simply enter the name(s) of the files you
  262.     would like to send on the command line, with a full
  263.     drive:\path\filename.exe specification, if the file is not in the
  264.     current directory.  In SEND mode, a file name specification is
  265.     required.
  266.  
  267.     Wildcards (? and *) on the SEND command line are supported.  If the
  268.     requested protocol is a batch protocol (all but Xmodem and Xmodem-1K),
  269.     the FTP will locate all matches to the wildcard specification and then
  270.     begin a batch send.  If the requested protocol is Xmodem or Xmodem-1K,
  271.     only the first directory match to the wildcard specification will be
  272.     sent.  (Xmodem and its variants can only send or receive one file at a
  273.     time).
  274.  
  275.     In addition to wildcards, file LISTS are supported.  Suppose you had a
  276.     straight-ASCII text file containing the following:
  277.  
  278.     --- Contents of FILE.LST ---
  279.     D:\FILES\UPLOAD\ZIPPER.ZIP
  280.     D:\FILES\UPLOAD\FTP.EXE
  281.     E:\CPROG\MYFILE.C
  282.     H:\FD\NODELIST\NODELIST.*
  283.     C:\BWAVE\*.BW
  284.     ----- End of FILE.LST ------
  285.  
  286.     To send all of the files contained in this list, place an "@" symbol in
  287.     front of the list file name, as in:
  288.  
  289.     CEXYZ.EXE /P2 /L38400 /B14400 /Sz @FILE.LST
  290.  
  291.     Or, if FILE.LST is not in the current directory, use:
  292.  
  293.     CEXYZ.EXE /P2 /L38400 /B14400 /Sz @E:\SOMEWHER\FILE.LST
  294.  
  295.  
  296.     RECEIVE Mode
  297.     ------------
  298.     If the FTP is requested to receive files via one of the batch
  299.     protocols, a file name to receive is NOT required on the command line.
  300.     Files received will be placed in the current directory with the file
  301.     name given by the sending system.
  302.  
  303.     If you would like to place received files in a directory other than the
  304.     current directory in batch protocol mode, simply enter the name of the
  305.     directory on the command line to receive the file(s) to:
  306.  
  307.     CEXYZ /P1 /B2400 /Rz E:\Files\Download
  308.  
  309.     If the directory E:\Files\Download exists, the FTP will place the
  310.     received files there.
  311.  
  312.     Supposing you are downloading a file called THISFILE.ZIP via Zmodem,
  313.     and you would like to place it in the directory C:\FILES with the file
  314.     name of MY-DL.ZIP, simply specify the complete file name.  The file
  315.     name received from the sender will be overriden.  Example:
  316.  
  317.     CEXYZ.EXE /B1200 /Rz C:\Files\My-DL.Zip
  318.  
  319.     If you are receiving files via Xmodem or Xmodem-1K, a full file name
  320.     specification is REQUIRED on the command line, since these 2 protocols
  321.     do not support the passing of a file name.  Example:
  322.  
  323.     CEXYZ /P4 /L38400 /B2400 /Rx E:\Files\Download\Myfile.arj
  324.  
  325.  
  326. EXAMPLE COMMAND LINES
  327. ---------------------
  328. Modem on COM4, locked at 38400 bps, connected at 9600 bps with a user,
  329. receiving a batch upload with Ymodem-G to D:\BBS\FILES\UPLOAD directory:
  330.  
  331.     CEXYZ.EXE /l38400 /b9600 /p4 /ryg d:\bbs\files\upload
  332.  
  333. Modem on COM1 (default), no locked port, connected at 1200bps, receiving
  334. a file via Xmodem:
  335.  
  336.     CEXYZ.EXE /b1200 /rx filename.ext
  337.  
  338. Modem on COM1, no locked port, connected at 2400bps, receiving files via
  339. Zmodem to the current directory:
  340.  
  341.     CEXYZ.EXE /b2400 /rz
  342.  
  343.  
  344.  
  345.  
  346. SAMPLE ENTRIES INTO THE BWUTILS PROTOCOL EDITOR
  347. -----------------------------------------------
  348. If your port is not locked, you must leave out the /L command line
  349. parameters shown below.  If your port is locked at a different BPS rate,
  350. you must, of course, specify *your* locked port speed in the place of
  351. 38400.
  352.  
  353.  
  354.   *************************************************************************
  355.   If CEXYZ.EXE is not on your DOS PATH statement, you must specify the full
  356.   path in front of "cexyz" shown below.  IT IS NOT ENOUGH TO HAVE CEXYZ
  357.   in your BW mail door directory, because the door changes directories on
  358.   an upload in order to support unregistered-DSZ restrictions on supplying
  359.   an upload path!
  360.   *************************************************************************
  361.  
  362.   Zmodem:
  363.   -------
  364.   Protocol Hotkey : Z                                Default: Yes
  365.   Protocol Title  : Zmodem                           Batch  : Yes
  366.   Send CommandLine: cexyz.exe /p%P /L38400 /b%B /sz %F
  367.   Recv CommandLine: cexyz.exe /p%P /L38400 /b%B /rz %F
  368.  
  369.   ZedZap:
  370.   -------
  371.   Protocol Hotkey : 8                                Default: No
  372.   Protocol Title  : ZedZap (8k Zmodem)               Batch  : Yes
  373.   Send CommandLine: cexyz /p%P /L38400 /b%B /szap %F
  374.   Recv CommandLine: cexyz /p%P /L38400 /b%B /rzap %F
  375.  
  376.   Ymodem:
  377.   -------
  378.   Protocol Hotkey : Y                                Default: No
  379.   Protocol Title  : Ymodem                           Batch  : Yes
  380.   Send CommandLine: cexyz /p%P /L38400 /b%B /sy %F
  381.   Recv CommandLine: cexyz /p%P /L38400 /b%B /ry %F
  382.  
  383.   Ymodem-1K:
  384.   ----------
  385.   Protocol Hotkey : K                                Default: No
  386.   Protocol Title  : Ymodem-1K                        Batch  : Yes
  387.   Send CommandLine: cexyz /p%P /L38400 /b%B /sy1k %F
  388.   Recv CommandLine: cexyz /p%P /L38400 /b%B /ry1k %F
  389.  
  390.   Ymodem-G:
  391.   ---------
  392.   Protocol Hotkey : G                                Default: No
  393.   Protocol Title  : Ymodem-G                         Batch  : Yes
  394.   Send CommandLine: cexyz /p%P /L38400 /b%B /syg %F
  395.   Recv CommandLine: cexyz /p%P /L38400 /b%B /ryg %F
  396.  
  397.   1K-Xmodem:
  398.   ----------
  399.   Protocol Hotkey : 1                                Default: No
  400.   Protocol Title  : Xmodem-1K                        Batch  : No
  401.   Send CommandLine: cexyz /p%P /L38400 /b%B /sx1k %F
  402.   Recv CommandLine: cexyz /p%P /L38400 /b%B /rx1k %F
  403.  
  404.   Xmodem-CRC:
  405.   -----------
  406.   Protocol Hotkey : X                                Default: No
  407.   Protocol Title  : Xmodem                           Batch  : No
  408.   Send CommandLine: cexyz /p%P /L38400 /b%B /sx %F
  409.   Recv CommandLine: cexyz /p%P /L38400 /b%B /rx %F
  410.  
  411.   Xmodem-Checksum:
  412.   ----------------
  413.   Protocol Hotkey : C                               Default: No
  414.   Protocol Title  : Xmodem-Checksum                 Batch  : No
  415.   Send CommandLine: cexyz /p%P /L38400 /b%B /sxchk %F
  416.   Recv CommandLine: cexyz /p%P /L38400 /b%B /rxchk %F
  417.  
  418.