Access Color BBS Version 2.4 Written by Chris Serino & Ed Baisel Documentation by Carmen Izzi Jr. & Tim Taylor Access Color BBS Version 2.4 Copyright (c) 1991 Table of Contents Table of contents i Shareware Notice ii Menus Explained 1 Getting Started 5 Creating Menus 10 Configuring Your System 16 Starting the BBS & Local Logins 18 Uploads & Downloads: GroupsList.sys 20 Advanced Features 23 Techinical Reference 26 Misc. Notes 29 Appendix A: Menu Options Subroutines 30 Appendix B: Color Codes 32 Appendix C: AcLogin2 Commands 34 Order Form last page i Access Color BBS V2.4 Copyright (c) 1991 Access Color Bulletin Board System V2.4 Copyright 1990,1991 by Chris Serino & Ed Baisel Note that this software has not been released into the public domain. It may be freely distributed, if and only if all files of this archive remain intact and no files are added or removed & my copyright notices and "ShareWare" logo remain intact. ACBBS V2.4 is not freeware. You are free to use this application for a maximum of 60 days for evaluation purposes only. If you like this application and want to benefit from future upgrades as well as to contribute towards its development, then you are encouraged to register! Registration is only $25.00 and will entitle you to free upgrades. The Shareware concept allows the user a chance to try an application before buying actually purchasing the application. Basically it works like this, if you like the application and continue to use the application then you are requested to send in the indicated fee and become a registered user. If you do not like the application and don't use it pass it along to someone else or destroy all copies you have. We fully support the sharware concept and encourage you to also support it. Now it is impossible to police such a system, the system is based upon trust and honesty. But non-registered users will not receive free upgrades, and non-registered users will not be part of the growing AcBBS Sysop community and as such will be shunned by all registered users. As such you will in fact be alone with no other support. So please pay the fee and become part of the growing community of AcBBS Sysops. There is also a $10.00 registration fee if you wish to use the Network mail options of ACBBS V2.4. Upon paying that fee you will be given a Node Number and Polling schedule. To register send a check or money order in US funds (only) along with the registration form found at the end of this documentation to: ACBBS HQ "The DUTCHESS CoCo BBS" co:Chris Serino 22c Chelsea Ridge DR Wappingers Falls,Ny 12590 ii Access Color BBS V2.4 Copyright (c) 1991 Menus Explained --------------- Before running into the actual setup and running AcBBS, a little pre-planning will make things run a whole lot smoother. So to begin with, a description of the menus and access flags is in order. First off, if you are familar with OS9's directory structure then understanding menus ia a breeze. OS9's directory structure is tree shaped, only it's an upside down tree, and AcBBS' menus follow a similar format. Take the following figure as an example: MENU0 ------------------------------------------------------------------ | | | | MENU1 MENU2 MENU3 MENU4 -------- ------- ------- ----- | | | | | | | MENU5 MENU6------MENU7 MENU8 MENU9 MENU10----MENU11 As you can see there is a root menu, menu number 0 and from there all other menus branch off of the root menu. Menu numbers need not be in order as shown in the figure, as a matter of fact you will want to limit the menus numbered 1-20 to message bases only. Use menus from 21-99 for any purpose except running the functions for operation of a message base. The reason being that Version 2.4 is limited to 20 message bases and menu numbers 1 thru 20 are the only menu numbers capable of supporting message bases. From the figure Menu1 thru Menu4 is the first level of menus from the root menu, Menu5 thru Menu11 are the second level. How many levels you create are only limited to the maximum amount of menus version 2.4 supports. Each menu level deeper does not require any further amount of system RAM so depth does not become a problem. Each menu is capable of supporting 23 options, so a fully used menu system can support a maximum of 2,300 options! Now each menu is capable of having what is called a bulletin. A bulletin can be used to display information pertaining to the menu. To create a bulletin for a menu all that needs to be done is create a file called BullX.txt, where X is the menu number. The BullX.txt file can be created using a text formatter, word processor or even OS9's build command. Each menu need not have a bulletin, bulletins are optional. It's good to know that bull0.txt, the bulletin for the root menu number 0 is always displayed upon login, all other bulletins are display if the user moves to that menu, and are only displayed the first time a user accesses that menu. With Bull0.txt you can use that buletin to display important information like, the BBS will be down all day saturday, ect. The reason Bull0.txt is always displayed to a user is because after the login process is completed the user 1 Access Color BBS V2.4 Copyright (c) 1991 always ends up at menu number 0. Now a look at access flags, there are a total of forty access flags, depending upon how you configure your system you will set certain access flags for menus and options that will allow a user access to a menu or an option. Look at access flags as if it was a switch. If the switch has been turned on the the user needs that switch set in the userlog, if the user doesn't have that switch set then the menu option is not displayed to that user. Looking at the flags we can number the flags as follows: 0000000001111111111222222222233333333334 Flag # 1234567890123456789012345678901234567890 Flag 0000000000000000000000000000000000000000 For each menu option you will be required to set up the access flags, and each user will be given a default access flag level upon registering as determined by you during the setup process (next section). Now to understand access flags, assume the following conditions for our example, all new registering user will have the first flag turned on (1000000000000000000000000000000000000000). It's a good idea to at least have one flag set so that you can downgrade an access level. Now lets say on our root menu we have options to access the database, access the message bases, access the game area, and logoff. We have decided not to run an "open" BBS. By "open" I mean whether or not we confirm new users. In this case all new users will be confirmed. Let's say on the root menu we have decided that each menu option will require a flag set in order to access that option. Here is how our sample options look with the access flags: Database 1100000000000000000000000000000000000000 Messages 1010000000000000000000000000000000000000 Games 1001000000000000000000000000000000000000 Logoff 1000000000000000000000000000000000000000 Now we had decided all new users would need to be confirmed before opening access to the functions of the BBS. The default flags a user is assigned was the first flag set, all others off. So a new user would only gain access to the logoff function because only access flag one is set for him. Database access requires flag 1 and 2 set, messages require 1 and 3 set, games require 1 and 4 set. Logoff is the only function were flag number 1 is set. If we wanted the user to have access to the games then the user would need both flag #1 and flag #4 set. It doesn't matter if the user had both flag #1 and flag #5 set because none of the options use flag #5. Think of it this way, if an option has six flags set, the user would need the same six flags set in order to gain access to that option. For now sit down and plan out the basic menus, decide whether or not that menu will support a message base. These are some 2 Access Color BBS V2.4 Copyright (c) 1991 important points to keep in mind: ::Always have an exit from the menu, whether it's back to the previous menu or to another menu. ::Make logoff easily accessable, if logoff is several menu levels back people may take the short-cut of just dropping their connection instead of logging off. ::Each menu has predefined keys for certain functions, ie L and G for logoff/goodbye, A for screen mode change, B for bulletin, and X for expert mode. Even though B is the only option that AcBBS sets up automatically for display in a menu, if a bulletin exists for that menu, all the other keys are active but don't display. Try to limit any use of the B key on a menu if you will have a bulletin for that menu. Reason: If a bulletin exists then after all the defined options are displayed AcBBS adds another option called bulletin and uses an access key of B. If you use B for an option and have a bulletin then both your defined option and AcBBS' auto option appear on the menu with the same access key. All the other pre-defined keys will be ignored if you use that access key on your own defined option. Let's do the paperwork for two menus, the main menu, and a message base for the main menu. The main menu will have options to logoff, see the last 20 callers, list the userlog, change the expert mode, access the general message base. The general message base will have options to read, write, scan for newmail, logoff, return back to the main menu, and list the userlog. Use the following format to define the menu structure: What flags will the new registers have set?: Flag #1 set, all others off. Menu0: Will this be a message base (1-20 only)?: No What is the name of this menu?: Generic BBS Main Menu Is there a bullX.txt file?: Yes Options: Name Key Access Flags Set Bulletin B Predefined Logoff L No flags set Display last callers D 1 User log list U 1 Menu Mode X 1 Screen Mode A 1 General Message Base G 1 Comments: New user have access to all options on main menu. Menu1: Will this be a message base (1-20 only)?: Yes What is the name of this menu?: General Message Base (Mail) 3 Access Color BBS V2.4 Copyright (c) 1991 Is there a bullX.txt file?: No Options: Name Key Access Flags Set Return to main menu M 1 Logoff L no flags set User log list U 1 Read message R 1 Write message W 1,2 Scan New Mail S 1 Comments: New users can read messages, but can't write messages For each menu continue to create this form, remember to write down all info about a menu. The next section deals with the actual set up. This information will be needed after setting up the BBS' files. So place it to one side. For a hint of commands see appendix A. 4 Access Color BBS V2.4 Copyright (c) 1991 NOTE: This Documentation Assumes that the User has a Working Knowledge Of OS9 Level II. ************************************************************ Before we get started you will Need to have the following commands installed: A '/DD' Descriptor in your OS9-BOOT SHELL+ V2.1 or higher RUNB, SYSCALL, INKEY, GFX2 (MERGED TOGETHER and in memory) TMODE ************************************************************ Getting Started --------------- Decide where the execution and the working data directories will reside for use with AcBBS. This could be whatever you like for example, you could use your current working directory to hold all your acbbs data modules and your current commands directory to hold all the executable modules. Or you may decide to create a directory which has a commands and a data directory just for the BBS. It's your choice, write down on a piece of paper what the full pathnames are for both the execution and the data directory. As an example suppose we have one hard drive and we decided to create a directory on /H0 called AcBBS and have a working and an execution directory in AcBBS for the BBS. We have decided the names for the directories would be CMDS for the commands directory and DATA for the data directory. Now using OS9's makdir utility create the directories as follows: Makdir /H0/ACBBS Makdir /H0/ACBBS/CMDS Makdir /H0/ACBBS/DATA For our example then the full pathname for the working (data) directory would be --> /H0/ACBBS/DATA, and the full pathname for the commands directory would be --> /H0/ACBBS/CMDS. Decide how you will have the directories set-up and then refer to both pathnames when ever the docs mention commands directory or data directory. Unpak and read the docs on "CD" and get them set. Once you have decided which CD is right for your setup merge that with 'IO' Example: OS9: Merge IO Cd >IO1 Next you will need to copy the following programs to your Commands Directory and set the execution attributes: 5 Access Color BBS V2.4 Copyright (c) 1991 acbbs - System Module acbbs2 - System Module bbs1 - 8k Of merged system modules bbs2 - 8k Of merged system Modules bbs3 - 8k Of merged system modules bbs4 - 8k Of merged system Modules bbs5 - 8k Of merged system Modules bbs6 - 8k Of merged system Modules io - 8k Of merged system Modules filestats - File statistics program sysedit - Remote system editor sysedit5 - System editor rungames - Runs outside programs Now Copy The Following Modules to "/DD/SYS": events.sys - Flag File For Net-Work Mail mailtime.sys - Time Log for Running Events Now copy the following files to your working directory: automess.txt - This is commonly used as a user changeable last message to others logging on. logtext.txt - This is the non-ansi, non-os9, logon screen. logansi.txt - This is the ansi, os9, logon screen. logoff.txt - This is the text file displayed upon logoff. modemio.sys - Modem initialization string. newsletter.txt - As the name indicates this is the newsletter that the sysop uses to inform members of changes, ect. register.questions - Text file that holds the questions asked of users upon registration. Maximum of ten questions. register.log - Log file that holds the answers to the questions in register.questions. register.txt - Text file displayed upon registering for access. trashcan.sys - Illegal or unacceptable names. aclogin2.dat - Login script file. Determines order of login intbbs - Script file loads acbbs modules in memory. Now create a file called AltDir.dat, in that file have on a single line the pathname for your working directory. Using OS9's build command and the example directories from above: Build /h0/acbbs/data/AltDir.dat ?/h0/acbbs/data ? Now if you have not done so you will need to merge RunB, Inkey, Syscall, Gfx2 into a module called RunB. Using OS9's merge and 6 Access Color BBS V2.4 Copyright (c) 1991 attr commands type the following: chx /h0/cmds ** Use your current os9 commands directory merge Runb inkey syscall gfx2 >/H0/ACBBS/CMDS/Runb attr /H0/ACBBS/CMDS/Runb e pe Note: Replace /H0/ACBBS/CMDS with the execution directory you decided to use for the BBS. Note2: If your BBS commands directory will be the same as you OS9 commands directory change the name of RunB to Runb.old first. Then use this command line for merge: merge Runb.old inkey syscall gfx2 >/H0/CMDS/Runb Note3: Runb, Inkey, Syscall, Gfx2 must be in your OS9 commands directory. Finally make sure that the following programs are located in your BBS' execution directory: LS - A single line directory lister. TMODE - OS9's tmode command. COPY - OS9's copy command. AR - A public domain archive utility. **Access Color BBS -- Configuration** Ok now we are ready to start configuring the BBS to your needs. First change your working directory and execution directory to your BBS data and execution directories. Now type: intbbs After a minute or so all the AcBBS modules for the BBS will be loaded into memory. Now from a shell prompt Type: Sysedit5 In a couple of seconds the screen should turn Black and a little window should appear showing BBS credits. Tap a key and the program will tell you that it couldn't Find "/dd/sys/Acbbs.sys". and it will then prompt you for your Main Data Directory. Enter in your BBS' working directory (ie /H0/ACBBS/DATA). You will then be prompted for the File directory(s). These are the directories that will store your files for downloading. For now enter the working directory again, we will cover handling files for down loads and uploads later, then press [ENTER]. NOTE: You Must enter at least One File directory. Once you have completed that, the screen will clear and you will see a small paragraph that mentions how to use the editor. While at this prompt press "S" and a overlay window will appear. Sysedit5 creates the "Config.sys" which has a number of options available. Below is a description of the configuration options: A) # Of Callers : Number of calls the bbs has received B) # Of Downloads : Number of files downloaded. 7 Access Color BBS V2.4 Copyright (c) 1991 C) # Of Uploads : Number of uploads. D) Newsletter : Date that the NewsLetter was last updated. When a user logs on, and his last date online is older then the Newsletter date he will be prompted to view the newsletter. E) Sysop's Name : The Sysop(Owner,Operator) of this BBS F) New User Time : Time that a new user is allowed online each day (1-255). Divide the actual time in minutes, by 5 and enter this value here (ie 60/5=12, enter 12 for an hour limit) G) U/D Ratio : How Many Files can a user download for every file they Upload (1-255) H) Status Screen Clock : If Yes, then a clock will be displayed in the upper left hand corner of the main status window. I) Screen Saver Active : If YES, then the main status window will blank. The main status window blanks after the BBS has been idle for one minute. J) Screen Saver Prompt : If Yes, then when the Screen Saver is active a prompt will appear at random locations on the main status screen when the screen is blanked. K) Phone Number Check : If YES, then when a user Logs on the BBS every one in six logons will bring up an additional security check asking the member to complete the last 4 digits of his phone #. Also if at any time the password is entered incorrectly, the user will be asked to complete the last 4 digits of his phone number. L) Auto Ansi-Detect : If YES, then on terminal packages that support the ansi return cursor position AcBBS will automatically set the screen mode to ANSI. On terminal packages that don't support ANSI codes fully, or no ANSI support is enabled a prompt will ask for the screen mode to use while accessing the BBS. M) New user Access Flags : These are the access flags a new 8 Access Color BBS V2.4 Copyright (c) 1991 user will be given upon registering. Set this to what was decided new users would have from the section dealing with menus. Once you have set the configuration to how you like then hit "Q" to save it. You can at any time edit that configuration by either using Sysedit5 OR from a shell prompt, with the bbs modules loaded, by typing "Fixstats " Next select E for the edit menu, now select U to edit the userlog. Sysedit5 will now ask for the sysop's name, enter your full name here. Next Sysedit5 asks for your password, enter the password you will use as the sysop. Important Note: Make sure you enter the password in all capital letters. Follow the remaining prompts, answer all questions. 9 Access Color BBS V2.4 Copyright (c) 1991 **Access Color BBS -- Menus** Now grab your notes from before and let's get the menus setup, we're getting closer to making a test run of the BBS. We have to create the menus. While we are still in Sysedit5 press E for the edit menu and then M for menus. Sysedit5 asks for which menu to edit, enter 0 so we can set up the root menu. Sysedit5 asks for a menu name, enter the name that your root menu will have (ie Main Menu, Sloppy Joe's Main Menu). Now a new screen appears with the menu name at the top, there is a list of options, the options are: N Name, change the menu name. E Edit an option C Copy an option to a blank option D Delete an option, does as it's name implies. M Move an option, allows you to swap the positions of two options. S Sorts options by Key. Now for each menu you will add you will select the number that has the current name of . Once you do this a new form appears on the screen. See figure: Option : Edit the option's : 1. Name ='' 2. Key =' ' 3. Descrip='' 4. Program='' 5. Params ='' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer. Enter a number or to quit: :::The option's name is just the name that's printed on the screen when the user presses a key and is displayed on the main status window. :::The option's program is the subroutine module that is run when ever that option is selected. For example, an option called "Post" for posting messages, would call the "Enter" program to do its work. :::The options key is just the key that you press to run the option. Make sure that this key does not duplicate another option key. 10 Access Color BBS V2.4 Copyright (c) 1991 :::The descriptions are just a 32 character description that's printed on the menu. When you see something like "Read messages" or "goto file system" that's the description. :::The parameters are special options which as passed to certain modules when they run. For example, any of the modules that deal with the file system (dload,upload,listfile) need a parameter which tells them what directory to go to. See Appendix A. :::Access is determined by an array of 40 boolean flags. When one of the 40 flags is set that means that that option will only appear to users who have that flag set in their user access flags (which also consist of 40 flags). An option can have any number of the 40 flags set, but a user can only view or use that option when he has the same flags set in his userfile. NOTE: You should reserve the menus #1-20 for message bases as those are the only menu numbers that the message bases are able to work with at the present time. The next version should fix that limitation. ====== Please see Appendix A at the end of these docs for information on what parameters you'll need and special conditions for each of the subroutines provided. ====== Below is some examples of using the built in subroutines: Menu - This mod is the program to change to another menu the param is the number of menu to change to. The following is an example of a menu option to change to the games menu. The game menu is menu number 34 in this example. Option :games 1. Name ='Games 2. Key ='G' 3. Descrip='online game menu' 4. Program='menu' 5. Params ='34' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer The color of the access flag will tell you if it is on or off. Listtext - This is a program to list text files. The file can contain acbbs color codes and it will turn them to colors if the user has ansi or os9 on. If the user has ascii on, it will strip these codes and a user will never see the codes. In the following example listtext will be used for the newsletter. 11 Access Color BBS V2.4 Copyright (c) 1991 Option :newsletter 1. Name ='newsletter' 2. Key ='N' 3. Descrip='list news letter' 4. Program='listtext' 5. Params ='newsletter.txt' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Enter - This mod is used for entering a message in a base. The following example is using enter to enter a message into message base number 1, that is being used for the os9 sig. This option would appear on Menu1. Option :enter 1. Name ='enter' 2. Key ='E' 3. Descrip='enter a os9 message' 4. Program='enter' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Read - This mod is used to read a message from a message base. The following is a example like the enter above. This would also be on Menu1. Option :read 1. Name ='read' 2. Key ='R' 3. Descrip='read os9 messages' 4. Program='read' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Newmail - This mod checks for new messages in all message bases read by the user. Note: the user must have read from a base before this will work for him. Option :new mail 1. Name ='new mail' 2. Key ='N' 3. Descrip='check for new messages' 4. Program='newmail' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer 12 Access Color BBS V2.4 Copyright (c) 1991 Download - This mod is used for a file base to download files. The following is an example of download used in the os9 sig. Option :download 1. Name ='download' 2. Key ='D' 3. Descrip='download a os9 file' 4. Program='download' 5. Params ='/dd/bbsfiles/os9' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Upload - This mod is used for a file base to upload files. The following is an example of upload used in the os9 sig. Option :upload 1. Name ='upload' 2. Key ='U' 3. Descrip='upload a os9 file' 4. Program='upload' 5. Params ='/dd/bbsfiles/os9' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Listfile - This mod is used to list available files in a file base. The following is an example of listfile used in the os9 sig. Option :list files 1. Name ='list files' 2. Key ='L' 3. Descrip='list os9 files' 4. Program='listfile' 5. Params ='/dd/bbsfiles/os9' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Findfile - This mod is used to find a file in a file base. The following is an example of findfile used in the os9 sig. Option :find file 1. Name ='find file' 2. Key ='F' 3. Descrip='find an os9 files' 4. Program='findfile' 5. Params ='/dd/bbsfiles/os9' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer 13 Access Color BBS V2.4 Copyright (c) 1991 Logoff - This mod logs a user off the system. Note: If there is no menu option L or G on a menu and a user hits the L or G it will log them off that way also. Option :logoff 1. Name ='logoff' 2. Key ='L' 3. Descrip='logoff system/goodbye' 4. Program='logoff' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Ansi - Will toggle ansi/ascii/os9. Option :toggle 1. Name ='toggle' 2. Key ='A' 3. Descrip='toggle ansi/ascii/os9' 4. Program='ansi' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Xpert - Expert mode toggle. Option :xpert 1. Name ='xpert' 2. Key ='X' 3. Descrip='expert mode toggle' 4. Program='xpert' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Chat - Pages sysop for a chat. Option :chat 1. Name ='chat' 2. Key ='C' 3. Descrip='chat with sysop' 4. Program='chat' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer AcLastusers -Lists the last 20 callers. Option :lastcall 14 Access Color BBS V2.4 Copyright (c) 1991 1. Name ='lastcall' 2. Key ='L' 3. Descrip='list last 20 callers' 4. Program='lastusers' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Userlist - Lists the bbs's users. Option :listusers 1. Name ='listusers' 2. Key ='L' 3. Descrip='list users' 4. Program='userlist' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Userutil - User stats editor for use by users to change their stats. Option :changstats 1. Name ='changestats' 2. key ='Y' 3. Descrip='change your settings' 4. Program='userutil' 5. Params ='.' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Rungames - Used for running online games. In the following example rungames is used to start a game called hangman. Option :hangman 1. Name ='hangman' 2. key ='H' 3. Descrip='play hangman' 4. Program='rungames' 5. Params ='hangman' 0000000001111111111222222222233333333334 6. Access ='1234567890123456789012345678901234567890' P. Print menu to printer Now after creating each menu, press enter until you get back to sysedit5's menu line. Now press E to edit and I to initialize the message bases. For each menu you created that will have a message base enter the menu number. Repeat this process until all the menus you want message bases on have been initialized. Remember only menus 1 through 20 can have message bases. 15 Access Color BBS V2.4 Copyright (c) 1991 Configuring your system. There are files here that need to be edited to configure your system. Automess.txt: This is the auto message, you need to edit this and put a message the users will see after they log on. Logtext.txt: This is the logon message the users will see before they log on to the BBS. This is the file for ASCII type terminals and may not contain color codes. Logansi.txt: This is the logon message the users will see before they are asked to login. This file is used for terminals using ANSI or OS9 graphics modes. Can use color codes. Logoff.txt: This is the message the users will see when they logoff the BBS. May contain color codes. Modemio.sys: Initialization string sent to your modem when the BBS is first started and each time a user logs off the BBS. Newsletter.txt: Changes, updates, and other notices should go into this file. Each time you update this file you should update the newsletter date using fixstats. Color codes may be used. Register.log: This file keeps the names of all new users and dates and times for new registers. You can delete this when it gets big and it will be created by the bbs the next time a new user logs on. Also will contain all the answers to the questions found in register.questions. Register.txt: This file holds info for new users to read before they fill out the registration form. Use this file to explain BBS policy, ect. May use color codes. Trashcan.sys: As it name implies all the trash user names and banned user names should be kept here one to a line. When a new user selects R to register this file is checked to see if the name the user is using is in trashcan.sys. If found that user is not allowed to register and the BBS hangs up. Mailtime.sys: This file contains three run dates and is used for the Network mail package. Although Network 16 Access Color BBS V2.4 Copyright (c) 1991 mail is not included with AcBBS Ver. 2.4, you can use the third entry to automatically run FileStats on a daily basis. More on this in the section dealing with advanced features. NoTime.txt : This is the text file that is listed to an user when his time has expired. May use color codes. Aclogin2.dat: This is the login file order. It determines in which order functions run during login and is configurable by you. Until you are comfortable using AcBBS it is recommended that this file be left as-is. After you have an understanding of AcBBS then read Appendix C on how to customize the login order. Register.Questions: Contains the questions asked of a new user upon registeration. May contain a maximum of ten questions. No color codes. For the color codes and the usage of the color codes refer to Appendix B. You can use the pre-defined files as is, but to personalize the BBS you should change these files. 17 Access Color BBS V2.4 Copyright (c) 1991 Running and local logins The BBS requires an 80 column type 2 window to start from, it must be initialized and have a shell running in it. For our example we will assume window 7 (hardware type 80 column) will be the window we start the BBS in. Switch to /w7 and then set your working directory to your AcBBS data directory and your execution directory to your AcBBS execution directory. Now type intbbs to load in the modules ACBBS will need. When complete then type RunBBS. AcBBS will respond with "What window is for status?". You may reply with any non initialized window, I use /w15 the last window descriptor I have, you may use any free window (non-initialized, no shell running). Now the window you started AcBBS is your secondary status window, here will be displayed all timed activities , all connections , all dropped connections , ect. It is recommended that you don't run AcBBS concurrent in your secondary status window, the no-block feature does not perform correct all the time and you may experience lock-ups, um actually, users may experience lock-ups during the login process. Now hit the clear key until you reach the main status window. The main status window will display the version of AcBBS running, the last ten callers, and a flashing message stating it's waiting for callers. When a user logs on to the BBS your main status window divides into several sections. The first is a block across the top of the screen showing the connect time and the baud rate, just below that block is another in Red, showing the current members stat's (name, password, ect), the remaining screen divides into three more blocks, the left half is the main activity area, here all the member's activity are displayed, from what keys he has selected, the current menu he is on, ect. The right hand is divided in a magenta box (top half) and dark blue box (lower half). The magenta box is the secondary activity window and displays what is going on when certain options are selected (ie Downloading, shows searching for the file, the number of blocks downloaded, the number of errors encountered during downloading, ect). The dark blue box shows the current time, screen mode, time user has been online, time remaining. From your main status window you can control the user as if the user was controlling things from his end. Just press and hold the ALT key and then press the key as if you were the user on the BBS. Originally you didn't need to hold the ALT key, but Chris' cat was a CoCoNut too, and before long whenever the cat heard the modem connect it was up on the keyboard typing, throwing the user into total confusion. Doing a local login is easy, there are two separate commands to do a local login, login and local. 18 Access Color BBS V2.4 Copyright (c) 1991 Before using either command you will need two type 2, 80 columns windows, one with a shell in it the other without a shell, but defined and initialized. From the window with a shell (assuming all AcBBS modules have been loaded using intbbs) type login, login then replies with "status window?". Reply with the other type 2 window. From this point you will be doing a login just as if you had called, but the BBS will still be able to accept callers with no conflict between your login or the caller. The second command local will not allow user to call in, it shuts the modem off, sends out a speaker off command and takes the modem off hook. This can be used to prevent callers from calling during the addition of new software, ect. As sysop the login process will remain the same as a caller except for one prompt. You will be asked if you want this call to register in the last callers list. This is nice because it doesn't taint the number of callers and allows testing without showing several calls from the sysop. You can choose to register or not to register in the last callers list the choice is yours. If you cannot login, user cannot login, go back over the entire setup and make sure you have followed everything. If you continue to experience trouble, then help is a phone call away. Two spots are available for immediate help, the Dutchess CoCo, (914) 838-1261, or the Applause BBS (203) 754-9598. Contact or leave mail to either Chris Serino ( on the Dutchess) or Carmen Izzi Jr. (on the Applause). Either is willing to offer assistance, as well as all the other AcBBS sites listed in the logoff.txt on either BBS. From this point read the section on setting up for downloads and uploads, then proceed onto the advance features section. For those who are programmers, read the technical section for tips on interfacing to AcBBS. Call and register on either the Dutchess CoCo or the Applause BBS. There is a wealth of add-on programs for such things as a voting booth, private mail from the sysop, adding a true guest account, ect. 19 Access Color BBS V2.4 Copyright (c) 1991 Files: Uploads and Downloads Uploads and downloads are simple to add, you may have even created menu options for it already, but there is some background information which needs to be discussed before actually setting up. Decide where you would want your files to reside, files can be on any device in any directory. For an example what I did was on the hard drive I use for the BBS I create a separate directory for each group that would have uploading and downloading functions. Now I opted to split uploads and downloads into several categories, for example all uploads go into a directory called HOLD, uploads confirmed but under thirty days on the BBS go into a directory called NEW, then those files over thirty days go into specific directories, ie GAMES, APPLICATIONS, UTILITIES, PATCHES, MUSIC, ART, TELCOM. You could just as well have everything in one directory, or have the NEW, OLD, and HOLD. The design is totally up to you. Let's continue with my example and we shall create the directories needed, first off the COCO files go into a directory called COCO, so on /h1 I created a directory called COCO, and then created sub-directories for each of the categories mentioned above so a directory of COCO shows: Directory of /H1/COCO APPLICATIONS ART GAMES HOLD MUSIC NEW PATCHES TELCOM UTILITIES GroupsList.sys Ignore the groupslist.sys file for now more on that later. Now fire up SysEdit5, press the spacebar to clear the copyright notice. The press E to Edit, and F for Files. Two overlay windows will open and you will be prompted for a two character directory code. There should be one already defined, AA and it should be pointing to your AcBBS Data directory. We did this earlier in the setup so that AcBBS would not choke, now let's delete this entry. Type YY and then Sysedit5 asks for a two character directory code to delete, respond with AA [Note: After pressing the two character code you do not need to press enter]. Sysedit5 deletes the directory, the two overlay windows clear and come back up and SysEdit5 again asks for a two character directory code. Now supply it with XX, it ask for a full pathname to the file's directory. For our example we will supply /H1/COCO/APPLICATIONS. Sysedit5 will create the necessary files, continue to do this for each file area you have decided to setup. Now we have all the files setup, but we need to discuss a file called GroupsList.sys. For uploads and downloads you can, if using my example create a separate download for each area , or have an option to list what is in each area and then 20 Access Color BBS V2.4 Copyright (c) 1991 have a single download function on that menu. This is accomplished by using a file called groupslist.sys. What groupslist.sys contains is path names to search when looking to download a file, so for the download option on the menu I used the program called Dload, and the param was the pathname to the coco directory (ie /H1/COCO). What happens is dload first looks for a file called groupslist.sys, if it finds it it knows that there is a listing of pathnames to search when looking for a file to download. If there is no groupslist.sys file then dload looks for a file called fileslist.sys. If neither exist then dload error outs. We just created all the fileslist.sys files in the above paragraph using sysedit5, now we shall create the groupslist.sys file. Using OS9's build command, and our current example type the following (remember replace your filenames where needed, also if you have only one directory that you download from then just feed the param in the menu option with the full pathname to that directory. There is no need for groupslist.sys files then.) Build /h1/coco/groupslist.sys ?/h1/coco/applications ?/h1/coco/art ?/h1/coco/games ?/h1/coco/music ?/h1/coco/new ?/h1/coco/patches ?/h1/coco/telcom ?/h1/coco/utilities ? to end build session Now what happens is that dload will search each of these paths until it finds the file that is needed to download. You keep downloads organized by categories and everyone is happy. Oh, I see a hand in the back, yes, "What about uploads, do we specified the same parameters?". Geez, always someone jumping the gun, "Sir, No, now sit down, shut up and pay attention, please!". Handling uploads will be done in a similar way, only the groupslist.sys file will be in /H1/COCO/HOLD, and the very first line must have the pathname to the HOLD directory, here's the sample build session: Build /h1/coco/groupslist.sys ?/h1/coco/hold ?/h1/coco/applications ?/h1/coco/art ?/h1/coco/games ?/h1/coco/music ?/h1/coco/new ?/h1/coco/patches ?/h1/coco/telcom ?/h1/coco/utilities ? to end build session Now the parameter for the upload option shall be /H1/COCO/HOLD. 21 Access Color BBS V2.4 Copyright (c) 1991 Here is what happens, upload looks for a groupslist.sys file first, if it finds it it then looks in each pathname for the file name that is being uploaded, if it finds a matching filename the user is told that the file already exists, it might not be the same file, but prevents duplicate names from occurring. Now if it doesn't find a match it then will upload the file into the first pathname specified in the groupslist.sys file. That's the reason the hold directory must be first. Now if you don't split files in cateogories, still use a groupslist.sys file for uploading to prevent duplicate filenames (that's assuming you have at least an upload directory and a download directory). Hopefully that explains the use of groupslist.sys file. Now it's time to throw a monkey wrench into the works. There is yet another use for the groupslist.sys file when that file is found in the AcBBS data directory. To make matters worse , the file format is different. Well these are in fact two different files, the only thing in common is the name. GroupsList.sys for Filestats: The program filestats requires a file called groupslist.sys to appear in the AcBBS data directory. It's format is: pathname Description To take our example we would create GroupsList.sys with the following information: /h1/coco/applications CoCo Application files /h1/coco/art CoCo Picture Files so on and so on .. Now some basic things, the pathname must exist and must contain a fileslist.sys file . If not filestats will error out. The description is limited to 40 characters or it will throw off the file created by filestats for listing on the BBS. Now once the groupslist.sys file is created and placed in the AcBBS data directory, then make sure that the working and execution directories are set to the AcBBS ones. Now type Filestats, in a few minutes filestats will complete and a new file will exist in the AcBBS data directory. Use an option on your menu using the program ListText and the parameter *FileStats.txt* . Now all the number of files available for downloading can be seen in one stat file. Please step down the corridor onto advanced features. 22 Access Color BBS V2.4 Copyright (c) 1991 o Allows separation of Menu and Bulletin files from main data directory. o Allows auto running of Filesats program. o Allows Sysop the option to create menu layouts or use of the default menu layouts. o Allows Sysop the option of screening usernames before granting access to the board. Separate directory for Menus and Bulletins ------------------------------------------ Note: Originally we had specified that this file point to the AcBBS data directory. AcBBS now allows the Sysop to put the menu files and the bulletin files into a Separate directory. This is useful in two ways. For one it helps to reduce the amount of files already packed into the main AcBBS data directory. The second reason is it allows the sysop to place the menus onto a ramdisk for faster loading of the menus. All you need to do is move all the menuX.sys, menuX.txt, and bullX.txt files into any other directory of your choice. Then create a text file in the main data directory that contains the new directories name. As an example I moved all these files into a directory called Menus on my hard drive /H1. Then while in my main AcBBS data directory I used OS9's build command as follows: OS9:Build AltDir.dat ?/h1/menus ? Now when ever someone logs onto my BBS, AcBBS looks for the menu and bulletin files in /h1/menus instead of /h1/access [My main AcBBS data directory]. You could have placed all the files onto a ramdisk instead of /h1/menus and specified the ramdisk name in place of /h1/menus above. Auto running of FileStats program --------------------------------- The Sysop now has the option of running the FileStats program automatically each day. This option can be turned on or off at any time. To make the FileStats program run automatically just specify in line number 3 of the mailtime.sys file a current date and time that you would like FileStats to run. After FileStats is 23 Access Color BBS V2.4 Copyright (c) 1991 run AcBBS will update the date by 24 hours. To enable the auto-running of FileStats with a text editor load the mailtime.sys file found in directory /DD/SYS. Change the date on line number 3 to the date and time you want FileStats to run. Once you have done this kill the BBS and then restart it. As an example : suppose today was June 1, 1991, and the time was 6:00 PM, and we want FileStats to run at 1:00 AM every day. With a text editor change line number 3 of mailtime.sys to 91/06/02 01:00. Stop the BBS and then restart it. When 1:00 AM rolls around the BBS will run filestats, change the date in mailtime.sys to 91/06/03 01:00, and restart AcTsmon to wait for a caller. The time is in military format, so for any time after 12 noon add 12 to the hour, midnight is stated as 00:00 and not 24:00. So to specify 6:00 PM you would use 18:00 hours. Sysop created Menus ------------------- The Sysop now has the choice of using the internal default menu or to create one of their own. If you would like to create a custom menu, just fire up any text editor and create a menu file called MenuX.txt where X corresponds to the menu number you are creating. For example we want to make a custom menu for menu number 0. In the directory where your menus are located [Note: The default directory is the AcBBS main data directory, unless you specify a different directory in AltDir.dat] start your text editor with a filename of Menu0.txt. You can use any of the special '@' codes to set the color, underline, ect. A sample menu is shown below: OS9:List Menu0.txt ********************* * M A I N M E N U * ********************* ************************************ * G - Groups M - Message Bases * * L - Logoff B - Show Bulletin * * C - Chat A - Mode Change * ************************************ OS9: A few notes: o If access levels are different for each users you 24 Access Color BBS V2.4 Copyright (c) 1991 will need to have all options defined in your custom menus. Or use the default menu defined by SysEdit5 o You still need to use SysEdit5 to define the menu options, AcBBS will use any MenuX.txt over the default menu. o You will have to add any option that SysEdit5 automatically creates to the MenuX.txt file, such as the (B)ulletin option that AcBBS adds when a bullX.txt exists for that menu number. TrashCan.sys file ----------------- Version 2.4 and above allows the Sysop the option to create a file called TrashCan.sys in the AcBBS main data directory. If this file exists then Login will scan through it after it fails to find a username in the userlog. Uses for this file are for checking names which are unacceptable for use in registration, banned users from the system, ect. To create this file, with your working directory set to the main data directory for AcBBS use a text editor to create a file called TrashCan.sys. Type each unacceptable name one to a line, then exit your text editor. AcBBS will check for this file automatically and scan through it for matches when it can't find a name in the userlog. Using OS9's build command we will create the TrashCan.sys file. OS9:Build TrashCan.sys ?fu** [Note: * censors out letters to keep this clean] ?fu**face ?motherfu***r ?Jane Doe [Note: A trouble maker we deleted from the userlog.] ? OS9: If a name entered during login matches any names in this list, then AcBBS will display a message that the name is unacceptable and immediately log that person off your BBS. Future version of SysEdit5 will prompt the Sysop to add any names deleted from the userlog to the TrashCan.sys file if it exists. 25 Access Color BBS V2.4 Copyright (c) 1991 Technical Reference Other procedures and parameters passed: ------ RUN Pal *>sets display to ANSI palette<* ||No parameters ------ ------ RUN achat (TimeLef,Userl,UsNum) *>Enters Chat mode<* TimeLef : INTEGER; time left online (TimeOnl in Acbbs) Userl : STRING[239]; userlog entry (can anything that has 239 bytes in it). "Userl(239) : BYTE" would work. UsNum : INTEGER user number ||The parameters can be omitted. In that case, achat will not be able to reload the user info or set the time online. ----- ----- RUN gtln (String,Mask) *>Inputs a line of text<* String : STRING [80]; string to receive the input Mask : INTEGER Mask byte for passwords ||if Mask <> 0 then that charcter is echoed, instead of the inputed text ----- ----- RUN scan(String,TimeLef,Userl,UsNum) *>Scans for char<* String : STRING[1]; String to receive charcter TimeLef : INTEGER; same comments for these as Userl : STRING [239]; above..passed to achat when UsNum : INTEGER Sysop presses ALT-C ||The last 3 parameters may be omitted. If they are, achat will not be able to update the user info or the time online when the sysop breaks into chat. ----- ----- RUN Filsiz(Path,Length) *>gets size of disk file<* Path : BYTE; Path number of disk file Length : REAL variable to hold length ||no comment(hehe) ----- ----- RUN uplow(String) *>Capatilizes strings<* String : STRING[?]; String to be capatiziled ||Used by login and the message subroutines on the names of users. ----- ----- RUN upper(String) *>changes a string to all uppercase<* String : STRING[?]; String to be uppercased ||Used by almost all the procedures to make sure the user enters the right character. 26 Access Color BBS V2.4 Copyright (c) 1991 ----- ----- RUN pt(String,Ansi,Flag,) String : STRING[?]; String to output Ansi : INTEGER; Ansi/OS9/TTY Flag Flag : INTEGER Flag to enable processing ||Ansi=0 for TTY,1 for ANSI,2 for os9. If flag is <> 0 then the "@" codes will not be processed out. ex: RUN pt("@C3hello",ansi,1) prints "@C3hello" instead of just "hello" in yellow. ----- ----- RUN pta(String,Ansi,Flag,Buffer) String : STRING[?]; String to output Ansi : INTEGER; Ansi/OS9/TTY Flag Flag : INTEGER 0=process codes 1=raw output Buffer : STRING[250] Buffer space ----- ||This is the same as 'pt' above but was written in assembler and is about four times faster but requires the extra buffer. Parameters passed and variable structures used: Structures: BASE 1 ||Userlog entry: TYPE Userlog = Name:STRING[20]; Password:STRING[10]; Access(40),Xpert:BOOLEAN; LastDate:STRING[17]; LastMess(20),Dls,Uls:REAL; Time:BYTE; Phone:STRING[10]; Place:STRING[20]; Computer:STRING[10] ||Statistics File: TYPE Statistics = Callers,Uls,Dls:REAL; LastCall(20):STRING[20]; LastDate(20):STRING[17] ||FileList entry TYPE FileDes = FileLen:REAL; FileName:STRING[32]; Uploader:STRING[20]; Dloaded:INTEGER; DateUp:STRING[17]; Descrip:STRING[80] ||Message base entry TYPE MessageLog = From,Rec,Title:STRING[20]; Private,Recvd,Killed:BOOLEAN; DateM:STRING[17]; StartM:REAL; LenM:INTEGER; MNumber:REAL ||Menu file entry TYPE MenuFile = OptionN:STRING[10]; OptionK:STRING[1]; OptionP:STRING[15]; OptionD:STRING[30]; Para:STRING[40]; OptAcc(40):BOOLEAN ||Configuration File TYPE ConfigFile = NewAcc(40):BOOLEAN; SysopN:STRING[20]; NewTim, Ratio:BYTE Format for important BBS files: ||Menu File The menu file is basically just a list of menu entries. Very 27 Access Color BBS V2.4 Copyright (c) 1991 simple. The last entry is called "End" and that tells AcBBS that the entry before it is the last menu entry. ||File list The file list is just a list of file entries. Nothing majorly complex about this either. ||Groups list The GroupsList.sys file is just a list of files directories used to access a bunch of file areas as a group. ||Message base The message base consists of two files. One is a .sys file the other is a .txt file. The sys file is a list of message log entrys. The .txt file consists of the text for all the messages. The sys file references the txt file by using absolute locations (StartM) and the length of the message in lines (LenM). When reading messages, the program seeks to the exact location in the txt file specified by (StartM) in the sys file. Then it reads in LenM number of lines. When referencing by number, the program does not use the message entry's location in the sys file, but the number that is in the entry. This makes message searching for the right location to start reading the messages slower, but it also gets rid of having to update the message base pointer for each user when you pack or shorten the message base. Parameters passed to every subroutine option module: PARAM Ansi:INTEGER; Userl:UserLog; MenuNum:INTEGER; OptParam:STRING[40]; Usnum:INTEGER; yy$:STRING[255] Ansi | Ansi/OS9/TTY flag 0=TTY,1=ANSI,2=OS9 Userl | Users userlog entry MenuNum | Current Menu number OptParam | Parameters defined in menu entry UsNum | User's User Number yy$ | A Buffer passed to programs to save variable space (used mostly for pta) To run a program directly from the menu it must not exceed an 8,000 byte block and it data must not exceed 1,900 bytes. If it does then use a "frontend" program, have the menu call the frontend program and the frontend program call the procedure through a shell. Pass the parameters in the shell statement. 28 Access Color BBS V2.4 Copyright (c) 1991 <<< Misc. Notes >>> :::Breaking into chat. The BBS will now break into chat when it is waiting for input, not only when it arrives at an input call. :::Other Basic09 Programs. If you wish to run AcBBS in the background with other basic09 programs which use modified RunB modules and Gfx2,SYscall,inkey modules.. Just run the other programs first before running AcBBS. AcBBS doesn't use a modified RunB, so it will work perfectly with other programs that merge runb with other modules, AS LONG AS the runb doesn't go over 16k and the gfx2/syscall/inkey module is either merged with runb or does not go over 8k by itself. :::Your own procedures. You may add your own procedures and even modify some of the source code of the BBS as long as you still give me credit for my modules. The modules you create on your own are all yours, and you can do whatever you wish with them. If you develop some great new module, please feel free to notify me, and I'll add it to the BBS package and give you lots of credit. :::Aciapak lockups. Included in the archive is Bruce Isted's Sacia driver and descriptors. Thanks to Bruce for allowing us to use the descriptors and drivers. You will need to replace the stock Aciapak with the sacia driver that fits your need. For those with rs232 paks that don't allow auto-bauding then switch on the cable between the modem and the rs232 pak, pins 6 and 8. Then set the xtyp to 85, using the new xmode from Bruce's package. :::Dload/Upload protocols. You may use other dload/upload protocols besides the XModem & Ymodem I have provided. Just look at the source for Dload & Upload for details on how to do this. :::New message search. The system bases the new message search on what bases in which a user has a last message count larger than 0. This means that if a user doesn't read any messages from a message base, he will not get a listing of the new messages for that message base. This feature is used to the users advantage in modules like "userutil" which allow the user to actually select what message bases will display on his new messages list. You must be aware of this when you ever decide to take a message base off the bbs, or replace it, or downgrade a user's access. You MUST set the new message count for the user or users to 0 in that message base as well as changing his or their access. Or else, the message base will display in their new message check, or cause the BBS to error out because it cant find the message base. 29 Access Color BBS V2.4 Copyright (c) 1991 Appendix A: Menu Options <<< Included subroutines and their parameters >>> Use these listings to help create the menu options using the parameters each of these need. Subroutine | Parameter | Notes --------------------------------------------------------------- Automess | . (null parameter) | Automessage edit Ansi | . (null parameter) | Set screen mode Chat | . (null parameter) | Chat option Dload | full pathname to files dir | downloads files Dooracc | One line Shell Command | runs ext. prog. Enter | . (null parameter) | uses menu number FindFile | full pathname to files dir | Finds Files AcLastUsers | see note 1 below | Lists last callers ListFile | full pathname to files dir | Lists files ListText | full pathlist of file | See Note 6 Logoff | . (null parameter) | Logoff system Menu | menu number to go to | Go to another menu Newmail | . (null parameter) | Checks for new mail Read | . (null parameter) | uses menu number Update | menu number to go to | See note 4 Upload | full pathname to files dir | uploads files Userutil | . (null parameter) | User status Userlist | . (null parameter) | Userlog list Xpert | . (null parameter) | Xpert menu mode --------------|-----------------------------|-------------------- Notes: Note 1: On AcLastusers the parameter can be specified in two ways, the first is use a number to display how many last users. Example using 20 as the parameter display the last 20 callers. To give the user a choice of how many to display proceed the parameter with an hyphen. Example -20 will prompt the user to enter how many last callers to display (from 1 to 20). AcLastUsers will display the maximum number of last callers if you specify an amount greater then what has been recorded. Note 2: Dooracc runs an external program through the shell. Usually you will want to kill the extra shell that's generated when Dooracc runs a program by using "ex". An example of a dooracc option parameter to run an online game: "ex runb trek". Dooracc will run a Basic09 packed program called "trek". Note 3: When you have a file section, usually you will need all four procedures "Dload","Upload","ListFile","FindFile". Remember! Dload does NOT list the files online when it asks for a filename. You must have Listfile somewhere on the menu to do that. Note 4: Update and menu preform the same function, both allow 30 Access Color BBS V2.4 Copyright (c) 1991 changing to another menu. Only update will update the userlog. Use update in the place of menu on any menu which has a message base. This way if the user exits after reading and replying to messages and hangs up instead of logging off the pointers for that message base will be updated. Note 5: Most subroutines provided do not need a parameter, but in order to work properly you must supply a null parameter. The null parameter used is the character for a period. So for every option above that has . (null parameter), supply a period as the parameter. Note 6: Listtext will pause every 23 lines and once at the end of the file if asterisks proceed and follow the pathname. Example in the parameter line for newsletter.txt if you specify it as *newsletter.txt, then it will pause every 23 lines, or as newsletter.txt*, then listtext will pause once at the end. If you use both asterisks then listtext will pause every 23 lines and once at the end. On full pathnames you must have the asterisk at the beginning and at the end for the type of pause you want (ie */h1/textfiles/newsletter*). 31 Access Color BBS V2.4 Copyright (c) 1991 Appendix B Colors The color codes for text are as follows. 0 - Black 4 - Blue 1 - Red 5 - Magenta 2 - Green 6 - Light blue 3 - Yellow 7 - White @C# - Foreground color, where # ia a number 1-8. @B# - Background color, where # is a number 1-8. @U - Underline on. @F - Flash on. @Xxy - Puts the cursor at the x+32,y+32 you want. See Note 1 below! @D - Turns off uderline and flash, reset foreground to white and background to black. To display an @ character or to disable a code to print in a message use a double @. Example "@@C1Red" will be displayed as "@C1Red", Where "@C1Red", a single @, displays the word "Red" in the color red. A single @ will be displayed if you use @@. Example "this is an @ character" displays as "This is an character" where, "This is an @@ character" displays as "This is an @ character". Note 1: Using the @X command is easy. PTA was modified awhile back when version 2.3 was out, but it was never included in version 2.3. Much mystery surrounded the use of @X and not many sysops used the cursor positioning command. I have come to explain the use of @X and "de-mystify" it's operation. @X requires to ASCII characters to position the cursor. One handles the x direction and the other handles the y direction. The x direction is the column and the y direction is the row. The x direction runs from 0 to 79, and the y direction goes from 0 to 23. This covers any character position on an 80 character by 24 line screen. Now to position the cursor at the upper left hand corner, position 0,0, we would need to look up on Table 1 the ASCII character that would equal position 0. From the table the ASCII character used to specify position 0 is the "space" character. So we would the use @X"space""space", the "space" should be thought of as a ASCII space . An example to print "Sloppy Joe's BBS" starting at position 0,0 would be: [---|----|----|----] @X Sloppy Joe's BBS Notice the two spaces after the X, that indicates that we want the text "Sloppy Joe's BBS" to start at position 0,0 . Now suppose we had wanted to print that same text 10 lines down and 30 characters in, we would then subtract one from the x (characters in), and the y (lines down) positions to arrive at the right area. Remember the numbering is from 0 to 79 and 0 to 23 for the x and y, respectively. Now from Table 1 we would look up the ASCII code need for an x position of 29 and a y position of 9, which is = for x, and ) for y. Now to print 32 Access Color BBS V2.4 Copyright (c) 1991 "Sloppy Joe's BBS" we would use: @X=)Sloppy Joe's BBS Simply enough. For what every position you want it's a matter of looking it up in the table. Codes beyond 23 will not work for y. I expect to see lot's of fancy ANSI displays now that the mysteries surrounding the @X command have been removed. Table 1 Position ASCII Char Position ASCII Char 0 40 H 1 ! 41 I 2 " 42 J 3 # 43 K 4 $ 44 L 5 % 45 M 6 & 46 N 7 ' 47 O 8 ( 48 P 9 ) 49 Q 10 * 50 R 11 + 51 S 12 , 52 T 13 - 53 U 14 . 54 V 15 / 55 W 16 0 56 X 17 1 57 Y 18 2 58 Z 19 3 59 [ 20 4 60 \ 21 5 61 ] 22 6 62 ^ 23 7 63 _ 24 8 64 ` 25 9 65 a 26 : 66 b 27 ; 67 c 28 < 68 d 29 = 69 e 30 > 70 f 31 ? 71 g 32 @ 72 h 33 A 73 i 34 B 74 j 35 C 75 k 36 D 76 l 37 E 77 m 38 F 78 n 39 G 79 o 33 Access Color BBS V2.4 Copyright (c) 1991 Appendix C : AcLogin2.Dat file Command Comment * - Use '*' as first character for comments STATS - Prints bbs & users stats PRINT - Prints a blank line or if followed by a string prints the string, string must be in quotes PAUSE - Uses scan (pauses until key is pressed) LIST "Disclaimer.txt" - Uses Listtext NOTE "Updating Userlog..." - Prints to main status window PUT "UserLog" - Updates UserInfo RUN1"GHandler" - This passes parameters (Ansi,UsNum,TimeLeft:INTEGER) to the program specfied in the quotes. GET "UserLog" - Gets UserInfo from userlog. REGISTER? - Asks if you want your call to register in the * 'Last Callers List' if all flags are set. NEWMAIL - Asks to scan for new messages. NEWSLETTER - Asks to display newsletter when the newsletter date has been updated. PARAM="." - The Param passed to the Menu Runable Program, use this with RUN2 command. RUN2 "StdTypeProgram" - Runs a standard AcBBS Menu Runable Program as if it was on a menu, use the PARAM command to pass the parameter. SHELL "dir" - Uses 'SHELL' to run a program Note: Order does not matter but the PUT "Userlog" command must be done. To run programs during login use either the RUN1 or RUN2 command, each passes different parameters. 34 Registration Form For AcBBS Version 2.4 Name:________________________ BBS Name:______________________ Street Address:_________________________________________________ City,State,Zip:_________________________________________________ Voice Ph. Number(____) ____-____ BBS Ph. Number(____) ____-____ BBS Hours Of Operation:_________________________________________ Baud Rates Supported :__________________________________________ Your Hardware Configuration :___________________________________ Type Of Software BBS supports:__________________________________ Where did you obtain This BBS package from:_____________________ What type of Registration Are you applying for? ( ) BBS software ($25.00 Registation Fee) ( ) Network Mail Software ($10.00 Registraition Fee) ( ) Complete AcBBS Software Package: Contains All Disks, Printed Manual and Registations For BBS & Network Mail ($40.00 Fee) All Forms of registration entitle You to Free Software Upgrades for a period of AT LEAST 1 year. If Registering for Network Mail Which Echo's do you wish to Carry Check ALL that Apply ( ) CoCo Echo ( ) OS9 Echo ( ) General Message Echo ( ) IBM Echo ( ) Buy & Sell Echo ( ) AcBBS Sysops ONLY Echo ( ) StarTrek Echo ( ) Dungeons & Dragons Echo Make Checks Payable to: Chris Serino Mail to: The DUTCHESS COCO co. Chris Serino 22c Chelsea Ridge Dr Wappingers Falls, Ny 12590 Amount Enclosed $__________________ Singned__________________________ Date_______________________ =============================================================== Office Use Only Date recieved:_______________ Assigned Node #________________ Date sent:_______________________