Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Synchronet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Main
Synchronet
Commits
4ce1ef0f
Commit
4ce1ef0f
authored
17 years ago
by
rswindell
Browse files
Options
Downloads
Patches
Plain Diff
Document new options and behavior of SEXYZ.
Update credits.
parent
8cd5e8f2
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/sexyz.txt
+108
-85
108 additions, 85 deletions
docs/sexyz.txt
with
108 additions
and
85 deletions
docs/sexyz.txt
+
108
−
85
View file @
4ce1ef0f
Synchronet External X/Y/Z
modem
(SEXYZ) File Transfer Protocol Driver
Synchronet External X/Y/Z
MODEM
(SEXYZ) File Transfer Protocol Driver
--------------------------------------------------------------------
$Id$
...
...
@@ -7,8 +7,8 @@ Overview
--------
SEXYZ was developed as a native (32-bit) TCP/socket-based replacement for the
16-bit DOS file transfer drivers (e.g. FDSZ, CE-XYZ, etc.) that we've been
stuck with on
Win32
BBSes for FAR too long. While SEXYZ was designed with
Synchronet BBSes in mind, it should also work with other
Win32*
BBS packages
stuck with on
32-bit
BBSes for FAR too long. While SEXYZ was designed with
Synchronet BBSes in mind, it should also work with other
32-bit
BBS packages
that have the ability to pass socket descriptors to external file transfer
protocol drivers.
...
...
@@ -24,15 +24,12 @@ SEXYZ has several advantages over legacy drivers like FDSZ and CE-XYZ:
o Socket-based (no need for FOSSIL drivers or virtual COM ports/UARTs)
o Multi-tasking friendly (does not needlessly consume CPU cycles)
o Supports long filenames (e.g. not just DOS "8.3" formatted names)
o Supports Y
modem
-G (FDSZ does not)
o Handles Telnet IAC escaping and option negotiations
o Supports Y
MODEM-G and XMODEM
-G (FDSZ does not)
o Handles Telnet IAC escaping and option negotiations
(optionally)
o Transfers files over fast connections (e.g. 100KB/sec) without issue
o Actively developed and supported
o Open source (at cvs.synchro.net)!
* SEXYZ can also be built for use (natively) on Linux and other Unix variants
(e.g. FreeBSD).
Distribution
------------
...
...
@@ -53,9 +50,12 @@ ftp://ftp.synchro.net
ftp://vert.synchro.net
telnet://vert.synchro.net
SEXYZ can also be built from the C source code for use (natively) on Linux
and other Unix variants (e.g. FreeBSD).
For a client implementation of SEXYZ, use the SyncTerm Telnet/RLogin/SSH
terminal program (http://syncterm.
bbsdev.
net/), available for many platforms,
including Win32
and *nix
.
terminal program (http://syncterm.net/), available for many platforms,
including Win32
, *nix, and Mac OS-X
.
Command-line Syntax
...
...
@@ -67,22 +67,25 @@ usage: sexyz <socket> [-opts] <cmd> [file | path | @list]
socket = TCP socket descriptor (or leave blank for "stdio" mode on Unix)
opts = -y to overwrite files when receiving
-o disable Zmodem CRC-32 mode (use CRC-16)
-s disable Zmodem streaming (Slow Zmodem)
-2 set maximum Zmodem block size to 2K
-4 set maximum Zmodem block size to 4K
-8 set maximum Zmodem block size to 8K (ZedZap)
opts = -y allow overwriting of existing files when receiving
-o disable ZMODEM CRC-32 mode (force CRC-16 mode instead)
-s disable ZMODEM streaming (Slow ZMODEM)
-k enable X/YMODEM-1K send mode
-c enable XMODEM-CRC receive mode
-g enable X/YMODEM-G receive mode (no error recovery)
-2 set maximum ZMODEM block size to 2K
-4 set maximum ZMODEM block size to 4K
-8 set maximum ZMODEM block size to 8K (ZedZap)
-! to pause after abnormal exit (error)
-telnet to enable Telnet mode (the default)
-rlogin to enable RLogin (pass-through) mode
cmd = v to display detailed version information
sx to send X
modem
rx to rec
v Xmodem
sX to send X
modem
-1K rc to rec
v Xmodem
-CRC
sy to send Y
modem
ry to rec
v Ymodem
sY to send Y
modem
-1K rg to rec
v Ymodem
-G
sz to send Z
modem
rz to rec
v Zmodem
sx to send X
MODEM
rx to rec
eive XMODEM
sX to send X
MODEM
-1K rc to rec
eive XMODEM
-CRC
sy to send Y
MODEM
ry to rec
eive YMODEM
sY to send Y
MODEM
-1K rg to rec
eive YMODEM
-G
sz to send Z
MODEM
rz to rec
eive ZMODEM
file = filename to send or receive
path = directory to receive files into
...
...
@@ -93,11 +96,13 @@ NOTE: SEXYZ actually supports either "+list" or "@list" syntax for specifying
a file list on the command-line. If the list file doesn't exist, it'll
treat the '+' or '@' as part of the filename to send or receive.
NOTE: SEXYZ also supports "rz/sz" command-line syntax for some commands.
Examples: "sexyz -c rx" to recv Xmodem-CRC
"sexyz -k sx" to send Xmodem-1K
"sexyz rb" to recv Ymodem
"sexyz -k sb" to send Ymodem-1K
NOTE: SEXYZ also supports "rz/sz style" command-line syntax for some commands.
Examples: "sexyz -c rx" to recv XMODEM-CRC (same as "sexyz rc")
"sexyz -k sx" to send XMODEM-1K (same as "seyxz sX")
"sexyz rb" to recv YMODEM (same as "sexyz ry")
"sexyz -k sb" to send YMODEM-1K (same as "sexyz sY")
"sexyz -g ry" to recv YMODEM-G (same as "sexyz rg")
"sexyz -g rx" to recv XMODEM-G
Installation for Synchronet v3.12-Win32
...
...
@@ -112,7 +117,7 @@ SCFG:File Options->Transfer Protocols:
[File Transfer Protocol]
1: Mnemonic (Command Key) X
2: Protocol Name X
modem
(SEXYZ)
2: Protocol Name X
MODEM
(SEXYZ)
3: Access Requirements
4: Upload Command Line %!sexyz%. %h -%p rC %f
5: Download Command Line %!sexyz%. %h -%p sX %f
...
...
@@ -125,7 +130,7 @@ SCFG:File Options->Transfer Protocols:
[File Transfer Protocol]
1: Mnemonic (Command Key) Y
2: Protocol Name Y
modem
(SEXYZ)
2: Protocol Name Y
MODEM
(SEXYZ)
3: Access Requirements
4: Upload Command Line %!sexyz%. %h -%p ry %f
5: Download Command Line %!sexyz%. %h -%p sY %f
...
...
@@ -138,7 +143,7 @@ SCFG:File Options->Transfer Protocols:
[File Transfer Protocol]
1: Mnemonic (Command Key) G
2: Protocol Name Y
modem
-G (SEXYZ)
2: Protocol Name Y
MODEM
-G (SEXYZ)
3: Access Requirements
4: Upload Command Line %!sexyz%. %h -%p rg %f
5: Download Command Line %!sexyz%. %h -%p sY %f
...
...
@@ -151,7 +156,7 @@ SCFG:File Options->Transfer Protocols:
[File Transfer Protocol]
1: Mnemonic (Command Key) Z
2: Protocol Name Z
modem
(SEXYZ)
2: Protocol Name Z
MODEM
(SEXYZ)
3: Access Requirements
4: Upload Command Line %!sexyz%. %h -%p rz %f
5: Download Command Line %!sexyz%. %h -%p sz %f
...
...
@@ -166,7 +171,7 @@ Optional/Advanced:
[File Transfer Protocol]
1: Mnemonic (Command Key) 8
2: Protocol Name Z
modem
-8K (SEXYZ)
2: Protocol Name Z
MODEM
-8K (SEXYZ)
3: Access Requirements
4: Upload Command Line %!sexyz%. %h -%p rz %f
5: Download Command Line %!sexyz%. %h -%p -8 sz %f
...
...
@@ -177,8 +182,8 @@ Optional/Advanced:
10: Supports DSZLOG Yes
11: Socket I/O Yes
NOTE: It is suggested you remove existing FDSZ
or
CE-XYZ transfer
protocol
entries as they are no longer needed.
NOTE: It is suggested you remove existing FDSZ
,
CE-XYZ
, or sz/rz
transfer
protocol
entries as they are no longer needed.
Example configuration for Mystic v1.08-Win32
...
...
@@ -187,14 +192,14 @@ Example configuration for Mystic v1.08-Win32
A. Active : Yes
B. HotKey : Z
C. Description: Z
modem
C. Description: Z
MODEM
D. Batch : No
E. Send Cmd : c:\mystic\prots\sexyz.exe %0 sz %3
F. Receive Cmd: c:\mystic\prots\sexyz.exe %0 rz %3
A. Active : Yes
B. HotKey : Z
C. Description: Z
modem
batch
C. Description: Z
MODEM
batch
D. Batch : Yes
E. Send Cmd : c:\mystic\prots\sexyz.exe %0 sz @%3
F. Receive Cmd: c:\mystic\prots\sexyz.exe %0 rz %3
...
...
@@ -204,7 +209,7 @@ Example configuration for EleBBS-Win32
--------------------------------------
(provided by Mike Ehlert, aka pcm)
Name Z
modem
(SEXYZ)
Name Z
MODEM
(SEXYZ)
Key Z
Ext ctl file No
Batch Yes
...
...
@@ -222,7 +227,7 @@ Log desc word 0
You will need to have the environment variable DSZLOG set to DSZ.LOG.
It should *not* have a path of course, so that it's created in the current
nodes directory.
node
'
s directory.
Once you define that under control panel > system > env variables > system
variables, be sure to close the window running eleserv or telsrv and reopen
...
...
@@ -240,9 +245,9 @@ Synchronet for Unix (prior to v3.14) did not support socket-based file
transfer protocols, so SEXYZ is only currently supported on Synchronet for
Unix (v3.13 and older) in "stdio" mode.
You can
enabl
e "stdio" mode in SEXYZ by removing '%h' (the socket descriptor)
You can
us
e "stdio" mode in SEXYZ by removing '%h' (the socket descriptor)
from the above command-lines. If you're using Synchronet for Unix v3.14 or
later, socket I/O mode is preferred (do not
enabl
e "stdio" mode).
later, socket I/O mode is preferred (do not
us
e "stdio" mode).
Optional Initialization File (sexyz.ini)
...
...
@@ -274,23 +279,29 @@ Example .ini file (with default values given):
OutbufDrainTimeout=10 ; milliseconds before auto-flush
ProgressInterval=1 ; interval (in seconds) of progress display
[Xmodem]
SendTimeout=10 ; seconds
RecvTimeout=10 ; seconds
ByteTimeout=3 ; seconds
AckTimeout=10 ; seconds
BlockSize=1024 ; 128 or 1024
MaxErrors=10
G_Delay=1 ; millisecond yield between sent Ymodem-G blocks
[Zmodem]
[XMODEM]
SendTimeout=10 ; seconds
RecvTimeout=10 ; seconds
ByteTimeout=3 ; seconds
AckTimeout=10 ; seconds
BlockSize=1024 ; 128 or 1024
MaxBlockSize=1024 ; 128 or 1024
MaxErrors=9
G_Delay=1 ; millisecond yield between sent X/YMODEM-G blocks
SendG=TRUE ; Support G-mode for X/YMODEM sends
SendCRC=TRUE ; Support CRC-16 error detection for X/YMODEM sends
[YMODEM]
FallbackToXMODEM=0 ; Failed send attempts before falling back to XMODEM
[ZMODEM]
InitTimeout=10 ; seconds
SendTimeout=15 ; seconds
RecvTimeout=20 ; seconds
CrcTimeout=60 ; seconds
BlockSize=1024 ; 1024 is usually best to start with
MaxBlockSize=1024 ; 1024 is "true" Z
modem
, 8192 for Z
modem
-8K (ZedZap)
MaxErrors=
10
; maximum number of consecutive errors
MaxBlockSize=1024 ; 1024 is "true" Z
MODEM
, 8192 for Z
MODEM
-8K (ZedZap)
MaxErrors=
9
; maximum number of consecutive errors
RecvBufSize=0 ; specify non-zero for partial streaming receives
Streaming=TRUE ; set to FALSE to disable streaming (block-at-a-time)
CRC32=TRUE ; set to FALSE to force CRC-16 instead
...
...
@@ -306,31 +317,41 @@ Example .ini file (with default values given):
Compatibility
-------------
The X
modem, Ymodem
, and Z
modem
file transfers should be compatible with any
The X
MODEM, YMODEM
, and Z
MODEM
file transfers should be compatible with any
terminal programs or remote protocol drivers that conform to the public
specifications for these protocols written by Chuck Forsberg (X
modem
was
actually written by Ward Christensen, but was extended
and documented by our
good friend, Chuck).
specifications for these protocols written by Chuck Forsberg (X
MODEM
was
actually written by Ward Christensen, but was extended
by others and
documented by our
good friend, Chuck).
SEXYZ supports the following protocols and their popular permutations:
Xmodem: 128 byte blocks, 8-bit checksum error detection
Xmodem-CRC: 128 byte blocks, 16-bit CRC error detection
Xmodem-1K: 1024 byte blocks, 16-bit CRC error detection
Ymodem: 128 byte blocks, 16-bit CRC error detection, batch file transfers
Ymodem-1K: 1024 byte blocks, 16-bit CRC error detection, batch file transfers
Ymodem-G: 1024 byte blocks, 16-bit CRC error detection, batch file transfers
and streaming (no acknowledgements)
Zmodem: 1024 byte blocks, 16-bit or 32-bit CRC error detection, batch file
XMODEM: 128-byte blocks, 8-bit checksum error detection
XMODEM-CRC: 128-byte blocks, 16-bit CRC error detection
XMODEM-1K: 1024-byte blocks, 16-bit CRC error detection
XMODEM-G: 1024-byte blocks, 16-bit CRC error detection, and streaming
(no acknowledgements or error recovery) (a.k.a. QMODEM-G)
YMODEM: 128-byte blocks, 16-bit CRC error detection, batch file transfers
YMODEM-1K: 1024-byte blocks, 16-bit CRC error detection, batch file transfers
YMODEM-G: 1024-byte blocks, 16-bit CRC error detection, batch file transfers
and streaming (no acknowledgements or error recovery)
ZMODEM: 1024-byte blocks, 16-bit or 32-bit CRC error detection, batch file
transfers, resume, auto-download, and more
Z
modem
-8K: 8192
byte blocks, 16-bit or 32-bit CRC error detection, batch file
Z
MODEM
-8K: 8192
-
byte blocks, 16-bit or 32-bit CRC error detection, batch file
transfers, resume, auto-download, and more (a.k.a. ZedZap)
As of this writing, the current version of SEXYZ and the X/Zmodem modules are:
SEXYZ will automatically fall back from 1024-byte block XMODEM/YMODEM send
mode to 128-byte block XMODEM/YMODEM send mode if the receiver does not appear
to support 1024-byte blocks.
sexyz.c 1.77
xmodem.c 1.26 <-- Includes Ymodem
zmodem.c 1.71
SEXYZ also supports automatically falling back from XMODEM/YMODEM-CRC to
XMODEM/YMODEM-Checksum mode when sending to a receiver that does not support
CRC-16 error detection.
As of this writing, the current version of SEXYZ and the X/ZMODEM modules are:
sexyz.c 1.81
xmodem.c 1.36 <-- Includes YMODEM
zmodem.c 1.77
SEXYZ for Win32 has been tested successfully with the following Telnet clients
/terminal programs:
...
...
@@ -339,7 +360,7 @@ SEXYZ for Win32 has been tested successfully with the following Telnet clients
OS: Linux
Version: 1.2.2
URL: ftp://ibiblio.org/pub/Linux/system/network/telnet/
Tested: Z
modem
uploads and downloads
Tested: Z
MODEM
uploads and downloads
Failed: none
[HyperTerminal Private Edition]
...
...
@@ -347,9 +368,9 @@ By: Hilgraeve, Inc.
OS: Win32
Version: 6.3
URL: http://www.hilgraeve.com/htpe/
Tested: X
modem
(checksum and CRC), X
modem
-1K, Y
modem
-1K, Y
modem
-G and Z
modem
Tested: X
MODEM
(checksum and CRC), X
MODEM
-1K, Y
MODEM
-1K, Y
MODEM
-G and Z
MODEM
both uploads and downloads
Failed: Z
modem
uploads (CRC errors detected): appears to be the fault of
Failed: Z
MODEM
uploads (CRC errors detected): appears to be the fault of
HyperTerminal and can be reproduced with any protocol driver on the
BBS/server side (even FDSZ)
...
...
@@ -358,7 +379,7 @@ By: enigma
OS: Win32
Version: 1.0 (beta 12)/w32
URL: http://ozone.eesc.com
Tested: Z
modem
uploads and downloads
Tested: Z
MODEM
uploads and downloads
Failed: none
[NetRunner]
...
...
@@ -366,8 +387,8 @@ By: Mystic Software Development (James Coyle/g00r00)
OS: Win32
Version: 0.09
URL: www.mysticbbs.com
Tested: Z
modem
uploads and downloads
Failed: Z
modem
uploads (CRC errors detected): appears to be the fault of
Tested: Z
MODEM
uploads and downloads
Failed: Z
MODEM
uploads (CRC errors detected): appears to be the fault of
NetRunner and can be reproduced with any protocol driver on the
BBS/server side (FDSZ and CEXYZ both failed in the same manner)
...
...
@@ -376,7 +397,7 @@ By: EmTec, Innovative Software, Markus Schmidt
OS: Win32
Version: 5.02
URL: http://www.emtec.com
Tested: X
modem, Ymodem, Zmodem
uploads and downloads
Tested: X
MODEM, YMODEM, ZMODEM
uploads and downloads
Failed: none
...
...
@@ -392,24 +413,26 @@ the "sexyz v" command. We're also very interested in reports of compatibility
Credits
-------
The Xmodem (a.k.a. MODEM, MODEM2, XMODEM) protocol was originally created by
Ward Christensen in 1977.
The XMODEM (a.k.a. MODEM, MODEM2) protocol was originally created by Ward
Christensen in 1977.
The XMODEM-CRC protocol (XMODEM derivative using a 16-CRC for error detection
rather than XMODEM's 8-bit checksum) was created by John Mahr.
The Ymodem (a.k.a. YMODEM) and Zmodem (a.k.a. ZMODEM) protocols were created
and documented (poorly) by Chuck Forsberg; Ymodem being primarily a set of
enhancements to Ward's Xmodem protocol. Ymodem-G (a.k.a. YMODEM-g) was also
created by Chuck.
The YMODEM, YMODEM-G and ZMODEM protocols were created and documented by Chuck
Forsberg; YMODEM being primarily a set of enhancements to Ward's XMODEM and
Mahr's XMODEM-CRC protocols.
The X/Y
modem
code used in SEXYZ was written by Rob Swindell <rob [at] synchro
The X/Y
MODEM
code used in SEXYZ was written by Rob Swindell <rob [at] synchro
[dot] net>, migrated from the Synchronet Transfer Protocols (STP) program
circa 1997.
The Unix "stdio" mode support in SEXYZ was written by Stephen Hurd (a.k.a.
Deuce) of Synchronix/FreeBSD Synchronet stardom and "scary code" infamy.
The Z
modem
code in SEXYZ is based on zmtx/zmrx v1.02 (C) Mattheij Computer
The Z
MODEM
code in SEXYZ is based on zmtx/zmrx v1.02 (C) Mattheij Computer
Service 1994 by Jacques Mattheij <jacquesm [at] hacktic [dot] nl>. Although
SEXYZ's Z
modem
code no longer resembles zmtx/zmrx much, it served as a good
SEXYZ's Z
MODEM
code no longer resembles zmtx/zmrx much, it served as a good
starting point, and Jacques' version of Chuck's ZMODEM.DOC was very helpful!
The 16-bit CRC table and calculation macro was (unwittingly) contributed by
...
...
@@ -422,5 +445,5 @@ SEXYZ includes portions of the Synchronet XPDEV and SMBLIB libraries which
are licensed under the GNU Lesser General Public License (LGPL).
http://www.fsf.org/licensing/licenses/lgpl.txt
Synchronet BBS software is written by and copyright 200
6
Rob Swindell.
Synchronet BBS software is written by and copyright 200
8
Rob Swindell.
http://www.synchro.net/docs/copyright.html
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment