home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
os2
/
bbss10b2.zip
/
DOC
/
SYSOP.DOC
< prev
Wrap
Text File
|
1994-02-28
|
16KB
|
547 lines
-=-
The Bits & Bytes Bulletin Board System for OS/2
B&BSYS/2
-=-
This documentation is for version 1.0ß1
Stian Seeberg is about to write proper doc's now.
-=-
All included material is copyright 1991-94 by:
Terje Flaar¢nning
Boks 455 Sentrum
N-7001 Trondheim
Norway
Voice: +47-94655772
BBS: +47-DOWNNOW
-=-
Please note, the BITS0001 bulletin should also be read, it may include
important changes to the information in this file.
-=-
INDEX
-=====-
1 Introduction to B&BSYS(/2)
1.1 The history behind B&BSYS
1.2 B&BSYS vs. other BBS-systems
1.3 First time B&BSYS/2 setup
1.9 The people behind B&BSYS/2
2 Configuration of B&BSYS/2
2.1 CONFIGURATION WITH THE U(til) Co(nfig) COMMAND
2.1.1 General
2.1.2 Path names
2.1.3 File protocols
2.1.4 Archive programs
2.1.5 Nodes (Comms)
2.1.6 Timed events
2.1.7 Net-links
2.1.8 Areas
2.2 DOOR.BAT
3 Menu by menu in the B&BSYS/2 interface
3.1 GLOBAL MENU FUNCTIONS
3.2 MAIN MENU
3.3 MESSAGE MENU
3.4 FILE MENU
3.5 BULLETIN MENU
3.6 CHAT MENU
8 Script language
8.1 Scripts called
8.2 Script variables
8.3 Script commands
9 Technical info
9.1 File structures
=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=I=
1 INTRODUCTION TO B&BSYS(/2)
══════════════════════════
1.1 THE HISTORY BEHIND B&BSYS
─────────────────────────
My first meeting with modem-communications was in the summer of 1989 when
I realiced there was telephone connectors at the back of my PC (a old ITT
XTRA from 1984). I managed to connect to a local BBS and became a frequent
user there. But, my local BBS had to close down and I had to start calling
long distance which was not cheap. After a short while I got the idea of
starting my own BBS. My first BBS was using the MBBS ((C) Mike Robertson)
BBS-system and was online from early 1990. I connected to national networks
and when I got more and more conferences the MBBS system became to small, it
only supported 75 conferences. Therefore I started to make my own BBS-system
which is known as "The Bits & Bytes Bulletin Board System" or B&BSYS for
short.
Have to add something here, late in 1993 I heard about the OS/2 patches for
Borland Pascal, and this was the start of B&BSYS/2. B&BSYS will no longer
be developed in a DOS-version.
1.2 B&BSYS VS. OTHER BBS-SYSTEMS
────────────────────────────
B&BSYS is in many way like other BBS-systems. The main difference that it is
almost unlimited how big your system may grow. B&BSYS consist of a database-
structure so advanced that much bigger systems just can dream about it. This
system is not just another program but it is following all major software
development rules.
B&BSYS has a user friendly interface and it is almost impossible to "break"
the system by doing bad commands or such.
1.3 FIRST TIME B&BSYS/2 SETUP
─────────────────────────
B&BSYS/2 is easy to setup, and if you follow the following steps it should
be up and running in minutes.
[1] Unpack the main archive (B&BS*.ZIP) to your BBS directory (C:\BBS for
example) remember to unpack with directories.
[2] Be sure til place your .KEY file in your BBS directory from now on
called B&B-root. This file is supported direct from me.
[3] Execute the SETUP.CMD file with a list of your hard drive letters as
first and only parameter. For example, type: SETUP CDE at your OS/2
command prompt.
[5] Now, start B&BSYS/2 by typing BBS 0 (0 is your local SysOp node) and
register with the name "Sysop Sysop".
[6] When you are on B&BSYS/2 command line, type UTIL NAME to change your
name from Sysop Sysop to the real one.
[7] Now you may start to explore and configure your B&BSYS/2 BBS.
[8] ... but before you do all this, print out this instruction or write it
down.
That's all, now you should configure your B&BSYS/2 BBS as you wish by using
the Co(nfig) command in the SysOp menu. Good luck.
1.9 THE PEOPLE BEHIND B&BSYS/2
──────────────────────────
The main system B&BSYS/2 is entirely written be me (Terje Flaaronning) on
late evenings the last two-three years.
Thomas Stenhaug is writing QWK-support, and I'll let you know when it's
ready.
Greatings goes to:
Raymond L. Gwinn (Developer of the SIO drivers for OS/2) which has supported
me with info about SIO and the OS/2-API conserning async-communication.
Jan-Morten Havstein (Running main ßeta board for B&BSYS(/2)) which have to
live with all bugs in the preßeta versions of B&BSYS/2.
Thomas Stenhaug which is currently working on QWK support routines for
B&BSYS/2, I suspect he have something ready when you read this.
¥yvind L. Eggen (Developer of the XBoard offline reader) which made support
for the B&BSYS grab format in XBoard. The grab format has changed today,
but I hope that coming versions of XBoard will support the new format.
My mother which have paid many large phonebills the last couple of years. :-)
=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=2=
2 CONFIGURATION OF B&BSYS/2
═════════════════════════
2.1 CONFIGURATION WITH THE U(til) Co(nfig) COMMAND
──────────────────────────────────────────────
2.1.1 General
───────
Choose this option to edit the name of your BBS, the name of the current
SysOp, time-limit to give to new users, max inactivity time before automatic
logoff, access level given to new users, smallest normal access level.
2.1.2 Path names
──────────
Here you may edit information about a RAM-Disk (swap disk) just the drive-
letter followed by a colon should be entered. At the scratchpad field you
should give a complete path without a extension (place it on you RAM-Disk
if it is big (the RAM-Disk)) but with the ".".
CD-ROM Drive letters represent your CD-ROM players.
2.1.3 File protocols
──────────────
The most used file protocols are automatically setup by the SETUP process as
long as it find the protocol drivers (DSZ.EXE for X, Y and ZModem).
Some examples:
Letter: Z Name: ZModem OkErr: 0 Type: B_A
Path: C:\UTIL\DSZ.COM
Upload: port &p speed &s ha both rz &u
Download: port &p speed &s ha both sz &l
AutoRec: "**"#24
Letter: Y Name: YModem OkErr: 0 Type: B__
Path: C:\UTIL\DSZ.COM
Upload: -k port &p speed &s ha both rb &u
Download: -k port &p speed &s ha both sb &l
AutoRec:
Letter: S Name: HS/Link 1.20 OkErr: 0 Type: BBA
Path: C:\TELIX\HSLINK\HSLINK.EXE
Upload: -P&p -B&s -U&u
Download: -P&p -B&s -U&u &l
AutoRec: "HS*"#2
2.1.4 Archive programs
────────────────
These are also automatically setup .
2.1.5 Nodes (Comms)
─────────────
2.1.6 Timed events
────────────
Changes to come...
As I think you already have notified B&BSYS can run timed events. A event
consist of a entry in your system setup including when to run and such
information, you must also make a DOS batch file for the event.
The event batch files is to be placed in your B&BSYS root directory and
should be named EVENTxxx.ee (xxx is your prepadded node number and ee is
a prepadded event number which range from 01 to 10).
If you will make this batch files start other batch files, you MUST use the
CALL statment so the control is returned the the main batch file after
executing of a secondary batch.
2.1.7 Net-links
─────────
2.1.8 Areas
─────
2.2 DOOR.CMD
────────
B&BSYS/2 has the ability to run doors (external program, games ... ) all
doors is executed via the DOOR.CMD file in your B&BSYS-root directory.
DOOR.CMD is called with these parameters:
DOOR.CMD [Node#1] [Node#2] [ComPort] [PortSpeed] [BaseAddr] [IrqVector]
[DoorName] [DoorCode]
Node#1 is the number of the node, this is not prefilled.
Node#2 is the number of the node, this is prefilled with zero's to a
length of three characters.
ComPort is current comport
PortSpeed is current comport speed
BaseAddr These are the base/irq data in the node setup (PS! Be sure to
IrqVector set these to the same values as your fossil driver)
DoorName The name or number of the door to be executed
DoorCode The B&BSYS/2 DoorCode for current area
Expamles:
DOOR.CMD 3 003 1 19200 02e8 3 1 MAIN
DOOR.CMD 2 002 3 9600 03f8 4 TheGame GAME
The DOOR.CMD file may run both OS/2 and DOS executables.
=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=3=
3 MENU BY MENU IN THE B&BSYS/2 INTERFACE
══════════════════════════════════════
3.1 GLOBAL MENU FUNCTIONS
3.2 MAIN MENU
3.3 MESSAGE MENU
3.4 FILE MENU
3.5 BULLETIN MENU
3.6 CHAT MENU
=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=8=
8 SCRIPT LANGUAGE
═══════════════
B&BSYS/2 offers a small script language to allow you to make you own look
of you BBS. The scripts are called before or after important internal
functions of B&BSYS/2. All scripts should be placed in the SCRIPTS sub-
directory.
8.1 SCRIPTS CALLED
──────────────
The following script files will be executed if they are present in the
SCRIPT sub-directory:
GOODBYE.* This script is executed when a user use the G(oodbye) command
to exit B&BSYS/2 or just drop the line. The script does also
function as a goodbye bulletin.
LOGIN.* This script is executed just before the user gets his command
prompt (after display of users stats).
PREDOWN.* These scripts is executed before and after downloads, the scripts
POSTDOWN.* can be used to control download rules and so on, the scripts also
function as file transfer bulletins, but only with normal file
transfers.
PREUP.* Same as the *DOWN.* scripts but for uploads.
POSTUP.*
PREOPEN.* Same as the *DOWN.* scripts but for door usage. Be aware these
POSTOPEN.* scripts function in all areas.
PREREG.* These scripts is executed before and after a new users register.
POSTREG.*
U-[com].* Called from Utility menu if unknown command.
B-[com].* Called from Bulletin menu if unknown command.
C-[com].* Called from Chat/Node menu if unknown command.
$-[com].* Called from $ysOp menu if unknown command.
F-[com].* Called from File menu if unknown command.
R-[com].* Called from Read menu if unknown command.
G-[com].* Called from all menus if none of the above exits and unknown
command.
The astrix is a language key or just nothing for multilangual scripts.
8.2 SCRIPT VARIABLES
────────────────
In scripts you have several variables for you usage, these are:
&[1-9] User variables.
&ac Current area code.
&ad Current area door-code.
&af Current area file-code.
&an Current area name.
&td Current date.
&th Current time (hour).
&tm Current time (minute).
&tu Time used so far this logon, in minutes.
&u - - - USER RECORD VARIABLES
&ua1 First line of address
&ua2 Second line of address
&ual Accesslevel
&uc City
&ud# Number of downloads
&udk KB downloaded
&uf First name
&ul Last name
&umw Messages written
&umr Messages read (Not counted in B&BSYS/2 yet)
&un Name
&uph Home phone
&upw Work phone
&uu# Number of uploads
&uuk KB uploaded
&uta Time allowed each 24 hours
&utl Time left when logging on (&utl - &tu = time left)
&utt Time totally used
&$ - - - SYSTEM DATA VARIABLES
&$h Systems current com-handle in hex.
&$m Current menu level: M(ain), R(ead), F(ile) and so on.
&$v Display current B&BSYS/2 version.
&! - - - DISPLAY SETUP/MANIPULATION PROCEDURES
&!l Do linefeeds until cursor resides at the bottom screen line.
&!m Do more prompt.
&!w Wait for keypress before continue.
The variables can be used everywhere in your scripts.
8.3 SCRIPT COMMANDS
───────────────
A script language without commands is nothing so here they come to, these
commands are available for script programming:
@+ [uservar] [firstnumber] [secondnumber]
""
@- [uservar] [firstnumber] [secondnumber]
""
@* [uservar] [firstnumber] [secondnumber]
""
@/ [uservar] [firstnumber] [secondnumber]
""
@assign [uservar] [textstring]
"""""""
Assigns a textstring to a uservariable
"@assign 1 This is a string"
@command [commandline]
""""""""
Execute standard B&BSYS/2 command from a script.
"@command Read Enter Sysop"
@delfile [filename] {filename} {filename} ...
""""""""
Delete one or more files on the harddisk.
"@delfile B&BSYS.EXE" (not try this)
@exit
"""""
End script execution and return to B&BSYS/2.
"@exit"
@file [filename]
"""""
Open a file for output, the file is created if it do not exist.
"@file scripts\tempfile.lst"
@goto [label]
"""""
Go to @[label].
"@goto firstlabel"
@if [firststring] [secondstring] [label]
"""
Compare two strings, if equal the goto [label] of not then continue.
"@if String String ThisLabel"
@if [firstnumber] [<|=|>] [secondnumber] [label]
"""
Compare two numbers, if condition is TRUE the goto [label] if not then
continue.
"@if 1 = 2 OneLabel"
@iffile [filename] [label]
"""""""
If file [filename] exist the goto [label] if not then continue.
"@iffile scripts\tempfile.lst"
@input [uservar] [prompt]
""""""
Let the user input a text string into the given uservar.
"@input 1 Type a command:"
@log [text]
""""
Write a line to node log file. If [text] start with "$" the text go to
the .SYS log instead of the normal node log.
"@log $User has failed"
@mod [uservar] [firstnumber] [secondnumber]
""""
@run [program] [parameters]
""""
Runs an external program, this must be a OS/2-text mode executable.
"@run b&bsys.exe"
@rundos [program] [parameters]
"""""""
Same as @run, but this loads a new command interpreter before running
your program, this may run .CMD files and DOS executables as well as
OS/2 executables.
"@rundos test.cmd"
@select [words] [prompt]
"""""""
Wait for user input.
"@select YesNo Delete message?" (this go to first @Y or @N after present
line)
@set [sysvar] [value]
""""
Set a specific system variable to given value.
[sysvar] [value]
menu M,R,B,F,C,$,U
@show [filename]
"""""
Type a textfile.
"@show scripts\tempfile.lst"
@write [text]
""""""
Write a text to open file, no CRLF included.
"@write This is a text"
@writeln [text]
""""""""
Write a text to open file, CRLF included.
"@writeln This is a text line"
=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=9=
9 TECHNICAL INFO
══════════════
9.1 FILE STRUCTURES
───────────────
See your API\ directory for public filedefinitions