BBS Express! 1030/XM301 and 850 versions by Keith Ledbetter Copyright (C) 1986-1989 by Orion Micro Systems All rights reserved. Reproduction or translation of any part of this work beyond that permitted by sections 107 and 108 of the United States Copyright Act without the permission of the copyright owner is unlawful. Orion Micro Systems 2211 Planters Row Drive Midlothian, Virginia 23113 For Technical Assistance, call our support BBS at (804) 379-4156. Online 24 hours a day at 300/1200/2400 baud. Technical Assistance is also available on the following Bulletin Board System: M.O.U.S.E. BBS (219) 674-9288 Or Leave A Message On GEnie's Atari 8-bit Round Table To ORION.MICRO This Program Was Written Using ACTION! ACTION! is a Trademark of Action Computer Services Portions of this program are (c) 1984, A.C.S. Modem Handler is (C) Atari Corp. Permission Granted. Atari is a trademark of Atari Corp. Sunnyvale, CA SpartaDOS is a trademark of ICD, Inc. Rockford, IL BBS Express! Table of Contents Section Page # ------------------------------------------------------------ 1. Introduction .................................. Page 1 2. Getting Started ............................... Page 3 3. Creating The Userlog .......................... Page 5 4. Security Levels ............................... Page 6 5. The Message Bases ............................. Page 7 6. Creating The Message Bases .................... Page 9 7. The System Data File .......................... Page 11 8. Sysop Defined Commands ........................ Page 16 9. Variable Tags and The Help Files .............. Page 17 10. The Individual Help Files ..................... Page 19 11. Download Filename Format ...................... Page 23 12. The Prompt Dataset ............................ Page 26 13. Going Online .................................. Page 27 14. Sysop Logon Modes ............................. Page 29 15. The Screen Display ............................ Page 30 16. The Sysop Commands ............................ Page 31 17. The User Editor ............................... Page 34 18. Extending The Userlog ......................... Page 36 19. Additional Utilities .......................... Page 38 20. A Sample Configuration ........................ Page 39 21. Finished ...................................... Page 40 BBS Express! Introduction Thank you for choosing BBS Express! as your bulletin board system. Express! is the most dependable, as well as the quickest, bulletin board system available for your 8-bit Atari. This manual is arranged in a manner which will take you through the steps to get your bulletin board system up and running quickly. The topics covered are arranged in step by step procedures covering the main elements of setting up Express!, which are: 1. Choosing a DOS to use. 2. Formatting all needed Data Disks. 3. Creating the user data file. 4. Creating the message bases. 5. Editing/Creating all needed help files. 6. Copying files to their related drives. 7. Booting up and testing your BBS! While the manual is arranged in a step-by-step fashion, there are still areas which depend heavily on other (later introduced) options. Because of this, it is recommended that you read this manual in its entirety before attempting to set up the board. Configuring your board will be a much easier task if you do! The most important thing that can be stressed with Express! is to THINK and PLAN ahead. Express! gets its speed by pre-allocating both the userlog and the message bases to their absolute maximum size. This is most evident on the message bases, where a full base with 75 messages can be loaded in under 2 seconds! Not only that, but because of Express's unique message base structure, you (the Sysop) will NEVER have to compact message bases! Express! does this automatically, while the caller is online, when a message base fills up. For Express! to delete a message requires roughly a couple of milliseconds, since all that must be done is to delete a pointer from RAM. Also, the importance of frequent backups can't be stressed enough. You will find that BBS Express! can run for literally weeks without ever being taken down, so you might have a tendency to get a little lax on the backups. Please, don't fall into this trap. In six months of testing at two sights (24 hours a day, 7 days a week), Express! crashed only twice, and neither were attributable to Express!. Once was when the power went off (Keith is still working on the 'power [1] BBS Express! supply' code!) and the second was when a disk was physically worn out and a bad sector popped up. The moral of this is that these things WILL happen eventually, so make sure you are always prepared! On the note of backups, you MUST back up your disks that contain the user log and message bases WITH A SECTOR COPIER OR DUPDSK function if you are using an Atari 2.0 compatible DOS. The user log and message bases CANNOT be restored as a file. The entire DISK must be restored. This is because these files are heavily indexed by sector number. With any Atari 2.0 compatible DOS, the file must always reside on the same physical sectors that it was originally created on. If you are using SpartaDOS 2.x or greater, then you may freely copy both message bases and user log by DOS file copying. This is due to the fact than Sparta DOS handles notes and points differently than Atari 2.0-compatible DOS's. With these words of warning, let's get started on setting up your BBS! [2] BBS Express! Getting Started Now, before we start setting up your BBS system, you must make a big decision. Which DOS are you going to use? This is probably the biggest decision to be made under Express!. Are you going to be using a RAM disk? How many disk drives are you using? If you have an XL or XE computer, Orion Micro Systems recommends that you use SpartaDOS (version 2.x or greater). This is a very powerful DOS, with a very low LOMEM and excellent Ramdisk support. In addition, message bases and user log may be DOS file copied, which makes moving the message bases much easier should that need arise in the future. If you prefer to use another DOS for your BBS system, then the only requirement is that it can be configured not to conflict with the modem handler. This means you must be able to get the LOMEM value down to around the area of $1E00. Since there are so many DOS's available today, there is no 'cut and dry' configuration set-up, and it is likely that there will have to be some experimentation on your part by configuring for different number of drives and buffers to get things to work properly. If you are currently using the terminal program 1030 Express! or 850 Express!, then the same configuration's will work fine with BBS Express!, since the handlers load in at the same location in memory. Before we go any further, you should make a back-up copy of both sides of your original Express! disk. Express! is not copy-protected, so you can either copy it with a sector copier or by a file-by-file copy from any DOS. Once you have backed up your original disk, file it away in a safe place and use your backup version from here on out. At this time, you should also format a blank diskette with the DOS that you have chosen to use for your BBS. Then, copy the files from the FRONT side of the Express! disk to it. This is so that you will be running all of the creation programs under the same DOS that you plan to use on the BBS. If you are using SpartaDOS and have an Atari 1050 disk drive with a US Doubler installed, you can format the disk using the high speed option. This will speed up the booting process as well as the file creation process. The high speed option can also be used when formatting your working data disks. The next step is to format blank disks with NO DOS. You will need to format a fresh disk for each drive that you plan to use on the BBS system. After you have formatted these [3] BBS Express! disks, label them appropriately so there will be no confusion once you have actually started the configuration process (ie: Data Disk 1, Data Disk 2, etc.). Throughout this manual, you will see the words PATHNAME and FILENAME used quite a bit. You should understand the definitions of these terms before continuing to configure BBS Express!. PATHNAME - To the BBS, a pathname is the text string that PREFIXES the actual dataset name. When the BBS uses a pathname, it will append the dataset name that it wants onto the END of the pathname. If you are using a DOS that doesn't support pathnames (such as DOS 2.0 or DOS 2.5), then the pathname will only be the drive specifier, such as 'D1:' or 'D8:' (note the colon!). FILENAME - A filename to the BBS is the FULL specifier for the file, including drive specifier, path name, dataset name, and extender. Here are some examples: FILENAME PATHNAME D1:USERLOG.DAT D1: D2:BBSDATA>USERLOG.DAT D2:BBSDATA> D8:MENUS>MAIN.HLP D8:MENUS> D3:LIBRARY.HLP D3: D8:MENUS:MAIN.HLP D8:MENUS: As you notice above, some DOS's like SpartaDOS use the '>' character as the path specifier, while other DOS's like MyDOS use the ':' character. You must use the correct path specifier for the DOS that you are using! [4] BBS Express! Creating the Userlog Now that you have all of your data disks formatted to their proper density, we are ready to begin. The first thing that needs to be done is to create the user log dataset, which is the dataset that contains information on each user of your BBS. This process requires some thinking ahead on your part, since the ENTIRE userlog is pre-allocated. You should plan on setting up for the maximum number of users that you ever want to allow on your BBS. You may later decide to extend your userlog by utilizing the UEXTEND.COM utility supplied on the Express! disk. Decide how many users you want as a maximum on your board (if you figure on, say, 150 maximum, why not pad on an extra 25?). Once you have decided on the number of users, insert the back-up version of your Express! disk in drive #1, and load and run the file MAKEULOG.COM. Once the program boots up, you will be prompted with 'MAX ENTRIES ==>'. Enter in the max number of users you want allocated and press RETURN. The program will next prompt you to 'Insert Disk to Create Files, Then Press The START Key'. Put your freshly formatted data disk into drive #1 and press START. The program will grind away for a while (more users = longer run time). When the program completes, you have finished step one in getting your BBS system up and running (I TOLD you it was easy!). The data disk now contains 2 additional data sets, which are the userlog data file and the userlog index file. They are named USERLOG.DAT and USERLOG.IDX, respectively. [5] BBS Express! Security Levels The security level scheme used by BBS Express! is at the BIT level. What this means is that each of the 8 bits in the user's security level byte correspond to one of the 8 security levels. The main reason behind this security level scheme was to give you more flexibility in giving people access to different parts of your BBS. With this security level system, you validate users level by level starting with level 1 and carrying up through level 8. The advantage to this scheme is that you can selectively give people access to a higher level feature WITHOUT giving them access to lower features. For example, you can give users access to level 5 functions but NOT give them access to level 1 and level 2 functions, if you so choose. Perhaps a thorough explanation of how the BBS validates users would help make this more clear. There are security levels of 0-8 for both message bases and download files. Assume that message base #3 has a security level of 6. Here is what would happen when the user tried to enter base #3: If BIT 6 of User's Security Level = 1 then Allow Access Else Don't Allow Access Great, you say. But how do you figure out these security levels? Well, if you are using the UEDITOR.COM to change the user's security level, you will be prompted BY LEVEL for whether the user has access to level 1 functions, then level 2 functions, etc. If you are validating the user while he/she is online, then you are on your own to add up the correct bit patterns. But, it really isn't that difficult. Let's look at the following chart: Security Level 1 2 3 4 5 6 7 8 --------------------------------------------------------- Amount to Add 1 2 4 8 16 32 64 128 Using the above table, you can see that to give a user access to level 1, 4, and 5 functions you would add 1 + 8 + 16 for a security level of 25. Pretty simple, huh? A SYSOP security level is 255 (which is all of the numbers above added together). You CAN give users access to level 8 functions AS LONG AS AT LEAST ONE LOWER LEVEL FUNCTION IS A ZERO. If you give them access to ALL of the levels, then they have just become a SYSOP as far as the program is concerned. This same scheme is used on download files, too. When a user is browsing files and the BBS finds a level 2 file, it will only show the file to the user if their BIT 2 is turned on. [6] BBS Express! The Message Bases We are now ready to configure the message bases for your BBS system. This, too, requires some thinking ahead on your part. Express! allows you some very powerful options regarding message bases, so we will discuss the message base layouts before proceeding on. Under Express!, you can control the number of message bases that are available to the user. Some sysops may want more bases and less download space, while others will prefer having only one or two bases, leaving more disk space for other things. Once you have created your message bases, they will never grow any larger (in disk space) than what they were originally. This makes it possible for you to take your free sectors on a disk down to where the disk is almost full, without any worries of getting 'disk full' errors. There is a price that must be paid for this kind of luxury: once a message base has been allocated, the number of messages / bytes per message sizes CANNOT be changed without deleting the existing base (and all of its messages) and creating a new message base or by creating a new message base and running the utility LOADBASE.COM which will copy all messages in the old message base to the newly created message base. More about this procedure later. So, once again, the moral is PLAN AHEAD!. The things that you should decide on ahead of time are: * How many message bases do I want on my system? * What is the number and name of each message base (15 chars max). For example, base one might be 'GENERAL', base two might be 'QUESTIONS', and so on. * What is the security level of each message base? Each message base may have a security level of 0 - 8. This allows you to set up special bases like a 'user group' base, and then selectively allow only certain users to access those messages. * On what disk drive do I want each message base to be? Each message base can be on any disk drive you wish. Message bases can be on RAM disks if you are utilizing SpartaDos and may be periodically copied to a floppy disk for permanent backup. But, fair warning, if your message bases reside on ramdisk and you lose power, you will lose all messages posted since your last backup. [7] BBS Express! * How many messages do I want allocated for each board? Each base may be allocated for a different number of messages. For example, you could set up base one to have a max of 50 messages, but set up base two to have a max of only 25 messages. There is NO message base compaction required under Express. What happens is the system DELETES a message when it needs to. For example, lets say that you set up base 1 to have a maximum of 50 messages. When a user posts a new message on that base, Express will check to see if there are already 50 messages there. If there are, then Express will delete message number one, roll everything up, and post this new one as message number 50! * How many characters per message do you want each message to be? The message editor of Express! works not on a 'number of lines' basis, but on a 'bytes per message' basis. This allows you the ability to make your BBS appear to be much bigger than it really is by creating more message bases with lower specifications on the bytes per message. A good starting point to think about is 1000 bytes per message. I know that doesn't sound like a very big message, but you would be surprised at how much a user can put into a 1000 byte message. This value can be anywhere from 100 bytes per message up to 1750 (a HUGE message). There is one special message base that you should always allocate: base # 100. This is the Electronic Mail area. As far as Express! is concerned, E-mail is just another message base (although to the user, it looks totally different). You should ALWAYS allocate a Board # 100! Also, ALWAYS set the security level on Board #100 to zero. This will allow level 0 users to leave feedback to you. At this point, you may want to try out the BASIC program on your Express! disk called CALCSIZE.BAS. This small program will let you calculate the size (in sectors) of differently configured message bases. The program will ask two questions: [1] How many bytes per message, and [2] How many messages max for the base. It will then tell you (approximately) how many sectors, in both double and single density, that certain configuration would take up on your data disk. This is a good way to 'play around' with different settings, enabling you to get the most out of the disk space that you have available. [8] BBS Express! Creating Your Message Bases Now that you have decided on the different allocations for your message bases, we are now ready to create them on your data disks. Place your Express! disk into drive one and load the binary file MAKEMSGB.COM (If you want to create your message base in a sub-directory, you must first perform a 'change working directory' command on the data disk where the message bases will reside). When the program boots up, you will be asked the following questions (for each different message base): * Board Num ==> Key in the board number that you want to create (boards MUST be numbered from 1- CONSECUTIVELY (you can have up to 25 boards, numbered from 1-25). * Board Name ==> Enter in the name of this board (up to 15 characters long). This name will actually appear in the message base prompt when the user is on this base. The name can contain inverse and/or lowercase letters. * Sec. Lvl ==> Enter the security level for this particular board. A security level of zero will allow ANYONE (even first time callers) to access this message base. * Max Msgs ==> Enter in the maximum number of messages that you want allocated to this base. This can be anywhere from 1 to 75 messages. * Bytes/Msg ==> Enter in the size (in bytes) to which you want to limit each message in this message base. The absolute maximum size is 1750 bytes per message. * Which drive to create on? Enter in the number of the disk drive on which you want this board created. This has NOTHING to do with where the board will be once the system is running (that will be specified in the SYSDATA.DAT file that we will cover later). This option simply allows you more flexibility when allocating your bases. MAKE SURE that you insert the correct data disk for this board! In other words, if you want message base 5 to be on disk drive #2 when the board is [9] BBS Express! running, make sure that you insert Data Disk #2 into the drive that you just specified! At this point, the program will prompt you to insert the data disk into the drive that you specified above, and then to press the START key. Once you do this, the program will create the message base on your disk, and will then return to the 'Board Num.==>' prompt to allow you to continue this process and create your next message base. When you have completed this process for every one of your message bases, you should then do the E-Mail base, which is board #100 (see above). Don't forget, set the Board # to 100, and the security level to 0! When you are finished creating all your message bases including Email, enter a '0' at the 'Board Num.==>' prompt to exit the program. [10] BBS Express! The System Data File Well, if you have made it this far, you can pat yourself on the back! We are now in the homestretch, and should have your BBS system on-line in no time! At this point, it is time to move on to the data files required for Express! to run. The first file we will create is one of the most important. This is the file called SYSDATA.DAT. There is a utility called SYSEDIT.COM on your Express! disk that is used to edit and/or create your SYSDATA.DAT file. Place your Express! disk into drive one and load the binary file SYSEDIT.COM. When the program finishes loading, you will be prompted to either enter the fully qualified filename of your SYSDATA file or to simply press RETURN to create a new one. If you enter a filename, then the program will try to read that file in to be edited. You must enter the FULL name of the file, including the drive specifier and any path names (if applicable). We will now cover each command available in the SYSEDIT program along with it's function to the BBS program itself. "+" command The '+' command will toggle between the three 'pages' that are used while in the SYSEDIT program. A. Hi Message Number The A command allows you to modify the current 'high message number' on your BBS. You should enter a '1' here. After that, you should refrain from ever changing this number, since an incorrect value here could have very strange side effects to the operation of your BBS. B. Total Calls With this command, you can specify the total number of calls that your BBS has received. If you are just starting a BBS, you should enter a '0' here. If you have been running a board under different software, enter the number of calls your board has received to date. C. Total Calls Today This field represents the number of calls that your BBS has received since 12:00 am of the current day. The BBS program will automatically zero out this field when the day rolls over to the next day. This field is also represented by a variable tag field, which is &35. [11] BBS Express! D. Number Of Bases In this field, you must enter the number of message bases (NOT counting the E-Mail base) that your BBS has. E. Call Mode A zero in this field means that the BBS will only accept ATASCII callers, while a one signifies that the BBS will accept either ATASCII or ASCII callers. F. Feedback Mode A zero here means that all 'F'eedback to the sysop will go to the printer. If this field contains a one, then the feedback will go into the E-Mail base as normal electronic mail, making it much easier for you to answer feedback. G. Level For Uploads In this field, you specify the level that you want uploads to be placed at. This field must have a value of 0-9. If the level is placed at 9, then ONLY sysop level users will be able to see the file before its level is lowered. H. Download Ratio This field specifies the 'upload to download ratio' that you want for your BBS. The number you enter is simply the number of downloads that a user can do before they must upload a file. For example, if you enter a 10 in this field, when a user tried to download a file, the BBS would divide their total downloads by 10. If the number divided by 10 is greater than the number of uploads that they have done, then the BBS will not allow the user to download the file. I. Initial Security Level J. Initial Time Limit Here you tell the BBS system what security level and time limit that you want NEW users to get (those that request a permanent password). K. Secondary Password Since all of the BBS Express! sysop commands can be executed from a remote terminal, this field is used to provide more system security. You specify here a secondary password that all sysop-level callers must enter before they are allowed access to the BBS. L. Userlog DATA Name In this field, you must specify the fully qualified [12] BBS Express! FILENAME of your userlog dataset. You can simply enter "D1:USERLOG.DAT" into this field or any filename you chose. M. Userlog INDEX Name In this field, you must specify the fully qualified FILENAME of your userlog index file. As you did above, you can just specify "D1:USERLOG.IDX" or the same filename you specified above with an extender of IDX. N. Message Base Pathname Here you must specify the PATHNAME to be used for your message bases. You must include the "D#" specifier, even though its value is not used. The BBS will use the "Base Specifier" (option Q below) to replace the "D#" with the correct drive number for each message base. If you have your message bases spread out over more than one drive, the pathname MUST be the same on each diskette. For example, if you specify a pathname of "D1:BASES>", then there must be a sub-directory called BASES on EACH of your disks that contain message bases. If you are not using sub-directories for your message bases, then the value here should be 'D1:'. O. Help File Pathname In this field, you specify the PATHNAME where all of your .HLP files are located (i.e.D8:HELPFILE> or just D8:). P. File For Log Messages In this field you specify the FILENAME where you want all of the log messages to go. These are the messages BBS Express! puts out when a user calls. Express will log the Call Number, Users Name, Users City and State, Logon Time, Baud Rate, Logoff Time and any uploads or downloads that the user performs during the call. If you want these messages to go to a printer, then specify "P:". If you would prefer them to go to a disk file, then enter the fully qualified filename of the disk file. Since the LOG routine must open the file in APPEND mode for each line it writes out, it is recommended that you only specify a disk file that is on ramdisk. If you are using SpartaDOS, then writing to a floppy disk is acceptable also, since SpartaDOS does not read the entire file when it is opened for APPEND mode. Q. Base / Drive Specifiers This field is simply a long string of numbers, telling the BBS which drive (1-8) the corresponding message base is found on (1st position = base one, 5th position = base five, 26th position = Email base). So, starting in position #1, enter the drive number that each existing message base will reside. [13] BBS Express! R. Sysop Defined Commands In this field, you can specify a string of up to 8 characters that define your own personalized commands. For a full explanation of the sysop-defined commands, see the 'Sysop Defined Commands' section found later in this document. If you are not using sysop defined commands at this time, this field should be left blank. 1-8. Download Paths The commands '1' thru '8' are used to specify the PATHNAMES that you want the BBS to use for downloads and uploads. The paths will be searched in the order that they are specified (ie: [1] first, [2] second). This also means that when a user uploads a file, the BBS will start searching for free space to do the upload in the specified order, too. You can use this to your advantage by specifying an upload-specific path name as number one. This way, providing there is sufficient space, all uploads will always go to the same pathname. Here is an example setup: 1. D2:UPLOADS> 2. D3:UPLOADS> 3. D4:DOWNLOAD> 4. D5: 5. D1: 6. D8: Using this setup, here is what will happen when a user uploads a file. The BBS will search the above paths in order looking for free space. If there is enough room on drive 2, then the file will get uploaded to the path D2:UPLOADS. If drive two doesn't have enough room, then the BBS will check drive 3. If room is found there, then the upload will go to the path D3:UPLOADS. This will continue until either enough room is found, or the BBS determines that you are out of disk space, at which point the upload will be aborted and the user would receive a message saying 'Sorry...No Disk Space Is Available.'. When a user does a Browse files command, the BBS will also search in the above order to display any files available for downloading. S. Download Path Defines In this field, you specify the density of each download path that you specified with the '1-8' commands above. The allowed values here are: (0) Path not used, (S) Path is a SINGLE density path, and (D) Path is a DOUBLE density path. If you do not specify a pathname for one of the paths 1-8 above, then that entry will be specified as 0. So assuming [14] BBS Express! all your drives are double density with the exception of D8:, which is a single density ramdisk, this option would look like this using the above paths: DDDDDS00 In this example, paths 1 thru 5 are used for up/down loading and are double density drives. Path 6 is used and is single density. Paths 7 and 8 are not used for up/downloading. After you have finished editing your SYSDATA file, press the ESCape key to exit. You will be prompted to enter in the fully qualified filename , including the drive specifier, to write this new data file to. In most cases, you will respond with the same name that you entered for the input file. [15] BBS Express! Sysop-Defined Commands One of the features of BBS Express! is the ability to have up to 8 commands that you can define for your own use. These commands can be used to view any text file, and can be thought of as additional 'Library' type functions. These commands can only be invoked from the main command prompt. As an example, let's assume that you want to add a command to view a text file that contains information about your local computer club. The first thing you must do is to figure out what letter you want to use for the command. It must be a character that is not currently used from the main command menu. In this example, we will use the letter 'Z'. First, you would edit your SYSDATA.DAT file with the SYSEDIT command. You would change the 'Sysop Defined Commands' field to include a 'Z'. Next, exit out of the SYSEDIT program and re-save the file. At this point, you would now need to load the PROMPT.DAT file into a word processor. If you look through the PROMPT.DAT file, you will see eight definitions for the sysop-defined command prompts. Since this is the first sysop command added, you would change the prompt that corresponds to the first command to say something like "Computer News@". This is the string that will get displayed when the user presses the 'Z' key. The prompts correspond directly to the order of the commands specified in your SYSDATA.DAT file. In other words, if you had four sysop commands defined, let's say 'ZEX#', then the first prompt in the PROMPT.DAT (number 143) would go with the 'Z' key, the second (number 144) would correspond to the 'E' key, and so on. At this point, there are only two other things that you must do. One is to recompile your PROMPT.DAT file using the COMPILER.BAS program. Then you must create a text file called YOURZ.HLP. This is the file that the BBS will read whenever the user hits the 'Z' key. The format of this filename is always YOURx.HLP, where x = the sysop defined command. This file MUST be in the same location as your other .HLP files. These files may also be turned into selection menus by placing the word MENU in the first line of the file and formatting the file the same as if it were a library text file. [16] BBS Express! Variable Tags and The Help Files We are now ready to cover the help files, which are signified on the back side of your Express! disk by the extender .HLP. These files contain text files ranging from system menus to user status files to logoff messages. The help files that are on your Express! disk are generic in nature but could very well be used now if you are in a hurry to get your system up and running. If this is the case, then copy all of the .HLP files to your correct data disk (the one you specified in the SYSDATA.DAT file above), and skip on to the next section. Still with me, huh? OK, then let's cover a very interesting feature of the help files before we get started. This is the 'variable tag' information. If you will read the file LOGSTAT.HLP into your text editor now, you will see what the variable tags look like. What? What are all of those strange '&' symbols? Well, those are the 'tags' that you have available to you for use in all of the .HLP files. What a tag does is signify to Express! that it should display a PROGRAM VARIABLE at that point in the text file. These tags are made up of two pieces of information. First, there is the '&' sign, which signals Express! to prepare to display special information. Second is the tag-number, which MUST be two characters in length, and is a number between 1 and 36. There are 36 separate variables that Express! can display. Tag 36 is the BAUD RATE tag and is only valid for the 850 version of BBS Express!. Here are their numbers and corresponding information: &01 - The user's NAME (only after completely logged on). &02 - The user's PASSWORD. &03 - The user's CITY. &04 - The user's STATE. &05 - The user's PHONE NUMBER. &06 - The user's LAST CALL DATE. &07 - The user's SECURITY LEVEL. &08 - The user's CONNECT TIME (for today). &09 - The user's TIME LIMIT per day. &10 - The user's HI MESSAGE COUNTER. &11 - The user's UPLOAD count. &12 - The user's DOWNLOAD count. &13 - The user's PARAMETERS (you shouldn't use this). &14 - The user's TOTAL CALLS to this BBS. &15 - The TEMPORARY user NAME (see below). &16 - The TEMPORARY user CITY. &17 - The TEMPORARY user STATE. &18 - The TEMPORARY user PHONE NUMBER. &19 - The CURRENT DATE in the form Sat 29-Mar-86. [17] BBS Express! &20 - The LAST CALLER's name. &21 - The CURRENT TIME. &22 - The SYSTEM HI MESSAGE COUNTER. &23 - The CURRENT MESSAGE BASE user is on (in form 1-25). &24 - The TOTAL CALLS your BBS system has received. &25 - The MINUTES CONNECTED for current caller. &26 - The NAME of the current message base user is on. &27 - The TITLE of the last read message. &28 - The AUTHOR of the last read message. &29 - The DATE stamp of the last read message. &30 - The TIME stamp of the last read message. &31 - The NUMBER OF MESSAGES on the current base. &32 - < for system use > &33 - The CURRENT DATE in the form 03/29/86. &34 - The 'TO:' name in each message header. &35 - The # OF CALLS received since 12:00 am. &36 - The BAUD RATE of the current caller. You should note that the above TEMPORARY tags (15-18) are only valid BEFORE the user gets completely logged on. About the only use for these fields would be in the NEWUSER.HLP file, so that you could customize your message to NEW users. In addition, these tags can be present in any of your menus and help files. If you should ever need to have an actual '&' in one of your text files, then put in TWO '&' signs (ie: 'this && that' would display as 'this & that' to the user). [18] BBS Express! The Individual Help Files We are now ready to move on to the individual help files. There is not much to be discussed here, since the files are fairly self-explanatory. About the only useful information to pass along to you is WHERE and WHEN the different files are displayed. Here is the list of each file along with a brief description of what it is: SYSOP.HLP This is the file that is displayed to your screen while the BBS is inactive (waiting for a call). Put your own nice little logo here. In addition you may want to include the 4 logon modes available to you by hitting the 1,2,3 or 4 key. See the section on Sysop Logon Modes for more information on these logon modes. SYSOPCMD.HLP This file is the Sysop menu that is displayed when you press '?' from the 'Sysop Command' prompt. SYSINFO.HLP This file is displayed when the user selects the 'Info on System' option from the main command prompt. Use this file to tell the user what type of hardware your system is running on, along with any pertinent information (why not tell them the software, too -- we could sure use the advertising!!). You can structure this file as a selection file and have 2 options, one for hardware information and one for software information. CONNECT.HLP This file is displayed when a connection is made, BEFORE the user gets the 'Go Atascii, Hit Return' message. WELCOME0.HLP/WELCOME1.HLP This file is the first one displayed once the user has logged on. Use this for your signon screen. This file can also be re-displayed if the user selects the 'title page' command from the main prompt. The WELCOME0.HLP file is displayed if the user is in ATASCII mode, and the WELCOME1.HLP is displayed if the user is in ASCII mode. This allows you to have a fancy cursor-art type screen for your Atari callers only. SYSNEWS.HLP [19] BBS Express! This is the file you should use for your 'system news' bulletins. This file is displayed during a user's logon, or will be shown if the user selects the 'system news' option from the main command prompt. LOGSTAT.HLP This file is the third shown after a user has logged on. Use this file to welcome the caller to your board, as well as to tell them things like who the last caller was. MAIN.HLP This is the 'Main Menu' file, and will be displayed when the user presses '?' at the main Command: prompt. MAINM.HLP This file is a 'mini-menu' that is displayed when the user presses the '/' key from the main command prompt. BOARD.HLP This is the 'Board Menu' file, and will be displayed when the user presses '?' key from the message base prompt. BOARDM.HLP This file is the 'mini-menu' that is displayed when the user presses the '/' key from the message base prompt. EDITOR.HLP This is the message editor help file, and will be shown when the user presses '/?' from within the message editor. NEWUSER.HLP This is the text file that will be displayed to the user when he/she logs on as a 'NEW' user. Use this area to welcome the new caller to the board and to pass along any important information about your requirements for getting their password validated. If you want to get the user's real name, address, etc., then you should include a line or two telling them to leave 'F'eedback to you with that information, since Express DOES NOT make new users leave this type of information. USTATS.HLP This is the file displayed when the user selects the 'Your Stats' option from the main menu. [20] BBS Express! BLIST.HLP This file is the message base list, and is displayed when the user selects the '*' command from either the Command prompt or the message base prompt. Use this file to show what message bases you have available, including their number and name. BBSLIST.HLP This file is the 'other BBS numbers' list, and is displayed when the user selects this option from the main Command: prompt. Place names and numbers of other known operating BBS systems in this text file. LOGOFF.HLP This is the file that will be displayed to the user when he/she logs off of the system. LIBRARY.HLP This file is displayed when the user selects the 'L'ibrary function from the main menu. But, this file does more than just being displayed to the user -- it also tells Express what files go with what selections from the library. Not only that, but you can do 'selection' menus on ANY of your text files. When BBS Express! displays a text file, it will look for the word 'MENU' in the FIRST line of the file. If the word MENU is there, then Express! expects a 'selection' text file to follow, with the following components: MENU 4 D2:CARTOON.MNU D2:TUTORS.TXT D3:ORDERING.TXT D4:CLUBNEWS.MNU Main Library Menu [1] Cartoon Collection [2] BBS Tutorial Files [3] Ordering Information [4] Computer Club News Immediately following the word MENU is the number of selections allowable on this menu. Following the number are the files to be displayed depending on the selection that the user enters. Starting with the next line after the last file name is the text that you want to be displayed to the user. You can chain MENU files as deep as you want, limited only by the disk space that you have available! In other words, [21] BBS Express! selecting number 1 above will display the file D2:CARTOON.MNU, which could be another MENU file for the user to select which cartoon file they wish to view, as seen below: MENU 7 D2:CARTOON1.TXT D2:CARTOON2.TXT D2:CARTOON3.TXT D2:CARTOON4.TXT D2:CARTOON5.TXT D2:CARTOON.MNU D2:LIBRARY.HLP Cartoon Library [1] Cartoon Number One [2] Cartoon Number Two [3] Cartoon Number Three [4] Cartoon Number Four [5] Cartoon Number Five [6] Redisplay this menu [7] Return To Main Library Menu As you can see from this file, you can even select the same file that you are currently viewing, or allow the user to go backwards in the sub-menu chain by specifying the previous menu's file name. The MENU files are not limited to the LIBRARY.HLP file only. You can use this same technique for ANY text file that the BBS displays, such as SYSINFO.HLP, BBSLIST.HLP, etc. Use your imagination! NOTE: There is a limit of 45 entries per menu in each selection menu. DLHEADER.HLP This is the text file that is displayed at the top of each 'Browse download files' screen. [22] BBS Express! Download Filename Format Before we go further, we must now discuss the naming conventions of DOWNLOAD files that will be on your BBS system. The EXTENDER field is the most important on download files. This extender does 3 things: [1] It determines the FORMAT of the file. [2] It determines the TYPE of the file. [3] It determines the SECURITY LEVEL of the file. By FORMAT, we mean as in Object File, Action! source code, Saved BASIC, Listed BASIC, etc. By TYPE, we mean Game, Utility, Home Application, Demo, etc. For example, let's take a file named LOANS.BAS which is a home application-type program to calculate mortgage payments. Then, let's assume that you have defined the letter 'B' to mean BASIC (this will be covered below - be patient) and the letter 'H' to mean Home Ap. Also, we want this file to be available to everyone, so we will copy the file to one of our 'download' drives (remember? you specified those in the SYSDATA.DAT file), and rename it to: LOANS.BH0 Now, when Express! displays this file on the 'B'rowse files command, here is what the user will see: LOANS | 012 | BASIC | Home Ap Simple, huh? The third position of the extender is the SECURITY LEVEL of that file. If, for example, you have a file with an extender of .BA3, then this file would ONLY be displayed on the browse files command if the user had a level where Bit 3 was turned on. Now that we know a little about the extenders of download files, let's carry on with our .HLP files. DLFORMH.HLP This file contains the table lookups for the FORMAT of each file when the user is doing a Browse Files command. This provides you great flexibility in being able to set up your own customized format descriptions. Here is an example DLFORMH.HLP file: [23] BBS Express! OObject AAction! BS. BASIC LL. BASIC MA.M.S. XOther When a user does a 'B'rowse files command, Express! will automatically load the file DLFORMH.HLP into memory. Then when displaying a file, Express will examine the FIRST byte of the extender and will then search down in memory looking for a match on this character. If a match is found, then Express will display the corresponding literal from the above table. NOTE: The literals in the table entries may be from 1-8 characters long. There is a logical limit of 100 entries in the table, but a physical limitation of the possible characters that can be used in a filename. But, rarely should you ever need more than the letters A-Z. DLTYPEH.HLP This file is identical in function to the above DLFORMH.HLP file, except it contains the table lookups for the TYPE of file, determined by the SECOND byte of the file extender. Here is an example DLTYPEH.HLP file: GGame MMusic HHome Ap BBusiness UUtility DDemo XOther Once again, the literals in the table may be from 1-8 characters long. DLFORMS.HLP This file works hand-in-hand with the DLFORMH.HLP file. This is the SELECTION file that will be presented to the user when he/she uploads a new file (after all, let your users set the format of the file for you, right?). Here is an example of a DLFORMS.HLP file, corresponding with the above DLFORMH.HLP file: OABLMX Please Choose A Format: [O] Object File [A] Action Source Code [24] BBS Express! [B] Saved BASIC [L] Listed BASIC [M] AMS Music File [X] Other The most important line here is the FIRST line (and, it MUST be the first physical line in the file!). This is the selection line, and tells Express! what the valid keypresses to accept are. In the above case, Express! will prompt the user for 'Selection:', and will NOT accept input unless it is either an O,A,B,L,M, or X. Express! will then use this character as the FORMAT byte in the new file's extender field. DLTYPES.HLP Have you guessed what this one is yet? You're right! This is the same as the above DLFORMS.HLP, but corresponds to the TYPE of the file. Here is another example, this time corresponding to the above DLTYPEH.HLP file: GMHBUDX Please Choose A Type: [G] Game [M] Music Demo [H] Home Application [B] Business Program [U] Utility [D] Demonstration [X] Other Here again, Express! will display the text from the second line down, display a 'Selection:' prompt, and then wait for input. In this example, only the keypresses G,M,H,B,U,D, or X would be accepted. Express! will then use this character as the TYPE byte in the new filename. This file is also used to get the user's 'Browse Files' specification if he/she hits '?' at the browse prompt. [25] BBS Express! The Prompt Dataset You will find a dataset on your Express! diskette named PROMPT.DAT. This file contains all of the 'prompt definitions' used by BBS Express!. You can change these prompts any way that you like (please make your changes to a backup of the file!). After changing the prompt dataset, you should run the BASIC program called COMPILER.BAS. This program reads the text dataset with your prompt definitions and creates a binary file that BBS Express! can understand. Once the compile completes with no errors, you will be asked for the name of the output dataset. You should name the output file PROMPT.OBJ, and write it to the disk that you use to boot BBS Express!. Once Express! boots up, it will load in the PROMPT.OBJ file immediately, without asking you to insert any disks. The PROMPT.DAT file is heavily commented, so there is no reason to talk about the individual prompts here. Just print the file off and read through it at your leisure. An original PROMPT.OBJ file is on your Express! disk so you can get your board up and running without having to compile the prompt dataset. [26] BBS Express! [27] Going Online! At this point, we are ready to test out your new BBS System! But, before we do, let's go over everything that you should have done by now: 1. Formatted a disk for each disk drive to be used on your BBS. 2. Created the USERLOG file. 3. Edited the SYSDATA.DAT file to match your system configuration, and then copied this file to Data Disk #1. 4. Created your message bases on the Data Disks that you specified in the SYSDATA.DAT file. 5. Edited (if necessary) and copied all of the .HLP files to the Data Disk that you specified for the help files in the SYSDATA.DAT file. 6. Copied all of your download files to the correct Data Disks specified in SYSDATA.DAT. You should have also renamed these files to the format discussed earlier. If you have done all of these things, then let's try it out! Place your Express! disk into drive #1 and do a binary load of the file BBS.COM. After the program loads in, the PROMPT.OBJ file will be read into memory and you will be prompted with 'Insert Data Disks' Place all of your Data Disks into their correct drives, and then press the RETURN key. Express! will then load in some data from the drives, and will then display the SYSOP.HLP file. If you are using the R-time 8 cartridge with the 850 version of the BBS, it is not necessary to logon at this point to set the date and time as Express! has automatically set them with the cartridge. If you are not using the cartridge or are running the 1030/XM301 version, then you must logon to set the date and time correctly. To set the date and time, use the fast logon option (Option #1) and go into Sysop mode to perform this task. Once set, your BBS system is ready to accept callers. The first caller should be you, the sysop, since USER NUMBER ONE IS ALWAYS CONSIDERED TO BE THE SYSTEM OPERATOR. So, what you should do now is log on, just as any normal caller would, to be assigned your password. You can hit '2' or '3' to logon this first time, whichever you prefer. At the NAME prompt, enter in the name by which you want to be known on the system. For your password enter the word NEW. Express! will assign you the first password (you can change it later from the user editor if you like), and you are now in business!. Now, from the 'Command:' prompt, go into sysop mode and set your security level to '255' and your daily time limit to '255'. After the initial logon to get your password assigned, you may use the Option #1 (Sysop Fast Logon) to logon in the future. This logon method bypasses the logon messages and takes you directly to the checking for mail prompt. You should try out ALL of the options on the board to make sure that everything is set up properly. If Express! ever encounters an error, such as not being able to find a file it expects to exist, it will log a message to the printer. If this ever happens, then you have probably told Express! a wrong drive assignment in the SYSDATA.DAT file. If everything checks out OK, then you can use the 'G' command to log off. You are now ready to accept callers. If you are using a 1030/835 modem with a ring detector, then the detector MUST be plugged into the SECOND joystick port. XM301 owners will have no more to do, since your modem has an auto-answer feature built in. 850 owners should make sure that the dip switch settings on your modem are set as follows: Hayes and Smarteam Modems Switch 1 - UP Switch 2 - UP Switch 3 - DN Switch 4 - UP Switch 5 - DN Switch 6 - UP Switch 7 - UP Switch 8 - DN Avatex Modem All dip switches should be in the up position. If you have a modem other than those mentioned above, you should refer to your modem manual and set your dip switches to the following specifications: * The modem SHOULD NOT auto-answer the phone. * Allow the computer to monitor the CARRIER DETECT RS-232-C signal to detect a remote modem's carrier signal. * Allow the computer to supply the DATA TERMINAL READY (DTR) RS-232-C signal to the modem. This is used by Express! to hang up the phone. * Allow the modem to recognize its own commands. Sysop LOGON Modes There are 4 logon modes that you can use while the BBS is waiting for a call. These are explained below: 1. The 'Quick Entry' If you press a '1', the BBS program will read the first record in the USERLOG file (which should be your sysop record), and go immediately to the 'Checking For Mail...' prompt. If you log on in this way, the total number of calls will NOT be updated, and the last caller will remain the same. This is really the ideal way to log on. 2. Logon at 300 Baud This mode logs you on in simulated 300 baud. You will have to enter your name and password. This logon mode does update the last caller and the total calls. 3. Logon Remote This mode logs you on in remote mode. You will have to enter your name and password in this mode. This logon mode does update the last caller and the total calls. 4. Logon As A User This mode allows you to log on as any of your users, as long as you know their FULL name. After pressing '4', you will be prompted for the user's name. Just key in the full name of the user, and the BBS will try to find the user's record. If it does, it will log you on as that person. If you can't seem to remember the user's name after 3 or 4 tries, just press the START, SELECT, and OPTION keys to 'hang up' on yourself. You can use this log on mode to validate users without having to take the BBS down! You do this by simply logging on as the user and then pressing the '$' key to enter the SYSOP command mode. You can then use the 'L' and 'M' commands to set the user's security level and daily time limit. This logon mode does NOT update the last caller or total calls. The Screen Display Now that you are ready to accept callers, we should cover the information that you will see displayed at the top of your screen. First, you will notice that there are 4 status lines at the top of your screen. The first line will always contain the system date and time. The second line will display the current caller's (or, the last caller's, if nobody is currently logged on) name, password, and last call date. The third line will show the caller's city, state, and current connect time for this call. There is also an area on this line, indicated by '[---]' which will display '[CHAT]' if this user paged you and you didn't answer. The fourth line shows the user's security level, time limit (per day), and the file currently being accessed (or last accessed). The Sysop Commands The first sysop command we should talk about is entering and leaving CHAT mode. At any time when the program is waiting on input from the user, you can press the ESCape key to enter chat mode. To exit chat mode, simply hit the ESCape key again. There are certain functions that you, as sysop, can execute while a caller is on-line. To enter the SYSOP command mode, you must enter a '$' command from the main 'Command:' prompt (ONLY!). There are two modes of entry that the program checks for. The first one is if the '$' came from the BBS keyboard. Anything that you do here WILL NOT be seen by the user who is logged on as nothing is echoed across the modem in this mode. The user will be in a 'do nothing' state, since they will not be able to enter any keypresses. The second way of entry is if the '$' came from the modem (the caller that is online). If this is the case, and the caller has a security level of 255, then the program will enter the sysop mode and will echo everything across the modem. In other words, you can call your board from a remote location and do EVERYTHING that you can do when you are sitting at the BBS's keyboard. Once you have hit "$" to get to the sysop command prompt, or a sysop level user has hit the '$' remotely, the following commands are available: [L] Use the L command to edit the current caller's Security Level. This change WILL be stored in the user's record when he/she logs off of the system. [M] Use the M command to edit the current caller's time limit per day. This change will also be written to the user's record at log off time. [F] Use the F command to execute any XIO command to the disk drive. When you hit F, the program will respond with: XIO # Key in one of the following numbers: 32 - Rename a file 33 - Delete a file 35 - Lock a file 36 - Unlock a file 254 - Format a disk (be careful!) After you have keyed in an XIO number, the program will respond with File: and you should key in the name of the file to be operated on, INCLUDING THE DRIVE IDENTIFIER (D#:). So, let's say that you want to rename a file on drive two from ZTITLER.OG0 to ZTITLER.OG1 (to raise its security level). You would do the following: Sysop: F XIO #32 File:D2:ZTITLER.OG0,ZTITLER.OG1 You will use this command a lot to rename newly uploaded files to a lower level so that they may be seen by other users (newly uploaded files will have a security level which you specified in the SYSDATA file). [C] Use the C command to toggle CHAT mode on and off. If chat mode is turned off, then any user that pages you will get the message 'The sysop is not around...'. If chat is turned OFF, then this will be shown in the status lines at the top of your screen by '[OFF]'. [D] Use the D command to display a disk directory. This command will display a LONG directory if you are using SpartaDos. You MUST enter the '*.*' in the filespec. In other words, when the BBS prompts you for the 'Mask =>', keying in 'D2:' will NOT work. You must enter 'D2:*.*'. [E] Use the E command to display a disk directory. This command will display a SHORT DOS 2.0 type directory if you are using SpartaDos. If you are not using SpartaDos, then the 'E' and the 'D' commands function identically. [P] Use the P command to toggles the realtime clock between AM and PM. [R] Use the R command to set the current system date. [T] Use the T command to set the system time. You will be prompted to enter the hour and minutes individually. The hour is set in actual time, not military time. [W] Use the W command to set the current weekday. Repeat the W command until the current day of the week on the first status line is correctly set. [V] Use the V command to view any text file. You will be prompted for a filename. Enter the fully qualified filename including the drive specifier. [>] Use the > command to copy files. You will be prompted for both the fully qualified source and destination filenames. [?] Use the ? command to display the SYSOPCMD.HLP file which is the Sysop command menu. [X] Use the X command to Exit the sysop command mode. An additional command at your disposal is the pressing of the START/SELECT/OPTION console keys. When these keys are pressed while a user is logged on, they will immediately be logged off. When you press START/SELECT/OPTION, you are actually 'faking' the program into thinking that the carrier has been dropped. Also, when a you or a Sysop level user (255) is in a message base reading messages and are waiting at the [A] Again [R] Reply [Q] Quit [C] Cont. prompt, you may press the 'P' and the message will print on the printer. This print feature is also available while in E-mail. The User Editor Well, by now you should have your board up and fully functional! The next thing we should discuss is the user editor, which allows you to change any data for any user on your BBS system. For security purposes, this editor is totally an off-line procedure. The user editor is on the front side of your Express! diskette, and is called UEDITOR.COM. This is a binary load file, and should be loaded either with the 'L' command from DOS 2.0, or by simply typing in UEDITOR from SpartaDOS. After loading in the program, the editor will instruct you to enter the fully qualified filename of the Userlog Data File. Place the disk with the USERLOG into drive one, enter the fully qualified filename, then press RETURN. Next, you will be asked to enter the name of the Userlog Index or press return if the index is the same name with the exception of the extender. After you do this, the menu will appear. At the top of the screen you will see the number of users that are currently being used. There are 7 options available in the User Editor. They are: 1. Edit a User 2. Edit by Sec. Level 3. Add a New User 4. Delete a User 5. Mass Sec. Level Change 6. Print User List 7. Exit To edit a user (or look at a single user's data), hit '1'. The editor will prompt you for the user's number or name. From here, you have two options. The quickest way to edit a user is by entering the user's number if you know it. This is the number starting in the second position of the password. For example, if the password is 'A18XYZ', then the user number is 18. If you don't know the user's password, then you can enter the name of the user (the ENTIRE name), and the editor will search each user entry trying to match on that name. This is quite a bit slower, but will come in very handy. If you don't know the user's exact name or password, then use the 'Print Userlog' 40-Column option to display the userlog information to the SCREEN. At this point, you will see the user's data listed on the screen, along with a letter beside each piece of data. To change anything on the screen, simply press the corresponding letter, then key in the new information. You may change the password, too, but DO NOT CHANGE THE NUMBER IN THE PASSWORD! In other words, if a password is A20XYZ, you can change it to anything as long as the '20' remains in the EXACT same position. To return to the menu at any time, hit the ESCape key, and the editor will respond with 'Rewrite this record?'. If you made changes that you want to make permanent on the USERLOG, then answer 'Y'. If you answer 'N', then no updates will take place. To edit users by security level, hit '2'. You will be prompted with 'Edit On Sec Lvl Of =>'. Enter the security level that you want to edit and press RETURN. You will then be prompted with 'Start At Current Position or Beginning Of File =>'. Enter an 'S' or 'B' and press RETURN. The editor will start 'Searching' for the next user with the level you specified and display the record on the screen. You may not change any information in the users record or leave it as is. When you are finished editting, press the ESCAPE key. If you changed the record, you will be prompted with 'Rewrite This Record?', to which you can respond 'Y'es or 'N'o. Next, you will be prompted with 'Continue Search or Quit Search =>'. If you press 'C' to continue, the editor will continue the search from the current position in the file until it finds the next user with the specified security level. If you respond with 'Q', you will be returned to the Editor Menu. You may continue searching to the end of the userlog or quit at any time. To do mass security level changes, hit '5'. This is an ideal way to periodically change all level 0 users to a higher level. You will be prompted with 'Change All Users With A Security Level Of =>'. Enter the security level that you want to change. Next, you will be prompted with 'To Sec. Level =>'. Enter the security level that you want to the users changed to. The editor will start reading the userlog intil it finds the first user with the level that you specified you wanted to edit. The user record will be displayed on the screen and you will be prompted with 'Change User From SL X to Y?' where X is the current level and Y is the new level. If you want this user's security level changed to the new level, respond with 'Y'es. If not, Respond with 'N'o. The editor will make the change to the record and proceed to the next user record it finds with the specified level. When you use this option in the editor, you may not use the ESCAPE key to abort out in the middle of the file. It must be read until the end of file occurs. The other options of the user editor work similarly to the above functions (or are very self-explanatory). Extending The Userlog Note: To use this procedure, you MUST have at least two disk drives! No matter how well you plan ahead, there is probably going to come a time when you begin to see your USERLOG data file slowly fill up. There is a program on the front of your Express! diskette called UEXTEND.COM, which will extend the space allocated for your userlog dataset. There is a possibility that the use of this command could cause considerable damage to your data disk, SO BACK UP YOUR DATA DISK BEFORE YOU USE THIS COMMAND! Why could it cause damage? Well, because of the way Express! pre-allocates files, there is a good chance that you have nearly filled up your main data disks (the ones with the userlog and message bases). And, if we are going to extend the userlog file, then we have to have some space, right? The damage could occur if you accidentally 'over-allocate' and actually fill up the disk (I'm sure we all have went through the headaches of filling up a DOS 2.0 disk, and then finding that the free sector counts don't quite add up anymore). What can you do if you DON'T have any more free space on your userlog data disk? One option you have is to DELETE a seldom-used message base, giving you more room for userlog data. Another option is to rebuild a message at a smaller size using the LOADBASE.COM utility (See additional utility section). A third option is to simply move a message base to another drive. If you are using SpartaDos, moving it is all that is required. If you are using a 2.0 type DOS, then you must re-index the message base with REINDEX.COM after you have moved it. With those words of warning aside, let's discuss the use of the UEXTEND.COM program. The first, and most important, step is to try to get an idea of how many additional user records you have room for on your disk. Each user record is 81 bytes in length, so with a little math you can figure out the approximate number you can extend to. As an example, let us assume that you have 18 sectors left on your data disk one, which is a DOUBLE density diskette. By doing the following: 18 - 2 = 16 sectors 16 * 253 = 4048 bytes 4048 / 81 = 49.97 user records you will see that you have room for approximately 49 more user records. To be safe (we DON'T want to accidentally fill up the disk, remember?), extend your user log by only 45. The reason that you should subtract 2 from the free sectors is for system overhead that takes place when a file is opened in 'append' mode. If your data disk is SINGLE density, then you can use the same equations above, but substitute 125 for the 253 (ie: 16 * 125 = 2000 bytes). Now that you have decided on how many users you can have, here is what you must do to extend the size of the user log: 1. Make a BACKUP of your Data Disk 1 (PLEASE!). 2. Copy the current USERLOG.DAT off to another disk. This file will be used to do the re-build from. 3. Run MAKEULOG.COM to delete the current USERLOG and create a NEW one with the new maximum number of users. Do this to your Data Disk 1 (this is why a backup is so important!). 4. Run UEXTEND.COM and follow the prompts. You will have to place the new USERLOG disk (Data Disk 1) into drive 1, and the old USERLOG.DAT (the file that you created in step 2) into drive 2. 5. Once the menu appears, select option 1 and the current users will be re-created into the new larger userlog you just created. After doing this, you should boot up the EDITOR.COM program and do a "spot check" of different users, just to make sure that everything looks OK. The easiest way to do this is to look at every 25th user's data by simply editing user number 1, then 25, 50, 75, etc. Additional Utility Programs LOADBASE.COM The LOADBASE program will take a message base as input and write the messages from it to another separate output message base. This allows you to change the size of your message base without losing any messages. All you have to do is to run MAKEMSGB.COM to create a new message base with the size configuration that you want. Then, load and run LOADBASE.COM and enter the OLD message base name as the 'FROM' dataset, and the NEW message base you just created as the 'TO' message base. This utility checks for all kinds of size differences and will adjust the new message sizes accordingly. For example, if you have an old message base specified with a max message length of 1400 and try to load it into a new message base with a max message length of 1000, LOADBASE will truncate any messages over 1000 bytes in length. REINDEX.COM This utility will take an existing message base as input and rebuild the index. If you are using a DOS other than SpartaDOS, you can use this utility if you ever need to MOVE a message base from one disk drive to another (ie: change message base #1 from residing on drive one to drive two). To move a message base to another drive, do a DOS COPY command to copy the message base to the new data disk. Then, run REINDEX.COM to re-build the index. If you are using SpartaDOS, then YOU CAN FREELY MOVE YOUR MESSAGE BASES AROUND WITHOUT HAVING TO RE-INDEX THEM. Not only that, but with SpartaDOS, you can back up your message bases while the board is running by using the COPY command from the sysop command prompt! EDITBASE.BAS This utility allows you to change the name, and/or security level of any existing message base including the E-mail base. To use this utility, you must have basic enabled. Load and run the program which will prompt you for the filename of the message base to be edited. Follow the program prompts to perform the necessary changes to the message base. Sample Board Configuration On the back side of the BBS Express! disk is a completely configured and ready to boot BBS. This is intended to give you a feel for how the board runs and to use as a guide to configuring your own board. To use this sample configuration, insert the front side of your BBS Express! backup disk into drive #1 and turn the computer on. Make sure you have the modem and interface (if used) turned on. When the DOS finishes loading, load and run the program BBS.COM. (Note: This sample board has been configured using Atari DOS 2.0. Be sure to use a DOS that is Atari DOS 2.0 compatible. SpartaDOS should NOT be used to run this sample configuration.) When Express! prompts you to 'Insert Data Disks', turn the back-up disk over and insert it back into drive #1, then press RETURN. While this configuration only uses drive #1 and has a small userlog, one message base and E-mail, it is a full working version of the board. Logon to this sample configuration using option #2 or #3. The userlog has been configured with 'SYSOP' as the first user and a password of 'A1BBS'. Once logged on, go into Sysop Mode by pressing '$' at the COMMAND prompt. Now press the '?'. You should now be able to see the Sysop Command Menu. Set the correct date and time using the 'R' and 'T' commands. Set the correct day of the week using the 'W' command. Next, set the AM/PM indicator using the 'P' command. Now press the 'X' key. This will take you out of Sysop Mode and back to the Command prompt. Take a moment to explore the board and get a good handle on how it operates. This should help you when you get ready to configure your own version of BBS Express!. As you move around the various parts of the board, notice the right hand side of the bottom status line. This field is the filename that is being accessed or the last filename that was accessed by Express! If you experience an ERROR 170 while running BBS Express!, this status line will help you identify the filename that BBS Express! could not find. Express! will log the error to the printer if one occurs and keep right on running. To correct this problem should it occur, simply copy the missing file to the proper working disk and try the failing option again. Finished! By now you should have a good handle on the operation of your new BBS. Rather than cover all of the different commands on the BBS here, we have included text files for your library so that both you and your users can become familiar with BBS Express!. These datasets can be found on the back side of your Express! diskette, and are already set up to be accessed by the 'L'ibrary command. We hope you enjoy running BBS Express!, and if you are satisfied with the quality of the board, please let other potential sysops know about it. If you are not satisfied with the system, then let US know immediately! Orion Micro Systems would like to hear your comments and suggestions on this software. If you want to drop us a line, use the address on the cover page of this manual or give us a call on the support board line. Enjoy!