FoReM CBBS Documentation-12/08/83
The FoReM BBS system consists of 6 programs and a number of data and text
files. Any file that has a 3 character extension in its file name is
either a data file (DAT) or a text file(TXT). It is necessary to move these
files from your program disk to your working data disk before you attempt
to run the bbs. After you initialize the system, These files may be
edited as you please, but the file STATUS.TXT, must retain the same format
or else the system will generate an error when a user attempts to use the
profile function.
There are 6 programs on your program disk, plus DOS,Dup and AUTORUN.SYS.
You cannot substitute your own DOS/AUTORUN system for the following reasons:
The autorun file contains the machine language clock for the bbs. If you replace
it,the system time will never change. This program is too large to run under
ATARI DOS 2.0S or 2.0D (let alone OS/A+). It must be run under Wordmark's
MYDOS 3.05,3.07 or 3.08. It will not run using MYDOS 3.14, however it
will run on the ATR 8000 using the 850. As of this date, there are still bugs
in the ATR's 850 emulator that keeps this program from functioning properly.
The program START is a menu that allows you to select a FoReM system program.
The option for the disk utilies does not send you to DOS. It selects the
FoReM download file utility.
The program INITBBS, is the program used to initialize and maintain your system
message files. You can add,delete,expand,or rename and message base. In this
system, the words 'message base','conference' and 'board' are used
interchangably. INITBBS is the first program you should run to set up
your system. Select option 'initialize bbs'. the program will prompt you
for how many message bases to set up, their names and how many sectors you
wish to allocate for them. This system will allow up to 26 message bases;
assuming you have the disk space. Each message base can only hold approx 46
messages. It has been my experience that each one of these should be about 150
single density sectors. If you are running double density, be aware that
this program accepts numbers as 128 byte sectors. So still request 150
sectors. Your DOS directory will show the proper 75 double density sectors.
The message files generated by this program are similar in design to those
used in the AMIS system, but they are not compatible. The program will
prompt you if it should initialize the password data file. The first time
you init the system, you must answer yes. It will ask you how many sectors
to allocate. Each password uses 50 bytes of disk space and each sector
has 125 data bytes available. This is simply to pre-allocate disk space,
so that as the system aquires uploaded files, it does not crash when
attempting to save a new password. The system will automatically increase
the size of the password file, if it tries to save a new password past
the current end of file.
The program MESSFIX, is a utility program used when an error occurs in your
data disk. Like AMIS, this system using indexed sequential message files,
which are accessed by the ATARI random access note/point routines. If your
disk develops a problem such as a bad sector and you simply copy your
message files to a new disk, you will find that they no longer function due
to and error 164. This can be fixed by running MESSFIX which will correct
the point values. The function in this program to rebuild the system
configuration file does not work properly. If you have a problem with your
data disk, the way to fix it is as follows:
1) copy all good files over to a new disk. If your CONFIG.DAT file is bad,
you have no choice but to reinitialize the entire system using INITBBS.
2) If there was a problem in any of the message files,(either a
DA[x] or an IS[x] file), then reinitialize that particular file using the
reinitaialize one conference option of INITBBS.
3) run MESSFIX to correct the point values.
4) go get a mellonball shooter. the official drink of Rickey Moose.
The program VALIDATE is used to maintain the user password file. With
this program, you can change a user's name, password, access level or
phone number. You can also do a general edit of the file requesting
that passwords not used in any given length of time be flagged. The
program can search for a name or password and either display or
automatically delete it. It can also automatically delete any password
not used in any given period of time more tha 30 days. The system
has 26 levels of access. You must give yourself level 25. (0-25)
Level 25 allows you remote sysop access, the abilty to print messages,
down/upload system files, read/delete any message...etc.
The program DISKUTIL is a utility program to manipulate the download files.
Besides the ability to delete a dl file, this program manipulates the
qualifiers on the dl filename. These parameters are translation mode,
program language, program application and access level required to
download the program.
FOREM26M.2 is the main bbs program. Upon running, you enter the
time and the date. At this point the program will set up a display list
giving you a 20 line monitor (all output is echoed to the screen) and a 4 line
text window. This window will tell you a number of things about the
current caller. Included are his name and access level, the time he
logged on, the functions he has used (reset at mod 20=0), his caller number,
the number of callers since bootup, the current disk file in use,
the current 850 translation mode, the number of messages in the system,
and the number of messages entered since bootup.
The program will then display a series of numbers. This program is so large
that it uses the ATARI's forced read mode to delete the initalization
code to make room for the text buffer.
The program will then display the current time in the center of the screen.
At this time, you have three options. Pressing the OPTION key will
toggle the sysop paging system on and off. A graphic representation of the
system being on or off is shown in the lower right hand corner of the
text window. Pressing the START key will end the program and save the current
system configuration to disk. If you do not end the program in this way,
the only detrimental effect will be that the caller number may not be correct.
There will be no harm done to any random access file. Pressing the SELECT
key will allow you local access to the system. The system will display
the welcome message and return with a prompt for password. The first time
you log on to the system you must apply for a password, just like
any first time user. After you apply for a password, you must give youself
password level 25. You can do this in one of 2 ways. In either case,
you must save your password to disk by logging off and requesting that
your password be saved. In the first method, before you log off, while
at the main select prompt, hit the BREAK key. Then type GOTO 90 and
RETURN. The system will prompt 'NEW LEVEL'. Type 25 followed by a
RETURN. Then Type P and RETURN to verify that it was accepted.
The other method is to logoff, and then end the BBS and run validate.
Answer yes to the validate request to check only new users. Then change your
access level to 25.
Having level 25 does a number of things for you.
You can:
Read all locked messages
Delete any message
Route a message to the system printer
Download any file including system files
To download a system file, if you have level 25, when the system
asks for a filespec, give it the entire filespec except the device name,
but including an entire 3 character extender (you may have to pad it
with blanks)
To upload a system file with extender,
access the $ remote sysop function.
The $ function will prompt you for a XIO command number and
filespec. You can use XIO 32,33,35 and 36 to respectively rename, delete,
lock or unlock a file. you must delete a file before uploading
a new version.
The system operator also has priority when a caller is online. All system
output that the caller sees is also echoed to the screen. When the system
is waiting for input from the caller, the sysop can locally type over the
callers input. In this way, you can enter commands for him.
In addition, when the system is waiting for input, the computer's console
keys have the following functions:
OPTION stops the program at line 100. This is done because the break key
does not work when the system is in the concurrent I/O modem. The program
can be continued by typing CONT.
SELECT will display 'system coming down' and log the user off.
START will break the system into 'CHAT' mode.
Pressing both OPTION and SELECT will allow you to change the user's access
level while he is online. valid levels are 0-25. Only the sysop should
be given level 25. Level 0 will not allow the user to upload or to
enter messages. This is done to deter system crashers.
If you should happen to hit option just slightly before select and you get
stopped at line 100, type 'GOTO 90' to get to the new level prompt.
the user will be automatically logged off if there is no input in
approx 3 minutes.
When the sysop is online locally, if he pages himself using option Y,
the system will go into terminal mode. The system can then be used
as a primative terminal emulator to call other computers and bbs's.
The translation mode will be whatever mode the bbs was in, so to
switch it, you use main menu option A. To switch to ASCII mode,
instead of hitting return at the prompt, hit any other key.
Random notes:
To exit from CHAT mode, press the ESCAPE key.
When in local mode, if you use the Y command, the system becomes a simple
terminal emulator. This is normally in ATASCII translation. However,
you can switch to ASCII, by using the A command before the Y command
and hitting any key except RETURN at the hit <RETURN> prompt.
There is a small amount of command stacking available.
When changing conferences, you can use z-x;from-to or #;#;#;#
where x is the conference number and from and to are numeric values
or where # are valid message numbers.
z-x;e will route you to enter message on board #x
With z-x;m you change boards and go to the main select prompt.
When in the read message section, at the READ,TITLES,QUIT prompt
you can use r;[list] or t;[list] where list is either a message
range or list of message numbers.
+ and - for full forward or reverse work here as well.
Also when reading messagess, the reply, delete and main menu parameters
at the end of a message can be queued so that
d/r/m d/r d/m r/m r/d/d r/d all work. m must always be last.
As of this moment, P cannot be used in a queue.
It is preferable to have the d go before r so that an extra message is not
rolled off the index queue.
When uploading or downloading, in any place a d or u is requested by
a prompt, you can use the d or u followed by a delimiter and then
the filename. ex. D;AMPLUS83
U;FOREMDOC
A level 25 response would be D:PAS.DAT
Yes, a user with level 25 can download your password file, so don't
give it out. It is for sysop only.
Little things the system does:
There is a SYSUSR option on the message system.
If a message is addressed to sysusr:x where x is a password level from 0 to 24,
the message will be flagged as mail to any user with a password level
greater than or equal to x. If the message is locked, only these users
will be able to read it.
There is no equivilent to the AMIS messages program.This system automatically
maintains the message files. There is only enough memory in FOREM to
index approx 46 messages. This is a 46 element queue so that as the 47th message
is entered, the first one is lost. However, its is only eliminated from
the index file. This is also true of a message that is deleted. It is
only deleted from the index. AMIS has a program that allows you to
edit out messages and compact the file. Although AMIS can store
over 200 messages, they must be compacted manually.
FoReM is all automatic. At 4 am
(or if a caller is online at 4, immediatly after he logs off),
the system will automatically compact the message data files, only
if a message has been deleted from the index.
In addition, in AMIS, if a message is attempted to be saved past the end
of the random access data file, AMIS will simply not save
the message. FoReM will save the message in a file called MTEMP.DAT,
delete the first 5 messages from the index, compact only the message
data base in use, and then resave the message.
The paging system is automatically toggled off between midnight and
7 am. Contact me if you wish to eliminate this feature.
This system supports multiple drives without any code modification. It can
run up to 8 drives in any mix of 8", 5 1/4", single sided, double sided,
double density...etc...
System logic is as follows.
For downloads, the system will scan from drive 1 to drive 8 looking for
the file.
For uploads, the system will start at the highest number drive it finds
online and scan backwards until it finds the first drive that can
take the upload.
ALL SYSTEM DATA,TEXT AND MESSAGE FILES MUST BE ON DRIVE 1.
The reason it is done this way, is that the password file grows over time
and the message index files are dynamic. That is that their size varies
with how many messages are in the system. By uploading to the highest
drives, it lessens the risk that drive 1 will be filled generating
an error when an attempt is made to save a message or password. In additon,
the system will not allow an upload that will leave less than 30 free
128 byte sectors (15 double density) for message and password file
growth. It is most likely that the only reason you would ever get a full
disk error is that you did not allocate enough space for passwords using
INITBBS and the password file grew beyond the 30 sectors allowed. If this
should happen, you must delete download files from drive 1 to free up
space, then run INITBBS to allocate more space. Remember, 1 sector is
equal to 2.5 passwords.
System requirments:
Minumum 40k ram. This system will not work with the RAMDISK by Axlon.
ATARI 850
Any autoanswer modem. No Hayes Smartmodem commands are used. However,
a 1200 baud version is available for use with the Hayes 1200
Smart modem. This version will automatically detect baud rate at
connect time.
Any 850 comptible printer.
1-8 drives of any ATARI compatible type.
A version will soon be available to take advatage of the Mosaic
64k Ram select.
More random notes:
You cannot use SYSTEM RESET. The ml clock routine is stored in the
cassette buffer. When reset is hit, the os cassette initialization routine
locks up the computer.
Purpose of the user line length parameter:
The system asks the user for his maximum line length. This does not
add a cr/lf at end of that many character of output. Many users with
80 column displays do not like to be restricted to 40 column lines
when entering messages. If a user selects a line length of 41 to 80
characters, he will be allowed to enter messages of 15 lines of that
many characters. If he selects 40 or less, he can enter messages of
30 lines of that many characters. A message to sysop defaults to
15 lines of 80 characters.
This system has a full featured line oriented text editor patterned
after the IBM CMS editor, but obviously only in command style. It allows
line gotos, string replacement, line insetions, up,down, block delete...
It is possible to restrict access to message bases by access level.
It is easiest in the BASIC version to restrict access as follows:
Either access is restricted to users with an access level <= the
conference number, or conferences above a certain number are
restricted to users above a particular level. In either case,
the boards not open to the user will not appear to them in mail check
or in the list of boards to switch to.
This program fully supports the enhanced Xmodem of AMODEM PLUS and
MOOSE MODEM terminal emulators. Up/downloads of more than 255 sectors
are permitted. But ONLY WITH THOSE 2 PROGRAMS. Uploads are not
allowed without using Xmodem.
Coming soon to the the ACTION! version:
Any conference can be restricted to any an particular access level
Example board 19 may be restricted, but 20 may be open to all.
Each function may be restricted to any level unlike the current version.
(Now only level 0 may be restricted).
Cursor control conversion for IBM PC compatible machines.
support for new MYDOS subdirectories.
String search for message editor.
Machine language code.
Restrictions to sysusr-either by access level or by privelige in
user password record
Review:
To first set up the system:
Format a disk to use as your working data disk.
Boot with BASIC the FoReM program disk.
Select initialze bbs.
Set up for however many confereces you want.
If using a single density disk, either do not have more
than 3 boards or give them more than 150 sectors each.
A maximum length message, 15 lines of 80 characters
can use about 12 sectors for storage. Most messages are
nowhere near that long, so 46 can usually fit into that
small a space. You should never use less than 100, as
when the system fills up, it will constantly be compacting
when saving messages, which is a slow process.
Set up password file. remember each password takes 50 bytes which
is 2.5 per sector. you should allow for at least 200 users.
My system has about 400 valid passwords.
Exit to main menu.
Go to DOS.
Move all DAT and TXT files to your working disk with DOS option C.
Reboot with BASIC.
Run FoReM.
Enter date and time.
When clock appears, press SELECT.
Enter none for a password.
Apply for system password.
At main menu, hit BREAK.
Type GOTO 90.
Enter 25 and hit RETURN.
Type p and RETURN to verify.
Logoff requesting that the password be saved. (you will be prompted
to always use y and n and not yes and no).
You can now log back on with sysop level.
To validate your users passwords, either hit OPTION and SELECT while
they are online and the system is waiting for input, or run
validate.
Matthew R. Singer