Turbo BBS Version 1.05 - System Operator Notes - Page 1 1 - Features: - Self-contained Message and Files system written in Pascal; - Program not operating system dependent; - Information files editable with WordStar; - Variable Terminal width with word-wrap; - User profile (password, terminal parameters) kept on file; - Real-time clock time stamping of files and messages; - Private and public messages supported; - Can be configured as a private BBS; - Variable access levels available; - File and message sub-sections for easier user access; - All uploaded files stamped with name of contributor; - Number of accesses of each file recorded; - XMODEM protocol (CRC & checksum) fully supported; - Calls logged with sign-on and sign-off times; - Comments to System Operator (Sysop) file; - Supports squeezed and library files; - Directly drives serial port hardware. 2 - System files: The following files are included in the Turbo BBS package: * Required to compile the program: BBS.PAS BBS2.INC IO.INC MACHDEP.INC MAILSYS.INC FILESYS.INC The above .PAS file must be on the logged drive, and the .INC files on drive A: when compiling! The BBS program should be compiled to a .COM file. * Required on the default drive to run the compiled BBS program: BBS.COM (obviously); * The following files are created automatically on the default drive (space should be reserved for them). MESSAGES.BBS - the system message table: contains records for each message giving user numbers of sender and receiver, subject, time stamp, message and section number, and whether the receiver has read the message or not. This table is loaded into a RAM buffer whenever the system is active (ie. caller on-line), and restored to disk at sign-off. FILES.BBS - the table of files available on-line. Each file has a record noting name, size, contributor, access count, section, and whether the file is private or public. LOG.BBS - Call Log, holding Caller, time on and time off info, (providing the clock routines are enabled). Turbo BBS Version 1.05 - System Operator Notes - Page 2 COMMENTS.BBS - Contains comments to Sysop, includes caller name and time stamp. Comments are set to a 15 line maximum length by the [G]oodbye command, and limited to 4 lines by the [A]pply command. IDS.BBS - Contains registered user names, passwords, access levels, terminal parameters, last call date and high message number. The following text files containing on-line user information are expected in a library B:BBSINFO.LBR. WELCOME.TXT - The pre-sign-on user welcome file. Should give details about the system's features, hours, and policies, as well as any news about new system features. Newest bulletins should occur first in a file so frequent users do not have to read long stretches of familiar information to get the new stuff. This file is also listed by the W (Welcome) command. BBSHELP.TXT - The on-line Help file, containing the system commands and user hints. Also should list the subcommands for the commands that support them. This file is listed by the H (Help) command. BBSLIST.TXT - Contains a list of other remote access systems of interest. Listed by the O (Other systems) command. SYSINFO.TXT - Gives information about the equipment running the BBS, and general information about the BBS. Listed by the Y (sYstem information) command. MEETING.TXT - Provides user with information as to scheduled user group meetings in the area. APPLYING.TXT - Listed by the [A]pply command. Gives information on what is required to increase user access level. MAINMENU.TXT - The BBS main menu. EDITMENU.TXT - The message editor option menu. READMENU.TXT - The read-messages option menu. FILEHLP.TXT - The files system command help file. Gives information on how to use files system commands. FILEMENU.TXT - Files system command list. BULLETIN.TXT - Bulletins about system changes, or any other information of interest to users. All messages are stored in individual text files, using the file name MESSxxxx.TXT, where xxxx is the message number. All .TXT files are expected on the default drive. They can be edited Turbo BBS Version 1.05 - System Operator Notes - Page 3 using WordStar, in the Document mode. The BBS program is set up to ignore the WordStar "soft" carriage returns and line feeds, so the word wrap output driver of the BBS can format the file to suit the user's terminal. Messages stored by the BBS editor can be in two formats: one contains "hard" carriage returns so special formatting used in message entry is preserved (P subcommand in E command). The other contains NO carriage returns, which are inserted by the output routine as needed. Editing a message created by the latter option with WordStar will show the entire message as a single line: ^B will fix this by inserting soft carriage returns which the BBS will ignore. The top of the include file MAILSYS.INC defines a constant called "maxmess," which defines the maximum number of messages that can be held at one time on the system. The distribution version sets this at 52, which corresponds to the maximum number of files available on a Kaypro 2 disk (64) minus the number of support files on the default drive. This limit can be increased if a larger directory is available, but remember that the message table is buffered in RAM and so each message uses 43 bytes. Turbo BBS Version 1.05 - System Operator Notes - Page 4 3 - Installing the BBS on your system The machine specific codes is contained in the include file MACHDEP.INC. All system serial I/O is routed through these routines. The distribution version was written for a Rixon 212A Intelligent Modem. To properly install the BBS, it is necessary to know how to properly program and control the serial port. Since most operating system drivers to not allow access to reading the CTS (Clear To Send) line, this is necessary... It is unreasonable for the BBS to be expected to capture and comprehend the "NO CARRIER" or equivalent string from a smart modem. In particular, you must know how to read the CTS line, control the RTS line, detect the input buffer full signal, and the output buffer empty line. Also, remember the character data send and character data receive functions! To allow XMODEM transfers, it is necessary to set up for 8 bits, no parity, and one stop bit. Since the system expects to use the CTS line as a carrier detect line, it will be necessary to ensure that the modem does send a suitably readable signal for this purpose. The Rixon initialization string does this. On Hayes Smartmodems, this is controlled by a switch that must be set so the CTS line reflects an on-line status. The DSR or DCD lines, if available and satisfactory, can be used: just read that line in the cts function in MACHDEP.INC. The modem should also disconnect when the system lowers the DTR (Data Terminal Ready - RS-232 pin 20) line for 400 milliseconds. If this feature is not available, another reliable disconnect method must be found and implemented in the procedure hangup in MACHDEP.INC. The DTR line is also lowered when the BBS has been accessed locally to inhibit the modem's auto-answer function. The procedures setlocal and clearlocal (IO.INC) will require editing if this feature is not supported by your modem. If your system has a real-time clock, the routines in the include file MACHDEP.INC must be adapted to use it. Once again, the distribution file uses the Kaypro 4-84 clock. The Kaypro 2-84 normally omits this, but the CPU board has the necessary hardware to implement it with the addition of a few parts. If the system lacks a real-time clock, the clock-related features can be turned off by setting the constant "clockin" to FALSE at the beginning of the BBS.PAS file. If you have no clock, DO NOT attempt to remove the clock support code from MACHDEP.INC or IO.INC! While the routines won't be used, they must be present for compiling. If the special interest sections feature is not wanted, set the "sectsin" constant at the beginning of BBS.PAS to FALSE. The Section names are defined at the beginning of MAILSYS.INC. Future updates of the Turbo BBS will offer either password protection or individual user access flags for protected sections. It is possible to not use sections in the BBS at first, then implement them later, since all files and messages in a system without Turbo BBS Version 1.05 - System Operator Notes - Page 5 sections are placed in section 1 (Default: General). The BBS program must be compiled into a .COM file by using the Turbo Pascal "O" (Options) command: it is too large to effectively compile into memory. If your system lacks sufficient memory to run the BBS program as distributed, it will be necessary to overlay the files system with the message entry editor. This is done by putting the word "overlay" immediately before the procedure declaration of the enter routine (near the end of MAILSYS.INC) and the filesys routine (the file FILESYS.INC). (In addition, the procedure sysoponly at the beginning of BBS2.INC can be made into another overlay, which will save even more space.) That is, change procedure enter; to overlay procedure enter; and change procedure filesys; to overlay procedure filesys; and change procedure sysoponly; to overlay procedure sysoponly; For this to work properly, it is absolutely necessary to avoid putting any new procedure/function declarations at the end of MAILSYS.INC, the beginning of FILESYS.INC, or between {$I MAILSYS.INC} and {$I FILESYS.INC} in BBS.PAS! (Note that using overlays will create 1 more file on the default drive: adjust the maximum number of messages as required.) The number of files in the file system is limited by the fact that the directory table is buffered in RAM. In the distribution version, a limit of 40 is set due to the fact that the Kaypro 2's disks have a mere 191K capacity (All "freeware" contributions go to the Hard Disk fund). To expand the number, it is necessary to change the filetab array declaration and change the number in the procedure newfile. Future versions will set this limit with a compilation constant. Each file in the directory uses 39 bytes of memory. Future versions will allow large directory files to be read directly from disk (at the expense of operation speed). (Please remember that the BBS was NOT originally written for distribution!) The BBS puts all files on the "B:" drive. To change this, you must change the constant "filedrive" in BBS.PAS from 'B:'. Turbo BBS Version 1.05 - System Operator Notes - Page 6 4 - Running the system Once BBS.COM has been compiled successfully, it must be placed on the correct drives with the library of .TXT files listed previously in this document. The first thing the program should do when run is initialize the modem. Usernames and passwords are always mapped to capitals by the BBS to avoid errors. SYSOP's access level is set to level 5 automatically on first sign-on. This allows master control access to the first person to use this name: BEWARE! To sign on locally, press the 'ESC' key on the host keyboard when the "Waiting for call..." string appears. You can then sign on and test out the system. The first thing to do is make your password something VERY secure: the system supports certain features for Sysops that are best not made available to the general public. The BBS main program supports two commands not listed in the menus. They are "!" and "@". "!" is the printer switch: if a user with level 5 (Sysop) access uses this command, system output is also sent to the lst: device, until another "!" is entered. "@" is the sysoponly procedure containing the comments file reader and ID access editor. This routine prompts for input with a single question mark ("?"). There are three commands supported. The first command is "C", which plays back the system's user comments file. After the file is displayed, a "Kill (Y/N)?" prompt appears, allowing the sysop to delete the file. The second sysoponly command is "L", which is the access level editor: the system will ask for a user name: if it is in the userlist, that user's current access level will be displayed, and you will be prompted for a new user level (pressing only RETURN changes it to 0). The system will loop through the Name/Access prompts until a non-existent user name is entered, whereupon the command ends. The last sysoponly command is "!", which is identical to the "!" printer switch in the main menu. Several commands contain Sysop extensions: the L (call Log) command gives a "Kill (Y/N)?" prompt to level 5 users. The U (User list) command shows the access level of each user. The R (message Read) function prompts "Delete (Y/N)?" after each message read. Furthermore, all messages are visible to the Sysop. The file system also contains extensions for the Sysop. These are the I, E and K commands. I is used to Install a file that is on the files disk but not in the BBS directory, so the Sysop can "upload" files by just copying them onto the Files disk. E edits a file's header, allowing the sysop to rename the file, change the name in the contributor field, change the section in which the file is stored, and to release a file. When a file is released, the public flag in the directory becomes "true". All uploaded/installed files are initially private, and do not appear on the BBS directory to anyone without level 5 access. Level 3 users have the ability to access private files provided they know the file name. Any files on the files disk that are not in the BBS directory are totally unaccessable, but Turbo BBS Version 1.05 - System Operator Notes - Page 7 cannot be overwritten. The K command deletes a file from the directory table, and erases the file. The top of the FILESYS.INC file contains a number of options that should be set up to match your system, such as the files drive capacity and the minimum increment of file size in Kbytes. If your system can store in increments of less than 1K bytes, then set the increment to 1K: this will allow a nearly full disk to have a negative amount of disk space remaining, but is otherwise harmless. The program is made to act as a private BBS simply by setting the constant "openBBS" in BBS.PAS to false. This has the effect of hanging up on any REMOTE user who attempts to sign on without supplying a registered username within three attempts. New users must be signed on locally first, before their names will be permitted for remote access. Turbo BBS Version 1.05 - System Operator Notes - Page 8 5 - General Information This software and its associated documentation and support files are released to the public domain by the author. It is not to be distributed commercially or re-sold for profit without prior permission from the author. If you feel the software is well-suited to your purposes, and would like to be informed of any updates or new versions, please send $30 to: Robert H. Maxwell, 201-2275 West 7th Avenue, Vancouver, B.C. CANADA V6K 1Y3 This contribution entitles you to support, error correction, and updates. Customization of the code for specific purposes is not included, but can be made available at extra cost. It would be appreciated if the specifics of the system you plan to run (phone number, hours, baud rates, etc.) were also included, so any improvements YOU make can be observed and possibly included in updates. Also, a compilation of systems using this BBS will be maintained on the Vancouver Turbo BBS from this information. The original Turbo BBS is on-line in Vancouver 24 hours a day at 300 or 1200 baud at (604) 738-7811. If the BBS is not available, another computer is usually on-line to report the reason for the unavailability and when the BBS will return. For fastest response to questions or problems, it is recommended you use the Vancouver BBS. Slower response is available through CompuServe's Borland SIG, where the author's PPN is 70206,174. The use of voice calls is not appreciated until the details have been arranged.  aeomd.hpu nC