textfiles/computers/DOCUMENTATION/techinfo.txt

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.