Added in 1.30
---------------

Added to the functionality of ONSTRING/OFFSTRING by adding 42 new ARexx
commands.   The documented function and documented messages to "BT_msg" for
ONSTRING and OFFSTRING remain the same.  The new commands are ...

ONSTRING1  Usage: ONSTRING1 <string>
   Behaves exactly as ONSTRING (as doc'ed in the manual) except that it
   is a unique command.  When <string> is found in the input stream
   BackTalk sends a message to your ARexx script; ARG0 will be MATCH1.

ONSTRING2  Usage: ONSTRING2 <string>
   See ONSTRING1.  ARG0 will be MATCH2.

ONSTRING3  Usage: ONSTRING3 <string>
   See ONSTRING1.  ARG0 will be MATCH3.

ONSTRING4  Usage: ONSTRING4 <string>
   See ONSTRING1.  ARG0 will be MATCH4.

ONSTRING5  Usage: ONSTRING5 <string>
   See ONSTRING1.  ARG0 will be MATCH5.

ONSTRING6  Usage: ONSTRING6 <string>
   See ONSTRING1.  ARG0 will be MATCH6.

ONSTRING7  Usage: ONSTRING7 <string>
   See ONSTRING1.  ARG0 will be MATCH7.

ONSTRING8  Usage: ONSTRING8 <string>
   See ONSTRING1.  ARG0 will be MATCH8.

ONSTRING9  Usage: ONSTRING9 <string>
   See ONSTRING1.  ARG0 will be MATCH9.

ONSTRING10  Usage: ONSTRING10 <string>
   See ONSTRING1.  ARG0 will be MATCH10.

ONSTRING11  Usage: ONSTRING11 <string>
   See ONSTRING1.  ARG0 will be MATCH11.

ONSTRING12  Usage: ONSTRING12 <string>
   See ONSTRING1.  ARG0 will be MATCH12.

ONSTRING13  Usage: ONSTRING13 <string>
   See ONSTRING1.  ARG0 will be MATCH13.

ONSTRING14  Usage: ONSTRING14 <string>
   See ONSTRING1.  ARG0 will be MATCH14.

ONSTRING15  Usage: ONSTRING15 <string>
   See ONSTRING1.  ARG0 will be MATCH15.

ONSTRING16  Usage: ONSTRING16 <string>
   See ONSTRING1.  ARG0 will be MATCH16.

ONSTRING17  Usage: ONSTRING17 <string>
   See ONSTRING1.  ARG0 will be MATCH17.

ONSTRING18  Usage: ONSTRING18 <string>
   See ONSTRING1.  ARG0 will be MATCH18.

ONSTRING19  Usage: ONSTRING19 <string>
   See ONSTRING1.  ARG0 will be MATCH19.


OFFSTRING1  Usage:  OFFSTRING1 <no argument> | <string>
   Behaves exactly as OFFSTRING (as doc'ed in the manual) except that it
   is a unique command.  When <string> is found in the input stream
   BackTalk sends a message to your ARexx script; ARG0 will be OFF1.

   NOTE:  If you give OFFSTRINGn an argument ...
          The input stream is searched for the argument string.
          When it is found a message is sent to ARexx and the
          corresponding ONSTRINGn (it it exists) is cleared.
          If you change the argument to OFFSTRINGn before a match
          is found in the input stream, all you have done is changed
          the search string and NOT cleared the corresponding
          ONSTRING (if it exists).  This means you may do a
          
          OFFSTRING "test"
          if later in your ARexx script you do a
          OFFSTRING "news"
          BEFORE a match on "test" is made, you will have changed
          the search criteria from "test" to "news".
         
          If you do NOT give OFFSTRINGn an argument ...
          A message is sent to ARexx immediately and the
          corresponding ONSTRINGn (if it exists) is cleared.

          What this means is that OFFSTRINGn can be used as a "one shot"
          "signal me when this string is found".  Very much like WAITFOR
          with the exception being that your ARexx script will have to
          be looking for the message from BackTalk signaling the string
          was found.  (WAITFOR does not reply to ARexx until the string
          is found and therefore effectively stops further execution of
          your ARexx script until a match is found).

OFFSTRING2  Usage: OFFSTRING2 <string>
   See OFFSTRING1.  ARG0 will be OFF2.

OFFSTRING3  Usage: OFFSTRING3 <string>
   See OFFSTRING1.  ARG0 will be OFF3.

OFFSTRING4  Usage: OFFSTRING4 <string>
   See OFFSTRING1.  ARG0 will be OFF4.

OFFSTRING5  Usage: OFFSTRING5 <string>
   See OFFSTRING1.  ARG0 will be OFF5.

OFFSTRING6  Usage: OFFSTRING6 <string>
   See OFFSTRING1.  ARG0 will be OFF6.

OFFSTRING7  Usage: OFFSTRING7 <string>
   See OFFSTRING1.  ARG0 will be OFF7.

OFFSTRING8  Usage: OFFSTRING8 <string>
   See OFFSTRING1.  ARG0 will be OFF8.

OFFSTRING9  Usage: OFFSTRING9 <string>
   See OFFSTRING1.  ARG0 will be OFF9.

OFFSTRING10  Usage: OFFSTRING10 <string>
   See OFFSTRING1.  ARG0 will be OFF10.

OFFSTRING11  Usage: OFFSTRING11 <string>
   See OFFSTRING1.  ARG0 will be OFF11.

OFFSTRING12  Usage: OFFSTRING12 <string>
   See OFFSTRING1.  ARG0 will be OFF12.

OFFSTRING13  Usage: OFFSTRING13 <string>
   See OFFSTRING1.  ARG0 will be OFF13.

OFFSTRING14  Usage: OFFSTRING14 <string>
   See OFFSTRING1.  ARG0 will be OFF14.

OFFSTRING15  Usage: OFFSTRING15 <string>
   See OFFSTRING1.  ARG0 will be OFF15.

OFFSTRING16  Usage: OFFSTRING16 <string>
   See OFFSTRING1.  ARG0 will be OFF16.

OFFSTRING17  Usage: OFFSTRING17 <string>
   See OFFSTRING1.  ARG0 will be OFF17.

OFFSTRING18  Usage: OFFSTRING18 <string>
   See OFFSTRING1.  ARG0 will be OFF18.

OFFSTRING19  Usage: OFFSTRING19 <string>
   See OFFSTRING1.  ARG0 will be OFF19.


OFFSTRINGALL  Usage:  OFFSTRINGALL
   This will clear all outstanding OFFSTRINGn and ONSTRINGn
   calls.

GETLINE  Usage: GETLINE
   Returns the line of text from the input stream.  Most useful when
   used with ONSTRING.  Something in the line of text triggered ONSTRING
   and you can get the entire line of text to parse for context or get
   other information from it.

RESET  Usage: RESET
   This is recommended to be used immediately before the "exit" command
   in your ARexx scripts.  It will clear all outstanding ONSTRINGn and
   OFFSTRINGn calls, restore screen display if DISPLAYOFF was called, 
   and UNBLOCK user input if BLOCK was called.  The main purpose of this 
   command is to tell BackTalk that the script has terminated and there 
   is no longer any reason to be checking the input stream for matches 
   if you had used ONSTRINGn/OFFSTRINGn.  Of course, RESET can be used 
   at any time in an ARexx script if you wish the above actions to take 
   place.

QCD  Usage: QCD
   Queries the state of Carrier Detect.  Returns the string "ON" if
   you are online, "OFF" if you aren't.


                          !!!!! IMPORTANT !!!!!

In all of your ARexx scripts that call ONSTRINGn and/or OFFSTRINGn,
make sure that in your getpkt() loop you've got something similiar to...

when arg0 = 'DIE' then do
   closeport("BT_msg")
   /* other clean up stuff here */
   exit
end

This is _VERY_ important.  If you have a ARexx script running that is
waiting for events (currently the only implemented BackTalk ARexx calls
that will generate these events are the ONSTRINGn and OFFSTRINGn calls)
and you terminate BackTalk, BackTalk will not be able to fully terminate
until your ARexx script exits the getpkt() loop.  During BackTalk's
termination process, it will check if the port BT_msg is open.  If it
is, BackTalk will send the "DIE" message to BT_msg.  It is up to your
script to properly exit the getpkt() loop and exit.  The termination
of the ARexx script will signal BackTalk to complete its termination
process.


Changes in 1.30
---------------
Added a BT.CFG version check.  If you are not running a current version
BT.CFG file you will be presented a requester informing you of this.  The
program defaults will then be used.  When you next "Save Configuration" 
from the Configuration menu the correct file format will be written to
BT.CFG.  This is here strictly for future enhancements.  If the BT.CFG
file format were to change in the future and you did not delete BT.CFG
when running that version of the program, strange things could happen.
With the version check you are informed of the file format change, 
program defaults will be used, and the next time you save the configuration
everything will be updated.

Fixes in 1.30
-------------
There was a problem with OFFSTRING.  If you had an OFFSTRING <string> set,
and it was executed, the <string> was not cleared.  So the next time you
did an ONSTRING if the old OFFSTRING argument showed up in the input stream
it would turn off the current ONSTRING.

Fixed a potential guru when attempting to open the capture buffer when
it was already opened.

Explicitly close BT_msg on termination in case the user didn't do so
in the ARexx script in which BT_msg was opened.

Misc in 1.30
------------

