******************************************* * * * |\ /| /\ \ / ' __ __ __ __ * * | V | /__\ X (_ |__)|__)(_ * * | | / \ / \ __) |__)|__)__) * * * * Version 1.00 14-Jul-91 * * * * Created by Anthony Barrett * * * ******************************************* Copyright © 1993 by Anthony Barrett CONTENTS -------- 1. INTRODUCTION.................................................. 1 2. INSTALLATION.................................................. 3 Hard drive installation....................................... 3 Starting the BBS.............................................. 4 3. CONFIGURING THE BBS........................................... 5 System configure.............................................. 5 Modem configure............................................... 10 Menu editor................................................... 12 Sections configure............................................ 14 User defaults................................................. 16 Text editor................................................... 17 Macros........................................................ 19 FidoNet configure............................................. 19 FidoNet mail distribution..................................... 23 4. PULL DOWN MENU FUNCTIONS...................................... 25 Local login................................................... 25 Chat on/off................................................... 25 Chat interrupt................................................ 26 Countdown..................................................... 26 Printer/Output................................................ 26 Text import................................................... 26 TWIT.......................................................... 27 Caller log.................................................... 27 About. . ..................................................... 28 Iconify....................................................... 28 Quit.......................................................... 29 Add 15 mins................................................... 29 Online edit................................................... 29 User editor................................................... 29 Files editor.................................................. 35 Check files................................................... 38 Optimize messages............................................. 38 PURGE MESSAGES................................................ 39 Force FidoNet................................................. 39 Force execute................................................. 39 Force msg import.............................................. 39 5. BBS MENU FUNCTIONS............................................ 41 Function 1 - Log out.......................................... 41 Function 2 - Goto menu........................................ 42 Function 3 - Chat call........................................ 42 Function 4 - Set ANSI flag.................................... 42 Function 5 - Set CLS flag..................................... 42 Function 6 - Set pause flag................................... 43 Function 7 - Set FSE flag..................................... 43 Function 8 - Change # of lines per screen..................... 43 Function 9 - Change suburb.................................... 43 Function 10 - Change phone number............................. 43 Function 11 - Change computer description..................... 43 Function 12 - Change password................................. 43 Funciion 13 - Type a file..................................... 44 Function 14 - Type a file without pause....................... 44 Function 15 - Print text...................................... 44 Function 16 - Leave a message................................. 44 Fucntion 17 - Read messages................................... 45 Function 18 - List/Search user file........................... 47 Function 19 - Print caller log................................ 47 Function 20 - List files...................................... 47 Function 21 - Delete a file................................... 47 Function 22 - Read a file..................................... 48 Function 23 - Upload files.................................... 48 Function 24 - Download files.................................. 49 Function 25 - Make "New" file public.......................... 50 Function 26 - Edit a user..................................... 50 Function 27 - Execute external program........................ 50 Function 28 - CLI............................................. 51 Function 29 - Deposit to the time bank........................ 51 Function 30 - Withdraw from the time bank..................... 51 Function 31 - Deposit all time remaining and log out.......... 52 Function 32 - Send a private echo message..................... 52 Function 33 - Set default file transfer protocol.............. 52 File transfer................................................. 52 6. CUSTOMIZING THE BBS........................................... 55 ANSI codes.................................................... 56 Auto insert................................................... 58 Hiding parts of text.......................................... 59 Chapter 1 M A X's BBS Page: 1 INTRODUCTION ------------ Thank you for using M A X'S BBS! This program is the result of three year's worth of programming. It was developed due to the lack of true Amiga BBS programs ie. not ported from the IBM. M A X's BBS is Copyright © 1993 by Anthony Barrett. This program is now Public Domain and may be freely distributed. ............................... ...................................................................... ................................................................ M A X's BBS SHALL NOT BE USED TO SPREAD COPYRIGHT MATERIAL OR SOFTWARE. NO RESPONSIBILITY IS ACCEPTED FOR DAMAGES ARISING FROM THE USE OF THIS PROGRAM. ............................................................ ...................................................................... ...................................................................... ...................................................................... ...................................................................... ...................................................................... ...................................................................... ...................................................................... ...................................................................... BBS stands for Bulletin Board Service. BBS's became popular when the first 300 bps modem became available at an affordable price. The first BBS I called was "The Omen" and I was an enthusiast from then on. I had a Dick Smith System-80 and a Dick Smith 300 bps manual modem. I think "The Omen" BBS is still running today. The BBS software back then was very basic with only the XModem checksum protocol available for file transfers. Since then, BBS software has become more advanced with the introduction of full screen editors, The ZModem file transfer protocol and FidoNet echo mail linking all the BBS systems together. This program was written for the Amiga, and makes use of the Amiga's graphical user interface called "Intuition". Some Amiga BBS programs which were ported from the IBM environment are menu driven, making them slow and awkward to use. The Amiga's audio channels are used to play sampled sounds for the Bell and the BBS menu function 3 - Chat call, so experiment and have some fun trying different sound samples. M A X's BBS has a built in FidoNet front end, message importer (or tosser) and FidoNet dialer. M A X's BBS can be easily configured as a FidoNet Hub because of it's easy to use "FidoNet mail distribution" window. Before M A X's BBS, BBS programs relied on separate FidoNet front end programs and message tosser programs to set up a FidoNet system, making them slow and difficult to configure. M A X's BBS has a custom print routine allowing speeds of over 9600 bps when printing/sending menus and text. The BBS program called "BBS-PC!" could connect at 9600 bps but the text printing speed would Chapter 1 M A X's BBS Page: 1 Chapter 1 M A X's BBS Page: 2 limit the sending of text to just over 2400 bps. The faster speed is achieved by printing a line at a time then sending that line to the serial port, rather than a print character then send character method (this will become noticeable when using speeds 1200 bps or less). M A X's BBS can be completely customized! Not only can you make your own menus but you can edit and change all the BBS text and colours using the built in text editor. You could even translate the English text into another language. You can insert the time, date or any one of the forty seven auto inserts anywhere in your text! You can hide all or parts of any text to users by specifying the minimum access level. M A X's BBS is a true ANSI BBS, ie. all the ANSI colour codes are supported and any interruptions to the printing/sending of menus (hot keys) and text files will force an ANSI colour code (line 36) before the text is printed/sent. When the BBS sends a message such as "Press to continue" (line 29) or warnings like "You have x mins remaining..." (line 23) while printing a text file, the foreground and background colour will be saved and restored before and after that message. This will stop any colour changes in text due to that BBS message. M A X's BBS is one single executable file. No messy separate configuration or FidoNet programs to worry about, it is all done with the one program! A powerful online user editor lets the local Sysop edit any part of the current online user, including the user's name! A message optimizer will remove all unused space in the message base files, this will save you precious disk space! M A X's BBS supports the following file transfer protocols: XModem XModem CRC XModem 1K YModem (batch) YModem-g ZModem All protocols have been written as close to specification as possible. The ZModem protocol is the latest revision available at the time of this release. M A X's BBS has been written in Assembler. Not only does this make it run faster but also makes the program size very small (about 173K bytes). Utilities and support programs are being written for M A X's BBS and are available from the "M A X's BBS support files" section on my BBS (see "Reporting bugs and ordering") or from the Author. Chapter 1 M A X's BBS Page: 2 Chapter 2 M A X's BBS Page: 3 INSTALLATION ------------ M A X's BBS comes on a standard AmigaDOS formatted disk. *** MAKE A BACKUP NOW BEFORE YOU GO ANY FURTHER! *** There is no copy protection (please read the first paragraph if you have not already), therefore any copy program will be adequate. M A X's BBS should run on a standard 512k byte Amiga but will limit the amount of multi-tasking you can do while the BBS is running in the background. Of course the more memory the better. The optimize message function is memory limited (see "Pull down menu functions"). It is possible to run the BBS as it is, using only one floppy drive, but the free space will limit the message base and file library (if any). Therefore it is recommended that it be installed onto a hard drive. If you do not have a hard drive the BBS will run fine with two floppy drives. Use the first drive to hold the boot and main program disk, and use the second drive for the message base and file library. Of course a practical file library would not be possible on a floppy drive system but should be adequate for a good sized message base (see "Configuring the BBS"). A floppy disk cache program would also be recommended to speed up the disk operations. Hard drive installation: To install M A X's BBS onto a hard drive system make a new directory on the hard drive called "BBS", and then copy the BBS directory from the floppy disk to the hard drive BBS directory. CLI eg: MakeDir DH0:BBS Copy DF0:BBS/ DH0:BBS/ M A X's BBS uses the font called "TBM.font". If you do not have this font in your font directory already, then copy it from the floppy disk's font directory to the hard drive's font directory. CLI eg: Copy DF0:Fonts/TBM.font DH0:Fonts/ MakeDir DH0:Fonts/TBM Copy DF0:Fonts/TBM/8 DH0:Fonts/TBM/ You must add to your "Startup-sequence" the AmigaDOS "Assign" command so that M A X's BBS will know where to find all the BBS files. Chapter 2 M A X's BBS Page: 3 Chapter 2 M A X's BBS Page: 4 CLI eg: Assign BBS: DH0:BBS/ Starting the BBS: All data files are version dependent ie. you can not use early version data files with a later version program. This is to protect the system from crashing due to differences in data files as later versions are released. A conversion program called "MAXsCon" is sent out with all upgrades to convert your old data files to work with the new version. Any file zapping to the data files is done at your own risk. M A X's BBS can be started either from WorkBench by double clicking on the M A X's BBS icon, or from the "CLI". To start M A X's BBS from the "CLI" use the AmigaDOS "Run" command so that the "CLI" window can still be used after starting the program. CLI eg: Run BBS:MAXsBBS When started, M A X's BBS will look for the "MAXsBBS.config" configuration data file in the "BBS:" file path. If you wish to start M A X's BBS with a different configuration file then you can add the filename and path after the program name. CLI eg: Run BBS:MAXsBBS BBS:MAXsBBS.config Chapter 2 M A X's BBS Page: 4 Chapter 3 M A X's BBS Page: 5 CONFIGURING THE BBS ------------------- Once the program is running, use the pull down menu called "Config" to set up the BBS to suit your own needs. Use the "Save all" and "Load all" functions to save all changes (including the BBS menus) on disk and to restore any unwanted changes from disk. The following is a description of each window and its associated gadgets: System configure: This window has the file paths for all the BBS data files and text files. Change these as required, and make sure the files are in the right directory as indicated by the file path. Change the system parameters and flags to suit your disk space and needs. Text files file path: This is the file path for all the BBS text files. It is also a good idea to put your own text files in this file path so that they are all together, and you will know where to look when you need to edit them. See the chapter "Customizing the BBS" for a description of each of these files: BBS.text Bulletin.text FSEHelp.text Guest.text Intro.text ListFilesHelp.text ListFilesMenu.text LockOut.text LogIn.text LogOut.text MsgEdHelp.text MsgEdMenu.text MsgRdHelp.text MsgRdMenu.text MsgSearchMenu.text ProtocolHelp.text ProtocolList.text ProtocolMenu.text User file path: This is the file path for the user data file. The size of this file depends on the "Maximum users" value (see below). This is the filename of the user file: User.data Message files file path: This is the file path for the message base files. The size of these files depends on the "Max" value in the Chapter 3 M A X's BBS Page: 5 Chapter 3 M A X's BBS Page: 6 "Sections configure" window (see below), ie. the more messages there are, the larger these files get. The following files should be found in this file path: Message.data Message.index Message.text Files file path #1: This is the file path for the file library data file and the uploaded files themselves. The size of the data file depends on the "Max" value in the "Sections configure" window (see below), but this would normally be insignificant compared to the space required for the uploaded files. Be sure that this file path points to a disk with a lot of free space. Also see "Minimum upload space" below. This is the filename of the file library data file: File.data Files file path #2 (opt): This is a second optional file path for the files in your file library. Newly uploaded files are always stored in the first file path (see above), but later they can be moved to one of the two optional file paths. This is useful when you have more than one hard drive or floppy disk and you wish to spread the files between them. Files file path #3 (opt): This is a third optional file path for the files in your file library. Same as above. Log files file path: This is the file path for the caller log file and the FidoNet log file. The size of the caller log file depends on the "Log size" value (see below). The FidoNet log file is a text file which contains the date and time for each FidoNet event. It will also log the name of the user and the "CLI" command used when using the BBS menu function 28 - CLI. The FidoNet log file can be disabled in the "FidoNet configure" window. Each new entry to the FidoNet log file will be appended to the file. It can be read with any text editor, text reading program or typed to the BBS window using BBS menu function 13 - Type a file. The FidoNet log file will continue to grow in size until you delete it and start a new one or disable it. The filenames of the log files are: Log.data Log.text Bell sample: This is the bell sound sample's filename and path. This is the sound you will hear when the BBS sees the bell control character (^G) in any text. It is also used to attract your attention in some parts of the BBS. Chapter 3 M A X's BBS Page: 6 Chapter 3 M A X's BBS Page: 7 Play rate: This is the play back rate of the bell sample. The play rate is in bytes per second and ranges from 500 to 28000. Chat sample: This is the chat sound sample's filename and path. This is the sound you will hear when the BBS menu function 3 - Chat call, is selected. This is a fun one to play with, limited only to your sampled sound library. Play rate: This is the play back rate of the chat sample. The play rate is in bytes per second and ranges from 500 to 28000. Max users: This is the maximum number of users allowed on your BBS. This is useful for limiting the user file size. A user file of 300 users would need a user file of about 91K bytes. If a new "Guest" user tries to logon when the user file is full then a message "User file is full, call back next week" (line 8) will be given. This gives time for the Sysop to delete inactive users and make room for new "Guest" users (see the pull down menu function "User editor"). This value ranges from 1 to 65000. Max file size: (Maximum file size) This is the maximum file size that can be uploaded. If a file exceeded this size it would not be stored in the file library. If the ZModem protocol is used to upload a file which exceeds this size, then the file will be skipped ("ZSkip"). This is useful to stop users uploading files which could not be downloaded in the time limit available to most users. This is also useful when used in conjunction with the "Minimum upload space" value (see below) to prevent your upload disk from being completely filled. This value is in K (1024) bytes and ranges from 1 to 65000. Log size: This is the caller log size. A caller log size of 500 would need a log file size of about 35K bytes. Also see the pull down menu function "Caller log". This value ranges from 1 to 99999. Note: Changing this value will restart the caller log. Upld reward: (Upload reward) This is used to encourage users to upload files. When a file is uploaded, the size of the file is compared to this value to calculate an increase for the user's time limit, as a reward for the upload. This value is in seconds per K (1024) bytes uploaded. A value of zero (0) will never give an upload reward. Also see "Max time" below. This value ranges from 0 to 120. Sleep time: This sets the inactivity countdown timer used when the BBS is waiting for a response from the user. If this times out before receiving a response from the user then the BBS will hang-up on the user (sleep disconnect). The Bell will sound once for every minute of inactivity to warn the user. This value is in minutes and ranges from 1 to 59. Chapter 3 M A X's BBS Page: 7 Chapter 3 M A X's BBS Page: 8 Countdown: This is the value for the local countdown timer to force a user off the BBS. See the pull down menu function "Countdown" for a description of the countdown timer. This value is in minutes and ranges from 1 to 59. Chat on: This is the 24 hour time to turn on the BBS menu function 3 - Chat call. This stops users from paging the Sysop at unwanted hours. Note: Users with Sysop access (5000) can page the local Sysop at any time. Chat off: Same as above, but is the 24 time to turn off the chat call function. Note: If this time is the same as the "Chat on" time then the chat call function will always be on. Max pages: (Maximum pages) This is the maximum number of times a user can page the Sysop for each login. Exceeding this value will give the "There's no point calling any more" (line 41) message. This stops users from paging continuously. This value ranges from 1 to 99999. U/D on: (Upload/Download on) This is similar to "Chat on" above. This is the 24 hour time that users can start selecting file transfers. This is useful to stop users tying up the BBS during prime message hours. U/D off: (Upload/Download off) The 24 hour time to stop file transfers. Note: If this time is the same as "U/D on" (see above) then file transfers will be allowed at any time. Dimmer: This is the timer value to dim the idle BBS screen. If the BBS has been waiting for the next caller for this time value, then the screen will dim to help save your monitor's CRT. The screen will return to normal with any kind of activity (eg. mouse click). This value is in seconds and ranges from 1 to 99999 (never dims). Max time: (Maximum time limit) This is the maximum time limit that a user can obtain when receiving upload rewards (see above). If the user has a time limit the same or higher than this value then no upload rewards will be given. This is to stop users from building up a ridiculous time limit from upload rewards. This value is in minutes and ranges from 0 (no upload rewards) to 10000. Min up spc: (Minimum upload space) This is the minimum space allowed on the disk pointed to by the "Files file path #1" (see above). This is useful to prevent the upload disk from getting too full and thus preventing messages from being saved (only if on the same disk). If the "Minimum upload space" is exceeded, then a message "Getting low on upload space" (line 194) will be given when a user tries to upload a file. When uploading using the ZModem protocol, the file size is checked against the "Minimum upload space" and the file Chapter 3 M A X's BBS Page: 8 Chapter 3 M A X's BBS Page: 9 is skipped ("ZSkip") if it exceeds this value. Use this value in conjunction with the "Maximum file size" ie. "Maximum file size" should be smaller than "Minimum upload space". This value is in K (1024) bytes and ranges from 1 to 99999. Max tm bnk: (Maximum time bank) This is the maximum time bank balance a user can obtain when depositing to the time bank. If the user has a time bank balance the same or higher, then the message "Your time bank balance is too high!" (line 240) will be given when attempting to deposit more time. See BBS menu functions 29 to 31. This value is in minutes and ranges from 0 (no deposits) to 10000. New files public: This gadget is used to select whether or not a newly uploaded file will be available to all users. Note: Users with Sysop access (5000) can access any "New" file. Esc ctrl chars: (Escape control characters) Used with the ZModem file transfer protocol only. The ZModem protocol allows encoding of all control characters for non-transparent data path mediums (eg. networks). Selecting this will force all control characters to be escaped. Note: This will greatly increase file transfer times, use only if needed. This may not work with some early implementations of the ZModem protocol. Flashing text: Select this to enable ANSI flashing or blinking text. This will open a four bit plane screen to enable flashing text. Note: When turned on, it will slow down the Amiga's "Intuition" and font routines giving a slower scroll and print. NTSC (Interlace): Select this if you are using an NTSC display system (USA). Interlace mode is used for NTSC to gain the extra lines required by the PAL system that this program was originally written for. Sorry, but it is easy going from NTSC to PAL but not PAL to NTSC. It will also change the timing routines as PAL is a 50 Hz system and NTSC is a 60 Hz system. ZModem XON/XOFF: Select this to turn on XON/XOFF flow control for rates of 2400 bps and below during a ZModem receive. This does not effect ZModem send. XON/XOFF flow control is default on for rates higher than 2400 bps. This would normally be turned off as for most cases the Amiga can keep up with rates 2400 bps and below, but if you are doing heavy multi-tasking during ZModem receives then turn on this gadget. This option was added to help stop stray XOFF's from locking up the BBS during ZModem receives. Rates higher than 2400 bps are normally protected with MNP (Microcom Networking Protocol) error correction. Note: ZModem send handles all XON/XOFF flow control, if an XOFF is not followed by an XON in 60 seconds then the file transfer will abort. Chapter 3 M A X's BBS Page: 9 Chapter 3 M A X's BBS Page: 10 Modem configure: This window contains the information and options about the modem you wish to use with the BBS. The default setup should work with most standard 2400 bps "AT" command set modems. The BBS assumes that all serial data is 8 data bits, 1 stop bit and no parity. 7 data bits was considered, but would not be compatible with the current file transfer protocols. The BBS will hang-up the modem by dropping the "Data Terminal Ready" (DTR) signal, so be sure to tell your modem this in the "Setup" command string (see below). The term "bits per second" (bps) is used instead of baud rate because by definition baud rate is the rate of change in the signal. With the high speed modems used today, a change in the signal could mean a two or more bit change in data. Therefore the baud rate may be the same or lower than the actual bits per second. All the string gadgets in this window can use the control character specifier "^". The "^" character means that the following character is a control character. See the "Text editor" for more information on using the control character specifier. The following are descriptions of the gadgets in this window: Max: (Maximum bps) This is the maximum bps rate that your modem can connect at, or the bps rate that the BBS will use when "Locked bps rate" (see below) is selected. This is the bps rate at which the BBS will send the "Setup" command string (see below) to the modem. Some modems will connect at a bps rate the same or lower than the bps rate that the last command was sent. Therefore when a user connects at 300 bps, at the end of the session the BBS will resend the "Setup" command string to the modem at this maximum bps rate, allowing other users to connect at a higher bps rate. This parameter ranges from 300 to 19200 and is in bps (the rate doubles for each step). Min: (Minimum bps) This is similar to the above except that it is the lowest bps rate that you will allow users to connect to your BBS. If a user connects at a lower bps rate than this minimum, then the "Too slow connection" (line 131) message will be given and the BBS will then hang-up (or after a new "Guest" user has been sent the "Guest.text" file). This is useful to stop 300 bps callers from tying up the BBS. Again this is in bps and ranges from 300 to 19200 (the rate doubles for each step). Setup: This is the modem command string used to initialize the modem at start-up and after each call. Use this command string to put your modem into auto answer. Do not forget to add the "Carriage Return" (^M) at the end. It is also recommended to change the attention character register to 1 to prevent users from accidentally putting your modem into command mode when the BBS echoes characters back to the user. This was an old way "Hackers" used to crash BBS's, but do not worry, if your modem does go into command mode the BBS will time out (sleep disconnect), hang-up and resend the "Setup" string. The character "~" can be used to force a one second delay before Chapter 3 M A X's BBS Page: 10 Chapter 3 M A X's BBS Page: 11 sending the next characters. Here is an example command string which first resets the modem, tells the modem to hang-up when the "DTR" signal is dropped, redefines the attention character to 1 and set the number of rings to answer for two: ATZ^M~AT&D2S2=1S0=2^M 300: This is the string that the modem sends to the BBS when a 300 bps connection is established. When the BBS sees the "Carrier Detect" (CD) signal active it will wait for the connection string, then optionally change to the bps rate indicated by the connection string (also see "Locked bps rate" below). The strings are case sensitive and a "Carriage Return" (^M) and "Line Feed" (^J) will normally terminate the strings. Note: A common problem of the BBS appearing to lock-up when a carrier is detected is because the connect string that the modem sends to the BBS, does not match with any of the connect strings defined here and below. 600: This is the string that the modem sends to the BBS when a 600 bps connection is established. Rarely used now. 1200: This is the string that the modem sends to the BBS when a 1200 bps connection is established. 2400: This is the string that the modem sends to the BBS when a 2400 bps connection is established. 4800: This is the string that the modem sends to the BBS when a 4800 bps connection is established. 9600: This is (yes you guessed it) the string that the modem sends to the BBS when a 9600 bps connection is established. 19200: This is the string that the modem sends to the BBS when a 19200 bps connection is established. Busy: This is the string that the modem sends to the BBS when a busy signal is detected. Used in the "FidoNet dialer". No DT: (No Dial Tone) This is the string that the modem sends to the BBS when no dial tone is detected. Used in the "FidoNet dialer". Seven-wire handshaking: This gadget is used to select seven-wire (CTS/RTS) handshaking between the BBS and the modem. This option is normally used for high speed buffered modems. Use it in conjunction with "Lock bps rate" (see below) and a maximum bps rate higher than the maximum rate your modem will connect at, to increase the through put for MNP (Microcom Networking Protocol) modems. When using seven- wire handshaking you may experience delays when the modem's buffers are full, this is because while the modem empties it's buffers the Chapter 3 M A X's BBS Page: 11 Chapter 3 M A X's BBS Page: 12 handshaking stops the sending of any more data by the BBS. Note: Because of a problem (bug?) with the Amiga's "serial.device", seven- wire handshaking only works when the modem signal "Data Set Ready" (DSR) is active. If seven-wire handshaking is not working, try using the command "AT&S0" to force the modem's "DSR" signal active. Locked bps rate: This gadget is use to select a locked bps rate between the modem and the BBS. When selected, the BBS will not change the bps rate when a connect string from the modem is received. A locked bps rate is normally used with seven-wire handshaking (see above). Send setup string twice: When this gadget is turned on, the BBS will always send the "Setup" command string twice to the modem. Some modems may not auto change the bps rate to the BBS bps rate on the first command string, and therefore miss the command string. This gadget guarantees that the modem will change it's bps rate and receive the command string. Slow command string: This gadget is used to select the sending of the "Setup" command string at a slow typing speed. Some modems may not like command strings being sent at full speed, and will miss some or all characters in the string. Serial unit #: This gadget contains the serial unit number that the BBS will use. For those with more than one serial port. On a standard Amiga this is set to unit zero (0). Snd setup: (Send setup) Click on this gadget to send the "Setup" command string to the modem. Menu editor: This is a very powerful window. It is where you define the keys and functions of all the BBS menus. See the chapter on "BBS menu functions" for a list and description of the currently available menu functions. Also see "Customizing the BBS". You must have at least one menu. All the BBS menu data is stored in the "MAXsBBS.config" file, this file will grow as you add more menus to your BBS. It is recommended to print out the menu functions summary file called: MenuFunctions.text Have this with you as a quick look-up for all the menu function numbers. Each menu is numbered and may be as large as memory permits. This window can display up to ten menu functions. If the menu is larger, then it will continue in the next lot of ten (use the down arrow). The following are descriptions of the gadgets in this window: Chapter 3 M A X's BBS Page: 12 Chapter 3 M A X's BBS Page: 13 Up and down arrows: Use these gadgets to move up and down in lots of ten. If a menu is smaller than ten functions then the next menu will be shown. Goto: This is a "go to menu number" gadget. To use this simply click in the box, type the number of the menu you wish to go to, then press . Text filename: This is the filename and path of the menu text file associated with the current menu number. This menu text file is what is seen by the user. When you enter a filename here the menu number will automatically increase by one if this is the last menu, ie. adding a new menu. Note: If you insert a menu and enter a filename, it will have no effect unless you are at the last menu. The same applies for menus which are larger than one full window (ten entries). Key: This is the key or character (always UPPER case) used to select the menu function. The BBS scans this field from top to bottom and if a match is found then the access is checked. If the user does not have access to this function, then it will continue scanning until it either finds the end of this menu, or it finds a match and the user has access. This is useful in that you can have the same key perform different functions depending on the user's access level. Function: This is the number of the function to perform with the associated key (see above). This value ranges from 0 (not defined) to 33. See "BBS menu functions". Extra: This is an extra parameter to use with the function (see "BBS menu functions"). Note: Not all BBS menu functions need this field and it may therefore have no effect. This value ranges from 0 to 10000. Access: This is the access level needed by the user to use this function. The user must have the same or higher access level. If the user has an access level less than this value, then the key pressed will be ignored and no message will be seen by the user. This stops users from randomly pressing keys to see what might be hidden in the menu. The BBS will continue scanning for another match if the user does not have high enough access (see "Key" above). This value ranges from 0 to 10000. Filename/Name/Dest: This is additional text that may be required by the function. For example a filename is required with the BBS menu function 13 - Type a file. Note: Not all BBS menu functions need this field and it may therefore have no effect. Top/Btm: (Top/Bottom) Click on this gadget to move to the first and last menu. Use this gadget first to move to the last menu before you try to add a new menu. Chapter 3 M A X's BBS Page: 13 Chapter 3 M A X's BBS Page: 14 Show: Click on this gadget to show the menu text file for the current menu number. This is useful if you forget which keys are supposed to select which function. It also lets you check if the filename and path are correct. Click again or hit any key to exit back to the menu editor. Add/Insert: Click on this gadget to add a new menu, or to insert more functions to an existing menu. The insert will be placed after the current menu. Delete: Click on this gadget to delete the current menu. All menus after the deleted menu (if any) will be moved up. You can not delete the first menu. Note: If you delete a menu which is larger than ten functions, be sure to add the filename and path of the text file to the remaining part of the menu. Also if you delete a menu completely, the menu numbers of the remaining menus will not change, ie. you may have menu numbers missing. Sections configure: M A X's BBS, like many BBS's, uses sections to divide up the message base and file library. The sections help to organize and categorize large message bases and file libraries. All functions associated with the message base and file library require a section number. You can have up to 100 sections. Note: Section 0 is reserved for private messages. Messages in this section will require the message to be "To" or "From" the user to be read (Sysops (access 5000) can read all private messages). The addition of flags for each section makes each section act differently. M A X's BBS has a unique maximum value for each section, allowing a different maximum number of messages or files in each section! When a section becomes full it will roll ie. the oldest message or file will be deleted to make room for the new one. This is how the size of the section can be controlled for file size reasons, as well as management reasons. Messages and files can be roll locked (by a Sysop) to prevent it from being deleted when the section becomes full. It will instead delete the next unlocked message or file. The following are descriptions of the gadgets in this window: Up and down arrows: Use these gadgets to move up and down in lots of ten. Name: This is where you enter the name of the section. The name of the section is displayed along with the message when it is being read (see BBS menu function 17 - Read messages). Access: This is the access level required by the user to access messages or files in this section. If the access is zero (0), then Chapter 3 M A X's BBS Page: 14 Chapter 3 M A X's BBS Page: 15 the section is not valid and is not used by the BBS. Note: When using "linked sections" (sections 100, 101 and 102) the user still needs an access level the same or higher to include that section as one of the linked sections. This value ranges from 0 (not used) to 10000. Max: (Maximum messages/files) This is the maximum number of messages or files allowed in this section. When a section becomes full it will automatically delete the oldest message or file (see above). This value ranges from 1 to 99999. Frm: (From flag) This flag specifies whether or not a user can see who the message or file is from. This is useful for anonymous sections. Note: When searching messages (see BBS menu function 17 - Read messages), this flag must be set for the search function to include this section's "From" field in the search. This was added for security reasons. To: This flag specifies whether or not a user can see who the message is to. This is useful for anonymous message sections. Note: When searching messages (see BBS menu function 17 - Read messages), this flag must be set for the search function to include this section's "To" field in the search. Del: (Delete flag) This flag specifies whether or not a user can delete a message "To" or "From" them, or a file uploaded by them. Note: Sysops (access 5000) can delete any message or file. Lnk: (Linked section flag) This flag specifies whether or not this section is included as a linked section. Sections 100, 101 and 102 are used to specify linked sections. Section 100 means include all linked local messages or files. Section 101 means include all linked echo messages. Sections 102 means include both linked local and echo messages. For example, a "Read all new local mail" menu choice would use linked section 100 as the section number (limited to user access level). Als: (Alias flag) This flags specifies whether or not a user can type in an alias to use as the author's name. It can be quite funny reading a message from "Batman"! Replies to messages left using an alias, will be found on the logon mail search as addressed to the user who used the alias. Note: Sysops (access 5000) will see the user's real name next to the alias when reading messages. Same applies when listing files from an alias. Fil: (File flag) This flag is the difference between a file section and a message section. Note: You can not mix messages and files in the same section, and only linked section number 100 can be used with file BBS menu functions. Chapter 3 M A X's BBS Page: 15 Chapter 3 M A X's BBS Page: 16 Ech: (Echo mail flag) This flag specifies a FidoNet echo message section. This flag must be set to use this section in the "FidoNet mail distribution" window. Top/Btm gadget: (Top/Bottom) Click on this gadget to move to the first ten and last ten sections. User defaults: This window is used to set the user defaults for "Guests" and "Members". A "Guest" user is one who is new to your BBS. The Guest user will remain a Guest until a Sysop upgrades their access (see the pull down menu function - "User editor"). The Member defaults are used for instant Member's status in all three different user editors (see the pull down menu function "User editor" and BBS menu function 26 - Edit a user). The following is a description of the gadgets in the "User defaults" window: Rd: (Read access flag) This is the read access flag which specifies whether or not a user can read messages (regardless of their access level). Wr: (Write access flag) This is the write access flag which specifies whether or not a user can write or leave a message (regardless of their access level). Up: (Upload access flag) This is the upload access flag which specifies whether or not a user can upload files (regardless of their access level). Dn: (Download access flag) This is the download access flag which specifies whether or not a user can download files (regardless of their access level). Access level: This is the access level of the user. The access level must be the same or higher than the access level in the "Menu editor" window, or the "Sections configure" window for the user to use that function or section. The access level can also be used to hide parts or all of text (see "Customizing the BBS"). This value ranges from 0 (locked out) to 10000 (Almighty Sysop access!). Time limit: This is the daily online time limit for the user. Once a user has logged on the BBS, the timer is started, when it reaches zero the BBS will give the message "Out of time" (line 24) and hang- up. When the time remaining reaches five minutes or less, a warning message will be given for every minute (line 23). Once the daily time limit has been exceeded, the user will have to wait until the next day to refresh the time remaining. This value ranges from 0 to 10000 and is in minutes. Chapter 3 M A X's BBS Page: 16 Chapter 3 M A X's BBS Page: 17 D/U Ratio: (Download/Upload Ratio) This is a download versus upload ratio used to help prevent users downloading files and not contributing any uploads (file hogs). A value of zero (0) disables this check. Maximum of 10000 and is in actual number of successful files transferred. Text editor: M A X's BBS lets you completely customize the look of your BBS. The text editor lets you edit all the BBS text. You can change the ANSI colour codes or even change the BBS to a different language! It is recommended that you get used to the BBS before you try to change the actual text. You can replace any text you like to suit the theme or name you choose to give your BBS (see "Customizing the BBS"). Note: Changing the text too much may confuse a new user or a user first starting out. It is up to you as a Sysop to help such users, remember when you got your first modem! The last few empty text lines can be used with the BBS menu function 15 - Print text. Be sure only to use lines from the last line upwards, as future upgrades will use the next blank line and downwards and therefore will overwrite your text. To insert control characters into the text you must use the control character specifier "^", followed by the ASCII character calculated by adding 64 (Hex 40) to the control character's ASCII value. Here is a list of control characters you can use and their equivalent: Name: ASCII value: Equivalent: Bell 7 ^G Backspace 8 ^H Tab 9 ^I Line Feed 10 ^J Form Feed (Clears screen) 12 ^L Carriage Return 13 ^M Escape 27 ^[ Some text lines may not be that obvious when and where they are used, so here is a list of the less obvious lines: 0: The Sysop's name, place your name here! 36: The ANSI code printed/sent to reset any colours when a menu "Hot key" is pressed. 43: The ANSI code to set the colour of the characters typed by the local Sysop when chatting to a user. Chapter 3 M A X's BBS Page: 17 Chapter 3 M A X's BBS Page: 18 44: The ANSI code to set the colour of the characters typed by the user when chatting to the local Sysop. 58: The ANSI code to set the colour of the line number in the normal message text editor. 59: The ANSI code to set the colour of the text after the line number in the normal message text editor. 91: The ANSI code to set the colour of the message text when reading messages. 115: The "quoted" text prefix used when quoting text from a message you are replying to. 127: The ANSI code to set the colour of the user's name when listing users. 128: The ANSI code to set the colour of the user's suburb when listing users. 129: The ANSI code to set the colour of the user's last on date when listing users. 143: Used to terminate the printing of the caller log when using BBS menu function 19 - Print caller log. 150: The ANSI code to set the colour of the filename when listing files. 151: The ANSI code to set the colour of the file size when listing files. 152: The ANSI code to set the colour of the date uploaded when listing files. 153: The ANSI code to set the colour of whom a file is from when listing files. 154: The ANSI code to set the colour of the file description when listing files. 155: The text after the filename to show that the file is locked. 156: The text after the filename to show that the file is "New". 182: The text printed after line 181 on completion of a file transfer. Chapter 3 M A X's BBS Page: 18 Chapter 3 M A X's BBS Page: 19 197: The ANSI code to set the colour of the text when reading a text file from the file library. 198: The text used to terminate the reading of a text file from the file library. 234: The text before the output file of a CLI command is printed/sent. 254: The prefix text used when printing the user's real name next to the user's alias while reading messages (Sysop access only). 255: The suffix text used when printing the user's real name next to the user's alias while reading messages (Sysop access only). 258: The prefix text used when printing the user's real name next to the user's alias while listing files (Sysop access only). 259: The suffix text used when printing the user's real name next to the user's alias while listing files (Sysop access only). Macros: M A X's BBS has built in local Sysop macros! Macros allow you to define the Amiga's function keys to automatically type text strings into messages or anywhere that requires input from the keyboard. They can be used when you find that you are continuously typing the same thing over and over. Macros are useful for making nice sign-offs at the end of your messages, or entering your name at logon. The "Shift" gadget will toggle the window between the normal function keys and the shifted function keys. This gives you two strings per function key. FidoNet configure: FidoNet is a system where many BBS's can share the same message base. When a new message is stored in an echo message section, it is also stored in one or more of the OutBound FidoNet files according to the destinations specified in the "FidoNet mail distribution" window (see below). These OutBound FidoNet message files are called bundles. Message bundles can also be optionally archived using the utility called "Lharc", a program written by Paolo Zibetti and available on most good Amiga BBS's. "Lharc" version 1.30 was tested with M A X's BBS but versions the same or higher should work. A FidoNet system can either then call your BBS to pick up their files, or your BBS can be configured to call their BBS. Once a FidoNet connection session has been started, files are first sent to the answering BBS, then the OutBound files for the originating BBS (if any) are sent. Message bundles can be empty ie. no messages. These empty bundles are called Chapter 3 M A X's BBS Page: 19 Chapter 3 M A X's BBS Page: 20 "Poll" packets, and are used to "Poll" the answering system in order to pick up the waiting OutBound files. Once all files have been transferred, the built in message importer will examine the InBound files file path for message bundles to process (see "Force msg import"). A "Hub" is a FidoNet system configured as the central answering system. All members of a "Net" would join the network in a "Star" fashion ie. they all call the same Hub (see "BBS address" below). (BBS) | (BBS) | (BBS) \ | / \ | / (BBS)---- (Hub) ----(BBS) / | \ / | \ (BBS) | (BBS) | (BBS) A Hub can also call another Hub, which would then link the two Nets together. This is basically how a message base can be shared internationally. There is no limit to how many BBS's can join the network. All OutBound FidoNet files use four dimension filenames created from the destination address. The following are descriptions of the gadgets found in this window: OutBound files file path: This is the OutBound files file path where all OutBound files are stored. OutBound files can either be picked up by the destination or the destination can be called (see "Phone numbers" below). InBound files file path: This is the InBound files file path where all InBound files are stored. InBound files are processed straight away by the "Message importer" (see "Force msg import"). "* Origin": This is the text that will appear in the origin line at the bottom of every message originating from your BBS. Normally you would put a comment here advertising your BBS. Do not forget to include your BBS phone number! BBS address: This is YOUR BBS address in the form Zone:Net/Node.Point. When you join a "Net" your network co-ordinator Chapter 3 M A X's BBS Page: 20 Chapter 3 M A X's BBS Page: 21 will allocate you with an address. You must enter that address here. Here is an example address: 3:712/306.1 Where the Zone is "3" (Australia). The Net is "712"; this is the "Net" that you belong to. The Node is "306"; this is unique to your BBS unless "Pointing" from another BBS. The Point is "1"; your BBS address would normally have zero (0) for the point unless you have joined the "Net" through another BBS not a Hub. Sysop: This is the name of the Sysop, enter your name here! This is the name that will be logged when FidoNet sessions take place. Phone numbers: Your BBS can be configured to dial another FidoNet system (Hub) at any time. This gadget contains the modem commands and phone number that are sent to the modem when using the "FidoNet dialer". You must insert the modem dial command prefix and suffix. If this gadget is empty then the BBS ignores the start time (see below). Here is an example phone number: ATDT024123280^M Where the "^M" is a control character specifier, see the "Text editor" for more information on control characters. Executes: Your BBS can also be configured to execute a program at any time. This gadget contains the program's filename and arguments (if any) you wish to execute. If you wish, you can use the AmigaDOS command "Execute" to execute a script, please refer to your AmigaDOS manual. Start times: This is the 24 hour start time that the BBS will begin to dial a phone number or execute a program. When you join a "Net" your network co-ordinator will allocate you with a dial time. If a user is still online at this time they will be forced off the BBS even during a file transfer, including uploads (line 246 is given). When a user logs on, the BBS will compare the user's time remaining to the time before the next system event. If the user has more time remaining than the time before the next system event, then the user's time remaining will be adjusted and a waring will be given (line 245). The BBS will remember the user's true time remaining for the next call. The next system event will be taken into account when the user attempts to withdraw time from their time bank (BBS menu function 30 - Withdraw from the time bank). Max retries: (Maximum retires) This is the maximum number of redial attempts that the "FidoNet dialer" will try before exiting. This value ranges from 1 to 500. Chapter 3 M A X's BBS Page: 21 Chapter 3 M A X's BBS Page: 22 Time out: This is the time out value used for the "FidoNet dialer". This value will count down until it reaches zero (0), in which case the "FidoNet dialer" will then try another redial attempt. This value is in seconds and ranges from 1 to 500. Redial delay: This is the amount of time that the "FidoNet dialer" will wait before attempting a redial. This value is in seconds and ranges from 1 to 500. Fido on: This is the 24 hour on time for the time slot that reserves the BBS for FidoNet system callers only. If this time is the same as the "Fido off" time (see below), then the BBS will always accept human callers. If a user tries to call in the FidoNet only time slot, then the message "FidoNet only, please call back..." (line 261) is given. Fido off: This is the 24 hour off time for the time slot that reserves the BBS for FidoNet system callers only (see above). Future: Undefined and reserved for future use. Auto dialer: This is the master enable switch for all three phone numbers and starting times. Auto execute: This is the master enable switch for all three executes and starting times. Allow pickup: This gadget enables/disables your BBS from accepting calls from another FidoNet system. If turned off, the BBS will proceed straight into the logon text. If turned on, the BBS will give the message "Hit twice or wait 30 seconds to enter the BBS..." (line 253). The BBS distinguishes the difference between a human caller and a FidoNet system caller by the initial response. A FidoNet system caller will send a control character to the answering BBS to start a FidoNet session. A human caller will hit twice or wait 30 seconds (time out). Allow send: This gadget allows the old "TeLink" FidoNet systems to be sent their files when they call your system. The old "TeLink" FidoNet systems did not have password protection to stop fake systems from picking up other system's files. If this gadget is turned off and a "TeLink" FidoNet system calls your BBS, then your BBS will happily accept files from the caller, but will not send anything back and hang-up. This is regardless if they are a valid system in the "FidoNet mail distribution" window. Note: This flag does not effect a "WaZOO" FidoNet system caller. Allow TeLink: This enables/disables an old "TeLink" FidoNet session when answering an incoming call from another FidoNet system, and when Chapter 3 M A X's BBS Page: 22 Chapter 3 M A X's BBS Page: 23 dialling another FidoNet system. This was used for testing and should normally be turned on. Allow WaZOO: This enables/disables a "WaZOO" FidoNet session when answering an incoming call from another FidoNet system and, when dialling another FidoNet system. If this flag is off, the FidoNet session would normally fall back to the old "TeLink" FidoNet session. This was used for testing and should normally be turned on. FidoNet only: This stops human callers from using your BBS. When turned on, the BBS will only accept calls from other FidoNet systems. Use this gadget for a dedicated Hub FidoNet system. Show ctrl info: (Show control information) This gadget is used when reading imported messages. If turned on, the BBS will show all the control information contained in an imported echo message. Update log: This gadget enables/disables updates to the FidoNet log file. All FidoNet transactions are logged with the date and time (see "Log files file path"). FidoNet mail distribution: This window could be nick named the "Post Office". This is where the echo message sections are linked to echo mail "Area" names. FidoNet message bundle files contain messages which are categorized into areas. An "Area" is a name or tag given to each message, so that message importing programs (tossers) can sort the InBound messages into the local BBS message base. This window also defines destinations and passwords of FidoNet systems. Two hundred entries can be made, which should be plenty for most configurations. The "FidoNet dialer" requires a destination address to be defined. If not, the "FidoNet dialer" will not respond to your dial requests. Pseudo section numbers of 101, 102 and 103 are used to link a phone number with a destination address. Section 101 means phone number 1. Section 102 means phone number 2. Section 103 means phone number 3. When dialling a remote FidoNet system, the destination address must match the remote system's address to begin the FidoNet session. If not, the session will abort. Here are descriptions of the gadgets in this window: Sect: (Section) This gadget contains the echo message section you wish to link with the "Area" (see below). The echo message section must have the "Ech" flag turned on. It can also contain a pseudo section number for the "FidoNet Dialer" (see above). Area: This gadget contains the "Area" name of the messages you wish to link with the above echo message section. You can define your own "Area" names if you wish to configure a private or new "Area", or if Chapter 3 M A X's BBS Page: 23 Chapter 3 M A X's BBS Page: 24 you wish to use an existing "Area" then you can obtain the available "Area" names from your network co-ordinator. This gadget must be blank when defining a phone number destination address. "Area" names are always UPPER case. Dest address: (Destination address) This gadget contains the FidoNet destination address for new and imported messages, or the FidoNet destination address of a phone number (see above). The destination address is in the format Zone:Net/Node.Point. This address would normally be your Hub, or if you are configured as a Hub then the destination address would be the FidoNet systems that you support. Note: If you are configuring a Hub then you will need a destination address for each FidoNet system that is to receive that "Area" (see above). Therefore, one "Area" could have multiple destinations. Password: This gadget contains the password that the calling system with the same FidoNet address as the FidoNet destination address, must have before your BBS will send their files. When configuring a phone number entry, this is the password that your BBS will send the remote FidoNet system (sections 101 to 103). Passwords are not case sensitive. LZH: (Lharc) This gadget is used to turn on the archiving of OutBound message bundle files. The BBS uses the program "Lharc" to perform the archiving (see "FidoNet configure"). The OutBound message files can be archived at two different times. They can be archived before the BBS dials a remote FidoNet system with the "FidoNet dialer". In which case this gadget would be turned on for the phone number entry. They can also be archived at the end of a "Message import". In which case this gadget would be turned on for a echo message section number entry. Only the message bundle file for the above destination address is archived when this gadget is turned on. The BBS will generate a new archive for a destination once a day, all archiving on the same day will be added to the existing archive. Top/Btm gadget: (Top/Bottom) Click on this gadget to move to the first ten and last ten entries. Chapter 3 M A X's BBS Page: 24 Chapter 4 M A X's BBS Page: 25 PULL DOWN MENU FUNCTIONS ------------------------ The pull down menus are divided into three menus. The "BBS" menu contains general BBS functions. The "Sysop" menu contains functions to do with maintenance and editing of the data files (normally performed by the Sysop). The "Config" menu contains all the functions associated with configuring the BBS and BBS menus (see "Configuring the BBS"). Some or all of the pull down menu functions will be ghosted when either that function is in use, or when it might clash with another function in use. Some functions are only used when a user is logged in. If a "Carrier Detect" signal is received from the modem while any of the pull down menu functions are activated (including a local login), the BBS will notify you that a carrier has been detected. You can either ignore it, or finish what you are doing and let the BBS answer the incoming call as usual. If you do not want to be bothered by incoming calls then it is best to turn off your modem so that callers know that the BBS is offline. This also stops the modem from accepting the call and wasting the caller's money. The following is a description of each pull down menu function as seen in the menus: BBS menu: Local login: This function starts a local BBS login session. The local login is the same as logging in from remote, except the routines associated with the modem and serial port are deactivated. Hence the speed at which the text is printed is very fast ie. there is no waiting for data to be sent out the serial port. This will probably be the most used function as it is used to test and view the BBS menus when first setting up the BBS, and in reading and answering messages. The "Twit" function is the quickest way the to exit the local login (see below). Chat on/off: This simply turns the BBS menu function 3 - Chat call, on and off. At start-up this function is default on. You can toggle the chat call function on and off at any time, even when a user is logged in. If the chat call function is switched off then the "Sysop is busy" (line 39) message will be given when the user tries to page the Sysop. This function overrides the "Chat on" and "Chat off" time slot in the "System configure" window. Note: A Sysop (access 5000) can page the local Sysop at any time regardless of the time or this flag. Chapter 4 M A X's BBS Page: 25 Chapter 4 M A X's BBS Page: 26 Chat interrupt: This function is only active when a user is logged in. When a user has logged in you can use this function to chat interrupt at any time. This activates chat mode so that you can type to the user and they can type back to you. You can also start the chat mode by hitting any key while a user is paging the Sysop using the BBS menu function 3 - Chat call. To exit chat mode the local Sysop must hit the key. Note: The user can not exit chat mode. After exiting chat mode the BBS will continue from where the chat interrupt took place. When typing to each other the character's colour changes depending on who is typing. It is good practise to hit twice to signal to the other that you have finished typing and it is now the other person's turn. Countdown: This function is only active when a user is logged in. If for some reason you need to force a user off the BBS but wish to do it in a nice way, then use this countdown function. Once activated, the BBS will give a warning message to the user (line 26), and the time set in the "System configure" window's countdown gadget will then become the user's time remaining. The system will hang-up when the time remaining reaches zero (0). The time that the user had remaining before the countdown function was activated will be restored when they call back (or a new daily limit if it is a new day). The countdown can be reversed, in which case the user's original time remaining is restored, and an appropriate message is given to the user (line 27). Printer/Output: This function is only active when a user is logged in. It opens the printer/output file for output. When selected, a window requesting the filename of the output file is opened. The default output filename is "PRT:", this is the AmigaDOS name for the printer. You can also send the output to disk by changing the filename in the requester. Once the printer/output file is open, everything seen on the BBS screen will be captured on disk or sent to the printer. Selecting this function again, or when the login session is terminated, will turn the printer off or close the output file. This is handy when you want a hard copy of a message, or you could even monitor a complete session (if you have enough paper). Text import: This function is only active when a user is logged in (yourself). It is used to import text into the BBS from any text file. It can be Chapter 4 M A X's BBS Page: 26 Chapter 4 M A X's BBS Page: 27 used at any time during login (including chat mode) but is intended to be used with the message editor. Importing text is similar to hitting a macro key except the text is taken from an external text file. If you are using WorkBench 2.0 (or higher) the BBS will make use of the "asl.library" file requester to select a text file. If the "asl.library" is not available then you will have to type in the filename and path into the small filename gadget that appears when you select this function. Text will continue to be imported until the end of the text file is reached, or you re-select this function. TWIT: This function is only active when a user is logged in. Selecting this will force the BBS to hang-up or "Twit" the current user. This has been named "Twit" because it is intended to be used when a user or "Hacker" is abusing your BBS. This is also a quick exit from the local login. Caller log: All users except Almighty Sysops (access 10000) are recorded in the caller log file. The caller log helps you locate a possible "Hacker" or to see if there has been any DOS read/write errors. Select this function to view the caller log. Use the arrow gadgets to move up and down in the caller log. The log is viewed starting from the user most recently on the BBS. The number of records in the log is specified in the "System configure" window, when this value is changed the log file is restarted. Use the "Restart" gadget to restart the log file. Use the "Top/btm" gadget to move to the top or bottom of the log. The caller log contains the following information: User's name Logon date & time Logout date & time Exit mode (see below) Time used (minutes) Number of messages read Number of messages left Number of uploads Number of downloads Connection bps rate If attempted to page the local sysop (funct 3) If used the CLI (funct 28) The user can exit the BBS in one of the following ways: Normal (funct 1) Slow bps rate (minimum bps rate) Chapter 4 M A X's BBS Page: 27 Chapter 4 M A X's BBS Page: 28 User file full (new user) Lost carrier Security violation Locked out (access = 0) Out of time Sleep disconnect Twitted! System event (FidoNet) Forced hangup (auto insert %X) DOS read error DOS write error Low memory error If a user has an access of zero then the user is locked out of the BBS, any attempts to login will give the locked out message and the BBS will hang-up! A security violation can occur when a user enters the wrong password three times, or when an attempt is made to upload or download a file with the filename "File.data". This protects the BBS data file from being over written by another file with the same filename (Hackers). If a DOS read or write error has occurred then it is possible that the message base or file library has been corrupted! Use the pull down menu functions "Optimize messages" and "Check files" in the "Sysop" menu to check the data files (see below). About. . .: This function will open a window with information about the version of M A X's BBS you have. Included in this window is the available "Chip" and "Fast" memory your system has. If memory becomes low you may get low memory errors. In which case you will have to free up memory or buy more RAM! Iconify: This function will close the BBS screen and open a small window in the WorkBench screen. When the BBS is iconified it can still be used by users! To the user the BBS will look no different whether it is iconified or not. The advantage of iconifying the BBS is that "Chip" memory is freed up, and the serial output is faster because the BBS does not have to update the BBS screen. When a user has logged on their name will appear in the small WorkBench window. Click on the "Close window" gadget to close the small WorkBench window and to re- open the BBS screen. The screen may look incomplete at first because all screen output is lost when iconified. You will have to wait for the screen to be redrawn, especially when the user is using the full screen editor. You can iconify and re-open the screen at any time, even during a file transfer. Note: During a file transfer or "Message Chapter 4 M A X's BBS Page: 28 Chapter 4 M A X's BBS Page: 29 import" the BBS may not respond to your request straight away, but it will eventually (click once and wait). Quit: Selecting "Quit" will bring up a requester to confirm that you really wish to exit the program. Selecting "Whoops!" will abort the quit request and return you back to the BBS, just in case you selected "Quit" by mistake. Selecting "Okay" will cause the BBS to shut down and return to WorkBench or the "CLI" where it was originally started. Sysop menu: Add 15 mins: This function is only active after a user has logged in. If you wish to increase the current user's time remaining without interrupting the user, then use this function. Each time you select this function you will add fifteen minutes to the user's time remaining. A maximum of 10000 minutes still applies, exceeding this will have no effect. The time remaining will be set back to the daily limit when the user calls back the next day. This function does not effect the user's daily time limit. Online edit: This function is only active when a user has logged in. When selected, it will freeze the current user and open a window similar to the "User editor" (see below). You can edit any part of the current user including their name! As this window is similar to the "User editor" the gadgets are not described here (see "User editor" below). Once you have finished editing the current user, click the "Close window" gadget to bring any changes into effect. The user can then continue what they where doing before the interruption. User editor: This is a very powerful user editor. When selected, the user file is loaded into memory and the "User editor" window is opened. All editing of the user file is done in memory for speed, therefore a large user file is not recommended for standard 512K byte systems. The size of the user file depends on the "Maximum users" in the "System configure" window. Once you have finished editing the user file either hit "Save" to save the changes, or hit the "Close window" gadget to abort all changes. There must be at least one user (you). Chapter 4 M A X's BBS Page: 29 Chapter 4 M A X's BBS Page: 30 The "User editor" window also displays the date and time that the user was last on, and the total number of users deleted (see the "Inactive" gadget below). The following are the descriptions of the gadgets in this window: Up and Down arrows: Use these gadgets to move to the next user. The user file is in the logon order, ie as new "Guest" users logon to your BBS they are appended to the user file. Name: This gadget contains the user's name. The user names must be unique, ie. no two users can have the same name. If the BBS finds a user with the same name then the requester "User already exists" will appear and you can either "Edit" the name, or "Delete" that user. The name field has a maximum of 40 characters. Suburb: This gadget contains the user's suburb. You may wish to include a street name and number, it is up to you, ie. change line 14 in the "Text editor" window. The suburb field has a maximum of 39 characters. Password: This gadget contains the user's password. It is not recommended that you change the user's password unless asked to by the user. Sometimes a user forgets their password. The easiest way to resolve this is to delete this user so that they can re-logon. The password is always UPPER case. When the user enters their password at logon it is not case sensitive. The password field has a maximum of 20 characters. Phone #: This gadget contains the user's phone number. Edit line 15 in the "Text editor" window to ask the user to include area codes if you wish. The phone number field has a maximum of 20 characters. Computer: This gadget contains the user's description of the computer they use. You can tell what files a user can use from the type of computer they have. Sometimes users complain that they can not use a file from your file library, a quick look here might reveal that the user is trying to use an Amiga file on an IBM! The computer description field has a maximum of 20 characters. Time remaining: This is the time remaining of the user's daily time limit. The time remaining will be refreshed to the daily limit automatically when the user logs on on a new day. Editing this field will only be in effect up until midnight on the day the user was last on. Maximum is 10000 and is in minutes. Access level: The access level of the user must be the same or higher than the access level of a BBS menu function before the user can select that function. The access level of the user must be the same or higher than the access level in the "Sections configure" window before the user can use that section. An access level of zero Chapter 4 M A X's BBS Page: 30 Chapter 4 M A X's BBS Page: 31 (0) means the user has been locked out of the BBS. The file "LockOut.text" is sent to the user then the BBS will hang-up when a locked out user attempts to logon. An access level of 5000 or more means Sysop access! A Sysop has certain privileges over normal users. Here is a list: Read all private messages in section 0 Delete any message Lock messages Forward messages Edit users with lower access levels (see BBS menu funct 26) Download and read a "New" file Delete any file (see BBS menu funct 21) Download and upload at any time. Page the local Sysop at any time. Sees all real names when alias' are used An access level of 10000 (maximum) means Almighty Sysop!. An Almighty Sysop has all of the above privileges plus: Not recorded in the caller log Edit any user (see BBS menu funct 26) Time limit: This is the user's daily online time limit. When a user logs on on a new day this value becomes their time remaining for the whole day. If the user logs on on the same day, the time remaining from the last login is used (see "User defaults"). Maximum value of 10000 and is in minutes. D/U ratio: (Download/Upload ratio) This is a download versus upload ratio to help prevent users downloading files and not contributing any uploads (file hogs). If a user tries to download a file when their number of downloads versus uploads is higher than their "D/U ratio" value, then the message "You have exceeded your D/U ratio" (line 173) is given. A value of zero (0) disables this check. Maximum of 10000 and is in actual number of successful files transferred. Lt ms rd: (Last message read) This is the highest message read by this user. It is used by the BBS as a reference to check for new messages, ie. higher message numbers. Note: This value is only stored at a normal log out (see BBS menu function 1 - Log out). If the message base has been lost or restarted then a global user edit (see below) should be done with this value to set it to the highest message in the BBS. Screen length: This is the number of lines per page for this user. This is currently only being used in conjunction with the "Pause" flag (see below). The BBS counts the number of lines since the last input Chapter 4 M A X's BBS Page: 31 Chapter 4 M A X's BBS Page: 32 or pause. When it reaches this value it will pause. This value ranges from 10 to 200. Calls: This is a count of the total number of calls this user has made. Used for statistics only. Note: A local login is not counted as a call. Messages: This is a count of the total number of messages written by the user. Used for statistics only. Uploads: This is a count of the total number of successful files uploaded to the BBS. Used with the "D/U ratio" (see above). Dnloads: This is a count of the total number of successful files downloaded from the BBS. Used with the "D/U ratio" (see above). Time bnk: (Time bank) This is the user's time bank balance. The time bank is a means where the user can deposit and withdraw time to and from their daily time limit. See BBS menu functions 29 to 31. This value is in minutes and has a maximum of 10000. Protocol: This is the user's default file transfer protocol. This value can be use when a user wishes to use the same file transfer protocol all the time, and therefore does not have to select it each time they use BBS menu functions 23 and 24. Here is a list of values and the associated protocol: 0 - No default (BBS will ask) 1 - XModem 2 - XModem CRC 3 - XModem 1K 4 - YModem (batch) 5 - YModem-g 6 - ZModem Future: Undefined and reserved for future use. Rd: (Read access flag) This is the read access flag which specifies whether or not a user can read messages (regardless of their access level). Wr: (Write access flag) This is the write access flag which specifies whether or not a user can write or leave a message (regardless of their access level). Up: (Upload access flag) This is the upload access flag which specifies whether or not a user can upload files (regardless of their access level). Chapter 4 M A X's BBS Page: 32 Chapter 4 M A X's BBS Page: 33 Dn: (Download access flag) This is the download access flag which specifies whether or not a user can download files (regardless of their access level) Bltn: (Bulletin read flag) This flag is set by the BBS when the user has read the BBS news bulletin. If this flag is not set when the user logs on, then the news bulletin text file is sent to the user and this flag is set. Use this flag and the "Global" edit gadget (see below) to force all users to read a new news bulletin. ANSI: (ANSI on/off flag) This flag is set by the user to tell the BBS whether or not to strip the ANSI colour codes from the text. FSE: (Full Screen Editor flag) This flag is set by the user to tell the BBS whether or not the user wants to use the full screen editor to write messages. Some terminal programs do not support all the ANSI codes required by the full screen editor. See the full screen editor help file called "FSEHelp.text". Pause: (Pause flag) This flag is set by the user to tell the BBS whether or not to pause after every full screen (see "Screen length" above). Cls: (Clear screen flag) This flag is set by the user to tell the BBS whether or not to send the clear screen code "Form Feed" (^L) to the user. Note: The full screen editor forces clear screen codes. Lck: (Locked user flag) This flag is used to stop a user from being deleted when using the "Inactive" gadget (see below). GFD: (Get File Descriptions) This flag is set by the BBS when a file has been uploaded by one of the batch file transfer protocols (YModem or ZModem). It is then reset when the user has typed in a description for all files uploaded. This is useful for when the carrier is lost after the user manages to successfully upload one or more files. When the user logs on next and this flag is set, the BBS will search the file library for any files that have been uploaded by this user and are missing the file description. The BBS will then ask for the missing file descriptions. It can also be set by the Sysop to force a check. Mask: These flags are used with the "Global" edit gadget (see below). When any one of these "Mask" flags are set, the flag or value next to it will become the global setting or value when the "Global" gadget is clicked. Flags or values with their "Mask" flag turned off will not be changed in the global edit. Comment: This gadget contains a comment, or anything about this user. This field is intended for your use only but it can be used along with the auto insert feature "%j" (see "Customizing the BBS") to Chapter 4 M A X's BBS Page: 33 Chapter 4 M A X's BBS Page: 34 give individual and unique "one liners" to the user. The comment field has a maximum of 99 characters. Top/Btm: (Top/Bottom) This gadget is used to get to the top of the user file if you are not already there, or to the bottom of the user file if you are at the top. This is useful to get to the top of the user file before performing a search (see below). Search: This gadget will do a search from the current position to the end of the user file for a match with the text in the "Search:" gadget box. The search is not case sensitive and will search all text fields, including the comment. Partial strings can be used. Guests: This gadget will do a search from the current position to the end of the user file for users with the "Guest" access level (as defined in the "User defaults (Guest)" window). Use this gadget to find and check new users. Member: This gadget will set all the values and flags defined in the "User defaults (Member)" window into the current user's file. Use this gadget to give any user a Member's status with one click! Add: This gadget will append a new user to the user file. The new user will automatically have a Member's status, and you will have to enter the user's name and details. Delete: This gadget will delete the current user from the user file. It may be more appropriate to lock a user out (access 0) than to delete them. Once deleted, the user will have to re-logon as a Guest. Note: You can not delete the first user (you). Inactive: This gadget will delete all inactive users. An inactive user is one that has not logged on the BBS for the amount of days in the "Inactive:" gadget box. The number of days is from the current system date, so be sure that your system clock is set to the correct date! The default inactivity is ninety days (three months). The "Lock" flag (see above) is used to stop a user from being deleted as inactive (the user may be on holidays or their computer is being repaired). The "Total deleted:" number is how many users were deleted by this function plus the number of users deleted by the "Delete" gadget (see above) if any. Global: This gadget will do a global edit of all users. The "Global" edit gadget is used in conjunction with the "Mask" flags (see above). When you do a global edit, each "Mask" flag that is turned on will have the flag or value next to it become the same for every user! You can do a global edit on the user's access level, time limit, download/upload ratio, last message read, time bank value and all the flags. Chapter 4 M A X's BBS Page: 34 Chapter 4 M A X's BBS Page: 35 Purge: This gadget will purge or delete all users except the first (you) in the user file. It will also reset the "Total calls" count to zero. Save: This gadget will save all changes (if any) permanently on disk. If you wish to exit the "User editor" without saving the changes then hit the "Close window" gadget instead. Files editor: This is a powerful file library editor. When selected, the file library data file is loaded into memory and the "Files editor" window is opened. All editing of the file library data file is done in memory for speed, therefore a large file library is not recommended for standard 512K byte systems. The size of the file library data file depends on the "Max" value for each file section, added together in the "Sections configure" window. A file library of 300 files would need a data file of about 60K bytes. Once you have finished editing the file library either hit "Save" to save the changes, or hit the "Close window" gadget to abort all changes. You must have at least one valid file section (see "Sections configure") to use this editor. When you first select the "File editor" a check of the sections count is done. If a discrepancy is found a "File sections count error" requester will be given. A "File sections count error" can occur when the data file is corrupted due to a DOS read/write error; you will have to restart (purge) the file library. The "Files editor" window displays the name of the section that the file is in. If a file is deleted then the section name will change to "** Deleted **". Files which are deleted by the BBS menu function 21 - Delete a file, are deleted from disk at the time of that function. Files which are deleted using the "Delete" gadget (see below) are not deleted on the disk until the "Save" gadget is used. This gives you a chance to change your mind. All deleted files will be removed from the file library data file when the "Save" gadget is used. This window also displays the time that the file was uploaded, the size of the file and the number of times that the file has been downloaded. Note: If a file is "New" ie. not public, then the download number will be displayed as "New". The two filenames above and below the current file are display and are colour coded as followed: Cyan - Normal Green - Locked Yellow - New Red - Deleted The following are descriptions of all the gadgets in this window: Chapter 4 M A X's BBS Page: 35 Chapter 4 M A X's BBS Page: 36 Up and Down arrows: Use the "Arrow" gadgets to move to the next file. The file library data file is in uploaded order, ie. as files are uploaded or added they are appended to the data file. Section #: This gadget contains the section number. Changing the section number here will move the file to another section, similar to forwarding a message. Only valid file sections can be entered (see "Sections configure"). Lock: (Lock flag) This is the gadget used to roll lock the file. As a file section becomes full ie. maximum files, the oldest file will be deleted to make room for the new file. Set this flag to stop the file from being roll deleted. It also stops the user who uploaded the file from deleting it using the BBS menu function 21 - Delete a file (see "BBS menu functions"). Filename: This gadget contains the filename. If you change the filename of a file in the data file you must remember to change the filename of that file on disk! If you do not match the filename with the filename of the file on disk, the "File not online" (line 164) message will be given when a user tries to access that file. Filenames must be unique and are not case sensitive. The maximum characters in this field is 40. Description: This gadget contains the description of the file. File descriptions are typed in by the user as they are uploaded. If a file description is missing, which can occur when the carrier is lost during a batch upload, use the "Get File Descriptions" flag (see "User editor"). The "Get File Descriptions" flag will be set automatically by the BBS if the carrier is lost. The maximum characters in this field is 59. From: This gadget contains the name of the user who uploaded the file. If a file is added (see below) then the Sysop name in the "Text editor" line 0 is used in this field. The maximum characters in this field is 40. Alias: This gadget contains the alias used by the user (if any). When files are listed and an alias exists, then the alias is used for the uploader's name. The maximum characters in this field is 40. Top/Btm: (Top/Bottom) This gadget is used to get to the top of the files, or to the bottom of the files if you are already at the top. This is useful to get to the top of the files before performing a search (see below). Search: This gadget will do a search from the current position to the end of the files for a match with the text in the "Search:" gadget box. The search is not case sensitive and will search all text fields of each file. Partial strings can be used. Chapter 4 M A X's BBS Page: 36 Chapter 4 M A X's BBS Page: 37 New: This gadget will do a search from the current position to the end of the files for "New" files. A "New" file is one that has been uploaded and not cleared using the "Public" gadget (see below). You can make all new uploads public by setting the "New files public" flag in the "System configure" window. All "New" files can not be downloaded or read until made public. This is useful to stop copyright material from being uploaded and downloaded before a Sysop can check/delete it. Note: Sysops (access 5000) can download a "New" file. Public: This gadget will make a "New" file (see above) accessible to normal users. Add: This gadget will add a new file. Added files are appended to the file library data file. If you are using WorkBench 2.0 (or higher) the BBS will make use of the "asl.library" file requester to select a file. If the "asl.library" is not available then you will have to type in the filename. When using the "asl.library" file requester, and the file you have selected is not in one of the three files file paths, then it is automatically copied from the current path into the files file path #1. The file must be found in one of the three files file paths (see "System configure") before you can continue. If not found, the BBS will bring up a requester saying "Can't find that file". You can either "Delete" that file, or select "Whoops!" to edit the filename or select another file. Once the file is found, the BBS will then fill in the size of the file. Files are added to the first valid file section found, it is up to you to move them into the correct file section. You must also type in the description of the file. The Sysop name (line 0) is used as the "From:" name. Delete: This gadget will delete the current file. The section name will change to "** Deleted **" when a file is deleted. The file is removed from the files library data file, and deleted from disk when the "Save" gadget is used (see below). You can effectively un-delete a file by exiting the files editor using the "Close window" gadget. Purge: This gadget will purge or delete every file in the file library! It is used to restart your file library (see "Delete" above). Save: This gadget will save all changes (if any) permanently on disk. If you wish to exit the "Files editor" without saving the changes, then hit the "Close window" gadget instead. Deleted files will be deleted from disk when saving. Chapter 4 M A X's BBS Page: 37 Chapter 4 M A X's BBS Page: 38 Check files: This function performs a check of your file library. When selected, the file library data file is loaded into memory and a sections count check is made. If a discrepancy is found a "File sections count error" requester will be given. A "File sections count error" can occur when the data file is corrupted due to a DOS read/write error; you will have to restart (purge) the file library (see "Files editor" above). After the sections count check, the "Checking files..." window is opened. As each file is checked, it's name and size are shown in this window. The filename is firstly checked to see if it is unique. If not, a requester "File already exists" will be displayed, click on "Continue" when ready. A check is then made to see if the file actually exists in one of the three files file paths. If not, a requester "Can't find that file" is displayed. You can either "Retry" or skip this file and "Continue". A file may not exist because it has been deleted from disk, or the file has been renamed on disk but not in the data file, or visa versa. A file size check is also made to check that the size of the file on disk is the same as the file size in the data file. If the file sizes do not match, then a "File size has changed" requester is given. You can then either skip this file and "Continue", or click on "Fix it!" to correct the size of the file in the data file. The file size may change if the file has been over written, or if the file was archived (compressed) after it was uploaded. A check is now made to see if the file size is too large as specified in the "System configure" window. In this case a "File is too big" requester warning is given, hit "Continue" when ready. After the file check is completed, changes in the data file are saved on disk (if any). Another final check is then made to find lost files that may exist in one of the three files file paths, but not in the file library data file. A requester "Lost file" will let you know if any are found, click on "Continue" when ready. Hit the "Close window" gadget at any time to abort the file check. Optimize messages: This function will load all the message files into memory to be optimized. Because of the nature of all disk file systems, any file on a disk can grow in size but never shrink unless completely over written by a new file. Therefore when new messages are saved in the data base, the BBS will try to store the message in the space taken up by a deleted message. If the BBS can not find a space big enough to fit the message, or there are no deleted messages, then the message is appended to the message files. The message files are optimized by loading them into memory, removing all deleted messages and unused space, and then saving them back on disk. Of course the larger the message base the more memory required to use this function. When the optimizer has finished, a requester will let you know how many bytes of disk space was saved (if any). The message base is also checked Chapter 4 M A X's BBS Page: 38 Chapter 4 M A X's BBS Page: 39 for possible corruption due to DOS read/write errors, if this is the case then the message base will have to be restarted. PURGE MESSAGES: This function will purge all or parts of the message base. When selected the "PURGE MESSAGES" window is opened. All deleted messages can not be restored, so use this function with caution. This function would normally be followed by the "Optimize messages" function (see above). The following are descriptions of the gadgets in this window: "Section:": This gadget contains the message section that the "Received" and "Section" gadgets (see below) act on. Received: This gadget will delete all messages that have been received or read by the user that they are addressed to. It will only effect the section that the "Section:" gadget (see above) contains. This is useful to clean up the private message section (section 0). Note: Locked messages will not be deleted. Section: This gadget will delete an entire message section. The section is specified in the "Section:" gadget (see above). This is useful if you rename a message section, or wish to remove an inactive message section. Restart: This gadget will restart the message base. All messages are lost! Use with caution. Force FidoNet: This menu function will bring up a sub menu with the phone number you wish to force. The BBS will normally auto dial your FidoNet phone numbers at the specified time (see "FidoNet configure"). Force execute: This menu function will bring up a sub menu with the program number you wish to force. The BBS will normally auto execute your programs at the specified time (see "FidoNet configure"). Force msg import: This menu function will force a "Message import". Normally a "Message import" will be done when a file is received during a FidoNet session. The InBound FidoNet files file path is checked for message bundles. If a message bundle is found it will extract the bundle using "Lharc" Chapter 4 M A X's BBS Page: 39 Chapter 4 M A X's BBS Page: 40 (which should be found in your "C" directory) if necessary. It will then read in each message bundle and process the messages contained in the file, according to the "FidoNet mail distribution" window. The "Message import" will continue until no more message files are found. It will then archive the OutBound message bundles using "Lharc" if required (if any). The program "Lharc" is available from most good Amiga BBS's and is written by Paolo Zibetti. M A X's BBS was tested with "Lharc" version 1.30 but should work with versions 1.30 and later. During a "Message import" the "DTR" signal is dropped to prevent the modem from answering any incoming calls. Config menu: See the chapter "Configuring the BBS" for the use and description of this pull down menu. Chapter 4 M A X's BBS Page: 40 Chapter 5 M A X's BBS Page: 41 BBS MENU FUNCTIONS ------------------ The BBS menu functions are the functions available to the users who have logged on your BBS. The BBS menus are configured in the "Menu editor" window (see "Configuring the BBS"). Each function is numbered and selected by the user with a single key press. All BBS menus have "Hot keys". A "Hot key" means that the key can be pressed while the menu is being printed/sent. As users become familiar with your BBS menus, they can use the "Hot keys" to select the desired function without having to wait for the menu to be drawn. Pressing "Return" will reprint/resend the current menu. Some functions have their own sub menus, in which case the key presses are fixed and can not be changed. The sub menus have text files which can be edited (see "Customizing the BBS). Some functions require extra parameters to work - these are entered in the "Extra" and "Filename/Name/Dest" gadgets in the "Menu editor". If a function, when selected, just returns (reprints/resends the current menu), then you have probably entered a bad parameter or section. Users must have the same or higher access to be able to select that menu function. Each menu has a separate text file which is what is seen by the user. You can hide parts of menus, or parts of any text file from users depending on their access level by using the "@n" code (see "Customizing the BBS"). Sample menus are supplied with the BBS. You can use these or change them to suit your needs and imagination (see "Customizing the BBS"). All BBS menu functions will accept "S" to stop or "Space" to pause (hit any key to continue) when listing, or printing a text file. The file "MenuFunctions.text" is a summary of the BBS menu functions currently available. Print out this file and have it with you as a quick look-up for editing the menus. The following are descriptions for the BBS menu functions: Function 1 - Log out: This function is used by the user to log out and finish the session on the BBS. When selected the "last message read" by the user is stored in the user file. Any other method of exiting the BBS (lost carrier, Twitted etc) will not store/remember the "last message read" by the user. If you are reading your messages quickly, and you do not wish to answer them during this login, then "Twit" yourself so that the "last message read" is not updated. You can return to those messages during your next login. If a user looses the carrier for some reason, they can return to their messages at the next login. This file is printed/sent when logging out: LogOut.text Note: Pause is forced off when printing/sending this file and the "LogIn.text" file. The BBS will then hang-up on the user (by dropping Chapter 5 M A X's BBS Page: 41 Chapter 5 M A X's BBS Page: 42 the "Data Terminal Ready" signal). Also note that If another program has also opened the "serial.device" in shared mode, then the BBS will not be able to drop the "DTR" signal until the other program closes the "serial.device". Function 2 - Goto menu: (Menu #) This function will "Goto" the menu number in the "Extra" gadget. If the BBS can not find that menu number then it will return to the current menu. This is how you move from one menu to another. Function 3 - Chat call: (# of plays) This function is used to call or page the local Sysop for a chat. If "Chat On/Off" is turned off (see the pull down menu function "Chat On/Off"), then it will give the "Sysop is busy" (line 39) message. If the current system time is not in the time slot specified in the "System configure" window, then the "Sysop is not available, try between..." (line 40) message is given. If "Chat On/Off" is on and is in the right time slot, then the chat sound sample is played. The "Extra" gadget contains the number of times the chat sample will be played. While the chat sample is being played, the local Sysop can hit any key to enter chat mode. To exit chat mode the local Sysop must hit the key. If no key is hit and the sample is finished being played then the "Sysop may chat interrupt later..." (line 38) message is given. When a user has paged the Sysop their name will turn red so that you can see that they have tried to call you. Note: Sysops (access 5000) can page the local Sysop at any time. Function 4 - Set ANSI flag: This function allows the user to set their "ANSI" flag. When turned on, the BBS will send all ANSI colour codes. When turned off, the BBS will automatically strip the ANSI colour codes. Forced at first "Guest" logon. Function 5 - Set CLS flag: This function allows the user to set their "CLS" flag. When turned on, the BBS will send the "Form Feed" (^L) code to clear the screen. When turned off, the BBS will strip the "Form Feed" code and send two "Carriage Return"'s instead. Forced at first "Guest" logon. Chapter 5 M A X's BBS Page: 42 Chapter 5 M A X's BBS Page: 43 Function 6 - Set pause flag: This function allows the user to set their "Pause" flag. When turned on, the BBS will pause when the user's screen is full. When turned off, the BBS will not pause. Note: You can force a pause using the auto insert code "%Z" (see "Customizing the BBS"). Forced at first "Guest" logon. Function 7 - Set Full Screen Editor flag: This function allows the user to set their "Full Screen Editor" (FSE) flag. When turned on, the full screen editor will be used for writing messages. When turned off, the normal editor will be used for writing messages. Forced at first "Guest" logon. Function 8 - Change # of lines per screen: This function allows the user to set the number of lines per screen. Used by the BBS to pause when the screen is full. You can only enter values from 10 to 200. Forced at first "Guest" logon. Function 9 - Change suburb: This function allows the user to change the suburb field of their user file. Forced at first "Guest" logon. Function 10 - Change phone number: This function allows the user to change the phone number field of their user file. Forced at first "Guest" logon. Function 11 - Change computer description: This function allows the user to change the computer description field of their user file. Forced at first "Guest" logon. Function 12 - Change password: This function allows the user to change their password. The password is always invisible, echoed as "." for each character. The BBS will ask for the password to be typed again for verification before making the change of password. Forced at first "Guest" logon. Chapter 5 M A X's BBS Page: 43 Chapter 5 M A X's BBS Page: 44 Function 13 - Type a file (Filename): This function will print/send a text file. The filename and path is in the "Filename/Name/Dest" gadget. Function 14 - Type a file without pause (Filename): This function will print/send a text file without pausing for each full screen, whether the user's "Pause" flag is set or not. The filename and path is in the "Filename/Name/Dest" gadget. Function 15 - Print text (Line #): This function will print/send a line of text from the text editor. The "Extra" gadget contains the line number. Use only the blank lines starting from the last line upwards, because as new upgrades are released they will use the next blank line and downwards, and therefore will overwrite your text. Function 16 - Leave a message (Section, [Name]) This a powerful function. This function will let the user edit and save a message to a message section. The user must have write access (the "Wr" flag) to use this function. The "Extra" gadget contains the section in which the message will be stored. The "Filename/Name/Dest" gadget contains an optional user name for whom the message is for. When selected, if the "Filename/Name/Dest" gadget does not contain a user name then the current user will be asked to enter the name of the user the message is addressed to. The user file is then searched to see if the user exists. If the user does not exist they will be asked to continue or abort. The user will then be asked to type in the subject of the message. After the subject is typed in either the normal editor or the full screen editor will be started depending on the "FSE" flag. A "Carriage Return" on a blank line will take you to the sub menu from the normal editor, or pressing twice will take you to the sub menu from the full screen editor. The sub menu contains list, edit, save, abort etc. commands. The sub menu has a text file called: MsgEdMenu.text See the message editor help files for descriptions of the sub menu commands and the full screen editor called: MsgEdHelp.text FSEHelp.text Chapter 5 M A X's BBS Page: 44 Chapter 5 M A X's BBS Page: 45 Note: The sub menu "(M)ove msg" command will only let the user see and use message sections which the user has access to. If replying to a message in an anonymous message section ie. "To" and "From" flags turned off, then the user is not allowed to move that message into a different message section that may show who the message is to. This is a security measure. Function 17 - Read messages (Section, 100, 101 and 102 = linked) This a another powerful function. This function will let the user read messages from a message section. The user must have read access (the "Rd" flag) to use this function. The "Extra" gadget contains the section which the messages are read from. Sections 100, 101 and 102 mean linked message sections, all sections with the "Linked" flag turned on are included in the message read (see "Sections configure"). Section 100 means all linked local message sections. Section 101 means all linked echo message sections. Section 102 means both linked local and echo message sections. Of course, only the sections which the user has access to are used in the linked message sections. When selected the message read sub menu is used to select the order in which the user wishes to read the messages. The first sub menu has a text file called: MsgRdMenu.text See the message read help file for descriptions of the first sub menu commands called: MsgRdHelp.text The second sub menu seen when the user selects "(S)earch msgs" is called: MsgSearchMenu.text When a message is displayed the "From" and "To" fields are optional and are set in the "Sections configure" window. When searching messages the "From" and "To" flags must be turned on to be included in the search. The user has the following options after the message has been printed/sent: (-) Read previous: (if any) This lets the user read the previous message or the message that the current message is a reply to. Note: If the message has been deleted then the "Message not found" (line 83) message is given. If the message is private (Section 0) and is not addressed to or from the user, then the "Message is private" (line 111) message is given. A "Carriage Return" will return to the original message. Chapter 5 M A X's BBS Page: 45 Chapter 5 M A X's BBS Page: 46 (+) Read reply: (if any) This lets the user read the reply to this message. If there is more than one reply then the BBS will only show the first one it finds. If you wish to read all the replies then select "(T)hreads" from the sub menu. Note: If the message has been deleted then the "Message not found" (line 83) message is given. If the message is private (Section 0) and is not addressed to or from the user, then the "Message is private" (line 111) message is given. A "Carriage Return" will return to the original message. (B)efore: This command allows the user to go back to the messages that they were reading before. It has a ten message history and when you have reached the tenth message selecting "(B)efore" will only reprint the tenth message. A "Carriage Return" will return to the original message. (N)ext: This allows the user to continue to the next message in the order selected in the sub menu. A "Carriage Return" will also do the same. (C)ontinuous: This lets the user read messages continuously without waiting for a response from the user. Page full pausing is automatically disabled. This command will continue until the end of the messages is reached, or "(C)ontinuous" is pressed again. (A)gain: This will reprint/resend the current message. (R)eply: This will let the user reply to the message. The "From", "To", and "Subject" fields will automatically be filled in. This command is similar to the BBS menu function 16 - Leave a message (see above), the user will return to the sub commands when finished writing the reply. (M)ark: This will let the user mark/un-mark the current message for later retrieval. Messages are automatically marked when the logon mail search is performed. (D)elete: This will let the user delete the message. Messages "To" or "From" that user can be deleted by the user only if the "Delete" flag is turned on in the "Sections configure" window, and if the message is not locked. Note: Sysops (access 5000) can delete any message. (L)ock: This is a Sysop command to roll lock/un-lock this message. (F)orward: This is a Sysop command to forward a message. This command lets you forward a message to another user and/or message section and allows you to change the subject of the message. Note: You can not forward a message into an echo message section. Chapter 5 M A X's BBS Page: 46 Chapter 5 M A X's BBS Page: 47 (E)dit: This is a Sysop command used to edit the user file of the person who wrote the message. Similar to the BBS menu function 26 - Edit a user (see below). (S)top: This will let the user stop reading messages and return to the BBS menu. Function 18 - List/Search user file: This function will let the user either list all the users in the user file in alphabetical order, or search for a user by entering a name or text search string. The search is not case sensitive and partial strings are accepted. Function 19 - Print caller log: This function will let the user view the caller log. It is similar to the pull down menu function "Caller log". Note: If an alias is used, then it is possible for a user to find the true name of the user by viewing the caller log. Function 20 - List files (Section, 100 = linked): This function will list the files in a file section. The "Extra" gadget contains the file section. Section 100 means linked sections, all sections with the "Linked" flag turned on are included in the listing (see "Sections configure"). Only the sections which the user has access to are used in the linked sections. When selected, the list files sub menu is used to select the order in which the user wishes to list the files. The sub menu has a text file called: ListFilesMenu.text See the list files help file for descriptions of the sub menu commands called: ListFilesHelp.text Function 21 - Delete a file (Section, 100 = linked): This function will let the user delete a file which they have uploaded only if the "Delete" flag is turned on in the "Sections configure" window, and if the file is not locked. The "Extra" gadget contains the file section. Section 100 means linked sections, all sections with the "Linked" flag turned on are included in the search for the file to delete (see "Sections configure"). Partial strings can be Chapter 5 M A X's BBS Page: 47 Chapter 5 M A X's BBS Page: 48 used for the filename search. If a partial string is used and the BBS finds a match, then the user is asked "Is this correct?" (line 256). Select either "Y" for yes, "N" for no or "S" to stop the search. Note: Sysops (access 5000) can delete any file. Function 22 - Read a file (Section, 100 = linked): This function lets the user read a file from the file library. The "Extra" gadget contains the file section. Section 100 means linked sections, all sections with the "Linked" flag turned on are included in the search for the file to be read (see "Sections configure"). Partial strings can be used for the filename search. If a partial string is used and the BBS finds a match, then the user is asked "Is this correct?" (line 256). Select either "Y" for yes, "N" for no or "S" to stop the search. The BBS will first check the file to see if it is a printable text file. If the file is not a printable text file then the message "Not a printable file" (line 196) is given. Note: "New" files can not be read by users (except Sysops) until made public. Function 23 - Upload files (Section): This function lets the user upload a file to your file library. The term "Upload" is used because the host computer ie. M A X's BBS is the master computer, and can be considered as on a higher level. The user's computer is the slave computer and can be considered as on a lower level. Therefore an upload is a file going from the lower level computer (the user's), to the higher level computer (the BBS). The term download (see BBS menu function 24 - Download a file, below) means a file going from the higher level computer (the BBS), to the lower level computer (the user's). The "Extra" gadget contains the file section in which the file is going to be stored. A user can only upload a file when they have upload access (the "Up" flag). The user can only perform file transfers in the time slot set in the "System configure" window. When selected and the user does not have a default file transfer protocol (protocol 0), then a sub menu is used to select the file transfer protocol to use for the upload. The sub menu has a text file called: ProtocolMenu.text See the protocol help file for descriptions of the protocols available called: ProtocolHelp.text If the user runs out of time during an upload then the BBS will wait until the transfer is finished, and add one extra minute to the user's Chapter 5 M A X's BBS Page: 48 Chapter 5 M A X's BBS Page: 49 time remaining for every file uploaded. This allows the user time to enter the file description. After a file or files have been transferred the BBS will ask the user for a description of the file(s). If the user exits the BBS (lost carrier) before the file description is entered for all files, then the BBS will ask the user for the file description(s) during the next login (see the "GFD" flag in the "User editor"). Also see "File transfer" below. Note: Sysops (access 5000) can upload a file at any time. Function 24 - Download files (Section, 100 = linked, [Filename]): This function lets the user download a file from the file library. This will probably be the most used function. The "Extra" gadget contains the file section. Section 100 means linked sections, all sections with the "Linked" flag turned on are included in the search for the file to be downloaded (see "Sections configure"). Partial strings can be used for the filename search. If a partial string is used and the BBS finds a match, then the user is asked "Is this correct?" (line 256). Select either "Y" for yes, "N" for no or "S" to stop the search. An optional filename can used in the "Filename/Name/Dest" gadget. When the filename is given the BBS will skip the filename search and proceed straight into the file transfer. The file must be found in one of the three files file paths. The file does not have to be in the file library data file. If the file is in the file library data file, then the download count will be updated on completion of the download. A user can only download a file when they have download access (the "Dn" flag). The user can only perform file transfers in the time slot set in the "System configure" window, and can only download a file if their download/upload ratio allows (see "User editor"). The user can not download "New" files until they are made public, and can only download a file when they have enough time remaining for the transfer. When selected, and the user does not have a default file transfer protocol (protocol 0), then a sub menu is used to select the file transfer protocol to be used for the download. The sub menu has a text file called: ProtocolMenu.text See the protocol help file for descriptions of the protocols available called: ProtocolHelp.text With the batch file transfer protocols (YModem, ZModem) a maximum of ten files can be downloaded in a batch. Also see "File transfer" below. Note: Sysops (access 5000) can download any file including "New" files at any time. Chapter 5 M A X's BBS Page: 49 Chapter 5 M A X's BBS Page: 50 Function 25 - Make "New" file public (Section, 100 = linked): This function allows the user (Sysop) to make a "New" file publicly available to normal users. The "Extra" gadget contains the file section. Section 100 means linked sections, all sections with the "Linked" flag turned on are included in the search for the file to be made public (see "Sections configure"). Partial strings can be used for the filename search. If a partial string is used and the BBS finds a match, then the user is asked "Is this correct?" (line 256). Select either "Y" for yes, "N" for no or "S" to stop the search. Function 26 - Edit a user: This function allows the user (Sysop) to edit another user's file. The BBS will ask the current user for the user's name to edit, and the user file is searched. If the user is not found then the BBS will ask for the name of the user again. When the user that is being edited is found, their user file is displayed. The editor is similar to the other user editors, so only a brief description is given here (see "User editor"). The BBS will ask for which line to edit or enter options "m" to make the user a Member, "x" to exit (aborts any changes) and "s" to save changes. For security reasons when editing the user's access level, the access level can only be lower than the current users access level. Also the current user can not edit a user with the same or higher access as they have. When editing a user's flags use "*" to set the flag, "-" to clear the flag and "." to leave the flag as is. Partial flag edit lines are accepted. Note: An Almighty Sysop (access 10000) can edit any user and give any access level. Function 27 - Execute external program (1 = args, Filename): This function will execute an external program. If the "Extra" gadget contains a "1" then the arguments (see below) are added to the end of the filename. The gadget "Filename/Name/Dest" contains the filename and path of the file to be executed. This function is intended to run external games and utilities. To write a program for this function the program must open the serial device in shared mode. The program can choose whether or not to use the following arguments (an ASCII string appended to the filename with arguments separated with a space and null terminated): "User name (spaces changed to underscore), Access level, Time remaining, Bps rate, Page length, Line feeds (always Y), local (Y/N), ANSI (Y/N), Pause (Y/N), Cls (Y/N)" Here is an example argument line: Chapter 5 M A X's BBS Page: 50 Chapter 5 M A X's BBS Page: 51 M_A_X 10000 120 9600 28 Y N Y Y Y The external program must keep track of time remaining and lost carriers. When the program returns to the BBS, the BBS will make a time remaining adjustment (going by the change in the system clock, if any) to the user, and will hang-up if out of time. Function 28 - CLI: This function allows the user (Sysop) to use the AmigaDOS commands similar to the Amiga's "CLI". This function works in the following way; after you have entered the command, the BBS will execute that command and redirect the output (which would normally go to a "CLI" window) to a file called: RAM:MAXsBBSFunct28.output When the control returns back to the BBS a time adjustment is made (going by the change in the system clock, if any) to the user. The output file above is then printed/sent. This function should work with any AmigaDOS command or program that normally outputs to a "CLI" window. Note: Some programs may require extra input when executed and it may therefore never return to the BBS, they will wait for extra input from the local keyboard or mouse. It is recommended that you experiment with this function at a local login before you try it from remote. Function 29 - Deposit to the time bank: This function allows the user to subtract time from their time remaining and add it (deposit) to their time bank. The user can then later withdraw from the time bank into their time remaining (see below). The user can only deposit to a maximum time bank balance specified in the "System configure" window. If the time bank balance is at the maximum then a message "Time bank balance is too high" (line 240) is given. Function 30 - Withdraw from the time bank: This function allows the user to add time to their time remaining by withdrawing time from their time bank. Note: If the pull down menu function "Countdown" has been activated then the message "Sysop needs to use the computer" (line 249) is given. The BBS will take into account the next system event when the user tries to withdraw time. Chapter 5 M A X's BBS Page: 51 Chapter 5 M A X's BBS Page: 52 Function 31 - Deposit all time remaining and log out: This function is similar to the BBS menu function 29 - Deposit to the time bank (see above), except all the user's time remaining is deposited to the time bank leaving only one minute. The BBS will then do a formal log out as described in BBS menu function 1 - Log out. Function 32 - Send a private echo message (n, [Dest address], [Name]): This function is used to generate a private "NetMail" message to later be picked up by or sent to the destination FidoNet system. The "Extra" gadget contains an argument. Use a "0" to tell the BBS to first check the destination address entered by the user to see is if it exists in the "FidoNet mail distribution" window. Use a "1" to tell the BBS not to check the destination address entered by the user. Use a "2" to tell the BBS that the "Filename/Name/Dest" gadget contains the destination FidoNet address. The "Filename/Name/Dest" gadget can contain an optional user name for the message, except when argument "2" is used. All private mail must be sent straight to, or be picked up by the destination FidoNet system. Private "NetMail" can not be sent indirectly to the destination as the message would not be private. Function 33 - Set default file transfer protocol: This function allows the user to set a default file transfer protocol. If the user always uses the same file transfer protocol, then they can specify that protocol in their user file. The BBS will not have to ask which file transfer protocol they wish to use every time an upload/download is selected. See the "User editor" for a list of the protocols available. This file is printed/sent when this function is selected: ProtocolList.text File transfer: When a file transfer has been started the BBS opens the "File transfer" window. A file transfer can be aborted at any time by clicking on the "Close window" gadget. The BBS may not respond to your abort request straight away, but it will eventually (click once and wait). Here is the information displayed in this window: Protocol: This shows which protocol is being used for the file transfer (XModem, YModem, ZModem). Definition: Protocols are agreements between people or processes about which may do what to whom, and when. Chapter 5 M A X's BBS Page: 52 Chapter 5 M A X's BBS Page: 53 Filename: This is the filename of the file currently being transferred. Size: This is the size in bytes of the file currently being transferred. Total blocks: This is the total number of blocks for the current file being transferred. Block sizes change depending on which protocol is being used. With the ZModem protocol the block size can change during the file transfer when errors are detected (see "Errors" below). Note: For batch downloads the initial number of blocks is the total number of blocks for the batch transfer. Estimated time: This is the estimated time for the current file being transferred. The estimated time depends on the bps rate that the user is connected at. This is only an estimate, and if errors occur during the file transfer then the transfer will take longer. The estimated time was calculated on the average characters per second rate for each protocol at 2400 bps. This time is used to check that a user has enough time remaining to complete the file transfer. Note: For batch downloads the initial estimated time is the estimated time for the batch transfer. Actual time: This is the actual time (timer) for the current file being transferred. The actual time is in real seconds ie. updated every second. The timer starts from when the transfer window is first opened. Some file transfer programs only update the actual time after each block. Some blocks can take up to thirty three seconds to send! Therefore it may look like there is no activity for this time. Bytes: This is the number of bytes transferred so far for the current file. With the ZModem protocol this may not start at zero because the receiving side of a ZModem transfer can start the transfer at any position. The ZModem protocol can also change the current file position at any time during the transfer. Blocks: This is the number of blocks transferred so far for the current file. With the ZModem protocol the block size can change during the file transfer when errors are detected (see "Errors" below). Errors in this block: This is the number of errors detected in the file transfer (due to line noise) for this block. If the total number of errors in a block is higher than ten (six for the ZModem protocol) then the transfer is aborted. Note: For ZModem send this field is not used as the ZModem protocol can change the file position when an error is detected, ie. may not be the same block. Errors: This is the total number of errors so far for the current file being transferred. Errors are caused by line noise and are Chapter 5 M A X's BBS Page: 53 Chapter 5 M A X's BBS Page: 54 detected by Cyclic Redundancy Checks (CRC). The CRC is performed on the block being transferred before and after the transmission, if the CRC's do not match then an error has occurred with the block during the transmission, the block is then re-sent. When an error has occurred in a ZModem download the block size will become smaller (minimum 256 bytes) as successive errors are detected. This helps the file transfer time on very noisy lines. Chars per second: This is the characters per second rate for the current file transfer. The "CPS" gauge is accurate to twenty milliseconds. If errors occur during a file transfer then the "CPS" rate will drop. If you are multi-tasking the BBS with other programs then this will also slow down the file transfer. When calculating maximum characters per second for file transfers, remember that each character has 1 start bit plus 8 data bits plus 1 stop bit. Giving a total of 10 bits per character. Therefore a 2400 bps rate will give a maximum of: 2400 / 10 = 240 characters per second. Last ZModem header: This line is only used for ZModem file transfers. It displays the last ZModem frame type and position/flags. This may be useful for debugging a ZModem program or to give you an idea of how the ZModem protocol works. Chapter 5 M A X's BBS Page: 54 Chapter 6 M A X's BBS Page: 55 CUSTOMIZING THE BBS ------------------- M A X's BBS is supplied with sample menus and text files to give you an idea of the features that M A X's BBS has. You may wish to use the BBS as it is. Most users do not want to call a BBS which is exactly the same as one already online. Therefore it is up to your imagination and needs as to what group of users you wish to attract to your BBS. M A X's BBS was written with the concept of being able to completely customize the look and feel of the BBS. All the text files can be edited with any text editor. You can also add your own text files. All menus have separate text files. All BBS text can be edited with the "Text editor" function (see "Configuring the BBS"). In fact you could even change the language of the BBS! Here are descriptions of the default text files used by the BBS: BBS.text: This is the file seen when the BBS is waiting for a call (idle). Bulletin.text: This is the file seen by the users after they have logged on. The user will only see this if the "Bulletin" flag is not set, ie. when you make an update to the news bulletin, use the global edit function to force all users to read the new news bulletin (see "User editor"). FSEHelp.text: This is the full screen editor help file seen when the user selects the help option in the full screen editor. It is recommended that you only change the ANSI colours in this file. Guest.text: This is the file seen by a new or "Guest" user when they have logged on your BBS for the first time. This file would normally contain introduction and membership information for new users. Intro.text: This is the file seen be all users just after they have logged in. This file would normally contain information and statistics about the user. ListFilesHelp.text: This is the BBS menu function 20 - List files, the file seen when the user selects the help option from the sub menu. It is recommended that you only change the ANSI colours in this file. ListFilesMenu.text: This is the sub menu file for the BBS menu function 20 - List files. The selection keys can not be changed and it is intended that you only change the look and colours. LockOut.text: This is the file seen by a user who has been locked out of your BBS (access 0). Better change this! Chapter 6 M A X's BBS Page: 55 Chapter 6 M A X's BBS Page: 56 LogIn.text: This is the file seen by the user when the user first connects to your BBS. You should change this to the name that you intend to call your BBS. Note: Pause is turned off when printing/sending this file. LogOut.text: This is the file seen by the user with the BBS menu function 1 - Log out. Note: Pause is turned off when printing/sending this file. MsgEdHelp.text: This is the BBS menu function 16 - Leave a message, the file seen when the user selects the help option from the sub menu. It is recommended that you only change the ANSI colours in this file. MsgEdMenu.text: This is the sub menu file for the BBS menu function 16 - Leave a message. The selection keys can not be changed and it is intended that you only change the look and colours. MsgRdHelp.text: This is the BBS menu function 17 - Read messages, the file seen when the user selects the help option from the sub menu. It is recommended that you only change the ANSI colours in this file. MsgRdMenu.text: This is the first sub menu file for the BBS menu function 17 - Read messages. The selection keys can not be changed and it is intended that you only change the look and colours. MsgSearchMenu.text: This is second sub menu file for the BBS menu function 17 - Read messages. This menu is seen when the user selects "(S)earch msgs" from the first sub menu. The selection keys can not be changed and it is intended that you only change the look and colours. ProtocolHelp.text: This is the BBS menu function 23/24 - Upload/download a file, the protocol help file seen when the user selects the help option from the sub menu. It is recommended that you only change the ANSI colours in this file. ProtocolList.text: This is the BBS menu function 33 - Set default file transfer protocol, the file seen when the user selects this function. ProtocolMenu.text: This is the sub menu protocol selection file for the BBS menu functions 23/24 - Upload/download a file. The selection keys can not be changed and it is intended that you only change the look and colours. ANSI codes: M A X's BBS supports all the ANSI colour codes plus some cursor movement codes. All ANSI codes begin with these two characters Chapter 6 M A X's BBS Page: 56 Chapter 6 M A X's BBS Page: 57 "Escape" (^[) and "[", the following codes are optional numbers separated by a semi colon (;) and terminated with an "m" for a colour code, "A, B, C, or D" for a delta cursor movement or "H" for cursor position. The colour codes can be as long as you like and are terminated with the "m" character. eg: [n;n...m - the "Escape" (^[) character [ - The "[" character n - A number (see below) ; - Separates numbers m - Terminates the ANSI colour code Where the "n" is a number representing a colour or attribute. Here are the available colours: 30 - Black foreground 31 - Red foreground 32 - Green foreground 33 - Yellow foreground 34 - Blue foreground 35 - Magenta foreground 36 - Cyan foreground 37 - White foreground 40 - Black background 41 - Red background 42 - Green background 43 - Yellow background 44 - Blue background 45 - Magenta background 46 - Cyan background 47 - White background Here are the available attributes: 0 - All attributes off (normal white on black) 1 - Bold on (high intensity) 3 - Italics on 4 - Underscore on 5 - Blink on (or italic if flashing text is turned off) 7 - Reverse video on (swaps foreground and background) For a delta cursor movement the ANSI string is similar to the above, except that you can only have one number and the termination character gives the direction of movement: A - Cursor move up by n (north) Chapter 6 M A X's BBS Page: 57 Chapter 6 M A X's BBS Page: 58 B - Cursor move down by n (south) C - Cursor move right by n (east) D - Cursor move left by n (west) eg: [10A The cursor will move up by ten lines For cursor position the ANSI string is terminated by the "H" character: eg: [n1;n2H n1 - Row (line) n2 - Column If the number for both delta cursor movement and cursor position are zero (0) or omitted, then they will default to one (1). Auto insert: M A X's BBS will automatically insert text into any BBS menu, text file or BBS text. There are forty seven auto inserts available. To insert text the character "%" is used followed by the character code representing the insert to be placed there. If you wish to use the "%" character without an auto insert then use two "%" characters (you will only see one). It is recommended that you print out the auto insert summary file as a quick look-up called: AutoInsert.text Here is the list of auto inserts available: %a - Sysop name (line 0) %b - Full date & time %c - Date %d - Time %e - Talking clock %f - User name %R - User first name %g - Suburb %h - Phone number %i - Computer description %j - Comment Chapter 6 M A X's BBS Page: 58 Chapter 6 M A X's BBS Page: 59 %k - Time remaining %l - Access %u - Status %m - Time limit %n - D/U ratio %o - Last message read %p - Page length %q - # of calls %r - # of messages %s - # of uploads %t - # of downloads %M - Time bank %N - File transfer protocol %O - Future %v - Last on date & time %w - bps rate %x - Total calls %y - Number of users %z - Active messages %A - Lowest message %B - Highest message %C - Active files %D - Calls today %E - Messages today %F - Files today %G - Guests today %Q - Imports today %H - Last user's name %I - Last logon date & time %J - Date & time user logged on %K - Elapsed time %L - Percentage time used %P - Mins before next system event %X - Forces hangup %Y - Waits for a second %Z - Forces a pause Hiding parts of text: Parts of menus or parts of any text file can be hidden from users depending on their access level. This is useful to hide menu functions from users who do not have access to them, and hiding parts of news bulletins with information you do not want some users to see. This is how it works; the "@" character is followed by an access level. Only users with the same or higher access level can see the text following the "@n" code. If you want to use the character "@" Chapter 6 M A X's BBS Page: 59 Chapter 6 M A X's BBS Page: 60 without an access level check, then use two "@" characters (you will only see one). Here is an example to hide the text "Only sysops can see this" from users with an access level of less than 5000: eg: @5000Only sysops can see this@0 Put an access level check of zero ("@0") after the part of the text you are hiding, so that all users can see the remaining part of the text file. Chapter 6 M A X's BBS Page: 60 Special thanks to my EX-fiance Tina Blue for her time, patience and help in proof reading and correcting this manual! Thanks Teens! "Life's a bitch and I ALMOST married one!" Fido and FidoNet are trademarks of Tom Jennings.