IBBS - The IBMPC Bulletin Board System This short document describes the installation and care of the remote bulletin board system called IBBS. This system was modified to it's current state by Gene Plantz of System Software Services. Requirements: IBMPC with 192K of RAM (might squeak by with 128K) 2 disk drives (either single or double sided, but double or harddisk better) One communications adapter addressed as COM1 One 300 (or 300/1200) baud modem (Bell 212A used by author, but any should work) BASIC COMPILER (needed if changes are to be made to system) NICE THINGS TO HAVE: Hard disk (allows larger message files and file transfer with little increase in file access time) CONTROL: This system is controlled by a system operator who is responsible for all maintenance and content of the messages on the system. The system operator has a special logon. The first and last name will be a sequence known to the IBBS system, and a third password will be requested ("2ND CODEWORD?"). The 3 codewords for the disk you received will be written on a piece of paper attached to the diskette sent to you. Once you are on the system as the system operator (hereafter known as the SYSOP), you have much greater authority than any other user. The commands that the SYSOP can do will be described a little later. These passwords can be changed by locating the labels: BOSS$, P1$, and P2$. INSTALLATION: The diskette you received is a double-sided disk containing all the source and executable modules for the system. The source files (.BAS) may be retained on the distribution disk, while everything else should be copied to a working disk. The working disk should have a DOS boot on it. All the executable modules are compiled, so no BASICA module is required. *****THIS CODE WILL NOT RUN WITH THE BASIC INTERPRETER******. The files on the disk are: IBBS.BAS - source code for the BBS IBBS.EXE - compiled BBS module RBBSUTIL.BAS - source for the file cleanup utility RBBSUTIL.EXE - compiled file cleanup utility USERS - List of logon IDs (name appears once only here) CALLERS - This is the list of each logon (except for SYSOP) COUNTERS - small file that has next msg #,next caller #,etc BBSLOGO.BAS - the local logo that is displayed upon BBS startup MESSAGES - this is the main messages file SUMMARY - this is the message summary file NEWCOM - this is an info file for first time callers FLASH - this is an info file, displayed after WELCOME file HELP.BBS - help file with info on commands, called by ? WELCOME - another info file displayed first after LOGON XFER.HLP - info file for the file transfer function SOFTWARE - info file on software prices, called by B HARDWARE - info file on hardware prices, called by B XFERLIST - list of files that can be transferred (not supplied) STARTING THE BBS: To begin operations, place the disk containing the BBS files in drive A, and type in IBBS. This system is set up for a hard disk and will probably require some modifications to split the files out to a couple of floppies. All files are currently placed on the default drive. STOPPING THE BBS: To shutdown the BBS, just press the F1 key. If anyone is currently logged on, they will be cut off during the shutdown process. LOGGING OFF TWITS: If you wish to log off someone currently on the system, just press the F2 key. This will force off the current caller and cause the BBS to recycle for the next call. MESSAGE TO GET OFF SYSTEM: If you want to shutdown the system for maintenance, but someone is currently on, you may ask them to finish up what they are doing and logoff by pressing the F4 key. This does not log them off. TOGGLE PRINTER: This system uses a printer to log info on logon, timeouts, files transferred, logoffs, errors. If a printer is on and ready at system startup, it will be used. If you wish to turn it off, press F5. If the printer has a problem and fails to operate, the BBS will automatically toggle it off (the status of the printer is displayed on line 25). CLEARING ERROR COUNT DISPLAY: To clear the counters display on the local screen, below the logo, press the F8 key. DISPLAYING STATUS COUNTS: To re-display the status counts on the local screen, just below the logo, just press the F9 key. PROGRAM FLOW: When someone calls into the board, CARRIER DETECT is found active and the BBS begins the process of waiting for the user to press his ENTER key. This is the baud rate detection technique. Throughout the system, a control-k (or control-c) can be used to kill the display data being sent. Due to a quirk in the compiler, the data is in the outgoing communications buffer (the data that has not yet made it out to the modem), and cannot be purged (according to an IBM rep). Therefore, control-K can seem to take a while to work. Watching at the BBS machine and the modem will show you that this is the case. The computer display will have stopped while the modem is still sending data. The WELCOME and FLASH files are sent to the caller, and then the caller is prompted for his/her FIRST NAME. At this point, all commands may be stacked if the caller knows what prompts are next. Otherwise, he/she will then be prompted for LAST NAME. A check is then done in the USERS file. If a match is found, then he/she is logged in the CALLERS file with the date and time. If he/she was not found in the USERS file, caller will be asked for CITY,STATE info. This is then placed into the USERS file. Then logged to CALLERS file. After that is out of the way (does NOT occur for SYSOP), the main system menu is displayed. The choices here are: G- Logoff the system M- Go to the message subsystem F- Go to the File transfer system D- change duplex (i.e. ECHO) from ECHO to NO ECHO X- short menus (sets Expert mode) FILE TRANSFER: The options in the FILE TRANSFER menu are self-descriptive. The list of files to xfer are in a file called XFERLIST. This is a random file that is displayed LAST-FIRST. Currently, file DOWNLOAD is restricted to the hours of 9:00PM until NOON machine time. This was done to allow the users of electronic mail so access to the system. File transferers are very selfish and will monopolize the system for great gobs of time. After one hour on the system, the caller starts to get messages that he/she has been on for over one hour and should think about giving someone else a chance. After 90 minutes, the caller is logged off and a string of ^^^^ is printed on the hardcopy log. Line 8662 can be "commented out" to eliminate the download time period restriction or the time values can be changed. XMODEM file transfers use the standard CPM protocol and an ASCII transfer is nothing more than a listing from this end. An ASCII upload can be done, and is terminated by sending an ESCAPE (or just pressing the escape key). Incomplete files are deleted most of the time if it is clear that the xfer was aborted. (No data is echoed during an ASCII upload). When the SYSOP list the XFERLIST file, at the end (or following a control-K) the SYSOP is asked if he wants to XFER a new BBS. This feature allows the SYSOP to be remote to the system, build a new IBBS.EXE module, and transfer it via the phone to the system. It is saved as NEWIBBS.EXE. If the SYSOP wishes, the new code can be executed after transfer by going to the Message system and typing in a 7 at the FUNCTION? prompt. This will cause the current IBBS.EXE to renamed to OLDIBBS.EXE, NEWIBBS.EXE renamed to IBBS.EXE and then a RUN"IBBS" is done. This will cause the phone connection to drop. You should call back in to ensure that everything is OK. I have done this many times with no failures. The machine running the BBS is located 15 miles from my home. MESSAGE SYSTEM: Callers are notified if they have messages waiting for them upon entering the message system (also the first time the main menu is displayed). The SYSOP has the additional commands (undocumented for safety reasons): 9 - read the comments file 8 - delete the comments file 7 - cause the new copy of the BBS to be RUN Z - modify an old message (cannot add more lines) There is a designation known as SPECIAL user. If the USER file entry for a given person has a + symbol in the first position, that person is a special user. He/she may use the Z command on messages to or from themselves, and are not limited by the time restrictions on system usage. If, instead, the first position in that file entry contains an *, the user is a twit and cannot log on in the future. Special Note: Most of the files used in this system are random files. They are fixed length and, although they can be editted with an editor, you ****MUST**** be extremely careful not to change the length of any record. If you do, the file will not be readable past the record changed. CLEANUP: Since the deleted messages in a random file are only logically deleted, a file cleanup must be done periodically (depends on your system activity). Run the program RBBSUTIL to do this. It has many features, but the one needed to do the file cleanup is called with the P (for PURGE) command. You will be asked if you wish to resequence the messages (I recommend you do not). Just press the enter key to see what the other options are before pressing the P option. All deleted messages are archived to a disk (compressed to save space). The drive that this will go on is specified via an option in this program. The message file will be recreated and a backup will be keep. Be warned that these files can get to be very large and cause disk space problems during the cleanup process. TIMEOUT: There is a 7 minute timeout on this system. Any inactivity for a consecutive 7 minutes will cause a forced logoff. SERIOUS NOTE: Due to a limitation in the BASIC COMPILER, this code cannot be enlarged without causing a compiler error. This code will have to be broken up into multiple modules for any more enhancements to be done. COMPILING: The BBS system may be compiled using the COMPILED run time system option or without it. It is distributed using the /O option so as to not require the BASIC COMPILER. With RUN-TIME library: BASCOM IBBS/C:3000/S/V/X; Without Run-Time Lib: BASCOM IBBS/C:3000/S/O/V/X; LINK With Run-time Lib: LINK IBBS; LINK Without Run-time Lib: LINK IBBS IBMCOM; PRIVATE MESSAGES: Messages from one users to another can be made private by entering an * when asked for a password. ONLY the sender, addressee, and SYSOP can read it. If anything else is used in the PASSWORD prompt, that value must be used to delete the message. It can still be read by everybody. The SYSOP can read and delete anything. CABLING: Use a full 25-wire cable between the PC and the modem. While not all these sugnals are needed, more a than normal communications pgm are used. There have been too many people calling with problems that are related to cheap (or low-pin count cables). Use a full 25-pin cable to ensure proper functioning.