This file describes the general operation of the BULLETIN utility. BULLETIN uses 3 files to store its data: BULLETIN.DAT, BULLDIR.DAT, & BULLUSER.DAT. These files are opened with the shared attribute as much as possible to allow simultaneous operations on the files. However, when a bulletin is added or deleted, the file cannot be shared, as this might cause the file to be corrupted. Because of this problem, files are closed as soon as possible so that it may be quickly opened for adding and deleting files. During read operations, the information is passed to temporary storage, the file is closed, and then the information is sent to the terminal. This avoids a possible problem where the terminal output is stopped by the user, therefore delaying the closing of the file. Also, the use of CTRL-Y & CTRL-C is disabled while the file is opened to avoid lockout problems. BULLETIN.DAT stores the actual bulletins in a fixed 80 character length file. Bulletins are store sequentially datewise. New bulletins are appended to the end of the file. When a bulletin is deleted, all the following bulletins are moved up in the file to remove the gap, and the file is then truncated to remove the unused space. BULLDIR.DAT is a fixed record length file storing directory entries for each bulletin in BULLETIN.DAT. Each entry contains the header information, length, and starting record position in BULLETIN.DAT. The first line of BULLDIR.DAT is a header containing the date of the next expiration that will occur, the date of the latest sumbitted bulletin, the number of bulletins, and the total size of BULLETIN.DAT. The last two numbers make it easier to add bulletins. The directory entries then follow, again stored sequentially datewise. NOTE: There are several advantages to keeping a seperate directory file versus storing the header information with the actual bulletin. Obviously, it avoids having to scan through a large bulletin file just to extract header information. This operation is done when a DIRECTORY listing is requested in BULLETIN. More importantly when a login occurs, non-system bulletins just require that the header information be displayed. Having a file with pointers to where the bulletin is stored also avoids requiring the software to read all the previous bulletins in order to arrive at the desired bulletin. The main disadvantage is the extra time spent on locating the second file. This time appears to be minimal. In all the software, the convention is to open the directory file first, and then if needed to open the bulletin file. When adding and delete files, this becomes important, as files are opened unshared. A deadlock might occur if one user opens the bulletin file first while another user opens the directory file, and then each try to open the alternate file. BULLUSER.DAT is a relative indexed file, where the keyword is the username of the user. Each entry contains the latest time that the user logged in, plus the latest time that the BULLETIN utility was used to read bulletins. A header entry with a blank username stores the latest bulletin date. The information in this file is used for checking to see if the user should be alerted to new bulletins or not.