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 , 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 ), 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 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