Citadel-68K System Related Notes
---------------------------------
The Citadel-86 documentation is generally applicable to Citadel-68K for
the Amiga. However, there are some features which the Citadel-68k
do not supported, Some will eventually be worked on, and other may never
get done.
In general you can get help on Citadel 68K by calling one of the following
Citadels:
The Amiga Zone: 609-953-8159
Images 612-884-7951
Full Circle 612-827-3214
C-86 Test System 612-470-9635
You also can call most any local Citadel and post messages in the Citadel 68K
room or the Amiga room. Both rooms are netted to the Amiga Zone and will
eventually reach me. I have spent a fair amount of time on this document,
cannot guarentee everything... If you find an error, please let me know.
I suggest that if you are thinking of starting a Citadel BBS, you should
first become familar with a local sysop of a Citadel BBS. Next, get a
separate phone line for the BBS alone. If you run a BBS and it is not a
24 Hour BBS, you will find few callers. Next, decide what kind of theme
your BBS will have. A theme will attract callers. Now, you need to see
if you have the resources to run a BBS. I have seen big systems and small
run Citadel. 2 floppies plus 1 MB memory is barely enough to survive.
Since the Amiga multitasks, you can do other things while the BBS is
running. I would recommend a minimum of 2 megabyte of memory plus at
least 3 floppies or a hard drive. You can run a Citadel on less, but
probably will not last long with only a few messages and rooms. I would
recommend 2 MB of memory and a 20 MB HD to most Citadels as the "normal"
configuration. I have 7 MB of RAM and 112 MB of Hard drive. The more
memory the better, I get problem reports from people with the "minimum"
RAM that I truely think are due to lack of memory.
Lastly, get the lastest Citadel, Documenation files and spend about a week
reading this and the other Citadel documenation. You will be confuse and
probably will not understand most of it. Now take the ctdlcnfg.sys from
the archive(if you did not find one in your archive, get the real thing
from one of the systems above) and change the appropriate parameters.
Set things up and go on the air. Once you have had a few callers, been
working on your BBS and feel confortable with it's operation, check with
local citadel sysops and connect up to the network. You will have to find
out who is the "local feed" in your area, just ask any sysop. Make your
arrangements and changes to the ctdlcnfg.sys and you will be connected
coast to coast. I suggest that you make an attempt to get the Amiga and
Citadel 68K rooms shared with your system. I and other Sysops will post
information on upgrades and problems. Remember, Every Sysop was in your
shoes at one time or another. We all started out the same way. We are
all pretty much a friendly bunch(no matter how much we argue on the net!)
and are glad to help. When you connect up to either room, place what
is called a seed message telling everyone who you are,where you are
located, and your Node ID. You might be surprised who might give you a
call(me for one!).... Good Luck!
INSTALL3.MAN
------------
o Later on in this manual is a list of some of the parameters that you
can control. All the configuration parameters are documented either in
the INSTALL3.MAN or later in here.
o Ignore all references to the EASE utility. Currently, the only Amiga
Ease program that exists does not work. It has been given low priority
over other things. I am creating an Amigatized version that will make
it very easy to configure your system. Check on the Amiga Zone for
possible demo or crippleware versions.
o Ignore references to supported machines and operating systems.
Citadel-68k is for the Amiga line of products.
o Ignore references to DOS configuration. INSTEAD -- you must make sure
you have STACK 65000 in your Amiga setup. More it better, If you have
the memory, use it. I set my stack to 65K and have had no problems.
CTDL checks for a minimum of 65000. CONFG does not check(nor do the
utilities). I recommend a 30K stack for them.
o Section II.6.b -- when specifying directories for system data files (like
#MSGAREA, etc.), you may use either relative or absolute directory
specifications, rather than being constricted to subdirectories of the
current directory. Use standard AmigaDos file and pathnames.
o Parameters not supported in Citadel 68K
#IBM #COM #OLDVIDEO
#FOREGROUND #BACKGROUND #STATUS-FOREGROUND
#STATUS-BACKGROUND #SEARCHBAUD
o Ignore Sections II.10.b, II.10.c, II.10.d.1, II.10.e (especially!), and
Section III.
OPER3.MAN
---------
o Section VIII.4 (File Transfers while in Chat Mode) references the PC's
PG UP and PG DN keys as primary methods to download and upload in chat.
Since the Amiga has no such keys, you must use the alternative described
-- CTRL-E for Uploads, CTRL-F for downloads -- if you use Citadel for
BBSing at all. Performance in Chat mode is not good when calling other
bulletin boards. There are problems if you need to use the escape key
on the BBS you are calling, since Citadel will think you want to exit
the chat. Use a terminal program instead!
o Section VIII.7 is not correct for the Amiga. The Citadel 68K status
line shows the current user, Room they are in, a time of day(see #CLOCK)
and some status information which will indicate the state of Citadel.
If you see:
E - Echo enabled C - chat enables, ^A - anytime net session
^T - Sysop Call option
For example: a "CE" indicates Chat enabled, Echo enabled.
o Section XII (Outside Editor) is implemented but works a little oddly.
If you are using an editor like TURBOTEXT that will release the starting
process, it will not work correctly. With TURBOTEXT, use the commands
#EDITOR "TTX WAIT"
#EDIT-AREA "CIT:temp/"
This way it will hold up the process and CTDL will be able to get the
file AFTER you changed it. Without the "WAIT" it does not work correctly.
OTHER NOTES
-----------
o The Read forward command has two parameters which may be substituted
for the date. These are YESTERDAY and TODAY. The commands would look
like:
.RF TODAY or .RF YESTERDAY
Also instead of the date(i.e. 92APR02), you may specify the number of
days to go back with:
.RF 5 <-- Read forward from 5 days ago.
o Citadel uses the req.library. You will need to have that in the libs
directory. This is found on the fish disks and other PD collections.
o There is an AREXX port in Amiga Citadel. The AREXX capabilities of
Amiga Citadel are limited to execution of simple instructions. The
port name of the program is "Citadel68K". These instructions are as
follows:
"setchat" 0/1 -- sets chat mode
"setecho" 0/1 -- sets echo mode
"setnouserdisable" 0/1 -- sets Call Sysop flag
"exit" 0/1 -- forces ctdl to exit with 1 bypassing protection
to keep from kicking off users.
"version" -- returns version of program
"serialenable" 0/1 0/1 -- enables/disables serial.device with the
second parameter determining if the program should override
protection to prevent a user from getting kicked off.
I plan to add other AREXX command to Citadel 68K as people request
them(if they are possible to do).
o There are Amiga Specific commands in Ctdlcnfg.sys. These are:
#WBENCHWINDOW -- Placing this in the file tells ctdl to open a window on
the workbench screen rather than create a new screen. The next two
paramaters work differently based on the presence or absence of this
paramater.
#SCREENWIDTH n -- Describes the width of the screen when a new screen is
created. Otherwise it describes the width of the window created by the
program on the workbench screen.
#SCREENHEIGHT n -- Describes the height of the screen when a new screen
is created. Otherwise it describes the height of the window created by
the program on the workbench screen.
#SCREENCOLOR0 n -- The background color (pen 0) of the screen that ctdl
opens. This is the RGB value broken down in binary expressed as a
decimal number. This number is created by the pattern 0000rrrrggggbbbb.
Example Red Intensity 8 is 2048.
#SCREENCOLOR1 n -- The foreground color (pen 1) of the screen that ctdl
opens. This number works the same as screencolor0.
#DISABLEEHO -- if this parameter is present, console echo will be
disabled upon startup of ctdl.
#DIRECTTOCHIP -- if this parameter is present, serial output will be
directed directly to the chip that handles serial I/O, bypassing the
serial.device. This should work for all systems and is only a selection
because of choice.
System Setup:
The following files are mentioned in the other manuals, this is just a
summary for the budding sysop. These files are created by CONFG unless
otherwise noted. Some you will create to add features to Citadel.
o CTDLMSG.SYS. This file contains all the messages in the system.
o CTDLROOM.SYS. This file contains information about the rooms in your
system. The size of this file is given later in this
manual.
o CTDLLOG.SYS. This file contains all the accounts for users on your
system. The size of this file is given later in this
manual.
o CTDLNET.SYS. This file, if it exists, will be 0 bytes long when
initially generated by CONFG.EXE.
o CTDLFLR.SYS. This file contains information about the floors in your
system. This is the only file of this group is not
static; it grows as you add floors to your system.
Don't panic, though. Each floor only takes 21 bytes.
o CTDLARCH.SYS. This file contains data about auto-archiving of rooms
(an advanced topic to be covered under day-to-day
operations).
o CTDLNET.SYS. This file, created by CONFG, will be expanded by
CTDL if you are participating in a network.
o CALLLOG.SYS. This file, an optional text file, is updated as each
caller hangs up. This will be placed in the #CALLAREA
o CTDLDIR.SYS. This file contains data about the directory rooms on
your system, specifically the name of the DOS directory
associated with each directory room on your system.
Optional items
I will not say too much about these since they are optional and not needed
to startup your system. They are covered in detail in the other manuals.
o CTDLPROT.SYS If this file exists, it contains information about
external protocols. To get Zmodem for example, you
need to file a Zmodem program(See P342.lzh) and add
the information to this file.
o RESULTS.SYS This file specifies your modems response codes. You
really should have one of these that looks something
like:
#result-300 Connect 300
#result-1200 Connect 1200
#result-2400 Connect 2400
#result-9600 Connect 9600
#no-dialtone No Dialtone
#no-carrier No Carrier
#ok OK
#error Error
#voice Voice
#busy Busy
#ring Ring
Without this file, CTDL will work, but you get
improved performance with it. You can cut this section
out of this file, remove the leading spaces and use
it as is.
CONFG PARAMETERS:
To setup a Citadel, you have to create a file called CTDLCNFG.SYS. It
is read by CONFG and all the other files are created. The most confusing
part of being a sysop is setting up this file. The parameters here are
explained in enough detail so you can setup your system. Use the example
file in the archive to setup all the details.
#nodeTitle "
"
The first parameter you should find is called nodeTitle.
It is a string value that obeys formatting directives,
and is subject to formatting considerations. nodeTitle
is the title of your installation that is printed when
is detected on your system. More precisely, nodeTitle
will show up in the following place on your system:
Welcome to
Running ...
However, nodeTitle may not necessarily be printed at
this point, because if a help file named BANNER.BLB
exists on your system, it will be printed in place of
the "Welcome to " part.
EXAMPLE:
#nodeTitle "Test System\n Truly a Heaven in Reverse"
The #nodeTitle is printed out on .Read Status commands,
also. There is no formal limit on the length of this
parameter, but you should definitely use BANNER.BLB for
long #nodeTitles, or to vary it easily.
#nodeName ""
nodeName is, in reality, purely a network parameter,
and if you have no plans to ever join a C86net, then
there is no need to fill in this parameter. However,
it has always been traditional, even before there was
a net for any Citadel system anywhere, to fill in this
and the next parameter (and, so, sentimentally we feel
this belongs in this Miscellaneous section). nodeName
is a string value which does NOT accept formatting directives
(i.e., formatting directives will be ignored). It can
be no longer than 19 letters long. It should be a short,
mnemonic name for your system. An EXAMPLE of a reasonable
value:
#nodeName "ODD-DATA"
If you ever do join a C86net, messages from your system
appearing on another Citadel node of that net will look
something like this:
82Nov23 from Cynbe ru Taren @ODD-DATA
except that ODD-DATA would be replaced with your value
for #nodeName.
#nodeId
As mentioned, this parameter is a network parameter that
has traditionally always been set, even for non-network
Citadels. If you have no plans to ever be on a C86net,
then you don't have to set this string value parameter
to anything important. If you do plan to join one, though,
(we'll go over this in more detail in the section on the
network), then you do have to set this parameter correctly.
The format of this parameter is
""
all of which applies to the phone that your system resides
on. Country code is a two letter sequence indicating
what country you live in (US is the United States, CA
is Canada. Area code is the area code of your system
(yes, we are aware that there is a clear bias towards
US-style telephony). And Phone number is, of course,
the phone number that your system is on. You can put
punctuation (such as parenthesis and dashes), but please
be conservative with them. This string value does not
obey formatting directives. Here's a fairly generic
example:
#nodeId "US (612) 953 8159"
#baseRoom ""
OK, now we're into parameters that you must have set,
starting with baseRoom. Citadel always has a minimum
of three rooms, the Aide> room for housekeeping, the Mail>
room for private correspondence, and the , which
is the room that a caller is always initially placed in.
(Historical note: the old CP/M Citadel called this room
the Lobby>; we've only made the name of the Lobby> selectable
by the sysop.) This parameter is a string value that
obeys formatting directives and goes through the Citadel
formatter, and you must limit yourself to 19 characters
or less for this value. And one more note, Citadel will
append the '>' to this name when it prints the room prompt
for this room, you don't have to put it in yourself. If
you wished to emulate the old CP/M Citadel, you'd set
baseRoom thus:
#baseRoom "Lobby"
There is no default for this parameter.
#MainFloor
MainFloor is analogous to #baseRoom. Any Citadel has
a base floor, just as it has an Aide> room, etc. This
parameter allows you to name this base floor. This parameter
is a string value which cannot be longer than 19 characters,
and specifies the name of your base floor. So, if you
want to name your base floor MAIN FLOOR, you'd have
#MainFloor "MAIN FLOOR"
There is no default value for this parameter.
#CRYPTSEED
Citadel automatically encrypts all sensitive data files.
While the algorithm used can, of course, be broken by
the determined, particularly since the code is available
for perusal, the encryption does provide protection against
casual eyes, mistakes, and amateur system breakers. We
do encourage you to take precautions of your own, such
as not opening directory rooms that look at sensitive data.
Encryption can be disabled if you specify a value of zero.
You may use any value 0-65536.
CRYPTSEED is an encryption seed that Citadel uses to encrypt
your data; if someone should acquire of all of your data
files but for CTDLCNFG.SYS, then they still won't have
access to your system until they figure out what your
CRYPTSEED is. DON'T EVER CHANGE THIS VALUE WHILE RUNNING
A CITADEL, OR EVERYTHING WILL BECOME MESSED UP! If you
are rebuilding your system from scratch, you may change
the value at that time. An example:
#CRYPTSEED 69
#MESSAGEK
MESSAGEK defines how much disk space you wish to allocate
for messages on your installation. There is no way to
define how many messages you want in your system, or how
fast they turnover. All the messages in your system will
reside in CTDLMSG.SYS, and thus the number of messages
in your system at any given moment will depend on the
length of the messages being entered into the system by
your users. The turnover rate of your messages will
depend on how busy your system is. As an example, Test
System has a 611K message base, which holds 2100 messages
+/- 300, of which some are of fairly good length. Turnover
seems to between 3 weeks and a month, since 80-160 messages
are entered a day. However, Test System is also a busy
system.
The sysop of an installation should also keep in mind
that very large systems, with many new messages, can be
intimidating to new users, so large message spaces should
be approached with caution. Remember, there is a utility
for expanding the message base, but not for shrinking it.
This is a numerical value which you specify in 'K', which
is actually 1024 bytes/K. So, for example, to specify
a 250K message file.
#MESSAGEK 250 -- 250K message base
#MSG-SLOTS
This numerical parameter specifies how many messages per
room will be used on this system (the lone exception is
the Mail>, which is covered by the following parameter).
If you wanted to use Citadel's traditional number of messages
per room, you'd have
#MSG-SLOTS 58
#MAIL-SLOTS
This is a numerical parameter specifying how many messages
per log record that you wish to reserve for Mail. The
Mail> room is the only room in the system whose data is
not kept in CTDLROOM.SYS. Instead, the file CTDLLOG.SYS
contains the "Mail>" room, reserving for each account
enough room for MAIL-SLOTS Mail messages. Therefore,
this parameter gives you the ability to decide the maximum
number of Mail> messages per user that they can access.
Please remember that if a user gets more messages in Mail>
than there are MAIL-SLOTS between two successive logins,
then they will lose the earlier messages sent to them.
Another consideration is that many users like to review
old Mail when engaged in an in-depth private conversation.
Therefore, setting MAIL-SLOTS to a low value may not be
the attractive alternative that it first seems. However,
it should go without saying a high MAIL-SLOTS value may
eat up more room than necessary on your drives. The section
on LOGSIZE will give an exact formula for how much space
your log will take up. Example:
#MAIL-SLOTS 58
#MAXROOMS
This numerical parameter specifies the maximum number
of rooms your system will support. Since the baseRoom,
Aide>, and Mail> room are necessary, the smallest value
you can give is 3. The largest number is 65536 (probably).
If you wanted to have a 64 room system, you'd have
#MAXROOMS 64
You can use the following formula to estimate the number
of bytes a room file will take up on your system:
# of bytes = MAXROOMS * (50 + (6 * MSG-SLOTS))
#LOGSIZE
This numerical parameter gives you, the sysop, the ability
to decide how many accounts will be available on your
system. If you run a system in which more accounts are
used than there are accounts reserved, then new accounts
are generated by killing old accounts. The account that
will be replaced with the new account is that account
which has not been used in the longest time (in other
words, accounts that are not used will be the first to
be killed).
All space is reserved immediately for these accounts.
The size of this file can be estimated from the formula:
# of bytes = LOGSIZE * (82 + MAXROOMS + (6 * MAIL-SLOTS))
so if you are operating in a restricted environment, plan
accordingly. If you need to, you can expand the size
of the log through the use of the DATACHNG utility, but
the log cannot be shrunk. This is a numerical value.
Here is an example:
#LOGSIZE 180
Now we discuss where you want the data files to be located on your
system. These parameters are all specified in the same way, as a
string value (which does not obey formatting directives, naturally)
that tells Citadel where on your system the given data file or files
associated with the given parameter is located. Simply use either
a relative directory specification or a full pathname. So, some sample
valid specifications would be "c:", "a:system", b:msgs", and "i:bark".
If CONFG cannot find the directory that you specify, it will
attempt to create that directory, after asking permission.
#HELPAREA "cit:helps"
This parameter specifies where all of your Help files
will be located. These files are *.HLP, *.BLB, and *.MNU.
Normally, you should create this directory and place the
help files in the directory before bringing up Citadel,
since help files are usually online at all times. The
Help files are maintained on Test System. Ask any Citadel
System where to find them. I also have a set on the Amiga
Zone.
#LOGAREA "c:system"
This parameter specifies the location of your CTDLLOG.SYS
file (this file is sized by your LOGSIZE parameter).
#ROOMAREA "system"
This parameter specifies the location of CTDLROOM.SYS,
CTDLARCH.SYS, and CTDLDIR.SYS.
#MSGAREA "c:msg"
This parameter specifies the location of CTDLMSG.SYS.
#FLOORAREA "floors"
This parameter specifies the location of CTDLFLR.SYS.
#AIDESEEALL
This parameter is a toggle that gives you some power over
the scope of your aides' "vision". If you set this parameter
to 1, then your aides have access to all public AND private
rooms (but not invite rooms, unless they have been invited).
If this parameter is set to 0, then aides only have access
to public rooms, plus those private and invite rooms that
they've been invited to. So, if you want your aides to
see all public and private rooms, you would have
#AIDESEEALL 1 -- See all but invite rooms
if you don't want your aides to be so nosy, then you'd have
#AIDESEEALL 0 -- See only public rooms.
#LOGINOK
The LOGINOK parameter controls whether your system is an
"open" or "closed" system. If you set LOGINOK to 1, the
system will allow anyone to log in as a "new" user; that
is, it will ask a caller who uses an unrecognized password
if they wish to login as a new user. If LOGINOK is set
to 0, the system will simply tell the caller without a
valid password that there is no record of that password,
and that they should leave Mail> to the sysop; the only
way to enter new users into the system is from the system
console. If you want an open system, for example, you
would have:
#LOGINOK 1 -- let the riff-raff in!
#ENTEROK
ENTEROK controls whether a caller who is not logged in can
enter messages or not. If ENTEROK is 1, then a caller who
has not logged in can enter messages; if it is 0, then they
must log in first, except for Mail to the sysop. Setting
ENTEROK to 0 can reduce vandalism; setting it to 1 gives
your callers the privilege of anonymity.
#ENTEROK 0 -- log in first, folks!
#READOK
READOK controls whether an unlogged caller can read messages.
If READOK is 1, then they may. If READOK is 0, then an
unlogged caller can only read the policy statement available
in the Mail> room (POLICY.HLP), and the help files. Setting
READOK to 0 can discourage unwelcome callers from using
scarce system time.
#READOK 0 -- gotta login to read these gems...
#ROOMOK
ROOMOK controls who can create new rooms on your system.
If ROOMOK is 1, then any logged in user of the system may
create new rooms. If ROOMOK is 0, then only aides may create
new rooms on your system.
#ROOMOK 1 -- a liberal policy
#ALLMAIL
ALLMAIL controls who can use the Mail> room. If ALLMAIL
is 1, then any user may use Mail> to send private messages
to any other user on the system. If ALLMAIL is 0, then
only Aides may use the Mail> room in a general manner; regular
folk can only use Mail> for messages to Sysop. Setting
ALLMAIL to 0 may be appropriate on tightly focused systems
operating in a small environment.
#ALLMAIL 1 -- the normal policy
#SYSBAUD
The SYSBAUD parameter is used to tell Citadel what baud
rates your hardware will support. Citadel cannot normally
be configured to run high baud rates while excluding lower
baud rates (i.e., operate correctly at 1200 baud but not
at 300 baud). A value of 0 indicates that the system is
a 300 baud system, 1 indicates 300/1200, 2 indicates
300/1200/2400, 3 indicates 3/12/24/48, and 4 indicates
3/12/24/48/96.
#SYSBAUD 1 -- A 3/12 system.
#modemSetup
This parameter is used to initialize your modem. It is
a string value parameter that obeys the formatting directives;
however, you should be warned that Citadel automatically
appends a "\r" to the end of this string before sending
it to the modem. And when is modemSetup sent to the modem?
It is automatically sent twice while Citadel is initializing,
and it will also be automatically sent to the modem whenever
the einitialize command is selected from the Sysop Menu (
i.e. privileged function:).
The value that you use for this string should cause the
modem to be put into a mode where it will function suitably
with Citadel. This includes auto-answer and response to
DTR, at the very least. Other options that you may wish
to consider include turning the modem speaker off (if you
have one); consult your modem manual for details. The example
we have here is biased towards Hayes/compatible modems.
You may have to do some research if you're using an odd
modem. Our example turns auto-answer on and turns off the
speaker on a Hayes modem; note the lack of "\r".
#modemSetup "AT S0=1 M0" -- Surely an exercise in aesthetics...
#event