
Lesson #16 - Intro To The Advanced Lesson Series
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This macro lesson is the first in a series of "advanced" techniques
that will be applicable to using the {COMMO} macro language to
automate your BBSing sessions (Note: for those who have been
following the lessons to date, this next series will include all
aspects of your sessions, e.g., file ul/dl..not strictly mail, as in
the first series).  If you are new to {COMMO}, and/or new to writing
{COMMO} scripts, then I recommend you study the {COMMO} macro guide,
my lessons 1-15, and any other material applicable to using the
{COMMO} macro language before diving into Lessons 16+. That said,
let's begin.
-----

Now that we've looked at writing a mailrun script for a BBS, how
would we go about writing a mailrun script we could use on several
BBSs?..especially if there are multiple BBSware types in our
directory?  Well, we could write individual subroutines applicable to
each BBS, append them all together into a single .MAC, then call the
appropriate subroutine with some intelligent branching based on
"nodeid", linked macro, or whatever.  This method would work, but it
would be a brute force method for handling multiple BBSs.  There'd be
plenty of duplicated macro statements throughout the entire .MAC.
How about writing individual .MACs for each BBS (or BBSware type) and
then loading the appropriate .MAC via a "MACLoad" statement from a
"core" .MAC?  Design the "core" so that it handles all the dialing,
capture file opening, cleanup, hangup activity, and other common
chores.  Hmmm.. room for a little more efficiency (perhaps), but the
bottom line is this method is still heavily weighted in the "brute
force" category.  If you were to add new BBSs to the mix, you still
might be required to write a .MAC for each new BBS.

The ultimate goal is to have *one* set of "LOOKs/SENDs/EXECs/SSLOs/ETC"
handle *all* the activity on *any* BBS...design one .MAC that could
be used for any new BBS you add to your .FON, without having to
reinvent the wheel every time.  Is this possible?..what about the
differences between BBSs?..prompts, responses, protocols, mail doors,
etc.?  Yes, it's possible.  I'm going to show you how to do it using
a standardized .CFG file which will contain data applicable to the
BBS (or BBSware type) and then using {COMMO}'s "ROPE" and "READ"
commands to ensure the right setup is loaded regardless of which BBS
you happen to be connected with.

End of Lesson 16..next lesson, "Common Denominators In BBS Sessions"

Jim
