home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frostbyte's 1980s DOS Shareware Collection
/
floppyshareware.zip
/
floppyshareware
/
HSLK1122.ZIP
/
HSLINK.DOC
< prev
next >
Wrap
Text File
|
1991-11-22
|
73KB
|
2,015 lines
HS/Link
High Speed File Transfer Protocol
Version 1.0ßC6 (11/22/91)
Copyright (C) 1991 Samuel H. Smith
All Rights Reserved
PLEASE REFER TO HSLINK.NEW
FOR DETAILS OF RECENT PROGRAM CHANGES!
HS/Link is a high speed, full streaming, full-duplex, bi-
directional, batch file transfer protocol with advanced full-
streaming-error-correction. Each side of the link is allowed to
provide a list of files to be sent. Files will be sent in BOTH
directions until both sides of the link are satisfied.
HS/Link is not _just_ another bidirectional protocol, it is also
a very fast protocol for normal downloading and uploading,
incorporating some new ideas (such as Full-Streaming-Error-
Correction and Dynamic-Code-Substitution) to make things happen a
bit faster and with greater reliability.
This program is not free! You are hereby licensed to use this
program for a trial period of 30 days free of charge. If, after
30 days, you decide that you would like to continue using HSLINK,
you must complete the registration form (REGISTER.FRM) and return
it to the author with the required registration fee enclosed.
Please feel free to distribute HSLINK to your friends and local
BBSes as long as all of the files in this archive are included
and unmodified.
See the LICENSE AND REGISTRATION section of this document for
more details.
1
Table of Contents
_________________________________________________________________
Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
Summary of Key Features . . . . . . . . . . . . . . . . . . . 4
Command Line Format . . . . . . . . . . . . . . . . . . . . . 5
Basic Command Line Options . . . . . . . . . . . . . . . . . 5
Full Screen Status Display . . . . . . . . . . . . . . . . . 6
HS/Link Configuration Manager . . . . . . . . . . . . . . . . 7
Advanced Command Line Options . . . . . . . . . . . . . . . 12
User Examples . . . . . . . . . . . . . . . . . . . . . . . 16
Calling HS/Link from COMM programs . . . . . . . . . . . . 17
Calling HS/Link from BBS programs . . . . . . . . . . . . . 18
BBS Requirements . . . . . . . . . . . . . . . . . . . 18
Buffered ASYNC chips . . . . . . . . . . . . . . . . . . . 19
Flow Control . . . . . . . . . . . . . . . . . . . . . . . 19
Full Streaming Data Transmission . . . . . . . . . . . . . 20
Full Streaming Error Recovery . . . . . . . . . . . . . . . 21
Dynamic Code Substitution . . . . . . . . . . . . . . . . . 21
Transmission of Minimal Blocks . . . . . . . . . . . . . . 22
DSZLOG Statistic Logging . . . . . . . . . . . . . . . . . 23
Information Messages . . . . . . . . . . . . . . . . . . . 28
License and Registration . . . . . . . . . . . . . . . . . 32
LICENSE AGREEMENT FOR SHAREWARE DISTRIBUTORS . . . . . 32
Support . . . . . . . . . . . . . . . . . . . . . . . . . . 33
DISCLAIMER . . . . . . . . . . . . . . . . . . . . . . . . 33
2
Introduction
_________________________________________________________________
What is a file transfer protocol?
A file transfer protocol is a means of transferring information
from one computer to another. The protocol has the
responsibility of protecting against errors in transit, and
taking measures to correct any errors that are detected. The
design and implementation of a protocol can make the difference
between slow and unreliable communication, and fast and trouble
free communication.
Not all protocols are created equal. With today's high speed
modems, packet switched networks (such as PC Pursuit), and
expensive long distance charges, users demand more than ever that
files get through quickly and without corruption.
The HS/Link protocol is the result of years of communication
experience, and uses some very new and solid technology to see to
it that you can easily move files as quickly as possible, and
with the least amount of hassle.
The HSLINK program can be used from the DOS command line, from
BATCH files, or as an "external protocol" from most modern COMM
programs and BBS programs. If your favorite BBS does not yet
support the HS/Link protocol, please ask your SYSOP to install
it.
3
Summary of Key Features
_________________________________________________________________
* Speed.
HS/Link operates at or very near peak efficiency, often
reaching 98% or more with pre-compressed files and non-
buffered modems. Even higher speeds are possible with
buffered or error correcting modems. A number of features,
such as fast 32 bit CRC protection, Full-Streaming-Error-
Recovery and Dynamic-Code- Substitution, combine to give
maximum performance and security.
* Simple interface for beginners.
In many cases, HS/Link requires only the COM port number and
the filename to be transmitted. Configuration files are not
required. The program is easily installed in most COMM
programs that support external protocols. The HSLINK
program has multiple help screens, providing a quick
reference to the basic and advanced command line options,
including examples of how the program is used.
* Batch file transfers.
The protocol can handle any size batch of files, and can
take file specifications from either the command line or
from a listing file.
* Bi-directional options that really work.
The program can simultaneously upload and download with a
single host request. What's even better is how easy it is
to use... instead of a complex setup all you do is:
1) Tell the BBS the names of the files you want to
download, and then
2) Press PGUP (or whatever your COMM program uses to
UPLOAD files) and then tell your COMM program which
files to upload
By virtue of the BBS being told that it is sending files and
your COMM program telling HS/Link that it too is sending
files you then have a bidirectional transfer. There's
nothing else to set up. You use the familiar BBS interface
to request files to download and your COMM program's
familiar interface to tell it which files to upload. It
couldn't get easier!
* Aborted file crash recovery.
When desired, HS/Link can resume an aborted transfer,
verifying all existing data blocks to insure the resumed
file completely matches the file being transmitted. This
function can also update a file that has only a small number
of changed, added, or deleted blocks.
4
Command Line Format
_________________________________________________________________
To run the HSLINK program, a command line must be given. The
command line has the following format:
HSLINK [options] [SENDFILE] [@DRIVE:\PATH\FILELIST]
SENDFILE Indicates a list of files to be transmitted to
remote computer. The list may include the DOS
wildcard characters '?' and '*'. Specify ONLY
files to be transmitted; received file names are
determined automatically.
@FILELIST Transmit list of files contained in FILELIST to
remote computer. This is used when you want to
make a long list of files in advance, then
transmit them all with a single command. It is
also used by BBS programs to produce long batches
of downloads.
Anything shown in brackets "[]" is optional and may not need to
be specified for proper operation of HS/Link.
The HSLINK command line is NOT case sensitive, and will work when
typed in upper, lower or mixed case.
Please make sure that HSLINK.EXE is in a search PATH directory.
Basic Command Line Options
_________________________________________________________________
The most important command line options are -P (set COM port), -U
(set download file directory), and -HS (enable slow handshake).
-Pport This option specifies which COM port you are using.
Example: -P2
-Udir This option controls the destination directory for
downloaded files. Without this option, all download
files are placed into the current directory.
Example: -Uc:\bbsfiles
-HS Handshake Slow (send XOFF and/or lower RTS during disk
I/O). This option may be required if your computer is
unable to simultaneously access the disk and the COM
port. If you see frequent CRC error messages, even on
clean phone lines, you probably need to include -HS in
your command line.
To abort an HS/Link transfer, press Control-X four or more times.
5
Full Screen Status Display
_________________________________________________________________
Then HS/Link is operating, it produces a full screen status
display. This display is divided into four windows. Here is an
example of a status display:
╒═══ HS/Link Version 1.0ßC5 (11/21/91) Copyright 1991 Samuel H. Smith ═╕
│ [UNREGISTERED] Courtesy of The Tool Shop BBS (818) 891-6780. │
│ Command line: -@tolap.cfg TEST\*.ZIP -HS │
└───────────────────────────────────────────────────────────────────────────┘
╒═════════ Receiver (InComing Files) ════════╕ ╒══════ Settings ═══════╕
│ │ │ │
│ Finished. │ │ COM2 open at: 115200 │
│ │ │ Remote Serial#: NONE │
│ │ │ Remote Version: 1.0ßC5 │
│ │ │ Window: 8 │
└──────────────────────────────────────────────┘ │ Block size: 4096 │
│ XON/XOFF: ON │
╒════════ Transmitter (OutGoing Files) ══════╕ │ CTS handshake: OFF │
│ │ │ RTS handshake: OFF │
│ TEST\HSLINK.ZIP (51 blocks, 205871 bytes) │ │ Slow handshake: ON │
│ Block 31 (126976 bytes/w:3) 10132 ch/sec │ │ Resume: OFF │
│ │ │ Keep partial: ON │
│ │ │ Overwrite: ON │
└──────────────────────────────────────────────┘ └─ ^X^X^X^X to abort! ──┘
The first window contains the program identification and
copyright. When you register your copy of HSLINK, this window
will also show the registered serial number. Some warning
messages may also appear in this window
The "settings" window shows a summary of the various parameters
that can be altered with command line options.
The "receiver" window shows the status of files being received
from the remote system.
The "transmitter" window shows the status of files being
transmitted to the remote system.
If desired, the full screen status display can be turned off. To
do this, use the -NF command line option. When running in -NF
mode, a simple line-oriented status display will scroll down the
screen. This may be desired under some circumstances.
To stop this bleedthrough under DesqView or DoubleDOS, use the -
NV option to disable direct video writing. The result will be a
slightly slower display, but it will not bleed from one partition
to another.
6
HS/Link Configuration Manager
_________________________________________________________________
HSLINK includes the HS/Link Configuration Manager program,
HSCONFIG. With this program you can easily manipulate most of
HS/Link's many options.
The opening for HSCONFIG looks like this:
Node-3 L:\HSL >HSCONFIG
┌────────────────── New Configuration ─────────────────────┐
│ │
│ The specified configuration file cannot be located. │
│ │
│ This probably indicates that you are creating a new │
│ configuration for HS/Link. All options will be set │
│ to default values. │
│ │
│ Alternate configuration files can be specified on │
│ the command line to HSCONFIG. The default configuration │
│ file is HSLINK.CFG, and it may be located either in the │
│ current directory, or in any PATH directory. │
│ │
│ Press <ENTER> or <ESC> to continue. │
│ │
│ Index <ESC> │
└──────────────────────────────────────────────────────────┘
Can't find: HSLINK.CFG
7
The primary screen is the "Basic Settings" screen, which controls
the most important settings for HS/Link operation. The other
screens contain advanced settings that need not be changed until
you become more familiar with the program and begin to explore
the advanced capabilities.
╒════════════════════════ HS/Link: Basic Settings ════════════════════════╕
│ │
│ These are the most important settings for proper HS/Link operation │
│ │
│ COM port number (1-8) . . . . . . . . . . . 1 │
│ │
│ Directory for downloaded files. . . . . . . __________________________ │
│ │
│ Use "SLOW HANDSHAKE" during disk I/O. . . . N │
│ │
╘═════════════════════════════════════════════════════════════════════════╛
┌──────────────────── Welcome! ───────────────────────┐
│ Welcome to the HS/Link Configuration Manager. │
│ The easy way to handle HS/Link configuration files. │
│ │
│ Use the arrow keys to select entries on this page. │
│ Use the PgUp/PgDn keys to change pages. │
│ Press ESC to save changes when you are finished. │
│ │
│ Use the F1 key to get HELP at any prompt. │
└─────────────────────────────────────────────────────┘
PgDn [next page] PgUp [prior page] F1 [help] ESC [exit]
The HSCONFIG program contains context sensitive pop-up help for
each and every input prompt. Simply press the F1 key to get an
explanation of the current entry. For example:
┌───────────────────────────── -U ────────────────────────────────┐
│ -Udir > Download directory. │
│ │
│ This option controls the destination directory for downloaded │
│ files. Without this option, all download files are placed into │
│ the current directory. │
│ │
│ Index <ESC> │
└─────────────────────────────────────────────────────────────────┘
When in the online help system, press the SPACE and BACKSPACE
keys to select from the topics available at the bottom of the
window, and press ENTER to select a topic. Press ESCAPE to
return to the prior screen.
8
The "Advanced COM Settings" screen determines the settings of
many communications related options. See the following section,
"Advanced Options" for a description of each of these options.
╒═════════════════════ HS/Link: Advanced COM Settings ═══════════════════OVR═╕
│ │
│ These settings control advanced communication features │
│ │
│ Non-Standard COM base (in DECIMAL, 0 = standard COM port) . . . . 0░░░ │
│ │
│ Non-Standard COM IRQ (1-7, 0 = standard COM port) . . . . . . . . 0_ │
│ │
│ COM port open speed (300-115200, 0 = automatic) . . . . . . . . . 0_____ │
│ │
│ Effective modem-to-modem speed (0 = same as open speed) . . . . . 0_____ │
│ │
│ Enable CTS hardware handshake . . . . . . . . . . . . . . . . . . Y │
│ │
│ Enable RTS hardware handshake . . . . . . . . . . . . . . . . . . Y │
│ │
│ Enable XON/XOFF software handshake. . . . . . . . . . . . . . . . Y │
│ │
│ Enable Carrier Detect checking. . . . . . . . . . . . . . . . . . Y │
│ │
│ Preserve original time/date stamp on received files . . . . . . . Y │
│ │
╘════════════════════════════════════════════════════════════════════════════╛
PgDn [next page] PgUp [prior page] F1 [help] ESC [exit]
9
The "Advanced Optional Features" screen controls many advanced
protocol features. See the following section, "Advanced Options"
for a description of each of these options.
╒══════════════════ HS/Link: Advanced Optional Features ═════════════════OVR═╕
│ │
│ These settings control various optional features │
│ │
│ Attempt to Resume aborted transfers . . . . . . . . . . . . . . . N │
│ │
│ Keep partial files from aborted transfers . . . . . . . . . . . . N │
│ │
│ Allow received files to overwrite/modify existing files . . . . . N │
│ │
│ Enable file read/write buffering. . . . . . . . . . . . . . . . . Y │
│ │
│ Enable "Dynamice-Code-Substitution" logic . . . . . . . . . . . . Y │
│ │
│ Size of transmitted data blocks (64-4096 bytes/block) . . . . . . 1024 │
│ │
│ Number of blocks in transit before ACK is required (0-20) . . . . 8_ │
│ │
│ Disable transmission of ACK for each block received . . . . . . . N │
│ │
│ Force remote unit to use local option settings. . . . . . . . . . N │
│ │
╘════════════════════════════════════════════════════════════════════════════╛
PgDn [next page] PgUp [prior page] F1 [help] ESC [exit]
10
The "Screen Settings" screen allows you to control the format of
the status display screen, the colors to be used, and to enable
or disable direct-video screen updates.
╒════════════════════════ HS/Link: Screen Settings ══════════════════════OVR═╕
│ │
│ These settings control the screen format and colors │
│ │
│ Enable Full-Screen status display . . . . . . . . . . . . . . . . Y │
│ Enable direct video writing (turn off in DesqView/DoubleDOS/etc). Y │
│ │
│ Color of BORDER in full screen mode . . . . . . . . . . . . . . . 7__ │
│ Color of PROMPTS in full screen mode. . . . . . . . . . . . . . . 47_ │
│ Color of WINDOW TITLE in full screen mode . . . . . . . . . . . . 79_ │
│ Color of WINDOW CONTENTS in full screen mode. . . . . . . . . . . 31_ │
│ │
╘════════════════════════════════════════════════════════════════════════════╛
┌── Color Table ───────────────────────────────────────────────────┐
│ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 │
│ 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 │
│ 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 │
│ 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 │
│ 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 │
│ 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 │
│ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 │
│ 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 │
└──────────────────────────────────────────────────────────────────┘
PgDn [next page] PgUp [prior page] F1 [help] ESC [exit]
11
Advanced Command Line Options
_________________________________________________________________
The HS/Link protocol program has a number of command line
options, most of which are rarely needed, or which are provided
for advanced users to obtain maximum performance and flexibility.
-@fname
Uses fname as an alternate configuration file. Each line in
the specified file may contain a single command line option.
The default is to search PATH directories for HSLINK.CFG.
-!
Take priority. Locally specified -A, -HX, -S, and -W
settings will be used by the remote system.
-A
Disable transmission of ACK codes after each block. This
may improve transfer speeds under some conditions.
-Bbaud
Open COM port at 300..115200 (default=current port speed).
This option controls the speed at which the COM port will be
opened. Normally, the COM port speed can be determined from
hardware and need not be specified.
-C
Disable carrier detect checking.
-CB
Defines the border color in full screen mode.
-CM
Defines the main screen color in full screen mode.
-CT
Defines the window title color in full screen mode.
-CW
Defines the window contents color in full screen mode.
-Ebaud
Effective modem-to-modem baud rate.
This is used to estimate transfer times, and is included in
the DSZLOG output. (default=current -B setting)
12
-HC
Disables CTS hardware handshake.
CTS transmitter handshake is automatically enabled, but may
conflict with some unusual modem cables or serial ports. If
the CTS signal is not active when HSLINK loads, it will
automatically disable CTS handshake for you. Use the -HC
command to manually disable CTS handshake.
-HR
Disables RTS hardware handshake.
RTS receiver handshake is used when the slow-handshake
option is selected. This form of handshake causes the RTS
line to the modem to be lowered whenever the disk is being
accessed. Some unusual modem or cable arrangements may not
tolerate the RTS line being lowered. In this case, the RTS
handshake can be disabled with the -HR option.
-HS
Handshake Slow (send XOFF and/or lower RTS during disk I/O).
The slow handshake option is available for systems with slow
disk access. Use this if you get frequent CRC errors or COM
Overrun errors on otherwise clean lines. The slow handshake
option causes XOFF to be sent and/or RTS to be lowered
during any disk activity. Even when -HS is active, the
HS/Link protocol should transfer data very nearly as fast as
the slowest part of the link allows.
-HX
Disable XON/XOFF handshake.
XON/XOFF handshake is a software handshake scheme that
should work well on all combinations of modems and networks,
and is enabled by default. If you prefer not to use
XON/XOFF handshake, or you find that it is not required for
error-free transfer, you can disable it with the -HX option.
Note that both the sender and the receiver must
simultaneously disable XON/XOFF handshake, otherwise it will
remain in effect.
-K
Keep partial files from aborted transfers.
-O
Allow receive files to overwrite existing files.
-NB
Disable buffering of receive and transmit files.
13
-NC
Disable Dynamic Code Substitution logic.
Certain byte codes cannot be transmitted directly over the
COM link. For instance, the codes for Control-X, Control-S
and Control-Q must be "escaped" to prevent a conflict with
flow or program control.
The HS/Link protocol uses a new Dynamic Code Substitution
system to drastically reduce number protocol overhead and
"escape" codes needed to transmit certain data streams.
Highly compressed data files (such as ZIP and GIF files)
benefit the most, since they often have many byte codes that
cannot be transmitted directly over the COM link.
-NF
Disable Full screen mode. The standard status display takes
over the full screen (except the top 2 lines, which may
contain a BBS status line). This option bypasses the full
screen display and causes a line-oriented output to be used.
Use this option if your environment's screen management does
not allow a full-screen display.
-NM
Enable Minimal Blocks logic. Use with caution.
-NT
Stamp current file time. This option stamps the current
time/date on received files, instead of retaining the
original file time/date.
-NU
Block uploads. This option is used by BBS programs that
cannot (yet) cope with bidirectional uploads. It is used in
place of the -U option on the 'download' command line, and
has the effect of blocking any simultaneous upload requests
from a user.
-NV
Disable direct Video for DesqView/DoubleDOS/etc. Use this
option is you experience "bleeding" of the status display
from one partition to another.
14
-Pport
Use COM port 1..8 (default=1)
Channel I/O Port Interrupt
COM1 0x3F8 4
COM2 0x2F8 3
COM3 0x3E8 4
COM4 0x2E8 3
COM5 undefined
COM6 undefined
COM7 0x2E8 5
COM8 0x3E8 5
-PBbase
Set non-standard COM port base address (specify base address
decimal, NOT hex).
-PIirq
Set non-standard COM port IRQ level.
-R
Resume aborted transfer. The receiver and transmitter
will verify the contents of an existing file, and will begin
transmission at the first block that does not match. This
provides a reliable means of restarting an aborted transfer,
or of updating a modified file. You must also use -O to
recover aborted downloads.
-Ssize
Sets transmit block size 2..4096 (default=1024) Larger block
sizes may result in higher transfer speeds under clean line
conditions.
-Udir
Destination directory for received files (default=current
directory)
-Wwindow
Number of blocks allowed without ACK 0..20 (default=8)
Use -A to establish an "infinite" window (i.e. no ACK
required at all).
15
User Examples
_________________________________________________________________
HSLINK -?
Display a summary of HS/Link command line formats.
HSLINK -P1
Download from a BBS using HS/Link. COM1 will be used at the
current port speed. Received files will go into the current
directory.
HSLINK -P2 -Uc:\bbsfiles -K
Download from a BBS using HS/Link. COM2 will be used at the
current port speed. Received files will go into the
c:\bbsfiles directory. Partial files from aborted transfers
will be kept.
HSLINK -P1 -Uc:\bbsfiles -R -K -O
Continue an aborted download from a BBS using HS/Link. COM1
will be used at the current port speed. Received files will
go into the c:\bbsfiles directory.
HSLINK -Uc:\bbsfiles c:\uploads\*.zip
Download from a BBS using HS/Link. COM1 will be used at the
current port speed. Received files will go into the
c:\bbsfiles directory. Simultaneously upload all *.ZIP
files in the c:\uploads subdirectory.
HSLINK file1.zip file2.zip file3.zip
Upload to a BBS using HS/Link. COM1 will be used at the
current port speed. Simultaneously downloads selected files
from the BBS into the current directory.
HSLINK -b38400 -p2 -c -hs -hc -a file1.zip file2.zip
Communicate files with a laptop computer using port COM2 and
a three wire null modem cable.
16
Calling HS/Link from COMM programs
_________________________________________________________________
The HS/Link protocol can be easily installed in most modern COMM
programs. Specific instructions have been prepared for many
popular COMM programs, and are available in separate files for
download.
Communication program Instructions posted in
_____________________ _______________________
BOYAN 5.0 HS-BOYAN.ZIP
{COMMO} HS-COMMO.ZIP
GT POWER 15.50 HS-GT15.ZIP
PROCOMM PLUS and
PROCOMM PLUS TEST DRIVE HS-PCPTD.ZIP
QMODEM 4.3 HS-QMOD.ZIP
ROBO COMM 3.1 HS-RC31.ZIP
TELEMATE 2.1 HS-TMATE.ZIP
TELIX 3.1 HS-TELIX.ZIP
17
Calling HS/Link from BBS programs
_________________________________________________________________
The HS/Link protocol can easily be installed in most modern BBS
programs as an external protocol. Specific instructions have
been prepared for many popular BBS programs, and are available in
separate files for download.
BBS program Instructions posted in
___________________________ _______________________
GAP 5.1 HS-GAP51.ZIP
PCBOARD 14.5 HS-145.ZIP
PCBOARD 14.5a HS-145A.ZIP
PROBOARD 1.17 HS-PB117.ZIP
PRODOOR 3.43 HS-PROD.ZIP
Searchlight BBS HS-SLBBS.ZIP
Spitfire BBS version 3.0 HS-SF30.ZIP
UltraBBS version 2.08 HS-UB208.ZIP
Wildcat! BBS version 3.01 HS-WC301.ZIP
BBS Requirements
================
HS/Link's demands on a bulletin board program are extremely easy
to fill. The following is all that is necessary:
1) The protocol accepts either a filename to download or a list
of files of the form @DRIVE:\PATH\DOWNLIST.LST. The
protocol will send only one file if a filename (without
leading @) is sent or all of the files found in
C:\BBS\DOWNLIST.LST if @C:\BBS\DOWNLIST.LST is specified.
2) The protocol will create a DSZLOG compatible log file
indicating the names of all files transferred as well as
their status (refer to the DSZ standard and the "DSZLOG
Statistic Logging" section for the specific contents of the
file).
3) Any files found in the DSZLOG file which BBS did not tell
the protocol to SEND are assumed to have instead been
RECEIVED by the protocol. The BBS should then check for the
existence of such files and if found post them in the upload
directory.
If the BBS program is not yet able to cope with bidirectional
uploads, the -NU option can be used on the 'download' command
line to prevent attempts to perform a bidirectional upload.
18
Buffered ASYNC chips
_________________________________________________________________
The National NS16550AN is a pin compatible plug in replacement
for 8250 and 16450 serial chips. It contains hardware buffering
to allow faster operation in systems with high interrupt service
latency.
If you have an NS16550AN buffered UART chip, HS/Link will
automatically enable buffering for better performance with high
speed modems and multi-tasking environments.
Flow Control
_________________________________________________________________
Flow Control is required when the sending and receiving computers
or modems operate at different speeds, or when computers are
unable to simultaneously access disk drives and the COM port.
Flow Control is a software and/or hardware means of slowing down
the faster parts of the connection to prevent overloading the
slower parts of the system.
HS/Link uses both XON/XOFF (software) and RTS/CTS (hardware)
handshake when communicating with high speed modems or slow
packet switched networks. The protocol also uses a window
algorithm to suspend data transmission if the receiver does not
eventually respond to transmitted data.
XON/XOFF handshake is a software handshake scheme that should
work well on all combinations of modems and networks, and is
enabled by default. If you prefer not to use XON/XOFF handshake,
or you find that it is not required for error-free transfer, you
can disable it with the -HX option. Note that both the sender
and the receiver must simultaneously disable XON/XOFF handshake,
otherwise it will remain in effect.
The slow handshake option (-HS) is available for systems with
slow disk access. Use this if you get frequent CRC errors or COM
Overrun errors on otherwise clean lines. The slow handshake
option causes XOFF to be sent and/or RTS to be lowered during any
disk activity. Even when -HS is active, the HS/Link protocol
should transfer data very nearly as fast as the slowest part of
the link allows.
CTS transmitter handshake is automatically enabled, but may
conflict with some unusual modem cables or serial ports. If the
CTS signal is not active when HSLINK loads, it will automatically
disable CTS handshake for you. Use the -HC command to manually
disable CTS handshake.
19
RTS receiver handshake is used when the slow-handshake option is
selected. This form of handshake causes the RTS line to the
modem to be lowered whenever the disk is being accessed. Some
unusual modem or cable arrangements may not tolerate the RTS line
being lowered. In this case, the RTS handshake can be disabled
with the -HR option.
If you have frequent CRC errors or COM Overrun errors, which
persist in spite of the handshake-slow option (-HS), you should
consider upgrading your serial port from the usual 8250 to a
newer, buffered NS16550AN chip. The buffered chips are highly
recommended if you are operating at high baud rates (>9600) or
are accessing extended memory or are multi-tasking.
I have also had reports that use of large numbers of dos BUFFERS
in CONFIG.SYS can cause overrun errors. Try reducing the BUFFERS
setting to 10 or less, especially if you also use a DISK cache.
Some disk cache programs have also been reported to cause overrun
errors. Try turning the cache OFF before calling HSLINK, and
turning it back ON again after the transfer is completed.
Some older CGA type display adapters and BIOS combinations may
cause data loss during retrace delays (snow filtering). If you
experience unexplained data loss you may solve the problem by
adding either -NV (no direct video writes) or -NF (disable full
screen display) to the command line.
Full Streaming Data Transmission
_________________________________________________________________
The HS/Link protocol allows multiple data blocks to be
transmitted before an acknowledgement is required by use of block
numbers combined with a window algorithm.
The protocol also allows acknowledgements to be combined with
data flowing in the opposite direction, making it possible to
achieve full streaming simultaneously in both directions over a
full duplex communication link.
Even though the transmitters operate in full streaming mode, the
receivers normally will periodically acknowledge that data is
being received. This acknowledgement can be disabled with the -A
option.
20
Full Streaming Error Recovery
_________________________________________________________________
The HS/Link protocol has the unique ability to recover from many
transmission errors without breaking out of full streaming mode.
This is important with buffered modems or packet switched
networks with long turnaround times.
Conventional protocols, such as Zmodem, simply reposition the
transmitter after an error, requiring a retransmission of not
only the erroneous data, but also the entire stream of data that
was in transit at the time the error was detected.
The HS protocol can correct bad blocks without retransmitting
intermixed good blocks, resulting in excellent transfer speeds
under moderate noise conditions.
Dynamic Code Substitution
_________________________________________________________________
Certain byte codes cannot be transmitted directly over the COM
link. For instance, the codes for Control-X, Control-S and
Control-Q must be "escaped" to prevent a conflict with flow or
program control.
The HS/Link protocol uses a new Dynamic Code Substitution system
to drastically reduce number protocol overhead and "escape" codes
needed to transmit certain data streams.
Highly compressed data files (such as ZIP and GIF files) benefit
the most, since they often have many byte codes that cannot be
transmitted directly over the COM link.
The Dynamic Code Substitution feature can be disabled, if you
wish, with the -NC option.
21
Transmission of Minimal Blocks
_________________________________________________________________
The HS/Link protocol includes a Minimal Blocks feature, which
when activated, causes the protocol to strip away repeated
information from the protocol frames and transmit only the
minimal amount of information required for data flow.
This feature results in a savings of over 50% of the normal
protocol overhead characters in each block of data, while
retaining full data integrity. All data and control blocks are
fully protected by a 32 bit CRC calculation, even when Minimal
Blocks is in effect.
The final block in a file rarely ends on an exact transfer block
boundary. The HS/Link protocol automatically shortens the final
block, eliminating extraneous data transmission at the end of
file.
22
DSZLOG Statistic Logging
_________________________________________________________________
When you define the environment variable DSZLOG, the HSLINK
program will enable transfer logging to the specified filename.
For example, the AUTOEXEC statement:
SET DSZLOG=C:\LOGS\LOG.OUT
will cause HSLINK to log files transmitted to C:\LOGS\LOG.OUT.
This form of logging provides compatibility with programs that
are designed to operate with DSZ or other DSZLOG-type protocols.
The log file consists of a single line of text for each file
transferred. Here are some sample log entries:
H 126510 2400 bps 229 cps 2 errors 0 558 U:\PLAY1\VED203.ZIP 0
h 188741 2400 bps 224 cps 4 errors 164 325 W:\ULW\TPE30.ZIP 0
E 188741 2400 bps 0 cps 0 errors 6 325 W:\ULW\TPE30.ZIP 0 2
h 45761 10100 bps 1083 cps 0 errors 18 705 U:\DL1\HSLK10B7.ZIP 3
h 96545 10100 bps 1130 cps 0 errors 45 289 U:\DL1\PROD343.ZIP 3
h 25316 38400 bps 3338 cps 0 errors 11 740 E:\UL\SHSISRC.ZIP 0
Each line contains the following fields:
Size Description
---- -------------------------------------------
1 'H'=receive, 'h'=send, 'E'=aborted, 'L'=lost
carrier.
7 The length of the file, in bytes. If the
transfer was aborted, this field will contain the
number of bytes transferred before the transfer
was aborted.
6 The effective modem-to-modem connect speed.
4 Literally ' bps'
5 The average transfer rate, in characters per
second.
4 Literally ' cps'
4 The total number of blocks which required
retransmission during the transfer.
7 Literally ' errors'
6 The number of flow control restrictions.
5 The length of the last block transferred in the
file.
? The full pathname of the file which was
transferred.
? The Serial Number of the remote copy of HSLINK, if
registered.
23
Configuration Files
_________________________________________________________________
Because of the large number of possible command line options, it
is possible to store frequently used command options in a
configuration file. This eliminates the need to repeatedly type
the options at a command line. If you are calling HSLINK from
multiple batch files, you can also use configuration files to
store "common" options, that can be changed in one place rather
than separately in the various batch files.
HSLINK will search the current directory and then the PATH
directories for HSLINK.CFG. If this file is found, each file
line is loaded as a command line option.
If you want to use an alternate configuration file, use the -
@fname command line option, which will cause 'fname' to be
loaded.
If -@fname is not the first command line option, the default
HSLINK.CFG file will be searched for and loaded before the
specified configuration file.
Use -@ (without a filename) to prevent HSLINK from searching for
a configuration file, slightly speeding operation on systems that
have a long search PATH setting in effect.
Network Compatible
_________________________________________________________________
All file processing is fully network and "share" compatible.
Because of this, you must use DOS 3.1 or later.
All files transmitted or received with HS/Link retain their
original exact size and time/date stamp. No extraneous data is
added beyond EOF as with some older protocols. The current
date/time will be stamped on incoming files if the -NT option is
used. Otherwise, the original file's time/date stamp will be
retained.
24
Auto Downloading
_________________________________________________________________
It is possible for some terminal programs to support HS/Link auto
downloading by means of "scripts" which wait for the HS/Link
"ready" packet, and then shell out to the HSLINK receiver
protocol.
The HS/Link "ready" packet is repeated at 10 second intervals
when waiting for the HSLINK receiver to be started. The format
of the "ready" packet is:
^B "R"
or in hex,
0x02 0x52
When this sequence of characters is received during a terminal
session, the HSLINK protocol should be executed.
25
Error Messages
_________________________________________________________________
Bad ____ CRC
These messages indicate that an error was detected in a
control message between the sender and the receiver. All
control packets are protected by a 32 bit CRC calculation to
provide highly secure and reliable communication.
If you repeatedly receive the "Bad ready packet CRC"
message, it may indicate that the internal protocol formats
have been changed and that you need to upgrade to a newer
beta copy of HSLINK.
Bad data CRC (#)
This message indicates that an error was detected in a block
of data in the file being received. Error correction is
automatic, because of Full-Streaming-Error-Correction, may
occur without breaking the stream of data being received.
If this message occurs at regular intervals, it is a sign of
flow control failure. In most cases, this can be corrected
with the addition of the -HS command line option.
COM#: Break!
COM#: Framing!
COM#: Overrun!
COM#: Parity!
These messages indicate that an error was detected in the
serial port receiver. Framing and Parity errors often
indicate a baud rate mismatch. Overrun errors usually
indicate the need for flow control or for an upgrade to a
buffered serial chip. Overrun errors can often be reduced
or eliminated with the use of the -HS command line option.
Can't create file '___'
This indicates that the received file could not be created.
This usually indicates that the directory specified in the -
U command line option is invalid, or that the disk is full.
Carrier lost!
This indicates that Carrier detect was dropped, aborting the
HSLINK session. If your connection does not provide a
carrier detect signal, you can disable this check with the -
C command line option. This is often required when directly
connecting two computers by means of a "null modem" cable.
Control-X abort!
This indicates that the control-x character was received
twice in succession, either over the COM port or from the
local keyboard.
26
Disk write failure! (#)
This usually indicates that the disk is full and that
further downloads cannot be received.
YOU MAY NEED A NEWER HSLINK BETA! UPDATE BETAS OFTEN!
INCOMPATIBLE BETA COPY!
PLEASE GET A NEWER HS/LINK BETA!
These messages usually indicate that you need to upgrade to
a newer beta of the HSLINK program. Prior to the program's
public release, there may occasionally be refinements in the
internal protocol formats that makes older betas non-
functional.
Flow control released (#### t:# r:#)
If output flow has been suspended by either software or
hardware flow control for more than 15 seconds, the program
will assume that there has been a failure of flow control
and will release the hold so data can continue. The codes
in parenthesis indicate which flow controls were active at
the time (C=CTS was down, T=transmitter XOFF was pending,
R=receiver XOFF was pending, A=transmitter is currently
active) and the counts of bytes in the transmit and receive
holding queues.
FILE was incomplete! (# #)
This message indicates that the transfer was aborted in some
way before the specified file was completely received.
Normally incomplete files are erased from disk, but they
will be retained of the -K command line option is used.
Not allowed to overwrite existing file '___'
This indicates that a file was received but there was
another file with the same name already in the download file
directory. Either erase the duplicate file, or use the -O
option to allow existing files to be overwritten.
Insufficient memory to load program.
Not enough memory!
There was not enough memory available to run HSLINK. Free
additional memory by removing "TSR" software, device
drivers, ramdisks or disk caches. If your COMM program has
the option of swapping to DISK or EMS, enable the option to
free additional memory for HSLINK's use. Current beta
copies of HSLINK require about 64k of RAM, but the specific
amount of memory required is subject to change from beta to
beta. You can reduce the amount of memory required if you
use the -HB command line option to disable file buffering.
Read failure at #
This indicates that there was a disk error reading a file
being transmitted.
27
Remote not responding!
This indicates that the remote computer did not execute
HSLINK and establish a connection within the two minute
timeout period.
Information Messages
_________________________________________________________________
Receive timeout (#)
ACK timeout, resend #
This message indicates that it has been too long since the
receiver responded to data transmission. The last data
block is repeated in an attempt to wake up the receiver.
Advance from block # to #
After successful error recovery, the receiver may request
the transmitter skip over blocks that have been previously
received without error.
Block size: #
This message indicates the actual block size being used for
file transfers. The block size is controlled by the -W
parameter, and may be overridden by the remote computer if
the remote uses the -! (take priority) option.
COM#: # bps
This message indicates the actual COM port speed in use,
either as specified with the -B command line option, or as
determined from the current hardware settings.
HS/Link finished! Exit code = #
When HSLINK terminates, it sets the dos ERRORLEVEL to the
specified value. This can be checked in batch files to
detect error conditions. Under normal conditions, HSLINK
exits with an ERRORLEVEL of 0. If, however, the session
terminated due to errors, or was aborted by the operator,
the ERRORLEVEL will be non-0. A non-zero ERRORLEVEL will
also be returned if one or more files in a batch failed to
transfer successfully, even though the remaining files were
successful. COMM and BBS programs should use the DSZLOG
output file to determine more specific details of transfer
results.
File received OK, # ch/sec.
The file was received correctly and is now closed. The
average transfer speed is calculated based on the elapsed
time between receiving the file open packet and the last
byte of the file. Transfer speeds are calculated using the
DOS timer tick, which is not accurate for transfers taking
less than 1 second to complete. For very short transfers, a
cps rating of 9999 will be returned.
28
File sent OK, # ch/sec.
The file was transmitted correctly and is now closed. The
average transfer speed is calculated based on the elapsed
time between sending the first byte of the file and the last
byte of the file. Transfer speeds are calculated using the
DOS timer tick, which is not accurate for transfers taking
less than 1 second to complete. For very short transfers, a
cps rating of 9999 will be returned.
File skipped!
The transmitter prints this message when the receiver
requests the current file be skipped. This usually happens
when the receiver detects a duplicate filename and is not
allowed to overwrite existing files.
Handshake: CTS XON/XOFF SLOW
This message indicates the current combination of flow
control options that are in effect. CTS indicates CTS
hardware flow control is active. XON/XOFF indicates that
XON/XOFF software flow control is active. SLOW indicates
that flow will be restrained during disk I/O to prevent
overrun errors.
Out of sequence # (#)
This indicates that the received block was out of sequence,
indicating that a block was possibly missed or lost during
transmission. The receiver will request the transmitter to
retransmit the missing block(s).
Received block # (# bytes)
This displays the current status of the file being received.
The current number of blocks and bytes received is displayed
after each block is received.
Received block # (# bytes) E#
When "E#" is displayed following the received block #
message, it indicates that error recovery is in progress,
and that the specified block number was in error and is in
transit from the transmitter. When the erroneous block has
been received correctly the E# display will advance to the
next erroneous block number, or will be erased if no more
erroneous blocks are pending.
Received block # (# bytes) R
When "R" is displayed following the received block #
message, it indicates that current block has been previously
received correctly and is therefore a "repeat" block.
Repeat blocks occur under severe error conditions and are
usually corrected automatically.
Receiving file: ___ (# blocks, # bytes)
This message indicates that a new file is being received
29
from the transmitter. The file size is displayed in blocks
and bytes.
Resending block #
This message indicates that the receiver has detected an
erroneous block and is requesting a retransmission to
correct the data. Data flow continues where it left off
prior to the resend, allowing error recovery to take place
without breaking out of full streaming mode and without
discarding data that is already in transit to the receiver.
This is the basis of Full- Streaming-Error-Correction.
Restarting current file
This indicates that the receiver was unable to recover from
errors encountered in processing the current file being
transmitted, and has requested that the file be started
again from scratch.
Seek from block # to #
Under the most severe error conditions, the receiver may
request the transmitter to discard data that is in transit
to the receiver and to rewind to an earlier position in the
file and resume transmission.
Sending block # (w:#)
This is the normal status display while a file is being
transmitted. The message indicates the latest block number
to be transmitted, and in parenthesis indicates the current
number of blocks that have been transmitted without
acknowledgement. This last value represents the size of the
transmit "window" that is currently in use. If this value
hangs at the current -W setting, you may benefit from a
higher -W setting on the command line.
Sending file: ___ (# blocks, # bytes)
This message indicates that a new file is being transmitted
to the receiver. The file size is displayed in blocks and
bytes.
Transfer aborted!
This message indicates that the current file transfer has
been aborted for some reason. The specific reason for the
transfer abort is usually also printed on the screen.
Waiting for remote.
This message indicates that HSLINK is waiting to handshake
with the remote computer. HSLINK will wait for 60 seconds
for the other computer to come online; after that the
transfer is aborted.
Warning: CTS signal missing! -HC will be assumed.
The CTS hardware handshake is normally enabled by default.
30
If, on initial loading, HSLINK finds that the CTS signal is
down, it assumes that the current hardware configuration is
not using CTS handshake and automatically disables further
CTS handshake checks. Use the -HC command line to manually
disable CTS handshake.
Window: #
This indicates the actual number of blocks that are allowed
to be in transit without acknowledgement. This is
controlled by the -W parameter, and may be overridden by the
remote computer if the remote uses the -! (take priority)
option.
Window: NONE
This indicates that the -A command line option has been
specified, and that the transmitter is required to continue
indefinitely without receiving any kind of acknowledgement
from the receiver that data is being received correctly.
31
License and Registration
_________________________________________________________________
This program is not free! You are hereby licensed to use this
program for a trial period of 30 days free of charge. If, after
30 days, you decide that you would like to continue using HSLINK,
you must complete the registration form (REGISTER.FRM) and return
it to the author with the required registration fee enclosed.
HSLINK registration costs $15 US, which includes a registration
certificate showing a Serial Number and Password. For $25 US, a
disk containing the latest release of HSLINK, along with a
registration certificate can be obtained. Printed and bound
operation manuals are also available for $15 each. Each
registration is valid for use on a single CPU or on a single BBS
system (multi-node systems require only a single registration).
Please feel free to distribute unregistered HSLINK to your
friends and local BBSes as long as all of the files in this
archive are included and unmodified.
Send your registration payment to:
SAMUEL H. SMITH
P. O. BOX 4808
PANORAMA CITY, CA 91412-4808
LICENSE AGREEMENT FOR SHAREWARE DISTRIBUTORS
Shareware distributors may distribute this program as long as the
author has been notified prior to ANY distribution. The "per
disk" charge may not exceed $10 and the shareware distributor
will not change the above license agreement for the end user of
HSLINK. End users are not exempt from the HSLINK registration
fee.
32
Support
_________________________________________________________________
HS/Link was Written by Samuel H. Smith
Contact me at:
The Tool Shop BBS
Phone number Modem type
-------------- ----------------------
(818) 891-3772 US Robotics HST 9600
(818) 891-1344 Hayes-V series 9600
(818) 891-6780 US Robotics 2400 (free line)
DISCLAIMER
IN NO EVENT WILL I BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING
ANY LOST PROFITS, LOST SAVINGS OR OTHER INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF YOUR USE OR INABILITY TO USE
THE PROGRAM, OR FOR ANY CLAIM BY ANY OTHER PARTY.
33