home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
SIMPDOC4.ZIP
/
SIMPLEX.DOC
next >
Wrap
Text File
|
1991-07-15
|
169KB
|
3,945 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.
Simplex executables as released by Chris Laforet Software are
absolutely free of charge to individuals and corporations. Sale
of any of these executables is in violation of this agreement and
is subject to court action. The only exception to this is
shareware and freeware software distribution houses are allowed
to charge for distribution materials (e.g. diskettes). Even
though it is free for use, if you feel the need to send a
contribution, be assured that it will be cheerfully accepted!
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.
Should you wish to purchase Simplex for use as a platform for
another product, or wish to convert Simplex to another language
(French, Japanese, Swahili) or to another operating system (Atari
ST, VAX, AX-400), and wish to market the resultant product,
contact Chris Laforet Software and a royalty agreement can be
developed. Royalties generally range somewhere between 10% and
15% of the sales price of the product, but each case is different
and merits discussion.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 2 Page 2
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 has been developed and alpha tested on a 386-20 running
OS/2 1.xx. Two copies of Simplex using US Robotics Courier HST
9600 baud modems run simultaneously 24 hours/day on this setup.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 3 Page 3
_________________________________________________________________
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 4 Page 4
_________________________________________________________________
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. FOSSILs are available on most
BBSes and services. 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.
Please take careful note: Simplex users must have a modem which Please take careful note:
is capable of CTS-RTS handshaking (many 2400 baud modems control
this with &R1). Also, Simplex requires that DTR controls the
on-line state of the modem (most 2400 baud modems control this
with &D2) and CD (carrier detect) must correctly follow the
remote's carrier (controlled with &C1 om many 2400 baud modems).
Without these criteria being met, Simplex probably will not work
on your system.
DOS users of Simplex must set up to have a sufficient number of
file handles available for Simplex to run. This is done by
editing/creating a file called CONFIG.SYS which is found in the
root directory of the boot drive (A: or C:) and ensuring that
there is an entry that sets files greater than or equal to 30.
If it is there, but less than 30, change it to 30. If it is not
there, add a line that says:
files=30
and then save your changes. The machine must then be rebooted to
install the changes. OS/2 users of Simplex do not have to do
anything special to raise their file handles.
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 5 Page 5
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-Setting Up Simplex BBS Paths 3.2-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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 6 Page 6
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.
3.3-Presumptions Underlying Simplex's Fidonet Mail 3.3-Presumptions Underlying Simplex's Fidonet Mail
_________________________________________________________________
Fidonet mail has been implemented in Simplex 1.04 with a number
of underlying presumptions. The first and foremost of these is
that all users should have access to Fidonet mail. The second of
these is that file attaching should be controllable by the Sysop
and access to this feature should be granted exclusively by
him/her. The third of these is that when Echomail discussions
get off-topic, they should be taken to netmail.
The first presumption is demonstrated when a user without mail
credit decides to enter a Fidonet message. They are permitted to
send the message, but can only choose to send it as Routed mail
or as Held mail. If the user has sufficient credit, they can
send it as Direct mail or either of the previous two types.
Simplex looks at mail as a three-layered system. These three
layers are as follows (compared with oMMM's mail extensions):
Direct Mail oMMM's CM
Routed Mail oMMM's Normal
Held Mail oMMM's Held
Direct mail is mail that is intended to be sent DIRECTLY from
your node to the destination (whether this is indeed how it is
sent depends upon the Sysop!). Routed mail is that which is
supposed to follow a routing path through the network. Held mail
is that which is supposed to be held for pickup by another node
which polls yours at specific intervals.
Notice that the three-layered system is all theoretical. For
example, none of my nodes sends Netmail bound for international
locations directly to them, regardless of if the message was
specified as being Direct. It is much cheaper to send direct
mail to the specified Zone gates and let them be routed from
there. On the other hand, if someone enters a message to a local
node and specifies that it is to be Held, it is transformed to
Direct mail and sent immediately (since the node is local, it
doesn't cost anything, right?).
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 7 Page 7
The way that you implement the three-layered system is controlled
by your use of SMP (or SMP/2) to handles your specific routing
needs. SMP's routing verbs are discussed later on in this file.
The second presumption in Simplex is that the option to Netmail
file-attaching is under control of the Sysop. How this control
is exerted is by means of a flag in the user's record. The Sysop
must be careful with who is granted the privilege of file-
attaching since a hacker can easily file-attach critical files
(like userlist.bbs?) to themselves at another node if they have
any idea how your system is laid out!! Please notice that the
local file-attaching feature works differently. Only files from
a specific sysop-specified directory can be attached to another
user on the same system.
The third presumption in Simplex is that Echomail discussions
should go over to Netmail when they start drifting off-topic.
This is implemented by a special option that appears while
reading Echomail messages which permits users to reply directly
to the message using Netmail. Notice that the user can only
enter Routed or Held Netmail if they don't have enough/any
credit!
3.4-Installing A Fidonet Node 3.4-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
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 8 Page 8
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
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.5-Configuring Simplex with CONFIG 3.5-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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 9 Page 9
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
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 10 Page 10
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 needed for FidoNet nodes and for systems that allow
downloadable mail. NOTICE: Archivers must exit with a 0
errorlevel if the archiving was a success. Any other return
value is taken by Simplex to mean that the archiving process
failed.
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
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 11 Page 11
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.
Option 0: This section allows you to do primitive
editing/additions to users. This is not the best way to handle
users; using the internal Simplex user editor is the preferred
way of editing the userlist.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 12 Page 12
_________________________________________________________________
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 current menu 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 new menu. Additional Data: Menuname
[Password] [/ Menu Template Macros]
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 new menu.
Additional Data: Menuname [Password] [/ Menu Template
Macros]
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 4: Replace current menu on 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 new menu is put on the
stack and replaces the current menu so that a subsequent
call to menu type 3 will return to the current menu's
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 13 Page 13
previous menu! If a password is provided, then the user
will be prompted for the password prior to being given
access to the new menu. Additional Data: Menuname
[Password] [/ Menu Template Macros]
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
"_" (underscore) between the user's firat and last names.
This will be changed into 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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 14 Page 14
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. In local mode,
this option permits files to be copied from another
drive/directory into the file area. Additional Data: board#
Type 34: Download file from file board. This option permits the
user to download files from the specified file board. In
local mode, this option permits files from the file area to
be copied to another drive/directory. Additional Data:
board#
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 15 Page 15
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
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 if it is in the screens
directory. See below for more info on Simplex's
questionaire language. Additional Data: filename
Type 52: Show quote of the moment. This option will look in the
screens directory for a compiled quote file. If it exists,
it will "randomly" select a quote from it, show it to the
user and pause for the user to press Enter. See the SQUOTE
section for more details on quote files. 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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 16 Page 16
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
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#]
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 17 Page 17
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 96: Set a user's privilege level. This option sets the
user's privilege level to the value in the data line (1
through 255). This privilege level is written to the user's
record and is permanent. The user's time online is adjusted
to suit their new level. It is the equivalent of up or
downgrading a user from the keyboard. Additional Data:
priv_level
Type 97: Raise a user's time. This option adds the number of
minutes specified in the data line to the user's online
time. Additional Data: minutes_to_raise
Type 98: Drop a user's time. This option removes the number of
minutes specified in the data line from the user's online
time. Additional Data: minutes_to_delete
Type 99: Set flags in user's configuration. This option sets the
flags specified in the data line in the user's flags
configuration. The flags are presented as a string of
letters corresponding to the flags to set. There are 16
flags ranging from A to P. e.g. a data string of "AMjp"
will set the A. M, J, and P flags if they are not already
set. Additional Data: flags_to_set
Type 100: Delete flags from user's configuration. This option
unsets the flags specified in the data line in the user's
flags configuration. The flags are presented as a string of
letters corresponding to the flags to set. There are 16
flags ranging from A to P. e.g. a data string of "AMjp"
will delete the A. M, J, and P flags if they are set.
Additional Data: flags_to_delete
Type 101: Set the time of a user to an absolute time. This
option sets the user's time online to the number of minutes
specified in the data line. Additional Data: minutes_to_set
Type 112: Set up combined message boards. This option allows a
user to select the message boards that he/she wants to use
for combined message reading and downloading. These
settings are saved until they are changed. The user can
only select boards for which they have read permission.
Additional Data: none
Type 113: Read messages on combined message boards. This option
permits the user to read messages on the selected combined
message boards. Additional Data: none
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 18 Page 18
Type 114: Scan messages on combined message boards. This option
permits the user to scan message headers that are on the
selected combined message boards. Additional Data: none
Type 115: Quickscan messages on combined message boards. This
option permits the user to quickscan message headers that
are on the selected combined message boards. Additional
Data: none
Type 116: Download messages from combined message boards. This
option permits the user to download all or only new messages
in the selected combined message boards. If archivers are
specified in option 5 of CONFIG, the user can then
optionally elect to archive the mail before downloading it
with a protocol. This option also requires that the file-
attach path be set in CONFIG. This path is used for the
preparation of downloadable mail. Additional Data: none
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.
There are certain $-escaped meta-commands which can be used
to pass data. These meta-commands MUST BE IN LOWERCASE.
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)
$k = Keep the user's time unaltered upon return from
the external program (except for recalculating
time due to a pending forced event). This
behaves like suspending the user's time while in
chat mode.
$* = DOS only: leave fossil hot (do not deinitialize)
before calling program (not considered an
argument to the program)
$e = stop and wait for Enter after running program
(not considered an argument to the program)
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 19 Page 19
$## = 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).
When the external program returns to Simplex, the user's
record is reread and any changes to fields such as
privilege, or flags (anything other than date/time info) is
incorporated into the data held by Simplex. This allows
external programs to modify a user's access. If the user
has less than two minutes left online upon return, their
time is reset to two minutes so they can exit in an orderly
fashion. 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 20 Page 20
_________________________________________________________________
Chapter 5 Chapter 5
Menu Templates Menu Templates
_________________________________________________________________
In order to support multiple menus which are similar, Simplex
supports a menu template structure. This feature is activated by
using the / after the name of the menu (and password if one is
present) in type 1 (Call new menu) and type 2 (Goto new menu)
menu types, and then following this slash with macros
assignments.
5.1-Assigning Menu Template Macros 5.1-Assigning Menu Template Macros
_________________________________________________________________
Macros can be assigned to any letter from uppercase A to
uppercase Z. The assignments look like this:
A=1 B=Messages_to_the_Sysop
Where A is assigned the string "1" and B is assigned the string
"Messages to the Sysop". There can be NO SPACES between the
macro letter, the equals, and the beginning of the assignment.
Since a space signifies the end of the macro assignment, you must
use an underscore to represent a space (as in macro B above).
Sorry, there is no way to represent an underscore character in an
assignment string!
A complete data line for a menu which calls a template menu would
look similar to the following:
msgs password / A=1 B=Messages_to_the_Sysop C=24
if there is a password for the area or like:
msgs / A=1 B=Messages_to_the_Sysop C=24
if there is not a password. MSGS is the name of the template
menu to which to apply the macros.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 21 Page 21
Macros assigned in this fashion will only be applied to the menu
in question, thus the same letters can be reused within a
template menu to call another template menu.
5.2-Using Template Macro Assignments 5.2-Using Template Macro Assignments
_________________________________________________________________
A template menu is not very different from a regular menu. The
difference mainly is in the use of $-escaped UPPERCASE letters to
represent macro substitutions in the prompt and data lines. For
example, $A will substitute the value of macro A for that
specific template menu.
Since a picture is worth a thousand words, I suspect that an
example is worth ten thousand, so here is an example! In the
previous section we called a menu "MSGS" with three macro
assignments, A, B and C. Here is how MSGS can use the macros.
Assume that the first prompt line is the name of the message
area:
--- Message Area $A: ^$B^
This will print the following when called using the syntax of the
previous section:
--- Message Area 1: Messages to the Sysop Messages to the Sysop
when $A and $B are assigned the values assigned to A and B.
Ok, the prompt line works fine, but how does this affect data
lines? The same way. Here are sample menu prompt and data lines
from the same menu:
prompt: <^$$^> Scan messages
data: $C
This will actually become the following when the menu is actually
called:
prompt: <$> Scan messages $
data: 24
which will pass the number 24 to the Scan function (we assume
this was a type 18 menu and that message board 24 is where sysop
messages are!). The $$ is interpreted as representing a single
dollar sign ($).
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 22 Page 22
_________________________________________________________________
Chapter 6 Chapter 6
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)
-D Drop in to Simplex with user's info in simplex.usr
-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
-S DOS: Do not close stdout and reopen it to NUL
-Txxx Set maximum time user is allowed on system
-X Exit after carrier is lost or after logoff
The DOS version has the -S option because of the propensity of
some fossil drivers to "sign-on" with a message each time they
are initialized by Simplex (e.g. Ray Gwinn's x00.sys). This
behavior has the tendency to kill Simplex's screen which is
undesirable. So, by default, Simplex closes the standard output
file handle (handle 1) and reopens it pointing to NUL. This is
the equivalent of typing "simplex > nul" at the command line! If
your fossil does not do this, or it causes problems on your
system, you may specify the -S flag to stop Simplex from closing
the handle.
The -D option permits Simplex to be called as a door to another
program. The other program must somehow create the login file
"simplex.usr" according to the following byte-packed C structure.
All strings are terminated with nul characters (0).
struct uf
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 23 Page 23
{
char uf_name[41]; /* nul-terminated user name, first last */
char uf_password[16]; /* nul-terminated password */
char uf_city[31]; /* nul-terminated city, state */
char uf_home[15]; /* nul-terminated user's home number */
char uf_data[15]; /* nul-terminated user's data/business
number */
char uf_screenlen; /* length of users screen in lines */
int uf_flags; /* bit mapped flags for options, see
URGENT.DOC */
};
The user is logged in and if they have never entered Simplex
before, their user record is created automatically. The -D
option automatically sets the -X flag so that Simplex will exit
if the user drops carrier or logs off.
A front-end 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 or (-D)
was on command line.
3 Netmail was entered and Alt-X pressed or -X (-D) was on
command line.
4 Echomail was entered and Alt-X pressed or -X (-D) was
on command line.
5 Netmail and Echomail were entered and Alt-X pressed or
-X (-D) 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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 24 Page 24
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
srecent 20
susage -G -I
goto runbbs
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 25 Page 25
_________________________________________________________________
Chapter 7 Chapter 7
Setting up Downloadable Mail Setting up Downloadable Mail
_________________________________________________________________
As of version 1.04, Simplex handles downloadable mail. This
permits users who keep track of large message bases to be able to
download their mail (optionally in compressed form) using a
protocol, and then using an ASCII file reader/browser (such as
LIST in DOS or LSTPM in OS/2) to read their mail offline.
In order to implement the downloadable feature, you must define a
fileattach directory in option 4 of CONFIG. You must ensure that
there are a few megabytes of space free on the drive you specify
at any time depending upon the total amount of mail most users
would download).
If you are not running FidoNet mail and wish users of the
downloadable mail to have access to the different archivers, you
must set up archivers in option 5 of CONFIG. Whatever archivers
that you provide command line templates for will be presented to
the user as options. To set up an archiver, find the respective
line corresponding to the archiver (ARC, ZIP, LZH, or ZOO) under
option 5 and enter a template line as follows:
[path]archiver [options] %A %F
where %A is the name of the archive-file that will be generated
by Simplex and %F is the name of the file that will be inserted
into the archive. Simplex will look along the path for the
archiver before running. Here are some examples of some command
lines:
ARC Command: arc m5 %A %F
ZIP Command: pkzip -a -m %A %F
LZH Command: lh2 A %A %F /i /c /o
While Simplex is diligent about deleting the files it creates, it
might not be a bad idea to add a cleanup routine to the batch
file that runs your BBS like this:
del d:\files\fattach\mail*.dl > NUL
del d:\files\fattach\mail*.arc > NUL
del d:\files\fattach\mail*.zip > NUL
del d:\files\fattach\mail*.lzh > NUL
del d:\files\fattach\mail*.zoo > NUL
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 26 Page 26
which would ensure that the area is kept clean.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 27 Page 27
_________________________________________________________________
Chapter 8 Chapter 8
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.
8.1-Files for Help 8.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 28 Page 28
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.
8.2-General Files 8.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 29 Page 29
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 since Simplex knows at this
point if the user runs ANSI or not!
DAYQUOTE.CQ This is a compiled quote file (see SQUOTE below)
which is searched for a "random" quote for the
day. A quote from this file will be shown after
WELCOME.A?? and before checking for mail.
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.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 30 Page 30
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
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.
8.3-Files Created by CONFIG 8.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.
8.4-Files Needed by Simplex 8.4-Files Needed by Simplex
_________________________________________________________________
The following files are absolutely essential for Simplex's
operations and must be in the Simplex home directory. Notice,
Ctrl-Z cannot appear as the End-of-file marker. This rules out
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 31 Page 31
using editors like EDLIN. If your editor uses Ctrl-Z for EOF,
you must use a program that strips Ctrl-Z's to remove them. Most
good editors allow you to write files without Ctrl-Z at the end.
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:
<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. The maximum length of a line can be
250 characters. 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:
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 32 Page 32
- My Main File Area
-----------------
FILENAME.DOC A description of this file area for
my users.
SIMPLEX.ZIP The latest Simplex programs.
ANOTHER.LZH Yet another file in this area.
8.5-Files Created by Simplex 8.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.
MSGCOMB.BBS This file contains the combined message board
information for each user.
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.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 33 Page 33
8.6-Files used by Simplex Utilities 8.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.
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
Urgent: In AREAS.BBS, the FIRST line must contain
a comment or anything other than an echo area
list. This is for compatibility with older
systems. 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. Notice: Prior to version 1.04
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 34 Page 34
Simplex, it was somewhat similar to oMMM's CTL
file. After 1.04's release, the verbs changed
radically to bring them in line with the new
policy underlying Fidonet mail as implemented in
Simplex.
Routing verbs allow mail to be converted between
states (Held <-> Routed <-> Direct), moved out and
into of the reach of mailers (Left <-> Send), and
archived (Arc, Zip, Zoo, Lzh) to specific nodes.
Here is a listing of the various verbs:
HOLDTO <destination> <sources...>
This causes all held mail bound to sources to be
held for destination. e.g. HOLDTO 151/402 151/400
151/401 151/402. This holds all held mail for
151/400, 401 and 402 for 151/402.
HOSTHOLD <destinations...>
This causes all held mail bound to destinations to
be held for network host (node 0 of one's net).
e.g. HOSTHOLD 151/ALL 120/ALL will cause all held
mail for nets 151 and 120 to be held for 151/0
(from 151/401).
ROUTETO <destination> <sources...>
This causes all routed mail bound to sources to
get routed to destination. e.g. ROUTETO 151/402
151/ALL 120/ALL will route all routed mail for
nets 151 and 120 to 151/402.
HOSTROUTE <destinations...>
This causes all routed mail bound to destinations
to get routed to network host (node 0 of one's
net). e.g. HOSTROUTE 151/ALL 120/ALL will cause
all routed mail for nets 151 and 120 to be routed
to 151/0 (from 151/401).
DIRECTTO <destination> <sources...>
This causes all direct mail bound to sources to
get directed to destination. e.g. DIRECTTO
151/402 151/ALL 120/ALL will direct all directed
mail for nets 151 and 120 to 151/402.
HOSTDIRECT <destinations...>
This causes all direct mail bound to destinations
to get directed to network host (node 0 of one's
net). e.g. HOSTDIRECT 151/ALL 120/ALL will cause
all routed mail for nets 151 and 120 to be
directed to 151/0 (from 151/401).
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 35 Page 35
ARCHOLD <destination> <sources...>
ZIPHOLD <destination> <sources...>
LZHHOLD <destination> <sources...>
ZOOHOLD <destination> <sources...>
These options archive held mail for sources using
the archiver specified to the specified
destination. e.g. ZIPHOLD 151/402 151/401 151/402
151/405 151/406 will archive all held mail to
151/401, 402, 405 and 406 with ZIP and route it to
151/402.
ARCROUTE <destination> <sources...>
ZIPROUTE <destination> <sources...>
LZHROUTE <destination> <sources...>
ZOOROUTE <destination> <sources...>
These options archive routed mail for sources
using the archiver specified to the specified
destination. e.g. ZIPROUTE 151/402 151/401
151/402 151/405 151/406 will archive all routed
mail to 151/401, 402, 405 and 406 with ZIP and
route it to 151/402.
ARCDIRECT <destination> <sources...>
ZIPDIRECT <destination> <sources...>
LZHDIRECT <destination> <sources...>
ZOODIRECT <destination> <sources...>
These options archive direct mail for sources
using the archiver specified to the specified
destination. e.g. ZIPDIRECT 151/402 151/401
151/402 151/405 151/406 will archive all direct
mail to 151/401, 402, 405 and 406 with ZIP and
route it to 151/402.
HOLDROUTE <destinations...>
This option converts all held mail bound for
destinations to routed mail (from HOLD to ROUTE).
e.g. HOLDROUTE 151/402 will convert held mail for
151/402 to routed mail.
HOLDDIRECT <destinations...>
This option converts all held mail bound for
destinations to directed mail (from HOLD to
DIRECT). e.g. HOLDROUTE 151/402 will convert held
mail for 151/402 to directed mail.
ROUTEHOLD <destinations...>
This option converts all routed mail bound for
destinations to held mail (from ROUTE to HOLD).
e.g. ROUTEHOLD 151/402 will convert routed mail
for 151/402 to held mail.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 36 Page 36
ROUTEDIRECT <destinations...>
This option converts all routed mail bound for
destinations to directed mail (from ROUTE to
DIRECT). e.g. ROUTEDIRECT 151/402 will convert
routed mail for 151/402 to directed mail.
DIRECTHOLD <destinations...>
This option converts all direct mail bound for
destinations to held mail (from DIRECT to HOLD).
e.g. DIRECTHOLD 151/402 will convert directed mail
for 151/402 to held mail.
DIRECTROUTE <destinations...>
This option converts all direct mail bound for
destinations to routed mail (from DIRECT to
ROUTE). e.g. DIRECTROUTE 151/402 will convert
directed mail for 151/402 to routed mail.
LEAVEHOLD <destinations...>
This option converts all held mail bound for
destinations to non-active held mail.
LEAVEROUTE <destinations...>
This option converts all routed mail bound for
destinations to non-active routed mail.
LEAVEDIRECT <destinations...>
This option converts all direct mail bound for
destinations to non-active direct mail.
SENDHOLD <destinations...>
This option converts all non-active held mail
bound for destinations to regular held mail.
SENDROUTE <destinations...>
This option converts all non-active routed mail
bound for destinations to regular routed mail.
SENDDIRECT <destinations...>
This option converts all non-active direct mail
bound for destinations to regular direct mail.
POLL <destinations...>
This will create a blank .flo file to the
destinations providing there is not already direct
mail addressed to the same address.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 37 Page 37
_________________________________________________________________
Chapter 9 Chapter 9
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.
9.1-SCLEAN: Simplex Mail Cleaning Utility 9.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:
-q Quiet....do not show message by message activity
-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
The quiet flag can be used to speed up SCLEAN considerably on
slow machines.
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 38 Page 38
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.
9.2-SPACK: Simplex Message Base Deletion 9.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:
-q Quiet....do not show message activity
-p Pack message base
-w Write message base files in place
The quiet flag will speed up SPACK considerably and should be
used on slow machines!
In order to pack the message base, use the following command
line:
spack -p
9.3-SLINK: Simplex Message Thread Linker 9.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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 39 Page 39
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.
9.4-SMAIL: Simplex FidoNet Mail Utility 9.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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 40 Page 40
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.
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 41 Page 41
goto runmailer
:end
9.5-SMP: Simplex Mail Packer 9.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.
9.6-SMAILFIX: Simplex Mail Fixer 9.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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 42 Page 42
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.
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.
An option for SMAILFIX is the -date (or /date) option. This
makes SMAILFIX delete any messages which have a date beyond
today's date.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 43 Page 43
_________________________________________________________________
Chapter 10 Chapter 10
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.
You may list names which you do not wish to show up on the recent
callers list by creating a file with an editor in the Simplex
directory called SRECENT.CFG. This file would contain the first
and last names of people who are exempt from SRECENT separated by
an ENTER. For example:
Susan Smith
Fred Flintstone
John Doe
Jane Doe
Whenever these people log off, they will not be included in the
recent-callers list.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 44 Page 44
_________________________________________________________________
Chapter 11 Chapter 11
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 45 Page 45
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.
SETFLAG ("string") : Turns on or sets the user's flags
corresponding to the letters contained in the string (A
through P, 16 flags) and updates the user's record.
SHOW ("filename") : Shows a file (filename.ans if ansi is
on, otherwise filename.asc if it is not.
UNSETFLAG ("string") : Turns off or resets the user's flags
corresponding to the letters contained in the string (A
through P, 16 flags) and updates the user's record.
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 46 Page 46
_________________________________________________________________
Chapter 12 Chapter 12
SQUOTE: Simplex Quote File Compiler SQUOTE: Simplex Quote File Compiler
_________________________________________________________________
You may create quote files for Simplex which are searched for
random sayings either on login (see DAYQUOTE.CQ above) or in
response to a type 52 menu option. These files can contain salty
wisdom sayings, scripture verses, variations on Murphy's Law,
short jokes, or whatever else you desire. Simplex can "randomly"
select one of these sayings on demand and show it to the user.
Creating quote files is a rather simple operation. You need to
edit a flat-ASCII file containing one quote per line (Maximum of
512 characters per saying) and then compile it using SQUOTE. The
quote file produced by SQUOTE must be placed in the screen files
directory. The uncompiled quote file must have a .Q extension
(e.g. DAYQUOTE.Q) and the compiler will create a file with a .CQ
extension (e.g. DAYQUOTE.CQ).
Here is an example of a simple uncompiled quote file:
The toast always falls on the carpet buttered-side down!
A penny saved is a penny earned.
God is love. (I John 4:16a NIV)
Notice that each line is an individual saying. Blank lines
between quote lines will not hurt anything so you could group
similar sayings together and separate them with blank lines as
above. This might make it easier to maintain your quote files.
Assume that the above file is called DAYQUOTE.Q, compiling it is
achieved by doing:
SQUOTE dayquote[.Q]
where the .Q is assumed and is optional. The compiler will
indicate how many lines of quotes it found and write out a
DAYQUOTE.CQ file.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 47 Page 47
_________________________________________________________________
Chapter 13 Chapter 13
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.
13.1-SANSI User's Personal Information 13.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 48 Page 48
13.2-SANSI User's BBS Settings 13.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
13.3-SANSI User's Time/File Information 13.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
13.4-SANSI System Information 13.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 49 Page 49
`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
13.5-SANSI System Control 13.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
13.6-SANSI ANSI Sequences 13.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 50 Page 50
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 51 Page 51
_________________________________________________________________
Chapter 14 Chapter 14
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 52 Page 52
flags "flag_vals" : This is only valid in a "line" clause and
sets the user flags needed to see/access the menu item.
Flags are lettered from A to P (16 flags).
e.g. flags "ABJMP"
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-
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 53 Page 53
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
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 54 Page 54
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:
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
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 55 Page 55
line "" /* blank "space holder" line */
type 0 priv 0 color 7 hilite 15
line ""
type 0 priv 0 color 7 hilite 15
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 56 Page 56
_________________________________________________________________
Chapter 15 Chapter 15
Acknowlegements and Thank Yous Acknowlegements and Thank Yous
_________________________________________________________________
First of all, thanks goes to God for His strength and guidance
during the development of Simplex BBS. Without His Spirit, this
project would never have made it off of the ground!
I know that it is not very often that I seem appreciative of the
many bug reports from my beta testers, especially since bugs pop
up at the most inconvenient times. I know that getting a BBS up
and running can be rough especially when you have bugs to contend
with, and users who jump all over you when features break down!!
Thank you guys for a job well done, and may I add, keep up the
good work.
The job accomplished by beta testers is so important and yet it
is downplayed. These are the guys who actually stand on the
front line and get pounded by bugs and undocumented "features".
Special thanks goes to my beta testers:
Robbie Foust of Stardate BBS (1:151/404 at
919/376-8432)
Kelly Hughes of Bedside Manor BBS (1:151/117 at
919/233-8566)
Scott Hughes of NightHawk BBS (1:151/406 at
919/228-7002)
Thanks goes especially for my wife, Sherry, a "computer widow"
who spent much time listening to me pecking at the keyboard late
into the night for the many months spent while developing
Simplex. She is the one who named the package and I dedicate it
to her and to my lovely daughter Rebekah.
Thanks to Brady Flowers of Oberon Software in Mankato, MN for
helping me through some of OS/2's uncharted reefs! Thanks also
to Michael Sly of Berean BBS in Warren, MI who is
amending/expanding this user's manual.
Thanks to the many people who have made excellent suggestions for
features in Simplex over the course of time. Thanks also to the
many kind souls who reported bugs and who sent messages of
encouragement.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 57 Page 57
_________________________________________________________________
Chapter 16 Chapter 16
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.
Version 1.01: Released Feb 24, 1991. The following things were
modified or added:
- Linted and cleaned up code.
- Added logic to put commas in displays of numbers (as in
1,009,198).
- Squashed bug in Ymodem and Ymodem-G send which wasted
file-handles by reopening the file to send each time it
send SOH!
- Fixed the problem when adding a new message area,
causing false message counts for that area instead of a
count of 0.
- Added logic for handling logins of deleted users.
- Added logic for re-entering names if hitting enter on
password 3 times in a row.
- Cleaned up s_start.c to stop initializing and
deintializing fossil each time it went out to
reinitialize the modem.
- Cleaned up OS/2 fossil threads to exit upon
deinitialization of fossil.
- Started work on the MultiChat version of OS/2.
- Fixed problem that allowed echomail-barred users to
reply to echomail messages! Now if user doesn't have a
level >= write_level for the echo, they cannot reply.
- Added option that users with a level >= sysop_level for
an echomail area can now send echomail addressed to
"Sysop". Other users cannot enter mail to sysop in an
echomail area.
- Added new options, uptime, downtime, change priv.
- Allow zone to go up to 99.
- Smailfix now has a new option -date to delete messages
with a date greater than today's date.
- SMC and Config were modified to support the new menu
options in Simplex.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 58 Page 58
The only known bug at this point is that Simplex Zmodem
download will occassionally hang when garbage characters
are coming in on the back channel and it requests a ZACK
from the receiver.
Version 1.02: Released March 3, 1991. The following things were
added and modified:
- Corrected minor bug in s_user which didn't clear change
flag when searching or next find.
- Corrected bug in search nodelist.
- Corrected bug in show new files in a single area.
- Added support for user flags.
- Added file handling that closes open handles when
carrier is dropped.
Version 1.03: Released March 10, 1991. The following things
were added and modified:
- Set up Path separators as macros to aid portability.
- Set up get_closefile in preparation for porting.
- Added SETFLAG and UNSETFLAG keywords to questionaire
language.
- Set up to handle all ^a kludges if area is echo or net
and user has
sysop priv in the message area.
- Fixed bug in SMC with compiling flags.
- Fixed SMAIL to handle ^a kludges.
- Fixed SMAIL to handle PATH and SEEN-BY lines correctly.
Version 1.04: Released April 27, 1991. The following things
were added and modified:
- Added absolute time setting menu option.
- Changed efficiency percentages of protocols.
- Fixed move_messages to correctly turn on
netmail/echomail entered flags.
- Added $k option to external shell which allows a user's
time to be kept untouched while he/she is out of Simplex
(i.e. time is not recalculated upon reentry).
- Added logic to check for events after returning from
external shell.
- Expanded file-list buffer from 150 to 256 characters.
- Fixed bug in running help in ANSI editor from quote
window which blew memory!
- Added 8th-bit filter to chat mode on incoming to help
if chatting with someone who has 7 bits and even, mark or
odd parity on!
- Set up to show crash-mail boards in listings of Fido
nodes.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 59 Page 59
- Show warnings that a board is not CM if it isn't when
entering a message.
- Fixed error FATAL to ERROR in s_run.c if unable to
spawn program.
- Added combined message boards - reading, scanning and
quick-scanning.
- Fixed problem where a user couldn't quote messages with
Ctrl-A kludge in s_full.c (ANSI editor).
- Installed menu template types in s_menu.c
- Fixed problem with logging in if there are no message
areas. This was due to calling message-handling
functions which had no checks for message file existence.
- Fixed bug in filename search routines to correctly
handle wildcards.
- Added S flag for DOS startup which prevents Simplex
from closing the
stdout (console writes) handle and reopening it to the
NUL device (to prevent fossils like X00 from messing up
the screen!).
- Added new menu item: Replace Current Menu.
- Added new menu item: Show Quote from file.
- Added downloadable combination mail.
- Shorted timeouts in Zmodem.
- Corrected bug in ansi editor. User could insert a
blank line and arrow over a few spaces and start typing
-- this would cause the contents of the previous line to
spill out of the end of the current line as if they were
being pushed by the insertion of the new text!
- Sped up filename and keyword searches across file
areas. Fixed minor bugs in keyword search code.
- Cleaned up OS/2 FOSSIL startup.
- Cleaned up Zmodem and Ymodem-G along with protocol-
sends under OS/2.
- Set up netmail to handle routed and hold-for-pickup
mail options.
-
Added -D flag which allows Simplex to start up with a
data file containing a user's information.
- Added quiet flags to SPACK and SCLEAN.
- SMP: Stopped echomail with INTL addresses from being
sent to their origins by comparing INTL-net and INTL-node
with header destination net/node. If no match, the
message is sent to header net/node else it is sent to
INTL location.
- SMP: Corrected problem in preliminary routing where
"ALL" destinations were not matched and acted upon.
- SMP: Changed routing verbs to match new Simplex mail
philosophy.
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 60 Page 60
- SMAIL: Corrected message headers for echomail to
include current node's address when forwarding mail.
- SMAIL: Improved resynchronizing algorithm while
unpacking packets.
- SMAIL: Corrected problem that prevented grunged packets
from being deleted.
- CONFIG: Set up Path seperators as macros to aid
portability.
- CONFIG: Fixed minor problem with deleting user.
- CONFIG: Corrected problem with net-credit field.
Known bugs at this point:
- Occasionally, some Zmodem and Ymodem-G users encounter
problems.
- Last Read message pointers can sometimes be reset for
some users.
- Smail still cannot handle every perversion of
FSC-0001's date/time stamp standard. Please report the
source programs (e.g. Simplex) which have problems in
this area!
--------------------------------------------------
Simplex BBS A User's Manual Simplex BBS A User's Manual
Page 61 Page 61
____________________________________________________________
Table of Contents Table of Contents
____________________________________________________________
Chapter 1 Legalistic Mumbo-Jumbo 2 Chapter 1
Chapter 2 Introduction to Simplex 4 Chapter 2
Chapter 3 Installing Simplex 5 Chapter 3
3.1 Simplex and Answering the Phone . . . . . . 5 3.1
3.2 Setting Up Simplex BBS Paths . . . . . . . . 6 3.2
3.3 Presumptions Underlying Simplex's Fidonet 3.3
Mail . . . . . . . . . . . . . . . . . . . . 7
3.4 Installing A Fidonet Node . . . . . . . . . 8 3.4
3.5 Configuring Simplex with CONFIG . . . . . . 9 3.5
Chapter 4 Simplex Menu Types 13 Chapter 4
Chapter 5 Menu Templates 21 Chapter 5
5.1 Assigning Menu Template Macros . . . . . . 21 5.1
5.2 Using Template Macro Assignments . . . . . 22 5.2
Chapter 6 Running Simplex 23 Chapter 6
Chapter 7 Setting up Downloadable Mail 26 Chapter 7
Chapter 8 Simplex Ancillary Files 28 Chapter 8
8.1 Files for Help . . . . . . . . . . . . . . 28 8.1
8.2 General Files . . . . . . . . . . . . . . 29 8.2
8.3 Files Created by CONFIG . . . . . . . . . 31 8.3
8.4 Files Needed by Simplex . . . . . . . . . 31 8.4
8.5 Files Created by Simplex . . . . . . . . . 33 8.5
8.6 Files used by Simplex Utilities . . . . . 34 8.6
Chapter 9 Simplex External Mail Utilities 38 Chapter 9
9.1 SCLEAN: Simplex Mail Cleaning Utility . . 38 9.1
9.2 SPACK: Simplex Message Base Deletion . . . 39 9.2
9.3 SLINK: Simplex Message Thread Linker . . . 39 9.3
9.4 SMAIL: Simplex FidoNet Mail Utility . . . 40 9.4
9.5 SMP: Simplex Mail Packer . . . . . . . . . 42 9.5
9.6 SMAILFIX: Simplex Mail Fixer . . . . . . . 42 9.6
Chapter 10 SUSAGE and SRECENT: Simplex Screen Chapter 10
Builders 44
Chapter 11 Simplex Questionaire Language 45 Chapter 11
i
Chapter 12 SQUOTE: Simplex Quote File Compiler 47 Chapter 12
Chapter 13 SANSI: Simplex Ansi Compiler 48 Chapter 13
13.1 SANSI User's Personal Information . . . . 48 13.1
13.2 SANSI User's BBS Settings . . . . . . . . 49 13.2
13.3 SANSI User's Time/File Information . . . 49 13.3
13.4 SANSI System Information . . . . . . . . 49 13.4
13.5 SANSI System Control . . . . . . . . . . 50 13.5
13.6 SANSI ANSI Sequences . . . . . . . . . . 50 13.6
Chapter 14 SMC: Simplex Menu Compiler/Decompiler 52 Chapter 14
Chapter 15 Acknowlegements and Thank Yous 57 Chapter 15
Chapter 16 Revision History 58 Chapter 16
ii