897 lines
42 KiB
Plaintext
897 lines
42 KiB
Plaintext
SZMODEM ver 1.50
|
|
-----------------
|
|
By Scott M. Baker
|
|
|
|
|
|
What is SZModem?
|
|
|
|
SZModem is a zmodem-compatible protocol with a few added features. It
|
|
is fully compatible with normal zmodem, but adds special capabilities both
|
|
when talking to normal zmodems and while talking to other copies of
|
|
SZModem.
|
|
The main idea behind SZModem is that you should be able to do other
|
|
things while the transfer is taking place. Rather than have your computer
|
|
tied up for an hour downloading a file, you can move around in the SDOS
|
|
window and do directory maintenance, etc...
|
|
|
|
What will it do?
|
|
|
|
While SZModem is transferring a file, you may do the following:
|
|
|
|
Connected to a "normal" zmodem such as DSZ.
|
|
|
|
- List files marked for upload
|
|
- List files received as they are received
|
|
- Uses SDOS (simulated dos) to view directories, copy files,
|
|
etc while the transfer is taking place.
|
|
- View file contents as the file is being received (good for
|
|
text files)
|
|
- Play single-player games while transferring.
|
|
- Built in mail reader allows sysops who are using a BBS program
|
|
that uses FIDO message formats to read mail while transferring.
|
|
|
|
Connected to another copy of SZModem.
|
|
|
|
- All of the above capabilities
|
|
- A "chat" mode allows the two sides to talk to each other.
|
|
- Play multiplayer games such as Four-In-A-Row
|
|
- The sender will automatically send a "advance transfer list"
|
|
listing the files to be sent. This way, the receiver knows
|
|
what he is receiving.
|
|
- SZTurbo option allows SZModem to pass flow control characters
|
|
unaltered across the modem. This allows for up to a four percent
|
|
effeciency gain over normal Zmodem.
|
|
- Ability to use large zmodem packet lengths - up to 2048 bytes
|
|
at 2400 baud and 4096 bytes for higher speeds.
|
|
- LZW compression routines allow significant efficiency improvements
|
|
for text files, ASCII data, etc.
|
|
|
|
Command specifics
|
|
-----------------
|
|
|
|
F1 - Transfer (send) list
|
|
|
|
This command will produce a windowed list of the files that have
|
|
been sent, aborted, marked for sending, etc. Included is the file
|
|
name, size, and all other pertinant information. You may use the up
|
|
and down arrows if necessary to scroll the list.
|
|
Pressing F1 again (i.e. while you are already in TLIST) will toggle
|
|
between the file-information list and the file-description list.
|
|
|
|
F2 - Received file list
|
|
|
|
This command will produce a listing of the files are have been
|
|
received. Similar to the "F1" list above, you may use the up/down
|
|
arrows to scroll the list. THe list is updated as files are received.
|
|
If you are connected to another copy of SZModem, the sender
|
|
will transmit a special "advance transfer list" containing a listing
|
|
of the files that will be sent. This list will be displayed with the
|
|
F2 command.
|
|
As with F1 above, pressing F2 again will toggle betweem the file
|
|
information display and the file description display.
|
|
|
|
F3 - SDOS (simulated dos)
|
|
|
|
SDOS is a special dos emulator that lets you perform a variety of
|
|
operations while the transfer is taking place. You can copy/move files,
|
|
list directories, change attributes, etc - most of the common things you
|
|
do with normal dos.
|
|
You may get a listing of supported SDOS commands by typing "HELP"
|
|
at the dos prompt. Typing help with a command name (i.e. HELP DIR) will
|
|
display help for that specific command.
|
|
Most SDOS commands are pseudo-multitasked as to not interfere with
|
|
the transfer, although with high speed modems (i.e. 14,400 baud and
|
|
up) the transfer may slow down during disk-intensive operations.
|
|
|
|
F4 - COMM PARAMS
|
|
|
|
This command will pop up a display of the current communications
|
|
parameters - baud rate, parity, buffer status, etc. It can be useful in
|
|
debugging difficulties.
|
|
|
|
F5 - VIEW
|
|
|
|
Pressing F5 will allow you to "view" the transfer as it is taking
|
|
place. You will actually see the characters of the file, zmodem
|
|
handshaking, and line noise as it takes place.
|
|
If you press F5 while you are already in the view window, you will
|
|
toggle the view mode. There are 6 different modes. Here is a listing:
|
|
|
|
1 - Direct ascii printing of characters as they are sent or recvd
|
|
2 - Ascii print only RECEIVED characters
|
|
3 - Ascii print only TRANSMITTED characters
|
|
4 - HEX printing of transmitted and received characters
|
|
5 - HEX printing of only received characters
|
|
6 - HEX printing of only transmitted characters
|
|
|
|
The modes will cycle one at a time each time you press F5. Initially,
|
|
this whole idea of the view mode was simply a debugging option for me,
|
|
but I figure some users might like to watch the transfer taking place.
|
|
|
|
F6 - MESSAGES
|
|
|
|
The message display shows a log of the various messages that SZModem
|
|
displays on the screen - CRC Error, Waiting for ZRINIT, stuff like that.
|
|
|
|
F7 - CHAT
|
|
|
|
This command can only be used when two SZModems are connected to
|
|
each other - it won't work with a normal Zmodem. The chat mode allows
|
|
you to talk to the user at the other end of the transfer. The screen
|
|
will be split into two windows - one for what you type, one for what
|
|
the other guy types.
|
|
Pressing CTRL-G will page the other user if he isn't at his
|
|
terminal. The page will beep for thirty seconds, one beep every
|
|
three seconds.
|
|
|
|
F8 - GAMES
|
|
|
|
The games menu will be displayed and you can select a game to play
|
|
while the transfer is taking place. There are two kinds of games -
|
|
single player games which to play by yourself and multiplayer games
|
|
in which you play against the guy on the other end.
|
|
The single player games may be player no matter what you are
|
|
connected to, but the multiplayer games require you to be connected to
|
|
another copy of SZModem.
|
|
|
|
F9 - MAIL READER
|
|
|
|
This is a feature designed to be used by the sysops of Bulletin
|
|
Boards which have a FIDO compatible message format. (See the below
|
|
section on "The Mail Reader" for info on setting up this feature)
|
|
By pressing F9, the sysop will be allowed to read messages in the
|
|
chosen message base. There are several additional UNLISTED keys available
|
|
in this window:
|
|
|
|
"N" Move forward one message
|
|
"P" Move backwards one message
|
|
<Space> If the message is more than one screen, this will scroll the
|
|
window.
|
|
|
|
F10 - EXIT
|
|
|
|
This brings you the exit option which aborts all files and returns
|
|
you to the DOS prompt.
|
|
|
|
COMMAND LINE OPTIONS
|
|
--------------------
|
|
SZModem was designed specially to have a command line similar to the
|
|
popular DSZ Zmodem protocol. This way users with an understanding of DSZ
|
|
can easily set up SZModem. The options area as follows:
|
|
|
|
"SZMODEM <options> <transfer type> <filenames>"
|
|
|
|
Options can be any one of the following:
|
|
|
|
"PORT x" specifies using comport x. (i.e. "PORT 2" would use com2)
|
|
|
|
"SPEED x" specifies the baud rate (i.e. "SPEED 2400 would use 2400 baud)
|
|
|
|
"IRQ x" specifies a nonstandard IRQ. (NOTE: please specify the
|
|
address in DECIMAL, not HEX). You must supply BOTH an IRQ
|
|
and an address to use nonstandard ports.
|
|
|
|
"ADDR x" specifies a nonstandard ADDRESS. (NOTE: please specify
|
|
the address in decimal, not hex). You must supply BOTH an IRQ
|
|
and and address to use nonstandard ports.
|
|
|
|
"/NOLOG" disables logging to the "SZMODEM.LOG" file.
|
|
|
|
"/M" monochrome mode.
|
|
|
|
"/DORINFO x" Specifies the node number of a dorinfo.def file to grab the
|
|
user's name from. If you specify this option, SZModem will
|
|
load in the dorinfo, get the user name, and display it in
|
|
the screen so you know who is downloading. (I.e. specifying
|
|
"/DORINFO 1" would load in "DORINFO1.DEF")
|
|
|
|
"/INSIZE x" Specifies the size (in bytes) of the internal comm input
|
|
buffer. (Note: not used if using fossil)
|
|
|
|
"/OUTSIZE x" Specifies the size (in bytes) of the internal comm output
|
|
buffer. (Note: Not used if using fossil)
|
|
|
|
"/SZPATH x" Specifies a path to which the SZXFER$$.LST and SZMODEM.LOG
|
|
files will be written to. If not specified, the files will
|
|
be created in the current directory.
|
|
|
|
"/DELAYTIME x" SZModem by default will wait 5 seconds at the end of
|
|
transfer for a keypress to before exiting. BBS sysops may
|
|
wish to lower this time for faster operation. The "x"
|
|
specifies the default time to delay, which may be
|
|
from 0-30 seconds. (NOTE: /DELAYTIME can be abbreviated
|
|
/DT)
|
|
|
|
"/SZTURBO" Causes SZModem to attempt to use the SZTurbo option if
|
|
possible. If SZTurbo is to operate, both sides must have this
|
|
option set. See "SZTURBO" below. (NOTE: /SZTURBO can be
|
|
abbreviated /SZT)
|
|
|
|
"/NBS" This stands for "normal block size". By default, if two
|
|
SZmodem's are connected, they will allow the Zmodem packet
|
|
length to rise to 2048 bytes/packet at 2400 baud or 4096
|
|
bytes/packet for higher speeds. Specifying "/NBS" will force
|
|
SZModem to use block lengths of 1024 bytes or less.
|
|
|
|
"/NORBL" Will cause your copy of SZModem to refuse to accept LARGE
|
|
format (i.e. embedded file description info) advance transfer
|
|
lists.
|
|
|
|
"/NOSBL" Will cause your copy of SZModem to refuse to send LARGE
|
|
format (i.e. embedded file description info) advance transfer
|
|
lists.
|
|
|
|
"/FL" This will cause SZModem to create an additional log file
|
|
called "FILELOG.TXT". This log is intended to allow users to
|
|
keep a record of files they receive. It only logs RECEIVED
|
|
files and it includes the name, size, and optional description
|
|
of the file.
|
|
|
|
"/NOPAGE" This will prevent another copy of SZModem from paging your
|
|
copy.
|
|
|
|
"/FILEDESC x" This specifies an additional FILEDESC list of file
|
|
descriptions. "x" is the path and filename of the file. See
|
|
"Large Advance Transfer Lists" for more info.
|
|
|
|
"/CHECKSNOW" If you are using a CGA card and it gets snow, try using this
|
|
option.
|
|
|
|
"/NOCOMP" This will force SZModem to disable file compression.
|
|
|
|
"/FIDOAREA x" Specifies a fido-format message base that SZModem's built
|
|
in mail reader will allow the sysop to read while a transfer
|
|
is taking place. The "x" is the path. (i.e. "/FIDOAREA
|
|
I:\BINKLEY\MESSAGES").
|
|
|
|
"/EGA" If you have an EGA or VGA display, this switch will enable the
|
|
43/50 line modes.
|
|
|
|
"/DL" This option will cause SZModem to create a DSZ.LOG file. This
|
|
file will contain a DSZ-style log. This option may be used
|
|
with BBS programs that require a DSZ.LOG file to operate their
|
|
external protocols. SZMODEM also will enable the DSZ.LOG if
|
|
the environment variable "DSZLOG=xxx" is used.
|
|
|
|
"/CFGPATH x" Specifies a path to where the configuration file (SZMODEM.CFG)
|
|
can be found. "x" is the path with or without a trailing
|
|
backslash. It doesn't matter.
|
|
|
|
"/HARD" This turns on HARD flow control. This means that when your
|
|
modem drops CTS, SZModem will stop transmitting until CTS
|
|
is raised again. This option is frequently used with high
|
|
speed modems and/or locked baud rates.
|
|
|
|
"/SOFT" This is similar to the above HARD flow control, but uses
|
|
ascii characters to control the flow. Namely, the Xon and
|
|
Xoff characters - when XOFF is received, SZModem will stop
|
|
transmitting and when XON is received, SZModem will resume.
|
|
(Note: SZTURBO mode is not available with this type of
|
|
handshaking)
|
|
|
|
"/LOCK x" Specifies a locked baud rate. The com port will be set to
|
|
the baud rate specified by this parameter, and the baud rate
|
|
specified by "BAUD x" above will be used for estimation
|
|
purposes.
|
|
|
|
Transfer type may be any one of the following:
|
|
|
|
"RZ" receive zmodem file(s)
|
|
"SZ" send zmodem file(s)
|
|
|
|
Filenames are interpreted as follows:
|
|
|
|
Send mode: Multiple filespecs may be present. Wildcards are allowed.
|
|
|
|
Recv mode: A path to the receive directory is expected. No filenames
|
|
are necessary. If you add a filename, SZModem will strip it
|
|
from the string and ignore it.
|
|
|
|
EXAMPLES:
|
|
---------
|
|
|
|
"SZMODEM PORT 4 SPEED 9600 SZ \UPLOAD\*.ZIP"
|
|
|
|
Send all the .ZIP files in you upload directory using COM4 at
|
|
9600 baud.
|
|
|
|
|
|
"SZMODEM SPEED 1200 RZ"
|
|
|
|
Receive files at 1200 baud using COM1. Store them in the current
|
|
directory.
|
|
|
|
|
|
"SZMODEM PORT 3 RZ \TEMP"
|
|
|
|
Receive files at 2400 baud using COM2. Store them in the "\TEMP"
|
|
directory.
|
|
|
|
Files
|
|
-----
|
|
SZMODEM.EXE - The executable code for SZModem. This is what you
|
|
need to call to execute the protocol. Memory
|
|
requirements should be from 130-170k depending
|
|
on how you have szmodem set up.
|
|
|
|
SZCONFIG.EXE - This program allows you to set a variety of
|
|
SZModem's default options and store them in the
|
|
SZMODEM.CFG file.
|
|
|
|
*SZMODEM.CFG - This file is created by the above SZCONFIG.EXE. It
|
|
contains default option values for various SZMODEM
|
|
parameters. Basically, you can use SZCONFIG.EXE to
|
|
put the options here rather than specifying them on
|
|
the command line.
|
|
|
|
SZMODEM.DOC - These docs that you are reading.
|
|
|
|
SZMODEM.TRV - A "trivia" file which lets you play trivia during
|
|
SZModem.
|
|
|
|
SZMODEM.HLP - An ASCII help file which contains help on the SimDos
|
|
commands.
|
|
|
|
*SZMODEM.LOG - A log created which contains a listing of files
|
|
transferred, dates/times, etc. May be disabled
|
|
with the "/NOLOG" option. You may set the
|
|
path this file will be placed in with the "/SZPATH"
|
|
option.
|
|
|
|
*DSZ.LOG - If the /DL parameter was specified, this file will
|
|
be created to allow for compatibility with the
|
|
popular DSZ protocol.
|
|
|
|
*SZXFER$$.LST - This is the "advance transfer list" file. It is
|
|
created by the sender and if the receiver is also a
|
|
zmodem, is sent to so the receiver may have a list
|
|
of files to be received ahead of time.
|
|
|
|
*FILELOG.TXT - If the "/FL" parameter is specified, this will will
|
|
contain a listing of all files received (downloaded)
|
|
by SZModem. Included is the file name, size, and
|
|
optional description.
|
|
|
|
(* Denotes file is CREATED by SZModem, not distributed with the package)
|
|
|
|
Hardware Requirements
|
|
---------------------
|
|
Processor: 10mhz 80286 or greater suggested, but will work with any
|
|
IBM-PC compatible machine.
|
|
|
|
Display: Anything should work
|
|
|
|
Memory: SZMODEM.EXE 130-107k
|
|
|
|
Nonstandard port addresses:
|
|
---------------------------
|
|
You must use the "IRQ x" and "ADDR x" parameters to specify a
|
|
nonstandard com port. Numbers must be in DECIMAL, not HEX. DO NOT
|
|
specify a "PORT" if you use nonstandards.
|
|
|
|
For example:
|
|
|
|
"SZMODEM IRQ 2 ADDR 1016" would cause szmodem to use whatever port is
|
|
at IRQ=2 and ADDRESS=1016 ($3F8 hex)
|
|
|
|
The Overlay Version
|
|
-------------------
|
|
There is now one and only one version of SZMODEM.EXE distributed
|
|
in the package. Before, we had three seperate versions configured for
|
|
various memory requirements, but from now on, there is only one.
|
|
For those of you who are curious, the version of SZModem
|
|
distributed is the overlay one (used to be SZMODOVR.EXE). I did this
|
|
since the old SZMODEM.EXE was gobbling up too much memory to be
|
|
useful and the SZMODSML.EXE version wasn't saving enough space to
|
|
justify it.
|
|
|
|
Flow Control, Handshaking, High-Speed Modems, Locked baud
|
|
---------------------------------------------------------
|
|
SZModem includes two command line options for controlling computer-
|
|
to-modem handshaking. This handshaking allows the modem to send some form
|
|
of signal to SZModem to tell SZModem to stop sending data if the modem's
|
|
buffer becomes overflowed.
|
|
If you are using a 2400 baud modem or lower, and are sending data to
|
|
this modem at 2400 baud, then no handshaking options should be necessary.
|
|
But, if you are using a high speed modem at a locked baud rate, handshaking
|
|
is VERY necessary.
|
|
The are two type of handshaking: HARD and SOFT. Hard handshaking uses
|
|
the CTS/RTS lines (i.e. wires) between your modem to control data flow and
|
|
is considered the better of the two. SOFT handshaking uses two special
|
|
ASCII characters, XON and XOFF, to control handshaking. Basically, you have
|
|
to match SZModem to the type of handshaking your modem uses.
|
|
To enable HARD handshaking, specify the "/HARD" option on the command
|
|
line. To enable SOFT handshaking, specify "/SOFT". You should only specify
|
|
one, not both.
|
|
Consult your modem manual, bbs software docs, etc for more
|
|
information on handshaking.
|
|
|
|
SZTetris!
|
|
---------
|
|
New with version 1.50, a game called "SZTetris" has been included in
|
|
the games (F8) menu. The game is your standard Tetris type game. You can
|
|
use the arrow keys to move the falling blocks, the J,K,L keys, or the
|
|
keypad w/numlock (4,5,6,2).
|
|
The game is in its eary stages and may still have a couple of
|
|
glitches in it.
|
|
NOTE: SZTetris is a processor-speed hog. If your running szmodem
|
|
at 19.2kbaud at a low cpu speed (8mhz or lower), you may get errors. On my
|
|
25mhz 386, however, I have tested szmodem at 19.2kbaud while playing
|
|
sztetris with no troubles whatsoever.
|
|
|
|
|
|
SZTurbo
|
|
-------
|
|
SZTurbo is an option that will allow you to improve file transfer
|
|
efficiency by as much as four percent. To explain how SZTurbo works,
|
|
I must discuss a little about how Zmodem itself works.
|
|
In the Zmodem specification, certain bytes cannot be transmitted
|
|
freely across the modem connection. These bytes are XON, XOFF, ZDLE (a byte
|
|
very important to Zmodem), and a few others. If for example, an XOFF
|
|
was transmitted across the modem link, it could cause difficulties.
|
|
Although these bytes may not be transmitted, they do occur in binary
|
|
files so Zmodem must find someway to transmit them. What it does is send
|
|
a ZDLE followed by byte (i.e. the XOFF) XOR 64. This translates the illegal
|
|
character to a harmless ASCII letter that may be freely sent across the
|
|
modem link.
|
|
A few quick thoughts and you should be able to see that every time
|
|
one of these "illegal" characters are encountered, two bytes (The ZDLE
|
|
and the character XOR 64) must be sent. Sending two characters instead of one
|
|
obviously adds overhead to the transfer, slowing it down.
|
|
It turns out that most of these "illegal" characters are not illegal
|
|
under most situations. Almost all current moedems are able to transfer
|
|
XONs,XOFFs, etc just fine. So basically what SZTURBO does is send these
|
|
illegal characters just like any other character. Here's a quick diagram
|
|
to help explain this:
|
|
|
|
Characters sent Character(s) sent
|
|
Character in File without SZTurbo with SZTurbo
|
|
----------------- --------------------- ----------------
|
|
ZCHAT (#14) ZDLE (#24) "N" ZDLE (#24) "N"
|
|
DLE (#16) ZDLE (#24) "P" DLE (#16)
|
|
XON (#17) ZDLE (#24) "Q" XON (#17)
|
|
XOFF (#19) ZDLE (#24) "S" XOFF (#19)
|
|
ZDLE (#24) ZDLE (#24) "X" ZDLE (#24) "X"
|
|
|
|
As you can see, SZTurbo shortens the sequences for DLE, XON, and
|
|
XOFF from 2 characters down to one character. While this does not seem like
|
|
much, it can add up to a four percent efficiency gain. When you're paying
|
|
the long distance bill, you'll appreciate this.
|
|
Specifying "/SZTURBO" on the command line will cause your copy of
|
|
SZModem to "attempt" to engage the SZTurbo option. SZTurbo is only
|
|
available if both sides have the option specified.
|
|
|
|
Large Advance Transfer Lists
|
|
----------------------------
|
|
Starting with this version, there is support for a "large" advance
|
|
transfer list. The main difference between the normal list and the "large"
|
|
list is that the large list contains optional file descriptions as well
|
|
as the name, date, etc. The receiver or sender may browse through these
|
|
descriptions while the transfer is taking place.
|
|
The problem is, SZModem can't just make up these descriptions
|
|
itself. The sender must somehow provide SZModem with the descriptions. If
|
|
the sender is a bbs program, then the descriptions are available from
|
|
the BBS's file catalog. The descriptions must, however, still be converted
|
|
to a format that SZModem can understand.
|
|
SZModem will look for file descriptions in the file "FILEDESC.TXT"
|
|
(or "FILEDE1.TXT", "FILEDE2.TXT", etc if you are multinode) in the
|
|
directory specified by the /SZPATH option. This file follows a simple
|
|
format. It is plain ASCII with each line of the file corresponding to a
|
|
file. The filename starts at column 1 and the descriptions starts at
|
|
column 15. For example:
|
|
|
|
|
|
::-- Col. 1 ::--- col. 15
|
|
:: ::
|
|
\/ \/
|
|
SZMOD120.ZIP Zmodem protocol with Chat, Simdos, etc
|
|
GALWAR75.ZIP Galactic Warzone version 7.5
|
|
DOORDR30.ZIP Doordriver door support routines
|
|
MACH10.ZIP Mach-10 bbs
|
|
|
|
|
|
When SZModem loads, providing the /NOSBL switch is not specified and
|
|
providing this file exists, the descriptions will be searched, loaded, and
|
|
sent to the receiver providing his /NORBL switch is not set.
|
|
As you have probably noticed, this format is probably not what your
|
|
bbs uses. Since I don't have information on the file formats of most BBS
|
|
packages, I had to make do with this "generic" format. Hopefully, some
|
|
bbs sysops who are programmers can write a utility to grab the necessary
|
|
descriptions out of their file catalogs and throw them into the
|
|
FILEDESC.TXT file.
|
|
Note: The FILEDESC.TXT file may be named FILEDE1.TXT or FILEDE2.TXT
|
|
depending on your configuration. The /DORINFO switch will determine which
|
|
.TXT file SZModem will look for. If no /DORINFO is specified, FILEDESC.TXT
|
|
will be used. If /DORINFO 1 was specified, FILEDE1.TXT will be loaded.
|
|
Examples:
|
|
|
|
Filedesc file used
|
|
------------------
|
|
SZMODEM SZ FOO.BAR FILEDESC.TXT
|
|
SZMODEM /DORINFO 1 SZ FOO.BAR FILEDE1.TXT
|
|
SZMODEM /DORINFO 2 SZ FOO.BAR FILEDE2.TXT
|
|
SZMODEM /SZPATH \protocol SZ FOO.BAR \PROTOCOL\FILEDESC.TXT
|
|
SZMODEM /SZPATH \protocol /DORINFO 1 ..... \PROTOCOL\FILEDE1.TXT
|
|
|
|
Now, a quick word on the /NOSBL and /NORBL switches. If you specify
|
|
/NOSBL, your copy of SZModem will not send the description info under any
|
|
circumstances. If you specify /NORBL, your SZModem will not allow another
|
|
SZModem to send the description info under any circumstances. Example:
|
|
|
|
|
|
Sender Receiver Desc info sent
|
|
------------------ ------------------- --------------
|
|
SZMODEM SZ ... SZMODEM RZ ... *YES
|
|
SZMODEM /NOSBL SZ SZMODEM (anything) NO
|
|
SZMODEM (anything) SZMODEM /NORBL NO
|
|
|
|
(* only if FILEDESC.TXT, FILEDE1.TXT, etc exists on sender side)
|
|
|
|
Additional FILEDESC files may be specified using the /FILEDESC
|
|
option. Use the format "/FILEDESC x" where "x" is the path and filename
|
|
of the additional list to search. You may add as many of these additional
|
|
lists as you wish. (NOTE: Operation will occur faster if all of the
|
|
descriptions are in one file rather than many file)
|
|
|
|
File Lists
|
|
----------
|
|
If you specify @<filename> on then command line, <filename> will be
|
|
opened and any file paths contained within will be sent. For example,
|
|
suppose a textfile, "TOSEND.TXT" contained the following:
|
|
|
|
|
|
\DOWNLOAD\SZMOD120.ZIP
|
|
\MACH10\WELCOME.TXT
|
|
\GALWAR\TWARS.EXE
|
|
|
|
If you called up SZModem with the command line "SZMODEM SZ
|
|
@TOSEND.TXT", SZModem would then send the three files listed above. This
|
|
allows you to specify many different filenames in an ascii file rather
|
|
than have to fit them all on the command line.
|
|
You may also specify SZModem parameters in these "file lists". You
|
|
could specify "/DORINFO 1 /SZTURBO /SZPATH \protocols", etc and then call
|
|
it up with the "@" sign rather than having to put all of those options on
|
|
the command line.
|
|
|
|
File Compression
|
|
----------------
|
|
SZModem now includes a LZW compression module which can compress
|
|
the file data as it is being sent. Although for binary and compressed data,
|
|
the LZW compression will make little difference, it can create substantial
|
|
compression for ASCII data, text files, word-processor files, etc.
|
|
By default, compression is automatically enabled for any file
|
|
with an extention other than ZIP,ZOO,PAK,ARC. If both SZModems support file
|
|
compression and there is memory for the 21k hashing table, compression
|
|
will occur on a block-by-block basis. The "packet size" display will
|
|
reflect the size of compressed data subpacket and the (real) size of the
|
|
uncompressed data in paranthesis (i.e. "Packet size....: 1398 (2048)" would
|
|
indicate that 2048 bytes were compressed into 1398 bytes).
|
|
To use the compression algorythm, an extra 21k of data space is
|
|
necessary for a special "hashing table". If there is not 21k of memory
|
|
available for SZModem, the hashing table will not be created, and
|
|
compression will be disabled.
|
|
The command line switch "/NOCOMP" may be used to force compression
|
|
to be disabled.
|
|
|
|
The Mail Reader
|
|
---------------
|
|
SZModem is equipped with a mail reader capable which allows the
|
|
sysop to read any messages in a fido-format message base. This feature is
|
|
only useful for BBS systems or mail point systems, and has no particular
|
|
interest to users.
|
|
So far, SZModem can only handle one message area. I am making
|
|
provisions to add support for more area, but that will be in a later
|
|
version.
|
|
To enable the mail reader, add the "/FIDOAREA x" switch into the
|
|
command line, with "x" being the path to your fido area. (i.e. "/FIDOAREA
|
|
I:\BINKLEY\MESSAGE"). No trailing backslash is necessary.
|
|
Then, you may use the F9 key to enter the mail reader. The "N"
|
|
and "P" keys will move you forward or reverse in the area and the SPACE
|
|
bar will scroll a message.
|
|
|
|
|
|
Benchmarks
|
|
----------
|
|
The following chart compares the CPS readings for some various
|
|
protocols. SZMODEM ver 1.31 was used for the SZMODEM tests and DSZ1612
|
|
was used for the DSZ Zmodem, Xmodem, and ymodem tests.
|
|
The tests were performed between two AT-class machines running
|
|
at 8mhz.
|
|
|
|
SZMODEM SZMODEM DSZ DSZ DSZ
|
|
Filename File Size w/SZTURBO ZMODEM XMODEM YMODEM
|
|
------------ --------- --------- ------- ------ ------ ------
|
|
SYSOP.DOC 18357 399 390 235 200 200
|
|
MACHCTL.ZIP 20643 236 232 234 201 200
|
|
MOUSE.COM 14249 284 274 234 202 199
|
|
SIMCGA.ZIP 2406 233 233 235 200 200
|
|
|
|
|
|
|
|
Revison History
|
|
---------------
|
|
Version 1.00 - First public BETA release.
|
|
|
|
This software has not been tested very well at
|
|
this point. There may be trouble with high speed
|
|
modems, COM3/4 conflicts, etc. Please report any
|
|
bugs to my bbs listed below.
|
|
|
|
Version 1.01 - Fixed a problem that caused the DORINFO display
|
|
that caused the users last name and city to be
|
|
displayed. Now, the user's full name and city is
|
|
displayed.
|
|
|
|
Version 1.02 - Added the "/SZPATH" option to allow the user
|
|
to specify what directory the SZMODEM.LOG and
|
|
SZXFER$$.LST files will be placed in.
|
|
|
|
Fixed a bug which was causing runtime error
|
|
2 that had to do with the SZXFER$$ list.
|
|
|
|
Added "/DELAYTIME" option to specify time that
|
|
SZModem will delay after a transmission is completed,
|
|
waiting for a keypress.
|
|
|
|
The CHAT indicator will now blink when a remote user
|
|
is typing in chat and the local user is in another
|
|
window.
|
|
|
|
Version 1.10 - Added FREE and SIZE commands to simdos. See the
|
|
SZMODEM.HLP file for more information.
|
|
|
|
Various cosmetic improvements.
|
|
|
|
Made the SIMDOS parser a bit more intelligent. It can
|
|
now process commands without spaces between parameters
|
|
such as "DIR/W" or "CD..".
|
|
|
|
Added DELNUL command to delete zero-length files.
|
|
|
|
SZModem now displays a small message if the user does
|
|
not specify SZ or RZ. This helps new users to know
|
|
they do in fact need to specify SZ/RZ.
|
|
|
|
SZModem /HELP command now available. Displays a small
|
|
help screen of some of SZModem's command line
|
|
parameters.
|
|
|
|
Major revisions to the actual ZMODEM transfer code.
|
|
|
|
CRC32 now used rather than CRC16 and the block check
|
|
display now correctly reflects this. (Note: If the
|
|
sender requests CRC16, the receiver will be stuck with
|
|
CRC16 also)
|
|
|
|
Error correction will now function properly in both
|
|
CRC32 and CRC16 modes.
|
|
|
|
"Last frame" display on receiver now functions
|
|
properly.
|
|
|
|
Default delay time changed from 10 seconds to 5
|
|
seconds. (See /DELAYTIME above)
|
|
|
|
Added an overlay version of the program (SZMODOVR.EXE)
|
|
to allow for systems with less available memory.
|
|
|
|
Version 1.20 Added SZTurbo option to increase transfer efficiency
|
|
by as much as 4%. See the SZTurbo section of this doc
|
|
for more info.
|
|
|
|
Added "/NBS" option to allow users to restrict
|
|
SZModem's block size down to the standard 1024 bytes/
|
|
block like normal zmodem.
|
|
|
|
The minor version identifier (i.e. .20) is now sent
|
|
along with the major version identified (i.e. 1)
|
|
|
|
Message screen (F6) code revised to reduce flickering
|
|
and add smoother scrolling.
|
|
|
|
Two ZChallenges are now sent between copies of SZModem
|
|
to allow for additional information to be passed -
|
|
version numbers, flags, etc.
|
|
|
|
Added provisions for LARGE Advance transfer lists.
|
|
(See Above). The new large list allows the sender to
|
|
send file descriptions along with the usual file info.
|
|
|
|
Fixed the TLIST and RLIST displays so they scroll the
|
|
corrent number of lines.
|
|
|
|
Added "/FL" switch for a received file log.
|
|
|
|
Version 1.21 Added more information to the log display.
|
|
|
|
Fixed a bug which caused file descriptions to be
|
|
garbage when receiving file from a normal Zmodem.
|
|
|
|
Added ability to process file lists. (See above:
|
|
File lists)
|
|
|
|
Added /FILEDESC option to specify additional
|
|
filedesc files.
|
|
|
|
Added the /CHECKSNOW option to enable snow checking.
|
|
|
|
Fixed the DELNUL command in SDOS so that it does not
|
|
try to delete files as they are being received.
|
|
|
|
Control-Break is now trapped and no longer aborts the
|
|
program.
|
|
|
|
Added CTRL-G option to allow users to page in chat
|
|
mode.
|
|
|
|
Version 1.30 Default internal output buffer size has been
|
|
changed from 256 bytes to 512 bytes.
|
|
|
|
Revised overlay code so hopefully SZMODOVR.EXE can
|
|
be used by multiple nodes on a network without
|
|
difficulty.
|
|
|
|
Added file compression capability. LZW compression
|
|
routines will speed up the transmission of most
|
|
non-compressed data.
|
|
|
|
Default internal input/output buffer sizes
|
|
re-adjusted to 1k and 6k respectively.
|
|
|
|
Added a simple sysop mail reader to allow the sysop
|
|
to read mail while transfer is in progress.
|
|
|
|
Fixed a bug with the ZChallenges that caused SZModem
|
|
to not abort if the Zchallenges were not responded
|
|
to.
|
|
|
|
Included a "Small" version which is even smaller than
|
|
the overlay version. Left out are the games module
|
|
and the mail reader module. The filename is
|
|
SZMODSML.EXE.
|
|
|
|
Added a zip viewer to SimDos. The command "ZIPVIEW
|
|
<filename>" will display the file directory of a
|
|
zip file.
|
|
|
|
Version 1.31 Added DEBUG command to simdos to allow users to
|
|
browse through files in a hexadecimal mode.
|
|
|
|
EGA/VGA 43/50 line modes are available with the
|
|
/EGA command line switch.
|
|
|
|
If SZTURBO is enabled and soft (Xon/Xoff) flow
|
|
control is enabled, the SZTURBO will automatically
|
|
be disabled.
|
|
|
|
Added SZCONFIG.EXE configuration utility.
|
|
|
|
/DL command line will enable a DSZ.LOG file log
|
|
for compatibility with various bbs programs.
|
|
|
|
Version 1.40 REMOVED FOSSIL SUPPORT
|
|
There was just too little demand for use of the fossil
|
|
interface routines and considering the overhead it was
|
|
adding (an additional jump and compare for every
|
|
async function can add up), the code was removed and
|
|
the INTERNAL routines are now accessed directly.
|
|
|
|
Major serial code revisions. On locked baud modems,
|
|
the keyboard I/O shouldn't slow down quite as bad
|
|
as before. Chat may still appear choppy though.
|
|
|
|
Added a DORINFOx.DEF path to SZCONFIG.EXE. You may
|
|
now set the path that SZModem will look for
|
|
DORINFOx.DEF with SZCONFIG.EXE.
|
|
|
|
Added CFGPATH parameter to specify path to
|
|
the SZMODEM.CFG file.
|
|
|
|
Version 1.41 Added information on HandShaking to docs.
|
|
|
|
Added handshaking options to SZCONFIG.EXE.
|
|
|
|
Added locked baud capabilities with the "/LOCK"
|
|
parameter.
|
|
|
|
Version 1.42 Fixed minor bug with command line options. Command
|
|
line options now override environment vars at all
|
|
times (i.e. SZMODEM port 2 would override SET DSZPORT=
|
|
1)
|
|
|
|
If transfer times out, szmodem will return errorlevel
|
|
of 1.
|
|
|
|
DSZLOG is now appended to rather than rewritten
|
|
by SZMODEM.
|
|
|
|
Fixed problem with /CFGPATH causing files to be
|
|
written to the root directory.
|
|
|
|
Version 1.43 Added abbreviations "/SZT" for /SZTURBO and "/DT" for
|
|
delay time.
|
|
|
|
Added the "BROWSE" command to simdos. Browse will let
|
|
you scroll up and down within a file.
|
|
|
|
Fixed problem with received file path.
|
|
|
|
Altered some code in the Z_challenge routine to
|
|
compensate for a bug in QMODEM (Qmodem does not
|
|
understand Z_Challenge requests which caused
|
|
szmodem to abort the xfer)
|
|
|
|
Altered some code to hopefully fix a glitch or
|
|
two at high speeds. (14,400 and 19,200 baud may
|
|
have gotten some aborts due to "header is fubar"
|
|
messages. This should now be fixed)
|
|
|
|
Version 1.44 Some cosmetic improvements and minor bug fixes.
|
|
|
|
Added registration request.
|
|
|
|
Added support for nonstandard IRQ/address
|
|
|
|
Version 1.50 Added SZTETRIS! Available from the games menu!
|
|
|
|
default delay time lowered to 2 seconds.
|
|
|
|
Replaced the more-or-less meaningless ZFRAME
|
|
status item with a realtime-updated CPS display.
|
|
|
|
With the internal tetris, SZMODEM.EXE got too big
|
|
to be usable; with some efficiency fixes, SZMODOVR
|
|
and SZMODSML became about the same, so now we only
|
|
distribute one version.
|
|
|
|
The SZXFER$$.LST transfer list is now deleted after
|
|
szmodem is completed.
|
|
|
|
Shrunk the size of the control-key line at the
|
|
bottom of the screen a bit to provide for additional
|
|
screen space in sztetris, simdos, etc. Two extra
|
|
lines can really make a difference!
|
|
|
|
|
|
Credit to Other Authors
|
|
-----------------------
|
|
|
|
1) Turbo Pascal Zmodem Source. This software was built up from a rather
|
|
buggy source code of Zmodem in turbo pascal. The code did not list
|
|
an author.
|
|
|
|
2) ASYNC11 package by Mark Shultz. This excellent package provides
|
|
for portions of SZModem's async support. The fossil interface is
|
|
written by myself, but I also integrated these ASYNC11 internal
|
|
routines to provide support for users without fossils.
|
|
|
|
Registration
|
|
------------
|
|
SZModem represents many hours of programming and debugging. If you find
|
|
this software useful, then please register your copy to support my efforts. I
|
|
can not continue to work on major projects like this without sufficient
|
|
compensation.
|
|
The requested registration fee is $25. That will get you a disk
|
|
containing the latest version of SZMODEM and place you on my mailing list for
|
|
notification of upcoming releases. Included will be a utility which will
|
|
allow you to register your copy of szmodem as well as any copies which you
|
|
may receive in the future. Both disk formats (3.5" and 5.25" will be included)
|
|
To register, please mail in the included REGISTER.FRM to the following
|
|
address along with you check. (Sorry, but I cannot except credit cards)
|
|
|
|
Scott Baker
|
|
6431 Tierra Catalina #48
|
|
Tucson, AZ 85718
|
|
|
|
I may also be reached through my online bulletin board:
|
|
|
|
The Not-Yet-Named BBS
|
|
300,1200, 2400 baud
|
|
(602) 577-3650 <Node 1>
|
|
(602) 577-3419 <Node 2>
|
|
Tucson, AZ
|
|
|
|
The BBS always has the latest copy of SZModem (and any of my other
|
|
projects) available for downloads. We are also part of FidoNet and RBBSNET
|
|
and offer several file nad message areas.
|