MICRO BULLETIN BOARD SYSTEM (tm) A message and mail system for CP/M-80 microcomputers MBBS SYSTEM OPERATOR'S MANUAL 04/21/86 edition -- by Kim Levitt (c) 1983 - Doren Kim Levitt Micro Bulletin Board Systems 8033 Sunset Blvd., #975 Los Angeles, CA 90046 >> MBBSYSOP.DOC - 04/21/86 - MBBS Sysop Documentation << >> MBBS - Micro Bulletin Board System (c) 1983 - Doren Kim Levitt << INTRODUCTION: MBBS is a message and mail system for use on 8080 and Z80 microcomputers running under CP/M vers. 2.2 which have at least two disk drives. It was written in response to the frustration of trying to operate a BBS on a small system and therefore uses much less disk space for message storage than most other BBS systems. It is also very fast as it was written using random access file mode. MBBS, as of version 4.0, uses a separate "LOGIN" program for logon and logout functions. This separation of the program reduced the size of the MBBS.COM file from 46K to 43K, which should enable more people to run MBBS on systems with small TPAs (Transient Program Area). The old MBBSUT program was split into MSCAN and MPURGE utilities, also to better enable MBBS to run on small memory systems. Unfortunately, the total minimum disk space required to support MBBS is now increased by 24k (MBBS.COM (v3.1 46k) vs. MBBS.COM (v4.5 43k) + LOGIN.COM (v2.0 27k)) but this is a small price to pay in exchange for added functions and room for growth that was not possible with the old version. The MBBS programs will all operate on a local system without need for a "BYE" program to act as a monitor, but in order for MBBS to be accessed remotely via a modem, you must set up a version of MBYE (version 4.1 and up) to run on your system, using the MBBS optional equates and including a Real-Time Clock (RTC) overlay if your computer is equipped with one and you wish to use it for MBBS's calendar and clock. Note that if you do NOT have a RTC and/or do not run MBBS under MBYE equipped with the proper RTC overlay, MBBS will not be able to determine the time at all, and will obtain the date from the summary file, which you must keep updated by changing the date manually every night at midnight or in the morning. While this may seem to be an minor inconvenience, I found it to be much enjoyed by system users who no longer had to enter in the date for every message entered. The date information is also used to keep track of user's last logon and for MSCAN functions. Unlike RBBS, MBBS uses random file access mode, which means that you cannot simply edit the message file with your favorite editor, but instead must use MSCAN. The editor in MSCAN is almost identical to the one in MBBS however which includes word wrapping, string substitution, line insert and delete functions. Moreover, MSCAN will update the message in place in the file if possible, but if your updated message text is too large for the space available, MSCAN will automagically add the new text onto the end of the message file (but with the summary file header record updated in place.) 1 I was going to sell MBBS, but decided that I would release it (in object code form only) to the public domain to encourage the spread of BBS systems in general and MBBS in particular.. (I get frustrated on some of these other systems that don't have word wrap and/or many of the other features I take for granted with MBBS.).. I only ask that you do not alter the program heading which identifies the program version and me as author and do not use it for a restricted access, fee charging or commercial system without providing at least some remuneration to me for my efforts. I would also ask that you send a donation of whatever you can afford if you enjoy using MBBS as either a sysop or a user. My address for donations and feedback is: Micro Bulletin Board Systems; 8033 Sunset Blvd., #975; Los Angeles, CA 90046. (Make checks payable to Micro Bulletin Board Systems or Doren Kim Levitt.) INSTALLATION: Installation of MBBS itself requires only that you have the following files: (Extract and unsqueeze all files in MBBS45A.LBR and MBBS45B.LBR.) Documentation: MBBS45.DOC -- Summarizes changes, lists files MBBS45.CRC -- Lists current .COM versions, CRC values SYSOPMAN.DOC -- This document (04/20/86 edition) (appendices contains documentation formerly included in separate .DOC files.) Programs: MBBS.COM -- The message program (v 4.5) LOGIN.COM -- The logon/logoff program (MLOGIN v 2.0) MBBSINIT.COM -- The initialization program (v 2.6) (normally run only once, keep off-line!) MSCAN.COM -- The scan utility program (v 1.0) (keep off line! for sysops only!) MPURGE.COM -- The purge utility program (v 1.0) (keep off line! for sysops only!) MBBSUSRC.COM -- The user file change utility (v 1.3) (to make changes in entire user file when you add or remove drives, change user areas, access policy, etc., when run online under MBYE, will allow change of current user only. Keep in protected area or off line!) APPLY.COM -- On-line application program (MAPPLY v2.0) (An optional program that allows you to input information from users which is then stored in a formatted message.) WHATS.COM -- "NEW UPLOAD" display utility (MWHAT v3.1) (Another optional program, this one will display "NEW UPLOAD" descriptions which can be automatically entered by XMODEM v12.1 and up. Also, it allows these descriptions and their associated files to be manipulated.) MBBSULST.COM -- The user file list utility (v 2.0) MBBSULST.BAS -- Source for MBBSULST.COM (included FYI) MBBSCUST.ASM -- Source for MBBS customization section (FYI) 2 Text files: MENU.BBS -- The MBBS main program menu (new for v4.3) HELP.BBS -- The MBBS main program help file WELCOME.BBS -- A sample welcome message file NEWCOM.BBS -- A sample newcomer's message file CPMEXIT.BBS -- A sample CP/M exit message file CLUE.BBS -- A sample CP/M password hint file ACCESS.BBS -- A sample access policy file APPLY.INF -- Sample application file (new for v4.5) Note that the text files listed above are simple ASCII files that may be edited with your favorite editor (use non-document mode if WordStar). Please DON'T edit the main part of the MENU.BBS file, just the end part as I wish to keep the interface similar for all users of MBBS. CLUE.BBS is only needed if you wish to give a "hint" to guess the CP/M entrance password (if you have one). ACCESS.BBS is only needed if you have a restricted access system which doesn't allow new users on until verified. Edit the WELCOME, HELP, NEWCOM and CPMEXIT .BBS files as appropriate for your system. NOTE: The "text" .BBS files can be located on the same drive that is used for the .WRK and .ARC files, but the MESSAGE, SUMMARY, USERS, CALLERS and LOG files must be on a different drive from the .WRK and .ARC files. The APPLY.INF file should be used only if you are running the APPLY.COM program to collect application information from users. It should be placed on the same disk and user area as the MESSAGES.BBS file. The other .BBS files are created by MBBSINIT.COM and then MBBS.COM when they are run. After you have extracted the .COM files, put them all in one disk/user area and type MBBSINIT to initialize the .COM files and then set up your SUMMARY.BBS and USERS.BBS files (you will be prompted for a disk change, and MBBSINIT will ask you where to place all the files, where the BYE.COM program is, etc.). Note that after most of the questions, a value is shown in angle brackets. (Such as "Disk for MESSAGES.BBS? ?"). Pressing a return only in answer to such a question selects the value shown in the angle brackets as the "default" entry. This convention is used throughout MBBS. Note that MBBSINIT can also be used to initialize or change the parameters of a single MBBS program, this is usually done only to install a backup version or a new update. (Answer "N" to the "Install all .COM files?" prompt and MBBSINIT will prompt you for the name of a .COM file to install.) (Note that you must install APPLY.COM separately from the others, as it is an optional file. It is not installed with the others automatically.) After MBBSINIT has run, it will print out an "INITMSG.DOC" file which will describe the options as you selected them and will re- iterate some of the information in this file, telling you what to do next. Read it carefully and keep it for reference. After you have run MBBSINIT, copy the installed MBBSINIT, MSCAN, MPURGE, and MBBSUSRC programs to an off-line disk (or inaccessible disk/user area on your hard disk) and move MBBS.COM and LOGIN.COM to the disk/user area from which you will be running it.. Also edit and install the appropriate .BBS files as outlined in INITMSG.DOC. (If you are also running APPLY.COM, make sure you also edit APPLY.INF and put it on same disk and user area as the MESSAGES.BBS file.) 3 If you have followed these steps correctly, you should be able to use MBBS to log on and enter your first message.. It should run fine in local mode before you attempt to set up MBYE for remote access mode. Make sure that you log in under your name (not SYSOP) if you want to keep someone from logging in as you. (This also will give you a second password to get on if you forget the first one). Use the MSCAN user file scan functions to check the settings of user #1 (used as defaults for new users) (user #1 password, if not blank, is needed to enter CP/M), and user #2 (used as defaults for 'Ok'd users) (use first name of "CPM" and give user #2 password for fast CP/M log on). ACCESS FLAGS: If you have chosen to set up a restricted access system (by selecting default user access flags via MBBSINIT and/or MSCAN), you should set up user #2 (CPM) with defaults for "Ok'd" users and then you can use the backwards scan function of MSCAN's user file scan functions to look at most recent caller and go backwards, OK'ing users until you get to a turkey or an Ok'd user (end of new users). If you delete a user, he or she will not be able to log on until you purge the user file, at which point they we will be under same restrictions as new users. Depending upon the access flags, you can set up varying levels of restricted access: System access flag (bit 0) - If this flag is set to "N", then the user is not allowed to log on, but their attempted log-on will show in the CALLERS file, with a "@" preceding their name. If a new user attempts to log on and the default user record has this flag off, the user will simply be shown ACCESS.BBS and dumped off. No user record will be created and their attempted log-on will not show in the CALLERS file. BBS access flag (bit 1) - If this flag is "N" (off), the user will not be allowed into MBBS from CP/M, and if the CP/M flag is also off, they will be logged into the users file but will then be shown the ACCESS.BBS file and will not be admitted to the system. Read access flag (bit 2) - If this flag is off, the user is not allowed to use the "R" function of MBBS to read messages.. Bulletins from the sysop and welcome and help files can be read however. Write access flag (bit 3) - When off, users cannot leave messages using the "E" command. They can, however, leave messages to the sysop when exiting via the "G" function from MBBS or BYE C from CP/M. CP/M access flag (bit 4) - If off, user is not allowed to enter CP/M. Even if on, if a CP/M password has been set up (user #1 password), then such password will be required to gain entry. When the BBS flag is also off, users are dumped off the system after being logged in. Download access flag (bit 5) - If XMODEM (version 99 and up) is used for file transfer and the access byte support option was enabled, XMODEM will not allow users to download files if this flag is off. (MBYE must be running with access byte support for XMODEM to work.) 4 Upload access flag (bit 6) - If off and above conditions met, XMODEM will not allow uploads. Privileged user flag (bit 7) - Normally off, but if on, the user is allowed to use a special "D" function to set system date on non-RTC- based systems. Privileged users are also given special privileges in some auxiliary MBBS programs (such as MFMSG). (In versions prior to v4.3, this flag would allow users to access the "secret" sysop menu, now only the sysop can access it. As of version 4.5, however, privileged users CAN specify the "secret" "D" command (at the main menu) to change the system date on non-RTC systems. This allows you to have a privileged user change the date for you while you are gone on vacation.) Special user flag (bit 5 in USRUAR) - If set, this user is "special" as opposed to "normal". This flag is only used by MSCAN and MBBSUSRC so that you can scan "All, Special-only or Normal-only" during file purging, etc. I use it to indicate people I don't want to purge, even if they haven't logged on in a long time. (I scan "Normal-only" when purging out inactive users.) Skip CP/M PW flag (bit 6 in USRUAR) - If set, this user does not have to give the CP/M password to exit MBBS, even if one is enabled on the system. (So you can require a password for new users only or spare some people having to bother with it if you know they are "OK".) This flag, as of version 4.5, also allows a user to skip directly to CP/M after logon, bypassing MBBS. This function is enabled by using a "J" command directly after the password on a "type-ahead" logon (i.e. "JOHNNY;USER;PASSWORD;J"), or by not typing ahead and answering the "Jump directly to CP/M? ?" question in the affirmative. If any type ahead is given and the "J" command doesn't immediately follow the password, (or if this Skip CP/M PW flag isn't set), the "Jump direct" question is bypassed and the user goes through MBBS. (Note that if you don't want to have a password to access CP/M, but don't want to allow direct access, you can set the skip flag off and leave a blank CP/M password...) Delete flag (bit 7 in USRUAR) - This one is the same as the system access flag except that deleted users are purged when MPURGE is run. OPERATING CHAT/CONTROLLING THE BELL: When a user uses the "T" function and MBBS is running under MBYE then the "KILBEL" flag (location 003BH in memory) is checked to see if the sysop is "home". This byte is toggled on and off by the console control-G (BELL) key. To answer a page when a user wants to chat, use the ESCAPE key. Use control-C to terminate "chat" mode when you are finished talking to the user.. (CHAT30.ASM under CP/M can be set up to operate similarly.) When the KILBEL flag is set, no bells are sent to the sysop's console, as well as flagging sysop as "not home". 5 CALLERS FILE INFORMATION: The CALLERS.BBS file created by MBBS (as of version 3.0), has a whole line (62 characters) of information about calls into the system: "05/05/85 08:30 AM 5!JOHN NEWUSER-LOS ANGELES, CA 10 " This example shows what the line looks like for a system with a real time clock. In this example, the user logged on at 8:30 AM on May 5th, 1985 at 1200 baud for the first time. His name was "JOHN NEWUSER" and he said he was calling from "LOS ANGELES,CA". He was on the system for a total of 10 minutes. For systems without a real-time clock, the logon time and time on system information is not shown. The baud rate codes are peeked out of location 003CH and are the same as used in MBYE and XMODEM: 0 = 110 bps 5 = 1200 bps 1 = 300 bps 6 = 2400 bps 2 = 450 bps 7 = 4800 bps 3 = 600 bps 8 = 9600 bps 4 = 710 bps 9 = 19200 bps (A local 'logon' will show "L" for the baud rate code and no log on time or time on system is recorded.) The "access code" shown after the baud rate code (just before the user's name) is as follows: " " = Normal caller "!" = First time caller "@" = Log-on attempt by deleted or no-system access user "#" = Failure to guess CP/M password after 3 tries "=" = Failure to guess CP/M password (by first time caller) "*" = Failure to guess user password after 3 tries This information should help you to spot users who are attempting to "break" your passwords or who have a problem getting to CP/M. Note that if you do not allow access to the message system, no user file record is created, but the caller IS logged in the callers file in any case. SECRET SYSOP MENU: The "secret sysop function menu" is accessed using a "$" (dollar sign) at the main MBBS menu in the main MBBS program. It is here that you can change the system date (for non-RTC-based systems) or enter a bulletin. (Bulletins are stored the same as messages except for a special flag.) Bulletins are shown to users when they log on if they haven't seen them before or if they use the "B" function of MBBS. As of version 4.5, the date change function can be directly accessed from the main menu using the "secret" "D" command. 6 If you don't have a Real-time clock and are going to be away for awhile, make one of your trusted users "privileged" and then they can use the "D" command (from the main menu only) to change the date once a day. MAINTAINING THE SYSTEM: Maintenance of a MBBS system is much simpler than previous message systems, with full function utility programs, MSCAN and MPURGE, available to make the editing and purging functions of a sysop a simple set of commands. As stated below, the maximum size of the MESSAGES.BBS file is 300 active (non-deleted) messages and/or 500 messages (total deleted and undeleted), whichever comes first. Note that under MBBS, bulletins and comments are also considered the same as messages and are stored in the message file, so include them in the totals. (The active messages total is shown every log on in MBBS, the total (including deleted) can be seen with MSCAN.) I have a very active message system on my hard disk system, and I have let it run for over a month without purging and had no problems, but I recommend you purge the message file at least once a week.. You may need to do it less than this, but you should backup at least even if your message file isn't getting fat. (As of version 4.5, MBBS will now display the total deleted and undeleted messages for the sysop, (in addition to the active messages total) which will help you keep an eye on how big things are getting. MSCAN and MPURGE are "sysop-only" utility programs and should be kept off-line or otherwise made unusable by unauthorized users (rename them something weird and stick them in a special user area with the $SYS attribute set and/or use WHLCHK if you have a ZCPR system to make MSCAN and MPURGE unrunnable when the wheel is off.) (NOTE: If you use WHLCHK, save "non-WHLCHK" versions in case you have to use MBBSINIT to re- install MSCAN or MPURGE to change default disk/user areas.) BACKING UP: I recommend you use the public domain "NSWP" program to backup all of the ".BBS" files on a periodic basis.. Use the "W" function to wildcard tag, specify "*.BBS" and use "M" to "mass copy" them to a backup disk or disk/user area. (Add a space and a "V" after the drive spec (as in "B: V") for NSWP to do a CRC check of the copied files.) You can back up each file individually, or one at a time, but it is recommended that you back all of these files at the same time as they are related to each other. (Especially the Message and Summary files.) Select one at a time if your backup disk is too small to contain all of the files in one shot. Do it often to be safe! MESSAGE SCANNING: MSCAN permits the scanning of the message and summary files so that messages can be deleted, undeleted, printed (to disk or file), or edited. Deleted messages can only be read with MSCAN message scan mode, and are purged from the file when the next PURGE is done. The message editor works almost identical to the MBBS editor, except that there is no "type-ahead" for edit commands. Note that you can change a message 7 from one type (comment, bulletin or regular message) to another and completely re-write a message, but you cannot add new messages (use MBBS for that). SCANNING USERS: MSCAN is also used to scan the user's file to OK new users, ADD users, delete obnoxious abusers, or change a current user's status. User's marked as deleted will not be admitted to the system and will be purged from the user's file when MPURGE is used. When scanning users, you are prompted with the following: "(Specify: ADD, 'search', date, <#, >#, #+, or #-) User Scan? (carriage return if done) (1-nnn)?" (Where "nnn" equals the maximum user number currently on the system.) The "ADD" function can be used to add one or more new users to the users file, with defaults selected from the user #2 (OK user) record. Specifying a string surrounded by single quotes (as in 'JOHN NEWUSER') will search the user's name and address fields for a match to the specified string. If you supply an angle bracket followed by a date in the "mm/dd/yy" format (as in "<02/01/85") then MBBS will search for users that have date of last logons either greater or less than the specified date ("<02/01/85" would find all users that HAVEN'T logged on since Feb. 1st, 1985, ">02/01/85" would find all users who HAVE logged on since that date.) An angle bracket followed by a number will scan users based on their total number of logons. ("<30" would find users who have called less than thirty times, ">29" would get the more frequent callers..). Specifying a number alone or with a trailing plus sign will start a forward scan beginning at the specified user #, a trailing minus sign will start a backward scan from the specified number. Specifying a minus sign (hyphen) alone for user # will allow you to start from the most recent caller and go backwards, a feature which makes it easy to review new users and 'OK' them for full-access if you have set up a semi-restricted system. Specifying a plus sign alone will start you from the beginning going forward (same as '1'). After the initial prompt for user file scans, you can select whether to scan "A)ll, S)pecial-only or N)ormal-only", referring to the "Special" flag that can be set to distinguish a certain group from another. I use the "special" flags to indicate users I don't want to scan during my purges based on last access date (