BULLETIN BOARD SYSTEM Written by Mike O'Neilll Academic Computing Center James Madison University General Description The JMU Academic Computing bulletin board program is written in FORTRAN and uses the Digital forms package FMS to handle most of its screen I/O. The bulletin board system consists of two primary index files; one containing the notice information and file pointer and the other containing the category information. An additional index file named BBSTATUS.DAT is created and maintained in each user's default directory to allow the bulletin board to keep track of the last notice read by that user in each category. The notices themselves are separate text files maintained in a separate directory in the bulletin board directory tree. They are retrieved using a file pointer contained in the notice index file. Among the features of the bulletin board are: - The ability to keep track of the last notice read by each user in each category. - A menu driven user interface that allows the selection of most options by positioning the cursor with the cursor arrow keys and pressing to select and option. As the cursor passes over each option, a brief description of that option is displayed. Options may also be selected by pressing the key corresponding to the first letter of the desired option. - The EDT text editor is incorporated into the notice posting menu to facilitate notice posting. - A provision for the posting of a text file created externally to the bulletin board. - A built in HELP system. - A notice and category directory which allows notices to be selectively viewed from the directory display. - The ability of each user to selectively omit certain categories from being scanned for unread notices. - The ability of a user to edit or delete a notice that has been posted by that user. - Automatic insertion of notice owner's userid to prevent the posting of anonymouns notices. - Direct access to the VMS mail utility while viewing a notice. - A reply option for posting a response to a notice while it is being viewed. - A backup option that allows the previously viewed notice or a specified notice to be displayed. - The ability to view notices in a specified category. - An output option that allows you to output a copy of a notice to a file, lineprinter (SYS$PRINT), or a printer connected to your terminal or PC. - Support for multiple bulletin boards. * The bulletin board system consists of four main programs: BB.EXE - The bulletin board program. KEY_MAINT - The utility program used to modify the notice index file. Seldom used. CAT_MAINT - The utility program used to create, delete, and modify bulletin board categories. NOTICE_COUNT - A maintenance utility program that is run once each day to delete expired notices and update the notice counts in each category. Setting Up In order for the BB to work properly, you will need to define a foreign command to invoke the BB program. On our system, I have added the command: $ BB :== $SYS2:[BB.IMAGES]BB to our sylogin.com file. The bulletin board root directory is specified in a file named BBSETUP.DAT located in SYS$MANAGER. This file must be given world read access so that the BB program can access it. The title of the bulletin board is also specified in this file. In the case above, the BB root directory is: SYS2:[BB]. When setting up the bulletin board, you must set the file protection on the bbkey.dat and bbcat.dat files so that the world has read and write acces to them. You will also have to give world read and write access to the notices directory. The world will need only read access to the images directory, the bbhelp.hlb file, the bbforms.flb file, and the bb.exe file. The bb directory structure is as follows: [ROOT] ______|||________ / | \ [.IMAGES] [.KEYS] [.NOTICES] The CAT_MAINT program is used to define the categories in the BB. Each category has a number associated with it. There are several fields in the category record, but only the category number, category name, and number of entries fields are active. The others are for future versions. The KEY_MAINT program will allow you to edit the index record for any notice. You should not have to use this program very often, but it is there should the need arise. The NOTICE_COUNT program is normally run once each day to delete expired notices and update the notice count field in each category. We just have this installed in our daily accounting run. In order to get the WHO option to work while viewing a notice, you will have to execute the WHOBUILD.COM procedure with your default directory set to the [.IMAGES] directory of the bb system. This procedure will execute the AUTHORIZE utility and execute the command LIST/BRIEF * to generate a sysuaf.lis file which may be read to create a list of userid's and owners. If this is not done, the bb system will still work normally except that the WHO option will not be operative. I apologize for the sparse documentation, but I am rushing to get this system ready to submit on time. If you run into problems or have suggestions for improvements, you can get in touch with me at the following address: Mike O'Neill Academic Computing Center James Madison University Harrisonburg, Va. 22807 (703) 568-6625 BITNET: ACC_MIKE@JMUVAX1 * Note: Support for multiple bulletin boards is a new feature that I added to the BB system very recently and have not thoroughly checked out. In order to set up multiple bulletin boards, you will need to define them in BBSETUP.DAT file by assigning a key name along with a 1 letter code, directory specification, and title. You may then access the alternate bulletin boards by entering the command: BB keyname. In order to maintain the alternate bulletin boards, you will need to define the other three programs as foreign commands and invoke them with the keyname specified after the command. For example: If you want to set up an alternate BB with the key name STAFF, a code letter of B, a directory specification of USER2:[STAFFBB], and a title of "STAFF BULLETIN BOARD", you would place two additional records in the BBSETUP.DAT file. The file would appear as follows: * KEY ** C **** BULLETIN BOARD DIRECTORY ********************************** ******** **** TITLE ********************************** MAIN A WORK:[JMU.BB] JMU ACADEMIC COMPUTING CENTER BULLETIN BOARD STAFF B USER2:[STAFFBB] STAFF BULLETIN BOARD You would need to set up the alternate BB directories and files. This could be accomplished by entering the command: $ @BBCREATE USER2:[STAFFBB] The foreign commands for executing the BB utility programs could be defined as follows: $ NCOUNT :== $ WORK:[JMU.BB.IMAGES]NCOUNT $ CATMAINT :== $ WORK:[JMU.BB.IMAGES]CAT_MAINT $ KEYMAINT :== $ WORK:[JMU.BB.IMAGES]KEY_MAINT Then to add categories to the STAFF BB, you could just enter the command: $ CATMAINT STAFF This bulletin board system may only be distributed free of charge and in unmodified form. Copyright (c) April 1987 James Madison University Harrisonburg, Virginia