home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beijing Paradise BBS Backup
/
PARADISE.ISO
/
software
/
BBSDOORW
/
WRB100B.ZIP
/
WRBBS.DOC
< prev
next >
Wrap
Text File
|
1993-01-07
|
183KB
|
3,314 lines
===========================================================================
===========================================================================
== ==
== WR-BBS INSTALLATION AND ADMINISTRATION MANUAL ==
== ==
===========================================================================
===========================================================================
** PRELIMINARY DOCUMENTATION AS OF 01/08/93 **
For WR-BBS versions 1.XX
Copyright (C) 1992 by Wilson A. Rogers
-------------------------- TABLE OF CONTENTS --------------------------
SECTION 1 PREFACE
SECTION 2 IMPORTANT WARRANTY DISCLAIMER - PLEASE READ
SECTION 3 WR-BBS LICENSE AGREEMENT
SECTION 4 INTRODUCTION TO WR-BBS
SECTION 5 THE HOME PATH
SECTION 6 INSTALLING WR-BBS FILES
SECTION 7 SCREEN FILES
SECTION 8 WR.BAT
SECTION 9 ... THE FIRST TIME
SECTION 10 CONFIGURING WR-BBS
SECTION 11 CLASS OF SERVICE (COS) CONFIGURATION
SECTION 12 THE SYSOP
SECTION 13 SETTING UP DOORS
SECTION 14 TROUBLESHOOTING
SECTION 15 MIDNIGHT.BAT
SECTION 16 HOW THE MESSAGE SYSTEM WORKS
SECTION 17 CONFIGURING EVENTS
SECTION 18 THE QUESTIONNAIRE
SECTION 19 THE ACTIVITY LOG
SECTION 20 THE "DOWN" OPTION
SECTION 21 WHILE A CALLER IS ON LINE
SECTION 22 EXTERNAL FILE TRANSFER PROTOCOLS
** PRELIMINARY DOCUMENTATION AS OF 01/08/93 **
===========================================================================
SECTION 1 PREFACE
===========================================================================
WR-BBS is a bulletin board communications program, designed for the small-
to-medium single node BBS application. WR-BBS is distributed on an
"evaluation-before-registration". This method of distribution is commonly
referred to as shareware.
Whether you are starting a new BBS, or replacing another BBS application,
you are welcome to try WR-BBS on an evaluation basis. If it meets your
expectations, register the program with the author. If it does not meet
your expectations, simply delete the file named WRBBS.EXE (you can keep the
rest of the files if you wish), and there is no further obligation on your
part.
NOTE TO CURRENT SYSOPS: If you are replacing an existing BBS application
with WR-BBS, you are urged to completely back up your existing BBS
program's files before implementing WR-BBS. This will minimize the
inconvenience to you if you later decide that you do not wish to continue
using WR-BBS, as you can restore the previous BBS application quickly.
Before installing WR-BBS, you should read the documentation thoroughly, as
the WR-BBS implementation of some features differs from the implementation
used by other BBS programs. Also, WR-BBS has some features not found in
other BBS programs (and does not have some features that other BBS programs
have).
There are 10 basic steps involved to install WR-BBS. It is suggested that
you follow the steps in the order presented to assure a trouble-free
installation:
A. Read the important warranty disclaimer in section 2. Make sure
that you understand that the author is not responsible
for any damages before you begin installing WR-BBS on
your system.
B. Familiarize yourself with the license agreement. There is no
point in installing WR-BBS, only to later find out that
you can't live with the license agreement.
C. Set up the "home path". This is described in detail in section
5.
D. Install the WR-BBS files. See section 6 for information on this
process.
E. Edit the screen files as needed for your board. Section 7 tells
how to do this.
F. Read section 8, which tells how WR.BAT works, and why its use is
strongly recommended.
G. Establish an initial database. The command to do this is
described in section 9.
H. Configure WR-BBS, using WRCONFIG.SYS. See section 10 for
details.
I. Start WR-BBS, and then log on locally (press ALT-L).
J. Test your new WR-BBS installation.
The installation, configuration, and testing process should take about 30
to 90 minutes after you read this document. If you are also going to
implement (optional) doors, events, and other frills, the total setup time
will be longer.
HOW TO GET SUPPORT FOR WR-BBS
Most questions and operational anomalies can be resolved by reading this
document. If you need support for WR-BBS, it is available by logging on to
the WR-BBS Headquarters BBS. Call (206) 828-9089, twenty four hours a day.
After logging on, leave a (C)moment for SysOp, or (W)rite a message to the
SysOp from the message menu. I will endeavor to answer all support
requests within twenty four hours. Support is not currently available by
telephone or facsimile. Before you decide to use or register WR-BBS,
please make sure you are comfortable with this support method. If you
cannot get along without live telephone support, WR-BBS is not for you. I
WILL respond, via the WR-BBS Headquarters BBS message system, to all
support requests. I will not honor messages requesting me to call you
(even if you ask me to call collect). Except under the most exceptional
circumstances, I will not honor requests to log onto your board to examine
problems. I will also not entertain any support calls to my residence
telephone number. This policy ensures that support, via the WR-BBS
Headquarters BBS, is available to all users on an equitable basis. Some
SysOps prefer the "warm body" approach to support situations.
Unfortunately, that level of support is not available for WR-BBS. At the
risk of sounding negative in this paragraph, I have detailed the support
policy here to make sure that there are no misunderstandings.
When calling the WR-BBS Headquarters BBS for "generic" support or
suggestions, you may also wish to peruse the message system for messages
from (and responses to) other SysOps who may have the same question(s).
There is no charge for support. Registered WR-BBS SysOps will receive
support at no charge as long as they have a current version of WR-BBS
installed, or until WR-BBS is discontinued. SysOps who have not yet
registered their copy of WR-BBS will also receive support, but support for
evaluation copies is discontinued thirty days after the first support
request. Thus, each evaluation copy receives free support for at least 30
days.
I am currently examining the feasibility of expanding support through
facsimile and voice messaging. Such extended support may be available in
the future, but is not guaranteed.
If you prefer to write for support, the address is:
WR-BBS Support
P.O. Box 8024
Kirkland, WA 98034-0024
As with any complex software, bugs will be discovered, and fixes
implemented for WR-BBS. Maintenance releases will be made available
periodically, and can be downloaded (no charge) from the WR-BBS
Headquarters BBS. A typical maintenance release contains fixes for minor
bugs, and possibly some new minor feature enhancements. If a serious bug
is discovered, a "patch" may be created to resolve the problem until the
next maintenance release is published. Patches can be downloaded (no
charge) from the WR-BBS Headquarters BBS.
When major operational changes and feature additions are made to WR-BBS,
this is referred to as an upgrade. Upgrades can be downloaded from the WR-
BBS Headquarters BBS. There may be a nominal charge for upgrades. An
example of a major operation change would be multi-node operation.
HOW WR-BBS VERSION NUMBERS WORK
All WR-BBS version numbers are expressed as a numeric
character followed by a decimal point, followed by two
numeric characters, and possibly followed by a letter (from
A to Z).
1.00A <-- Update letter
| ||
| ||
Major version number ||
||
Intermediate version number|
|
Minor version number
The major version number is changed only when an upgrade is
released. It represents a significant change in the
software from one number to the next.
The intermediate version number is incremented when
significant changes have been made to the software, but
operational characteristics are not substantially changed
(not an upgrade).
The minor version number is incremented each time a
maintenance release is published.
The update letter (which may not appear at all) is added or
incremented each time a patch is applied to correct a
problem between regular maintenance releases.
===========================================================================
SECTION 2 IMPORTANT WARRANTY DISCLAIMER - PLEASE READ
===========================================================================
This section describes the risk that you or your company takes in using or
implementing WR-BBS. In plain English, you are responsible for all damages
that WR-BBS may cause if you use it on your system, whether or not the
damages are due to a defect in the program. Rather than hide this
disclaimer in small type at the end of the documentation, I am putting it
up front, and urge you to read it carefully before proceeding. If you feel
this is unfair, or you are in any way uncomfortable with the fact that
there is no warranty of any kind on the WR-BBS program, please delete the
WR-BBS files now.
WARRANTY DISCLAIMER
IMPORTANT - EVERYONE READ CAREFULLY
YOU ARE AT SOLE RISK
The following disclaimer of warranty applies to EVERY copy of WR-BBS,
whether registered or not, unless specifically indicated otherwise. Please
read it carefully. In this and the following paragraphs, "YOU" refers to
you, the person or entity who uses (or attempts to use) the WR-BBS
SOFTWARE; "AUTHOR" refers to Wilson A. Rogers, or any lawful successor to
Wilson A. Rogers, or any lawful owner of the WR-BBS source code, whose
ownership of that source code has been authorized in writing by Wilson A.
Rogers; and "WR-BBS SOFTWARE" means the executable program file(s),
overlays, and proprietary files associated with the single-node WR-BBS
Bulletin Board System.
WR-BBS SOFTWARE is supplied on an "AS IS" basis. Subject to
any contrary provisions of applicable state law, the AUTHOR
disclaims any and all implied warranties, including
warranties of merchantability and/or fitness for a
particular purpose. Except for suggestions to the contrary
that may appear in the official documentation that
accompanies the WR-BBS SOFTWARE, the AUTHOR does not purport
that the WR-BBS SOFTWARE is fit for any purpose whatsoever,
nor does the AUTHOR make any claim, implied or otherwise, as
to the merchantability of the WR-BBS SOFTWARE.
The AUTHOR disclaims any and all responsibility for any
damages resulting from the use or attempted use of the WR-
BBS SOFTWARE, including, but not limited to consequential
damages, indirect damages, coincidental damages, loss of
revenue, wages, or income, loss of goodwill, loss of data
and/or files, system downtime, and "special damages".
YOU assume all risk in attempting to use, or using the WR-
BBS SOFTWARE. YOU must independently determine whether the
WR-BBS SOFTWARE is suitable for your intended use, and
whether or not the WR-BBS SOFTWARE will cause damage to YOU,
prior to any use or attempted use of the WR-BBS SOFTWARE.
If you cannot make this determination, do not use (or
attempt to use) the WR-BBS SOFTWARE. The AUTHOR does not
authorize any person or entity to make that determination
for you. You must make this determination prior to
registering the WR-BBS SOFTWARE with the AUTHOR. If, for
any reason, you determine that the WR-BBS SOFTWARE is not
suitable for your use within thirty (30) days after
registering the WR-BBS SOFTWARE, the AUTHOR, upon written
application from YOU, will refund any and all license fees
paid by YOU to the AUTHOR. Should this happen, YOU must
immediately and permanently discontinue any use or attempted
use of the WR-BBS SOFTWARE. Such refund is the sole remedy
for any failure of the WR-BBS SOFTWARE.
In the event that the WR-BBS SOFTWARE, after proper
registration, fails to perform substantially as described in
the official WR-BBS documentation, the AUTHOR will, upon
written application from YOU, refund any and all license
fees previously paid by YOU to the AUTHOR. Such refund is
the sole remedy for any failure of the WR-BBS SOFTWARE.
Should this happen, YOU must immediately and permanently
discontinue any use or attempted use of the WR-BBS SOFTWARE.
Support for WR-BBS SOFTWARE is available by modem, through
the WR-BBS Headquarters BBS (only). There is no charge for
support to registered licensees who have a current version
of the WR-BBS SOFTWARE. The AUTHOR will not be responsible
for any toll, message unit, or communications charges YOU
incur while accessing the WR-BBS Headquarters BBS, or for
time expended by YOU in obtaining support.
If any provision of this warranty disclaimer is determined,
by a court or government agency, to be unlawful, void, or
for any reason unenforceable, it shall be deemed separable
from, and in no way shall affect the validity of the
remaining provisions of this warranty disclaimer.
The AUTHOR reserves the right to discontinue development,
production, and support of the WR-BBS SOFTWARE at any time.
If such discontinuance occurs with thirty (30) days of YOU
executing a valid license application, the AUTHOR will, upon
written application from YOU, refund any and all license
fees paid by YOU to the AUTHOR. If you apply for such a
refund, YOU must immediately and permanently discontinue any
use or attempted use of the WR-BBS SOFTWARE. Such refund is
your sole remedy in the event the WR-BBS SOFTWARE is
discontinued by the AUTHOR within thirty (30) days of
registration by YOU.
===========================================================================
SECTION 3 WR-BBS LICENSE AGREEMENT
===========================================================================
Like most software, WR-BBS is not sold. It is licensed, to persons and/or
entities who agree to terms of the license. No person or entity has the
right to sell WR-BBS software to you, as it is not for sale under any
circumstances. If you agree to the terms of the license agreement (which
follows), and you submit the proper license fee along with a properly
completed registration form, you will receive a license to use the then
current major level of WR-BBS software for a period not exceeding fifty
(50) years.
In the following license agreement, "YOU" means you, the registered
licensee who has submitted the proper license fee along with a properly
executed license application; and "AUTHOR" means Wilson A. Rogers, or any
lawful successor to Wilson A. Rogers, or any lawful owner of the WR-BBS
source code, whose ownership of that source code has been authorized in
writing by Wilson A. Rogers; and "WR-BBS SOFTWARE" means the executable
program file(s), overlays, and proprietary files associated with the
single-node WR-BBS Bulletin Board System.
YOU agree to use the WR-BBS SOFTWARE on only one computer at one time, and
to prevent the use of the registered copy of the WR-BBS SOFTWARE from being
used on more than one computer simultaneously.
YOU may make as many backup copies of the WR-BBS SOFTWARE as reasonably
necessary to allow recovery from system failure.
YOU may distribute un-registered copies of WR-BBS freely and without
obligation to the AUTHOR, other than to hold the AUTHOR harmless from any
damages that may be incurred from such distribution.
YOU agree to keep the executable, overlay, and other proprietary files of
the WR-BBS SOFTWARE in their original, unaltered format. YOU also agree
not to modify, reverse-engineer, or decompile the WR-BBS SOFTWARE at any
time during, and subsequent to, the termination of this license.
YOU may terminate this agreement, without notice to the AUTHOR, at any time
prior to its expiry. The AUTHOR may terminate this agreement at any time,
without notice to YOU. YOU agree to destroy all copies of the WR-BBS
SOFTWARE when this agreement is terminated for any reason. If this
agreement is terminated by the AUTHOR within thirty (30) days of the
license being granted, the AUTHOR will refund to YOU all monies paid to the
AUTHOR for the license. This will be your sole remedy in this situation.
YOU agree and understand that the WR-BBS SOFTWARE is provided on an "AS-IS"
basis, and subject to the warranty disclaimer appearing in section two. YOU
will independently determine whether or not the WR-BBS SOFTWARE meets your
needs and whether or not the WR-BBS SOFTWARE will damage your system or
cause other loss to YOU before YOU use or attempt to use the WR-BBS
SOFTWARE. YOU agree that if YOU can not adequately make such a
determination, YOU will not apply for a license to use, nor will YOU use,
or attempt to use the WR-BBS SOFTWARE.
===========================================================================
SECTION 4 INTRODUCTION TO WR-BBS
===========================================================================
WR-BBS is designed to operate on an IBM PC <tm> or compatible micro-
computer. It operates as a single-port system, but its database foundation
was designed to allow multi-port operation as a potential future
development. WR-BBS utilizes the W-TREE Database Manager to rapidly locate
and access database records, minimizing the "dead screen" time that would
otherwise occur when a database search occurs.
A class-of-service (COS) section in the system configuration allows up to
26 different permission levels to be assigned to callers. The COS settings
can be flexibly applied to allow or deny very specific access for each
group of users. (COS is synonymous with "access level" in other BBS
products).
Some specifications:
DESIGN PRACTICAL
MAXIMUM MAXIMUM
------- ---------
User accounts 2,147,483,648 1,000
File descriptions 2,147,483,648 3,500
Messages on file 65,535 2,000
File areas 26 26
Events scheduled 16 16
Access levels (classes of service) 26 26
Port speed (baud) UART dependent 115,200
SYSTEM REQUIREMENTS
WR-BBS should install and run on any IBM PC <tm> or 100%
compatible micro-computer, including most DOS based systems using
8086, 8088, V20 and 80X86 processors.
WR-BBS has been tested with DR-DOS 5, DR-DOS 6.0, MS-DOS 3.3, MS-
DOS 4.01, MS-DOS 5.0, PC-DOS 5.0 and in a DOS window of OS/2 2.0.
Any level of DR-DOS, MS-DOS, or PC-DOS higher than 2.01 should be
sufficient, but DOS 3.3 or higher is recommended. WR-BBS has
been tested under DESQview <tm> 2.3, DESQview <tm> 2.4, Microsoft
Windows <tm> 3.0, and Microsoft Windows <tm> 3.1, as well as WR-
DOS 6.5.
WR-BBS will display in color on a color monitor (CGA, MCGA, EGA,
VGA, SVGA), but a color monitor is not required. WR-BBS does not
use bit-mapped graphics, and is compatible with all display types
found on DOS computers. Additional graphics memory pages are not
required for use under a multi-tasker.
ANSI color screens can be configured for display to remote
callers, whether or not a color monitor is used at the local
console. WR-BBS does NOT require ANSI.SYS to be loaded in order
to display ANSI graphics, as WR-BBS contains a built-in ANSI
driver.
WR-BBS requires approximately 230 KB of memory during run time.
During DOS shells, WR-BBS swaps almost 95% of its image to EMS or
disk (configurable), leaving only about 13 KB residing in memory.
WR-BBS can be configured to swap its image when calling external
protocols and "door" programs, allowing generous memory for the
called program.
===========================================================================
SECTION 5 THE HOME PATH
===========================================================================
Setting the HOME PATH environment variable is one of the
easiest aspects of configuring your new WR-BBS system. It
is also the most important configuration item. If you read
nothing else in this document, please read this section.
Throughout this document, you will see mention of the "home path". The
home path refers the actual DOS path where WR-BBS can find its program,
overlay, and data files. WR-BBS checks the DOS environment for a variable
which tells it the location of these files. It is one of the easiest
configuration items relative to WR-BBS, but is also the most important.
Prior to installing, initializing or starting WR-BBS, the DOS environment
variable named "WR-BBS" must be set to the home path. If this is not done,
WR-BBS will not start. This is done by issuing the SET command to DOS, as
in the following example:
SET WR-BBS=[path]
Where [path] is the actual path to WR-BBS's files. Unless you have a
compelling reason for doing otherwise, it is recommended that you put WR-
BBS's files in a sub-directory named WR-BBS, immediately off the root
directory of your boot drive. In this case, the home directory would be
named C:\WR-BBS, and the SET command to set the home path would look like
this:
SET WR-BBS=C:\WR-BBS
The trailing backslash on the home path is not expected (but does no damage
if added). Thus, the command:
SET WR-BBS=C:\WR-BBS and SET WR-BBS=C:\WR-BBS\
trailing backslash ^
are identical for purposes of WR-BBS determining the home path. Note that
no matter what you use for the home path, when you issue the home path SET
command to DOS, the following important syntax rules apply:
- There is no space on either side of the equal sign.
- The first character after the equal sign must be a valid drive
letter.
- The command can be issued in upper or lower case.
- The portion of the SET after the equal sign must be a valid DOS sub-
directory designation.
- The entire pathname cannot exceed 64 characters
The following home path SET statements are NOT valid:
SET WR-BBS=\WR-BBS
^(no drive letter specified)
SET WR-BBS= C:\WR-BBS
^(no space allowed on either side of = sign)
SET WR-BBS=C:BBSFILE
^(does not point to a directory)
While the following home path SET statements are valid:
SET WR-BBS=C:\BBSFILES\BIN
^(can point to any valid DOS directory)
set WR-BBS=c:\WR-BBS
^(upper/lower case doesn't matter)
It is STRONGLY recommended that you insert the SET WR-BBS command in your
AUTOEXEC.BAT file. Then, the DOS environment variable for the home path
will be properly set each time your computer is booted, and you will never
have to worry about it again. To do this, use an ASCII file editor, and
edit the file AUTOEXEC.BAT, inserting the appropriate SET command as one of
the first few lines in that file. Then save the file as a standard ASCII
file, and reboot your system to make it take effect.
To test the DOS environment (to make sure that the SET command has taken
effect), type just the three-letter word SET at the DOS command line. DOS
will then print out several lines, one for each environment variable. One
of the lines should read WR-BBS=[path], where path is your actual home
path. If you do not get this result, then an error was made when SETting
the environment, or there is insufficient environment space available
(which can be easily remedied - see section 14).
NOTE: Do NOT include the WR-BBS home path in your DOS PATH or APPEND
statements.
If you ever move your WR-BBS application to another directory (or another
system), you will need to make sure that the home path is properly defined
before restarting WR-BBS.
Some poorly designed programs will butcher your AUTOEXEC.BAT and CONFIG.SYS
when they install themselves, so that they can put their own special
commands in. The worst of these will delete the changes described above
(and other vital lines in AUTOEXEC.BAT and CONFIG.SYS). If you install any
applications after installing WR-BBS, you are well advised to first make
backup copies of your AUTOEXEC.BAT and CONFIG.SYS files.
WR-BBS never modifies AUTOEXEC.BAT or CONFIG.SYS, or any other system file.
RECOMMENDATION: You should put the appropriate SET statement in
your AUTOEXEC.BAT. This will prevent mysterious problems from
surfacing later, such as WR-BBS refusing to restart after a power
failure. If the SET statement for WR-BBS is not done
automatically each time the system starts, WR-BBS will be unable
to restart without human intervention. Naturally, this will
happen when you are 3,000 miles away from your system attending
the Murphy's Law seminar, and your WR-BBS system will not answer
calls until you get back. You can prevent this from happening by
inserting the SET statement for the WR-BBS home path in your
AUTOEXEC.BAT file before you do anything else. Do it once and
forget it. Do it now.
===========================================================================
SECTION 6 INSTALLING WR-BBS FILES
===========================================================================
First you must choose a directory for the WR-BBS files to reside in. This
is the "home" directory as discussed in the preceding section. The
directory "\WR-BBS" off the root directory of your boot drive is
recommended, but any valid DOS directory can be used. Keep in mind that no
files other than those related to WR-BBS should exist in the WR-BBS home
directory, so do not use an existing directory that belongs to another
application. The use of the root directory as the WR-BBS home path
directory is possible, but strongly recommended against.
Next, you need to create the home path directory if it does not already
exist. Do this by issuing the DOS command:
MKDIR [dirname]
Where [dirname] is the full directory name of the WR-BBS home path sub-
directory. Next, make the home path directory the current directory by
issuing this command at the DOS command line:
CHDIR [dirname]
Where [dirname] is the WR-BBS home path directory. If you receive an error
message from DOS, check your typing and try again, or refer to your DOS
manual.
Now that the home path directory is current, copy all of the files from the
WR-BBS archive (or installation diskette) into the homepath directory by
issuing one of the following commands:
XCOPY [SourcePath]\*.* /V or
COPY [SourcePath]\*.* /V
Where [SourcePath] is the actual DOS path to the WR-BBS files. For
example, if you de-compressed the WR-BBS files into a directory named
C:\MODEM\DOWNLOAD, the proper syntax would be
XCOPY C:\MODEM\DOWNLOAD\*.* /V or
COPY C:\MODEM\DOWNLOAD\*.* /V
Alternatively, if you are using a distribution diskette obtained from the
author, you would type:
XCOPY A:\*.* /V or
COPY A:\*.* /V
provided that the diskette was in the A: drive.
The following files are provided with WR-BBS, and should be copied into the
WR-BBS home path directory. They must always reside in the home path for
correct operation of WR-BBS. With the exception of the executable,
overlay, and database files, all WR-BBS files are in character format and
can be readily edited as required:
MIDNIGHT.BAT
This is a sample batch file, modify to suit your application, or
delete if you wish. If MIDNIGHT.BAT is present, WR-BBS will
execute it immediately after DOS reports that the date has
changed (which is at 00:00 hours). See section 15 for more
information on MIDNIGHT.BAT.
NOACCESS.TXT
This file is checked whenever a new user logs on for the first
time. If that caller's name is found in NOACCESS.TXT, they are
not allowed to continue, and are forced off. This prevents
callers from using cute names like EATME SYSOP or worse. The
file by default contains a list of possible bad names. It
includes some bad words, so if you are sensitive to such
language, don't read the file. You can add or remove
"undesirable" names to this file as needed, with one name per
line. When NOACCESS.TXT is scanned, each line is compared to the
caller's first AND last name. Thus, if "CAPTAIN" appears in
NOACCESS.TXT, a caller who claims to be "CAPTAIN KIRK" would be
denied access, and so would "BOB CAPTAIN". Thus, you need to be
careful to keep potential "valid" names out of NOACCESS.TXT.
OSACCESS.BAT
This is another sample batch file, which you can edit if desired.
It controls access to the operating system when the SysOp
requests a shell to DOS.
WR.BAT
This is the main batch file that controls WR-BBS operation. You
should run WR-BBS by typing "WR" and pressing <ENTER>, rather
than running WRBBS.EXE directly. This is explained in more
detail in section 8.
WRBBS.EXE
This is the program file for WR-BBS. Never edit this file.
WRBBS.OVR
This is the overlay file for WR-BBS. To conserve memory, WR-BBS
loads overlays into memory as needed and unloads them when no
longer required. Never edit this file.
WRCONFIG.SYS
This is the configuration file for WR-BBS. Almost all
configuration and customization is done through this
configuration file. You will need to edit this file to set up
your WR-BBS system. See section 10 for details on configuring
WR-BBS with WRCONFIG.SYS.
WRQUOTES.TXT
This is an optional file. It is included with the WR-BBS
distribution package as a sample file. When caller's log on, a
"quotation" from this file will be selected at random and
displayed to the caller. You can delete this file if you don't
want the "quote of the day" feature. Likewise, you can edit it
to add your own quotes. Each quote must be no longer than one
line in length.
WR_AFTER.BAT
This file is optional. A sample file is included with the
original WR-BBS distribution package. If WR-AFTER.BAT is found
in the home path, it will be executed after each log-off. You
could use this batch file to update statistics-sensitive
bulletins, or do some other kind of post-call cleanup. If you
don't have a use for this feature, delete WR-AFTER.BAT.
WFILEXFR.BAT
This is a sample batch file, which you can modify to meet the
needs of your board. It controls all file transfer activity
(downloads and uploads) and external protocol programs.
===========================================================================
SECTION 7 SCREEN FILES
===========================================================================
For maximum flexibility, WR-BBS has very few "hard coded" display screens.
Almost all of the screens that are seen by your callers are external text
files which you can edit to suit your board's individual needs. Sample
screen files are provided with the WR-BBS distribution package. Many of
these screen files can be used "as is" immediately, without editing. Some
of the screen files, however, should be edited to include your BBS name
and/or other installation-specific information.
Each screen that can be displayed to a caller is supported by TWO screen
files. One of the screen files has an extension of .ASC (which stands for
ASCII) and the other corresponding screen file has an extension of .ANS
(which stands for ANSI). ANSI screens are displayed to callers who have
ANSI color enabled. ASCII screens are sent to non-ANSI callers. With very
few exceptions, ASCII screens on WR-BBS have no color data in them. ANSI
screens, on the other hand, typically contain ANSI escape sequences which
allow for sophisticated color and cursor-movement control.
Creating ASCII screen files is relatively easy. Use any editor that can
save files in true ASCII. DOS's EDLIN and EDIT programs do this
automatically. Most word processors can create, edit and save "true ASCII"
files, but require commands to tell the word processing program not to put
formatting symbols in the finished file.
Creating ANSI screens is a little more involved. Although it could be done
with a basic text editor, this would be a time-consuming and excruciating
process. The use of an ANSI-specific screen file editor is strongly
recommended. A popular program called TheDraw (by TheSoft) is an ANSI
screen editor that is very easy to use. You can download an evaluation
copy of TheDraw from the WR-BBS Headquarters BBS and many other BBS's
throughout the world. Remember to register your copy of TheDraw with the
TheSoft people.
When using TheDraw (or another ANSI editor) to create WR-BBS screens,
observe the following:
- Most screen files should have no more than 21 lines of display
information. If you make the display file longer than that, part
of the display screen will scroll off the remote caller's screen.
- When saving the file, select "NONE" for line length. You want
the editor to place a "real" carriage return and line feed after
each "real" line. With ANSI escape sequences imbedded, each
"line" of text can be a couple of hundred characters long, but
should end with a conventional CR/LF sequence. Otherwise, the
stream of characters will be transmitted as one gigantic line of
text. Most modern communications programs that callers might use
to call your board can handle such a long string. If a caller is
using a communications package that does not "wrap" lines,
sending them a mega-string could make their program misbehave.
Using "NONE" for line length assures that each time a new
physical line is to be drawn, a carriage return and line feed
will precede it.
- It is possible to make ultra-sophisticated "animated" screens,
but you should avoid animation for the menus. The time it takes
to transmit animated screens may be perceived by your callers as
"wasted" time. Bulletins and welcome files may benefit from
animation, however.
- Select "0" for display speed when saving files with TheDraw.
You want maximum throughput, since each character is being
transmitted via the modem to your caller.
Most of WR-BBS's screen files MUST be present for proper operation. If you
do not use the originally supplied files, use your own versions of the
screen files. Unless indicated as being optional, all screen files must be
present in either the home path, or the path you have defined (in
WRCONFIG.SYS) for display files (see "SCREENDIR=" in section 10). For each
screen file, one with an extension of .ASC and one with and extension of
.ANS must be present. If a screen file is missing, an error message is
displayed to the caller, and an error is logged in the activity file.
The file names for screen files used by WR-BBS are:
BADNAME.ASC and BADNAME.ANS:
Sent to callers whose name appears in the file
NOACCESS.TXT. The caller is then disconnected.
BULL????.ASC and BULL????.ANS:
These are the actual bulletin screens. WR-BBS supports
up to 9,999 bulletins, with file names BULL0001.ASC/ANS
through BULL9999.ASC/ANS. The caller selects bulletins
by typing in the corresponding number. For example, if
the caller enters 34, bulletin file BULL0034.ASC/ANS
will be displayed.
BULLMENU.ASC and BULLMENU.ANS:
Menu screen which lists available bulletins.
CALLVIEW.ASC and CALLVIEW.ANS:
This screen file describes the options available to a
caller when the "(W)ho called recently" command is
selected from the main menu.
CHATFAIL.ASC and CHATFAIL.ANS:
Displayed to caller when the SysOp does not answer a
chat page request.
DOORMENU.ASC and DOORMENU.ANS:
Screen file for "doors" menu. WR-BBS supports up to 26
doors. See also section 13 for detailed information on
doors. If you configure any doors, this screen is
displayed to the caller when they choose (D)oors from
the main menu. This screen describes the doors
available, which are identified by letters from "A" to
"Z". The caller, upon seeing the selection listed in
this screen, then selects the desired door.
FILELIST.ASC and FILELIST.ANS:
When a caller, in the Files Library, selects "(L)ist"
to see a listing of available files, this screen file
is transmitted. It explains the choices available to
the caller for listing files.
FILESLIB.ASC and FILESLIB.ANS:
Menu screen for file library (the "files" menu).
Displays caller's options for file area, such as
downloading, listing, uploading, etc.
GOODBYE.ASC and GOODBYE.ASC:
Screen file which is sent to callers after they request
a logoff. This file should be less than 1/2 of a
screen in length. This ensures that the caller can
view the whole text of the screen file, even if their
communications program does some line feeds after the
disconnect is detected. Also, since some callers will
drop carrier shortly after selecting (G)oodbye and
confirming their logoff, having a short "goodbye"
screen eliminates these callers from being logged as
"dropped carrier".
GREETING.ASC and GREETING.ANS:
Screen sent to callers during logon, immediately after
they answer the question "Do you wish to have ANSI
color?". This screen should be only a few lines long,
and should contain the BBS name.
HELPFILE.ASC and HELPFILE.ANS:
This screen is displayed if a caller selects (H)elp
from the Files Library menu. Its context is specific
to the Files Library functions available in that menu.
HELPMAIN.ASC and HELPMAIN.ANS:
This screen is transmitted in response to a user
selecting (H)elp from the Main Menu. It describes the
functions available from the Main Menu.
HELPMSGS.ASC and HELPMSGS.ANS:
If a caller requests (H)elp while viewing the Message
System Menu, this screen is displayed. It contains
instructions on how to use the various features of the
WR-BBS message system.
HOW2CHAT.ASC and HOW2CHAT.ANS:
If a caller presses (S)ignal for chat from the main
menu, the SysOp is alerted by a series of beeps, and is
told to press ENTER to start the chat with the caller.
When the SysOp presses ENTER, this screen is sent, and
the chat begins. This screen contains helpful
information about how to chat without "stepping" on
each other.
MAINMENU.ASC and MAINMENU.ANS:
This screen file comprises the Main Menu. It is the
primary screen file seen by callers when on line.
MESSAGES.ASC and MESSAGES.ANS:
This is the screen file for the Message System menu.
It lists the choices available to a caller after the
caller selects (M)essage system from the Main Menu.
NEWS.ASC and NEWS.ANS:
Newsletter file. Displayed to callers who press
(N)ewsletter from main menu.
NEWUSER.ASC and NEWUSER.ANS:
Screen sent to new users, before the new user
induction. Use this to explain your board's scope,
policies, or other information that might not be
apparent to a new user, as well as a first welcome for
new callers.
PASSWORD.ASC and PASSWORD.ANS:
Screen explaining how to select a password. Displayed
to new users during logon, and to established users who
want to change their password.
SEARCH.ASC and SEARCH.ANS:
Screen which explains to callers how to use the various
message searching options.
SENDMSG.ASC and SENDMSG.ANS:
Screen which explains how to send a message, and the
addressing options available.
SHOWANSI.ASC:
Screen which demonstrates ANSI graphics to assist
callers in deciding whether or not they want ANSI
enabled. Notice that there is no .ANS counterpart for
this display file. This is because the ANSI screen
(for demonstration to user) is sent to all callers,
regardless of current ANSI choice. Otherwise, non-ANSI
callers could never see the ANSI demonstration. This
is the only WR-BBS screen file with ANSI colors in a
.ASC file.
SYSOP.ASC and SYSOP.ANS:
This is the screen file for the SysOp menu. The SysOp
menu is accessed (only by the SysOp) by selecting "Z"
from the Main Menu. It lists the administration
options available to the SysOp while on line.
THANKYOU.ASC and THANKYOU.ANS:
This screen is sent after each successful upload. The
text thanks the caller for taking the time to upload to
the board.
UPLDFAIL.ASC and UPLDFAIL.ANS:
This screen is displayed if a caller attempts an
upload, but for some reason the file is not received
(or is incomplete, or aborted by the caller). It
describes the problem so that the caller understands
the upload was not successful.
UPLOAD.ASC and UPLOAD.ANS:
After a caller selects (U)pload from the Files Library
menu, this screen is displayed. It can be used to give
instructions on what types of files are acceptable, or
to remind the caller that their time will be
compensated, etc.
WELCOME?.ASC and WELCOME?.ANS:
This optional screen file is sent to callers after they
have completed their logon (name, password, and
statistics check). There can be up to 26 WELCOME?.
files, one for each class of service (COS). The letter
following "WELCOME" in the filename designates which
COS the screen is sent to. For example, WELCOMEA.ASC
and WELCOMEA.ANS will be shown to callers with a class-
of-service of "A", while WELCOMEB.ASC and WELCOMEB.ANS
would be shown to callers with a class-of-service of
"B", and so on. See section 11 for a detailed
description of the class-of-service configuration. If
there is no welcome file for a particular COS, callers
in that COS do not see any welcome file.
You do NOT need to have a statement in your CONFIG.SYS to load an ANSI
driver for WR-BBS. WR-BBS has its own built-in ANSI interpreter.
===========================================================================
SECTION 8 WR.BAT
===========================================================================
It is possible to start WR-BBS by simply typing WRBBS at the command line,
from the home path directory. This is NOT recommended, however. For
maximum flexibility and control, the use of a batch file to control WR-BBS
is recommended. A sample batch file, WR.BAT, is included with the original
distribution of WR-BBS files. You can use this file without modification,
or edit it for your site-specific requirements. Using WR.BAT provides the
following advantages:
- If WR-BBS operation is disrupted due to an error in the
program, the batch file will detect the DOS errorlevel, and
automatically restart WR-BBS, without human intervention. (If a
batch file is not used, the system would just return to the
command line, and not answer any calls until a human restarted
WR-BBS).
- If you schedule events which require termination (and restart)
of WR-BBS, the BBS will not restart properly unless WR-BBS was
originally started under the control of a batch file such as
WR.BAT.
A freeware utility file, WDELAY.EXE, is included with your WR-BBS
distribution package. This utility is called by WR.BAT when it starts to
load WR-BBS. This utility simply affords the local operator an opportunity
to cancel the batch file by pressing ESC within the designated time. Press
<ENTER> when prompted to jump past WDELAY. If no key is pressed, WDELAY
will start WR-BBS after the delay, which allows unattended restarts.
Unlike WR-BBS, the WDELAY utility requires no registration, and can be used
indefinitely with no obligation.
WR.BAT is based on the fact that WR-BBS sets a different DOS ERRORLEVEL
depending on the reason it terminated. Based on that errorlevel, WR.BAT
branches to the appropriate label in the batch file, and either re-starts
WR-BBS, runs a "terminate event", or simply ends. (See section 17 for
information on terminate events). The possible errorlevels returned by WR-
BBS are:
0 Normal termination (requested by local console)
1 to 17 Runtime error - operating system or file access error
84 to 99 Scheduled termination for configured external event
100 to 106 Runtime error - file or I/O error
150 to 162 Runtime error - critical file access error
200 to 214 Runtime error - critical program or logic error
254 to 255 Runtime error - internal WR-BBS debug halt
WR-BBS does its own error handling, and is able to recover automatically
(without terminating) from most minor runtime errors. Any fatal errors are
captured by WR-BBS's critical error handler, and logged in the activity log
(if possible) prior to WR-BBS terminating with the appropriate errorlevel.
A screen is also displayed by WR-BBS when a critical error occurs, showing
the error code and process ID. If a caller is connected when a critical
error occurs, a message is transmitted to the caller, explaining that the
system is going off-line briefly, and requesting that they call back.
Critical errors are rare, and are usually due to external influences, such
as corrupted memory, or database files being deleted or damaged. But, with
WR-BBS's built-in critical error handler, you should never experience an
error that simply crashes the program with no clue as to what happened.
===========================================================================
SECTION 9 ... THE FIRST TIME
===========================================================================
Before you run WR-BBS for the first time, you must create an initialized
set of database files for WR-BBS to work with. This is an extremely easy
process, and takes less than a minute. Initialized (empty) database files
are not provided with the WR-BBS distribution package, since WR-BBS is
capable of creating an initialized database on request. To create the
initialized database, do the following:
1. Change directories to make the WR-BBS home path the current
directory.
2. At the command line, type WRBBS /INIT and then press <ENTER>.
3. Answer the confirmation by typing OKAY and pressing <ENTER>.
WR-BBS will then create the following files:
WRBBSUSR.DAT
This is the database file where user (caller) information is
stored.
WRBBSMSG.DAT
This file contains the message system database (but not actual
messages), with pointers to the files that contain the actual
message text.
WRBBSLIB.DAT
The Files Library database is stored in this file. All file
descriptions and attributes are written to this file.
WRBBSPEG.DAT
This file stores statistical (peg count) data about your WR-BBS
system, including the number of calls answered, calls answered
today, new messages, etc.
WRBBSDBF.DAT
This file is used to record the status of the WR-BBS database.
The W-TREE database manager uses this file to determine if the
system was shut down in an orderly manner. If it was not, the
indices are rebuilt automatically the next time WR-BBS is
restarted.
After you have created the initialized database, WR-BBS is ready to
configure.
IMPORTANT: If you have a working database, and request that the WR-BBS
database be initialized, all data in the database will be PERMANENTLY LOST.
Do not request initialization unless you are installing WR-BBS for the
first time, or you wish to start over again with an empty database.
After creating an initialized database, WR-BBS automatically creates the
user index file, WRBBSUSR.IDX, and a new activity log file, WRBBSLOG.TXT,
when WR-BBS is started up.
With an initialized database, your WR-BBS system will have exactly zero
users on file, no files or messages in the database, and no statistics.
After you finish configuring WR-BBS, start WR-BBS by typing WR, wait for
the startup process to complete, and then log on locally by pressing ALT-L
from the main screen (or the screen saver screen). The first person to log
onto your new WR-BBS system should be the SysOp whose name you have
configured in WRCONFIG.SYS (see section 10).
===========================================================================
SECTION 10 CONFIGURING WR-BBS
===========================================================================
Almost all of the configuration required to make WR-BBS operation is done
by editing the text file WRCONFIG.SYS. This file must exist in the home
path directory. When you edit this file, use an ASCII-capable editor or a
word processor that can save documents in straight ASCII format. If your
word processor inserts proprietary control codes, WR-BBS will try to
interpret these codes as configuration instructions, and this would cause
unpredictable and undesirable results. The copy of WRCONFIG.SYS that came
with your new WR-BBS distribution has SAMPLE values for many of the
configuration items. You will need to change some of these to match your
implementation and your specific system.
WR-BBS will attempt to interpret any line that appears in WRCONFIG.SYS,
unless that line starts with a single apostrophe (') or the keyword "REM",
which is short for remark. Any lines that start with one of those special
identifiers is ignored by WR-BBS. This allows you to insert comments and
notes as you make changes. It also allows you to remove a complex
configuration entry from WR-BBS's view by prefixing a REM in front of the
line. This is helpful if you want to experiment with different settings,
without worrying about losing complex configuration strings that you may
have entered.
Each of the entries that can be included in WRCONFIG.SYS is listed in this
section. Some of the entries are not required unless you are implementing
special optional features. For example, if you do not wish to have "doors"
on your WR-BBS system, you can omit (or remark out) all entries in
WRCONFIG.SYS that start with "DOOR=". Some entries in WRCONFIG.SYS are
required, however, for proper operation. These include the BBSNAME, SYSOP,
and other site-specific details.
---------------------------------------------------------------------------
ANSWERCOMMAND= DEFAULT=ATA
This entry allows you to configure WR-BBS for the command that your modem
requires to answer a call. 99% of all modems use the command "ATA". If
your modem uses "ATA" for an answer command, you can omit this line, as the
default is also "ATA". If your modem requires some other command to answer
a ringing call, you must insert the appropriate string in this entry for
proper operation.
IMPORTANT: This entry is for the command your modem requires to make the
modem go off-hook under software (WR-BBS) control in response to ringing.
This is not the same as the "auto answer" command. Do NOT insert an
automatic answer command string in this entry (such as ATS0=1), or WR-BBS
will not answer calls properly. This applies regardless of the RINGDETECT=
entry you may be using.
---------------------------------------------------------------------------
BADDOOR= DEFAULT=N
If you do not plan to have "doors" or you do not have an error-correcting
modem, then this entry does not apply, and you can skip it, using the
default setting of "N". This configuration item is to correct a deficiency
in some door programs that do not properly read the DOOR.SYS file. These
incorrectly-written door programs read the caller's connect speed from
DOOR.SYS rather than the DTE speed, and then they (incorrectly) adjust
their own baud rate to the caller's speed, which is wrong. The caller gets
screenfuls of garbage, and has to drop carrier, since they cannot issue a
quit command. This phenomena only occurs if you have one of these BAD DOOR
programs, and are using an error-correcting modem with the DTE locked at a
speed which is different than the caller's. If you make BADDOOR=Y, then
WR-BBS fools the bad door by inserting the DTE speed in DOOR.SYS where the
caller's speed would normally appear.
Setting BADDOOR=Y is a workaround to compensate for sloppy programming that
was done by the door program author. Complain to the author of the door
program to get the problem fixed. This setting affects ALL doors that are
configured on WR-BBS. If you have a bad door among several "good" doors,
you really have only three choices:
1. Compromise all doors by setting BADDOOR=Y. Some doors (which
WERE written properly) may then malfunction, because
DOOR.SYS will then be wrong.
2. Stop using the bad software (the poorly written door
program).
3. Modify a batch file and/or use a door manager to fool the bad
door into working properly.
---------------------------------------------------------------------------
BBSNAME= NO DEFAULT
Insert your board's name. Up to 48 characters can be used. The value
assigned to BBSNAME appears at various points during a caller's session,
and on the default screen while WR-BBS is waiting for calls. If you do not
configure this item, WR-BBS will display "BBS NAME NOT CONFIGURED" in lieu
of a BBS name. The BBSNAME entry is displayed in the appropriate places
whether or not you have registered your copy of WR-BBS.
---------------------------------------------------------------------------
BULLETINS= DEFAULT: 32
This must be a number from 0 to 999, indicating the number of bulletins
that you expect to have available. WR-BBS will search the home path for
this number of bulletin files, so this value should represent the real
number of bulletins you have to avoid needless DOS file searching.
Although it is possible to have, say BULLETINS=500, and only four actual
bulletins, callers will have to endure a delay while WR-BBS searches for
the non-existent 496 bulletins.
---------------------------------------------------------------------------
BUSYLINE= DEFAULT: N
This entry determines whether or not WR-BBS makes the telephone line busy
when it cannot process calls. Enter Y for yes, or N for no. If your WR-
BBS system has its own exclusive telephone line, you may wish to enter Y so
that the line is busy during events, while recycling, during local logons,
and when WR-BBS is terminated. If WR-BBS shares a phone line with
something (or someone) else, you must enter N to avoid disabling the phone
line needlessly for other devices or people.
---------------------------------------------------------------------------
CARRIERWAIT= DEFAULT=45
This setting tells WR-BBS how long (in seconds) to wait for carrier after
answering an incoming call. Valid values are 15 to 255 seconds. 45
seconds is a good setting for most installations. Carrier usually occurs
within 25 seconds of a call ringing - if not, it's usually not a data call,
and waiting much longer than 45 seconds will just waste time. If you have
an error-correcting modem that goes through lengthy summit negotiations
before reporting that carrier is present, you may have to lengthen this
value to 60 or more seconds.
---------------------------------------------------------------------------
CGA_STOP_SNOW= DEFAULT: N
For 99% of all installations, enter N for no on this line. If your
computer has an older CGA display, and you see "specks" on the screen when
WR-BBS is writing to the display, then entering Y for yes here will stop
the "snow", but slow down screen updates.
---------------------------------------------------------------------------
CONNECT300= DEFAULT: CONNECT
Enter the verbose result code that your modem sends when a 300 baud
connection is established. Most modems send "CONNECT". If your modem does
not support 300 baud connections, then make CONNECT300=IMPOSSIBLE to avoid
any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT1200= DEFAULT: CONNECT 1200
Enter the verbose result code that your modem sends when a 1200 baud
connection is established. Most modems send "CONNECT 1200". If your modem
does not support 1200 baud connections, then make CONNECT1200=IMPOSSIBLE to
avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT2400= DEFAULT: CONNECT 2400
Enter the verbose result code that your modem sends when a 2400 baud
connection is established. Most modems send "CONNECT 2400". If your modem
does not support 2400 baud connections, then make CONNECT2400=IMPOSSIBLE to
avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT4800= DEFAULT: CONNECT 4800
Enter the verbose result code that your modem sends when a 4800 baud
connection is established. Most modems send "CONNECT 4800". If your modem
does not support 4800 baud connections, then make CONNECT4800=IMPOSSIBLE to
avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT9600= DEFAULT: CONNECT 9600
Enter the verbose result code that your modem sends when a 9600 baud
connection is established. Most modems send "CONNECT 9600". If your modem
does not support 9600 baud connections, then make CONNECT9600=IMPOSSIBLE to
avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT12000= DEFAULT: CONNECT 12000
Enter the verbose result code that your modem sends when a 12000 baud
connection is established. Most modems send "CONNECT 12000". If your modem
does not support 12000 baud connections, then make CONNECT12000=IMPOSSIBLE
to avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT14400= DEFAULT: CONNECT 14400
Enter the verbose result code that your modem sends when a 14400 baud
connection is established. Most modems send "CONNECT 14400" or "CONNECT
144". If your modem does not support 14400 baud connections, then make
CONNECT14400=IMPOSSIBLE to avoid any possibility of line noise being mis-
interpreted.
---------------------------------------------------------------------------
CONNECT19200= DEFAULT: CONNECT 19200
Enter the verbose result code that your modem sends when a 19200 baud
connection is established. Most modems send "CONNECT 19200" or "HICONNECT"
If your modem does not support 19200 baud connections, then make
CONNECT19200=IMPOSSIBLE to avoid any possibility of line noise being mis-
interpreted.
---------------------------------------------------------------------------
CONNECT38400= DEFAULT: CONNECT 38400
Enter the verbose result code that your modem sends when a 38400 baud
connection is established. Most modems send "CONNECT 38400". If your modem
does not support 38400 baud connections, then make CONNECT38400=IMPOSSIBLE
to avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CONNECT57600= DEFAULT: CONNECT 57600
Enter the verbose result code that your modem sends when a 57600 baud
connection is established. Most modems send "CONNECT 57600". If your modem
does not support 57600 baud connections, then make CONNECT57600=IMPOSSIBLE
to avoid any possibility of line noise being mis-interpreted.
---------------------------------------------------------------------------
CTSFLOW= DEFAULT=N
This setting controls whether WR-BBS should pay attention to the CTS (Clear
To Send) flow control signal from the modem. If your modem has a maximum
speed of 2400 baud or less, it is unlikely that the modem will ever lower
its CTS signal (which tells the computer to stop sending data).
On the other hand, high-speed modems, especially error-correcting modems,
need CTS control because they typically work with a fixed (locked) DTE baud
rate, regardless of the caller's connect speed. If a caller is connected
at 2400 baud and the DTE speed is locked at 38,400, it doesn't take long to
fill the modem's buffer. The modem then drops the CTS line, signalling the
computer to stop sending data for a while. When the modem's buffer empties
out (as the buffered data is transmitted to the caller), the modem raises
the CTS line, signalling the computer that it can again accept data.
Without such a signalling means, the modem would overflow, and data would
be lost.
Why not just set WR-BBS to always observe CTS with CTSFLOW=Y ? There can
be some drawbacks to using CTS flow control, so you will probably want to
leave CTSFLOW=N unless you really need CTS flow control. The constant
interrupt servicing necessary to watch CTS causes slightly reduced
throughput. If your DTE is locked at a high speed (such as 14,400 or
higher), this reduction in output is negligible. At slower speeds, it may
be noticeable. The interrupt overhead may also make some disk caching
utilities slow down, especially if they use exTENDed memory instead of
exPANDed memory.
---------------------------------------------------------------------------
DOOR= NO DEFAULTS
See section 13 for complete details on setting up doors.
---------------------------------------------------------------------------
ERRORFREE= NO DEFAULT
Enter the result code that your modem sends when an error free connection
is established. Most error-correcting modems send either "/MNP" or "/REL"
to signify such a connection. If you do not have an error correcting
modem, then make ERRORFREE=IMPOSSIBLE to avoid false error-free detection
if random matching characters should appear. This string is usually a
suffix to the regular connect string, such as "CONNECT 2400 /ARQ" or
"CONNECT 9600 /REL".
---------------------------------------------------------------------------
EVENT= N/A
See section 17 for detailed instructions on configuring events.
---------------------------------------------------------------------------
FILEAREA= NO DEFAULT
There can be up to 26 file areas defined. Each one is identified by a
unique letter (from A to Z) and a descriptive name. The file areas
comprise your "library" of files available for callers to download. By
having (up to 26) distinct file areas, you can group your files by type.
For example, area "A" might be files that are of interest to Windows users,
while area "B" contains Games, with Recipes in area "C", and so on. Having
a well-thought-out file library will make your WR-BBS easy for callers to
navigate, and ensure that files get the visibility you wish them to have.
It is not mandatory that any file areas be defined, but callers will not be
able to upload (or download) files unless at least one file area has been
defined. This might be satisfactory if you want to run a "messages only"
type of BBS. Otherwise, you will probably want to configure at least two
file areas; One area to receive new uploads, and at least one area for
callers to download files from.
To define a file area, enter a line in WRCONFIG.SYS containing the
following, with each item separated by a pipe (|) symbol:
1. The string FILEAREA=
2. The unique letter (A to Z) you wish to assign to that file area.
3. A descriptive name for that file area, such as "Astronomy Files",
"Games for Children", or "DOS Utility Files". This descriptive
name can be up to 48 characters in length.
4. The full path to that file area. This must be a valid DOS
directory. This directory (only) will be searched when a file
download is requested by a caller. If the specified directory
does not exist, an error will occur when WR-BBS is started.
5. A string of letters (A to Z), representing the class-of-service
required for a caller to access the files in that area. To allow
all classes-of-service to access this are, the string would be
"ABCDEFGHIJKLMNOPQRSTUVWXYZ". See section 11 for detailed
information on setting up classes of service.
Some examples:
FILEAREA=A|Flight Simulator Utilities|C:\WR-BBS\FSUTILS|ABCDE
In the above example, a file area designated as "A" references the
directory C:\FSUTILS. The name that will be displayed to callers is
"Flight Simulator Utilities". Callers have a class-of-service of A, B, C,
D, or E can access this file area. Callers with other classes-of-service
(such as "Z") will not be able to access this file area.
FILEAREA=B|Games|D:\GAMES|ABCDEFGHIJKLMNOPQRSTUVWXYZ
In the above example, file area "B" references the directory D:\GAMES. Any
caller can access this area, as all 26 class-of-service letters have been
included in the COS string.
FILEAREA=C|SysOp Only!|C:\FORSYSOP|Q
In the above example, file area "C" references a directory named
C:\FORSYSOP. This is a private file area. In this example, the SysOp is
the only caller with a class-of-service of "Q", therefore, only the SysOp
can access this file area.
Careful planning of your classes of service will allow you to offer a
flexible file library to your callers, restricting unauthorized callers
from files that they should not access. Section 11, which describes the
class-of-service concept, is recommended reading for new WR-BBS SysOps.
The entries that you put in WRCONFIG.SYS to configure your file areas may
exceed the normal line size of your editor. The directory path can be up
to 64 characters, and the descriptive name can be up to 48 characters. If
your entry exceeds 79 characters, it is important that your editor keep the
long entry as ONE line, with no imbedded carriage return or linefeed
characters. The entire entry cannot exceed 128 characters.
---------------------------------------------------------------------------
GOODBYE_DELAY= DEFAULT=1
This parameter controls how long WR-BBS waits, after sending the GOODBYE
screen, before actually dropping the call (lowering DTR). If you do not
have an error correcting modem, the default setting of 1 second is
adequate. If you have an error correcting modem, the caller may not see
the entire GOODBYE screen unless you extend the number of seconds that WR-
BBS waits before it drops carrier after sending the GOODBYE screen. This
is because it only takes a few milliseconds for WR-BBS to transmit the
GOODBYE screen (at very high baud rates typical of error-correcting modems)
but the remote caller's communications program will usually stop updating
the caller's screen as soon as their modem detects that WR-BBS has ended
the call. Valid values for this setting are from 1 to 9 seconds. It
cannot be set to 0 seconds.
---------------------------------------------------------------------------
INBUFFER= DEFAULT=2048
This is an optional entry. It determines the size of the serial I/O buffer
that WR-BBS sets up in memory. 2048 is usually a good value to use. This
means that WR-BBS's communications port handler will buffer up to 2048
characters until WR-BBS can process them. Usually, no more than a few
characters are ever buffered for input. The buffer can be set to any whole
number from 128 to 32767. The higher this number, the more memory is
needed by WR-BBS (a 32767 character buffer takes 32K of additional ram).
If this value is too low, a buffer over-run may occur. An over-run, at
best, means that some input characters will be lost. In severe cases, WR-
BBS could crash due to heap corruption.
If you use a multi-tasking environment, such as DESQview, an OS/2 DOS
Window, or Microsoft Windows, it is possible that WR-BBS may not get enough
processor cycles to unload the buffer in a timely fashion if another
process is bogging the system down. If this is likely, increase the buffer
size slightly (try 8000).
Unless you run multiple applications under a multi-tasker, or you have
problems with buffer over-runs, its best not to change INBUFFER= from the
default setting.
---------------------------------------------------------------------------
INITBAUD= DEFAULT=2400
This value is the speed (baud rate) at which you modem expects to receive
off-line initialization commands. For most (but not all) modems, this is
the same as their maximum operating speed. When WR-BBS starts up, and
after each call, initialization commands are sent to the modem. The value
you define for INITBAUD= determines the speed used by WR-BBS to send those
commands. For most error-correcting modems, including those that support
v32, v42, MNP, and ARQ transmission, the INITBAUD= setting should be the
modem's "link" speed. This is the speed at which the modem normally
communicates with the computer (and vice versa). Most error-correcting
modems use one speed for all computer-to-modem and modem-to-computer data
transmissions, regardless of the actual connect speed. For additional
information, see the entry for LOCKDTE=.
---------------------------------------------------------------------------
LICENSEE= NO DEFAULT
If you have registered your copy of WR-BBS, enter your registered name
after the equal sign, exactly as it appears on your registration
confirmation. You must also enter the special registration code in
conjunction with the REGISTRATION= parameter (described later in this
section. Make sure both are entered correctly. Have correct values in the
LICENSEE= and REGISTRATION= lines will stop WR-BBS from displaying
"EVALUATION ONLY" when callers log on and log off. Your registration name
will be displayed instead.
---------------------------------------------------------------------------
LOCKDTE= DEFAULT=N
This is for error-correcting modems. If you do not have an error-
correcting modem, set LOCKDTE=N, or omit this line from WRCONFIG.SYS.
Error-correcting modems can be identified by the transmission methods that
they support, typically V.32bis, V.42bis, MNP, "reliable", and ARQ. Almost
all modems that work at speeds above 4800 baud are of the error-correcting
type.
Error-correcting modems, with few exceptions, use "locked DTE". This means
that the data stream from the computer to the modem, and vice-versa, always
occurs at a fixed speed (such as 14,400, 19,200, or 38,400). DTE stands
for Data Terminal Equipment, which is what your computer is to the modem.
This constant DTE speed is locked at the same value at all times regardless
of the caller's actual connect rate. For example, if you are using an
error-correcting modem, and have the DTE locked at 14,400, WR-BBS will
communicate with the modem at 14,400 regardless of who is on line or at
what speed. Even a 300 baud connection will result in computer-to-modem
and modem-to-computer communications at 14,400 baud; the modem will
automatically adjust its interface with the caller to their connected baud
rate. Also, all modem commands (including initialization and recycling
commands) are sent at the locked DTE speed.
If you are using an error-correcting modem, consult your modem's
documentation for the proper locked DTE speed to use, and set INITBAUD= to
this value. Also set LOCKDTE=Y.
NOTE: If LOCKDTE=Y and your modem is not an error-correcting type (or is
not set up properly), callers will receive garbage unless they happen to be
calling at the modem's locked DTE speed.
---------------------------------------------------------------------------
LOGONALARM= DEFAULT=N
Enter Y for yes if you want WR-BBS to alert you to each logon with a one
second warble tone. When N is set, no tone is heard when a logon occurs.
---------------------------------------------------------------------------
MAXBAUD= DEFAULT=2400
Enter the maximum speed (baud) at which your modem is capable of operating.
Depending on your modem's make and model, this may be different from
INITBAUD=. For error-correcting modems, enter the modem's DTE or "link"
speed.
---------------------------------------------------------------------------
MODEM_INIT_ONE= DEFAULT=AT &C1 &D2 S7=45 V1 X4 S0=0
and
MODEM_INIT_TWO= NO DEFAULT
WR-BBS supports two modem initialization strings. Each one can have up to
forty (40) characters after the equal sign. Most modems cannot accept
commands with more than 40 characters in the string. Some WR-BBS
installations (particularly those with high-speed, highly configurable
modems) may require more than forty characters to initialize the modem. An
additional line, MODEM_INIT_TWO=, is recognized in WRCONFIG.SYS, and can
contain up to forty additional characters of modem initialization data.
Thus, WR-BBS can handle up to eighty characters for modem initialization
purposes. You do not have to use both strings if your initialization data
will fit into one string. If you have no data for the second
initialization string, omit the MODEM_INIT_TWO= entry from WRCONFIG.SYS.
The modem initialization string is sent to the modem whenever one of the
following conditions occur:
1. WR-BBS is first started.
2. A call ends, and WR-BBS recycles to prepare for the next
call.
For proper operation, some form of initialization data must be sent to the
modem in each of the two situations above. Consult your modem's
documentation for the appropriate information to include in this string.
If you have a Hayes <tm> modem, or a modem that recognizes the Hayes <tm>
command set, the initialization string should start with "AT". The
commands listed below are for example purposes, and assume the use of a
Hayes <tm> modem with no error-correction (such as a SmartModem 2400 <tm>).
They apply to most modems that recognize the same commands as Hayes <tm>
modems, and are necessary for proper, secure operation of WR-BBS. You may
need to add additional commands for your particular installation, so
consider these as a bare minimum:
Command Meaning
------- -------
E1 Echo commands back to computer
M0 Modem's speaker off at all times
Q0 Send result codes
V1 Result codes are words instead of numbers
X4 Detailed result codes, including connect speed
&C1 Track the presence or absence of carrier detect
&D2 React to loss of DTR by dropping carrier
&R0 CTS follows RTS, not assumed to be on
S0=0 Disable auto answer (see RINGDETECT=)
S2=128 Disable escape sequence
The "E1" command is necessary so that WR-BBS will its own input
to the modem echoed back. If WR-BBS does not see this
echo, the initialization diagnostics will not work.
The "M0" command is not essential, but if you omit it, you will
hear the progress of incoming calls until the handshake
is finished. This can be annoying, especially if your
WR-BBS runs twenty four hours a day.
The "Q0" command is required, as WR-BBS will not be able to
determine a caller's connect speed without result
codes.
The "V1" command is also required, so that WR-BBS is supplied
with verbose result codes instead of numbers.
The "X4" command makes the result codes even more verbose, so
that WR-BBS can determine the speed at which a caller
connects, as well as the modem's reports of any errors
during handshaking.
The "&C1" command is extremely important and essential. WR-BBS
will NOT work without this command in your
initialization string. This command makes the modem
report the true state of the carrier detect. If
omitted, the modem (by default) will usually report
that carrier is present all of the time. WR-BBS will
never finish the startup sequence if this is the case,
as it will assume that a caller is connected, and try
(up to 30 times) to drop carrier, when there was no
carrier in the first place.
The "&D2" command is equally important, as this instructs the
modem to drop a call if WR-BBS lowers the DTR (Data
Terminal Ready) line. Without this command in the
initialization string, WR-BBS will not be able to
disconnect calls properly.
The "S0=0" command is REQUIRED unless your modem is one of the
extremely few modems that do not report ringing.
99.999999% of all internal modems and 99.999998% of all
external modems properly report ringing via pin 22. If
yours does not, it is either very old, or defective.
You can configure WR-BBS to work with the modem in
auto-answer mode until you obtain a modem that works
properly. See RINGDETECT= for more details. Unless
you need to compromise your WR-BBS to adapt to an
incompatible modem, do NOT set your modem for auto
answer, either via an initialization command or via
switches on the modem.
The "S2=128" command disables the escape sequence that is used to
gain control of your modem when it is on line. This
sequence, by default, is "+++". A hacker could arrange
his system to send this sequence and take control of
your modem. I won't explain how, but it can be done.
By setting S2=128, the escape sequence is disabled, so
nobody can play games with your modem.
---------------------------------------------------------------------------
MODEMDELAY= DEFAULT=55
This setting allows you to compensate for a "slow" or exceptionally fast
modem. Allowable values are from 1 to 1024, and represent milliseconds of
delay between each command character transmitted to the modem. Note that
this character "pacing" has no connection with the modem's behavior when
connected to a caller - all MODEMDELAY does is slow down command strings
being sent to the modem by WR-BBS. If your modem "misses" the "ATA"
command (and ignores ringing calls), try increasing the MODEMDELAY setting
a bit at a time. The same is true if the status line shows that your modem
is not acknowledging initialization commands (or there are characters
missing in the echoed result). You should never have to set MODEMDELAY
higher than 250. If your modem is super-efficient, you may be able to trim
MODEMDELAY down below 55, reducing the initialization time slightly.
If you are running an error correcting modem at very high DTE speeds
(57,600 and above), you will probably need to set MODEMDELAY to 100 or more
to get reliable command acceptance.
---------------------------------------------------------------------------
NEWUSER_ADDRESS1= DEFAULT=Y
If Y is specified, then WR-BBS will ask each new user for their address
during the new user questionnaire. If set to N, then new callers are not
prompted for their address, but can optionally enter it if desired.
---------------------------------------------------------------------------
NEWUSER_ADDRESS2= DEFAULT=Y
If set to Y, then new callers, while completing the new user questionnaire,
will be prompted to (but not required to) enter their "auxiliary" address.
An auxiliary address is any part of their street address that does not fit
on the first line (NEWUSER_ADDRESS1=), such as their apartment number. If
set to N, new callers are not prompted for an auxiliary address, but can
enter one if so desired.
---------------------------------------------------------------------------
NEWUSER_CITY= DEFAULT=Y
During the new user questionnaire, new callers will be required to enter
their city if set to Y. If you do not wish to require this response, set
this to N.
---------------------------------------------------------------------------
NEWUSER_COS= DEFAULT=A
This entry defines which class-of-service (COS) is initially assigned to
new callers after they complete the new user questionnaire. It can be any
letter from A to Z. By convention, "A" is the lowest letter, and thus
would have the lowest access privileges, but you don't have to follow this
convention, since any COS can be given any privileges you wish to
configure. By specifying a "restricted" class-of-service for NEWUSER_COS=,
you can ensure that new users do not have excessive access rights until you
have verified their questionnaire responses. After verification, you would
(as the SysOp) go into the SysOp menu, select (U)ser administration, and
assign a "better" class-of-service to the verified caller. See section 11
for a detailed explanation of the WR-BBS flexible class-of-service system.
---------------------------------------------------------------------------
NEWUSER_DATAPHONE= DEFAULT=N
This item determines whether new callers, while answering the new user
questionnaire, are required to enter a "data" or "business" phone number.
In some environments, such as a private "hobby" BBS, it is not realistic to
expect that every caller would have a data or business phone number to
give, so you will probably want to set this item to N. If you are running
a more specialized BBS, where, for example, you need the fax number for
every caller, you can set this to Y to prompt them for a non-voice
telephone number.
---------------------------------------------------------------------------
NEWUSER_VOICEPHONE= DEFAULT=Y
Setting this item to Y makes WR-BBS ask for a voice telephone number from
each new caller who completes the new user questionnaire. Unlike a "data"
phone, you can be assured that every caller has at least a voice phone
number to supply (how are they calling your board?), and most SysOps demand
this information for verification purposes. If NEWUSER_VOICEPHONE=Y and
VALIDATEPHONE=Y, the new user will not be allowed to enter a bogus
telephone number such as 555-1234 or 800-XXX-XXXX. They can still dream up
a fake number which satisfies the VALIDATEPHONE routine, but if they do
enter such a fake number, you can lock them out with a clear conscience,
knowing that they intentionally entered a bogus number, and then responded
that the number was indeed accurate. See the VALIDATEPHONE description for
more details.
---------------------------------------------------------------------------
NEWUSER_ZIPCODE= DEFAULT=Y
If set to Y, new callers who indicate that they live in the United States
will be required to enter a Zip code which complies with the USA format.
Either a five or nine digit zip code complies. New callers who are not US
residents (based on their answer to the "country" question) are not held to
this requirement, as their postal codes may have one of many different
formats, or be non-existent. If set to N, no prompting for a Zip code is
done, but it can be optionally entered by the caller.
---------------------------------------------------------------------------
PARITY= DEFAULT=N
The default setting of "N" for no parity checking should not be changed
except for unusual situations. Other valid settings are "E" for even, "O"
for odd, "M" for mark and "S" for space. Note that ANSI graphics, file
transfer protocols, and most doors will not work consistently unless parity
checking is disabled by setting it to "N".
---------------------------------------------------------------------------
PORTNUMBER= DEFAULT=1
Use this setting to tell WR-BBS which communications port your modem is
connected to. Standard port configurations for COM1 and COM2 are fully
supported by WR-BBS. For COM1, the line would read PORTNUMBER=1, and for
COM2, the line would read PORTNUMBER=2. There is only partial support
designed into WR-BBS for ports other than COM1 and COM2, and operation on
non-standard ports is not assured in this version of WR-BBS. The IBM PC
<tm> and AT <tm> in their most generic form do not support communications
ports other than COM1 and COM2. If you wish to use a non-standard COM
port, it must have an IRQ that respectively matches the supported COM
ports. The IRQ mapping is:
COM1 IRQ4
COM2 IRQ3
COM3 IRQ4
COM4 IRQ3
---------------------------------------------------------------------------
REGISTRATION=
After you register your copy of WR-BBS, you will receive a "license code",
which is used in conjunction with the REGISTRATION= entry to tell WR-BBS
that you have a registered copy.
---------------------------------------------------------------------------
RINGDETECT= DEFAULT=1
WR-BBS supports two kinds of ring detection. In 99.99% of all cases, you
should use ring detection type 1, which is the default. Ring detection
type 1 uses your modem's hardware ring signal line (pin 22 on the RS-232
cable). This pin goes high when the phone line rings. It is the most
reliable method. If you use ring detection type 1 (which you should), make
certain that you include S0=0 somewhere in your modem initialization string
(see MODEM_INIT_1=). This turns off the auto answer feature on your modem.
As with most BBS products, WR-BBS waits for ringing to be reported by the
modem, then issues a command to make the modem answer. If your modem is
set for auto-answering with ring detection type 1, nobody will be able to
establish a connection and weird things will happen. Also, make sure that
your modem's DIP switches are set to disable auto-answer.
There are a (very) few modems which do not report ringing via pin 22. If
you have one of these modems, you will have to set RINGDETECT=2. If
RINGDETECT=2, you MUST have auto-answer enabled by including S0=1 in your
modem initialization string.
Use RINGDETECT=2 only if your modem cannot support the default method of
ring detection. If you have any doors configured, be aware that using
RINGDETECT=2 allows a small (but real) window of opportunity for a hacker
to get into the system. If a caller drops carrier while in a door, and a
new call comes in before the door has exited to WR-BBS, the new caller will
be able to essentially continue the session of the previous caller. If the
previous caller was the SysOp or a user with a liberal class-of-service
that allows access to the operating system, a hacker who obtains access
this way can do grave damage, including formatting your drives or
introducing a virus. This potential security breach is not a flaw in WR-
BBS, but a short coming in some door programs that do not immediately react
to lost carrier by exiting to the calling program. Although the likelihood
of such an occurrence is rare, it is one more reason to use RINGDETECT=1,
which all modern modems (that are connected properly) support. If you
modem does not support pin 22 ring reporting, and you wish to use doors,
you should consider getting a better modem before using RINGDETECT=2.
---------------------------------------------------------------------------
SCREENDIR= DEFAULT (SAME AS HOME PATH)
This is an optional entry. WR-BBS uses a number of "screen" files, which
have extensions of .ASC and .ANS. These files are sent to callers to make
the corresponding screens display on the caller's system. Depending on how
sophisticated you make your WR-BBS application, you could have anywhere
from 50 to a few hundred screen files.
To avoid cluttering up the home path directory, you can use SCREENDIR= to
specify a separate directory where the screen files are stored. For
example, if your home path is:
D:\WR-BBS
and you want to keep the screen files in
D:\WR-BBS\SCREENS
Then you would configure WR-BBS by inserting the following line in
WRCONFIG.SYS:
SCREENDIR=D:\WR-BBS\SCREENS
If you do not wish to have a separate screen directory (you don't have to),
then omit the SCREENDIR= entry, or REMark it out. If you use this item, it
must point to a valid directory where all .ASC and .ANS files for WR-BBS
are stored.
---------------------------------------------------------------------------
SCREENSAVER= DEFAULT=Y
Unless you tell WR-BBS otherwise, its uses a screen-saving display
procedure whenever it is idle. Since most WR-BBS boards are operated
twenty four hours a day, the screen saver prevents the WR-BBS screen image
from becoming burned into the monitor's picture tube. When the screen
saver is in effect, a three or four line abbreviated display is located at
random places on the screen, using random colors and intensities. If there
are messages waiting for the SysOp, the fourth line flashes "New message(s)
for SysOp". If the SysOp has no messages waiting, there is no fourth line
in the screen saver display. The top line of the screen-saver display
shows the current date and time, and the WR-BBS "up" symbol.
When the screen saver is in effect, pressing ESCape will return WR-BBS to
the full-screen display mode. Whenever any activity occurs (such as an
incoming call, event, or local administration), the screen saver reverts to
a full screen display automatically.
If you set SCREENSAVER=N, WR-BBS will always display in full-screen mode.
---------------------------------------------------------------------------
SEEKBAUD= DEFAULT=MAXBAUD
This entry is not required unless you have one of the very few modems out
there that seeks "up" to negotiate a connect speed. Most modems attempt to
seek "down" from their highest possible speed until the remote modem agrees
to a connect speed. Thus a 2400 baud modem would answer at 2400 baud, and
step down to 1200, and then 300 until the far modem handshakes. A few rare
modems start at their lowest speed, and "sweep" all possible connect speeds
before completing their negotiation. If you have one of these strange
modems, set SEEKBAUD to the speed at which the modem should begin its
negotiations.
---------------------------------------------------------------------------
SERIALNUMBER=
After you register your copy of WR-BBS, you will receive a serial number.
Enter it with the SERIALNUMBER keyword in WRCONFIG.SYS.
---------------------------------------------------------------------------
SHELLSWAP= DEFAULT=Y
When WR-BBS runs some type of external program (door, event, shell to DOS),
it can swap out more than 90% of its memory image, leaving less than 18K of
itself in memory. This leaves lots of memory for the program that is being
run by WR-BBS.
If your system has at least 550K free exPANDed memory (not exTENDed
memory), then WR-BBS will swap to EMS memory. This swap occurs as quickly
as your computer can move the WR-BBS image from one section of memory to
another - within milliseconds. If your system has insufficient exPANDed
memory to complete the swap, WR-BBS instead swaps to a disk file named
WRBBS.$$$ located in the home path.
If you have a slow computer with a slow drive, and insufficient exPANDed
memory, the time it takes to swap the WR-BBS image to disk can be several
seconds. Callers may perceive this delay as your board being sluggish to
respond (WR-BBS will not accept caller input while the swapping is
happening). In this case, you might wish to set SHELLSWAP=N. WR-BBS will
not swap its image when configured that way. The drawback is that WR-BBS
will continue to occupy its original memory when the external program is
invoked, and the external program may not have sufficient memory available.
If there is insufficient exPANDed memory and WR-BBS swaps to disk, it
automatically deletes the file WRBBS.$$$ when it swaps back. Do not edit
or delete the swap file when shelled out, or WR-BBS will fail to reload,
and a system reboot will be required.
---------------------------------------------------------------------------
SYSOP= NO DEFAULT
You must put a line in WRCONFIG.SYS to indicate who is the SysOp. Use the
exact name that you will log onto your WR-BBS with. When the SysOp logs
on, special privileges are allowed for that person who is named in this
entry. (This person must also log on to the board and establish an account
like any other caller - see section 12).
Example:
SYSOP=WILSON ROGERS
---------------------------------------------------------------------------
TIMELIMIT= DEFAULT (60 FOR ALL COS'S)
You should have one TIMELIMIT= entry for each class of service that your
WR-BBS utilizes. There can be up to twenty six (26) lines in WRCONFIG.SYS
which begin with TIMELIMIT=, defining the caller's time limit (in minutes)
for each of twenty six possible classes of service. The proper syntax is:
TIMELIMIT=?|XXX
Where "?" is replaced with a class of service letter (from A to
Z), and "XXX" is replaced with the amount of time you
wish to allow for callers who have that class of
service. For example, if you want to give callers in
class of service "A" sixty minutes, and give ninety
minutes to callers in class of service "B", the
following two lines would correctly accomplish that
purpose:
TIMELIMIT=A|60
TIMELIMIT=B|90
Valid values for TIMELIMIT are 1 through 999. When assigning time limits,
keep in mind the types of users who will be in each class of service. You
may want to give a few special users a lot of time, perhaps as much as 180
minutes (three hours). New users would be given significantly less time,
perhaps 30 or 45 minutes. A typical "regular" user might be given 60 to 90
minutes.
The TIMELIMIT value is a daily limit for each user in the designated class
of service. For example, if class of service A allowed sixty minutes, a
user with that class of service could use the system for sixty minutes in
one session, or two sessions of thirty minutes each, or six sessions of ten
minutes, and so on. WR-BBS checks the caller's time remaining at regular
intervals, and if the caller exceeds the allotted time, the caller is
logged off the system after a seeing a message explaining that their time
is used up for the day. Each caller's time limit is reset to the limit
(defined in their class of service) on their next logon after midnight
passes. Thus, a user who consumes their entire time limit in one day can
call back at 12:01 AM on the next day and start with a new daily time
allotment.
---------------------------------------------------------------------------
UPLOADBONUS= DEFAULT=2
This item tells WR-BBS how much time to give callers as a "bonus" for
uploading files. Valid values are from 0 to 255. When a caller completes
an upload, WR-BBS checks the file size, and determines the number of
kilobytes (KB). That value (KB) is divided by 10 (to determine how many
"tens" of kilobytes were received), and then multiplied by the value set in
UPLOADBONUS to determine the number of minutes to compensate the caller.
For example, if the caller uploads a 100 KB file, then 10 "tens" of
kilobytes were received, so if the UPLOADBONUS was set to "2", the caller
would receive 20 minutes compensation.
If you don't want to give callers any bonus time for uploads, set
UPLOADBONUS to "0". WR-BBS will never allow any caller to have more than
999 minutes of time remaining, so if you use a high value for UPLOADBONUS,
such as 100, callers who upload large files will have their time increased
to 999 minutes, but not beyond.
If the caller aborts the upload, or for any reason the upload fails, no
compensation is granted to the caller.
===========================================================================
SECTION 11 CLASS OF SERVICE (COS) CONFIGURATION
===========================================================================
In any good bulletin board application, security and flexibility are
afforded by multiple "access levels". WR-BBS is no exception, and up to
twenty six access levels can be defined. If you have configured other BBS
applications previously, you may be familiar with the term "access level",
also referred to as "permission level".
TIP: The term "Class of Service" (or "COS") in WR-BBS has virtually the
same meaning as "access level" on other BBS products.
In WR-BBS, access to various features is controlled by the caller's Class
Of Service (abbreviated as COS). You can custom-configure the COS
assignments to give the appropriate access to the callers (or caller) in
each class of service. With COS definitions, you can control such things
as:
- Number of minutes permitted per day.
- Which file areas can be accessed.
- Whether or not downloads are allowed.
- Whether or not uploads are allowed.
- Which file transfer protocols can be used.
- Which doors can be accessed.
- Whether or not a caller can page the SysOp.
When planning your COS assignments, you should first group callers into
specific types of callers. For example, your breakdown of caller types may
look something like this:
- New users who have not been verified yet.
- Regular users who have normal access.
- Special users who have more extensive access.
- The SysOp.
In the above example, you might assign COS "A" to new users, COS "B" to
regular users, COS "C" to special users, and COS "D" to the SysOp. You can
assign any COS you wish to any caller - the COS letters are not
incremental. In other words, COS "X" does not necessarily grant a higher
level of access that COS "B" - unless you configure both COS's to make this
possible. By convention, however, you may wish to make the COS assignments
appear to be incremental - with COS "A" being having the lowest access
rights, and COS "Z" having the highest. This makes it easier for you and
your callers to relate to the COS letters after they have been assigned.
The SysOp should (but is not required to) have an exclusive class of
service with no other users in it. This allows you to grant unrestricted
access to yourself for administration and testing.
Valid class of service letters are "A" to "Z". Permissions, privileges,
and access rights are granted by "allowing" various classes of service to
access various individual parts of WR-BBS, via entries in WRCONFIG.SYS. In
other words, there is no "chart" of which classes of service can do what,
but instead, the COS's allowed to use individual features are assigned to
those features. This provides the ultimate in flexibility. For example,
rather than "allowing" COS "A" to access file area "C", you would do the
inverse - configuring file area "C" to be accessed by callers with COS "A".
Class of service's are assigned to features in WRCONFIG.SYS. See section
10 for more information on configuring WRCONFIG.SYS. By default, no class
of service can access any of the COS-controlled features, until you
designate otherwise in WRCONFIG.SYS. Thoughtful planning before
implementing the COS permissions will allow for growth and flexibility
during the life of your WR-BBS system. Should you wish to make changes to
the COS configuration, you can edit WRCONFIG.SYS at any time.
===========================================================================
SECTION 12 THE SYSOP
===========================================================================
On any BBS or host system, the SysOp is the most significant user, as well
as the user with the most access privileges. WR-BBS follows this convention
by providing special access for the one user who is designated as the
SysOp. A SysOp must be defined from proper operation and administrative
access on WR-BBS.
The SysOp is quite literally the System Operator. Since you are reading
this, you will probably be the SysOp of your WR-BBS system. You will set
up the system, maintain its databases and files, and be a point of contact
for all other users who want to communicate questions, problems, or
comments about your WR-BBS installation.
Anyone given SysOp privileges should be a responsible person who is well
known to the principal operator of the WR-BBS system. Since the SysOp can
be given permission to drop to the operating system, allowing an
irresponsible person to be a SysOp means that the irresponsible SysOp could
not only destroy your WR-BBS databases and files, but they could even
format or un-partition your computer's drives!
In order to gain administrative access to the User, File Library, and other
WR-BBS databases, the SysOp must log on to the WR-BBS system (locally or
remotely), just as any other user would. Then, at the Main Menu, the SysOp
presses the "Z" key, (a hidden command available only to the SysOp), which
presents the SysOp menu.
When configuring your WR-BBS system for the first time, it is very
important to designate a SysOp. This is accomplished with an entry in the
WR-BBS configuration file, named WRCONFIG.SYS. This configuration file
must have an entry that reads:
SYSOP=JOHN DOE
Where "JOHN DOE" would be replaced by the SysOp's actual name. See section
10 for more information on how to configure the file WRCONFIG.SYS. Only
one SysOp is configured in the file WRCONFIG.SYS.
LOGGING ON:
There are two ways to log on to your WR-BBS system - via the modem and from
the local console (your computer's keyboard). Obviously, WR-BBS must be
loaded and running before it will accept any calls, whether from remote
users (via modem) or from local users (via the console). Also, WR-BBS must
be "ready for calls". That is, it can not be executing an event, preparing
to execute and event, recycling the modem (just after a previous call),
shelled to DOS, or doing anything other than waiting for calls (which is
the default condition).
To log on via the modem, simply place a modem call from another system to
the telephone number which is attached to the modem used by WR-BBS. Your
data call will be answered by WR-BBS, and a session will begin.
To log on from the local console, press ALT-L while the system is waiting
for calls. WR-BBS will then "answer" your logon request, and you will be
presented with the same screens and most of the same options that would
have been available to a user calling in via the modem. This is a good way
to "preview" your WR-BBS application before introducing it to the public.
Local logons also permit you to experiment with WR-BBS without having to
have an actual modem attached to the computer. (The COM port must be
working, however).
There are a few differences between a "remote" (via modem) session and a
"local" (via console) session. Since there is no carrier present at any
time during a local session, WR-BBS is not as quick to detect an
"abandoned" local session. In a remote session, WR-BBS can quickly detect
loss of carrier (where a user hangs up without a proper logoff) and recycle
for the next session. In a local session, the only clue that WR-BBS has to
tell it about the session being abandoned is a keyboard timeout. If no
keys are pressed for 5 minutes (on a local or remote session), WR-BBS
assumes that the user has abandoned, and ends the session, then recycles
for the next call.
Also, the following WR-BBS features are not available during a local (via
console) login:
File transfer protocols (uploads and downloads)
Chat facility
Most doors
Most of the sessions processed by WR-BBS are remote sessions, where the
user, from virtually anywhere in the world, has called via modem. During a
remote session, the console (local keyboard) is still "active", so any keys
pressed on the local keyboard will be interpreted by WR-BBS as if the
remote caller had pressed them those keys. This allows the SysOp to assist
callers by "leading" them to the correct areas of the WR-BBS application by
pressing the appropriate local keys for them, while they watch.
Remember that both keyboards are active, so if the remote caller is
entering a message or responding to a prompt, and both the remote user and
the SysOp start typing, WR-BBS will see both inputs (which will effectively
be meaningless).
*** When logged on remotely (via the modem) as the SysOp, press the "Z" key
to get to the SysOp administration menu. This key is not indicated on the
main menu screen (and is only available to one caller - the SysOp).
===========================================================================
SECTION 13 SETTING UP DOORS
===========================================================================
Doors are external programs (not supplied with WR-BBS) which your callers
can run via WR-BBS. Many doors are games, but virtually any program can be
run as a door with the proper door manager software. There can be up to
twenty six (26) entries in WRCONFIG.SYS which begin with the DOOR= keyword.
If you are not planning to have any doors on your WR-BBS system, you should
have no DOOR= entries in WRCONFIG.SYS (or remark the entries out).
Each door that you configure will be referenced by a letter. There are
twenty six available letters to use for this purpose (A to Z). You can
assign these "reference" letters any way you want, and they do not have to
be used in order. For example, you could have four doors, designated "A",
"C", "X", and "Z". Reference letters cannot be duplicated, so you cannot
have two different doors designated as door "A". For convenience, you may
wish to assign the first door the letter "A", give "B" to the second door,
use "C" for the third door, and so on. Letters other than "A" through "Z"
cannot be used to designate doors, so there is a limit of twenty six doors
that can be configured.
To configure a door for WR-BBS, you need to do four things:
1. Add an entry to WRCONFIG.SYS which assigns a letter (A to Z)
to the door and defines which classes of service may
access that door.
2. Create a batch file which will control the operation of the
door program (whether or not the door program needs
such a batch file with other BBS programs).
3. Configure the door program itself to recognize the DOOR.SYS
standard file that WR-BBS creates when a door is
selected by a caller.
4. Create or edit the DOORMENU screen files to reflect the
letter that you have assigned to the door, and a brief
description of the door's purpose.
ADDING THE DOOR ENTRY TO WRCONFIG.SYS
The entry in WRCONFIG.SYS uses the following syntax:
DOOR=A|ABCDEFGHIJKLMNOPQRSTUVWXYZ
^ ^
| Classes of service allowed to access this door
|
|
Letter designation for this door
For example, the following line in WRCONFIG.SYS would indicate a door with
a letter of "D" which can only be accessed by callers with a class of
service from A to H:
DOOR=D|ABCDEFGH
Notice that there are no spaces in the entry, and a "pipe" symbol separates
the door's letter from the class of service information.
CREATING THE BATCH FILE FOR THE DOOR
Every door on WR-BBS needs to have its own batch file, whether or not the
door can run directly from the command line. WR-BBS calls the batch file
(not the door program) when a caller selects the door from the Doors Menu.
There can be up to twenty six batch files for controlling doors. The name
of the batch file determines which door it controls. The batch file named
DOORA.BAT is called when door "A" is selected, and DOORB.BAT is run when
door "B" is selected, and so on. (The fifth letter in the batch file name
corresponds to the door's letter).
The batch file can be a simple, one line entry which contains the door
program's name, or it can be a complex, branching batch file with many
lines, depending on your needs. Any activity necessary to set the door up
(such as copying configuration files, etc) should be done by that batch
file. Keep these restrictions in mind when designing the batch files for
your door programs:
- The batch file(s) must be in the home path.
- The door program must not modify or delete the batch file.
- Do NOT call WR.BAT or WRBBS.EXE from the door's batch file.
ABOUT DOOR.SYS
Whenever WR-BBS runs a door for a caller, it first creates a file named
DOOR.SYS. This is a text file which is created in the home path. It
contains information about the board and the caller, which many door
programs can use to personalize the caller's visit to the door. I have
settled on the DOOR.SYS standard because many of the "big" BBS programs now
use this as a standard, and most competent door programs recognize DOOR.SYS
when they run.
If the door program you want to use does not recognize the DOOR.SYS file,
you may need to employ a utility program which converts the DOOR.SYS
information to a different format (such as CALLDATA.TXT). Most door
programs, however, can be configured to recognize DOOR.SYS. If the door
program expects DOOR.SYS to be in a specific directory other than the home
path, you can copy the DOOR.SYS file to the desired location with an entry
in the door's batch file. Some doors do not correctly recognize the DTE
speed defined in DOOR.SYS when an error-correcting modem is used. See the
WRCONFIG.SYS keyword BADDOOR= for more details.
MODIFYING DOORMENU SCREENS
The Door Menu screens (DOORMENU.ASC and DOORMENU.ANS) must be edited or
created to reflect the door(s) that you are offering. For each door, you
need to list the door's letter (as defined in WRCONFIG.SYS) and a
description of the door. There are no sample screens for DOORMENU.*
included with the WR-BBS distribution, as this information is highly
variable. See section 7 for instructions on modifying the menu screens.
USING A DOOR MANAGER
The use of a good "door manager" utility is strongly advised. There are
many door programs available, and their design quality ranges from
"excellent" to "terrible". A door manager can compensate for poorly
written door programs and helps to protect your board from damage that
could occur when a poorly designed door program is used. Be aware that
some door programs do NOT offer the following basic features:
- Detection of dropped carrier.
- Preventing caller from accessing command line.
- Detection of inactivity.
- Trapping and handling of errors in door program itself.
A door manager will help compensate for such weaknesses by exerting its own
control over the door program when an unexpected event occurs. Without a
door manager, if the door program does not detect carrier loss, and the
caller drops carrier, your WR-BBS system will be "hung" indefinitely.
Remember that WR-BBS is not active when a door is running, and therefore
has no control of the door).
Some door programs require a Basic runtime module to accompany the .EXE
file. I have found that this type of door program often has no internal
error trapping, and any error in the program's operation results in a
message such as "RUNTIME ERROR AT LINE NUMBER NOLINE". The board will then
be hung unless a door manager is used to control such a poorly designed
door.
There are a number of door managers available, including DOORWAY. The
DOORWAY program is available from BBS's throughout the country, including
the WR-BBS Headquarters BBS. Most of them are shareware offerings - be
certain to register them with their respective author. Door manager
programs have another useful feature in that they can convert almost any
DOS program into a door program - you can use this (with caution) to give
your callers access to other applications. If you do this, make sure that
your caller's cannot use the other application's DOS shell feature to
access the operating system.
===========================================================================
SECTION 14 TROUBLESHOOTING
===========================================================================
Most WR-BBS problems can be easily corrected by reading this documentation,
particularly this section. Support for WR-BBS is available via the WR-BBS
Headquarters BBS. Don't hesitate to log on the WR-BBS Headquarters BBS if
you cannot get your WR-BBS system working properly. The author will
respond to your support request promptly (usually within 24 hours).
---------------------------------------------------------------------------
PROBLEMS SETTING HOME PATH ENVIRONMENT VARIABLE
If DOS reports "Insufficient Environment Space" when you (or AUTOEXEC.BAT)
try to SET the home path, you can increase the environment space available
by modifying the CONFIG.SYS file on your system. To enable a larger DOS
environment, the following line should be inserted in CONFIG.SYS:
SHELL=C:\COMMAND.COM /P /E:1024
If your DOS command interpreter resides somewhere other than the root
directory of C:, you would substitute the appropriate directory path, as
in:
SHELL=C:\DOSFILES\COMMAND.COM /P /E:1024
In the above example, the DOS command interpreter is in the sub-directory
named C:\DOSFILES. The "/P" switch tells DOS that this is to be a
"permanent" command interpreter (one that the EXIT command cannot release).
The "/E" switch tells DOS the desired environment size (from 128 to 32767 -
the minimum and maximum vary slightly among DOS versions). It must be
followed by a colon and a number within the allowable range.
If no SHELL statement is included in your CONFIG.SYS file, the environment
is set to a (small) default of 160 or so bytes, depending on DOS version.
This is inadequate for systems which use multiple SET statements to modify
the environment, including systems running WR-BBS along with other
environment-dependent applications.
WARNING! Make sure you know the exact location of your actual
DOS command interpreter (COMMAND.COM) before modifying CONFIG.SYS
with a SHELL statement. If your SHELL statement points to a non-
existent path, or a directory not containing the command
interpreter, DOS will not boot, and you will be left with a hung
system that only says "Bad or missing command interpreter". If
this happens, you will need to boot from a system-formatted
floppy diskette, and then modify the hard drive's CONFIG.SYS.
NOTE: If your are using a DOS enhancer which provides an alternate command
interpreter, such as 4DOS, EZSHELL or WR-DOS, check with the documentation
that accompanies the DOS enhancer for instructions on increasing the
environment if needed. (WR-DOS's environment is 2000 bytes by default, so
it should not be necessary to change it).
---------------------------------------------------------------------------
MODEM PROBLEMS
If your modem does not work properly with WR-BBS, it is likely that one (or
more) of the following problems exist:
1. Your modem has hardware DIP switches which allow certain
configuration items to be "hard configured" on the modem - and one or
more of these switches is set incorrectly. If your modem has hardware
switches or jumpers, make sure that they are set as follows:
A. Carrier detect (CD) signal not forced on, but tracks actual
carrier detection at all times.
B. Data Terminal Ready (DTR) signal not forced on, but is
controlled by the communications program (WR-BBS).
C. Auto answer MUST BE OFF. WR-BBS requires auto-answer to be
disabled for correct operation. The only exception to this rule
is if you have a defective or incompatible modem - see
RINGDETECT= in section 10.
2. Your modem initialization string is not being recognized by the
modem. With most modems, any invalid command in any of the
initialization strings will cause the modem to ignore the entire
initialization string. To check for this, watch the WR-BBS main screen
during startup. The status bar shows the response sent by the modem
after each command, including the initialization strings. The
response you see in the status bar should be an echo of the
initialization string itself, followed by "OK". (There may be some
arrows in that string as well, representing linefeed and carriage
return characters). If you do not see the initialization string(s)
echoed back, or see the word "ERROR" on the status bar, then the modem
did not recognize the initialization string.
3. You have included S0=1 (or some other value other than zero) in
your initialization string. This turns on the modem's auto answer
feature, which prevents WR-BBS from working properly. Auto answer MUST
BE OFF. WR-BBS requires auto-answer to be disabled for correct
operation. The only exception to this rule is if you have a defective
or incompatible modem - see RINGDETECT= in section 10.
4. Your modem does not recognize the commands commonly used by Hayes
<tm> modems. Some modems claim to be "100% guaranteed Hayes <tm>
compatible" when in fact they are not at all. If you have one of
these modems, you will have to research and configure the proper
command strings and initialization codes.
---------------------------------------------------------------------------
MISCELLANEOUS TROUBLESHOOTING
PROBLEM: During startup, WR-BBS says "HOLDING DTR DOWN FOR XX SECONDS",
and then aborts the startup process.
SOLUTION: Your modem is incorrectly set up and is reporting that
carrier detect is present at all times. To WR-BBS, the presence of
carrier means that a caller is probably connected, and WR-BBS attempts
to drop the "caller" by dropping DTR for up to 30 seconds. If carrier
is still detected, WR-BBS aborts the modem initialization (and does
not start), because it has not established the control it requires
from the modem.
PROBLEM: A call rings in, and WR-BBS reports that it is answering the
call. But instead of the caller establishing a connection, WR-BBS reports
a result code error and the caller is dropped.
SOLUTION: Your modem is configured incorrectly, and is set to auto-
answer. When WR-BBS sends the answer command, the modem aborts the
connection, and WR-BBS never sees a valid connect code. Auto-answer
should never be enabled, except for a few rare circumstances. See
RINGDETECT= in section 10 (configuring with WRCONFIG.SYS).
PROBLEM: A caller logs on via the modem, and has no problems during the
on-line session. When they say goodbye, however, WR-BBS reports that it
cannot disconnect the caller, logs errors, and then WR-BBS re-starts.
SOLUTION: An incorrect modem configuration is to blame. Your modem
is set to hold DTR "high" at all times, and therefore WR-BBS cannot
drop DTR to disconnect the caller. WR-BBS does not use the unreliable
method of sending +++ ATH0 to disconnect a caller. Dropping DTR is
guaranteed to positively disconnect the caller - provided that WR-BBS
is allowed to control the DTR signal.
PROBLEM: When a caller selects a file transfer or door, they are
disconnected when WR-BBS shells out to run the protocol or door.
SOLUTION: WR-BBS does not alter the DTR or any other signals when it
shells out. Make sure that you file transfer protocol or door program
is configured properly - and check for any error messages those
programs generate. The use of DOORWAY to control doors is recommended
for trouble free operation. You can download an evaluation copy of
DOORWAY from most large BBS systems.
PROBLEM: When WR-BBS starts up, it sometimes runs the W-TREE maintenance
utility and rebuilds the index files.
SOLUTION: The file indices are rebuilt, as part of the startup
process, any time that the W-TREE Database Manager cannot verify the
indexes as being current. The usual cause is that WR-BBS was not shut
down properly. The correct way to shut down WR-BBS is to press ALT-Q
from the main screen, confirm the shutdown request, and then wait for
all WR-BBS processes to terminate (about 20 seconds). You will know
when WR-BBS has stopped because your system prompt will return. If
you do not shut WR-BBS down properly, or reboot during the shutdown
process, the W-TREE Database Manager will not have an opportunity to
detach the files (DOS will force them closed instead), and the W-TREE
Database Manager will rebuild the indices on the next startup. The
chance of damaging the actual data files due to an improper shutdown
is minimal, but that risk is one you should avoid anyway.
PROBLEM: During startup, WR-BBS gets to the point where is displays
"Database is not on line ... starting W-TREE Database Manager ...", then it
aborts, reporting error # W-99000-4. The error text is "INSUFFICIENT DOS
FILE HANDLES".
SOLUTION: This error happens when the operating system (DOS) refuses
to allow enough files to be opened for WR-BBS operation. You can fix
this easily by modify your FILES= entry in CONFIG.SYS (not
WRCONFIG.SYS). You should have FILES=30 or more to ensure than
sufficient file handles are available for WR-BBS.
PROBLEM: The WR-BBS activity log has entries that read "ERROR DURING IMAGE
SWAP TO EMS - SHELL USED"
SOLUTION: This message occurs if WR-BBS tries to swap the program out
of regular memory into EMS (exPANDed memory), but cannot complete that
operation. It is usually due to the EMS not being compatible with the
LIM standard, or due to contention from another program in a multi-
tasking environment, or due to a TSR (such as a disk cache) which
unexpectedly accesses EMS while WR-BBS is swapping out. WR-BBS swaps
out for doors, file transfers, and events. This is not a fatal error,
but simply informs you that WR-BBS used a conventional shell (without
swapping out).
PROBLEM: WR-BBS reports error # W-10XXX-2, W-99000-3 or W-10XXX-15 (where
"XXX" is any three digits), and then WR-BBS shuts down and restarts.
SOLUTION: These errors indicate path errors. The usual cause is that
you have the WR-BBS home directory included in your DOS path statement
(it should not be). It can also occur in a networked environment if
the server logs the WR-BBS machine out, and remaps the drive letters
while doing so. Another possible cause is if one of your events
corrupts the DOS environment so that the home path environment string
is not longer valid.
PROBLEM: WR-BBS starts up normally, but then thinks that there is an
incoming call (when there is none). It "answers" the phantom call, but of
course, never establishes a connection.
SOLUTION: Your modem is set to report that carrier is present at all
times - an invalid setting. Make sure that AT&C1 appears in your
modem initialization string, and that your modem's DIP switches or
jumpers (if any) are set to honor carrier detect and not artificially
hold it high.
PROBLEM: Callers complain about "missing" characters, skewed screens, and
file transfers that fail for no apparent reason.
SOLUTION: Dropped characters are almost always due to one of two
things:
1. Flow control mismatch: WR-BBS by default does not use flow
control. If you are using an error correcting modem with locked DTE,
be sure to set CTSFLOW=Y in WRCONFIG.SYS, and configure the modem (via
initialization strings) to work with CTS flow control (not XON/XOFF
flow control).
2. Interrupt latency: Programs that are running simultaneously on
the same machine as WR-BBS can "lock" interrupts for extended periods,
causing "drop outs" on the communications port. Some "resident"
programs (TSR's) are guilty of this. Such programs include some disk
caching programs, especially when the cache is configured to use
exTENDed memory. To troubleshoot this problem, temporarily remove all
DEVICE statements from CONFIG.SYS (not WRCONFIG.SYS), and rename
AUTOEXEC.BAT to something else to hide it from DOS. Then boot the
system, manually type a SET statement to set WR-BBS's home path, and
then start WR-BBS. If the problem no longer exists, try adding
statements back into CONFIG.SYS one at a time, rebooting each time and
checking for dropped characters. Then add each line back to
AUTOEXEC.BAT, doing the same thing, until the offending program is
found.
---------------------------------------------------------------------------
NEED SUPPORT?
Support for WR-BBS is available exclusively through the WR-BBS Headquarters
BBS. Call (206) 828-9089. See section 1 for more detailed information on
WR-BBS support. If you have problems with WR-BBS that cannot be resolved
by following the instructions in this document, please log on to the WR-BBS
Headquarters BBS.
===========================================================================
SECTION 15 MIDNIGHT.BAT
===========================================================================
One of the features built into WR-BBS is the ability to automatically run a
batch file when the computer's clock indicates that the date has changed.
If you have a batch file named MIDNIGHT.BAT in the same directory as the
WR-BBS program files (the home path), this file will be executed as soon as
WR-BBS becomes idle after a date change. If there is no call (or local
administration activity) when the date changes, then MIDNIGHT.BAT will
execute within sixty seconds of midnight. If there is a call in progress
when the date changes, or you are doing some administrative activity on WR-
BBS from the local console when midnight rolls around, WR-BBS will execute
MIDNIGHT.BAT as soon as the system becomes idle again, ie after the caller
logs off, or the administration activity stops.
The use of MIDNIGHT.BAT is optional. If the batch file named MIDNIGHT.BAT
does not exist in the WR-BBS home directory, nothing will happen when the
date changes, and the system will continue to wait for calls just as it
does at any other time.
A sample MIDNIGHT.BAT file is included with the WR-BBS distribution
archive. You can modify this file to suit your needs, or delete it if you
do not wish to use this optional feature. Some functions that you could
include in MIDNIGHT.BAT might be:
1. To archive the log file.
2. To copy the WR-BBS database files to a backup directory.
3. To update your date-sensitive bulletin files.
WR-BBS closes all of its files before executing MIDNIGHT.BAT, so it is safe
to copy the database files. WR-BBS shells out to run MIDNIGHT.BAT (as
opposed to terminating), so no special considerations in your batch file
are needed. Just make sure that whatever programs you launch in your batch
file automatically end themselves. Programs that may require human input,
or operations that access the floppy drives or printer are not recommended.
If one of these operations has an error, the system will remain hung until
human intervention occurs.
When WR-BBS calls MIDNIGHT.BAT, it adds one parameter to the DOS command
line. This parameter is a six digit string representing the current date.
For example, when MIDNIGHT.BAT runs on June 14, 1993, WR-BBS invokes the
batch file with the following command line:
MIDNIGHT.BAT 061493
You can ignore the parameter passed to the batch file if you have no use
for it. You can capture that string by reading the DOS command line (using
%1) in your MIDNIGHT.BAT batch file. You might want to use it to rename
the current activity log (to a filename representing the current date) or
some other date-specific DOS operation. The sample copy of MIDNIGHT.BAT
shows one example of using the date string that is passed by WR-BBS when
MIDNIGHT.BAT is called, to archive the log file.
CAUTION: Do NOT call WR.BAT or launch WRBBS.EXE from your MIDNIGHT.BAT
file. This will result in two copies of WR-BBS being loaded, with
unpredictable (possibly catastrophic) results. Let MIDNIGHT.BAT end
normally, and WR-BBS will "un-shell" and resume operation.
If you do not wish to use this feature, delete or rename MIDNIGHT.BAT.
===========================================================================
SECTION 16 WR_AFTER.BAT
===========================================================================
This is an optional feature that WR-BBS offers. You do not
have to use WR_AFTER.BAT. If you do not wish to use this
feature, delete or rename WR_AFTER.BAT from your WR-BBS home
directory.
You may have a need to do some kind of "housekeeping" after each call is
processed by your WR-BBS system. For example, you may have a third-party
utility that scans the user database for new users, or perhaps a utility
that collects statistics from the activity log file. Such utilities need
to be launched after each call is completed by WR-BBS. The batch file
WR_AFTER.BAT will do that for you.
After each caller logs off (or otherwise ends their call), WR-BBS checks
the home directory for the existence of a file named WR_AFTER.BAT. If this
file does not exist, WR-BBS simply continues along and prepares for the
next call. If, however, WR_AFTER.BAT is found, WR-BBS suspends operation
after recycling the modem (but before opening the modem for the next call),
and executes WR_AFTER.BAT.
When WR-BBS starts WR_AFTER.BAT, it (WR-BBS) does not completely terminate,
but swaps out to disk and then calls WR_AFTER.BAT. Do not run any programs
in WR_AFTER.BAT that remain in memory (TSR's), and do not call WR.BAT from
WR_AFTER.BAT. Doing either of these no-no's will result in unpredictable
problems and mysterious error messages from WR-BBS.
===========================================================================
SECTION 16 HOW THE MESSAGE SYSTEM WORKS
===========================================================================
The message system uses a database file (WRBBSMSG.DAT) to keep track of
messages. Information about who sent a message, the intended recipient,
dates and times, receipt, and other details are all stored as records in
the message database.
The messages themselves are saved as individual text files, in a sub-
directory that WR-BBS creates off the home path. Depending on the number
of messages on file, there can be more than one message sub-directory. The
first message sub-directory is named MSGFILES.000, and additional message
sub-directories are named MSGFILES.001, MSGFILES.002 and so on. A new
message sub-directory is created when an existing one has more than 254
current messages. WR-BBS, when creating a message file, first checks any
and all existing message sub-directories to see if there is room available
for another message file. Thus, if the MSGFILES.000 has 255 files in it,
but 100 messages are deleted, the next 100 new messages will be put into
MSGFILES.000 rather than creating a new sub-directory.
There can be up to 1000 message sub-directories, but in order for this to
occur, there would have to be more than 254,999 messages on file at one
time - an unlikely event on any WR-BBS system.
When callers delete messages (or messages are deleted by the SysOp), WR-BBS
automatically deletes the corresponding message text file in the
appropriate message sub-directory, freeing that space for the next new
message.
The message text files are given unique random file names, based on a
built-in algorithm. Do not rename or delete active message text files. If
a caller attempts to read an active message whose corresponding text file
is missing, and error message is displayed to the caller, indicating that a
system error has occurred. The "system errors" counter is then
incremented, and an entry is made in the activity log to record the error.
===========================================================================
SECTION 17 CONFIGURING EVENTS
===========================================================================
You may wish to set up events on your WR-BBS system. Event configuration
is not required for operation of WR-BBS, so if you are setting up your WR-
BBS for the first time, you may wish to skip this section, and (optionally)
configure some events later on.
Events are external programs, utilities, or functions that you can schedule
to occur on or after a certain time each day, or only on a certain day(s)
of the week. Most BBS's utilize events as part of their normal operation,
but this is not mandatory. Some examples of events are:
- To automatically back up the BBS data files to diskette or tape
drive during a period of low call activity.
- To copy or archive the activity log file each night, the delete the
original log file, thus preventing the activity log file from
becoming large and unmanageable.
- To update or create bulletin screen files at a certain interval,
thus providing fresh bulletins for subsequent callers.
- To run a program which synchronizes the computer's clock with an
external source, thus ensuring that the computer always has the
right time.
Most events are driven by batch files, which then launch the actual utility
program. It is possible, however, to launch a program directly.
With WR-BBS, there are two types of events that can be configured, a
"shell" event, and a "terminate" event. When a "shell" event runs, WR-BBS
(or a portion of WR-BBS) remains loaded in memory, and WR-BBS calls the
external program, much in the same way that the SysOp can shell to DOS from
WR-BBS. The called program executes, and when it is finished, control
returns to WR-BBS, which then picks up where it left off. A majority of
events can be "shell" events. A "shell" event is the easiest to configure,
as you only need to specify the day(s), time, and the name of the batch or
program to be executed.
With a "terminate" event, WR-BBS shuts completely down, closes all files,
and then terminates. It no longer exists in memory, and all interrupts and
file handles are released to DOS. It is up to WR.BAT (the batch file that
controls WR-BBS, to detect the unique DOS error level when this happens,
and launch the event program. WR.BAT or the launched batch file must then
restart WR-BBS, as WR-BBS is completely shut down when a "terminate" event
is invoked, and cannot restart itself.
Why would you use a "terminate" event instead of a "shell" event? Here are
some examples:
- If the event program needs to open a lot of files. DOS only allows
a given number of files to be assigned at a given time. WR-BBS
has up to nine files assigned and/or open, even when waiting for
a call. During a "shell" event, WR-BBS closes the files, but
does not "un-assign" the file handles. As far as DOS is
concerned, there are still nine file handles in use. If the
event program needs to open a lot of files, DOS may react with
"no more file handles".
- If you run an event program that changes the FAT (file allocation
table), you must run the event as a "terminate event". An
example is a disk optimizer program. Most disk optimizers
directly modify the FAT, and make low-level calls to DOS to move
file sectors around. If WR-BBS did a "shell" event to run a disk
optimizer, then the assigned files wouldn't be in the same place
after the event runs as they were before the event. WR-BBS (nor
any other program) would not be aware of the change, and when it
attempts to update files, the results could be disastrous.
- Events which use the same communications hardware as WR-BBS require
that WR-BBS do a "terminate" event. When WR-BBS terminates, it
de-installs all communications interrupts. During a shell, this
is not done. If you run a "shell" event which uses the same COM
port as WR-BBS, you may find that WR-BBS doesn't recognize the
COM port any more. When this happens, WR-BBS may crash when the
next call rings in. Some of the better written communications
utilities (including WR-BBS) restore the COM port interrupts and
vectors to the exact state they were in at startup time, rather
than to a default setting. Such programs can probably be safely
run in a "shell" event under WR-BBS. If in doubt, do a
"terminate" event.
All events are configured with an entry in WRCONFIG.SYS. There can be up to
16 "EVENT=" entries. If more than 16 appear in WRCONFIG.SYS, only the
first 16 are used, and an error message appears during startup. Each event
entry consists of four parts:
1. The "EVENT=" string, which must be the first six characters.
2. A single numeric character, indicating what day(s) of the week the
event should occur on.
3. The time the event should occur (24 hour notation).
4. Either a fully pathed file name, if the event is to run a program,
or a number (65-80) which is designates the DOS errorlevel that
WR-BBS should terminate with when the event is due.
Each of the four entries is separated with a "pipe" symbol (|).
For item 2, the day(s) designator, use one of the following:
1 = Each Monday
2 = Each Tuesday
3 = Each Wednesday
4 = Each Thursday
5 = Each Friday
6 = Each Saturday
7 = Each Sunday
9 = Every day of the week
A value of "8" for the day designator is not meaningful, and the event
will never execute if set for day "8".
For item # 3, the event's time, you must enter the full 24 hour time,
complete with leading zeros. Thus, 13:55, 02:00, and 00:45 are valid
times, but 2:00 is not. Midnight is expressed as 00:00. There is
minimal error checking on the event configuration, so it is possible
to schedule an impossible event, such as at 25:00
Some examples:
EVENT=1|02:00|C:\UTILITY\COPYFILE.BAT
The above event will run each Monday morning at 2:00 AM. It is a "shell"
event, and the batch file named COPYFILE.BAT in the C:\UTILITY directory
will be executed when the event runs.
EVENT=1|02:00|*66
The above event is a "terminate" event. It will occur each Monday at 2:00
AM. When that time rolls around, WR-BBS will terminate, setting the DOS
error level to 66. The batch file that started WR-BBS (such as WR.BAT)
will test for this error level, invoke the other program, then restart WR-
BBS.
See section 8, which details the workings of WR.BAT, for a more detailed
explanation of how DOS error levels are detected and branched.
If you wish to have multiple events run on exactly the same schedule, just
schedule one event in WR-BBS, and have that event run a batch file which
launches the multiple programs. If any two (or more) WR-BBS scheduled
events are configured to occur at exactly the same time, the order in which
the events will be launched is determined by the order in which they were
posted to the task queue, which may not be the order you listed them in the
configuration file WRCONFIG.SYS.
In order for an event to execute, WR-BBS must be loaded, running, and
waiting for calls. If WR-BBS is doing something else (such as processing a
call, or local SysOp activity), the event will not launch until the system
becomes idle again. This version of WR-BBS does not incorporate a facility
to force a caller off the system when an event is pending. Keep this in
mind for extremely time-critical events.
===========================================================================
SECTION 18 THE QUESTIONNAIRE
===========================================================================
WR-BBS includes a questionnaire facility. There is only one questionnaire.
You can include up to 255 "questions" in the routine, and collect an answer
to each question. The responses are stored in a text file, annotated with
the caller's name, and the date and time that the caller selected the
questionnaire. There is no format-checking done on the responses. Unlike
the New User Questionnaire, callers have the opportunity to "skip" answers
or abort the questionnaire entirely at any point.
NOTE: After the caller has completed the questionnaire (or if
they abort the questionnaire at any point), they are returned to
the Main Menu.
You do not have to have a questionnaire if you have no need for one. If
you would prefer not to have a questionnaire available to callers, simply
make sure that there is no directory named QUESTION as a sub-directory off
the home path. Any callers who press "Q" at the main menu will then be
told that no questionnaire has been configured. To reduce caller
confusion, you should also edit the MAINMENU.ASC and MAINMENU.ANS screen to
remove the (Q)uestionnaire option if it presently appears as a choice.
Before you enable the questionnaire, you must first create a few (or more)
short "question files". These are essentially the same as the screen files
used elsewhere in WR-BBS, except they are typically much smaller, since
they usually consist of just one or two sentences. Just as with other WR-
BBS screen files, you need to create an ASCII (.ASC) and ANSI (.ANS)
version of each file. There can be up to 255 questions. Most callers would
not endure even 100 questions, so your questionnaire will probably consist
of maybe a dozen questions maximum - but you can go wild and write up to
255 questions if you have a special need. The filenames for the question
files follow the WR-BBS convention:
Non-ANSI ANSI
------------ ------------
1st question QUES0001.ASC QUES0001.ANS
2nd question QUES0002.ASC QUES0002.ANS
3rd question QUES0003.ASC QUES0003.ANS
and so on ...
There is also a "last" display file which can optionally be included in the
questionnaire routine. This file is displayed to the caller after the
caller successfully answers all of the questions. It might be a brief
message saying "thank you for answering the questions" or something along
that line. The filenames for this "last" display file are EPILOGUE.ASC and
EPILOGUE.ANS.
All of the files described above are placed in a special sub-directory, off
the home path directory. The name of this special directory is QUESTION.
For example, if your home path is C:\WR-BBS, then you would create a sub-
directory named C:\WR-BBS\QUESTION. To do this, issue the DOS MKDIR
command (substituting your correct home path if different):
MKDIR C:\WR-BBS\QUESTION
You are then ready to add the question files to the new sub-directory.
When a caller selects (Q)uestionnaire from the main menu, WR-BBS checks for
the existence of the sub-directory named QUESTION, then for any question
files. It then displays the first question file, gets the caller's
response, displays the second question file, the caller responds again, and
so on.
NOTE: For proper operation, use consecutive numbers in your
question filenames - don't skip any numbers.
Caller options during the questionnaire:
The caller can answer the question by typing a one line response.
The caller can skip the question by pressing <ENTER> alone.
The caller can abort the questionnaire by typing a star (*) and
then pressing <ENTER>.
The answers left by callers are stored in an ASCII text file named
ANSWERS.TXT. This file is located in the QUESTION sub-directory. If the
caller skips any questions while proceeding through the questionnaire,
ANSWERS.TXT will have an entry "NO RESPONSE FROM [CALLER NAME]". If the
caller aborts the questionnaire, it will be recorded in ANSWERS.TXT as
"[CALLER NAME] ABORTED QUESTIONNAIRE". If the caller drops carrier during
the questionnaire, this will also be recorded in ANSWERS.TXT, if the loss
of carrier is detected at any time except when a question file is being
transmitted. WRBBSLOG.TXT will also have a record of dropped carriers.
As subsequent callers complete the questionnaire, their responses are
appended to ANSWERS.TXT - this file grows with each activation of the
questionnaire facility. You may wish to include some kind of automatic
archiving routine in MIDNIGHT.BAT or an event, which moves ANSWERS.TXT to
another location. WR-BBS automatically creates a new ANSWERS.TXT file if
none is found. See section 15 for more details on MIDNIGHT.BAT, and
section 17 for more details on configuring events.
===========================================================================
SECTION 19 THE ACTIVITY LOG
===========================================================================
WR-BBS creates and updates a log file named WRBBSLOG.TXT, located in the
home path. The following are some examples of types of activity are
recorded in WRBBSLOG.TXT:
- Callers logging in.
- Callers changing their passwords.
- Callers requesting various features throughout the WR-BBS menu
system.
- Callers making mistakes, or selecting unauthorized features.
- Callers dropping carrier.
- File transfers.
- WR-BBS being started or re-started.
- WR-BBS being shut down.
- Errors that occur during WR-BBS startup or shutdown.
- Errors that occur during WR-BBS runtime.
- Errors detected by the W-TREE Database Manager.
- System status messages.
- SysOp administration activity.
WR-BBS keeps only one log file - there is no separate file for errors.
Since WRBBSLOG.TXT is an ASCII text file, you can use a third party utility
(or even something as basic as DOS's FIND) to search for specific strings
in the log file.
If WRBBSLOG.TXT does not exist, WR-BBS creates a new one when it next needs
to record an event. If WRBBSLOG.TXT does exist, WR-BBS appends event
information to it. You will probably want to implement some scheme to copy
the contents of WRBBSLOG.TXT to an archival location at regular intervals.
The sample MIDNIGHT.BAT file gives an example of how to do this.
Should WR-BBS experience a "fatal" error during runtime, the details of
that error will usually (but not always) be logged to WRBBSLOG.TXT. Some
errors are so severe that no file I/O is possible, and therefore they
cannot be logged. If a fatal error occurs and is logged, the information
in WRBBSLOG.TXT will be helpful in determining exactly what went wrong.
Particularly important are the Process ID and System Status, listed as
"PID" and "SS" in WRBBSLOG.TXT. If you contact the author for support
involving a fatal error, this information will be most helpful in resolving
the problem.
===========================================================================
SECTION 20 THE "DOWN" OPTION
===========================================================================
WR-BBS has a handy feature built-in for "downtime" operation. This allows
you to configure WR-BBS to answer calls, but not allow callers to log on.
Instead, callers are presented with a message (which you create), and the
call is then terminated.
Why would you want to run your WR-BBS in "downtime" mode? Perhaps you are
in the middle of overhauling all your screens, and you don't want the
computer to get tied up with caller sessions. If you plan to have your WR-
BBS down for any period of time, this feature will be useful - compared to
the alternatives. Callers are much more receptive to a "downtime" message
that getting a constant busy signal or ringing. On the other hand, if most
of your callers use long distance to call your board, it would probably be
more polite to not use the "downtime" option when the board is down -
callers are not charged for calls to busy or unanswered lines.
How to configure WR-BBS for "downtime" operation.
1. Create a set of screen files explaining that the system is
unavailable. See section 7 for instructions on
creating screen files. Your announcement should be
only a few lines long - never more than 20 lines.
Create one for each type of caller with these special
names - DOWNTIME.ASC and DOWNTIME.ANS. Put these files
in the same directory as all of your other screen
files.
2. Stop WR-BBS if it is running, by pressing ALT-Q from the
"waiting for calls" screen.
3. Start WR-BBS by typing this special command line:
WRBBS /DOWN
When WR-BBS is in "downtime" mode, any incoming call is answered as usual,
but instead of logging in the caller, WR-BBS displays the special
DOWNTIME.ASC or DOWNTIME.ANS screen. The caller is then prompted to press
a key to end the call. If the caller does not press a key, the call
terminates automatically after 30 seconds.
To resume normal WR-BBS operation, stop WR-BBS with ALT-Q from the "waiting
for calls" screen, then type WR to start WR-BBS in normal mode.
===========================================================================
SECTION 21 WHILE A CALLER IS ON LINE
===========================================================================
There are some special keys available to the SysOp while a caller is logged
on. If the caller attempts to press these keys - they have no effect -
only the local console can activate these features:
PGUP - Adds five minutes to the callers time.
PGDN - Deducts five minutes from the callers time.
ALT-X - Immediately forces the caller off - abruptly!
In order to use these keys, the caller must be in one of the menus (Main
Menu, Message System, Files Library). To activate one of the special keys,
hold it down until the desired effect is observed (it may take a second or
two).
Remember that when a caller is logged on, the local (console) keyboard is
active along with the callers. This allows you to type things for the
caller (to show a confused caller how to do something, for example). This
also means that you can "coerce" a caller to one of the menus by using the
regular command keys (which they could use), and then press one of the
special keys described above.
===========================================================================
SECTION 22 EXTERNAL FILE TRANSFER PROTOCOLS
===========================================================================
WR-BBS does NOT include any file transfer protocols in the program file.
All file transfer activity is controlled by an external file transfer
utility program(s) that you supply. There are a number of external file
transfer protocol programs available from BBS's that specialize in
communications and BBS utility files, including the WR-BBS Headquarters
BBS. From some BBS's you can download public domain (free) copies of the
Xmodem and Ymodem file transfer utilities. Other, more proprietary
protocols can be obtained for a modest registration fee on a shareware
basis.
The WR-BBS Headquarters BBS uses DSZ by Omen Technology, Inc., which is an
excellent multi-protocol file transfer utility. It includes an authentic
version of Zmodem, true Ymodem, Xmodem, and many variations of those
protocols, including streamers such as Ymodem-G for use with error-
correcting modems. It is a powerful program with good documentation, and
well worth the registration fee. The author is a registered user of DSZ
for use in operating the WR-BBS Headquarters BBS, but has no affiliation
with Omen Technology, Inc. or the authors of their products. You can
obtain more information on DSZ or download an evaluation copy of DSZ from
Omen's BBS at (503) 621-3746. Remember to register any shareware programs
such as DSZ if you continue to use them after the evaluation period.
After obtaining one or more file transfer utilities, it is necessary to
understand how WR-BBS invokes file transfers. WR-BBS uses a batch file to
control all file transfers. This batch file is named WFILEXFR.BAT. A
sample copy of WFILEXFR.BAT is included with the WR-BBS archive. If you
use DSZ, you can probably use that batch file as is, or with minimal
modification.
The batch file WFILEXFR.BAT uses the parameters to branch to defined
labels, based on what WR-BBS passes. If you are unfamiliar with the
concept of replaceable parameters (command line variables) in batch files,
see your DOS manual for more details.
WR-BBS passes five parameters to WFILEXFR.BAT when a file transfer is
requested:
Parameter 1: A single character, which represents the communications port
that WR-BBS has active at the time of the file transfer.
This is the port that you defined in WRCONFIG.SYS with the
"PORTNUMBER=" keyword. Some file transfer programs need to
know what port they should use, especially if WR-BBS is not
set up to use COM1. Possible values that may be sent by WR-
BBS are "1" for COM1, "2", for COM2, "3" for COM3, "4" for
COM4, or "N" in the event of a local logon that does not
involve the modem (from the local console).
Parameter 2: A string that represents the caller's connected baud rate.
WR-BBS might send "300", "1200", "2400", "9600", etc. If the
caller is "local" (logged in from the local console), then
the word "LOCAL" will be sent in lieu of the baud rate. If
you have an error-correcting modem, and you have set
LOCKDTE=Y in WRCONFIG.SYS, then WR-BBS will pass the locked
DTE speed as the second parameter instead of the caller's
connect speed. This is because the file transfer utility
needs to work at the modem's speed, not the caller's speed
(which is usually less). An error-correcting modem
compresses data and handles the buffering, so it is okay, for
example, to have the file transfer utility cramming data into
an error-correcting modem at 38400 baud, while the caller is
connected at 2400 baud. Error-correcting modems use flow
control to keep the data from overflowing when there is such
a speed difference - thus, it is very important to configure
your file transfer program for the proper flow control when
using an error-correcting modem. (Some file transfer
programs, including DSZ, handle the flow control
automatically).
Parameter 3: Either the string "RECEIVE" or the string "SEND". If a
caller has requested an upload to your WR-BBS, then your
system will "RECEIVE" the file. If a caller requests a
download, then your system will "SEND" the file(s).
Parameter 4: A string - the protocol keyword, as defined in WRCONFIG.SYS.
This will make more sense when the entries you need to make
in WRCONFIG.SYS are explained a few paragraphs later.
Parameter 5: The name of the file to be transferred, or the name of a file
list (which is a text file containing a list of file names).
In the case of a single file transfer, the actual file name
will be sent as parameter number five. If there are two or
more files involved, WR-BBS will create a text file named
DL.LST, in the home path, and pass DL.LST as the fifth
parameter. Many file transfer utilities, such as DSZ, expect
a "list file" to tell them when multiple files are to be
transferred. WR-BBS allows a caller to select up to 99 files
for batch download at one time. If the caller selects more
than one (and the file transfer protocol allows batch
transmission), then WR-BBS puts all of the file names, one
per line, in the text file named DL.LST, then invokes
WFILEXFR.BAT, using DL.LST as the fifth parameter.
Parameter 6: A numeric string ("1" to "99") which represents the number of
files being transferred. Although WFILEXFR.BAT does not use
this parameter, it is sent by WR-BBS to provide compatibility
with file transfer utilities that expect a file count on the
command line.
Here are some examples of the way that WR-BBS calls WFILEXFR.BAT when a
file transfer is requested by a caller. In each of these examples, we will
assume that WR-BBS is configured for COM1:
Example one - The caller is connected at 1200 baud, and has requested an
Xmodem-CRC download of the file HELLO.TXT ...
WFILEXFR 1 1200 SEND XMODEMCRC HELLO.TXT 1
Example two - The caller wants to upload NEWFILE.ZIP, and is connected at
2400 baud. The caller has chosen SuperVmodem (a fictitious protocol, for
example purposes only) ...
WFILEXFR 1 2400 RECEIVE SUPERV NEWFILE.ZIP 1
Example three - the caller is connected at 2400 baud, and has requested a
Zmodem download of these three files: ONE.ZIP, TWO.ZIP, and THREE.ZIP ...
WFILEXFR 1 2400 SEND ZMODEM DL.LST 3
Example four - the caller has requested an Xmodem-1K download of
BIGFILE.ARJ, and is connected at 9600 baud (error-free), with the DTE
locked at 38,400 baud ...
WFILEXFR 1 38400 SEND XMODEM1K BIGFILE.ARJ 1
Where does WR-BBS get the protocol keywords, such as XMODEMCRC, SUPERV,
ZMODEM, and XMODEM1K found in the above examples? Those come from your
entries in WRCONFIG.SYS. Remember that WR-BBS does not have any file
transfer protocols available, until you define what they are and what they
can do - in WRCONFIG.SYS. The proper syntax for file transfer protocols in
WRCONFIG.SYS is:
1. The keyword PROTOCOL=
2. The NAME of the protocol, as you wish to have it displayed to
callers. The name you enter here will be the name shown in
the list of available protocols presented to the caller when
they request a file transfer. This information is NOT passed
to WFILEXFR.BAT or used for any other reason except to inform
the callers that the protocol is available for use.
3. A pipe "|" symbol.
4. The protocol's KEYWORD, which will be passed to WFILEXFR.BAT.
This string can be 1 to 16 characters long, and cannot contain
spaces or any of the following characters: @ < > , + ; $ %
This information is NEVER displayed to the caller, and it is
only for use by WFILEXFR.BAT, to differentiate one protocol
from another. To make life easier, you should choose a
protocol KEYWORD that relates somehow to the name of the
protocol. See the examples below.
5. Another pipe "|" symbol.
6. The word "SINGLE" for single-file protocols, or the word
"BATCH" for multiple-file protocols.
7. Another pipe "|" symbol.
8. A list of 1 to 26 letters (A to Z), representing the classes
of service permitted to use that protocol.
(Port # 1 and 2400 baud used for both examples below)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Example one: This (fictitious) protocol is called "SpeedyModem X", and is
capable of multiple file transfers. The SysOp wants it to be available to
all callers in all classes of service. The SysOp also wants the keyword
"SPEED" to be passed to WFILEXFR.BAT when a caller selects this protocol.
Here is what the entry in WRCONFIG.SYS would look like:
PROTOCOL=SpeedyModem (Real Fast)|SPEED_M|BATCH|ABCDEFGHIJKLMNOPQRSTUVWXYZ
(Callers will see this protocol listed as "SpeedyModem").
Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
if a caller chooses to download PICTURE.ZIP ...
WFILEXFR 1 2400 SEND SPEED_M PICTURE.ZIP 1
Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
if a caller choose to download ONE.ARJ, TWO.ARJ, and THREE.ARJ ...
WFILEXFR 1 2400 SEND SPEED_M DL.LST 3
Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
if a caller told WR-BBS they wanted to upload GOODFILE.ZOO ...
WFILEXFR 1 2400 RECEIVE SPEED_M GOODFILE.ZOO 1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Example two: This is for the Xmodem-CRC protocol, one of the most common
(but not the most efficient) file transfers available. It is capable of
single file (one at a time) transfers only. The SysOp wants it to be
available to all classes of service. The SysOp has decided to use the
keyword XMC to designate Xmodem-CRC for configuration and control purposes
(in WRCONFIG.SYS and WFILEXFR.BAT). Here is what the entry in WRCONFIG.SYS
would look like:
PROTOCOL=Xmodem-CRC|XMC|SINGLE|ABCDEFGHIJKLMNOPQRSTUVWXYZ
(Callers will see this protocol listed as "Xmodem-CRC").
Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
if a caller chooses to download PICTURE.ZIP ...
WFILEXFR 1 2400 SEND XMC PICTURE.ZIP 1
Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
if a caller told WR-BBS they wanted to upload GOODFILE.ZOO ...
WFILEXFR 1 2400 RECEIVE XMC GOODFILE.ZOO 1
As you can see, WR-BBS knows the external protocols by two identifiers -
the first one is the "nice looking" string that is presented to callers,
and not used anywhere else by WR-BBS. The second identifier is the
protocol keyword which is passed to WFILEXFR.BAT as a parameter.
Working with your protocol's documentation and this section, you can
customize your file transfer protocol handling. When selecting a file
transfer protocol utility, and when designing your WFILEXFR.BAT file (if
you choose to modify it), you should keep these things in mind:
1. You should use a file transfer protocol that allows you to restrict
incoming files. DSZ does a good job of this. If WFILEXFR.BAT tells
DSZ to receive a file named GOOD.ZIP, and the called instead transmits
BAD.TXT, DSZ will name the file GOOD.ZIP. The "restrict" option on
the DSZ command line also keeps caller from accidently (or
intentionally) sending files with pathnames that would locate them in
a directory other than the one you want to receive them in.
2. Your file transfer protocol should delete any partial files. This
will prevent subsequent callers from downloading aborted upload
segments.
3. If you do not want callers to have access to new uploads until you
have
tested / cataloged them, set the class of service (in WRCONFIG.SYS)
for the upload area so that only the SysOp has access to it. Then,
after you have checked the new files (as the SysOp), you can edit
their descriptions to move them to a different file area that other
callers have access to.
4. All incoming files must be written to the "uploads" directory that
you specified in WRCONFIG.SYS. After an upload is completed, WR-BBS
checks for the existence of the uploaded file in that directory. If
the file is not found in the upload directory, the description record
is deleted, and the upload is considered as failed.
5. WR-BBS checks for the existence of a file named $FAILURE in the
upload directory after an upload occurs. If the file $FAILURE exists,
WR-BBS assumes that the upload was unsuccessful. Your WFILEXFR.BAT
file should erase any $FAILURE file before invoking the transfer, and
create $FAILURE only if there is a problem with the upload. See the
sample copy of WFILEXFR.BAT for details.