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