F.I.P.S.
BBS Setup


1. Just some things...

A BBS allows users to call your system without having a 
mailer installed.  In order to find files etc. You have to 
setup a menu-system for the users. This menu-system consists 
of plain vanilla ASCII-files, and ASCII or ANSI files for 
graphical elements.

ASCII files can be created by using a simple text-editor 
like EDIT. For ANSI files you need special editors like 
TheDraw.

In order to get a caller to the BBS you have to install the 
shareware version of FIPS or a FIPS version with the key-
option IncomingEmsi (or a Masterkey).

The legal stuff

The authors of FIPS don't gurantee, that FIPS and/or FIPS-
BBS never produce loss of data. Also the authors cannot 
gurantee that online users don't have any chances to 
infiltrate your system. For best security never place 
important files on the computer running the BBS and don't 
connect any network to it.
2. MainSetup

Besides the settings inside FIPS, you have to adopt some 
files. For the first time you should take a look inside the 
files BBSLANG.DEF, where the language dependent settings are 
stored. For each available language you have to setup a 
special directory where the menus and the text-files are 
stored. This pathes have to be configured in BBSLANG.DEF.
Additionally you have to edit the menu and textfiles which 
came with this document....

Textfiles will be amnaged by FIPS the following way:

FILE.ASC	File without any colorcodes (plain vanilla ASCII)
FILE.ANS	File with color-codes (so called ANSI-file)

Other extensions for text-files are not supported by FIPS.

Menu-structure

There is one menu that always must exist: MAIN.MNU is the 
first menu called by FIPS.

Special textfiles

The introduction screen is called LOGO.ANS . This file will 
be displayed to the user before he logs on.
The file NEWUSER.ANS/ASC will be displayed to new users, 
before they have to answer the questions for terminal-
settings etc...

All menus and text-files have to be placed in the 
directories which are setup in BBSLANG.DEF !

3. Userlevels and Groups

In a BBS it is often important that different users have 
different access-levels. For such a situation securitylevels 
(just a number between 0 and ...) and groups or flags (in 
FIPS-BBS letters from A to Z) are available.
The access-level for each user is a combination of 
securitylevel and groups. In order to activate a function, 
an user have to have at least a securitylevel for this 
function, and has to be placed in each group which is 
necessary for this function.

Example:

A function has accesslevel 10 and the groups AMZ

User 1 has accesslevel 5 and groups ABNMXYZ
User 2 has accesslevel 15 and groups ABCFNXYZ
User 3 has accesslevel 10 and groups AEMXZ

  User 1 has no access, because he has a lower 
securitylevel then the function
  User 2 has no access, because he does not belong to group 
M
  User 3 has access

If a function belongs to group *, every user can access this 
function if his securitylevel is higher or equal the 
accesslevel for this function.

If a new user logs on to your system he won't be assigned to 
any group. Please consider this if you design your own menu-
structure ! 4. Das Menusystem

Each menu is a plain vanilla ASCII file. Each line in such a 
menu consits of one command. Here is a short example:
============================================================
=============
DisplayFile 0 * Header

OutPut 5  A
OutPut 5  A  "^[B0   ^[B2      ^[FF                
Hauptmenue                          "
OutPut 5  A
OutPut 5  A  "^[B0     ^[B1^[FF         [^[FED^[FF] Gehe zum 
Dateibereich                    "
OutPut 5  A  "^[B0     ^[B1^[FF         [^[FEN^[FF] Gehe zum 
Nachrichtenbereich              "
OutPut 5  A  "^[B0     ^[B1^[FF         [^[FEE^[FF] Aendern 
der Einstellungen                "
OutPut 10 C  "^[B0     ^[B1^[FF         [^[FES^[FF] 
Statistiken                              "
OutPut 5  A  "^[B0     ^[B1^[FF                                                      
"
OutPut 5  A  "^[B0     ^[B1^[FF         [^[FB!^[FF] 
Verlassen der Mailbox                    "

AddCommand 5  A D  GotoMenu FILES
AddCommand 5  A N  GotoMenu MAIL
AddCommand 5  A E  GotoMenu SETUP
AddCommand 10 C S  GotoMenu STATS
AddCommand 5  A !  ExitBBS
============================================================
=============

As you can see above, each Command is followed by a number 
and one or more letters (number and letters are seperated by 
a space).
The number represents the accesslevel, the letters are the 
groups.

Example:

Output 0 * "This is a test"

Will be displayed always !

OutPut 5 ABF "Test again"

Will be displayed if the user has at least securitylevel 5 
and belongs to groups A, B and F !

If you want to add a certain command to each menu available, 
so you can place this command in the GLOBAL.MNU file, which 
will alsways be executed when a menu is displayed.

The Command OutPut

With this command you can output strings to the console. In 
these strings there can be macros for some special actions 
like changing the active color etc... 

The text has to be placed in quotations-

The most important macro is for changing the active color !

A macro always starts with the  ^ sign. 

The table for color-macros is as follows...

Colormacros
------------------------------------------------------------
-----------------
			Foreground	Background
------------------------------------------------------------
-----------------
Black			^[F0		^[B0
Blue			^[F1		^[B1
Green			^[F2		^[B2
Cyan			^[F3		^[B3
Red			^[F4		^[B4
Magenta			^[F5		^[B5
Brown			^[F6		^[B6
Grey			^[F7		^[B7
Darkgrey		^[F8
Blue(light)		^[F9
Green(light)		^[FA
Cyan(hell)		^[FB
Red(light)		^[FC
Magenta(light)		^[FD
Yellow			^[FE
White			^[FF
------------------------------------------------------------
-----------------

And now some special macros...

Carrige Return			^M
Wait for RETURN		^R
Delay of one second		^D
time lefdt in minutes		^#
clear screen			^[CS
display a file			^@<Dateiname>@

The Command DisplayFile

With this command you can display a textfile to the user 
(have a look to the example menus).

The Command ClearScreen

Cleares the screen, what else ;-)

The Command AddCommand


With this command, hotkeys will be added to the commandlist. 
Each menu will take a action on certein keystrokes which 
cann be defined using the AddCommand directive.

AddCommand 0 * M  GotoMenu MAIN

This will cause a jump to the menu MAIN.MNU if the key M is 
pressed.


Available AddCommand Extensions

The description of the following extensions is not very 
detailed. It will be the best if you take a look into the 
example-menus !

  GotoMenu <Menuname>

Jumps to a new menu (do not add the extension .MNU !)

  ExitBBS

Leave the BBS

  ChangeLanguage

Activates the dialog for changing the users language.

  ChangeAdress

Here the user can change his mailingadress.

  ChangeTelephone

Activates the dialog where the user can change his 
phonenumbers.

  ChangeANSI

Asks the user to display ANSI or not.

  ChangeLPS

With this command the user can change the lines per screen.

  ChangeFileArea

Allowes the user to change the current filearea. Fileareas 
can be defined inside of FIPS !

  ChangePWD

Lets the user change his password.

  DisplayArea [AUTO]

Lists the current filearea. The parameter AUTO is optional. 
If you add this parameter, FIPS will serach the current are 
for missing files, and add them to the FILES.BBS file before 
displaying it.

  SearchFile

With this command, the user can search for a keyword in all 
accessable fileareas.

  CheckForMail

Searches for new mail for the user (will be called 
automatically by FIPS-BBS when the user logs on).

  EnterMail <Name>

Gives the user the possibility to write a mail to the sysop 
or another user. The field <Name> will be put as default if 
it exists.

  Upload <Path>

With this command the user can transfer a file to your 
system using the zmodem protocol. The file will be placed in 
the <Path> you specified or if you set @CURAREA@ as path in 
the current filearea.

  Download

Let's the user download files from your system.


  EditMarked

Let's the user edit the list of marked files.

  YellSysOp

Yells the sysop for a chat.

  DisplayFile <filename>

Displays an ASC/ANS file.

  DisplayFileWait <Dateiname>

Same as above, but waits for a RETURN when the end is 
reached.


5. The User

An User is someone who calls a BBS using a standard terminal 
program like HyperTerminal.

6. The SysOp

The sysop is the operator of a BBS, in this case you are the 
sysop.

If a user is online, some special keystrokes are available 
only for the sysop.

ALT-H		hangs up the phone at once.

ALT-C		initiates a chat with the use

Cursorkeys	with cursorup and cursordown you cann 
increase or decrease the time left for the user.

When an user is online, you can also send keystrokes to the 
terminal. This is quite usefull if the user is not so 
experienced and you can help him navigating through your 
menus.

7. The Fileareas

In order to let the user know which file stands for what, 
you have to place a FILES.BBS file in each directory where 
files are located. If a file is not mentioned in such a 
FILES.BBS file, the user cannot see the file, but he can 
download the file if he knows the filename !

The structure of a FILES.BBS file:

DATEINAME.EXT The first description line
 +the second line of the description
FILENAME.EXT And again a description for a file
 +which continues in line 2
 +and also in line 3 !

The description has to start at column 14 when there is a 
filename in this line. Each additional description has to 
follow straight up and has to begin with a space followed by 
a plus.

8. Mailstuff

There is one messagearea in FIPS which is called $BBSMAILS$. 
In this area you can write mails to users of your BBS and 
vice versa. FIPS will create this area automatically, just 
go in your BBS one time and write a mail to yourself.
 
9. Macros in ASC/ANS Files

Ist often quite important to display special variables in an 
ASCII or ANSI file. Here are some macros for this stuff:

~N	Fullname of the user which is currently online.
~S	Street
~T	Town

~P	Phonenumber
~F	Modem/Faxnumber

~L	current language


