home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Professional
/
OS2PRO194.ISO
/
os2
/
com
/
bbs
/
simplex
/
simplex.doc
< prev
next >
Wrap
Text File
|
1992-08-16
|
127KB
|
3,126 lines
┌───────┐ ┌─┐ ┌─────────┐ ┌──────┐ ┌─┐ ┌──────┐ ┌─┐ ┌─┐ ┌───────┐ ┌─┐ ┌─────────┐ ┌──────┐ ┌─┐ ┌──────┐ ┌─┐ ┌─┐
│ ┌─────┘ │ │ │ ┌─┐ ┌─┐ │ │ ┌──┐ │ │ │ │ ┌────┘ └┐└┐ ┌┘┌┘ │ ┌─────┘ │ │ │ ┌─┐ ┌─┐ │ │ ┌──┐ │ │ │ │ ┌────┘ └┐└┐ ┌┘┌┘
│ └─────┐ │ │ │ │ │ │ │ │ │ └──┘ │ │ │ │ └──┐ └┐└─┘┌┘ │ └─────┐ │ │ │ │ │ │ │ │ │ └──┘ │ │ │ │ └──┐ └┐└─┘┌┘
└─────┐ │ │ │ │ │ └─┘ │ │ │ ┌────┘ │ │ │ ┌──┘ ┌┘┌─┐└┐ └─────┐ │ │ │ │ │ └─┘ │ │ │ ┌────┘ │ │ │ ┌──┘ ┌┘┌─┐└┐
┌─────┘ │ │ │ │ │ │ │ │ │ │ └────┐ │ └────┐ ┌┘┌┘ └┐└┐ ┌─────┘ │ │ │ │ │ │ │ │ │ │ └────┐ │ └────┐ ┌┘┌┘ └┐└┐
└───────┘ └─┘ └─┘ └─┘ └─┘ └──────┘ └──────┘ └─┘ └─┘ └───────┘ └─┘ └─┘ └─┘ └─┘ └──────┘ └──────┘ └─┘ └─┘
Simplex BBS - (c) 1989-91
Chris Laforet Software/Christopher Laforet
All Rights Reserved.
Chris Laforet can be contacted at:
The Programmer's Oasis BBS - Graham, NC - 919/226-6984
The Programmer's Oasis 2 BBS - Graham, NC - 919/226-7136
FidoNet Mail 1:151/401 or 1:151/402 as Chris Laforet
CompuServe Email - User ID: 76120,110
Genie Email - User ID: XTX74591
BIX Email - User ID: laforet
Programming by Chris Laforet
Unauthorized Selling/Renting Prohibited
Documentation Title Page/Help Files/Etc by Robbie Foust
_________________________________________________________________
Chapter 1 Chapter 1
Legalistic Mumbo-Jumbo Legalistic Mumbo-Jumbo
_________________________________________________________________
Simplex is copyright (c) 1989-91, Chris Laforet Software and/or
Christopher Laforet. This copyright is waived for the
distribution of the executable files for Simplex. This means
that you are free to distribute the Simplex executables as you
wish as long as they are contained in the original form in which
you received them.
The source code for Simplex is available for purchase from Chris
Laforet Software. When you purchase this code, you are granted
an exclusive license to modify it for your own use. The
executables that you produce must never be distributed in place
of the original executables as compiled and distributed from
Chris Laforet Software unless you arrange a royalty system with
Chris Laforet Software. During the course of your modifications,
should you develop a feature which you believe should be a part
of the distributed Simplex executables, you may submit the code
to Chris Laforet Software for review and for possible
incorporation into Simplex, as long as such incorporation does
not place Chris Laforet Software and/or Christopher Laforet under
any monetary obligations. Your submitted code must include a
cover letter indicating that you are freely granting permission
to Chris Laforet Software for the incorporation of your code into
Simplex.
There are no warranties of any kind, explicit or implied, on the
Simplex software. Simplex's executables are provided on an "AS
IS" basis. What this means is that if you decide to use Simplex,
it is at your own risk. In plain English, this means that if you
use Simplex and your machine blows up, the developers and
distributors of Simplex are not responsible in any fashion. If
you use Simplex and it loses all of the files on your disk, once
again the developers and distributors of Simplex are not to be
held accountable. While these scenarios are rather extreme in
nature, they serve to indicate that Chris Laforet Software and/or
Christopher Laforet does not warrant, guarantee, or make any
other representations regarding the use, or results of use, of
Simplex or its documentation in terms of accuracy, reliability,
correctness, currentness, or otherwise.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 2 Page 2
_________________________________________________________________
Chapter 2 Chapter 2
Introduction to Simplex Introduction to Simplex
_________________________________________________________________
Simplex is a package created for the running of a Bulletin Board
System (BBS). The development of Simplex arose out of Chris'
personal gripes insofar as his inability to either fix bugs or
add features to other BBS packages. From the outset, Simplex was
designed to be an easy-to-use BBS system, with source code
available (at a price!) to anyone who might be interested. On
the other hand, Simplex's executables are meant to be distributed
as public-domain material. There are many good BBSes out there,
ones which have cost their SYSOPs (System Operators) lots of
money to purchase the necessary hardware. There is no reason on
earth why they also have to ante up lots of money for their BBS
software.
Simplex is somewhat based on the user interface of QuickBBS. It
is said that imitation is the sincerest form of praise, and it is
in praise of QuickBBS' logical user interface (like P for Pause!)
that Simplex emulates certain of its characteristics.
Simplex is currently available for DOS or OS/2. It is currently
being ported to UNIX also. Simplex is going to be produced in a
multiuser version for OS/2 in the future. There are no plans to
make the DOS version multiuser, but once it has been ported to
UNIX, Simplex should be multiuser there.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 3 Page 3
_________________________________________________________________
Chapter 3 Chapter 3
Installing Simplex Installing Simplex
_________________________________________________________________
DOS users of Simplex will require a FOSSIL driver such as Ray
Gwinn's excellent X00 package. A FOSSIL driver is a special
program which provides an interface to communications ports.
OS/2 users do not have to use a fossil since OS/2 supports
communications ports with interrupt-driven drivers.
3.1-Simplex and Answering the Phone 3.1-Simplex and Answering the Phone
_________________________________________________________________
Simplex will answer the phone by itself as long as your modem
returns string results (like Hayes). In CONFIG you can configure
your modem's strings for Simplex to monitor. If you are running
a FidoNet node, then you will probably have a front-end mailer
answer the phone for you. See below for more details of using a
mailer.
If you are running Simplex as a simple host program, you might
want to use the ringback feature. This feature permits you to
use your voice line for your host and not have to worry too much
about your modem answering the phone and surprising one of your
friends! How this works is that a person wishing to call your
host rings the number and allows it to ring less than 5 times.
This will then arm the answer feature. They can then call back
in less than 40 to 50 seconds and the modem will answer them.
After they hang up, the system will be back in an unarmed state.
3.2-Installing A Fidonet Node 3.2-Installing A Fidonet Node
_________________________________________________________________
If you want to use Simplex as a Fidonet node, you will need to
use some sort of a front-end mailer software such as BinkleyTerm
or FrontDoor. This software is needed in order to handle mail
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 4 Page 4
transactions between your node and other fidonet nodes. Whatever
mailer you use must comply with oMMM message bundle formatting
(unless you choose to write a message handling interface between
your mailer and Simplex).
Simplex needs a special directory which it uses as an interface
to the front-end mailer. Traditionally, this directory has been
named the MATRIX directory. This directory is used during the
exportation/forwarding of messages from Simplex to other nodes.
The format of these messages is the standard FidoNet message
format as outlined in their FSC-0001 standard (1.MSG, 2.MSG,
etc.). These messages are then taken by mail bundlers such as
oMMM or SMP and bundled for the front-end mailer. It is
essential that this directory not be used for anything else.
Simplex also needs a special directory where inbound bundles and
message packets are placed. Traditionally, this directory has
been called INBOUND. The front-end mailer will place the inbound
bundles in message packets here once they have been successfully
received. Simplex's mail utilities will scan this directory for
any unpacked bundles or packets which it would proceed to unpack.
It is not essential that this area be used exclusively for
inbound mail since Simplex searches for bundles and packets based
on their file extensions.
Simplex requires a special directory which can be used as a
"scratch" area. This directory is essential and must be used
exclusively by Simplex. It is suggested that you call this
directory PACKET since it is used to hold unarchived inbound mail
bundles. This directory is essential because once the mail is
unarchived, the archives are deleted. If the packets are not
unpacked for any reason, they will remain intact until Simplex's
mail utilities are run once again. This directory along with the
inbound directory is searched for message packets every time
Simplex's mail utilities are run.
All members of FidoNet are listed in a file called the Nodelist.
In order to be able to communicate with other nodes, BBS and
mailer software must have access to this nodelist. Simplex is no
exception to this rule. It requires that the nodelist be
compiled using any Version 6 nodelist compiler (Version 6
nodelists are used by BinkleyTerm, Opus, and many other FidoNet
utilities) such as ParseList. Simplex must know exactly where to
find the compiled nodelist.
Simplex requires a FidoNet node's address. This address uniquely
identifies the node during communications with other FidoNet
nodes. A FidoNet address consists of a Zone (read continent), a
Net, and a Node number such as 1:151/401 which identifies
Simplex's "home" node as being in Zone 1 (North America), Net 151
(Eastern North Carolina), and Node 401 in that net. While use of
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 5 Page 5
the Zone number is not absolutely essential at this time and it
is perfectly acceptable to list your Zone number as 0, such use
should be frowned upon in a network which is worldwide in nature!
Hence Simplex does somewhat attempt to enforce the use of the
Zone number.
3.3-Setting Up Simplex BBS Paths 3.3-Setting Up Simplex BBS Paths
_________________________________________________________________
Simplex should have a special directory for its configuration,
message, and userlist files. This directory can be shared with
other programs if so desired (for example, with the front-end
mailer's configuration files). It also requires a directory for
its menu files, a directory which should be used exclusively for
these files. Simplex also requires a directory for its screen
files. It is advisable to create 3 subdirectories, say \SIMPLEX
(for the configuration, message, and userlist files),
\SIMPLEX\MENUS (for the menu files), and \SIMPLEX\SCREENS (for
the screen files).
Simplex and its utility programs respond to the SIMPLEX
environment variable (SET SIMPLEX=path of Simplex configuration
file). It is advisable to place this set statement in your
autoexec.bat file (in DOS) or in your config.sys (in OS/2) so
that Simplex and its utilities can always find their home
directory.
If you are planning to run a FidoNet node with Simplex, you also
need an inbound directory where your front-end mailer places
files bound for your node. There also needs to be an outbound
directory in which your Simplex system will place files for your
front-end mailer to send to other nodes. These could be called
\SIMPLEX\INBOUND and \SIMPLEX\OUTBOUND and must be set up in both
Simplex's configuration as well as your front-end mailer's
configuration.
Simplex requires two other directories to handle its normal
FidoNet mail duties. These are a matrix directory where it
tosses mail as standard FSC-0001 message files during
exportation/forwarding, and a packet directory which it uses as a
scratch area while unpacking inbound mail. These could be called
\SIMPLEX\MATRIX and \SIMPLEX\PACKET. Please notice that Simplex
maintains its packet directory and thus it should only be used by
Simplex itself.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 6 Page 6
3.4-Configuring Simplex with CONFIG 3.4-Configuring Simplex with CONFIG
_________________________________________________________________
Configuration of Simplex is rather simple using CONFIG.EXE (in
OS/2 it is CONFIG2.EXE). In DOS using some old CGA systems,
direct screen writes cause "snow" on the screen. If you run
CONFIG and get snow, exit and then run it with CONFIG -S to
enable retrace ("snow") checking.
Essentially Simplex is a menu-driven program which is
straightforward to use with the following exceptions:
1. When you make changes on a text field you MUST hit
Enter on the field to keep them.
2. When you change a screen of options, you may hit hit
Alt-X, Alt-Q or ESC to exit back to the menu and keep
the changes.
3. When editing menus, pressing PgUp, PgDn, or Alt-X will
keep the changes. Pressing ESC aborts the changes on
the current menu page only.
4. To go forwards to a specific field without affecting
the contents of any other fields, press Tab. To go
backwards use Shift-Tab.
5. On multiple choice options, you may select the
letter/number corresponding to the choice that you
wish, hit Enter or Tab to skip past it without making a
change, or hit Shift-Tab to skip back to the previous
option.
6. On scrolling, light-bar menus, use your Arrow keys to
select the option that you wish. You may also hit the
first letter of an option to get to the first option
matching that letter. Ctrl-PgUp and Ctrl-PgDn move a
"page" of options at a time.
7. Always remember that your ESC key backs you out without
saving changes!
Option 1: You must enter your BBS Name and Sysop Name. If you
provide your Sysop name in the same form as your login, messages
addressed to Sysop will be directed to you. If you run a Fidonet
node, then you must also provide your address and origin line to
use in Echomail messages. This origin line will be appended to
the bottom of Echomail messages along with your node number
unless you have configured a special origin line along with the
message area (see option 6).
Option 2: This screen allows you to configure your modem
parameters. You also can indicate if your modem is slow to
respond to commands, and set the minimum baud rate a user has to
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 7 Page 7
have to log on to Simplex and the minimum baud a user has to have
in order to see ANSI color screens. Notice that in modem
configuration strings the | character indicates Carriage Return
and the ~ character indicates a 0.5 second pause.
Option 3: This screen allows you to configure Simplex's usage
options. Most are self-explanatory. Private BBS operation means
that if someone is not on the nodelist they are not allowed to
log in. Disable local keyboard means that by default the
keyboard is disabled from being active while someone is logged in
(this can be toggled on and off with Alt-K while Simplex is
running.
Option 4: This screen allows you to configure Simplex's paths.
Some of the paths are only for FidoNet mail paths and can be
ignored if you are not going to run a FidoNet node.
Option 5: This screen allows you to configure the archiver
command lines for archivers available on your system. This
option is only needed for FidoNet nodes.
Option 6: This section permits you to edit/add/delete message
boards for your Simplex system. Use PgUp and PgDn keys to scroll
through each message board. The number of the message board is
used in menu options. Message boards may be numbered any value
from 1 through 9999, depending on your preferences. The message
board name is shown to the user while reading messages. Message
board types may be Local, FidoNet Mail (should only be one area
for FidoNet mail), Echomail, or Local Fileattach. Message boards
may allow messages which are private only, public only, or both
public and private. The read and write privilege levels are the
minimum user levels to be able to read and post messages on the
board. The sysop privilege level is the minimum user level
required to have access to sysop's message options like Export
and Move messages. If the area is an Echomail area, you can also
specify a special origin line to be used in lieu of the default
origin line for that area only.
Option 7: This section permits you to edit/add/delete file
boards for your Simplex system. As in option 6, use PgUp and
PgDn to scroll through each file board. The number of the file
board is used in menu options. File boards may be numbered from
1 to 9999. The file board name is shown to the user during
searches across areas. The search privilege level is the minimum
user level needed in order to get access to the file area in
searches across areas. The file path is the path to the file
area. This area should contain files for the area along with a
FILES.BBS file (see description below). In most cases the
alternate path to FILES.BBS should be left blank (it defaults to
the file area path), it is only included for special systems such
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 8 Page 8
as CD-ROM units which must have a FILES.BBS in a directory on the
hard drive separate from the regular file path.
Option 8: This section allows you to edit/add/delete events for
your Simplex system. The event title will be shown to the user
if their online time is going to be cut short by a pending forced
system event. You may select the weekdays and time that the
event is supposed to occur and the errorlevel that Simplex exits
with if the event occurs. You may set an event to be forced or
not. In Simplex, an event is "forced" if it will exit even if a
user is online. If an event is not "forced", it will only exit
if Simplex is sitting idle when the event occurs. Should you
wish to temporarily suspend an event without deleting, you may
mark it as not enabled. PLEASE NOTICE THAT WHILE EVENTS DO NOT
EXIT WITH THIS RELEASE OF SIMPLEX, THEY WILL ACT TO LIMIT A USERS
TIME ONLINE AT SPECIAL TIMES OF THE DAY.
Option 9: This section allows you to edit/add/copy/delete menu
files. Use of this section rather straightforward. Follow the
prompts and help information. While the menu editor is
convenient for small fixes, the Simplex Menu Compiler (SMC) is
more convenient for laying out complete menu systems. Bear in
mind that some menu options require data to be provided in the
optional data field while others do not. See below for more
details on menu types. Two points that must be clarified here
are the use of the expert and autoexecute flags in menu lines. A
user can toggle expert mode, a mode which should disable the
showing of menu options, only showing a list of hotkeys.
However, some lines of the menu should still show so that the
user knows where they are. One of these should be the menu title
line. Hence you can indicate with a "Yes" to the expert mode
question when you would like to show menu lines to the expert
mode user. Autoexecuting menus options are done when the menu is
being shown. Any menu type can be autoexecuting, however some
menu types do not make sense if they are automatic. One use of
this feature is outlined in the description of the type 49 option
below.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 9 Page 9
_________________________________________________________________
Chapter 4 Chapter 4
Simplex Menu Types Simplex Menu Types
_________________________________________________________________
This chapter gives a brief rundown of the types of menu options
available for menu development. Some of these require
information in the additional data fields, while others do not
and merely ignore the contents of said field. Options in square
brackets ([]) are optional.
Type 0: Show menu line. This option will merely show the
contents of the menu line and will not respond to any
hotkeys. Hence there is no need for a key value for this
kind of menu. It is mostly used to give menu titles and/or
blank formatting lines. Additional Data: None
Type 1: Call new menu - Add to return stack. This option will
show the contents of the menu line and if its corresponding
hotkey is triggered, it will attempt to call the menu name
specified in the data line. The return is pushed on a stack
so that a subsequent call to menu type 3 will return to the
current menu. If a password is provided, then the user will
be prompted for the password prior to being given access to
the system. Additional Data: Menuname [Password]
Type 2: Goto new menu - Clear return stack. This option will
show the contents of the menu line and if its corresponding
hotkey is triggered, it will attempt to call the menu name
specified in the data line. The return stack is cleared and
the new menu becomes the new base of the stack. If a
password is provided, then the user will be prompted for the
password prior to being given access to the system.
Additional Data: Menuname [Password]
Type 3: Return to previous menu. This option pops the current
menu off of the stack and returns to the previous menu.
Additional Data: None
Type 16: Enter a message on board. This option permits the user
to enter a message on the specified message board.
Optionally the user may be logged off automatically after
exiting the message editor by specifying a /L on the data
line. THe logoff is exactly as if a type 255 menu option
was executed. The message may be forced to a specific user
by using the optional /T=user_name option. Please note the
"_" (underbar) between the user's firat and last names.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 10 Page 10
This will be exchanged for a space when the message is
actually entered. Additional Data: board# [/L]
[/T=user_name]
Type 17: Read messages on board. This option permits the user to
read public messages or private messages to him/her on a
message board. If the user's privilege level is greater or
equal to the message board's sysop privilege, then he/she
will be able to read all messages in the area. Additional
Data: board#
Type 18: Scan messages on board. This option permits the user to
see the headers for public messages or private message to
him/her on a message board. If the user's privilege is
greater or equal to the message board's sysop privilege,
then he/she will be able to see all the headers in the area.
Additional Data: board#
Type 19: Quickscan messages on board. This option permits the
user to see the basic headers for public messages or private
message to him/her on a message board. If the user's
privilege is greater or equal to the message board's sysop
privilege, then he/she will be able to see all the basic
headers in the area. Additional Data: board#
Type 20: Search userlist. This option permits the user to search
the userlist for a user's name and/or list all users on the
bbs. Additional Data: None
Type 21: Search for Fidonet address. This option permits a user
to search for a specific FidoNet node in the nodelist.
Additional Data: None
Type 22: Generate FREQ to Fidonet address. This option permits
the user to generate network file-requests (in *.REQ files)
to a specific FidoNet node. Additional Data: None
Type 32: List files on file board. This option opens the file
board's FILES.BBS and lists the files available in the area.
Additional Data: board#
Type 33: Upload file to file board. This option permits the user
to upload files to the specific file board. Additional
Data: board#
Type 34: Download file from file board. This option permits the
user to download files from the specified file board.
Additional Data: board#
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 11 Page 11
Type 35: Raw directory list of file board. This options permits
the user to get a raw directory of the files in the
specified file board. Additional Data: board#
Type 36: Contents of archive on file board. This option permits
the user to see the contents of .ARC, .PAK, .ZIP, .LZH, and
.ZOO files in the specified file board. Additional Data:
board#
Type 37: Show new files across file boards. This option searches
across file boards for files with dates later then the
user's last login or with dates later than a user-defined
date. Additional Data: board#
Type 38: Search for filename across file boards. This option
searches across file boards for a specified file name.
Additional Data: board#
Type 39: Search for keyword across file boards. This option
searches across file boards for a specified keyword in the
descriptions. Additional Data: board#
Type 40: Delete file on file board. This option permits the user
to delete files and description entries in the specified
file area. Additional Data: board#
Type 41: Read a text file on file board. This option permits a
user to read the contents of a file contained in the
specified file area. Additional Data: board#
Type 42: Download ONE special file from board. This option
permits a user to download a sysop-specified file from a
specified area. Additional Data: board# filename.ext
Type 43: Move file(s) from one file board to another. This
option permits the user to move files and descriptions to a
different board. Additional Data: source_board#
Type 48: Show ascii/ansi file. This option shows the user the
specified ansi or ascii file. Do not include the extension,
only the base filename. The file will not pause at the end.
Additional Data: filename
Type 49: Show ascii/ansi file with menu hotkeys. If this option
is used as an automatic executing menu option, the file
indicated in the data line will be shown to the user when
its menu line is being shown however the menu's hotkeys will
still be active! This permits you to design free-form menus
using an ANSI screen editor. As with a type 48 data line,
do not include the exension, just the base filename. The
file will not pause at the end, but will continue showing
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 12 Page 12
any additional menu lines until the menu is finished. If
someone actually provides a hotkey for this menu type, it
will behave exactly like a type 48 (i.e. hotkeys are only
active when it is an automatic executing option).
Additional Data: filename
Type 50: Show ascii/ansi file with pause at end. This option
shows the user the specified ansi or ascii file. Do not
include the extension, only the base filename. The file
will pause at the end and prompt the user for Enter.
Additional Data: filename
Type 51: Answer questionaire file. This option leads the user
through a questionaire file. See below for more info on
Simplex's questionaire language. Additional Data: filename
Type 64: Change user's city/state. This option permits the user
to change his/her city/state. Additional Data: None
Type 65: Change user's password. This option permits the user to
change his/her password. Prior to changing the password,
PASSWORD.A?? is shown (see below). Additional Data: None
Type 66: Change user's clearscreen status. This option allows
the user to toggle on or off his/her sending of clear-screen
codes. These are only sent is ANSI status is on.
Additional Data: None
Type 67: Change user's MORE status. This option allows the user
to toggle on or off his/her screen pausing status. These
are only sent is ANSI status is on. Additional Data: None
Type 68: Change user's screen length. This option allows the
user to toggle on or off his/her sending of clear-screen
codes. These are only sent is ANSI status is on.
Additional Data: None
Type 69: Change user's ANSI status. This option allows the user
to toggle on or off his/her sending of ANSI codes.
Additional Data: None
Type 70: Change user's default editor status. This option allows
the user to toggle between using the line editor and the
full-screen ANSI editor. The full-screen editor is only
entered if ANSI status is on. Additional Data: None
Type 71: Change user's novice/expert mode. This option allows
the user to toggle between normal menu mode and expert mode
(where only option letters are shown). Additional Data:
None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 13 Page 13
Type 72: Change user's home phone number. This option allows the
user to change his/her home number. Additional Data: None
Type 73: Change user's data/work phone number. This option
allows the user to change his/her data or work number.
Additional Data: None
Type 80: Enter an advertisement in ad area. This option permits
a user to enter an advertisement or user-posted bulletin in
an "ad" area. Ads are placed in a special file which is
indicated in the data line. The days argument indicates the
maximum amount of time that the "ad" can remain on the
system. The optional /R argument indicates the message
board number where replies to "ads" will be posted. If not
provided, the user is not prompted to permit replies.
Additional Data: filename /D=days [/R=board#]
Type 81: Read advertisements in ad area. This option permits a
user to read advertisements or user-posted bulletins in an
"ad" area. The optional /R argument indicates the message
board number where replies to "ads" will be posted.
Additional Data: filename [/R=board#]
Type 82: Scan advertisements in ad area. This option permits a
user to scan the headers of advertisements or user-posted
bulletins in an "ad" area. Additional Data: filename
Type 240: Run a program from within SIMPLEX. This option permits
a user to run an external program. The data line contains
the command line to be passed to the command spawn function.
This function searches the path for the program to run. The
following meta-commands can be used as arguments to the
program:
$r = user's time left in minutes
$d = current date as mm/dd/yy
$t = current time as hh:mm
$f = user's first name
$l = user's last name
$a = user's ansi flag (ascii 1 if on or ascii 0 if
off)
$p = In DOS: comm port number (ascii 1 for com1). In
OS/2: comm file handle as a decimal ascii string
$u = user's number in userlist as ascii decimal string
(0 is first)
$b = connect baud rate as ascii decimal string (0 is
local keyboard)
$* = DOS only: leave fossil hot (do not deinitialize)
before calling program (not considered an
argument to the program)
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 14 Page 14
$e = stop and wait for Enter after running program
(not considered an argument to the program)
$## = Passes the pathname for the file board specified
by ##. For example, if file board 100 has its
path as d:\files\editors, then using $100 would
substitute d:\files\editors. Notice that the
path name is NEVER backslash-terminated. If the
file board specified by ## does not exist, then a
blank argument is passed (i.e. a nul-string).
Additional Data: program.exe [options]
Type 241: Exit to DOS with an errorlevel. This option is not
currently implemented.
Type 242: Show version/copyright information. This option shows
the user information about Simplex BBS. Additional Data:
None
Type 243: Show user's usage statistics. This option shows the
user some information about his/her first connect date, the
last connect date and time, upload and download statistics,
and time information for this call. Additional Data: None
Type 244: Yell for chat with Sysop. This option permits the user
to summon the sysop for a chat if the current time is within
the configured yell time specified under option 3 in CONFIG.
Additional Data: None
Type 245: Show current time of day. This option shows the
current date and time until the user presses Enter. This is
provided for systems with access to exact time. Additional
Data: None
Type 246: Check for mail. This option checks for unreceived mail
addressed to the user. It marks mail for later reading and
gives them the option of reading mail immediately.
Additional Data: None
Type 247: Sysop's user-upgrade option. This option permits the
user to access/modify userlist records. It is not meant for
anyone other than Sysops. The user must have ANSI enabled
to access this option. Additional Data: None
Type 255: Logoff/hangup connection. This option logs the user
off of the system. Additional Data: None
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 15 Page 15
_________________________________________________________________
Chapter 5 Chapter 5
Running Simplex Running Simplex
_________________________________________________________________
Simplex may be started by merely typing Simplex on the command
line (OS/2 users use Simplex2) and pressing Enter in the assigned
Simplex directory. However, it is doubtful that such simple use
would suffice for most applications of Simplex! Hence Simplex
accepts a series of command line arguments that permit you to
call it under specified conditions, and it returns with specific
errorlevels to indicate that certain events have occurred.
The Simplex command line may include any of the following
options. A list of these options might be obtained by typing
Simplex -? on the command line. Most of these options are meant
to be used when spawning Simplex from a front-end FidoNet mailer,
but some are even handy for use in simple host applications:
-Bxxxx Startup at the specified baud (User is online)
-H Do not hangup before exiting
-L Startup in local mode (same as -B0)
-Pxxx DOS: Use the specified comm port *or*
-Pxxx OS/2: Use the specified comm handle
-R Do ringback model of call answering
-Txxx Set maximum time user is allowed on system
-X Exit after carrier is lost or after logoff
Hence a mailer program might spawn Simplex with the following
command line in a batch file:
simplex2 -B%1 -P%2 -X
or for a local session, it might use the following:
simplex2 -L -X
In order to let batch files know what is causing Simplex to exit,
it returns different errorlevels. The following errorlevels are
currently supported in Simplex.
0 Normal Simplex exit prompted by Alt-X keystroke.
1 Simplex had an internal error.
2 Normal Simplex exit after user was on and -X was on
command line.
3 Netmail was entered and Alt-X pressed or -X was on
command line.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 16 Page 16
4 Echomail was entered and Alt-X pressed or -X was on
command line.
5 Netmail and Echomail were entered and Alt-X pressed or
-X was on command line.
6+ Errorlevel generated by an event exit.
Errorlevel 2 is especially created for simple Simplex host
applications which need to know if to run external utilities such
as SRECENT or SUSAGE (see below). Obviously, if you have exited
from a waiting-state with Alt-X, there is no need to check to see
if the last user has been added to the database. Hence you could
have a batch file similar to this:
set simplex=d:\host
:runhost
d:
cd \host
simplex2 -x
if errorlevel 3 goto runhost
if errorlevel 1 goto recent
if errorlevel 0 goto end
:recent
srecent 20
susage -G -I
goto runhost
:end
while a FidoNet compatible BBS might have something like:
:runbbs
simplex -b%1 -x
if errorlevel 6 goto recent
if errorlevel 5 goto echomatrix
if errorlevel 4 goto echo
if errorlevel 3 goto matrix
goto recent
:echomatrix
smail -nx -ex
goto recent
:echo
smail -ex
goto recent
:matrix
smail -nx
:recent
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 17 Page 17
srecent 20
susage -G -I
goto runbbs
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 18 Page 18
_________________________________________________________________
Chapter 6 Chapter 6
Simplex Ancillary Files Simplex Ancillary Files
_________________________________________________________________
Simplex BBS requires a number of files to be provided by the user
in order to do its normal work and to present a helpful and
friendly interface to the user. The following sections outline
the files that Simplex looks for under various conditions. These
files are named with extensions for users who are using ANSI and
those who are not.
If the user is running ANSI, then the user is presented with the
contents of filename.ANS. If this file cannot be found, or if
the user has ANSI off, the contents of filename.ASC are shown.
This means that you can include as many ANSI sequences as you
wish in the .ANS file but leave them out of the .ASC. If you use
the SANSI compiler, it will automatically prepare the two
distinct files for you.
6.1-Files for Help 6.1-Files for Help
_________________________________________________________________
The files that present help screens should attempt to be very
helpful yet concise at the same time. No user appreciates being
swamped with information when they ask for help! These files
must be in the configured screen path.
DLHELP.A?? This file presents help on the download protocols
available on your Simplex system. It is accessed
by pressing H at the Download Menu.
ULHELP.A?? This file presents help on the upload protocols
available on your Simplex system. It is accessed
by pressing H at the Upload Menu.
NODEHELP.A?? This file presents help on the choices in the
Search Nodelist Menu.
READHELP.A?? This file presents help on the choices available
in the Read Messages Menu.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 19 Page 19
TOPICHLP.A?? This file is shown when a user presses H in the
Read Topics Menu.
EDITHELP.A?? This file is invoked by requesting help from the
Line Editor Menu. It should describe the options
available to the user of the Line Editor.
ANSIHELP.A?? This file presents help when the user of the Full
Screen Editor presses ^K ?. It should present a
list of the options available in that editor.
QSHELP.A?? This file presents the user with help for using
the QuickScan option in a message area.
SCANHELP.A?? This file is shown when a user requests help in
the Scan Menu of a message area.
ADHELP.A?? This file is shown when in read mode while in an
Ad/User Bulletin area.
6.2-General Files 6.2-General Files
_________________________________________________________________
These files are called upon in certain specific situations during
the running of Simplex. They are almost essential for providing
a friendly interface between your BBS and the user. These files
must be in the configured screen path.
TOOSLOW.ASC This file does not have an ANSI flavor since the
user's ANSI preference is not known at the time it
is shown. It is shown when a user has logged on
with a modem slower than your minimum baud rate
configured in CONFIG.
LOGO.ASC This file is shown before the user is asked for
his/her name. Since the user's ANSI preference is
not yet known, there is no ANSI flavor of this
file. It is not wise to embed ANSI codes in it
since it might cause undesirable side-effects on
the user's terminal.
NOTFOUND.ASC This file is shown after a user enters a name that
is not in the userlist, and before the user is
prompted if they entered the correct name.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 20 Page 20
PRIVATE.ASC This file is shown only if the user's name is not
in the userlist and the BBS is configured for
preregistered operation.
ANSI.ASC This file is shown after a user has indicated that
their name was spelled correctly and it was not in
the userlist. It is wise to indicate to the user
that they will be asked a few questions which will
help to configure the system to their liking, and
maybe to explain the meaning of ANSI to them.
PASSWORD.A?? This file is sent before the new user enters
his/her password into the system, or when a user
opts to change his/her password. It should
indicate that they must choose a password of at
least 4 characters and that it should be easy to
remember yet difficult for close friends to guess.
NEWUSER.A?? This file is shown to a user after they have
finished filling out the new-user questionnaire
and before they are provided with the welcome
screen. It is a good idea to welcome them to your
system and maybe to explain some of the rules of
conduct.
NEWUSER2.A?? This file is shown to users who have called less
than 5 times. It is a good idea to use it to give
a few pointers on the use of your system.
WELCOME.A?? This file is shown to a user after logging in, or
to a new user after NEWUSER2.A??. It precedes the
automatic mail check. This is the place to put a
splashy logo screen.
BULLETIN.A?? This file shows the latest news on the system to a
user logging in. It is shown after the
WELCOME.A?? and the mail check.
NOANSWER.A?? This file is shown after a user has yelled and the
Sysop did not answer immediately. It should
explain to the user that the Sysop is unavailable
and that he/she might break in and chat while they
continue using the board normally.
TOOMANY.A?? This file is shown after a user has attempted to
yell but does not have any remaining yells (as set
in CONFIG).
NOYELL.A?? This file is shown when the user attempts to yell
but it is outside of the yell hours configured in
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 21 Page 21
CONFIG. It should indicate to the user that they
should leave the Sysop a message instead.
GOODBYE.A?? This is the last file that the user sees after
logging off of your BBS. It is shown before the
modem is told to hang-up.
6.3-Files Created by CONFIG 6.3-Files Created by CONFIG
_________________________________________________________________
The following files are normal in the Simplex home directory and
are created by CONFIG. They are not meant to be deleted or
edited by any means other than with CONFIG.
CONFIG.BBS This file contains the configuration information
needed by Simplex and its utilities. This
information includes the BBS name, the Sysop name,
the paths to different directories, and Fidonet
addresses.
EVENTS.BBS This file contains the event information used by
Simplex.
FILEAREA.BBS This file contains the path and file area name
information referenced by menus.
MSGAREA.BBS This file contains the message area information
which is referenced by menus.
6.4-Files Needed by Simplex 6.4-Files Needed by Simplex
_________________________________________________________________
The following files are absolutely essential for Simplex's
operations and must be in the Simplex home directory.
TIMES.BBS This file contains in ascending priority order,
the maximum amount of time in minutes per day that
allowed for each privilege level. The maximum
amount is 1440 minutes (24 hours). The file is
plain ASCII text organized like this:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 22 Page 22
<level> <time>
as in the following:
1 30
100 60
200 120
255 180
This means that any user with level 1 through 99
has 30 minutes on the system. Any user with level
100 through 199 has 60 minutes on the system. Any
user with level 200 through 254 has 120 minutes on
the system, and any user with level 255 has 180
minutes on the system.
USERLIST.BBS This file contains the user records. It is
maintained by using the USERLIST program or by
using the Sysop user-editor from within Simplex
itself.
FILES.BBS Each file directory needs a FILES.BBS. This file
contains the names of the files along with a
description line as follows:
<filename> <description>
The filename should be in all caps and any amount
of spaces or tabs may separate it from the
description. If a line begins with a hyphen then
it and all subsequent lines will be shown in
bright white. If a line begins with a space or
hyphen, it is shown as is. For example:
- My Main File Area
-----------------
FILENAME.DOC A description of this file area for
my users.
SIMPLEX.ZIP The latest Simplex programs.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 23 Page 23
6.5-Files Created by Simplex 6.5-Files Created by Simplex
_________________________________________________________________
The following files are found in the Simplex home directory and
are created and maintained by Simplex and its utilities. They
are best left alone by the user.
MSGHEAD.BBS This file contains the header information (such as
to, from, subject) for each message in the Simplex
system. It contains an offset pointer to the
relevant text in MSGBODY.BBS.
MSGBODY.BBS This file contains the text of messages in the
Simplex system.
MSGLINK.BBS This file contains abbreviated information about
each message in the Simplex system and is used for
quick searching.
MSGDATA.BBS This file contains information about the total
number of messages in Simplex and in each message
area.
MSGREAD.BBS This file contains the last-message-read pointers
for each user for each message area in the Simplex
system.
USERINFO.BBS This file contains information about the
last/current user for external utilities to use
(such as SRECENT).
DORINFO1.DEF This file is created by Simplex before running
external programs and contains information used by
certain games and utilities.
6.6-Files used by Simplex Utilities 6.6-Files used by Simplex Utilities
_________________________________________________________________
The following files may be found in the Simplex home directory.
They are files that are needed by external Simplex utilities and
must be edited with a pure-ASCII text editor. They will not be
needed if you do not intend to run Fidonet mail.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 24 Page 24
AREAS.BBS This file is used by SMAIL to Export/Import
echomail. It is organized as follows:
<msgarea number> <echo-areaname> <destination
addresses>
The <msgarea number> is the Simplex message area
number as defined in CONFIG. The special area
"number" P is reserved for "pass through" echomail
areas, that is areas which are not on your BBS but
which you might be passing on to other BBSes. The
<echo-areaname> is the official echo "tag" for
that echo. The destination addresses are the
addresses which your BBS "feeds". Comment lines
in this file begin with a semicolon (;). Here is
an example of an AREAS.BBS file:
; This is a sample AREAS.BBS comment!
10 C_ECHO 1:151/401 1:151/403 1:151/404
1:151/1000
11 SIMPLEX 1:151/401 1:151/404 1:151/1000
12 LUNATIC 1:151/401
P WRITING 1:151/404 1:151/1000
P AMIGA 1:151/403 1:151/1000
C_ECHO, for example, is imported to area 10, and
is forwarded to the other addresses listed. On
the other hand, AMIGA is not imported, but just
forwarded to the listed nodes. Note the full use
of zone notation. If you omit the zone and net
they will default to the same as your zone and net
number as configured in CONFIG (e.g. 10 C_ECHO 401
403 404 1000 is the same as above since my address
is 1:151/402).
SMP.CTL This file is used by SMP to export messages to
other systems. It is similar to oMMM's CTL file
and uses the following keywords:
SCHED <letter> This keyword delineates a
schedule. It is used as SCHED
followed by a letter of the
alphabet, as in SCHED A or
SCHED Z. Schedules are handy
for doing special actions to
outbound mail at certain times
of the day.
LEAVE <addresses> This keyword will mark any
mail to the indicated
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 25 Page 25
destinations in such a fashion
that it will not be sent out.
e.g. filename.?ut --->
filename.n?t
filename.?lo --->
filename.n?o
SEND <addresses> This keyword will mark any
mail that was previously left
with the LEAVE keyword in such
a fashion that it may be sent.
LEAVE and SEND have opposite
effects.
e.g. filename.n?t --->
filename.?ut
filename.n?o --->
filename.?lo
DOCM <addresses> This will mark any continuous
mail packets to the addresses
that had been left with LEAVE
so that they can once again be
continuous mail.
e.g. filename.nct --->
filename.cut
filename.nco --->
filename.clo
POLL <addresses> This will create a blank .flo
file to the destinations
providing there is not already
continuous, direct or normal
mail addressed to the same
address.
HOSTROUTE This command is very powerful
and its use might have
undesirable side-effects if
you do not know how to use it.
It will look for any remaining
.out packets and will
readdress them to their
respective net hosts.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 26 Page 26
e.g. filename.out ---->
file0000.out
ARCDIRECT <to> <addresses>
ZIPDIRECT <to> <addresses>
LZHDIRECT <to> <addresses>
ZOODIRECT <to> <addresses>
These commands will archive
using the specified archiver
(as long as the archive
command line is specified in
CONFIG) the packets bound to
<addresses> in a single
archive bound to <to>. The
archive is then listed in a
.DLO file addressed to the
respective address.
UNDIRECT <addresses>
This command will mark any
direct mail to the respective
addresses as normal mail.
e.g. filename.dut --->
filename.out
filename.dlo --->
filename.flo
NORMDIRECT <addresses>
This command will mark any
normal mail to the respective
addresses as direct mail.
e.g. filename.out --->
filename.dut
filename.flo --->
filename.dlo
ARCHOLD <to> <addresses>
ZIPHOLD <to> <addresses>
LZHHOLD <to> <addresses>
ZOOHOLD <to> <addresses>
These commands will archive
using the specified archiver
(as long as the archive
command line is specified in
CONFIG) the packets bound to
<addresses> in a single
archive bound to <to>. The
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 27 Page 27
archive is then listed in a
.HLO file addressed to the
respective address.
UNHOLD <addresses>
This command will mark any
hold mail to the respective
addresses as normal mail.
e.g. filename.hut --->
filename.out
filename.hlo --->
filename.flo
NORMHOLD <addresses>
This command will mark any
normal mail to the respective
addresses as hold mail.
e.g. filename.out --->
filename.hut
filename.flo --->
filename.hlo
ARCCM <to> <addresses>
ZIPCM <to> <addresses>
LZHCM <to> <addresses>
ZOOCM <to> <addresses>
These commands will archive
using the specified archiver
(as long as the archive
command line is specified in
CONFIG) the packets bound to
<addresses> in a single
archive bound to <to>. The
archive is then listed in a
.CLO file addressed to the
respective address.
UNCM <addresses>
This command will mark any
continuous mail to the
respective addresses as normal
mail.
e.g. filename.cut --->
filename.out
filename.clo --->
filename.flo
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 28 Page 28
NORMCM <addresses>
This command will mark any
normal mail to the respective
addresses as continuous mail.
e.g. filename.out --->
filename.cut
filename.flo --->
filename.clo
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 29 Page 29
_________________________________________________________________
Chapter 7 Chapter 7
Simplex External Mail Utilities Simplex External Mail Utilities
_________________________________________________________________
This chapter describes all of the external mail utilities for
Simplex. These utilities are basically of two types, utilities
to maintain Simplex's message base, and utilities to handle
incoming and outgoing FidoNet mail.
Simplex's message base is contained in a series of files
contained in the Simplex root directory. The message files are
described above. FidoNet mail is exported from the message base
in standard FSC-0001 message format. Incoming FidoNet mail may
be either in standard FSC-0001 packed message packets or in
archived format. Outgoing FidoNet mail is prepared in standard
FSC-0001 packed message packets and then archived by SMP.
7.1-SCLEAN: Simplex Mail Cleaning Utility 7.1-SCLEAN: Simplex Mail Cleaning Utility
_________________________________________________________________
SCLEAN.EXE (or SCLEAN2.EXE for OS/2) is a message base
maintenance program which cleans out messages from message
boards. Messages can be cleaned out completely from message
boards, deleted if received, or deleted if older than a specified
number of days. SCLEAN has the following options:
-dxx Sets maximum days for message killing to xx
-kaxx Kill ALL messages on board #xx
-kdxx Kill messages prior to maximum days on board #xx
-krxx Kill all received messages on board #xx
SCLEAN can be used to kill messages older than 10 days on message
boards 1, 7 and 12 and kill all received messages on board 8 with
the following command line:
sclean -d10 -kd1 -kd7 -kd12 -kr8
The -ka option will normally be used to remove a defunct message
board's messages from the message base. Notice that SCLEAN
merely deletes messages and does not actually remove them from
the message base.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 30 Page 30
7.2-SPACK: Simplex Message Base Deletion 7.2-SPACK: Simplex Message Base Deletion
_________________________________________________________________
SPACK.EXE (or SPACK2.EXE for OS/2) is a message base compression
program. It will analyse the message base and determine how many
messages have been deleted, then check file space prior to
packing. Packing may optionally be done in-place instead of in
duplicate files if disk space is at a premium, however this
method is frowned upon since it might be dangerous should a power
failure occur.
SPACK has the following command line options:
-P Pack message base
-W Write message base files in place
In order to pack the message base, use the following command
line:
spack -p
7.3-SLINK: Simplex Message Thread Linker 7.3-SLINK: Simplex Message Thread Linker
_________________________________________________________________
SLINK.EXE (or SLINK2.EXE for OS/2) is a message base thread
linker program which will link messages by topic by message
board. What SLINK loads all the message topics for a board,
removes all RE's from the topic lines, then links matching
message topics into threads. By default, SLINK links ALL message
boards, however if a file called SLINK.BBS is located in the root
Simplex directory, only the board numbers contained in that file
are linked (SLINK.BBS is a series of 16-bit ints with each board
number to link). This file is generally created by SMAIL when it
is importing FidoNet mail so that SLINK would not waste time
uselessly relinking boards that were not imported.
There are no options to SLINK. To run it, merely type SLINK (or
SLINK2) on the command line and hit Enter.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 31 Page 31
7.4-SMAIL: Simplex FidoNet Mail Utility 7.4-SMAIL: Simplex FidoNet Mail Utility
_________________________________________________________________
SMAIL.EXE (or SMAIL2.EXE for OS/2) is a FidoNet mail importation
and exportation utility. SMAIL is used to export FidoNet mail
and Echomail to other systems after mail has been entered, a
situation which can be determined by Simplex's exit errorlevel.
Incoming FidoNet and echomail can be imported into the Simplex
message base when your front-end mailer detects incoming mail
packets.
The command line options for SMAIL are the following:
-ua unarc inbound mail packets
-it import/toss net and echo mail
-ib import/toss net and echo mail in bad messages
area
-nx export netmail to other systems
-ex export echomail to other systems
-s disable conversion of "sysop" messages to sysop's
name
-c### clean out signatures over ### days old
SMAIL uses the unarchiver command lines from CONFIG's option 5 if
you specify the -ua flag. It also uses the packet path from
CONFIG's option 4 as the destination directory for the contents
of the archived mail.
SMAIL handles Echomail signatures, which are files containing
data from messages which have passed through the system. These
are kept in order to stop duplicate messages from being passed
along. These signatures are kept in the Simplex directory in
files called SMAILxxx.SIG where where xxx is the Julian date of
the year when the signature file is created. These files can be
maintained by using the SMAIL -c command. This deletes signature
files older then the specified number of days. A reasonable
period to keep signatures is between 3 and 10 days. Too short a
period might allow duplicates to slip through, and too long a
period will slow the system down excessively while loading the
files. The best time in your setting will be best left to
experimentation!
SMAIL, by default, converts any messages addressed to "Sysop"
over to messages addressed to the sysop's name as specified in
CONFIG. This behavior might be considered annoying by some
Sysops and therefore can be disabled using the -s switch on the
command line.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 32 Page 32
Here are some sample parts of a FidoNet mail compatible system's
batch file which illustrate using SMAIL for exporting entered
mail:
:runbbs
simplex -b%d -x
if errorlevel 6 goto runbbs
if errorlevel 5 goto echomatrix
if errorlevel 4 goto echo
if errorlevel 3 goto matrix
goto runbbs
:echomatrix
smail -nx -ex
smp -p
goto end
:echo
smail -ex
smp -p
goto end
:matrix
smail -nx
smp -p
goto end
:end
Here is a sample of a front-end mailer's batch file,
demonstrating the use of SMAIL for importing and forwarding
incoming mail.
:runmailer
mailer
if errorlevel 2 goto runmailer
if errorlevel 1 goto import
goto end
:import
smail -ua -it
smp -p
goto runmailer
:end
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 33 Page 33
7.5-SMP: Simplex Mail Packer 7.5-SMP: Simplex Mail Packer
_________________________________________________________________
SMP (or SMP2 for OS/2) is a FidoNet compatible mail
router/packer/archiver. It uses the archiver command lines from
CONFIG's option 5. Essentially SMP reads the messages in the
matrix directory, and based on the rules in the SMP.CTL file (see
above), packs the messages in packets and optionally archives
them to their ultimate destinations.
SMP will delete truncated (i.e. 0-length) files in the outbound
directories before it begins packing. Notice that it will not
delete truncated files for the current day of the week, only for
the other 6 days.
SMP's options are the following:
-p Pack and route files in matrix and outbound areas
-s(tag) Use information for sched (tag) in SMP.CTL where
(tag) is a letter from A to Z
Use of SMP is demonstrated in the sample batch files under SMAIL
above.
7.6-SMAILFIX: Simplex Mail Fixer 7.6-SMAILFIX: Simplex Mail Fixer
_________________________________________________________________
Occasionally, systems crash and lock up. That is almost a rule
in the world of computing. Unfortunately, these crashes and
lock-ups have a nasty habit of occurring at the worst possible
moment, and in the case of Simplex, the worst possible moment is
when the message base is being manipulated! Since the message
base files are so intertwined, any corruption to any of the files
could be quite disasterous.
Hence the raison d'etre of SMAILFIX. Should your message base
appear to have become corrupted, SMAILFIX gives you a chance to
attempt to restore/rebuild some of the message files so that you
can recover as much of the message base as possible. OS/2 users
should ensure that no utilities are able to manipulate the
message files while SMAILFIX is running, and both DOS and OS/2
users should ensure that their systems do not shut down or reboot
before SMAILFIX is finished.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 34 Page 34
To run SMAILFIX, just type it's name on the command line and hit
Enter. Notice that you should be in your Simplex root directory
when you do this. SMAILFIX will prompt you if you are sure that
you want to run it. Answer Y and it will begin attempting to
recover your message base. Once it is finished it will inform
you if you need to run SLINK and/or SPACK on the message base.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 35 Page 35
_________________________________________________________________
Chapter 8 Chapter 8
SUSAGE and SRECENT: Simplex Screen Builders SUSAGE and SRECENT: Simplex Screen Builders
_________________________________________________________________
There are two utilities which can be used by Simplex in order to
generate special screens. These are SUSAGE, a utility which
generates an hourly usage chart for your system, and SRECENT, a
utility which creates and maintains a recent callers listing. In
order to take advantage of these utilities, one must have the BBS
exit after each user has logged off. Both of these utilities
read and utilize the USERINFO.BBS file created when a user logs
in.
SUSAGE must have the -G option enabled in order to generate usage
files. These files are placed in the screens directory and are
appropriately named SUSAGE.ANS and SUSAGE.ASC. These files
normally use normal 7-bit ASCII characters to build the bar
charts, but should you prefer to use IBM 8-bit characters, you
can specify that with the optional -I switch.
SRECENT must have a numeric option which specifies the number of
last callers that you want to keep up with. SRECENT 30 will keep
information on 30 users and will build the screens with that
information. The resulting screens are placed in the screens
directory and are called SRECENT.ANS and SRECENT.ASC.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 36 Page 36
_________________________________________________________________
Chapter 9 Chapter 9
Simplex Questionaire Language Simplex Questionaire Language
_________________________________________________________________
Simplex has a rather simple but powerful questionaire language.
A questionaire file is an ascii file with a .QF extension which
is placed in the screen files directory. This file can be
created using a flat-ascii text editor.
The answer file is placed in the same directory and has the same
base name as the questionaire file, however it sports an .AF
extension.
The following is an alphabetical list of questionaire commands.
Commands are case-insensitive. Strings are included in double
quotes like this "string".
ASK (variable) (len) : This will accept up to the maximum
length specified of a user's input and store it in the
variable specified. After hitting Enter, the system
will go to the next line.
CHOOSE (variable) (choices) : This will load the variable
specified with the choice letter selected from the list
of choices.
CLS : Clears the screen to the current color.
COLOR (foreground) [(background)] : Sets the current color
to the specified foreground/background (optional)
color.
EXIT : Immediately exits the questionnaire file.
GOTO (labelname) : Jumps to the label specified. If label
is not found, it will exit.
IF (variable) = ("string") *or*
IF (variable) != ("string") *or*
IF (variable) = (variable) *or*
IF (variable) != (variable)
ENDIF : If the case is true, the questionnaire will fall
into the if-endif. If it is not true, it will skip
over it. *Warning* Do not "nest" ifs! The !=
indicates "not equal to".
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 37 Page 37
LABEL (labelname) : Sets the labelname as a point to which
the GOTO will jump. If a label is reused, then it will
replace the previous use.
PRINT ("string") *or*
PRINT (variable) : Shows a string of contents of a variable
on the screen. Does not go to the next line.
PRINTLINE ("string") *or*
PRINTLINE (variable) : Shows a string of contents of a
variable on the screen. This will then go to the next
line.
SET (variable) = ("string") *or*
SET (variable) = (variable) : Sets a variable to a string
value or to the value of another variable.
SHOW ("filename") : Shows a file (filename.ans if ansi is
on, otherwise filename.asc if it is not.
WRITEINFO : Writes the user's name, time and date, and
other info to the questionnaire answer file.
WRITE ("string") *or*
WRITE (variable) : Writes the string or variable to the
questionnaire answer file. This does not add a CR-LF
pair at the end.
WRITELINE ("string") *or*
WRITELINE (variable) : Writes the string or variable to the
questionnaire answer file. This adds a CR-LF pair at
the end.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 38 Page 38
_________________________________________________________________
Chapter 10 Chapter 10
SANSI: Simplex Ansi Compiler SANSI: Simplex Ansi Compiler
_________________________________________________________________
In order to assist you in preparing your ANSI and ASCII files,
Simplex includes a compiler and a high-level language. This
system is called SANSI. You can write a single "source" file
which includes all of the information for screens which can be
compiled into the respective .ANS and .ASC files. The compiler
will leave any ANSI statements out of of the .ASC files.
The SANSI language will also access to special Simplex features
as well as ANSI codes. Special SANSI codes are introduced with `
(forward single quote) in the .ANS and .ASC files (`` is
interpreted by Simplex as being a `), however, use of the high-
level language is strongly recommended for ease of maintenance.
SANSI keywords are encoded in text in curly braces as in
{sequence}. Any number of SANSI keywords may be included in the
curly braces separated by spaces (like {stopoff cls bell}). To
encode an true opening curly brace, simply type two in a row like
this {{. Following is a list of SANSI keywords and codes.
10.1-SANSI User's Personal Information 10.1-SANSI User's Personal Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`A User's Full Name name
`B User's First Name first
`C User's Last Name last
`D User's City-State citystate
`E User's Home Number homephone
`F User's Work/Data Number dataphone
`G User's Password password
`H User's Privilege Level (1 to 255) priv
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 39 Page 39
10.2-SANSI User's BBS Settings 10.2-SANSI User's BBS Settings
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`M User's Baud Rate (300 -> 19200 or Local) baud
`N User's Ansi Setting (On or Off) ansi
`O User's More Setting (On or Off) more
`P User's Clearscreen Setting (On or Off) clear
`Q User's Editor Setting (Line or Ansi) editor
`R User's Expert-mode Setting (On or Off) expert
`S Length of User's Screen Page (for More) pagelen
`T User's Netmail Credit ($x.xx) credit
10.3-SANSI User's Time/File Information 10.3-SANSI User's Time/File Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`a Date of User's First Call (MM/DD/YY) firstdate
`b Date of User's Last Call (MM/DD/YY) lastdate
`c Time of User's Last Call (HH:MM) lasttime
`d User's Total Daily Time (M mins S secs) totaltime
`e Total Time Used Today (M mins S secs) timeused
`f Time Remaining for Today (M mins S secs) timeleft
`g Time Used During This Call (M mins S secs) timeon
`h User's Total Uploads (Number of Files) ul
`i User's Total Uploaded Bytes (Kilobytes) ulkb
`j User's Total Downloads (Number of Files) dl
`k User's Total Downloaded Bytes (Kilobytes) dlkb
`l Number of User's Calls to System calls
10.4-SANSI System Information 10.4-SANSI System Information
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`p Day of Week (Monday, Tuesday, ... Sunday) day
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 40 Page 40
`q Short Day of Week (Mon, Tue, ... Sun) shortday
`r Date (MM/DD/YY) date
`s Time (HH:MM:SS) time
`t Number of Times User Yelled for Chat yells
`u Total Number of Users on System users
`v Last User on System lastuser
10.5-SANSI System Control 10.5-SANSI System Control
_________________________________________________________________
Code Representation SANSI Keyword
----- ----------------------------------------- -------------
`0 Turn [More] Off moreoff
`1 Turn [More] back On (If user allows it) moreon
`2 Turn [Stop] Off stopoff
`3 Turn [Stop] On stopon
`4 Pause and Wait for [Enter] to be Pressed enter
`5 Clearscreen code (FF character) cls
`6 Bell bell
`7 Backspace bs
10.6-SANSI ANSI Sequences 10.6-SANSI ANSI Sequences
_________________________________________________________________
Representation SANSI Keyword
-------------------------------------------- -------------
Set black foreground black
Set red foreground red
Set green foreground green
Set brown foreground brown
Set blue foreground blue
Set magenta foreground magenta
Set cyan foreground cyan
Set white foreground white or lightgray
Set gray foreground gray or lightblack
Set light red foreground lightred
Set light green foreground lightgreen
Set yellow foreground yellow or
lightbrown
Set light blue foreground lightblue
Set light magenta foreground lightmagenta
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 41 Page 41
Set light cyan foreground lightcyan
Set bright white foreground lightwhite
Set black background onblack
Set red background onred
Set green background ongreen
Set brown background onbrown
Set blue background onblue
Set magenta background onmagenta
Set cyan background oncyan
Set white background onwhite
Set blinking characters blink
Erase to End of Line erasetoeol
Erase to End of Screen erasetoeos
Erase to cursor from top of screen erasefromtos
Erase screen erasescreen
Move cursor up one line cursorup
Move cursor down one line cursordown
Move cursor left one character cursorleft
Move cursor right one character cursorright
Home cursor home
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 42 Page 42
_________________________________________________________________
Chapter 11 Chapter 11
SMC: Simplex Menu Compiler/Decompiler SMC: Simplex Menu Compiler/Decompiler
_________________________________________________________________
In order to speed up development of menus on big Simplex
applications, it might be easier to use SMC, the Simplex Menu
Compiler. This allows you to use a text editor to build menu
source files, and thus be able to use the block-copy and
find/replace facilities of the editor to ease the burden of menu
development.
Keywords are the following:
menu "STRING" : This sets the name of the menu file and resets
the line number counter.
e.g. menu "main"
prompt "STRING" : Sets the string as the prompt and all
subsequent information before the next "menu" or "line"
keywords will refer to the prompt.
e.g. prompt "[^$r min^] What is your choice? "
line "STRING" : Sets the string as a menu line and all
subsequent information before the next "menu",
"prompt", or "line" keywords will refer to the new
line.
e.g. line "<^M^> Go to Message Areas"
define DEFINITION NUMBER *or*
define DEFINITION "string" : Allows the definition of a
constant value, either numeric or string. Later use of
the definitions will be substitued for the
representative number or string by the compiler.
e.g. define WHITE 15
define RETURN "<^M^> Return to main menu"
type NUMBER : This is only valid in a "line" clause and sets
the type of the menu item to the specified value. For
a list of menu types see above or type SMC without
parameters.
e.g. type 0 /* show a menu line */
priv VALUE : This is only valid in a "line" clause and sets
the user privilege needed to see/access the menu item.
This value may be between 0 and 255.
e.g. priv 255
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 43 Page 43
color VALUE : This is valid in a "line" clause or a "prompt"
clause. It sets the non-highlighted color for either
the current line or the current prompt. The value is a
normal IBM color value from 0 to 255. See below for a
list of color values.
e.g. color 10
hilite VALUE : This is valid in a "line" clause or a "prompt"
clause. It sets the hilighted color for either the
current line or the current prompt. The value is a
normal IBM color value from 0 to 255. See below for a
list of color values.
e.g. hilite 14
key "CHARACTER" : This is valid only in a "line" clause and it
sets the value of the hotkey to trigger the option for
that menu line. A character is any value >= ASCII 32
decimal. To specify a non-keyed line, use key "" with
nothing between the quotes. The character may be upper
or lowercase, however when a character is receieved by
the menu handler, it is case does not matter (i.e.
there is no difference between key "A" and key "a").
e.g. key "A"
auto : This is valid only in a "line" clause and indicates
that the menu item autoexecutes when its line is being
shown. See menu type 49 above for an example of using
autoexecution.
e.g. auto
expert : This is valid only in a "line" clause and indicates
that the menu item is shown even if a user has expert
mode toggled on. At least menu titles should be
qualified with the expert keyword so that a user can
know where they are on your system.
e.g. expert
data "STRING" : This is valid only in a "line" clause. It is
used to provide the additional data line needed by
various menu types (see above).
e.g. data "logoff password"
Using the SMC compiler will permit you to use the script language
to put together a series of menus (you can have more than one
menu in a .SMC file) and avoid the overhead of using the line-
by-line menu editor in CONFIG. Should you wish to decompile an
already existant menu, you can do it with the command line:
SMC /d file.mnu > file.smc
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 44 Page 44
which will redirect the decompiler's output into the required
file which can then be editord and then recompiled using the
following command line:
SMC file[.SMC]
Color values in the IBM machine consist of an 8 bit number which
is broken up as follows:
High | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | Low
^ | Background| ^ | Foreground|
Blink Hilight
The background and foreground colors range from 0 to 7 and
represent the following:
0 Black 4 Red
1 Blue 5 Magenta
2 Green 6 Brown (Dark Yellow)
3 Cyan 7 Light Gray (Dark White)
The highlight bit refers to the foreground color so that
essentially the following color numbers in the lower 4 bits
indicate the following colors:
8 Dark Gray 12 Light Red
9 Light Blue 13 Light Magenta
10 Light Green 14 Yellow
11 Light Cyan 15 White
The blink bit will make the foreground color blink. Here is a
list of all of the possible combinations using a black
foreground:
0 Black on black 128 Blink black on black
16 Black on blue 144 Blink black on blue
32 Black on green 160 Blink black on green
48 Black on cyan 176 Blink black on cyan
64 Black on red 192 Blink black on red
80 Black on magenta 208 Blink black on magenta
96 Black on brown 224 Blink black on brown
112 Black on white 240 Blink black on white
Using this table, merely add your desired foreground color to the
base value given, and you will have the number for that color.
For example, light red on white is 12 + 112 = 124!
In strings, to encode a literal " (double quote), use the
sequence \". For example, "this is a \"string\"" will become:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 45 Page 45
this is a "string"
after it is compiled.
In menu lines and menu data lines, the following meta commands
are recognized and are substituted accordingly:
$$ Dollar sign $r Time left for call (mins)
$f User's first name $l User's last name
$d Current date $t Current time
$a User's ANSI flag $u User's number on system
$b User's baud rate $## File board's directory
In menu lines the following have special significance:
$c As the final two chars of a line means "continue"
next menu line without going to next line.
^ Indicates a change of color from normal to hilight or
vice versa.
^^ Means show a caret (^) mark.
In data lines the following have special significance:
$* Shell with hot fossil (DOS only). Do not
deinitialize fossil driver before executing program.
Note that this option is not passed as a parameter to
the program in a type 240 menu option.
$e After executing program, pause and wait for Enter
before continuing. Note that this option is not
passed as a parameter to the program in a type 240
menu option.
Here is a sample fragment of an SMC script for a menu:
/* Comments are done like this and can span
** multiple lines. */
menu "logoff" /* this begins the menu called logoff */
prompt "[^$r min^] What is your choice?"
color 15 hilite 14
line "[ ^Log Off Menu ^ >----------------------"
type 0 expert priv 0 color 13 hilite 14
line "" /* blank "space holder" line */
type 0 priv 0 color 7 hilite 15
line ""
type 0 priv 0 color 7 hilite 15
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 46 Page 46
line "<^Y^> Yes, log me off right now!"
type 255 key "Y" priv 0 color 11 hilite 14
line "<^N^> No, do not log me off!"
type 3 key "N" priv 0 color 10 hilite 14
line "<^L^> Leave a message to Sysop and log off!"
type 16 key "L" data "1 /T=Chris_Laforet /L"
priv 0 color 12 hilite 14
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 47 Page 47
_________________________________________________________________
Chapter 12 Chapter 12
Revision History Revision History
_________________________________________________________________
Version 1.00: Released Jan 3, 1991. This was the first non-beta
version of Simplex. Events are not completed.
ANSI editor can have some additional features
added. External protocols are not yet
implemented.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 48 Page 48
____________________________________________________________
Table of Contents Table of Contents
____________________________________________________________
Chapter 1 Legalistic Mumbo-Jumbo 2 Chapter 1
Chapter 2 Introduction to Simplex 3 Chapter 2
Chapter 3 Installing Simplex 4 Chapter 3
3.1 Simplex and Answering the Phone . . . . . . 4 3.1
3.2 Installing A Fidonet Node . . . . . . . . . 4 3.2
3.3 Setting Up Simplex BBS Paths . . . . . . . . 6 3.3
3.4 Configuring Simplex with CONFIG . . . . . . 7 3.4
Chapter 4 Simplex Menu Types 10 Chapter 4
Chapter 5 Running Simplex 16 Chapter 5
Chapter 6 Simplex Ancillary Files 19 Chapter 6
6.1 Files for Help . . . . . . . . . . . . . . 19 6.1
6.2 General Files . . . . . . . . . . . . . . 20 6.2
6.3 Files Created by CONFIG . . . . . . . . . 22 6.3
6.4 Files Needed by Simplex . . . . . . . . . 22 6.4
6.5 Files Created by Simplex . . . . . . . . . 24 6.5
6.6 Files used by Simplex Utilities . . . . . 24 6.6
Chapter 7 Simplex External Mail Utilities 30 Chapter 7
7.1 SCLEAN: Simplex Mail Cleaning Utility . . 30 7.1
7.2 SPACK: Simplex Message Base Deletion . . . 31 7.2
7.3 SLINK: Simplex Message Thread Linker . . . 31 7.3
7.4 SMAIL: Simplex FidoNet Mail Utility . . . 32 7.4
7.5 SMP: Simplex Mail Packer . . . . . . . . . 34 7.5
7.6 SMAILFIX: Simplex Mail Fixer . . . . . . . 34 7.6
Chapter 8 SUSAGE and SRECENT: Simplex Screen Chapter 8
Builders 36
Chapter 9 Simplex Questionaire Language 37 Chapter 9
Chapter 10 SANSI: Simplex Ansi Compiler 39 Chapter 10
10.1 SANSI User's Personal Information . . . . 39 10.1
10.2 SANSI User's BBS Settings . . . . . . . . 40 10.2
10.3 SANSI User's Time/File Information . . . 40 10.3
10.4 SANSI System Information . . . . . . . . 40 10.4
10.5 SANSI System Control . . . . . . . . . . 41 10.5
10.6 SANSI ANSI Sequences . . . . . . . . . . 41 10.6
i
Chapter 11 SMC: Simplex Menu Compiler/Decompiler 43 Chapter 11
Chapter 12 Revision History 48 Chapter 12
ii