645 lines
22 KiB
Plaintext
645 lines
22 KiB
Plaintext
Contents
|
|
--------
|
|
|
|
- Smodem protocol overview
|
|
- Multiplexed Serial Link Protocol (MSLP)
|
|
- Command line options
|
|
- Error levels
|
|
- Error messages
|
|
- Keyboard
|
|
- Menu options
|
|
|
|
|
|
Smodem protocol overview
|
|
------------------------
|
|
|
|
Smodem is a new generation file transfer protocol. Unlike older protocols,
|
|
like Zmodem, it has a separate low level multiplexed transfer layer (MSLP)
|
|
and a high level file transfer layer. This new design simplifies protocol
|
|
design and will give a maximum efficiency of as high as 99,5%.
|
|
|
|
Multiplexing has made it possible to send one or more files in one
|
|
continuous stream without any breaks between files. This will boost
|
|
multiple file transfers dramatically.
|
|
|
|
Multiplexing has also made it possible to add a full screen ANSI-BBS
|
|
terminal emulator with a local full featured line editor and colored
|
|
back scroll buffer of unlimited size to Smodem. Locally buffered terminal
|
|
emulation allows you to chat during full speed bidirectional file transfers.
|
|
|
|
The protocol has a symmetrical nature. You can connect Smodem with itself
|
|
by looping transmitted characters back to the receiver. There is no reason
|
|
to limit transfers in one direction. Smodem will transfer files in both
|
|
directions at the same time without noticeable performance loss.
|
|
|
|
Smodem detects DESQview and DPMI (Windows, OS/2) and will free all unused
|
|
processor capacity to the host system.
|
|
|
|
Smodem is *totally* written in the C language and compiled with Microsoft
|
|
Visual C++ v1.0 compiler using full optimizations for the i286 CPU. It
|
|
needs over 200KB free memory to function properly and more if you want
|
|
to shell from Smodem. There is no magical multitasking to continue file
|
|
transfer if you drop to DOS!
|
|
|
|
|
|
Multiplexed Serial Link Protocol (MSLP)
|
|
---------------------------------------
|
|
|
|
MSLP has the capability to manage 32 independent channels simultaneously.
|
|
Every single channel uses a traditional two phase ack/nak type subprotocol.
|
|
Maximum efficiency is achieved by using multiple parallel channels
|
|
simultaneously to keep the transmitter busy.
|
|
|
|
Maximum packet size floats between 16 to 1024 bytes. Transfer errors will
|
|
reduce packet size depending on error frequency. One important detail is,
|
|
that MSLP needs to resend only failed packets. The transmitter window size
|
|
(total size of transmitted packets which have not been acknowledged) can be
|
|
limited to get faster response.
|
|
|
|
The packet frame contains one byte for channel number and two bytes
|
|
for a 16-bit CCITT(ITU)-CRC. (Same algorithm, which is used in error
|
|
correcting modems.) Acknowledgements and enquiries will be included
|
|
in the packet frame when needed.
|
|
|
|
Packet separators contain two bytes. If those two bytes are found in
|
|
transferred data, one byte is inserted for capsulation. The possibility
|
|
to find those separator bytes in random data is so small, that it will
|
|
not affect protocol efficiency like old style one byte separators do.
|
|
|
|
Maximum efficiency in one-direction error free transfers will be:
|
|
|
|
max packetsize 1024
|
|
--------------------------- = -------- = 0.9951 = 99.5%
|
|
max packetsize + frame size 1024 + 5
|
|
|
|
If packet size is limited to 256 bytes, the efficiency will be 98.1% and
|
|
still better than original Zmodem!
|
|
|
|
If the data link can not transfer some special characters, then the
|
|
traditional character encapsulation mode could be activated. This mode
|
|
encapsulates selected character codes, which inflicts performance about
|
|
0.4% + additional 0.4% for every selected code.
|
|
|
|
If the data link is limited to 7 data bits, then a special bit collection
|
|
mode could be activated. The highest bits for every seven bytes are
|
|
collected to one byte. This collection inflicts performance about 12.4%
|
|
and doubles character encapsulation possibility.
|
|
|
|
Maximum transfer line correction mode of MSLP uses five characters to
|
|
transmit four characters using only printable 7-bit ASCII codes. This
|
|
mode should work on almost every non transparent transmission line.
|
|
Maximum correction mode inflicts performance 20%. It should be used only
|
|
for test purposes, if default settings do not work, or, if limitations
|
|
of transfer line are unknown or too complex to handle with separate
|
|
adjustments.
|
|
|
|
|
|
Command line options
|
|
--------------------
|
|
|
|
/-
|
|
|
|
Disables MSLP initialization messages. This option prevents user
|
|
information to scroll out from screen in some situations. See also
|
|
/l and /L options.
|
|
|
|
/+
|
|
|
|
Displays transfer statistics screen. You can add this option for your
|
|
convenience. Without this option you can still open statistics screen
|
|
with F2 key.
|
|
|
|
/0
|
|
|
|
Special option (rs-port close). Try this if program hangs when you
|
|
exit from Smodem.
|
|
|
|
/1
|
|
|
|
Special option (16550 buffer). Try this if protocol hangs or you get
|
|
receiving errors with 16550 type uart.
|
|
|
|
/@:setupfile (Pro version only)
|
|
|
|
Reads setup parameters from specified file. If your parameters doesn't
|
|
fit to the command line limits (128 characters) you can use smodem
|
|
environment setting to expand this limit or you can use external file
|
|
with this option.
|
|
|
|
/a:addr
|
|
|
|
Uses special uart chip address (100..3ff). You need this parameter if
|
|
you are not using one of the standard communication ports COM1-COM4.
|
|
See also /p: and /i: options.
|
|
|
|
/A:file (Pro version only)
|
|
|
|
Selects ASCII capture file name. Normally terminal screen is captured
|
|
in binary format for colored backscroll. This option enables capturing
|
|
to file, which you can read using a standard ASCII browser.
|
|
|
|
/b
|
|
|
|
Uses black and white colors. This is normally detected automatically.
|
|
Use this when you use monocrome display with color adaptor. See also
|
|
/B option.
|
|
|
|
/B
|
|
|
|
Forces to use colors. This is normally detected automatically.
|
|
Use this when you use computer with color monitor to control computer
|
|
with black and white video adapter.
|
|
|
|
/c
|
|
|
|
Disables carrier detection. You need this option if you are dialing out
|
|
from terminal mode (/t) or if your modem does not inform carrier status
|
|
properly. Some modems drop the carrier signal occasionally. Use this
|
|
option if you get erraneous "Carrier lost" messages.
|
|
|
|
/C
|
|
|
|
Enables maximum corrections for a non transparent transfer line. This
|
|
option is only for test purposes. Use it only if you have problems to
|
|
initiate file transfer or transfer hangs. If this option removes your
|
|
problem, then it is possible to configure Smodem to work properly.
|
|
See also /I, /I:, /O, /O:, /h and /H options.
|
|
|
|
/d
|
|
|
|
Downloads subsequent files and selects default download path. After /d
|
|
parameter you can enter download directory paths or file names or a list
|
|
of them with at (@) sign. You have to use this option for file names only
|
|
when you need to force received filename different than original filename
|
|
and limit the number of received files. Only first download directory is
|
|
used to store downloaded files but every directory is scanned for
|
|
duplicates before accepting new files. See also /U, /u, /f, /o, /j, /w,
|
|
/R, /N, /x and /X options.
|
|
|
|
/D
|
|
|
|
Download startup with download trigger string ^XSMODEM^Y. This option
|
|
allows user to start uploading manually if the BBS software can not
|
|
request files automatically from the user. It is also possible to
|
|
activate upload selection in terminal program with this alternate trigger
|
|
string. Default trigger string is ^XSMODEM^X. ^X is ASCII character 18h
|
|
and the alternate character ^Y is 19h. See also /F, /U, /u and /d options.
|
|
|
|
/e:sec
|
|
|
|
Exits after inactivity (0..600 sec) when all file transfers done. This
|
|
option is useful in BBS environment to stop chatting when file transfer
|
|
is done and user is not chatting any more. There is a fixed delay of 120
|
|
seconds at the beginning of transfer to allow user to select files to
|
|
upload. See also /E: and /T: options.
|
|
|
|
/E:sec
|
|
|
|
Exits after delay (0..600 sec) when all file transfers done. This option
|
|
is useful in BBS environment to stop chatting when file transfer is done.
|
|
There is a fixed delay of 120 seconds at the beginning of transfer to
|
|
allow user to select files to upload. See also /e: and /T: options.
|
|
|
|
/f (Pro version only)
|
|
|
|
Frees up/download path restrictions. If you specify this option, then
|
|
user from other end of connection can download from and upload into any
|
|
directory in your computer. Use with care! You have to use this option
|
|
if you want to select separate download directory from download dialog.
|
|
|
|
/F
|
|
|
|
Removes control codes from startup trigger string. Some transmission
|
|
lines can not handle ^X and ^Y codes, which are used in trigger string
|
|
of Smodem. With this option no control codes are sent to the line. It
|
|
is also necessary to add /C or /O: option to prevent sending of ^X codes
|
|
in transmitted data. See also /D, /C and /O: options.
|
|
|
|
/g
|
|
|
|
Disables default terminal log file. Default name is smodem.$$$.
|
|
Log is used for coloured back scroll buffer. This log is not in ASCII
|
|
format. You can not read it with editor. See also /g: and /G options.
|
|
|
|
/g:file
|
|
|
|
Selects terminal log file name. This option changes default log file
|
|
name SMODEM.$$$. You can also specify different drive or directory for
|
|
the log file. See also /G and /g options.
|
|
|
|
/G
|
|
|
|
Removes terminal log file after use. Normally log file is saved for
|
|
later use. With this option log file will be removed after use.
|
|
See also /g and /g: options.
|
|
|
|
/h
|
|
|
|
Disables rts/cts flow control. Normally rts/cts handshakes are used
|
|
to control modem buffering. Use this option if your modem does not
|
|
support this kind of action. See also /H and /n options.
|
|
|
|
/H
|
|
|
|
Enables xon/xoff flow control. Use this option only if your modem
|
|
does not support rts/cts handshakes because it reduces maximum transfer
|
|
speed. See also /h option.
|
|
|
|
/i:irq
|
|
|
|
Uses special uart chip irq (2..15). You need this parameter if your
|
|
communication port irq is changed from default setting or you are
|
|
using special uart chip address. See also /p: and /a: options.
|
|
|
|
/I:hex[-hex]|S|X (Pro version only)
|
|
|
|
Encapsulates specified input characters. You can enter only one character
|
|
code or a range on codes. There are two special codes available. Code S
|
|
will use a 7-bit transmission line and code X will use maximum
|
|
encapsulation mode. See also /O: and /C options.
|
|
|
|
/j
|
|
|
|
Disables auto download. This option prevents downloads totally.
|
|
It should be used in BBS systems which do not support bidirectional
|
|
file transfers when downloading from BBS system. See also /r option.
|
|
|
|
/J (Group chat version only)
|
|
|
|
Adds user name into transfer log. This option is useful when creating
|
|
special doors for user supported file transfers. All transfers can be
|
|
logged into same log file with the user name.
|
|
|
|
/k
|
|
|
|
Disables wild cards. This option can be used in BBS systems to prevent
|
|
users from downloading files from upload directory without specifying
|
|
full filename. See also /j option.
|
|
|
|
/l:lines
|
|
|
|
Selects number of rows (20-50) from bottom of the screen. If your BBS
|
|
system displays user information at the top of the screen, then you
|
|
can reserve part of the screen from this information. See also /L: option.
|
|
|
|
/L:lines
|
|
|
|
Selects number of rows (20-50) from top of the screen. If your BBS
|
|
system displays user information at the bottom of the screen, then you
|
|
can reserve part of the screen from this information. See also /l: option.
|
|
|
|
/m
|
|
|
|
Disables error messages. In BBS system there is no need to show error
|
|
messages locally. This option hides them. See also /q and /q: options.
|
|
|
|
/M:file (Pro version only)
|
|
|
|
Enables message file display. This option is useful when you build a
|
|
host system using Smodem. Smodem displays the contents of specified
|
|
file to the remote user. You can create a new message file before Smodem
|
|
is started and during external command execution. See also /S: and /@:
|
|
options.
|
|
|
|
/n
|
|
|
|
Disables slow RTS handshakes from disk operations. This option may give
|
|
slightly better performance or it can ruin the whole thing depending
|
|
on your hardware performance. Some modems need this option to work
|
|
properly. See also /h option.
|
|
|
|
/N (Group chat version only)
|
|
|
|
Disables "Press enter to join group chat." prompt. This option is
|
|
available only in the Group chat version for PCBoard.
|
|
|
|
/o
|
|
|
|
Allows to overwrite files. Without this option you can not download
|
|
files which already exists on your disk. You can still resume aborted
|
|
downloads. See also /j and /w options.
|
|
|
|
/O:hex[-hex]|S|X (Pro version only)
|
|
|
|
Encapsulates specified output characters. You can enter only one
|
|
character code or a range on codes. There are two special codes
|
|
available: Code S will use 7-bit transmission line and code X will use
|
|
maximum encapsulation mode. See also /I:, /C and /F options.
|
|
|
|
/p:port
|
|
|
|
Selects com port number (1..4). This setting is mandatory. Without this
|
|
or corresponding setting, you will only get internal help information.
|
|
See also /a: and /i: options.
|
|
|
|
/P:prompt
|
|
|
|
Displays user defined prompt. With this option you can enter 1-39
|
|
characters long prompt to your local line editor.
|
|
|
|
/q
|
|
|
|
Quiets alarm bell. This option prevents you to hear warning message
|
|
beeps and yelling noise. You can change the quiet status from menu.
|
|
See also /q: and /m options.
|
|
|
|
/q:hh-hh (Pro version only)
|
|
|
|
Disables alarm bell at specified hours. This option lets you to hear
|
|
warning message beeps and yelling noise during selected time range.
|
|
You can still change the quiet status from menu. See also /q and /m
|
|
options.
|
|
|
|
/r
|
|
|
|
Enables auto upload. If you specify this option, then user from other
|
|
end of connection can download files from your computer. See also /f
|
|
option.
|
|
|
|
/R
|
|
|
|
Allows to renumber files. Normally existing files are overwritten or
|
|
transfer is aborted. When this option is enabled, new files are
|
|
renumbered to prevent conflicts. For example file ABC.DEF is renamed
|
|
to ABC.DE0 and next ABC.DEF is renamed to ABC.DE1. See also /R option.
|
|
|
|
/s:speed
|
|
|
|
Changes dte baud rate (50..115200) using 8,N,1 configuration. If this
|
|
parameter is omitted, then baud rate and line parameters are reserved
|
|
on their current values.
|
|
|
|
/S:file (Pro version only)
|
|
|
|
Enables external command shell. This option is useful when you build a
|
|
host system using Smodem. External command shell is a program or batch file,
|
|
which interpretes commands entered by the remote user. See also /M: and /@:
|
|
options.
|
|
|
|
/t (Pro version only)
|
|
|
|
Enables terminal mode. In this mode Smodem does not send initialization
|
|
strings until it receives one. You may need ansi.sys or some replacement
|
|
for full ANSI support.
|
|
|
|
/T:min (Pro Version only)
|
|
|
|
Exits after selected time. Normally users can stay unlimited time in
|
|
transfer protocol. This option limits this time. See also /T option.
|
|
|
|
/T (Pro Version only)
|
|
|
|
Disables time limit while transferring. Normally time limit is checked
|
|
during file transfers. This option allows to transfer longer than time
|
|
limit but still prevents to stay chatting after such transfer.
|
|
|
|
/u
|
|
|
|
Uploads subsequent files and selects default upload path(s). After /u
|
|
parameter you can enter upload directory paths or file names or a list
|
|
of them with 'at' (@) sign. You can enter as many upload directories
|
|
as you need. All upload directories will be scanned when uploading
|
|
a file without pathname. See also /U, /d, /f, /k and /y options.
|
|
|
|
/U
|
|
|
|
Requests subsequent files and selects download path(s). After /U
|
|
parameter you can enter download directory names, file names or list
|
|
of directory or file names with at (@) sign. You have to use this
|
|
option only for requesting files for download. Only first download
|
|
directory is used to store downloaded files but every directory is
|
|
scanned for duplicates before accepting new files. See also /d, /u,
|
|
/f, /o, /j, /w, /R, /N, /x and /X options.
|
|
|
|
/v:mode
|
|
|
|
Changes default packet and transmitting window size. Possible values
|
|
are T(iny), S(mall), C(ompact), M(edium), L(arge) and H(uge) (default).
|
|
Larger values will give slightly better throughput. Smaller values will
|
|
give much faster terminal response.
|
|
|
|
/V
|
|
|
|
Disables virtual screen memory when used in DESQview. This option has
|
|
meaning only when used in DESQview environment. In some cases there are
|
|
problems to update display properly. If you can not change virtual
|
|
display settings from DESQview, then you have to use this option to correct
|
|
the problem.
|
|
|
|
/w
|
|
|
|
Disables resumed downloads. Normally file transfer will continue
|
|
if it has broken in some reason. This option can be used in BBS systems
|
|
to prevent users to resume uploads in some reason. See also /x option.
|
|
|
|
/W[:init] (Pro version only)
|
|
|
|
Wait for carrier and drop dtr at exit. This option is useful when you
|
|
build a host system using Smodem. Using additional init string you can
|
|
dial out (ATDT<number>) or enable autoanswer (ATS0=1).
|
|
|
|
/x
|
|
|
|
Removes aborted downloads. This option can be used in BBS system which
|
|
does not support resumed uploading. See also /w and /X options.
|
|
|
|
/X
|
|
|
|
Enables aborted download entries to transfer log file. This option
|
|
is added to get more specified information about file transfers. Normally,
|
|
when upload is aborted, the BBS system will not be informed to remove
|
|
aborted file. See also /x, /w and /z: options.
|
|
|
|
/y
|
|
|
|
Removes successfully uploaded files. This option can be used in some
|
|
special situations to keep upload directory automatically clean.
|
|
|
|
/z:file
|
|
|
|
Enables file transfer log file. Created log file is DSZLOG compatible.
|
|
File transfer information is appended to the end of this file. If there
|
|
is no /z: parameter, then DSZLOG environment string will be used.
|
|
See also /X option.
|
|
|
|
|
|
Error messges
|
|
-------------
|
|
|
|
Can not open file transfer log file: nnn
|
|
|
|
Transfer log is not available for some reason.
|
|
Check path and directory rights.
|
|
|
|
Carrier lost.
|
|
|
|
Carrier signal dropped from modem. Use /c option to disable
|
|
carrier check.
|
|
|
|
CTS signal is not ready.
|
|
|
|
Modem is not ready for communication. Use /h to disable CTS.
|
|
|
|
Download aborted
|
|
|
|
Remote station can not receive file for some reason.
|
|
|
|
Download request denied
|
|
|
|
Attempt to download files when it is not allowed.
|
|
|
|
Duplicate file ignored
|
|
|
|
Same file has already queued for upload.
|
|
|
|
Error initializing rs-port.
|
|
|
|
Specified rs-port does not exist. Try /a and /i options to correct.
|
|
|
|
Fatal internal error
|
|
|
|
Internal protocol check error.
|
|
|
|
File already exist
|
|
|
|
Uploaded file already exists and is not allowed to overwrite.
|
|
|
|
File already transferred
|
|
|
|
Uploaded file has already been transferred.
|
|
|
|
File not found: nnn
|
|
|
|
Up-/download list file not found. Check path and command syntax.
|
|
|
|
File open error
|
|
|
|
Can not open file for some reason.
|
|
|
|
File read error
|
|
|
|
Disk read error while sending file.
|
|
|
|
File size error
|
|
|
|
File size has changed unexpectedly during transfer.
|
|
|
|
File write error
|
|
|
|
Disk write error while receiving file.
|
|
|
|
Incompatible program version.
|
|
|
|
Remote station has a different program version.
|
|
|
|
Invalid parameter: nnn
|
|
|
|
Specified option value is out of range. Check available range.
|
|
|
|
Initialization cancelled.
|
|
|
|
User interrupted initialization phase.
|
|
|
|
Initialization interrupted.
|
|
|
|
Remote station interrupted initialization phase.
|
|
|
|
MSLP data link error.
|
|
|
|
Protocol has lost synchronisation and terminated.
|
|
|
|
MSLP data link failure.
|
|
|
|
Excessive errors in transmit line detected. Try /C option
|
|
for maximum transmit line corrections.
|
|
|
|
MSLP data link interrupted.
|
|
|
|
Remote station interrupted link.
|
|
|
|
MSLP data link terminated.
|
|
|
|
Link terminated by remote station.
|
|
|
|
MSLP data link time-out.
|
|
|
|
Remote station stopped responding.
|
|
|
|
Waiting for MSLP termination... cancelled
|
|
|
|
User interrupted termination phase.
|
|
|
|
Waiting for MSLP termination... time-out
|
|
|
|
Remote station stopped responding at termination phase.
|
|
|
|
Out of memory.
|
|
|
|
Not enough conventional memory to initialize protocol.
|
|
|
|
Requested file not found
|
|
|
|
Requested file does not exist or wild cards have been disabled.
|
|
|
|
This test release is not valid!
|
|
|
|
New version is available and this version is not supported.
|
|
New versions are available from many sites.
|
|
|
|
Too many files to transfer
|
|
|
|
Out of memory to queue more files to transfer.
|
|
|
|
Unknown option: nnn
|
|
|
|
Used option is unknown. Check available options.
|
|
|
|
Upload aborted
|
|
|
|
Remote station can not send file for some reason.
|
|
|
|
Upload request denied
|
|
|
|
Attempt to upload files when it is not allowed.
|
|
|
|
|
|
Error levels
|
|
------------
|
|
|
|
Available error leves are:
|
|
|
|
0 transfer completed
|
|
1 download error
|
|
2 upload error
|
|
3 upload & download error
|
|
4 (or greater) initialization error
|
|
|
|
|
|
Keyboard
|
|
--------
|
|
|
|
Use esc to hide popup windows and dialogs. Use cursor keys to edit
|
|
your entry or to move back scroll window position. You can open menu
|
|
by pressing Alt+letter or F10.
|
|
|
|
|
|
Menu options
|
|
------------
|
|
|
|
File/About Shows information about program version.
|
|
File/Tools Opens file manager window.
|
|
File/Download Displays download selection dialog.
|
|
File/Upload Displays upload selection dialog.
|
|
File/Edit Batch Displays selected files.
|
|
File/Yell Sends calling noise to other end of connect.
|
|
File/Erase Log Erases backscroll buffer file contents.
|
|
File/DOS Shell Drops to dos temporarily.
|
|
File/Exit Aborts all file transfers and terminates protocol.
|
|
Set/Packet size Selects one of the possible packet/window sizes.
|
|
Set/Exit when done Terminates protocol after file transfer if checked.
|
|
Set/Command mode Enabled or disables external command processing.
|
|
Set/Quiet Quiets alarm sounds if checked.
|
|
Set/Clear screen Clears terminal screen.
|
|
View/Statistics Displays transfer statistics.
|
|
View/Log File Displays back scroll buffer.
|