Copyright 1993 Mark Dignam and Mick Howland - Omen Computer Services
Perth Omen Bulletin Board System - 3:690/660@fidonet
The Protocol Engine for Turbo Pascal.
version 0.18
The EASY way to get your Turbo Pascal programs to transfer files!
What is a Protocol Engine?
It is a set of software routines that take all the hard work out of
writing communication software. In this one easy-to-use Turbo Pascal
(versions 5, 5.5, 6, 7 and Borland Pascal 1.0) Unit are ALL the
procedures and functions required to transfer files from one computer
to another. Various methods of error checking are available, that are
fully compatible with the standard protocols used by conventional
terminal programs.
Objectives.
Protocol Engine has been to designed to fufill two major objectives:
a) It is very easy to use for even the novice programmer. This was
achieved by using a small linked array of strings to transfer the
filenames between the main program and the unit and then calling a
simple Boolean function for each different method.
b) It has a low DataSegment overhead , while retaining large Transmit
and Receive buffers. It is suitable for Binkley/FrontDoor transfers and
high speed modem links. The current DataSegment use is less than 5k,
while still having up to 15k disk buffering.
Features.
The Protocol Engine has support for Xmodem, Xmodem with 1k Blocks,
Ymodem Batch, YmodemG Batch, Zmodem (both Crc16 and Crc32), Sealink and
Yapp (a packet radio protocol).
When using Zmodem method of transferring files, the Protocol Engine
fully supports crash recovery in both send and receive modes. In all
batch modes, there is the option to overwrite or create a new file when
receiving.
Since Protocol Engine requires an asynchronous unit to handle high
speed communications, a Comm unit is included with full source code.
This unit is a modified version of the Public Domain ASYNC4. It handles
both Fossil and Non_Fossil environments with ease at speeds upto 38400
baud.
The Protocol Engine also has "external hooks" defined to allow the end
programmer to link in their own code into the Protocol Engine. These
hooks will be called when certain events happen, as the Protocol Engine
is being executed. This allows the end user to further customize the
look of the Engine, and insert more features into their own software.
Contents of this Archive.
ANSI_DRV.PAS Source Code for a Ansi Screen Unit
PROTCOMM.PAS A Half Decent Comms Unit.
The first two Files are support source code for the Protocol Engine.
Users are free to use these files as they wish. The Ansi unit was
written for another project. It may or may not have bugs - it works for
me! The Comms unit is a very modified version of ASYNC4 with Fossil
Support and internal 16650 support.
TERM.EXE A quick Terminal program written using the Protocol Engine.
TERM.PAS The source code for the above program.
This demo program shows the use of the Protocol Engine. It has all of
the transfer protocols in it, along with Ansi and Doorway emulation
modes.
The next three files are the Turbo Pascal units. The numbers in the
extension field are for the relevant version of Turbo Pascal. To use:
copy the version that relates to your compiler to Proteng.tpu!
PROTENG.50S Protocol Engine for Turbo Pascal 5.0
PROTENG.55S Protocol Engine for Turbo Pascal 5.5
PROTENG.60S Protocol Engine for Turbo Pascal 6.0
PROTENG.70S Protocol Engine for Turbo Pascal 7.0 and
Borland Pascal 1.0
PROTENG.DOC This Document!
LICENSE.FRM License Form - for registration.
PROTMAP.DOC State Table of all the protocols.
Contacting the Authors.
For any further details or the latest version, the authors may be
contacted at the Perth Omen BBS (3:690/660.0@fidonet) on +61-9-244-2111
(multiline) all speeds upto v32, or by voice on +61-9-244-1954 (any
time between 0300GMT and 1600GMT).
Mark Dignam.
Mick Howland.
|