Message Tag PPE Suite - By Dan Shore - SysOp
                           The Shoreline BBS
                           (301) 946-2771
                           Version 1.02
                           August 2, 1996

Purpose:  To allow the SysOp or a user to *TAG* message numbers to read,
          or kill utilizing PCB's "Q"uick Message Scan function.


PPL Version:  3.10 is currently being used for the Message Tagging Suite


ContinueWare Concept
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

The Message Taggin Suite is being released as "ContinueWare".  What the
heck is that????  When I developed Message Tag, I used David Terry's
FLAG.PPE as the tagging engine (after receiving permission to do so from
David - Thanks David!!).  I envisioned Message Tag to grow from the
input of other SysOp's who progam using PPL - hence the concept of
"ContinueWare".  There are some features which I and others would like
to see in Message Tag, like RIP support, and hopefully someone will
pickup the ball and add that support in.  Also, if you do not like how a
certain function works, you have the source available to make changes to
and learn from.  (I am not sure who would want to learn from my
programming techniques <G>, but someday it may help someone on their
way.)

If you decide to enhance one of the PPE's that is part of the Message
Tagging Suite, I ask that you RETAIN the name of the original PPE and
note all changes in the beginning of the source code.  YOU ARE REQUIRED
to release the SOURCE CODE with any updates to ANY of the PPE's.  If you
run across a new version of one of the Message Tagging Suite PPE's
without the source, DO NOT USE IT!!!!!

It is also recommended that you comment the source code at the points
where you have made changes, so a comparison can be done from the
original source.

You are also REQUIRED to include a FILE_ID.DIZ as part of the archive
and the FILE_ID.DIZ must note the new version.  A quick note on
FILE_ID.DIZ - 10 lines, 45 characters per line.  NO HIGH ASCII.  THE
FIRST LINE OF THE DESCRIPTION IS THE NAME OF THE PROGRAM AND THE VERSION
NUMBER AND A NOTE THAT IT IS A PPE.  NO BLANK LINES. NO LEADING SPACES.
LEARN THE STANDARD AND ADHEAR TO IT!!!!  Sorry as this is a pet peeve
(sp?) of mine.

Unfortunately due to low life people, this must be stated...... YOU ARE
NOT ALLOWED TO CHARGE ANY TYPE OF FEES FOR ANY NEW UPDATES TO THE
MESSAGE TAGGING SUITE.  YOU ARE NOT ALLOWED TO CHANGE THE NAMES OF THE
PPE'S AND RELEASE THEM AS *OTHER* PPE'S AND CHARGE FOR THEM.

This is a project which I hope will grow from the enthusiasm to make
PCBoard a better BBS package for all to use.  Now on to the show.....



Message Tagging Suite PPE Description's
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

PPE Name       Description of PPE                        File to modify
ÄÄÄÄÄÄÄÄÄ      ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ   ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
QSCAN.PPE   -  Quick Message Scan replacement ........   CMD.LST & PCBText
MORE.PPE    -  More prompt replacement ...............   PCBText
MEC.PPE     -  Message Command replacement ...........   PCBText
READ.PPE    -  Read Message replacement ..............   CMD.LST
KILL.PPE    -  Kill Message Number replacement .......   CMD.LST
RECOVER.PPE -  Recover Message Number replacement ....   CMD.LST
WAIT.PPE    -  Press (Enter) to Continue replacement .   PCBText


Other files in the distribution package
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

????.PPS     -  Source code for the PPE's.
MSGTAG.DOC   -  What you are now reading
UPDATE.DOC   -  Update information for the Message Tagging Suite
FILE_ID.DIZ  -  Description file for archive
WHATSNEW.!!! -  Whats new since last version
READ         -  Used by READ.PPE - Must be in the same directory as READ.PPE
TAGBAR       -  Used by MORE.PPE - Must be in the same directory as MORE.PPE
TAGHLP       -   ""        ""           ""                ""           ""
TAGNEW       -   ""        ""           ""                ""           ""
TAGOLD       -   ""        ""           ""                ""           ""


Files Created by the Message Tagging Suite
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

MTG?????.LST - This file contains the tagged message numbers

MSGTAG.USE   - This is a semaphore file looked for by the other PPE's,
               particularly MORE.PPE, to know the user is currently in
               message tagging

USERPL.DAT   - This file contains the users ORIGINAL page length
               setting.  Those of you who use David Terry's FLAG.PPE are
               aware that if a file is on the top line of the users
               screen, that it may not be on the top line of the BBS
               screen, making tagging of that file with the space bar
               not possible.  This is also true if the user is in 50
               line mode and the BBS is in 25 line mode.

               With Message Tagging, we read the user ORIGINAL page
               length and save it in this file.  We then change their
               page length to 23 lines so the BBS screen and the users
               screen are in sync - i.e. the top message number is the
               same top message number on both screens.  When the user
               is done tagging messages, the file USERPL.DAT is read,
               the user original page length setting is restored, and
               the file is deleted.


These three files are created and maintained in the SAME DIRECTORY as
you specify PCB to use for that particular nodes SWAP FILE.

    In PCBSetup:

          File Locations | System Files | Name/Loc of Swap File



How will these PPE's affect other PPE's
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

READ.PPE

For SysOp's that use a "Read" PPE?  How can that PPE be still used
by the sysop but still support tagged messages?  Since the MTG?????.LST
file has the msg numbers in a "stacked" sequence, all the other PPE's
need to do is read that file, and stuff the first *20* msgs in the
keyboard.  Remember PCB has a 20 message number limit on stacking
message numbers to be read.

       -or-

Incorporate the code from the DISPLAY_MSG_SETS and GET_NEXT_VALUE
subroutines.  DISPLAY_MSG_SETS will display to the user *Sets* of 20
tagged message numbers, and allow the user to *choose* which set to
read. GET_NEXT_VALUE is use in place of GETTOKEN.  This improvement in
version 1.01 of the Suite will work around the PCBoard limitation of
the 20 stacked message number limit.


    Here is what the screen display will look like to the user if they
    choose to read TAGGED messages and they have more than 20 message
    numbers tagged:

    ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
    ³Due to a limitation of PCBoard, only 20 Message numbers can be³
    ³stacked to read at one time.  Pick the SET NUMBER of tagged   ³
    ³messages you wish to read.                                    ³
    ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ

    Set #  Tagged Message Numbers
    ÄÄÄÄÄ  ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
      1    2324 2323 2322 2320 2319 2318 2317 2316 2315 2313
           2312 2311 2308 2297 2296 2294 2293 2292 2290 2286

      2    2285 2284 2283 2281 2280 2279 2278 2276 2275 2274
           2272 2270 2268 2263 2262 2260 2258 2255 2254 2253

      3    2251 2250 2249 2248 2247 2246 2245 2244 2242 2240
           2238 2237 2236 2235 2232 2231 2229

           Choose set number to read (Enter=quit)? (  )



WAIT.PPE

For SysOp's that use a "Wait" PPE, the PPE must check for the existance of
the semaphore file (MSGTAG.USE) and call MORE.PPE before presenting the
Press (Enter) to continue prompt.  See the WAIT.PPE source code.



OPERATION
ÄÄÄÄÄÄÄÄÄ

In order to "tag mmessages", you must use the "Q"uick Message Scan
command of PCB. You can do a "Q S", "Q L", "Q 1+", or whatever PCB
allows you to use. Once you are in the Scan, you can now tag messages
just like you can tag files with the FLAG.PPE.

You use your cursor arrow keys, or the space bar to highlight the
message number you wish to tag.  To tag the number hit the ENTER key. To
"detag" a message number that has an asterisk next to it, just hit the
ENTER key again and it will be "detagged".  The PPE will not allow a
message number to be tagged more than once.

Since the message tagging suite uses a BIGSTR variable to hold the
tagged message numbers, you can tag *ALOT* of messages.  As an example,
lets say the current message base has messages numbers from 1000 to
3998.  With 4 characters for the message number and 1 character for the
semi-colon, you could tag over 400 messages!!!!! (2048 characters in a
BIGSTR variable divded by 5 characters = 409 message numbers).  Imagine
being able to selectively KILL 400 messages in one fell swoop!!!!  And
if you "messed up" (a highly technical BBS term we all know <G>), you
can RECOVER all 400 back in one fell swoop!!!


There is currently no EDITING of MESSAGE NUMBERS function. I am not sure
if it is needed.  If you think it is, tag a stab at writing the editing
function.


The best way to understand how message tagging works, is to install the
PPE's and try them out.



NOTES
ÄÄÄÄÄ

A.  KILL and RECOVER can delete single msg numbers, stacked msg numbers
    or ranges of message numbers.  Examples of valid entries:

    K 1
    K 1 2 3 4 5
    K 1-5
    K 1;2;3;4;5
    K 1-5;10;24
    K TAG
    K <retur> 100-245

    If you have tagged messages, then you can stack the command K TAG or
    you can enter K first then enter, then at the prompt type TAG, and
    all your tagged messages will be KILLED.  (RECOVER.PPE functions
    the same way.)


B.  MORE.PPE is run EVERYTIME a more prompt appears on the screen.  The
    PPE is smart enough to know when it is needed for msg marking and when
    it is needed for the standard prompt.  Consideration for placing this
    PPE in a RAM Drive if you are concerned about excessive disk activity.

C.  You will need to add "TAG" and "DELTAG" to your help screens for
    reading messages.  TAG will read the FIRST 20 tagged messages (a PCB
    limitation on stacking message numbers to read), and DELTAG will
    delete the users tagged message number list.

    With version 1.01 of the Message Tagging Suite, the user is presented
    with a display of *Sets* of 20 tagged message numbers.  The user can
    then choose which *Set* to read.  If 3 sets are shown, then the user
    can read all three sets, but they can only read 1 set at a time.

    See UPDATE.DOC for an example of how the display will appear to the
    user.


INSTALLATION
ÄÄÄÄÄÄÄÄÄÄÄÄ

1.  Installation for each PPE is located at the beginning of each
    .PPS file.  You can determine the directories for the PPE's to
    reside in.  Here is what I have used:

    \PCB\PPE\QSCAN    contains:  MORE.PPE, QSCAN.PPE, MEC.PPE and
                                 all TAG??? files
    \PCB\PPE\READ     contains:  READ.PPE, and READ
    \PCB\PPE\WAIT     contains:  WAIT.PPE
    \PCB\PPE\KILL     contains:  KILL.PPE
    \PCB\PPE\RECOVER  contains:  RECOVER.PPE

    Here is a brief synopsis of the installation required.

    CMD.LST Changes:

                          Charges Per     PPE/MNU File Specification -or-
         Command    Sec  Minute    Use    Keystroke Substitution
     ÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
     Q                5        0        0 C:\PCB\PPE\QSCAN\QSCAN.PPE
     R                5        0        0 C:\PCB\PPE\READ\READ.PPE
     K                5        0        0 C:\PCB\PPE\KILL\KILL.PPE
     4                5        0        0 C:\PCB\PPE\RECOVER\RECOVER.PPE

       Note:  You may have to change the pathname to the PPE.


     PCBText Changes:

     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:425 "!C:\PCB\PPE\QSCAN\MEC.PPE"
     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:584 "!C:\PCB\PPE\QSCAN\MEC.PPE"
     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:196 "!C:\PCB\PPE\QSCAN\MORE.PPE"
     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:418 "!C:\PCB\PPE\WAIT\WAIT.PPE"
     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:424 "!C:\PCB\PPE\WAIT\QSCAN.PPE"
     MKPCBTXT C:\PCB\GEN\PCBTEXT /I:613 "!C:\PCB\PPE\WAIT\QSCAN.PPE"

       Note:  You may have to change the pathname to the PPE.


2.  Between every caller on EACH node, you will need to delete the file
    which contains the previous users tagged msg numbers (MTG????.LST).

    NOTE: The ???? represents the conference number where the user
          tagged msgs.

    This file is created in the SAME DIRECTORY as you specify PCB to use
    for that particular nodes SWAP FILE.

    In PCBSetup:

          File Locations | System Files | Name/Loc of Swap File


    The deletion of this file can be done in the $$LOGOFF.BAT or if you
    run a front end mailer like Front Door, Binkley, etc. (not PCB Built
    in) you can delete this file when the user first calls in (for Front
    Door you would put this entry in the EXEBBS.BAT file before
    PCBoard.Exe/PCBoardM.EXE loads).  This same entry could be used in
    the $$LOGOFF.BAT file.

    Here is an example for deleting the file(s) on node1:

If Exist C:\Pcb\Node1\MTG?????.Lst Delete C:\Pcb\Node1\MTG?????.Lst

    You can also use the PCB Environment variables in your command so
    you have have one $$LOGOFF.BAT file for all nodes.  NOTE:  This
    following example will only work if you have specified PCB to use
    the NODE directory for your swap file.

If Exist %PCBDRIVE%%PCBDIR%\MTG?????.Lst Delete %PCBDRIVE%%PCBDIR%\MTG?????.Lst



WARRANTY AND DISCLAIMER:
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

THIS PRODUCT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
INCLUDING ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE
PROGRAM IS ASSUMED BY YOU.  FURTHERMORE, I THE AUTHOR DO NOT WARRANT,
GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF OR THE
RESULTS OF THE USE OF THE PROGRAM, OR THAT THE PROGRAM WILL RUN
WITHOUT ERROR, AND YOU RELY ON THE PROGRAM AND RESULTS SOLELY AT YOUR
OWN RISK. I THE AUTHOR CANNOT ACCEPT RESPONSIBILITY FOR SYSTEM
DAMAGE, LOSS OF PROFIT, OR ANY OTHER SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OR INABILITY TO USE THIS
PRODUCT.


Special Thanks
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ

A special thanks to :

Mark and Becky Zec of "HareMail BBS" in Cleveland, OH
John Palazzolo of "JP's Place" in Falls Church, VA
Garry Shum of "Media Spectrum" in Montreal, Quebec


Thanks folks for your testing, suggestions, and assistance.



Conclusion
ÄÄÄÄÄÄÄÄÄÄ

This archive has been zipped with an authenticity verification stamp.
When you unzip this archive you should see at the end:

       Authentic files Verified!   # MMJ131
       THE SHORELINE BBS

If you do not see this, then the file has either been tampered with or
has been rezipped by an upload processor.

If you have any questions, comments, suggestions, etc. please feel free
to contact me via NetMail, the PCBoard or the PCBNet conferece in FIDO,
the PPL conference on RIME, or on Salt Air.


    Dan Shore                  (301) 946-2771  - Node 1 (public access)
    The Shoreline BBS          (301) 946-4202  - Node 2 (subscribers)
    4312 Ferrara Court         (301) 946-8153  - Node 3 (public access)
    Silver Spring, MD 20906    (301) 946-5733  - Node 4 (public access)
                                Fido Address   - 1:109/458  1:109/457
                                RIME Address   - #1205 or SHORELINE
                                E-Mail Address - dan.shore%sline@ghawk.com