MBA (Message Base Accountant) Version 3.20 Dated 3-25-92 Copyright (C) 1990-1992 by Michael W. Cocke All Rights Reserved. The Hacker Central BBS 201-334-2555 (public node, 12/2400) 3 nodes, 1200 - 38.4k (HST/v32) SUMMARY. MBA is a sysop utility to reward callers with file upload credits for activities besides the uploading of files. The most common use is to give upload credits to callers who are active in the message bases. MBA can also be used to reward callers who read specific bulletins, open certain doors, or perform just about any action that is recorded in the caller log. MBA version 3.20 is the last freeware version of this utility. The next anticipated version of MBA should be 4.0, which will be out as a shareware product with feature and documentation improvements. COMPATIBILITY. MBA has been tested and used with PCBoard version 14.5a/E. (If anyone is using the /D version and has a problem, please contact me.) FILE LIST. MBA320.EXE the MBA executable program MBA320.TXT this documentation text file BACKGROUND AND USE OF MBA. This program was originally written for use as a 'carrot' to get some of my callers active in the message system. The way I designed it to work focused on rewarding callers for leaving messages. MBA can also apply to opening doors, reading bulletins, or just about any other caller action that leaves a unique text string in the caller log. Every time a caller performs one of these actions specified by the sysop, MBA will see it as one event. It's then up to the sysop to decide how many events will equal one upload credit. I have MBA set to run so that for every five messages left by a caller (except in the ad conferences), MBA will award one file upload credit. Here's how I set it up: 1) I set up an upload/download ratio system based on the number of files (not bytes) in PCBSM. 2) I put MBA in my event before the line that calls PCBSM to adjust the security levels. MBA reads the caller log(s) and maintains an ISAM database file called MSGACT.ISM. This database contains a cumulative total of events performed by each caller, as well as 'credited events' and 'uncredited events'. A credited event is one that MBA has already figured into the upload credit adjustment. Uncredited events are the few leftover events before there are enough of them to equal another upload credit. If MBA is set to award one upload credit for every X events, then there will never be more than X-1 uncredited events. 3) MBA then creates a backup copy of the users file, called USERS.MBA. 4) MBA sequentially scans the users file and searches its data files for each user. For every X uncredited events, MBA increases the 'total number of files uploaded' figure in the users file by 1. MBA then subtracts X from the uncredited events and finally adds X to the credited events record for the user. MBA can optionally create an output file, the name and path of which is configurable. This report contains all the cumulative numbers for every registered user except the sysop. You can choose to use this report as a bulletin. MBA uses the caller file, so it will correctly 'see' events in any conference. In order to use MBA properly, you must not accumulate your caller log! An excerpt from my event.sys file explains this more clearly: CD \PCB\MAIN Move to the correct directory. COPY CALLER.OLD+CALLER CALLER.OLD Append today's caller log to the end of the history log(s). MBA320 Run MBA on today's log(s). DEL CALLER Delete the latest caller log CD \PCB Move to the correct directory PCBSM /ADJUST;FILERATIO Adjust the security levels by upload/download activity for the last 24 hours BOARD Restart the board CONFIGURATION FILE. The config file MBA.CFG must be in the same directory as the MBA program. It can be created with EDLIN or any ASCII text editor. The first five lines of MBA.CFG refer to specific processing parameters. Lines six through the end refer to the particular actions (such as leaving messages, reading bulletins, opening doors, etc.) that the sysop wishes to reward. Every single instance of one of those actions is considered an event. The purpose and format for each line is explained in the following section. Line 1: The full drive, path and filename of the caller log file(s). NOTE: When running multiple nodes, the trailing number must not be included on this line! *** Users of PCBoard versions /D or /S and users of PCBoard version /E with only one active node - this should contain EXACTLY the path and filename of the callers log. Line 2: The number of nodes MBA is to process. MBA will add the appropriate number (1 through n) to the end of the path and filename specified above for the caller log(s). *** Users of PCBoard versions /D or /S and users of PCBoard versions /E with only 1 active node - this should be set to 1, and line 1 should contain EXACTLY the path and filename of the callers log. Line 3: The number of events that will be equal to one file upload credit. An event is every instance where a caller performed one of the specified actions defined later in the config file. For example, if MBA is being used to give credit for any and all messages, then every individual message left would be an event. Line 4: The full drive, path and filename of the users file. Line 5: The full drive, path and filename of the MBA report file. If you do not wish MBA to produce a report, leave this line blank. Line(s) 6 up to 106: 'Operator' lines and 'exclude' lines. An operator line specifies a "credit event". When MBA sees this text in the callers log, it will add 1 to the number of "uncredited events". This is sysop-definable so that MBA will now work correctly with PCBTEXT files other than the standard English. You may also choose to apply file upload credits for opening a door or reading a bulletin. An operator line must be entered in the following format: O,Search Text The O (letter O) and comma are required. The "search text" is what MBA will search for in your caller log. This line should be left-justified. You may specify up to 50 operator lines in your MBA.CFG file, independent of the number of exclude lines. An exclude line is a line that tells MBA *not* to credit the found event if the "exclude text" is found on the same line of the caller log as the operator text. This may be used to exclude messages left in certain conferences from being applied toward upload credits. This is often used to exclude messages left in for sale and BBS ads types of conferences from being credited. An exclude line MUST be entered in the following format: X,Search Text The X (letter X) and comma are required. The "search text" is what MBA will search for in your caller log. This line should be left-justified. You may specify up to 50 exclude lines in your MBA.CFG file, independent of the number of operator lines. NOTES ON TEXT SELECTION FOR OPERATOR AND EXCLUDE LINES. Be aware of the many different variations of the same information that can be written to your caller log. For example, Message Left: I_C-LANG (2) Conference # 20672 and Message Left: via Qmail (2) I_C-LANG # 20672 If you have an exclude line set as "I_C-LANG #", it will be seen as an exclude ONLY when the message is left via Qmail. MBA is very literal about what matches what, and can only do what you tell it, not what you meant to tell it. CONVERSION FROM MBA 2.x OR MBAN 2.x TO MBA 3.20. There is no way to convert your old MSGACT.NDX and .DBF files for use with MBA 3.x. I apologize for this, but owing to an unfortunate accident with my hard drives, I cannot provide this utility. There are several differences you should be aware of when upgrading to MBA 3.20 from earlier versions: IMPORTANT! In *no* way should you attempt to run the MBAPACK utility on the MSGACT.ISM database! MBA 3.20 now has an integral pack utility implemented as pass 3. Attempting to pack MSGACT.ISM with the pack utility from an earlier version of MBA will have completely unpredictable and thoroughly unpleasant results. (Don't say I didn't warn you.) Since you no longer need the environment variable DBLIB, you may delete all references to it. CONVERSION FROM MBA 3.x TO MBA 3.20. There have been no changes to the MSGACT.ISM file. Delete ISAMPACK.EXE and your old MBAxxx.EXE files. Copy MBA320.EXE onto your hard disk. Don't forget to update your event.sys file to call MBA320.EXE or rename MBA320.EXE to whatever your event file is looking for. AUTHOR'S NOTES. MBA is now share compatible with one very important exception, the MSGACT.ISM database file. For no known reason, Microsoft *still* hasn't implemented file locking on the ISAM file type in PDS 7.1. (It's been four years now, I don't know what they're doing out there). However, MBA =can= deal with reading the users file while the BBS is up. Several of you may be aware that this is not the version of MBA that I had intended to write this summer. My schedule has gone completely sour and I don't know whether I'll be able to produce the 'final' version in that time. Since I know several of you have been waiting for a few new features in particular, I have released this version of MBA as an interim measure. It's still freeware, and support will continue to be on an 'as/can' basis. RELEASE HISTORY. MBAx2xx Pre-version 14.5 - needed 2 different MBA programs because of the difference in the caller file format. MBA 3.00 Did the switchover to ISAM database from dBase III compatible. This was pretty much a complete rewrite, since I no longer had the source code to earlier versions. Cleaned up the 'Log Off' detector, incorporated the code. MBA 3.01 Corrected a bug in pass 3 (the ISAM pack). MBA 3.02 Discovered an error message that PCBoard can produce that does not start in column 6 of the caller file. I modified the caller log parser to allow for this. MBA 3.10 Caught and fixed a bug in the handling of /S, /D, and one active node /E caller log filenames. Implemented the 'exclude conference' feature. (Thanks to Mark Rapp for suggesting it.) MBA 3.11 With the recent PCBoard implementation of such "flexible" options as the ability to change the format of the lines written to the callers log, I have added line 6 to the MBA.CFG file, so that you can tell MBA what column the caller's name begins in. What you need to do is this; Look at your callers log using an ASCII file editor (or any type of file browse utility). Count the number of charactors (including blank spaces) that appear in the login record before the caller's name. That number should be entered on line #6 of the MBA.CFG file. NOTE: I do not mean the column number that the name starts in - I mean the number of columns before that (startcol - 1). MBA 3.20 I was never really happy with the kludge I perpetrated in 3.11 as far as locating the user name, so I figured out a way to locate it automatically. Made the log an option, since it has the potential to get very large. Made the search strings for credit and exclude sysop definable - just for you, Terry! Fixed the copy to USERS.MBA so it doesn't require a shell to DOS, and dropped the ISAMPACK call because ISAMPACK doesn't work under DOS 5.0. (Don't bother telling Microsoft, it doesn't do any good.) LEGAL MUMBO-JUMBO. I accept no responsibility for anything this program does, if it does anything at all. (At least I'm honest.) MBA is released as no-fee shareware (freeware). This means that you may freely copy this program and distribute it via electronic BBS's, provided that you do not modify these files in any way. That includes adding extra files, deleting any file, or changing any file. PCBoard is copyright, Clark Development Company, Inc. Qmail is copyright, Sparkware, Inc. Microsoft is trademark, Microsoft Corp. CONTACTING THE AUTHOR That's about it. If you have any questions, suggestions, or screams of outrage, you can reach me on The Hacker Central BBS (public node 201-334-2555) or via the Sysops and Shareware conferences on the ILink echomail network. - Michael W. Cocke -