


*******************************************************
IMPORTANT: You must use PUMASET  to install the default
parameters, YOU must  specify  that PUMA will not allow
files to  overwritten !  As  of version 1.00, PUMA does
not  properly  support the O+/- command  line option to
not allow  overwriting  of files.  All  other necessary
command line options are included in the interface, and
seem to work  properly. This interface program does not
set any  HANDSHAKING  and will  use  whatever  has been
configured. If your  modem supports  MNP or other error
correcting Protocol, then you  will  have to set up the
correct type of handshaking.    THIS IS VERY IMPORTANT.
The  interface gets  the Port # information  from OPUS.
*******************************************************


The DSZLOG file option of  PUMA will  not be used, instead
the LOADER will  look for an  environment  DSZLOG variable
and if there is  one set then  it will use  that .LOG file
to determine the  CPS of a transfer. If no DSZLOG variable
can be found in the environment, then a temporary log file
will be  created and  then deleted after the Puma Protocol
returns  control to the Interface program.  The reason for
this is that there  is no  guarantee  that the information
configured  into the Puma  Protocol driver, will always be
in the exact same location for future versions.

Many Protocols  use this  DSZLOG file  to keep a  record of
file transfers,  LYNX, BIMODEM and  of course DSZ protocols
will  automatically  update a  DSZLOG.  So I have chosen to
use the DSZLOG for compatibility reasons, you can of course
configure  PUMA to point  to the  same  file  as the DSZLOG
environment variable, and  this  will  record all transfers
to that .LOG file, whether  they  are  initiated  from OPUS
or your communications programs.

***********************************************************


What's the  purpose of this  Loader/Interface Program ?


A  Loader Program that allows you  to use PUMA protocol
as an external protocol with an  OPUS CBCS. This Loader
Program will read the .CTL file that OPUS  creates when
an external  Protocol  Transfer is  selected  and  will
invoke  the  PUMA  Protocol  Driver  with  the  correct
parameters to transfer the file(s).


Archive Contents.

PUMA_110.TXT - Instructions, you're reading this one now.

   PUMA.EXE  - External Protocol Loader for PUMA and OPUS.

  FIXLOG.DOC - Intructions on how and why to use FIXLOG.EXE

  FIXLOG.EXE - Utility program to strip the extra Comment
               lines from OPUS.LOG files.


This is  copyright  material  and  will  require  registration and
payment if you  choose to  continue  to  use  this program. If you
choose to use  this  program  you do  so  at  your  own  risk. The
author  will not be  responsible for any damage that may be caused
by this program.  I fully expect  this program to perform properly
but you can never be 100% sure of anything.  USE AT YOUR OWN RISK.


NOTE: This Archive does not  contain the  PUMA Protocol
      Driver Program. You will have to get that on your
      own.


Installation
------------
1. Obtain a copy of the PUMA protocol  driver and run PUMASET
   to configure  PUMA to never overwrite files, and configure
   the  appropriate  Handshaking method for  your modem.  The
   interface program will set the protocol to use the correct
   Port as specified by OPUS at the time it is called. If you
   have a 16550 type UART then enable FIFO.

2. Rename the configured PUMA Protocol driver to PUMA100.EXE
   and copy that file to the same directory as OPUS.EXE.

3. Copy the interface program (PUMA.EXE) to the same directory
   as PUMA100.EXE and OPUS.EXE.

4. Edit the  BBS.CTL  file and include the name of the External
   Protocol as  PUMA.EXE ( External Protocol c:\opus\puma.exe,
   if OPUS is the correct directory for your set-up, otherwise
   specify the correct Drive and Directory instead of C:\OPUS).
   (This will have to be done for each BBS.CTL if you have more
   than one, in a multi-node setup.)

5. Run OPUS_CTL to create a new BBS.PRM file that will include
   this new Protocol option. (ditto for Multi-node setup).

6. Let everyone know that you have a new Protocol installed, and
   send in your registration fees.


For an OPUS CBCS 1.03 (Computer Based Conversation System)
----------------------------------------------------------

When  OPUS executes an external Protocol it writes out a file containing
all the information  needed to transfer the  selected file(s). This file
has the same name as the  Executing program, but has the extension .CTL.
With Task 0, the  name will be  PUMA.CTL, with  Task 1  the name will be
PUM1.CTL, etc. The loader will  support task 0 to 9, I  have no idea how
many Tasks are  supported by  OPUS, or exactly what use this information
is, but if you  are using a Task number then The loader will still work.
It will  only work  with one TASK at a time, if there happens to be more
than one PUM?.CTL  file  existing  at  the  time of  execution, then the
lowest Task number will always be used.


For an OPUS CBCS 1.10 (Computer Based Conversation System)
----------------------------------------------------------
OPUS 1.10 uses 2 digit  Hexidecimal  Task  numbers, the interface
program now searches  for the  default PUMA.CTL file  first, then
Looks for  the OPUS 1.03 Task  numbers, and  then  looks  for the
Hexidecimal Task numbers,  this process  only takes a few seconds
to search  for  all  possible TASK numbers. The .CTL file will be
deleted as soon  as it has  been read,  and will allow the loader
program to support multiple TASKs on the same machine, in a multi-
tasking environment. Under normal  situations there is very small
chance  that two  different  users will  select the same external
protocol at the very same time, this will cause some confusion as
the interface  will always find the lowest TASK number first ! If
you are  really  concerned  about this  possibility then  you can
implement the renaming scheme  explained  later in this document.
Depending on how fast  your machine operates the file LIFE of the
.CTL file  produced by OPUS will be a maximum of about 10 seconds
with a TASK number of 'FF', and  who is  going  to have 255 Nodes
operating on one computer ? (this 10 seconds was determined on my
Turbo XT  with an Opus  directory containg over 200 files  and no
external  protocol .CTL file  was present !, it searched  for all
possible 266 .CTL filenames.)

The usual file LIFE of the .CTL file will be less than 2 seconds,
and  the  chances  of  two external protocol requests within that
time span is very small.

That is it.


Limitations.
------------

If the PUMA Protocol Driver  reports an  errorlevel  after  the transfer
then any  partial files  that have been received will be  erased and the
OPUS.LOG will report what was  deleted and how many bytes were  deleted.
(in the case of an aborted BATCH upload, all  new files  that  have been
recieved will be deleted, the user  will not get  credit for any of them
and OPUS will not prompt for descriptions.)

  The program  will  write  a  PUMA.LOG  file  for all transfers whether
successful or not, the  reason  for this is to avoid the problem of OPUS
reporting that  the PUMA.LOG  file  cannot  be "read" or  "Opened". This
default  PUMA.LOG  file  will be  incomplete  and  should  result in the
"Transfer Aborted" message.  Actually  it will  be a ZERO byte file, and
take up no space at all. (PUMA.LOG for  Task 0,  PUM1.LOG for task 1,etc.
or PU01.LOG for an OPUS 1.10 system)

Special Considerations.
-----------------------

This Special BATCH version will allow a maximum of 25 files to downloaded
in one BATCH,  regardless of what  OPUS reports  to the  user.  Usually a
request  to  download  *.*  will normally  fail as  OPUS understands wild
cards and will not allow this type  of request due to time limitations or
Download Bytes available. The Loader  will write a  special file for PUMA
to use with the "@" file option. _$_BATCH.PMA will  contain a list of the
files that are going to be sent, and this file will be deleted at the end
of a transfer. OPUS will report this same information if the transfer was
successful.  And  if a  Batch  download  is  aborted then the loader will
estimate the  number  of  files  that  were successfully downloaded. This
information  will also be in the OPUS.LOG file. One small problem is that
OPUS will probably  think  the download was a total success and debit the
user for the full  amount of the batch download instead of only the files
received.

( NOTE: this  estimate  will not be  accurate if you are using High Speed
Modems with Baud  speeds Locked  at 19200, it is designed to estimate the
bytes  sent from  the information provide  by OPUS, if your  Baud rate is
locked high,  then the  estimate  will  be 1000 CPS for all connections !
It will be  accurate  for modems  that allow  the Baud speed to adjust to
Carrier speed, probably  the majority  of systems  are still  using these
types of modems. Not everyone can afford a High Speed Transfer Modem.)


PUMA will allow a maximum of  255 files to be uploaded in a single batch.
The interface program will only identify 25 files that have been uploaded
and prompt for descriptions. Any more than 25 files  uploaded will not be
reported to OPUS, but will be in the upload directory.

----------------------------------------------------------------------
Renaming the interface program for 100% Multi-Tasking support, or just
for more descriptive Protocol Options.
----------------------------------------------------------------------

An  additional  feature of this interface  is that it  can be renamed to
any legal DOS  filename with an  extension of .EXE. You may ask yourself
why would  I ever  want to do  this ?  Well  let  me  explain.  The  DOS
operating  system  will  only  recognize  the first  8 characters of the
filename as being significant and then the extension.

OPUS will let  you enter  more than an  8 character  filename  when  you
setup external  Protocols in it's  BBS.CTL file, and it will display the
whole description  in the protocol option display.  Just make  sure  you
include the .EXE extension.

for example you can rename the PUMA.EXE interface program to PUMA-PRO.EXE
and in the BBS.CTL file you could enter the external protocol as

External Protocol c:\opus\PUMA-PROTOCOL.EXE
                          ^^^^^^^^
                 ( 8 significant characters )


So users will see a protocol option of

       P)uma-protocol   instead of just P)uma

In this case  OPUS will  create a  PUMA-PRO.CTL file  before the transfer
and the  loader will create the  appropriate PUMA-PRO.LOG file containing
the information about  which  files were transferred. (assuming Task = 0).

The interface program has no defaults for these file names and determines
the  correct names, based on the name of the .EXE  interface  program. It
will also start checking for TASKS if cannot locate a task 0 .CTL file.

NOTE:  For  OPUS 1.03 the  first  7 characters  are  significant, the 8th
character  is replaced  by the task  number. For OPUS 1.10 only the first
6  characters  are  significant,  the  last two characters , 7  and 8 are
replaced by  the 2 digit  Hexidecimal TASK  numbers.  So if you are going
to  rename the  interface and have multiple  copies for  different NODES,
then  remember to  create  unigue  names for each of the nodes using only
the significant characters.


for example:  External Protocol c:\opus\Puma-protocol.exe

for OPUS 1.03 the actual file name will be PUMA-PRO.EXE

         Opus 1.03  Creates    The Interface creates

Task 1    PUMA-PR1.CTL         PUMA-PR1.LOG       first 7 characters
Task 2    PUMA-PR2.CTL         PUMA-PR2.LOG       are significant
Task 3    PUMA-PR3.CTL         PUMA-PR3.LOG
etc...

         Opus 1.10  Creates    The Interface creates

Task 1    PUMA-P01.CTL         PUMA-P01.LOG        first 6 characters
Task 2    PUMA-P02.CTL         PUMA-P02.LOG        are significant.
Task 3    PUMA-P03.CTL         PUMA-P03.LOG
etc...
TASK FF   PUMA-PFF.CTL         PUMA-PFF.LOG


---------------------------------------------------------------------


Report any problems or suggestions to:

         Rodney Fraser @ FidoNet  1:163/126.0
                       @ IMEXNet 89:483/102.0


     Registration will be $10.00 in Canadian Funds.
     Make Chegues Payable to

                      Rodney Fraser

and send them to      75 Pickford Drive,
                      Kanata, Ontario,
                      K2L 2C2
                      CANADA.


26 February 1990.


*  this product developed by RAFware Software (C)opyright 1990.


OPUS CBCS is a registered trade mark of Wynn Wagner III. all rights reserved
PUMA  is a  registered  trade  mark of  Matthew  Thomas. all rights reserved


