


















                         HydraCom Version 1.00

                    A sample implementation of the
              HYDRA Bi-Directional File Transfer Protocol

                        HydraCom was written by
              Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT
             COPYRIGHT (C) 1991-1993; ALL RIGHTS RESERVED

                  The HYDRA protocol was designed by
            Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT and
                        Joaquim H. Homrighausen
             COPYRIGHT (C) 1991-1993; ALL RIGHTS RESERVED





Blank page                                                     HydraCom

























































Blank page                                                     HydraCom





HydraCom                   Table of contents                     Page i


1   General Information   . . . . . . . . . . . . . . . . . . . .     1
    1.1     Protocol information  . . . . . . . . . . . . . . . .     1
    1.2     Program description   . . . . . . . . . . . . . . . .     1
    1.3     Program features  . . . . . . . . . . . . . . . . . .     2
    1.4     System hard- and software requirements  . . . . . . .     2
    1.5     Disclaimer  . . . . . . . . . . . . . . . . . . . . .     2
    1.6     HydraCom / source license   . . . . . . . . . . . . .     3
    1.7     Hydra protocol license  . . . . . . . . . . . . . . .     4
    1.8     Credits   . . . . . . . . . . . . . . . . . . . . . .     5
    1.9     Acknowledgements  . . . . . . . . . . . . . . . . . .     5
    1.10    Hydra in other software (also FidoNet mailers!)   . .     5
    1.11    Other environments/operating systems  . . . . . . . .     5
    1.12    Where to send your spare funds  . . . . . . . . . . .     6
    1.13    Support and contact addresses . . . . . . . . . . . .     6

2   Description of specific features  . . . . . . . . . . . . . .     7
    2.1     Split screen chat during a Hydra session  . . . . . .     7
    2.2     Resuming aborted transfers  . . . . . . . . . . . . .     7
    2.3     Networks and Multitaskers   . . . . . . . . . . . . .     7
    2.4     Using a FOSSIL driver   . . . . . . . . . . . . . . .     9
    2.5     Using a Video FOSSIL  . . . . . . . . . . . . . . . .     9
    2.6     AutoStart Hydra transfers   . . . . . . . . . . . . .    10
    2.7     Aborting a Hydra transfer   . . . . . . . . . . . . .    10
    2.8     Configuration utility HydraCfg  . . . . . . . . . . .    10
    2.9     Reliability   . . . . . . . . . . . . . . . . . . . .    11
    2.10    Protocol performance  . . . . . . . . . . . . . . . .    11
    2.11    HST and other half-duplex links   . . . . . . . . . .    12

3   Commands and Options  . . . . . . . . . . . . . . . . . . . .    13
    3.1 Options   . . . . . . . . . . . . . . . . . . . . . . . .    14
        3.1.1   port N  . . . . . . . . . . . . . . . . . . . . .    14
        3.1.2   speed N   . . . . . . . . . . . . . . . . . . . .    14
        3.1.3   line N  . . . . . . . . . . . . . . . . . . . . .    14
        3.1.4   parity  . . . . . . . . . . . . . . . . . . . . .    15
        3.1.5   dropdtr   . . . . . . . . . . . . . . . . . . . .    15
        3.1.6   nocarrier   . . . . . . . . . . . . . . . . . . .    15
        3.1.7   noinit  . . . . . . . . . . . . . . . . . . . . .    15
        3.1.8   handshake <flg>   . . . . . . . . . . . . . . . .    15
        3.1.9   log <file>  . . . . . . . . . . . . . . . . . . .    15
        3.1.10  level <loglevel>  . . . . . . . . . . . . . . . .    16
        3.1.11  result <filename> (DSZ logfile)   . . . . . . . .    16
        3.1.12  noresume  . . . . . . . . . . . . . . . . . . . .    16
        3.1.13  nostamp   . . . . . . . . . . . . . . . . . . . .    17
        3.1.14  receive <path>  . . . . . . . . . . . . . . . . .    17
        3.1.15  nobell  . . . . . . . . . . . . . . . . . . . . .    17
        3.1.16  mailer  . . . . . . . . . . . . . . . . . . . . .    17
        3.1.17  nooriginator  . . . . . . . . . . . . . . . . . .    17
        3.1.18  hdxlink   . . . . . . . . . . . . . . . . . . . .    17
        3.1.19  txwindow N  . . . . . . . . . . . . . . . . . . .    18
        3.1.20  rxwindow N  . . . . . . . . . . . . . . . . . . .    18
        3.1.21  link options  . . . . . . . . . . . . . . . . . .    18
    3.2 Commands  . . . . . . . . . . . . . . . . . . . . . . . .    19
        3.2.1   send [<filespec> ...] [@<ctlfile> ...]  . . . . .    19


HydraCom                                                         Page i





Page ii              Table of contents (continued)             HydraCom

        3.2.2   get [<path>[<name>]]  . . . . . . . . . . . . . .    20
        3.2.3   term  . . . . . . . . . . . . . . . . . . . . . .    20
    3.3 Default configuration file  . . . . . . . . . . . . . . .    21

4   Using HydraCom as an external protocol  . . . . . . . . . . .    22
    4.1 Interface methods   . . . . . . . . . . . . . . . . . . .    22
        4.1.1   Opus-style external protocol interface  . . . . .    22
        4.1.2   DSZ-style external protocol interface   . . . . .    23
        4.1.3   Exit codes (errorlevels)  . . . . . . . . . . . .    23
    4.2 Using HydraCom with terminal programs   . . . . . . . . .    24
        4.2.1   Telix   . . . . . . . . . . . . . . . . . . . . .    24
        4.2.2   Communique    . . . . . . . . . . . . . . . . . .    24
        4.2.3   Commo   . . . . . . . . . . . . . . . . . . . . .    25
        4.2.4   Procomm Plus  . . . . . . . . . . . . . . . . . .    25
        4.2.5   TeleMate  . . . . . . . . . . . . . . . . . . . .    26
        4.2.6   Boyan   . . . . . . . . . . . . . . . . . . . . .    26
        4.2.7   Qmodem  . . . . . . . . . . . . . . . . . . . . .    27
    4.3 Using HydraCom with BBS software  . . . . . . . . . . . .    28
        4.3.1   Maximus   . . . . . . . . . . . . . . . . . . . .    28
        4.3.2   Opus  . . . . . . . . . . . . . . . . . . . . . .    28
        4.3.3   QuickBBS and RemoteAccess (FileDoor)  . . . . . .    29
        4.3.4   RBBS-PC   . . . . . . . . . . . . . . . . . . . .    29
        4.3.5   Wildcat!  . . . . . . . . . . . . . . . . . . . .    29
        4.3.6   XBBS  . . . . . . . . . . . . . . . . . . . . . .    31
































Page ii                                                        HydraCom





HydraCom                                                         Page 1

1   General Information 


1.1     Protocol information 

Full specifications of the Hydra protocol as well as the HydraCom
sources (in C) are freely available. Developers may use either or both
to implement Hydra into their own software, port Hydra to other
machines and operating environments, etc.
The packages containing these files have been widely distributed, but
will always be available from the authors' own systems.
Please refer to the license and other important information further
along this document.


1.2     Program description  

HydraCom is a stand-alone driver which implements the Hydra
bidirectional file transfer protocol developed by Arjen Lentz and
Joaquim Homrighausen.

HydraCom provides a service for communications programs which do not
(yet) have with Hydra support internally. HydraCom can be installed as
an external transfer protocol driver like other external drivers.
HydraCom also provides a simple terminal function.
Because HydraCom's sources are available, they can also serve as a
sample implementation of the Hydra protocol for other developers to
take a look at.




























HydraCom                                                         Page 1





Page 2                                                         HydraCom

1.3     Program features 

 -  Simultanous bidirectional file transfer
 -  Split screen chat during Hydra session, without line noise
 -  Comprehensive manual for installation and advanced features
 -  Program source code and protocol specification freely available
 -  Stand alone or external call from any BBS or terminal software
 -  Compatible with both Opus and DSZ style interfacing
 -  Hydra (and HydraCom) can be used in FidoNet Technology Mailers
 -  Userfriendly full-screen setup utility HydraCfg, mouse supported
 -  Good stability on bad connections, speedy error recovery
 -  Safe protocol, no deadlocks or misunderstandings
 -  Tolerance towards network and satellite delays
 -  Handles 7-bit or even less transparent connections
 -  Seperate escaping options for Telenet, XON/XOFF, 7bit, etc
 -  Maximum performance without ever compromising reliability
 -  All packets (including chat packets) protected by CCITT CRC-32
 -  Retain file's original size and date/time
 -  Automatic startup with special character sequence (AutoStart)
 -  Resume aborted transfers without unfinished files floating about
 -  Numerous transfer options for sysop and users
 -  Supports FOSSIL and VideoFOSSIL
 -  Internal communication routines supporting 16550 UART
 -  Hardware and software flow control
 -  Shared file open for network operation
 -  Internal small terminal with ANSI/VT100 emulation and AutoStart
 -  Fast screen writes, DESQview aware
 -  Releases spare CPU time to DESQview or DOS


1.4     System hard- and software requirements 

 -  IBM XT, XT286, AT286, 386, 486, PS/2 or clone/compatible
    computers.
 -  MS, PC or compatible DOS version 3.00 or higher.
 -  About 128K of free memory space.
 -  HydraCom is able to operate with certain non IBM-compatible serial
    hardware, provided a suitable FOSSIL and perhaps video FOSSIL
    driver is installed. There are various FOSSIL drivers available
    for true compatibles, like Opus!Comm, X00 and BNU, but also for
    the Tandy 2000, Heath Zenith, DEC Rainbow, Philips :YES and many
    others. Some of those are implemented as TSR (Terminate and Stay
    Resident) programs, others (like X00.SYS and BNU.SYS) as device
    drivers.In addition, use of a Video FOSSIL is supported.


1.5     Disclaimer 

This program is provided "as is" and comes with no warranties of any
kind, either expressed or implied. In no event shall the authors be
liable to you or anyone else for any damages, including any lost
profits, lost savings or other incidental or consequential damages
arising out of the use or inability to use this software.



Page 2                                                         HydraCom





HydraCom                                                         Page 3


1.6     HydraCom / source license 

HydraCom, its associated utilities (HydraCfg) and the HydraCom
sourcecode may be freely distributed, copied and used, no fee charged.
All files, executables and sourcecode remain the copyrighted property
of Arjen G. Lentz and LENTZ SOFTWARE-DEVELOPMENT.
The distribution archives should remain intact with no files removed
or modified. For special purposes, it is allowed to repack the
archives using a different compression system.

HydraCom may be bundled up with for instance terminal or BBS packages,
even commercial ones, provided the buyer/user is clearly informed
about the fact that Hydra and HydraCom are free, not owned by the
distributor/retailer in question, and is not included in any possible
charge regarding the rest of the package. This documentation must also
be present so the user can inform himself about Hydra and HydraCom.
The same rules apply to inclusion in shareware and CD-ROM libraries.
In all cases, the author of HydraCom must be given credit in any
informational screens and literature that contain such information.

The Hydra/HydraCom sourcecode may also be freely used and integrated
into other software or library, provided this is clearly stated in any
informational screens and literature pertaining to this program, and
credit is given to the original author. If the sourcecode of that
program or library is released or otherwise published, the notices
present at the top of every Hydra/HydraCom source file must be
retained in their original unmodified form.

In addition to the above license, everyone using any part of the
sourcecode, programs or files is fully bound by the general license of
the Hydra protocol as present in the Hydra protocol description
document. For easy reference, the paragraph in question is reprinted
below.

Any use of, or operation on (including copying/distributing) any of
the above mentioned files implies full and unconditional acceptance of
this license and disclaimer.


















HydraCom                                                         Page 3





Page 4                                                         HydraCom

1.7     Hydra protocol license 

You are granted a license to implement the HYDRA file transfer
protocol, HYDRA hereafter, in your own programs and/or use the sample
source code and adapt these to your particular situation and needs;
subject to the following conditions:

 -  You must refer to it as the HYDRA file transfer protocol, and you
    must give credit to the authors of HYDRA in any information
    screens or literature pertaining to your programs that contains
    other such information (credits, your own copyrights, etc.).

 -  HYDRA will always remain backwards compatible with previous
    revisions. HYDRA allows for expansion of its features without
    interfering with previous revisions. It is, however, important
    that different people do not expand the protocol in different
    directions. We therefore ask you to contact us if you have any
    needs/ideas regarding HYDRA, so development can be synchronized
    and beneficial to all.

 -  If your implementation cannot converse with past or future
    revisions as supplied by us, then you must refer to it as "HYDRA
    derived", or as "a variation of HYDRA", or words to that effect.

































Page 4                                                         HydraCom





HydraCom                                                         Page 5

1.8     Credits 

Zygimantas Cepaitis, Jan Stozek, Jac Kersing, Joaquim Homrighausen,
Jeroen van Drie, Martin Cleaver, Henk Wevers, Jan Bredenbeek, Ron van
der Nagel, and all other equally friendly creatures of the universe
and cyberspace are hereby saluted in gratitude for their diverse
efforts regarding the Hydra protocol and this software.

HYDRA was designed by Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT, and
Joaquim H. Homrighausen.


1.9     Acknowledgements 

 -  IBM PC, XT, AT, PS/2 and PC-DOS are trademarks of International
    Business Machines Inc.
 -  MS-DOS is a registered trademark of Microsoft Corporation.
 -  All other brand and product names are trademarks or registered
    trademarks of their respective holders.


1.10    Hydra in other software (also FidoNet mailers!) 

It's simple, nag the author of that software and give him this package
with all the information. There is not a single reason for the
developer in question not to integrate the Hydra protocol in his/her
software. It will even add to its value. And if they don't do it now,
they'll have to later after the competition has done it...
A number of FidoNet technology mailers offer Hydra as their primary
protocol. Please refer to the HYDRA specifications for detailed
information about HYDRA in FTS-0006 (YooHoo) and EMSI mailsessions.


1.11    Other environments/operating systems 

Ports of a Hydra source (or a new implementation) to other platforms
and operating systems are strongly encouraged. Because of the
protocol's extreme flexibility Hydra may run on machines with the most
severe restrictions where other protocols could never work.
Please send us a note if you've implemented or ported Hydra, so we can
keep track of its progress accross the different platforms in
cyberspace. If you can send us sources or executables, even better.
We will try to maintain a library of all this stuff.













HydraCom                                                         Page 5





Page 6                                                         HydraCom

1.12    Where to send your spare funds 

The HydraCom executable and full sourcecode have been made available
free of charge in order to aid rapid distribution, acceptance and
integration of this new protocol in existing and new libraries,
terminal, BBS and other software, and the like.
However, a donation recognizing my work would be very much
appreciated, especially if you are making money of it yourself.
Such donations will be used specifically on small practical
datacommunications projects and investments in Eastern Europe I am
involved in, at this moment particularly in Lithuania.
Unless you don't want it, your name will be listed in a support file.
If you contact me at the address below before sending a donation, I
may be able to provide you with an address or account number in your
vicinity rather than having you waste time, effort and money on
international transfers.
Any donation, however small, will thus be used purposefully for the
good of communications in general.
If because of Hydra you are making a lot of money off your Bulletin
Board, library, software or distribution business, you may want to
consider a larger or periodical donation.
Thanks for your support! Arjen Lentz.


1.13    Support and contact addresses

This software being free, there is no real support it. However, I will
try to help you solving any problems if you ask nicely, and perhaps
other users can be of assistance too.
In FidoNet a HYDRA conference may be available near you for discussing
the protocol and its implementations.

Hydra and HydraCom were designed and written by:

    Arjen G. Lentz, LENTZ SOFTWARE-DEVELOPMENT
    Langegracht 7B, 3811 BT  Amersfoort, The Netherlands
    AINEX-BBS +31-33-633916 (V.32BIS/V.42BIS/HST14k4)
    FidoNet node 2:283/512 (Arjen Lentz)
    Internet: arjen_lentz@f512.n283.z2.fidonet.org

Hydra was designed in cooperation with:

    Joaquim H. Homrighausen
    389, route d'Arlon
    L-8011 Strassen
    Luxembourg
    FidoNet 2:270/17
    joho@ae.lu








Page 6                                                         HydraCom





HydraCom                                                         Page 7

2   Description of specific features 


2.1     Split screen chat during a Hydra session 

During a Hydra transfer you can chat with someone on the other side,
and without that dreaded line noise! Just like all other packets, chat
data is protected by CRC-32 and retransmitted when it doesn't come
accross unscaved.
Once a Hydra session is past the init state, you can start chat chat
mode on your side by pressing Alt-C. A message is sent to the remote
informing about this fact. You type in the bottom window, and any text
from the remote appears in the upper window (split screen). Meanwhile
you can still keep track of the file transfer progress at the op of
the screen.
The chat option does not effect protocol reliability. A Hydra session
is prolonged even after all files have been sent/received, but only so
long as both sides are active in chat mode. If one side quits, the
session is then immediately finished.
You can end chat mode on your side by pressing Alt-C again.
If you type nothing in 60 seconds, chat mode is automatically ended.
Hydra will inform you in your local window at what point it iss
possible to start a chat mode. Similarly, informative messages about
the chat facilities on the other side will appear in your remote
window.
During file transfer, chat text will appear in chunks. A smooth chat
would serously degrade performance of the file transfers!
Bulletin Board sysops may want to disable the bell noise of the chat
facility with the 'nobell' option. Chat will still be available then,
but without unwanted noise from the remote.


2.2     Resuming aborted transfers 

HydraCom does not allow such uncompleted files to float around on your
disk, but rather renames the file to a unique file name and keeps a
log with the original file-information of all interrupted transfers in
that directory; this is an especially useful feature for BBS, because
you can now enable bad-transfer recovery on upload without having to
keep track of incomplete files. And for users it saves time because
they do not have to transfer the complete file allover again, but only
the part which was not yet transferred.
This feature may be disabled with the 'noresume' option.


2.3     Networks and Multitaskers 

HydraCom opens files in shared mode so that it may be used in a
multiline environment on LANs and under multitaskers such as DESQview.
You just need to make sure any control files have different names
(correct task number, in case of the Opus-interface).





HydraCom                                                         Page 7





Page 8                                                         HydraCom

2.4     Using a FOSSIL driver 

In addition to the internal serial communication routines the program
can also make use of the popular FOSSIL interface, which enables less-
compatible MS-DOS machines to run the same software without special
modifications, just after loading another FOSSIL driver designed for
that machine.
The internal communication routines automatically detect and use FIFOs
in the the 16550 UART, providing better throughput at high speed. A
16550 also decreases the chance of bytes getting lost (overrun).
Also on some fully compatible machines a FOSSIL driver may give better
results than the internal routines. Most BBS and point systems will
usually already have a FOSSIL driver resident.
For best results, set the FOSSIL receive and transmit buffers to at
least 4KB (4096 bytes). HydraCom will complain if either or both are
smaller, but the program will still function. Smaller buffers may
cause more CPU time to be used, a lower transfer performance, and
bytes may be lost causing transmission errors.


2.5     Using a Video FOSSIL 

The distributed executable HydraCom.EXE uses a windowing library which
features fast direct screen access (DESQview aware), internal extended
ANSI/VT-100 emulation for the terminal, and the capability to use a
Video FOSSIL (like the VFOS_IBM/VFOS_BIO BinkleyTerm screen drivers by
Bob Hartman).
If you use a Video FOSSIL with HydraCom, make sure you have very
recent version!  Old versions of VFOS_IBM and VFOS_BIO have a bug in a
couple of functions that the windowing library uses. BinkleyTerm does
not use these functions, so you may not have noticed this problem
before. Contact me for patched versions, or the corrected Video FOSSIL
source files.
All information HAS been forwarded to Bob Hartman.

Note: when compiling the HydraCom sources yourself without
modification, console I/O functions are used because the windowing
library is not freely available. Contact me if you are interested in
purchasing this library anyway (includes the complete sources in C and
inline assembler).
















Page 8                                                         HydraCom





HydraCom                                                         Page 9

2.6     AutoStart Hydra transfers 

A Hydra session can be started automatically upon receipt of a special
AutoStart sequence:

    ASCII:    24    99  65  92 102  53  92  97  51    24    97
    Chars:  Ctrl-X   c   A   \   f   5   \   a   3  Ctrl-X   a

This is the Hydra START packet, which is always hex-encoded for clear
passage through even the most restricted links.
Before the START packet Hydra also transmits the letters 'hydra' in
lowercase followed by a CR (ASCII 13), to start the Hydra protocol
from for instance a Unix command line.
To be certain the string is detected, strip the 8th bit of all
incoming bytes and then ignore all ASCII characters 0-31 and 127
except ASCII 24 before comparing it to the next character in the
autostart string.


2.7     Aborting a Hydra transfer 

A Hydra session may be aborted at any moment by pressing the Escape
key.
When your end is not engaged in a Hydra session but the other side is,
typing at least 5 consequtive Ctrl-X will abort the remote Hydra.


2.8     Configuration utility HydraCfg 

To create and edit the default configuration of HydraCom, a utility
HydraCfg is provided where all options and settings can be changed and
checked in a user friendly full screen windowed environment.
If a mouse driver is present, it may be used to move the cursor around
and select options.

When HydraCfg is called without commandline parameters, it searches
for HydraCom.EXE first in the current then in all the directories
listed in the DOS PATH. If found, and a file HydraCom.CFG is also
present in that directory, that is the file that will be read and
edited. If HydraCom.CFG doesn't yet exist, HydraCfg asks if you want
to create it.
If HydraCom.EXE is not found, a HydraCom.CFG may be created/edited in
the current directory.
You may also specify a full path/filename of a HydraCom.CFG style file
on the HydraCfg command line, in which case no search is done.
See the section about the default configuration file for more
information.
HydraCfg can provide additional information about options on the
bottom line of the screen, if the file HydraCfg.HTX (helptext) is
present in the same directory where HydraCom.EXE is located.






HydraCom                                                         Page 9





Page 10                                                        HydraCom

2.9     Reliability 

A remote machine may crash, jump out of a batch file or otherwise die
on you while you are on-line. Hydra maintains a special braindead
timer, aborting a session when there has been no REAL progress for two
minutes.
This may save you a lot of money when using Hydra in an automated
environment, especially on international phonecalls!
Other protocols have been known to keep a transatlantic line open for
more than 6 hours with nothing happening.... big auch.

The Hydra protocol has been designed in such a way that deadlocks or
misunderstandings between the two sides cannot occur.

Hydra is extremely tolerant towards network and satellite delays.

If Hydra reports a 'timeout' or 'retry', this does not necessarily
mean something terrible is happening. The protocol has a different
design and therefore behaves differently from what you will be used
to.
If things go really wrong the transfer will be aborted anyway so there
is no need to worry, the messages are just so you have some
information about what is going on.
For example, Hydra sometimes re-transmits a packet after a number of
seconds, just in case the other side has missed it previously. Because
of line delay the acknowledgement to the original packet may already
be under way. In this case the duplicate packet is ignored, so the
transfer is not delayed. If a packet does get lost, this alternative
tactic speeds up recovery.


2.10    Protocol performance 

Contrary to the hype surrounding other protocols, Hydra does not
pretend to be the fastest file transfer protocol in cyberspace.
In general it is about as fast as the other top protocols, giving you
a choice on grounds of reliability and versatility rather than
outragious claims.

Every protocol has a certain amount of overhead because of error
detection and other facilities; this overhead has of course been
minimized, but Hydra will not provide the user with options to
increase performance in such a way that reliability is affected.
This is what other protocols sometimes do, and often don't tell the
user about it (nor of the consequences). Even so called 'errorfree
connections' such as MNP and V.42 links are NOT 100% errorfree. Some
errors slip through, and sometimes a byte gets lost or mangled between
the modem and the computer or the communications routines.
And to be fair, the actual gain in performance is always minimal; in
rounded percentage terms it sounds appealing but in effect most claims
amount to no more than about 10 seconds on a transfer of more than 10
minutes. Hardly worth it, wouldn't you agree?




Page 10                                                        HydraCom





HydraCom                                                        Page 11

Some other bidirectional protocols add up the performance of the two
directions, of course giving nice figures when comparing to
unidirectional protocols. But this is really unfair.
Hydra reports separate figures for each file transfered, and stays on
the conservative side. You should not trust the performance ratings
for transfers which last less than a minute!

Okay.. you don't have to believe all this: ignore the numbers reported
by the various protocols, and time a transfer yourself.
Make sure you use a file large enough for at least 5 to 10 minutes
transfertime, otherwise the results will not be reliable for
comparison.
And watch the behaviour of a protocol on for instance a bad
connection; will it choke and abort or handle the situation well?


2.11    HST and other half-duplex links 

Hydra can also handle HST and similar links that have one high-speed
channel and only a low-speed backchannel. Simultanous bidirectional
transfer is not effective in this case, causing continuous line
turnarounds and slowing down transmission dramatically.
If you are a user, want call a BBS at HST speed, and upload and
download in the same session, use the 'nooriginator' and 'hdxlink'
options together. HydraCom will then first receive all files, then
transmit.
If you set the options even for other real full duplex connections
like V.22(BIS) and V.32(BIS), HydraCom will not use its bidirectional
capability then either. So use this only when required by the specific
modem connect.
In practise, it is easier if you just upload and download in a
seperate Hydra session if you have an HST connect. Then there is no
need to use these options at all.
Bulletin Board sysops should NEVER set these options at all!
The Hydra protocol is protected against deadlock; if both sides are in
one-way transfer mode, this will be detected and one-way mode switched
off.
Of course, if you can choose between for instance an HST and a real
full duplex connect, the choice is easy... full duplex every time!

















HydraCom                                                        Page 11





Page 12                                                        HydraCom

3   Commands and Options 

Usage:
HydraCom [port N] [speed N] [<options> ...] <command> [<parms> ...] 

General:
options:
    port N          Comport [1..16] (default COM1)
    speed N         Com-speed [300..57600] (default current speed)
    line N          Actual line speed (use 'speed' to set comport)
    parity          Set 7E1 instead of 8N1 (forces option highbit)
    dropdtr         Drop DTR if carrier is lost
    nocarrier       Disable carrier detection
    noinit          Don't init/deinit FOSSIL driver
    handshake <flg> Enable soft (XON/XOFF), hard (RTS/CTS) or both
    log <file>      Logfile to log the goings on
    level N         Level of logging, 0=max, 6=min (default=2)
    result <file>   Log transfer info to DSZ compatible logfile
    noresume        Disable receive bad-transfer recovery
    nostamp         Don't stamp with original but current filetime
    receive <path>  Path to store any received files
    nobell          Disable bell noise in Hydra session chat feature
link options:
    mailer          Mailer mode, used by Dutchie (see documentation)
    nooriginator    Not originator, fallback to one-way transfer
                    allowed
    hdxlink         Force one-way transfer mode (only with
                    nooriginator)
    xwindow N       Transmitter window size (default 0=full streaming)
    rxwindow N      Receiver window size (default 0=full streaming)
    option xonxoff  Escape/strip XON/XOFF characters
    option telenet  Escape/strip Telenet escape
    option ctlchrs  Escape/strip ASCII 0-31 and 127
    option highctl  Apply above three also for 8th bit
    option highbit  Encode for 7 bit, strip 8th bit 
commands:
    send [<fspec> ...]      Send <fspec>/@<ctlfile>/nothing + receive
    get [<path>[<name>]]    Only get file(s), if name is specified, get
                            first file (name override) and skip all
                            others
    term                    Small terminal + send & AutoStart
                            capability














Page 12                                                        HydraCom





HydraCom                                                        Page 13

3.1 Options 

An option modifies the default settings of HydraCom, like the
communications port number and speed of the communications port.
Each option consists of a keyword, sometimes followed by a string or
number. Keywords may be abbreviated to their first three letters.
For example: POR 2 means that HydraCom should use com port 2.
This is not true for any parameters following an option, these should
all be fully spelled out.
Case is not important. Invalid options and parameters are ignored.


3.1.1   port N 

Select the comport HydraCom will use, in the range of 1 to 16. The
default value is COM1.  The internal communication routines can only
handle port COM1 to COM4 (3F8/IRQ4, 2F8/IRQ3, 3E8/IRQ4, 2E8/IRQ3).


3.1.2   speed N 

When using a FOSSIL driver, valid communication speeds are 300, 1200,
2400, 4800, 9600, 19200 and 38400 bits per second.  With the internal
async routines, any speed between 300 and 57600 BPS may be given.
If the SPEED option is not specified, HydraCom will use the current
speed of the port. Locking of the speed should be done in the FOSSIL
setup, not in HydraCom.
If the FOSSIL is locked the speed statement does not have any effect.


3.1.3   line N 

For high-speed modems, the SPEED option determines the speed of the
comport while LINE determines the speed that will used for efficiency
calculations, data packet size and timeouts.
It is absolutely vital that HydraCom knows what speed the line has,
and the program has no way of knowing unless you inform it!
If the FOSSIL is not locked and the speed option is present, the line
option need not be specified as well.
The thresholds for data packet size and timeouts are at 1200, 2400,
and 4800 bps. Ie. if speed is set to 38400 but the actual link speed
is 14400, there's no need to use the line option as for HydraCom there
is no practical difference between 14400 and 38400 when calculating
the necessary figures.
But if the comport is locked at 9600 or 38400 and the line speed is
2400 or even lower,  you'll have problems if you don't specify the
correct line speed here.









HydraCom                                                        Page 13





Page 14                                                        HydraCom

3.1.4   parity 

The parity option selects 7 databits, even parity (7E1) instead of the
default 8 databits no parity (8N1), also forcing 'option highbit' so
the Hydra protocol makes the necessary arrangements for a 7-bit
connection.


3.1.5   dropdtr 

This option will probably only be useful for BBS with modems set to
auto-answer. If specified, HydraCom will lower the DTR (Data Terminal
Ready) line on the serial port. For HAYES-compatible modems with a
set-up of S0=1 or something similar, this will cause the modem NOT to
answer the phone while the DTR remains low. The BBS then has time to
recycle and raise the DTR again when ready for the next call.


3.1.6   nocarrier 

Mostly of use with certain null-modem cables or stand-alone operations
within the HydraCom terminal function, this option configures HydraCom
so it will not check the DCD (Data Carrier Detect) line on the serial
port. Normally, HydraCom will abort upon loss of carrier.


3.1.7   noinit 

Do not initialise the FOSSIL on startup. Running under some software
like the mailer program Dutchie, HydraCom is not required nor supposed
to initialise the resident FOSSIL driver. This option will make sure
HydraCom will refrain from attempts at initialisation.


3.1.8   handshake <flg> 

This option allows the enabling of various types of flow control.
SOFT enables xon/xoff handshaking, HARD enables rts/cts handshaking,
and BOTH obviously enables both software and hardware flow control.
FOSSIL drivers force RTS/CTS handshaking for a locked communications
port.
The internal communications routines (ie. the one used when there is
no FOSSIL driver present) do not support XON/XOFF handshaking, nor do
they apply RTS flow control (modem->computer). CTS flow (computer-
>modem) is supported.
Setting software flow control automatically forces on 'option xonxoff'
to make sure Hydra escapes these characters in its packets.


3.1.9   log <file> 

If specified, HydraCom will log messages to this file as well as
printing them on the screen. The output is similar to the format used
by programs like Dutchie, The-Box, BinkleyTerm, Opus and Maximus.


Page 14                                                        HydraCom





HydraCom                                                        Page 15



3.1.10  level <loglevel> 

This option is only really useful if LOG is also specified. Loglevel
may be anything from 0 to 6. Level 0 logs anything up to Hydra packet
control data. Level 6 logs only severe or fatal errors. The default
loglevel is 2.


3.1.11  result <filename> (DSZ logfile) 

This option will create or append a DSZ (by Omen Technology)
compatible log file, which some programs (such as the RBBS-PC or XBBS
BBS) use to determine the outcome of a transfer.
The format is as follows:

<res> <byts> <bps> bps <cps> cps <err> errors <flow> <last> <fname>
<sn>

<res>       H = file is sent, R = file is received. 
<byts>      Actual number of bytes transferred.
<bps>       Line communication speed in bits per second.
<cps>       Protocol performance in characters per second. For very
            short transfers a rating of 9999 cps is given.
<flow>      Number of transmission errors occurred (0).
<err>       Number of flow control stoppages (0).
<last>      Size which was used for the last block in the transfer
            (1024).
<fname>     Full path and file name.
<sn>        Serial number of the program on the other side (0).

HydraCom will not write a result line for aborted transfers, but the
result file itself will always be created (empty).

Prior to processing any other options the DSZLOG environment variable
is checked and (if present) copied to the RESULT option file name.


3.1.12  noresume 

By default, HydraCom uses an internal mechanism to keep track of
interrupted transfers: It keeps unfinished received files BAD-XFER.???
where ??? is a counter from 000 to 999 used to create a unique file
name. The original file name, date/time and size of the file are
logged to a file called BAD-XFER.LOG. Both files reside in the
directory where files are received. With NORESUME, HydraCom will not
keep/log unfinished downloads but instead deletes the partial file.








HydraCom                                                        Page 15





Page 16                                                        HydraCom

3.1.13  nostamp 

Don't retain the original file date/time information which was
transmitted, but stamp received files with the current date/time.
Some BBS software requires this to be able to scan for new files.


3.1.14  receive <path> 

Files received through HydraCom will be stored in directory <path> if
this option is used. Otherwise files will accumulate in the current
directory.


3.1.15  nobell 

Normally, the BEL character (Ctrl-G) will cause the remote system to
give a short beep. This may not be desired if HydraCom is for instance
used under a BBS, so with this option you can disable the beep. It
only applies to the chat mode during a Hydra tranfer session.


3.1.16  mailer 

Selects mailer mode, changing HydraCom's behaviour slightly as
required by the Dutchie mailer which uses it as an external protocol
for FidoNet technology mail sessions.


3.1.17  nooriginator 

Instructs HydraCom to NOT act as the 'originator' side in case of
trouble during a transfer. The 'answer' side will switch to one-way
transfer mode under certain conditions (equivalent to the hdxlink
option).
Normally you won't need this option yourself, its main use is for
programs like Dutchie in combination with the 'mailer' and 'hdxlink'
options.
Refer to the section about HST and other half-duplex modems earlier in
this document for a more complete description of these options.


3.1.18  hdxlink 

Forces one-way transfer mode (half duplex Hydra, disables bi-
directional transfers). This option only works if nooriginator is
enabled as well. This option is meant for use on HST and similar
asymmetrical connections.  Refer to the section about the
'nooriginator' option above for more information.







Page 16                                                        HydraCom





HydraCom                                                        Page 17

3.1.19  txwindow N  

The number of bytes to send before remote acknowledgement of reception
should be received. If it's set to 0 (default) HydraCom won't wait for
acks and use continuous streaming.
In severe situations, this option may be necessary for links via
packet switched networks and sattelites to prevent runahaid (windowed
streaming).
Primarily, this option is used when the machine on the other side
cannot handle simultanous serial and disk I/O (segmented streaming).
The exact receive and transmit window sizes are negotiated
individually by the two sides at the start of a Hydra session, so if
the other side has set a more limited value, that is the window size
that will be used for that direction.


3.1.20  rxwindow N 

The number of bytes to receive before acknowledgement (ACK) should be
returned to the sender (default 0=none). Refer to the description of
the 'txwindow' option above for more information about windowed
transmission.


3.1.21  link options 

Link options are used to send data over nondefault lines (such as 7-
bit links, and such). Hydra will encode all data to a suitable format,
send it, and the receptor will decode the data back to it's original
format.
option xonxoff  Escape/strip XON/XOFF characters. (ASCII 17 and 19)
option telenet  Escape/strip telenet escape sequence CR-@-CR (ASCII
                13,64,13)
option ctlchrs  Escape/strip ASCII characters 0 to 31 and 127.
option highctl  Makes xonxoff/telenet/ctlchrs also escape/strip their
                respective characters if the high bit.
option highbit  Encode for 7 bit transfers. (encodes 8 bit to 7 bit)



















HydraCom                                                        Page 17





Page 18                                                        HydraCom

3.2 Commands 

HydraCom expects a command at the end of the command line (ie after
all options). There are three possible commands: send, get and term.
Send is for sending files, get is to just receive files without
sending any, and term is the mini terminal.
All commands normally abort upon loss of carrier unless the
'NOCarrier' option is used.


3.2.1   send [<filespec> ...] [@<ctlfile> ...] 

The send command causes HydraCom to send <filespec.ext>.
If no file specification is given, this command will just act like a
get and just receive files.

@<listname.ext> will cause HydraCom to read a file called
<listname.ext> in [<drive:\path>] and send the files specified in that
text file. Each entry in that file should be placed on one line eg,
when you want to send TEST.*, NEWHYD?.ARJ and PAL_112.C, you could
place them in SEND.TXT, which could contain:
C:\MAIL\FILE\TEST.*
C:\DOCS\NEWHYD?.ARJ
E:\C\DEVLP\PAL_112.C

Normal file specifications and multiple @ctlfiles may be used on one
commandline, and you can specify paths and the usual DOS wildcards *
and ? (which are expanded to the file names which match the
specification).

In @ctlfiles aliasing and transfer options may be used.
Aliasing means that HydraCom will send a file with an alias name,
specified after that name, so if your @-file contain a line
C:\DOCS\ANY.TXT 01A551FC.A0D
then HydraCom will send the file ANY.TXT as 01A551FC.A0D.
A '#' sign as the first character on a line will cause HydraCom to
truncate the file(s) to zero length after succesful transfer. A caret
(^) tells HydraCom to delete that file after it has been sent.


















Page 18                                                        HydraCom





HydraCom                                                        Page 19

3.2.2   get [<path>[<name>]] 

The get command may be used if there are no files to be sent, just
received.
With no parameter, get will put received files into either the current
directory or the directory specified in the 'receive' option.
If a path specification follows the get command, this overrides the
'receive' option. A get path specification MUST have a trailing
backslash!
If a filename specified, HydraCom will receive just one file, store it
with the specified name, and refuse any other files the remote wants
to send. This 'feature' is provided because some software cannot
handle batch uploads and wants to know the name of the single file
before the transfer.


3.2.3   term 

This activates HydraCom little built-in dumb terminal.
HCOM_DOS has ANSI emulation if you have ANSI.SYS loaded; HCOM_GEN has
an extended ANSI/VT-100 emulator in its windowing library.
Downloading in the HydraCom terminal is fully automatic, HydraCom
detects the remote has intiated a Hydra session (AutoStart). Any files
in the upload queue will also be transmitted.

There are several options and commands in the terminal mode:

PgUp:   Enter/edit file upload queue; HydraCom asks for file
        specification(s), wildcards are allowed. You may NOT specify a
        @ctlfile. No upload is started with this command, the specified
        files will be sent when either the remote initiates a session
        or when you press PgDn.
PgDn:   Download; HydraCom initiates a Hydra session and waits for
        incoming files/packets. Any files selected with PgUp will be
        sent. You cannot select files for download within HydraCom, you
        must do this within the BBS you're calling; ie. you can not
        just 'request' files from the remote during a Hydra session.
Alt-X:  Exit the terminal and HydraCom.
Alt-C:  Clears the screen and puts the cursor in the upper left corner.
Alt-H:  Hangup (on hook), this command drops the DTR line and causes an
        immediate log-off (BBS do have a G)oodbye command.. use it!).
Alt-E:  Toggle duplex, this command toggles the local echo mode.
Alt-B:  Toggle stripping the 8th bit of all incoming characters. This
        toggle is forced on if the 'parity' commandline option has been
        specified.











HydraCom                                                        Page 19





Page 20                                                        HydraCom

3.3 Default configuration file 

At start-up, HydraCom will check whether a file named <exename>.CFG
exists in the directory where the HydraCom executable resides, and if
it does, scan it for options. This is always done first, regardless of
what interface method is used to pass other commands and options. By
<exename>.CFG we mean that, if for instance the HydraCom executable is
named HydraCom.EXE, the name of the configuration file checked for
would be HydraCom.CFG. C:\WORK\HC.EXE will search for C:\WORK\HC.CFG.
Each line in the configuration file may contain an option and possible
parameters. Everything after a semicolon (;) will be ignored
(comments).

;----------[ sample terminal configuration file ]----------
port 2
speed 38400
receive c:\comms\download\
nocarrier
log c:\bbs\hydracom.log
level 4

The configuration file may not contain a command (send, get or term).
Statements on the command-line override those in the configuration
file.

You can use the utility HydraCfg to create and edit a default
configuration file for HydraCom in a more userfriendly environment
(full-screen windowed, mouse support, information and help texts).




























Page 20                                                        HydraCom





HydraCom                                                        Page 21

4   Using HydraCom as an external protocol 

HydraCom can be used within a lot of, if not all, communication
programs which support intelligent DOS access like errorlevels,
shelling to batch files, spawning, etc. Most programs have external
protocol support themselves, but HydraCom can also work with programs
which can use only external view or edit programs. In that case you
can call exactly the same batch file as described for Procomm Plus.
You could for example put the upload batch file instead of a view
utility and fill in the download batch file instead of the editor
utility. When you are asked what file to view, you'd fill in the
filename(s) to be uploaded.


4.1 Interface methods 


4.1.1   Opus-style external protocol interface 

HydraCom can operate as an Opus external protocol driver, as used in
the Opus bulletin board system and various mailer, BBS and terminal
packages which utilize the Opus method of calling external protocol
drivers.

Upon exit to the external protocol writes an Opus-style control file,
the name of which depends on the file name of the executable HydraCom.
If, in your case, HydraCom is called HydraCom.EXE, then Opus will
write a file called HydraCom.CTL to the drive/path where HydraCom.EXE
resides, from which HydraCom will read all necessary information about
the transfer.
Hydra will create a special Opus-format logfile HydraCom.LOG (in the
same directory where HydraCom.CTL was stored) which provides the BBS
software with a list of files that were sent/received.

The Opus 1.0x method is quite similar to the way Opus 1.10 and later
versions call external file transfer protocols. HydraCom handles both
methods. The Opus-protocol interface mechanism is automatically used
if a .CTL control file is found. If a task number (-tN where N is the
task number) is specified on the HydraCom commandline, the new method
is used which merges a task number into the filename of the control
and log files for multi-line operation. A control file for task 3 when
calling HydraCom.EXE would be named HydraC03.CTL.
Note: any commandline parameters after the -tN option are ignored,
HydraCom immediately proceeds with processing the .CTL file.












HydraCom                                                        Page 21





Page 22                                                        HydraCom

HydraCom uses the -pN (port number, 0 based) and -bN (speed) from the
commandline, other Opus-style parameters are ignored.
In the .CTL file the following Opus-style options and commands are
used and fully implemented in HydraCom:

    port    Com port, identical to the 'port' commandline option.
    baud    Com speed, like the 'speed' commandline option.
    modem   Extended modem information like real line speed, handshake
            options, carrier mask.
    log     Log file, identical to the 'log' commandline option.
    upload  Where received files are to be stored; like the 'receive'
            commandline option.
    send    Specification of file(s) to be sent; DOS wildcards are
            allowed, as well as the special transfer options. If the
            file specification is preceded by a # character, the
            specified files will be truncated to zero-length after
            successful transmission. A ^ character has the files
            deleted after successful transmission. If another name is
            specified on the same line (no path), this name is given to
            the remote instead of the real name (aliasing).
    get     As Hydra is a full duplex protocol, this command is
            completely ignored.  A receive path should be specified
            using the 'upload' or 'receive' option.

Other (unknown to HydraCom) Opus-style commands are just ignored.
All HydraCom commandline options (not commands!) be also be present in
a .CTL file.
Take care that all options are listed in the .CTL before the first
'send' line, otherwise those options will not have been read yet.


4.1.2   DSZ-style external protocol interface 

HydraCom can be called by any program using the DSZ style of passing
options/commands; of course the options and commands differ from DSZ,
but the basic mechanism is the same with support for @ctlfiles and
usage of the DSZLOG environment variable. For more information on the
format of the DSZ result logfile, see the section about the 'result'
option.


4.1.3   Exit codes (errorlevels) 

Some programs check error codes to decide whether a transfer has been
completed successfully or not. HydraCom uses the following
errorlevels:

      0 Normal termination
      1 Transfer aborted, carrier lost, etc.
    255 System error: not enough memory, etc.






Page 22                                                        HydraCom





HydraCom                                                        Page 23

4.2 Using HydraCom with terminal programs 


4.2.1   Telix 

Telix 3.15 supports up to 4 external protocols, 3.20 supports 5.
You need to create a single batchfile (HYDRAUP.BAT) with one line:

HYDRACOM port %2 speed %1 uploads D:\DL\ send %3 %4 %5 %6 %7 %8 %9
(change D:\DL\ to the path of your own download directory)

Start Telix, and from the main terminal window press Alt-O (Configure
Telix), select option P (Protocol options) and select a free protocol
line (A-D/E) (or replace an unused protocol):

        Key                     H
        Protocol name           Hydra
        Upload filename         HYDRAUP
        Download filename       HYDRAUP
        BAT or script           Batch
        DL name                 NO
        Autodownload string    (press ctrl-X)cA\f5\
        (autodownload string only available in Telix 3.20)

Now press ENTER (returns to configure Telix) and select option W
(Write setup to disk). Telix will automatically return to the main
terminal window.


4.2.2   Communique  

HydraCom batchfile that can be used for Communique:

@echo off
rem HydraCom installation under Communique 1.0x
rem -------------------------------------------
rem Name    : Hydra
rem Key     : 1
rem Upload  : CU_Hydra.BAT *C *B *D *U *G
rem Download: CU_Hydra.BAT *C *B *D *U
cls
HydraCom port %1 speed %2 nocarrier handshake receive %3 send %5














HydraCom                                                        Page 23





Page 24                                                        HydraCom

4.2.3   Commo 

Add the following to your COMMO.MAC file in the appropriate places:

 (the upload protocol menu)
   HydraCom       using HYDRACOM.EXE              {goto phyd}
 (the download protocol menu)
   HydraCom       using HYDRACOM.EXE              {goto phyd}
 (no download macro, just uses uploade macro)
 (upload macros)
   HydraCom    {:phyd} {call gfnu}
                       {exec-a HYDRACOM por %_por spe %_spe han
                       hard rec %uldir sen %file} {}  HYDRACOM.EXE

And the following line to your COMMO.SET file:
    {aut=phyd,^XcA\f5\a3^Xa}      Auto Receive, HydraCom


4.2.4   Procomm Plus 

This has been tried and found to work with the Procomm+ TestDrive
version. For use with Procomm Plus, you need to create one batch file
which calls HydraCom:

HydraCom port 1 line 2400 receive D:\DL\ send %1 %2 %3 %4 %5 %6
(change D:\DL\ to the path of your own download directory)

Procomm+ does not provide the line speed, comport number or the path
to store received files; you should fill them in yourself.
It's not terribly user-friendly and it may cause you trouble. But
there's not much you can do about it except get different terminal
software.

You should specify the batch file in the Procomm Plus protocol set-up
menu. From the Procomm Plus main menu, press Alt-S (Setup Utility),
then choose PROTOCOL OPTIONS and take an empty pair of entries, either
A-B, C-D or E-F, if you would choose A-B, then press A, fill in the
HydraCom upload batchfilename (HPCU) without extention, and press
ENTER. Then press B, fill in HPCD and press ENTER. Then press escape,
select the SAVE SETUP option, and press escape again.
















Page 24                                                        HydraCom





HydraCom                                                        Page 25

4.2.5   TeleMate 

Create a batchfile, to be placed in the TM home directory:

HydraCom.EXE port %2 speed %1 receive D:\DL\ send %3
(change D:\DL\ to the path of your own download directory)

Now start TeleMate and from within the TeleMate main terminal window,
press Alt-O (Options).
Select option P (Protocol). Select a free protocol line, or replace an
unused protocol:

        Name                    Hydra
        Key                     H
        Upload batch            HYDRAUP
        Download batch          HYDRAUP
        Prompt for dl name      NO 


Exit the protocol window with the OK selection (returns to 'Options'
window), select option S (Save options) and press ESC (back to main
terminal window).


4.2.6   Boyan 

To use HydraCom with this program, run Boyan and press Atl-C
(Configure BOYAN) from the main terminal window. After this, select
option D (Disk, directory, files) and then option H (Path for external
protocols)
Now enter the drive and path where HydraCom.EXE can be found, don't
forget the trailing backslash '\'. Then press ENTER (finish entry). 
Press ESC (returns to 'configure BOYAN' screen), select option X
(External transfer protocols) and select a free protocol line entry
(0-9).

Protocol name           Hydra
Menu letter             H
External file           HydraCom
Prompt for DL-name?     NO
Upload      \DC-[%P:HydraCom port %MD speed %MS rec dl>\ send %TF]
Download    \DC-[%P:HydraCom port %MD speed %MS rec dl>\ get]

(Don't forget to specify the downloadpath including the trailing '\')
Press ENTER (finish entry). Then press ESC (returns to 'configure
BOYAN' screen) and, again, press ESC (back to main terminal window)










HydraCom                                                        Page 25





Page 26                                                        HydraCom

4.2.7   Qmodem 

To use HydraCom with the Qmodem communications package, enter Qmodem,
and from the main terminal window, press Alt-N (Configure Qmodem) Then
select option P (Protocols) and select a free protocol line entry
(0-9).

        Select character        H
        Protocol                Hydra 
        Upload BAT              HYDRAUP.BAT
        Download BAT            HYDRAUP.BAT
        Filename Prompt         N

Finished? press ESC (returns to 'Protocols' window) and again, press
ESC (returns to 'Configure Qmodem' window), select option E (Exit) and
select option S (Save Changes) Qmodem will then automatically return
to the main terminal window.

The batchfile (placed in the Qmodem home directory):

HydraCom port %2 speed %1 receive D:\DL\ send %3 %4 %5 %6 %7 %8 %9
(change D:\DL\ to the path of your own download directory)


































Page 26                                                        HydraCom





HydraCom                                                        Page 27

4.3 Using HydraCom with BBS software 


4.3.1   Maximus 

Protocol Hydra
    Type            Batch
    Type            Bi

    LogFile         Hydra%K.Log
    ControlFile     Hydra%K.Ctl
; Put in NOS (nostamp) to not retain date/time on received files
    DownloadCmd     HydraCom.Exe por %P spe %W lin %b dro nor nob res
%x:Hydra%K.Log rec %v sen @%x:Hydra%K.Ctl
    UploadCmd       HydraCom.Exe por %P spe %W lin %b dro nor nob res
%x:Hydra%K.Log rec %v get
    DownloadString  %s
    UploadString
    DownloadKeyword H
    UploadKeyword   R
    FilenameWord    10
    DescriptWord    0
End Protocol

Note that the DownloadCmd and UploadCmd lines are both a bit long and
therefore wrapped in this document.

Maximus would also be capable of using the Opus mechanism instead of
using DSZ-style, but Maximus 2.00 and 2.01wb have a bug in that code
which causes it to pass invalid data in the controlfile.


4.3.2   Opus 

Opus expects you to specify the path and file name of HydraCom in your
Opus control file. Usually, you would want the user to invoke Hydra
with the H keystroke, so the name of the HydraCom executable should
start with a H, like HydraCom.EXE. In this case, you should add an
external file transfer protocol line to your Opus control file which
(in case HydraCom.EXE resides in the c:\opus directory) reads:

External_file_protocol C:\OPUS\HydraCom.EXE














HydraCom                                                        Page 27





Page 28                                                        HydraCom

4.3.3   QuickBBS and RemoteAccess (FileDoor) 

You can offer HydraCom from QuickBBS, RemoteAccess and similar
packages with the FileDoor program. For that, you would have to add
the specifications for HydraCom to your filedoor configuration file:

Protocol 96 T U 20 0 Hydra
Usage 0 0 N Y 38400
BiDSZ HYDRACOM.EXE por $1 spe 38400 lin $2 nob rec $8 sen $3 $M

Protocol 96 T D 20 0 Hydra
Usage 0 0 N Y 38400
BiDSZ HYDRACOM.EXE por $1 spe 38400 lin $2 nob rec $8 sen $3 $M

These settings only apply if you use a modem locked at 38400.
For information about which settings to change for your modem, please
refer to the FileDoor documentation and config comments.


4.3.4   RBBS-PC 

RBBS-PC uses a file called PROTO.DEF to define the external protocols.
Here is a sample PROTO.DEF. Please refer to the RBBS-PC documentation
for information concerning the syntax. 

"H)ydra
",0,S,8,,B,1024,,0.96,,1=E,"D:HydraCom.EXE port [PORT#] speed [BAUD]
dropdtr result D:XFER-[NODE].DEF send [FILE]","D:HydraCom.EXE port
[PORT#] speed [BAUD] dropdtr result D:XFER-[NODE].DEF get [FILE]"

It is one physical line which should not have any CR/LF in the middle.


4.3.5   Wildcat! 

Wildcat! is a commercial Bulletin Board package, this paragraph will
cover the implementation of HydraCom within the Testdrive version. You
should create a path to your external protocols, like C:\WILDCAT\EP,
where you should store all files related to external file transfers.
Wildcat! will also temporarily store the sent and received files
there. You should also specify this path in the Wildcat! set-up
program, (MakeWild) and don't forget to add to the number of external
transfer protocols, also in the set-up program. After that, you should
define HydraCom within the external protocol definition part of the
set-up. LTR defines the key which a user should press in order to
invoke the transfer batch file. At the Up.BAT position, you should
define the HydraCom upload batch file and at the Dn.BAT you should
define the HydraCom download batch file. Setting the Batch field to
Y(es) will allow a batch (multiple files) of files for up- or
downloading, this is recommended, though the test-drive version does
not support batch uploads. Please note that users cannot invoke
external protocols during the period between an event and two hours
before the start of that event.



Page 28                                                        HydraCom





HydraCom                                                        Page 29

Wildcat! spawns to dos upon exit to HydraCom and will assign the baud
rate to DOS variable %1, the communications port is assigned to
variable %2 and the file name(s) (without path) are assigned from
variable %3 to variable %9. The batch files must be located in the
external protocol directory. Your download batch file would be:

CD \WILDCAT\EP
HydraCom.EXE port %2 speed %1 sz %3 %4 %5 %6 %7 %8 %9
CD \WILDCAT

and your upload batch file could, for example, become:

CD \WILDCAT\EP
HydraCom.EXE port %2 speed %1 rz [%3] 
COPY %3 [%5]%4
DEL %3

where the %3 variable denominates the file which is to be received,
but this does not need to be specified to make HydraCom receive a
file. Variable %4 contains the path to an upload directory which has
been specified by the user and variable %5 contains the full drive,
path and file name. The latter two variables can be useful in the
batch file which calls HydraCom, for example to move files directly to
an upload area. These batch files should be named according to the
batch file names which you filled in under Up.BAT and Dn.bat in the
MakeWild set-up program. To allow as many (seven, %3 to %9) files to
be downloaded in one batch as possible, Wildcat! does not use a path,
but only uses the external protocol directory. Wildcat! will copy
files which are to be sent to this directory (and delete them after
the transfer) and will receive files into this directory, a DOS
command line is limited to 128 characters, so this saves a path
denomination before each file.

You can edit PROTOCOL.HLP and add information about HydraCom to it for
your users.





















HydraCom                                                        Page 29





Page 30                                                        HydraCom

4.3.6   XBBS 

The internal XBBS version 1.06 method:
XBBS needs a PROTOCOL.TXT, which is made into PROTOCOL.CTL by
XPROTO.COM. You could add the next lines to PROTOCOL.TXT in order to
install HydraCom in your XBBS.

;sample PROTOCOL.TXT for HydraCom
Hydra                                      ;Protocol label
H                                          ;Key to select protocol
96                                         ;Protocol efficiency
C:\XBBS\HydraCom.EXE PORT *p SPEED *B send *F;Download string
C:\XBBS\HydraCom.EXE PORT *p SPEED *B get   ;Upload string
type a dozen CTRL-X's                      ;Abort string
Y                                          ;Wildcards?
Y                                          ;Multiple file names?
Y                                          ;Simultaneous U/D?
Y                                          ;use @listfile?
Y                                          ;remote filename?
Y                                          ;Use DSZlog?
N                                          ;not yet used
N                                          ;not yet used

Please refer to the XBBS documentations for the exact meaning of the
PROTOCOL.TXT statements.
Then run XPROTO PROTOCOL.TXT in the XBBS home directory and you got
yourself a PROTOCOL.CTL with HydraCom.





























Page 30                                                        HydraCom

