Professional Documents
Culture Documents
.---------------------------------------------------------------.
| |
| TABLE OF CONTENTS |
| |
+---------------------------------------------------------------+
| Section Description |
+---------------------------------------------------------------+
| |
| 1.0 ....... About Mystic BBS Software |
| 2.0 ....... Mystic BBS SysOp Resources |
| 3.0 ....... Installation |
| 4.0 ....... Starting Mystic BBS |
| 5.0 ....... Waiting for Calls |
| 6.0 ....... System Configuration |
| 7.0 ....... Maintaining your System |
| 8.0 ....... Customizing your System |
| 8.A ....... - Language Files |
| 8.B ....... - Display Files |
| 8.C ....... - Menus |
| 8.D ....... - MPL (Mystic Programming Language) Scripts |
| 9.0 ....... Technical Reference |
| 10.0 ...... Advanced Tips and Techniques |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| INDEX |
| |
+---------------------------------------------------------------+
| Section Description |
+---------------------------------------------------------------+
| |
| 1.0 ** ABOOUT MYSTIC BBS SOFTWARE... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 1.1 ....... About the Documentation |
| 1.2 ....... Disclaimer |
| 1.3 ....... Minimum System Requirements |
| 1.4 ....... Software Features |
| 1.5 ....... Obtaining Official Mystic BBS Support |
| 1.6 ....... Donating to the Mystic BBS Software Project |
| 1.7 ....... Credits and Greetings |
| |
+------------------- -- - |
| |
| 2.0 ** MYSTIC BBS SOFTWARE SYSOP RESOURCES... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
+------------------- -- - |
| |
| 3.0 ** INSTALLATION... |
| ~~~~~~~~~~~~~~~~~~ |
| 3.1 ....... DOS |
| 3.2 ....... OS/2 |
| 3.3 ....... Windows |
| 3.4 ....... Linux (telnetd) |
| 3.5 ....... Configuring your Modem |
| 3.6 ....... Configuring the Mystic BBS Telnet Server (WIN) |
| 3.7 ....... Configuring a Fossil Driver (BNU/X00/ADF) |
| 3.8 ....... Configuring a Virtual Fossil (NETMODEM/COMIP) |
| |
+------------------- -- - |
| |
| 4.0 ** STARTING MYSTIC BBS... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 4.1 ....... DOS |
| 4.2 ....... OS/2 |
| 4.3 ....... Windows |
| 4.4 ....... Linux |
| 4.5 ....... Command Line Switches |
| 4.6 ....... ERRORLEVELS returned by Mystic BBS |
| 4.7 ....... Mystic BBS Error Codes |
| |
+------------------- -- - |
| |
| 5.0 ** WAITING FOR CALLS... |
| ~~~~~~~~~~~~~~~~~~~~~~~ |
| 5.1 ....... Wait For Calls Mode (W.F.C.) |
| 5.2 ....... Mystic BBS Telnet Server (WIN32 Version ONLY!) |
| 5.3 ....... Linux (telnetd) |
| |
+------------------- -- - |
| |
| 6.0 ** SYSTEM CONFIGURATION... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 6.1 ....... The External Mystic BBS Config Utility (MCFG) |
| 6.2 ....... The Internal Mystic BBS Config Utility (WFC/SOP)|
| 6.2.A ..... - System Paths |
| 6.2.B ..... - Modem/Node Settings |
| 6.2.C ..... - General Settings |
| 6.2.D ..... - File Base Settings |
| 6.2.E ..... - Message Base Settings |
| 6.2.F ..... - Network Settings (ECHOMAIL) |
| 6.2.G ..... - Language Definition Editor |
| 6.2.H ..... - New User Settings 1 |
| 6.2.I ..... - New User Settings 2 |
| 6.2.J ..... - User Editor |
| 6.2.K ..... - Group Editor |
| 6.2.L ..... - Security Levels Editor |
| 6.2.M ..... - Event Editor |
| 6.2.N ..... - Archive Editor |
| 6.2.O ..... - Protocol Editor |
| 6.2.P ..... - Voting Booth Editor |
| 6.2.Q ..... - Message Base Editor |
| 6.2.R ..... - File Base Editor |
| 6.2.S ..... - Menu Editor |
| |
+------------------- -- - |
| |
| 7.0 ** MAINTAINING YOUR SYSTEM... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 7.1 ....... Purge the BBS List (MBBSUTIL) |
| 7.2 ....... Sort the BBS List (MBBSUTIL) |
| 7.3 ....... Move Unavailable Files Offline (MBBSUTIL) |
| 7.4 ....... Pack the File Areas (MBBSUTIL) |
| 7.5 ....... Sort the File Areas (MBBSUTIL) |
| 7.6 ....... Purge Inactive Users (MBBSUTIL) |
| 7.7 ....... Pack the Users File (MBBSUTIL) |
| 7.8 ....... Pack the JAM Format Message Bases (MYSTPACK) |
| 7.9 ....... Pack the SQUISH Format Message Bases (3RDPARTY) |
| 7.10 ...... Backup your BBS on a Schedule |
| |
+------------------- -- - |
| |
| 8.0 ** CUSTOMIZING YOUR SYSTEM... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 8.1 ....... Why you SHOULD Customize YOUR BBS |
| |
| 8.A ....... Language Files (*.TXT/*.LNG) |
| 8.A.1 ..... - Using the Language Prompt Editor |
| 8.A.2 ..... - Compiling Language Files |
| 8.A.3 ..... - Replacing a Prompt with a Display File |
| 8.A.4 ..... - Replacing a Prompt with an MPL Script |
| |
| - -- -------------------+
| |
| 8.B ....... Display Files (*.ANS/*.ASC) |
| 8.B.1 ..... - The Location of Display Files (<BBSDIR>\TEXT)
|
| 8.B.2 ..... - Random Display Files |
| 8.B.3 ..... - Creating and Showing your Own Display Files |
| 8.B.4 ..... - Display File Creation Tips and Techniques |
| 8.B.5 ..... - The Mystic BBS Template System |
| |
| - -- -------------------+
| |
| T 8.B.6 ..... - ANSICHAT.xxx T |
| T 8.B.7 ..... - ANSIEDIT.xxx T |
| T 8.B.8 ..... - ANSIFINF.xxx T |
| T 8.B.9 ..... - ANSIFLST.xxx T |
| T 8.B.10 .... - ANSIMLST.xxx T |
| T 8.B.11 .... - ANSIMRD.xxx T |
| T 8.B.12 .... - ANSIQUOT.xxx T |
| T 8.B.13 .... - ANSITELE.xxx T |
| 8.B.14 .... - AMSGHLP1.xxx |
| 8.B.15 .... - AMSGHLP2.xxx |
| 8.B.16 .... - BIRTHDAY.xxx |
| 8.B.17 .... - BLINDUL.xxx |
| 8.B.18 .... - CLOSED.xxx |
| 8.B.19 .... - DOWNLOAD.xxx |
| 8.B.20 .... - EMAILHLP.xxx |
| 8.B.21 .... - FEEDBACK.xxx |
| 8.B.22 .... - FGROUPx.xxx |
| 8.B.23 .... - FLAG1x.xxx |
| 8.B.24 .... - FLAG2x.xxx |
| 8.B.25 .... - FLISTHLP.xxx |
| 8.B.26 .... - FSEARCH.xxx |
| 8.B.27 .... - FSHELP.xxx |
| 8.B.28 .... - GROUPx.xxx |
| 8.B.29 .... - LOGOFF.xxx |
| 8.B.30 .... - LOGON1-9.xxx |
| 8.B.31 .... - NEWUSER.xxx |
| 8.B.32 .... - NONEWUSR.xxx |
| 8.B.33 .... - PRELOGON.xxx |
| 8.B.34 .... - PROTO.xxx |
| 8.B.35 .... - PROTOB.xxx |
| 8.B.36 .... - READHLP.xxx |
| 8.B.37 .... - READSHLP.xxx |
| 8.B.38 .... - SLxxx.xxx |
| 8.B.39 .... - TELECONF.xxx |
| 8.B.40 .... - TELEHELP.xxx |
| 8.B.41 .... - UPLOAD.xxx |
| T 8.B.42 .... - WFCSCRN.xxx T (note: in <BBSDIR>\DATA) |
| |
| Note: T = File uses Mystic Template System |
| |
| - -- -------------------+
| |
| 8.C ....... Menus (*.MNU) |
| 8.C.1 ..... - The Location of Menu Files (<BBSDIR>\MENU) |
| 8.C.2 ..... - Using the Menu Editor |
| 8.C.3 ..... - Menu Editor Hotkey Reference |
| 8.C.4 ..... - Creating Normal Lightbar Menus |
| 8.C.5 ..... - Creating Grid Lightbar Menus |
| 8.C.6 ..... - Stacking Menu Commands |
| |
| - -- -------------------+
| |
| 8.C.7 ..... - AUTOSIGNATURE Menu Commands (Ax) |
| 8.C.8 ..... - BBS LIST Menu Commands (Bx) |
| 8.C.9 ..... - GENERAL Menu Commands (Gx) |
| 8.C.10 .... - VOTING BOOTH Menu Commands (Vx) |
| 8.C.11 .... - TIME BANK Menu Commands (Tx) |
| 8.C.12 .... - FILE BASE Menu Commands (Fx) |
| 8.C.13 .... - FILE BATCH QUEUE Menu Commands (Qx) |
| 8.C.14 .... - MESSAGE BASE Menu Commands (Mx) |
| 8.C.15 .... - MULTINODE Menu Commands (Nx) |
| 8.C.16 .... - OFFLINE MAIL (QWK) Menu Commands (Ox) |
| 8.C.17 .... - DOOR Menu Commands (Dx) |
| 8.C.18 .... - MATRIX Menu Commands (Xx) |
| 8.C.19 .... - SYSOP Menu Commands (*x) |
| 8.C.20 .... - MISCELLANEOUS Menu Commands (-x) |
| |
| - -- -------------------+
| |
| 8.D ....... MPL (Mystic Programming Language) (*.MPS/*.MPE) |
| 8.D.1 ..... - Using the MPL IDE (MIDE) |
| 8.D.2 ..... - Using the MPL COMPILER (MPLC) |
| 8.D.3 ..... - Introduction to MPL |
| 8.D.4 ..... - Sourcecode Comments |
| 8.D.5 ..... - Operation Types and Precedence |
| |
| - -- -------------------+
| |
| 8.D.6 ..... - Defining VARIABLES |
| 8.D.7 ..... - Defining CONSTANTS |
| 8.D.8 ..... - Defining PROCEDURES |
| 8.D.9 ..... - Defining FUNCTIONS |
| |
| - -- -------------------+
| |
| 8.D.10 .... - FOR Loops (FOR/FEND) |
| 8.D.11 .... - REPEAT Loops (REPEAT/UNTIL) |
| 8.D.12 .... - WHILE Loops (WHILE/WEND) |
| 8.D.13 .... - IF Statements (IF/ELSE/ENDIF) |
| |
| - -- -------------------+
| |
| 8.D.14 .... - USES Clause (INCLUDE Files) |
| |
| - -- -------------------+
| |
| 8.D.15 .... - String and Integer Functions |
| 8.D.16 .... - Disk Access Functions |
| 8.D.17 .... - Date and Time Functions |
| 8.D.18 .... - BBS Data Access Functions |
| 8.D.19 .... - Input Functions |
| 8.D.20 .... - Output Functions |
| 8.D.21 .... - Miscellaneous Functions |
| |
+------------------- -- - |
| |
| 9.0 ** TECHNICAL REFERENCE... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 9.1 ....... ACS System |
| 9.2 ....... MCI Display Codes |
| 9.3 ....... MCI Control Codes |
| 9.4 ....... Color Codes |
| 9.5 ....... Menu Editor Hotkeys |
| 9.6 ....... Local SysOp Hotkeys |
| 9.7 ....... Door System MCI Codes |
| 9.8 ....... Archive System MCI Codes |
| 9.9 ....... Protocol System MCI Codes |
| 9.10 ...... ERRORLEVELS returned by Mystic BBS |
| 9.11 ...... Mystic BBS Error Codes |
| 9.12 ...... ANSI.SYS Codes |
| |
+------------------- -- - |
| |
| 10.0 ** ADVANCED TIPS AND TECHNIQUES... |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 10.1 ...... Using AR Flags |
| 10.2 ...... Using the OK Flag |
| 10.3 ...... Creating GLOBAL Menu Commands |
| 10.4 ...... Using Random Display Files |
| 10.5 ...... Configuring File/Message Groups |
| 10.6 ...... Creating a Mandatory Voting Question |
| 10.7 ...... Creating a Mandatory Message Base for Sys. News |
| 10.8 ...... File Upload Testing |
| 10.9 ...... Stuffing the Input Buffer using MPL Scripting |
| 10.10 ..... Removing Pauses from Continuous Display Files |
| 10.11 ..... Using Mass Mail |
| 10.12 ..... Exporting All-Files Listing to HTML |
| 10.13 ..... Importing FILES.BBS Descriptions from CD-ROMs |
| 10.14 ..... Setting up Doors under DOS/OS/2 |
| 10.15 ..... Setting up Doors under Windows |
| 10.16 ..... Setting up Doors under Linux |
| 10.17 ..... Setting up Networked Message Bases (ECHOMAIL) |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| 1.0 ABOUT MYSTIC BBS SOFTWARE |
| |
+---------------------------------------------------------------+
| Section Description |
+---------------------------------------------------------------+
| |
| 1.1 ....... About the Documentation |
| 1.2 ....... Disclaimer |
| 1.3 ....... Minimum System Requirements |
| 1.4 ....... Software Features |
| 1.5 ....... Obtaining Official Mystic BBS Support |
| 1.6 ....... Donating to the Mystic BBS Software Project |
| 1.7 ....... Credits and Greetings |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (1.1) ABOUT THE DOCUMENTATION |
| |
`---------------------------------------------------------------'
Not long ago, one of the problems plaguing Mystic BBS Software
was a
lack of solid, organized, verbose documentation. SysOps used to
have to
rely on each other more than anything in order to get things
done. This
is great, to see a community pulled together in union over a
great BBS
package is something to behold. But now all of our lives are
becoming
easier.
Jumping to Sections
-------------------
For your convenience, I've put all of the ACTUAL section segments
of
the docs in this format:
(a.b.c) TITLE
Document Conventions
--------------------
Text in Uppercase
-----------------
Example: C:\MYSTIC\MYSTIC -L
Text in Braces
--------------
Example: See section {1.0}
Text in Greater/Less-Than
-------------------------
Section Headings
----------------
.------------------------------------------------
---.
|
|
| (A) SECTION TITLE
|
|
|
+------------------------------------------------
---+
|
|
| A.B ....... SUB-SECTION TITLE
|
| A.B.C .... SUB-SECTION PART 1
|
| A.B.D ..... SUB-SECTION PART 2
|
|
|
`------------------------------------------------
---'
A = Section B = Section Part C = Sub-
section
Sub-Section Headings
--------------------
=====================================================
-------------------------------------------------
----
A = Section B = Section Part C = Sub-
section
A = Section B = Section Part C = Sub-
section
Content Headings
----------------
Content Heading
---------------
Contents here.
Screen Captures
---------------
=======================================================
Authors Pledge
--------------
- HTML
http://www.sector7bbs.com/mysticdocs/mdocs_htm.zip
- LIVE HTML
http://www.sector7bbs.com/mysticdocs
Thanks Alot
-----------
.---------------------------------------------------------------.
| |
| (1.2) DISCLAIMER |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (1.3) MINIMUM SYSTEM REQUIREMENTS |
| |
`---------------------------------------------------------------'
The computer system which you intend to run your Bulletin Board
System
on must meet or exceed the following requirements.
Note: Mystic may also run under Windows 3.1 with Win32
installed,
as well as OS/2 with Win32 support, but it has not been
tested.
.---------------------------------------------------------------.
| |
| (1.4) SOFTWARE FEATURES |
| |
`---------------------------------------------------------------'
Features
--------
.---------------------------------------------------------------.
| |
| (1.5) OBTAINING OFFICIAL SUPPORT |
| |
`---------------------------------------------------------------'
Official Support
----------------
Support for Mystic BBS can be found all over the internet! Below
is a
list of internet support sites:
- Electronic Mail
* g00r00@ptd.net
A Note on Donations
-------------------
Credit card donations can be made online via the PayPal service.
PayPal
offers secure transactions over the Internet and accepts both
Visa and
Mastercard. Please follow the link below to use this service:
Hardware Donations
------------------
If you have any old hardware lying around, you can email us and
see if
we could use it. Thanks!
.---------------------------------------------------------------.
| |
| (1.7) CREDITS AND GREETINGS |
| |
`---------------------------------------------------------------'
Credits
-------
This section gives some credit to some of the people who have
helped
make Mystic BBS what it is today. So check it out...
- Mark May
* Wrote a Pascal message base library which I've modded and
used
within Mystic BBS, starting with v1.03. In the near
future I
will be doing a total rewrite from scratch, but for quick
Squish support, his library works fairly well. (so far)
:)
- Sonic
* Donated so much to the developement of Mystic BBS. If it
wasn't
for him, we wouldn't have any 32-bit versions of Mystic.
- QueTwo
* Registered mysticbbs.com for the convience of all of us!
I
appreciate it GREATLY Que! Thank you!
Donators
--------
.---------------------------------------------------------------.
| |
| 2.0 MYSTIC BBS SOFTWARE SYSOP RESOURCES |
| |
+---------------------------------------------------------------+
| |
| Note: This information is somewhat redundant, but has been |
| including for the sake of consistency with the other |
| formats of the documentation. Obviously you can't |
| follow any internet links from a text file, so I've |
| instead listed all of the appropriate URLs next to |
| each item as needed. |
| |
| My apologies for being anal retentive about this. |
| - grymmjack |
| |
`---------------------------------------------------------------'
- Mystic Development
* http://www.mysticbbs.com
- SysOps Corner
* http://sysopscorner.thebbs.org
- BBS Central
* http://bbscentral.kracked.com
- alt.bbs.mystic
- alt.bbs.sysop
.---------------------------------------------------------------.
| |
| 3.0 INSTALLATION |
| |
+---------------------------------------------------------------+
| |
| 3.1 ....... DOS |
| 3.2 ....... OS/2 |
| 3.3 ....... Windows |
| 3.4 ....... Linux (telnetd) |
| 3.5 ....... Configuring your Modem |
| 3.6 ....... Configuring the Mystic BBS Telnet Server (WIN) |
| 3.7 ....... Configuring a Fossil Driver (BNU/X00/ADF) |
| 3.8 ....... Configuring a Virtual Fossil (NETMODEM/COMIP) |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (3.1) DOS |
| |
`---------------------------------------------------------------'
Post Installation
-----------------
Now that you've installed Mystic BBS to your hard disk, you can
start
using it. For further installation and configuration
documentation see
sections {3.5 - 3.8}.
.---------------------------------------------------------------.
| |
| (3.2) OS/2 |
| |
`---------------------------------------------------------------'
* TIP: Change the first path and the rest will be updated like
magic!
Post Installation
-----------------
To make your life easier, you can create shortcuts to Mystic BBS
on
your OS/2 desktop. Consult the OS/2 documentation on how this is
done.
ftp://archives.thebbs.org/fossil_drivers/sio160d.zip
The below settings should get you up and going with SIO:
- SIO_Idle_Sensitivity [100]
- _Mode_DTR [No change..]
- _Mode_FIFO_Load_Count [16]
- _Mode_IDSR [Ignore..]
- _Mode_OCTS [..RTS/CTS or Ignore/None]
- _Mode_ODSR [..DTR/DSR or Ignore/None]
- _Mode_RTS [No change..]
- _Mode_XON/XOFF [No XON/XOFF..]
- _Sync_Kludge [Off]
- _Share_Access_With_OS/2 [Off]
- _Virtual* [On]
.---------------------------------------------------------------.
| |
| (3.3) WINDOWS |
| |
`---------------------------------------------------------------'
Note: On Windows NT/2000/XP systems make sure that you are logged
in
as a user that will have access to the directory you intend
to
install the software in.
* TIP: Change the first path and the rest will be updated like
magic!
Post Installation
-----------------
Now that you've installed Mystic BBS to your hard disk, you can
start
using it. For further installation and configuration
documentation see
sections {3.5 - 3.8}.
.---------------------------------------------------------------.
| |
| (3.4) LINUX |
| |
`---------------------------------------------------------------'
* TIP: Change the first path and the rest will be updated like
magic!
10. Once you are satisfied with your path configuration, press
[F2] to
begin the file installation portion of INSTALL.
Post Installation
-----------------
Now that you've installed Mystic BBS to your hard disk, you need
to
work some other magic...
A. Many people will notice that their Linux box will not display
ANSI
and the ANSI character set correctly. The Mystic installation
program will automatically set Linux to use this character
set, but
after the system is rebooted or another program changes this
setting
it will be back to the way it was.
The easiest way to set Linux to use the USA/ANSI character set
is to
issue this command in the shell:
echo -e "\033(U"
You can add that to your bootup sequence if you wish, or just
manually issue it when you want it.
Note that Mystic sets Linux into RAW terminal mode while it's
running. This means that even if ANSI isn't displayed
correctly on
your local system, remote users can still see the ANSI as they
should - as long as their terminal supports ANSI emulation.
bbs:!%343t1a:1004:200:bbs:/users/bbs:/bin/sh
loginname:password:usernumber:usergroup:username:homedir:shell
bbs::1004:200:bbs:/mystic:/mystic
Also note that when Mass Uploading any files into the BBS, you
will
probably need to chown them so they belong to the BBS user. If
Mystic cannot access the file when a user tries to download
it, it
will not be sent.
telnet 23/tcp
telnet 23/udp
telnetbd 2000/tcp
telnetbd 2000/udp
#!/bin/sh
echo -e "\033(U"
TERM=linux login -f bbs
touch .hushlogin
Now that you've installed Mystic BBS properly, you can start
using it.
For further installation and configuration documentation see
these
Linux specific sections, as well as the rest of the documentation
as
you need it :) (so what, favoritism never hurt anyone..)
.---------------------------------------------------------------.
| |
| (3.5) CONFIGURING YOUR MODEM |
| |
`---------------------------------------------------------------'
- Internal Configuration
* This method involves invoking Mystic LOCALLY to
get
to the W.F.C. (Wait For Calls) screen, and can
be
achieved by using this command from the
directory
you installed Mystic in:
DOS/Windows/OS2: runbbs -L
Linux: ./mystic -l
Note: For a complete listing of Command Line
Switches
see section {4.5}
- External Configuration
* This method involves running the Mystic
configuration
utility bundled with the package (MCFG), and
can be
achieved by using this command from the
directory you
installed Mystic in:
- Press S
From MCFG:
- Press [ENTER]
====================================================================
Node 1 Settings
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (3.6) CONFIGURING THE MYSTIC BBS TELNET SERVER (TSERVER) |
| |
`---------------------------------------------------------------'
- Internal Configuration
* This method involves invoking Mystic LOCALLY to
get
to the W.F.C. (Wait For Calls) screen, and can
be
achieved by using this command from the
directory
you installed Mystic in:
DOS/Windows/OS2: runbbs -L
Linux: ./mystic -l
- External Configuration
* This method involves running the Mystic
configuration
utility bundled with the package (MCFG), and
can be
achieved by using this command from the
directory you
installed Mystic in:
- Press S
- Press Q to quit
From MCFG:
- Press [ENTER]
Examples:
204.186.*.*
24.67.213.*
24.13.48.22
<#><#><#|*>.<#><#><#|*>.<#><#><#|*>.<#><#><#|*>
More Examples:
When you're done adding all your enemies and people you hate to
this
list, save the file. TSERVER will now ignore incoming connections
on
all of the IPs matching the masks and full entries in IPBLOCK.TXT
.---------------------------------------------------------------.
| |
| (3.7) CONFIGURING A FOSSIL DRIVER (X00/BNU/ADF/ETC) |
| |
`---------------------------------------------------------------'
Fossil drivers do the dirty I/O work in between Mystic BBS and
your
modem. They allow Mystic to take advantage of a single set of
routines
for all modems instead of 4,000 routines one for each modem.
Basically
that's the purpose of fossil drivers. Fossil drivers are
necessary
components of running a BBS under Mystic using analog modems.
Write down all the comport IRQs, and the comports I/O addresses.
That's
all you need, assuming you know WHICH comport your modem is
using. To
figure this out, open the case or follow the cable. :)
BNU
---
For further BNU usage, run BNU /H from the directory it's
installed to.
ftp://archives.thebbs.org/fossil_drivers/bnu170.zip
X00
---
ftp://archives.thebbs.org/fossil_drivers/x00153a.zip
ADF
---
ADF is yet another fossil driver. I've not used this, but it
looks easy
and I've heard of many people having great success with this
fossil.
ADF unload
Which would unload the TSR program and allow you to reload
it
clean when another user calls.
Example:
[RUNBBS.BAT]
@echo off
cls
echo Loading ADF Fossil Driver...
CD\MYSTIC\ADF
ADF 1 3F8 115200 4096 4096
mystic %1 %2 %3 %4
ADF unload
ftp://archives.thebbs.org/fossil_drivers/adf_150.zip
.---------------------------------------------------------------.
| |
| (3.8) CONFIGURING A VIRTUAL FOSSIL (NETMODEM/COMIP) |
| |
`---------------------------------------------------------------'
Virtual fossil drivers are a more evolved fossil driver than even
their
ancestors BNU/X00/ADF, etc. These fossil drivers go a step
further as
they use Windows VxDs (virtual device drivers) to capture and
process
hardware signals to and from emulated comports. These drivers are
so
efficient that the software treats the emulated virtual port just
as it
would a real hardware comport. Sick, eh?
The Windows version of Mystic BBS does not work with some virtual
fossil drivers. Obviously the Linux version does not work at all
with
any of them because it's an entirely different platform. OS/2 has
a
fossil driver written by the guy who makes x00 (Ray Gwinn) called
SIO,
that comes packaged with virtual fossil support. This file is
available
from the PC Micro BBS Archives at:
ftp://archives.thebbs.org/fossil_drivers/sio160d.zip
NetModem/32
-----------
Okay, moving along. You can figure out how to set NetModem/32 up
for
yourself -- it's pretty easy, but it doesn't work half the time
and it
crashes incessantly. Aside from that, it's the bees knees kid!
http://www.allensoftware.com/download.html
http://members.darktech.org/mystic/netmodem.htm
It should be noted that his piece of shit software does not work
under
real operating systems like NT/2000/XP..
COM/IP
------
http://members.darktech.org/mystic/comip.htm
SYNCFOSS
--------
http://www.elebbs.com/files/fos_200.zip
.---------------------------------------------------------------.
| |
| 4.0 STARTING MYSTIC BBS |
| |
+---------------------------------------------------------------+
| |
| 4.1 ....... DOS |
| 4.2 ....... OS/2 |
| 4.3 ....... Windows |
| 4.4 ....... Linux |
| 4.5 ....... Command Line Switches |
| 4.6 ....... ERRORLEVELS returned by Mystic BBS |
| 4.7 ....... Mystic BBS Error Codes |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (4.1) DOS |
| |
`---------------------------------------------------------------'
Note: You may want to read about the various command line
switches Mystic BBS supports. See section 4.5 for
more
details on this topic.
Line #9 :quit
I will walk you through what each line of this file does, for
those of
you who don't know much about batch files.
%1 = -n5 %2 = -b0 %3 = -l
Line 6 : If you [Q]uit from the WFC Mystic will exit and return
an
ERRORLEVEL of 255. ERRORLEVELs are a way batchfiles and
other
executables can interface with programs. So when we
[Q]uit
from the WFC Screen, we want to exit and not keep
restarting
the BBS, so the "goto quit" part lets us do just that.
As you
can see the label :quit is the last line in the file,
and
thus when we "goto" it, execution stops and we are
returned
to the DOS prompt.
.---------------------------------------------------------------.
| |
| (4.2) OS/2 |
| |
`---------------------------------------------------------------'
Depending on how you choose to run Mystic BBS under OS/2 the
details on
starting Mystic BBS vary. Below is an example that uses the WFC
Screen
to answer incoming calls. The syntax follows:
MYSTIC -N<node>
You should refer to the DOS instructions for Starting Mystic BBS
in
section {4.1} to learn how to start Mystic from a BATCH file.
.---------------------------------------------------------------.
| |
| (4.3) Windows |
| |
`---------------------------------------------------------------'
You can start Mystic BBS from Windows in several ways. They are
outlined below:
2. Now open the Start Menu again, and right click on the
short-
-cut you just created and choose Properties. Change
the
command line to be: MYSTIC.EXE -N<node> where <node>
is a
valid pre-configured Mystic node. Change the working
dir. to
the directory you installed Mystic BBS into.
.---------------------------------------------------------------.
| |
| (4.4) Linux |
| |
`---------------------------------------------------------------'
If you are using Linux telnet server, you will not be able to see
any
of the activity in the Mystic session without using ttysnoop.
However,
you can manually start Mystic yourself using the following
commands:
Monitoring activity
-------------------
Mystic BBS for Linux has no way to see what the user is doing.
All the
Mystic processes are seen only by the connecting user. There is a
way
to spy on the user by employing ttysnoop, but personally, I've
never
had a need for it. Instead this is what I did:
tail -f sysop.*
This will follow all the logs for all nodes as they
are
changed and updated, in real-time.
.---------------------------------------------------------------.
| |
| (4.5) COMMAND LINE SWITCHES |
| |
`---------------------------------------------------------------'
There are many command line options which can be used when
executing
Mystic BBS. For example, when starting Mystic for the first time,
the
option "-L" should be added on the command line. This will tell
Mystic
to run in "local" mode, meaning it will not try to communicate
with the
modem. This will need to be done in order to enter the Modem
Configuration and set up your modem properly.
-Bx This option is used to tell Mystic BBS that a user has
already
been connected through other software. When this command
is
passed, Mystic BBS will skip the Waiting For Call screen
and go
directly to the user login procedures. The x is replaced
with
the baud rate which the user is connected at. This
command line
is normally used if you are running a mailer frontend, or
running Mystic BBS as a door from some other software.
.---------------------------------------------------------------.
| |
| (4.6) ERRORLEVELS RETURNED BY MYSTIC BBS |
| |
`---------------------------------------------------------------'
ERRORLEVELS Listing
-------------------
0 Normal Exit
1 Critical Error
5 New FidoNet mail has been entered
6 New UseNet (newsgroup) mail has been entered
7 Both FidoNet and UseNet mail have been entered
255 [Q]uit command was issued from the WFC Screen
.---------------------------------------------------------------.
| |
| (4.7) MYSTIC BBS ERROR CODES |
| |
`---------------------------------------------------------------'
Mystic BBS has several run-time error codes which can assist you
in
figuring out why something went wrong. If an error happens while
Mystic
BBS is running, it will return one of these codes in an error
message
to the user and then terminate the call. In the sysop log file
the
error code will be logged. Below is a list of what each of those
error
codes mean.
.---------------------------------------------------------------.
| |
| 5.0 WAITING FOR CALLS |
| |
+---------------------------------------------------------------+
| |
| 5.1 ....... Wait For Calls Mode (W.F.C.) |
| 5.2 ....... Mystic BBS Telnet Server (WIN32 Version ONLY!) |
| 5.3 ....... Linux (telnetd) |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (5.1) WAIT FOR CALLS MODE (W.F.C.) |
| |
`---------------------------------------------------------------'
When Mystic BBS is executed, the first thing you will see is the
Waiting for Call Screen (WFC Screen) This screen will give you
access
to all of the configuration options of your BBS, as well as
answer any
incoming phone calls to your BBS.
Tip: You can customize the way the WFC Screen looks! See
the
WFC Screen Template section {8.B.42} for more
information.
.---------------------------------------------------------------.
| |
| (5.2) MYSTIC BBS TELNET SERVER |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (5.3) LINUX |
| |
`---------------------------------------------------------------'
Linux is a special case. Linux uses telnetd to listen for
incoming
telnet connections. To set this up see section {3.4}.
.---------------------------------------------------------------.
| |
| 6.0 SYSTEM CONFIGURATION |
| |
+---------------------------------------------------------------+
| |
| 6.1 ....... The External Mystic BBS Config Utility (MCFG) |
| 6.2 ....... The Internal Mystic BBS Config Utility (WFC/SOP)|
| 6.2.A ..... - System Paths |
| 6.2.B ..... - Modem/Node Settings |
| 6.2.C ..... - General Settings |
| 6.2.D ..... - File Base Settings |
| 6.2.E ..... - Message Base Settings |
| 6.2.F ..... - Network Settings (ECHOMAIL) |
| 6.2.G ..... - Language Definition Editor |
| 6.2.H ..... - New User Settings 1 |
| 6.2.I ..... - New User Settings 2 |
| 6.2.J ..... - User Editor |
| 6.2.K ..... - Group Editor |
| 6.2.L ..... - Security Levels Editor |
| 6.2.M ..... - Event Editor |
| 6.2.N ..... - Archive Editor |
| 6.2.O ..... - Protocol Editor |
| 6.2.P ..... - Voting Booth Editor |
| 6.2.Q ..... - Message Base Editor |
| 6.2.R ..... - File Base Editor |
| 6.2.S ..... - Menu Editor |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (6.1) THE EXTERNAL MYSTIC BBS CONFIG UTILITY (MCFG) |
| |
`---------------------------------------------------------------'
Starting MCFG
-------------
MCFG has several command line switches that you can use to jump
to
specific portions of the program. They are not prefixed with any
"/"
or "-" character, and are case insensitive. They are:
Example: MCFG MENUEDIT would start MCFG in the Menu Editor, and
upon
exiting would exit or return you to the shell.
Using MCFG
----------
When using the different parts of MCFG itself, use [UP], [DOWN],
[LEFT]
[RIGHT], [HOME], [END], [PAGEUP], [PAGEDOWN], and [ENTER] to
navigate
between the different fields. Note the bottom row contains a
status bar
which may have more hotkeys available in any of the parts.
====================================================================
╒ Main Menu ══════════════════════════════╕
│ System Configuration │
│ Message Base Editor │
│ Message Group Editor │
│ File Base Manager │
│ File Group Editor │
│ Node Configuration │
│ Security Level Editor │
│ User Editor │
│ Menu Editor │
│ Language Editor │
│ Event Editor │
│ Archive Editor │
│ Node Manager │
│ Exit │
│ │
╘═════════════════════════════════════════╛
====================================================================
.---------------------------------------------------------------.
| |
| (6.2) THE INTERNAL MYSTIC BBS CONFIG UTILITY (WFC/SOP) |
| |
`---------------------------------------------------------------'
System Configuration
A. System Paths
B. Modem/Node Settings
C. General Settings
D. File Area Settings
E. Message Area Settings
F. Network Settings
G. Language Editor
H. New User Settings 1
I. New User Settings 2
Command (Q/Quit):
.---------------------------------------------------------------.
| |
| (6.2.A) SYSTEM PATHS |
| |
`---------------------------------------------------------------'
The system paths option will allow you to setup and change the
directories that Mystic BBS will use to store and process it's
data
files. These paths are setup initially by the installation
program and
in most cases they don't need to be changed. The following
options are
available in the System Paths setup:
====================================================================
System Paths
Command (Q/Quit):
====================================================================
In this example, all the paths except the System Path are
relative.
The relative paths are relative to the System Path itself, so
they
translate to be:
Under linux, you will want to use something like this instead:
The benefit of using relative paths means you only have to worry
about
a single path (the System Path) for your entire BBS. You could
then
easily create a working backup copy of your entire system by
copying
the install directory to C:\MYSTIC2, and change the System Path
to
C:\MYSTIC2, and everything else would work perfectly fine through
the
relative pathing inheritance. Explicit pathing is the default,
but for
advanced users, you will definitely appreciate relative paths. No
only
are the main path configuration items relative, but ALL of Mystic
BBS
can work in either explicit or relative pathing mode. Neat huh?
=]
.---------------------------------------------------------------.
| |
| (6.2.B) MODEM/NODE SETTINGS |
| |
`---------------------------------------------------------------'
====================================================================
Node 1 Settings
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.C) GENERAL SETTINGS |
| |
`---------------------------------------------------------------'
====================================================================
General Settings
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.D) FILE BASE SETTINGS |
| |
`---------------------------------------------------------------'
====================================================================
File Settings
Command (Q/Quit):
====================================================================
%1 = Modem ComPort
%2 = Modem Baud Rate
%3 = Path and File Name of file to be tested
.---------------------------------------------------------------.
| |
| (6.2.E) MESSAGE BASE SETTINGS |
| |
`---------------------------------------------------------------'
The message bases are the heart and soul of any BBS. Mystic BBS
offers
a unique and elegant approach to system messaging. There are
several
options in the message base settings screen that are very similar
to
the file area settings {6.2.D}. This is no mistake, as the
interfaces
to use messages are very similar to the interface in the file
system.
This is a good way to do things, because the user feels enabled
to use
the system more quickly. The configuration for each message base
can be
set using the Message Base Editor {6.2.Q}, however the settings
in the
Message Base Settings screen govern all message bases on your
board.
====================================================================
Message Base Settings
A. Compress Area Numbers: Yes
B. Message Area List Col: 2
C. Max Auto Sig Lines : 5
D. Redisplay msg header : Yes
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.F) NETWORK SETTINGS (ECHOMAIL) |
| |
`---------------------------------------------------------------'
====================================================================
Network Settings
1. 0:0/0 2. 0:0/0
3. 0:0/0 4. 0:0/0
5. 0:0/0 6. 0:0/0
7. 0:0/0 8. 0:0/0
9. 0:0/0 10. 0:0/0
11. 0:0/0 12. 0:0/0
13. 0:0/0 14. 0:0/0
15. 0:0/0 16. 0:0/0
17. 0:0/0 18. 0:0/0
19. 0:0/0 20. 0:0/0
B. Netmail Crash : No
C. Netmail Hold : No
D. Netmail Kill : No
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.G) LANGUAGE DEFINITION EDITOR |
| |
`---------------------------------------------------------------'
====================================================================
Language Editor
## FileName Description
-- -------- ------------------------------
1 DEFAULT Default
====================================================================
Note: Since you may have more than one language defined, Mystic
BBS
will ask you which language you wish to edit.
====================================================================
Language 1 of 2
A. Description: S7
B. Filename : S7
C. Text Path : C:\S7BBS\S7-TEXT\
D. Menu Path : C:\S7BBS\S7-MENU\
M. Allow ASCII: Yes
N. Allow ANSI : Yes
Command (Q/Quit):
====================================================================
[A] Description
---------------
This option holds the description of the language file.
The
description is what the user will see when they are
prompted
to select a language file.
Foreground colors:
0 - Black 6 - Brown 12 - Light Red
1 - Blue 7 - Light Grey 13 - Light
Magenta
2 - Green 8 - Dark Grey 14 - Yellow
3 - Cyan 9 - Light Blue 15 - White
4 - Red 10 - Light Green
5 - Magenta 11 - Light Cyan
Background colors:
0 - Black 4 - Red
1 - Blue 5 - Magenta
2 - Green 6 - Brown
3 - Cyan 7 - Gray
Ascii 32 ( )
Ascii 250 ()
Ascii 176 (░)
.---------------------------------------------------------------.
| |
| (6.2.H) NEW USER SETTINGS 1 |
| |
`---------------------------------------------------------------'
The New User Settings 1 section is used to define how Mystic BBS
will
handle new callers who wish to create an account with the BBS.
The
following is a screen capture of the New User Settings 1 screen
followed by an explanation of what each option does:
====================================================================
New User Settings 1
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.I) NEW USER SETTINGS 2 |
| |
`---------------------------------------------------------------'
The New User Settings 2 section is used to define how Mystic BBS
will
handle new callers who wish to create an account with the BBS.
The
following is a screen capture of the New User Settings 2 screen
followed by an explanation of what each option does:
====================================================================
New User Settings 2
Command (Q/Quit):
====================================================================
[A] Ask Alias
-------------
If this option is set to Yes, Mystic BBS will ask new
users for
an Alias.
This option defines how the BBS will quote messages when
in the
message editor. Valid options are:
.---------------------------------------------------------------.
| |
| (6.2.J) USER EDITOR |
| |
`---------------------------------------------------------------'
The Mystic BBS User Editor allows you to edit all of the user
accounts
on your system. There are three methods for entering the user
editor;
- From MCFG
* Select the User Editor option and press [ENTER]
====================================================================
User Editor: 1 of 1 (Idx: 1)
A. Alias grymmjack V. Start Menu
PRELOGIN
B. Real Name W. Language S7
C. Address X. Hot Keys
Yes
D. City Y. Date Type
MM/DD/YY
E. Zip Code Z. FList Type
Lightbar
F. Birthdate 07/22/74 - Age 27 1. Msg Editor
Full
G. Gender M 2. Msg Quote
Lightbar
H. Home Phone 3. Msg Reader
Lightbar
I. Data Phone 4. Index No
J. E-mail grymmjack@sector7bbs.com 5. Mail Index No
K. Affils mystic/demonic/warlock 6. Time Left
1439
L. BBS sector7bbs.com 7. Time Bank
9999
N. Homepage http://www.sector7bbs.com/grymmj8. Screen Size 24
O. User Note ■ sysop !. Ignore LC
Yes
P. Security 255 Locked out No
R. Password GOOBER Deleted No
S. Flags #1 -------------------------- No Delete
Yes
T. Flags #2 -------------------------- No Ratios
Yes
====================================================================
To navigate within the user editor, use the hotkeys on the bottom
line
of the screen. These options are defined below:
[[] Prev
--------
Will begin editing the previous user account. If you are
currently editing record #1, you will be taken to the
last
record in the user file.
[]] Next
--------
Will begin editing the next user account in sequence. If
you
are currently editing the last record, you will be taken
to the
first record in the user file.
[U] Upgrade
-----------
Invoking this option will allow you to upgrade a users
security
level. Valid security levels are 0-255. For more
information on
security levels see section {6.2.L}
[*] Search
----------
This option will allow you to search for a user by alias
or
real name. Enter the part of the user name that you
remember,
and press enter. If all goes well, you will be taken to
the
account you're looking for.
[M] More
--------
This will show you another page in the account editor.
Below is
a screen capture of what this looks like:
====================================================================
User Editor: 1 of 1 (Idx: 1)
(Q)uit:
====================================================================
[1-3]
-----
Each part of the rest of the users account can
also be
edited. You see that under each (#) there are
several
fields. To begin editing parts of those fields,
press
the number above the corresponding fields. To get
to
different places in the same column of fields and
keep
the settings what they already are, press [ENTER]
until
you reach the desired field.
[A] Alias
---------
This is the users alias. Aliases are used to maintain
anonymity
and are highly recommended. The maximum length a users
alias
can be is 30 characters. It can contain any valid ascii
character. Spaces in a user name are a special case, and
in
some sections of the BBS you will be required to replace
the
spaces with the underscore character.
[C] Address
-----------
This is the users street address. The maximum length of a
users
street address is 30 characters.
[D] City
--------
This is the users city. The maximum length of a users
city is
25 characters.
[F] Birthdate
-------------
This is the users birthday. The format is ##/##/## and
the age
of the user is automatically calculated for you.
[G] Gender
----------
This is the users gender. Valid values are M and F.
[J] E-Mail
----------
This is the users e-mail address. The maximum length of
the
users email address is 35 characters.
[K] Option 1
------------
This is the users answer to system configured question
option
#1. The maximum length of this field is 35 characters.
You may
change the label of this field as it is shown in the user
editor using the New User Settings 2 configuration
{6.2.I}
[L] Option 2
------------
This is the users answer to system configured question
option
#2. The maximum length of this field is 35 characters.
You may
change the label of this field as it is shown in the user
editor using the New User Settings 2 configuration
{6.2.I}
[N] Option 3
------------
This is the users answer to system configured question
option
#3. The maximum length of this field is 35 characters.
You may
change the label of this field as it is shown in the user
editor using the New User Settings 2 configuration
{6.2.I}
[P] Security
------------
This is the users security level. You may define up to
255 user
security levels using the security level editor {6.2.L}
[R] Password
------------
This is the users password. The password is forced to be
all
uppercase, and can contain any readable ascii character
including spaces. The maximum length of the users
password is
15 characters.
[S] Flags #1
------------
These are the users AR Flags #1 set. The AR flags are
simple
binary switches (toggles) which can be used anywhere on
the BBS
through the ACS system. By default there are no flags
defined,
but you have the ability to do with them what you will.
There
are a total of 26 in set #1 and they are A-Z. To toggle a
flag
on or off, press the letter [A]-[Z]. When you are
finished
changing the flags, press [ENTER]. For more information
on
using AR flags see section {10.1}. For more information
on the
ACS system see section {9.1}.
[T] Flags #2
------------
These are the users AR Flags #2 set. The AR flags are
simple
binary switches (toggles) which can be used anywhere on
the BBS
through the ACS system. By default there are no flags
defined,
but you have the ability to do with them what you will.
There
are a total of 26 in set #1 and they are A-Z. To toggle a
flag
on or off, press the letter [A]-[Z]. When you are
finished
changing the flags, press [ENTER]. For more information
on
using AR flags see section {10.1}. For more information
on the
ACS system see section {9.1}.
[W] Language
------------
This option specifies the users language file. This
option is
inherited through system configuration of the new users
default
language file, but can be changed to any valid language.
[4] Index
---------
This option determines if the user starts reading
messages at
the message index, or directly to the messages
themselves. The
available options are Yes and No. When this option is set
to
Yes, the user will start at the message index before
actually
reading any messages.
.---------------------------------------------------------------.
| |
| (6.2.K) GROUP EDITOR |
| |
`---------------------------------------------------------------'
Mystic BBS allows you to create groups of message and file areas
for
purposes of organization and separation. This is known commonly
in
other softwares like renegade as conferences. The group editor
will
allow you to edit groups for file and message areas on your
board. For
more information on setting up message and file groups see
section
{10.5}
Before you being editing groups, Mystic BBS prompts you which
type you
would like to edit, [M]essage, or [F]ile. Choose the
corresponding
hotkey for the type you wish to edit.
====================================================================
Message Group Editor
### Name
--- ------------------------------
1 local
====================================================================
[I] Insert
----------
This will allow you to insert a group. Mystic will ask
prompt
you with where you would like to insert the group, and
list
valid responses to this question. Choose one of them, and
Mystic BBS creates a new blank group for you which you
can
then [E]dit.
[D] Delete
----------
This will delete a group. Choose the number you wish to
delete
and it's zapped out of the groups database.
[E] Edit
--------
This will allow you to edit a group. Choose the number
you wish
to edit after pressing [E] and you will be taken to the
screen
as shown below:
====================================================================
Group 1 of 1
A. Name : local
B. ACS :
Command (Q/Quit):
====================================================================
[A] Name
--------
This is the name of the group as it appears to the users
via
the MCI codes used for showing the group names. It can
contain
color codes. The maximum length a group name can be is 30
characters. For more information on MCI codes see section
{9.2}
[B] ACS
-------
This is the ACS required by users to join the group. It
can be
any ACS combination valid to the ACS system, but is
typically
a simple s### where ### is the security level required.
This is
a handy feature because you can then just setup the bases
to be
included in this group without worrying about ACS
settings for
each base individually. For more information on ACS see
section
{9.1} If this setting is left blank, then there will be
no ACS
requirements for the group.
.---------------------------------------------------------------.
| |
| (6.2.L) SECURITY LEVELS EDITOR |
| |
`---------------------------------------------------------------'
====================================================================
Security Level 1 of 255
A. Description : ■ blacklisted
B. Time allowed/day : 0
C. Max calls/day : 0
D. Max downloads/day : 0
E. Max download K/day : 0
F. Max mins in time bank: 0
G. UL/DL ratio : Disabled
H. UL/DL Kb ratio : Disabled
I. Post / Call Ratio : Disabled
M. Hard AF Upgrade : No
N. Start Menu : STARTBL
====================================================================
[A] Description
---------------
This is a reference so you can keep track of what this
level is
setup to be intended for. In the example above, I've set
mine
to "■ blacklisted" because SL1 on my system is for users
who I
no longer wish to be a part of my BBS and are hence
assigned to
this level and are blacklisted.
For example:
[SL10]
Flags1: A-C-----------------------
Hard AF Upgrade: No
[SL20]
Flags1: -B------------------------
Hard AF Upgrade: No
[SL30]
Flags1: ABCD----------------------
Hard AF Upgrade: Yes
[SL250]
Flags1: ---D----------------------
Hard AF Upgrade: Yes
SL: 10
Flags1: A-C-----------------------
SL: 20
Flags1: ABC-----------------------
SL: 250
Flags: ---D-----------------------
.---------------------------------------------------------------.
| |
| (6.2.M) EVENT EDITOR |
| |
`---------------------------------------------------------------'
The event editor is where all system events are setup. A system
event
is when Mystic BBS exits at a specified time so external programs
can
be ran to help maintain the BBS. The following is a screen
capture of
the Event Editor screen followed by an explanation of what each
option
does:
====================================================================
Event Editor
### Name
--- ------------------------------ -----
-1 New Event 00:00
====================================================================
====================================================================
Event 1 of 1
!. Active : No
A. Description : New Event
B. Forced : No
C. Errorlevel : 0
D. Execution Time : 00:00
E. Busy Warning : 0
F. Last Ran on : 00/00/80
G. Offhook Modem : No
H. Node Number : All
Command (Q/Quit):
====================================================================
[A] Description
---------------
This option sets the description of the event. This isn't
internally used by Mystic BBS but is added to help keep
track
of which event does what.
[B] Forced
----------
This option specifies if the event is a forced event. A
forced
event will run at the execution time no matter what the
circumstances are. If a user is online when a forced
event
approaches, they will be warned and then the call will be
terminated if they do not log off by the execution time.
If the
event is not a forced event, Mystic BBS will wait until
the
user terminates their call before running the event.
[C] Errorlevel
--------------
This option specifies the Errorlevel that Mystic BBS will
exit
at when this event is being ran. This is used by the
batch file
or shell script which runs the BBS to determine which
event is
running. For more information on Errorlevels and batch
files,
see the instruction manual for your operating system or
command
shell and section {9.10}
====================================================================
Archive Editor
====================================================================
====================================================================
Archive 1 of 4
Command (Q/Quit):
====================================================================
.---------------------------------------------------------------.
| |
| (6.2.O) PROTOCOL EDITOR |
| |
`---------------------------------------------------------------'
====================================================================
Protocol Editor
## Key Description
-- --- --------------------
1 X (CEXYZ) Xmodem
2 Y (CEXYZ) Ymodem
3 Y (CEXYZ) Ymodem Batch
4 G (CEXYZ) Ymodem-G
5 G (CEXYZ) Ymodem-G Batch
6 Z (CEXYZ) Zmodem
7 Z (CEXYZ) Zmodem Batch
====================================================================
Protocol 6 of 7
A. Key : Z
B. Description: (CEXYZ) Zmodem
C. Batch : No
D. UL Command : cexyz.exe /P%1 /B%2 /L%4 /Rz %3
E. DL Command : cexyz.exe /P%1 /B%2 /L%4 /Sz %3
Command (Q/Quit):
====================================================================
[A] Key
-------
This option specifies the hotkey which is used to select
this
protocol from the protocol list. It is important to make
sure
that a protocol definition does not use the same hotkey
as
another protocol definition, or problems may occur.
[B] Description
---------------
This option defines the name / description of the
protocol as
it will appear when a user is prompted to select a
protocol.
[C] Batch
---------
This option defines if this protocol is a batch protocol.
A
batch protocol is a protocol which allows a group of
files
to be sent at one time, consecutively. If a user has
flagged a
list of files to download at one time, Mystic BBS will
prompt
them to select a BATCH protocol. If a user has selected
only
one file to download, Mystic BBS will prompt the user to
select
a non-batch protocol. Note that some protocols allow both
single and batch file transfers, so there might be two
definitions on the protocol editor for one protocol. One
being
the setup for single file transfers, and one being the
setup
for batch file transfers.
.---------------------------------------------------------------.
| |
| (6.2.P) VOTING BOOTH EDITOR |
| |
`---------------------------------------------------------------'
The Voting Booth Editor is where all questions and answers for
the
built in Voting Booth are setup. The Voting Booth option can
allow up
to 20 voting questions, and 15 answers per question to be
defined. The
following is a screen capture of the Voting Booth screen followed
by an
explanation of what each option does:
====================================================================
Voting Booth Editor
## Question
-- ---------------------------------------
1 New Question
====================================================================
====================================================================
Question 1 of 1
## Answer ## Answer
-- --------------------------- -- ---------------------------
01 New Answer 02 Another New Answer
====================================================================
[A] Question
------------
This option defines the question text as it will appear
to the
user who is voting on the question.
[B] Votes
---------
This option defines the total number of votes which have
been
placed for this question. Note: Mystic BBS internally
keeps
track of this and in most cases this options should not
be
changed by the SysOp. If this option is changed, it could
cause
an error in the percentage calculation in the voting
results
screen.
The message base system allows users to post messages which can
be
publicly read by anyone, or sent privately to an individual user.
Mystic also supports the option of having "networked" message
bases,
meaning, a message base which is shared with several other BBS
systems,
allowing all users from every system to send messages to each
other!
The following is a screen capture of the Message Base Editor
along with
a description of each available option:
====================================================================
Message Base Editor
====================================================================
[I] Insert
----------
This option lets you create a new message base. Choose
where
you would like the base created, and whala!
[D] Delete
----------
This option will let you delete an existing message base.
Pick
the base you want to delete, and say goodbye to it.
[M] Move
--------
This option will let you reposition an existing message
base in
the order you want it.
[E] Edit
--------
This option will let you edit an existing message base.
The
editor screen is shown below and it's options are defined
under
it:
====================================================================
Message Base 0 of 0
====================================================================
[A] Name
--------
This option defines the message base name, as it will
appear in
the list of available message bases.
[C] Filename
------------
This option defines the file name which Mystic will use
to
store the message base data in. This should be a unique
name,
up to 8 characters in length.
[J] Password
------------
This option defines the password required to access this
message base. If this option is left blank, no password
will be
required.
Foreground colors:
0 - Black 6 - Brown 12 - Light
Red
1 - Blue 7 - Light Grey 13 - Light
Magnta
2 - Green 8 - Dark Grey 14 - Yellow
3 - Cyan 9 - Light Blue 15 - White
4 - Red 10 - Light Green
5 - Magenta 11 - Light Cyan
Background colors:
0 - Black 4 - Red
1 - Blue 5 - Magenta
2 - Green 6 - Brown
3 - Cyan 7 - Gray
You can employ the use of color codes in the names of your
message
bases to make it easier for the user to see local or networked
areas.
You can also set message bases to belong to a message group. This
is a
great way to isolate networked message bases from local message
bases.
Never delete the electronic mail message base. You can rename it,
but
do not delete it or change the filename!
.---------------------------------------------------------------.
| |
| (6.2.R) FILE BASE EDITOR |
| |
`---------------------------------------------------------------'
The file base system allows users to transfer files to and from
the
BBS system so they can be shared with other users of the BBS.
These
files can be categorized into different file bases, which are
setup
in the File Base Editor. The following is a screen capture of the
file base editor screen along with a description of each
available
option:
====================================================================
File Base Editor
### Name
--- --------------------------
1 New File Base
====================================================================
====================================================================
File Base 1 of 1
A. Name : uploads
B. Filename : UPLOADS
C. Display File :
D. List ACS : s10
E. Sysop ACS : s255
F. Upload ACS : s10
G. Download ACS : s10
H. Storage Path : C:\FTP\UPLOADS\
I. Password :
J. Show Uploader : Yes
K. Default New Scan : Always
L. CD-ROM Area : No
M. All Files Free : No
([) Prev, (]) Next, (Q)uit:
Command (Q/Quit):
====================================================================
[A] Name
--------
This option defines the file base name / description as
it will
appear to the user when they select a file base.
[B] Filename
------------
This option defines the data file name that is used to
store
information for this file base. This file should be a
unique
file name, different from all other data files.
[I] Password
------------
This option defines the password which is required to
access
this file base. If you do not wish to require a password
to
access this base, leave this field blank.
.---------------------------------------------------------------.
| |
| (6.2.S) MENU EDITOR |
| |
`---------------------------------------------------------------'
The BBS menus are the core of the BBS system. It is where all BBS
commands and functions available to the user are defined and
setup.
Mystic BBS supports an unlimited number of defined menus which
can be
setup in any way, allowing a totally customizable and unique
interface
to the user.
====================================================================
Menu Editor (Language: Mystic Default)
Directory of C:\S7BBS\MENUS\*.MNU
====================================================================
[I] Insert
----------
This option will allow a new menu to be created.
[D] Delete
----------
This option will allow an existing menu to be deleted.
[E] Edit
--------
This option will allow an existing menu to be edited.
Upon
selecting a valid menu from the listing, you will be
taken to
the menu editor screen as shown below:
====================================================================
Menu Command List
====================================================================
Note: This screen capture has been truncated for readability
purposes
[I] Insert
----------
This option will allow you to insert a new command in the
menu.
Choose a place for it in the range Mystic prompts you
with, and
it will be inserted.
[D] Delete
----------
This option will allow you to delete an existing menu
command
from the menu.
[V] View
--------
This option will simulate what the menu will look like to
the
user when it is ran/viewed. Press any key after the
preview to
return to the menu editor screen.
[F] Flags
---------
This option sets several flags which the Mystic BBS menu
system
employs for various functions. A screen capture of this
portion
is shown below and the options are explained below the
capture:
====================================================================
Menu Flags (MAIN)
(V)iew or (Q)uit:
====================================================================
[D] ACS
-------
This is the ACS required to access this menu. If the user
meets
the ACS requirement, the menu will be loaded. Otherwise
Mystic
will display a prompt telling the user they do not have
access
to this particular menu.
[E] Password
------------
This option sets a password required to use this menu. If
this
option is left blank, no password will be required at
all. When
a menu is protected by a password the user will be
prompted to
enter the password before any menu commands are listed.
Upon
entering the incorrect password the user will return to
the
menu that called the password protected menu after being
shown
a prompt that the password they entered was incorrect.
[E] Edit
--------
This option will allow you to edit individual pre-
existing menu
commands. The menu command editor screen is shown below
with
all of it's options explained in further detail:
====================================================================
Menu command 1 of 20
G. Lightbar X/Y : 0 0
H. Lightbar Text :
I. Lightbar High :
J. Lightbar Up : 0
K. Lightbar Down : 0
L. Lightbar Left : 0
M. Lightbar Right: 0
====================================================================
[A] Text
--------
This is the label for the menu command itself. You can
use all
of the MCI codes, and color codes that you wish. This is
most
commonly used to show a hotkey in brackets or parenthesis
with
a brighter character representing the hotkey in between
them,
followed by a label of what the hotkey does.
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Z,
0,1,2,3,4,5,6,7,8,9
`,~,!,@,#,$,%,^,&,*,(,),-
,_,=,+,[,{,],},;,:,',",\,|,<,,,>,.,/,?
[D] ACS
-------
This is the ACS requirement for the menu command. If the
ACS
requirement is met, the user may issue this menu command.
For
more information on ACS see section {9.1}
[E] Command
-----------
This is the actual Mystic BBS Menu Command that is
executed
when the menu command item is invoked. For a complete
listing
of all the Mystic BBS Menu Commands see sections {8.C.7-
8.C.20}
[F] Data
--------
This is the parameters to be passed to the Mystic BBS
Menu
command. Not all Mystic BBS Menu Commands need
parameters. To
discover which do and do not see the section on Mystic
BBS
Menu Commands {8.C.7-8.C.20}
[J] Lightbar Up
---------------
This option is specific to Lightbar Grid menu types only.
This
option specifies which MENU COMMAND # from the Menu
Command
List, to move the lightbar HIGHLIGHT TO when THIS menu
command
is already HIGHLIGHTED when the user presses the [UP]
arrow
key. The format for this field is the destination MENU
COMMAND
# from the Menu Command List. For more information on
creating
Grid Lightbar menus see section {8.C.5}
[[] Previous
------------
This will take you to the previous menu command. If you
are at
the first menu command, it will cycle to the last menu
command.
[]] Next
--------
This will take you to the next menu command. If youa re
at the
last menu command, it will cycle to the first menu
command.
.---------------------------------------------------------------.
| |
| 7.0 MAINTAINING YOUR SYSTEM |
| |
+---------------------------------------------------------------+
| |
| 7.1 ....... Purge the BBS List (MBBSUTIL) |
| 7.2 ....... Sort the BBS List (MBBSUTIL) |
| 7.3 ....... Move Unavailable Files Offline (MBBSUTIL) |
| 7.4 ....... Pack the File Areas (MBBSUTIL) |
| 7.5 ....... Sort the File Areas (MBBSUTIL) |
| 7.6 ....... Purge Inactive Users (MBBSUTIL) |
| 7.7 ....... Pack the Users File (MBBSUTIL) |
| 7.8 ....... Pack the JAM Format Message Bases (MYSTPACK) |
| 7.9 ....... Pack the SQUISH Format Message Bases (3RDPARTY) |
| 7.10 ...... Backup your BBS on a Schedule |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (7.1) PURGE THE BBS LIST (MBBSUTIL -BKILL <ID> <DAYS>) |
| |
`---------------------------------------------------------------'
The internal BBS List in Mystic BBS has a feature which lets the
sysop
verify the online status of a BBS in the listing. To access this
mode,
you view the extended list while you are logged in as the SysOp,
and
then [V]erify the entries you wish. This feature of MBBSUTIL
allows you
to purge all of the BBS entries in the BBS database which are
marked
unverified and have been in the database for the number of days
you
specify.
Where:
<ID> is the data file for your BBS List
(the default is just BBSLIST)
.---------------------------------------------------------------.
| |
| (7.2) SORT THE BBS LIST (MBBSUTIL -BSORT <ID> <TYPE>) |
| |
`---------------------------------------------------------------'
Where:
<ID> is the data file for your BBS List
(the default is just BBSLIST)
When you have several thousands of files online and you move or
delete
some of them, you don't want to have to go through every file and
try
to remember if it exists or not. That's why MBBSUTIL contains a
way to
move unavailable files offline, and this is done through the -
FCHECK
function illustrated here:
MBBSUTIL -FCHECK
This will go through every file in every area and mark files that
are
not physically on your disk anymore in the path of the file area,
as
OFFLINE. By the same token if a file is already OFFLINE and the
file
physically exists when MBBSUTIL checks for it, it will no longer
be
marked OFFLINE.
Offline files are a good way to offer a list of all of your files
when
you have little disk space. In this way your users can request
that
files be put online for them to download and then after
downloading the
file can be removed.
.---------------------------------------------------------------.
| |
| (7.4) PACK THE FILE AREAS (MBBSUTIL -FPACK) |
| |
`---------------------------------------------------------------'
When you delete a file from a file area in Mystic BBS, it does
not
delete the file data from the internal file area database. It
marks it
as deleted. You do have the option of removing the physical file
when
you delete a file in the file areas, but still the data stays
intact
for the deleted file until you run MBBSUTIL to pack the files
with
the following syntax:
MBBSUTIL -FPACK
This will go through all of your file areas and remove any files
which
are marked as being deleted. This is a good idea to do because it
can
really speed up new-scans and file lists when things get crazy!
.---------------------------------------------------------------.
| |
| (7.5) SORT THE FILE AREAS (MBBSUTIL -FSORT) |
| |
`---------------------------------------------------------------'
By default Mystic BBS does not sort files in any special order.
This
was why the FSORT function of MBBSUTIL was implemented. You can
sort
your entire file area collection in one pass using this command:
MBBSUTIL -FSORT
This will sort the file database in each file area and reorder
the list
of files in each area to be alphabetical by filename. It will
also
automatically pack the bases (just like -FPACK) while doing so.
.---------------------------------------------------------------.
| |
| (7.6) PURGE INACTIVE USERS (MBBSUTIL -UKILL <DAYS>) |
| |
`---------------------------------------------------------------'
Where:
<DAYS> Is the number of days a user account must
be
inactive (no calls at all) for MBBSUTIL
to
remove the account.
.---------------------------------------------------------------.
| |
| (7.7) PACK THE USERS FILE (MBBSUTIL -UPACK) |
| |
`---------------------------------------------------------------'
When you delete a user account in the user editor, Mystic BBS
still
retains the user data just in case you change your mind or it was
a
mistake. In order to truly rid yourself of pesky deleted users,
you
need to run the UPACK feature of MBBSUTIL as such:
MBBSUTIL -UPACK
This will remove all the user accounts in the user file that are
marked
as being deleted.
.---------------------------------------------------------------.
| |
| (7.8) PACK THE JAM FORMAT MESSAGE BASES (MYSTPACK -PACK) |
| |
`---------------------------------------------------------------'
There are several 3rd party JAM packers out there. But MYSTPACK
is the
official JAM packer of Mystic BBS Software, so you should use it
in
place of any 3rd party message base packers.
.---------------------------------------------------------------.
| |
| (7.9) PACK THE SQUISH FORMAT MESSAGE BASES (GECHO/FASTECHO) |
| |
`---------------------------------------------------------------'
GECHO and FASTECHO can both be used to pack your SQUISH bases.
The down
side to using this format as well as these 3rd party utilities is
that
you must first add all of your bases local and otherwise into
their
configuration/setup programs. Otherwise it has no idea what is
where.
.---------------------------------------------------------------.
| |
| (7.10) BACKUP YOUR BBS ON A SCHEDULE |
| |
`---------------------------------------------------------------'
@ECHO OFF
cls
echo Backing up the BBS...
pkzip25 -extract -overwrite -directories <TARGET_FILE>
<INSTAL_DIR>\*.*
echo.
echo BBS backed up!
pause
exit
You can create a system event to run this type of thing every
night.
I can't stress this enough. You should do this all the time!
If you don't like to use the Mystic Events, you can use Windows
Task
Scheduler, or Linux crontab to do it instead. Just please,
backup!
.---------------------------------------------------------------.
| |
| 8.0 CUSTOMIZING YOUR SYSTEM |
| |
+---------------------------------------------------------------+
| |
| 8.1 ....... Why you SHOULD Customize YOUR BBS |
| |
| 8.A ....... Language Files (*.TXT/*.LNG) |
| 8.A.1 ..... - Using the Language Prompt Editor |
| 8.A.2 ..... - Compiling Language Files |
| 8.A.3 ..... - Replacing a Prompt with a Display File |
| 8.A.4 ..... - Replacing a Prompt with an MPL Script |
| |
| - -- -------------------+
| |
| 8.B ....... Display Files (*.ANS/*.ASC) |
| 8.B.1 ..... - The Location of Display Files (<BBSDIR>\TEXT) |
| 8.B.2 ..... - Random Display Files |
| 8.B.3 ..... - Creating and Showing your Own Display Files |
| 8.B.4 ..... - Display File Creation Tips and Techniques |
| 8.B.5 ..... - The Mystic BBS Template System |
| |
| - -- -------------------+
| |
| T 8.B.6 ..... - ANSICHAT.xxx T |
| T 8.B.7 ..... - ANSIEDIT.xxx T |
| T 8.B.8 ..... - ANSIFINF.xxx T |
| T 8.B.9 ..... - ANSIFLST.xxx T |
| T 8.B.10 .... - ANSIMLST.xxx T |
| T 8.B.11 .... - ANSIMRD.xxx T |
| T 8.B.12 .... - ANSIQUOT.xxx T |
| T 8.B.13 .... - ANSITELE.xxx T |
| 8.B.14 .... - AMSGHLP1.xxx |
| 8.B.15 .... - AMSGHLP2.xxx |
| 8.B.16 .... - BIRTHDAY.xxx |
| 8.B.17 .... - BLINDUL.xxx |
| 8.B.18 .... - CLOSED.xxx |
| 8.B.19 .... - DOWNLOAD.xxx |
| 8.B.20 .... - EMAILHLP.xxx |
| 8.B.21 .... - FEEDBACK.xxx |
| 8.B.22 .... - FGROUPx.xxx |
| 8.B.23 .... - FLAG1x.xxx |
| 8.B.24 .... - FLAG2x.xxx |
| 8.B.25 .... - FLISTHLP.xxx |
| 8.B.26 .... - FSEARCH.xxx |
| 8.B.27 .... - FSHELP.xxx |
| 8.B.28 .... - GROUPx.xxx |
| 8.B.29 .... - LOGOFF.xxx |
| 8.B.30 .... - LOGON1-9.xxx |
| 8.B.31 .... - NEWUSER.xxx |
| 8.B.32 .... - NONEWUSR.xxx |
| 8.B.33 .... - PRELOGON.xxx |
| 8.B.34 .... - PROTO.xxx |
| 8.B.35 .... - PROTOB.xxx |
| 8.B.36 .... - READHLP.xxx |
| 8.B.37 .... - READSHLP.xxx |
| 8.B.38 .... - SLxxx.xxx |
| 8.B.39 .... - TELECONF.xxx |
| 8.B.40 .... - TELEHELP.xxx |
| 8.B.41 .... - UPLOAD.xxx |
| T 8.B.42 .... - WFCSCRN.xxxT (note: in <BBSDIR>\DATA) |
| 8.B.43 .... - QUOTES.DAT |
| 8.B.44 .... - NEWSUER.MPE |
| |
| Note: T = File uses Mystic Template System |
| |
| - -- -------------------+
| |
| 8.C ....... Menus (*.MNU) |
| 8.C.1 ..... - The Location of Menu Files (<BBSDIR>\MENUS) |
| 8.C.2 ..... - Using the Menu Editor |
| 8.C.3 ..... - Menu Editor Hotkey Reference |
| 8.C.4 ..... - Creating Normal Lightbar Menus |
| 8.C.5 ..... - Creating Grid Lightbar Menus |
| 8.C.6 ..... - Stacking Menu Commands |
| |
| - -- -------------------+
| |
| 8.C.7 ..... - AUTOSIGNATURE Menu Commands (Ax) |
| 8.C.8 ..... - BBS LIST Menu Commands (Bx) |
| 8.C.9 ..... - GENERAL Menu Commands (Gx) |
| 8.C.10 .... - VOTING BOOTH Menu Commands (Vx) |
| 8.C.11 .... - TIME BANK Menu Commands (Tx) |
| 8.C.12 .... - FILE BASE Menu Commands (Fx) |
| 8.C.13 .... - FILE BATCH QUEUE Menu Commands (Qx) |
| 8.C.14 .... - MESSAGE BASE Menu Commands (Mx) |
| 8.C.15 .... - MULTINODE Menu Commands (Nx) |
| 8.C.16 .... - OFFLINE MAIL (QWK) Menu Commands (Ox) |
| 8.C.17 .... - DOOR Menu Commands (Dx) |
| 8.C.18 .... - MATRIX Menu Commands (Xx) |
| 8.C.19 .... - SYSOP Menu Commands (*x) |
| 8.C.20 .... - MISCELLANEOUS Menu Commands (-x) |
| |
| - -- -------------------+
| |
| 8.D ....... MPL (Mystic Programming Language) (*.MPS/*.MPE) |
| 8.D.1 ..... - Using the MPL IDE (MIDE) |
| 8.D.2 ..... - Using the MPL COMPILER (MPLC) |
| 8.D.3 ..... - Introduction to MPL |
| 8.D.4 ..... - Sourcecode Comments |
| 8.D.5 ..... - Operation Types and Precedence |
| |
| - -- -------------------+
| |
| 8.D.6 ..... - Defining VARIABLES |
| 8.D.7 ..... - Defining CONSTANTS |
| 8.D.8 ..... - Defining PROCEDURES |
| 8.D.9 ..... - Defining FUNCTIONS |
| |
| - -- -------------------+
| |
| 8.D.10 .... - FOR Loops (FOR/FEND) |
| 8.D.11 .... - REPEAT Loops (REPEAT/UNTIL) |
| 8.D.12 .... - WHILE Loops (WHILE/WEND) |
| 8.D.13 .... - IF Statements (IF/ELSE/ENDIF) |
| 8.D.14 .... - #INCLUDE Directive |
| |
| - -- -------------------+
| |
| 8.D.15 .... - USES Statement (DATA ACCESS) |
| |
| - -- -------------------+
| |
| 8.D.16 .... - String and Integer Functions |
| 8.D.17 .... - Disk Access Functions |
| 8.D.18 .... - Date and Time Functions |
| 8.D.19 .... - BBS Data Access Functions |
| 8.D.20 .... - Input Functions |
| 8.D.21 .... - Output Functions |
| 8.D.22 .... - Miscellaneous Functions |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (8.1) WHY YOU SHOULD CUSTOMIZE YOUR MYSTIC BBS |
| |
`---------------------------------------------------------------'
There are several reasons why you SHOULD customize your Mystic
BBS. The
first one is easy, because it's fun! It's really fun to sit there
and
customize everything for hours on end! Ask any existing SysOp =D
The
second reason is because default Mystic BBS is pretty ugly, and
it is
like this for a reason: to encourage SysOps to customize the damn
BBS!
The third reason is because REAL SysOps tweak their systems to
hell and
back before they put their boards online. Of course, there are
many
different types of SysOps. There are those who don't mind running
a
default stock setup, and customizing only so far as the messages
and
file bases and throwing a few door games online. Then there are
the
SysOps who are experienced and customize the language files and
the
rest of the BBS to their liking but with no heavy modification
going
on in the way of MPL scripts or external programs. And lastly
there are
the die-hard fanatical freaks who customize everything down to
the last
nook and cranny of the system and go out of their way making
their BBS
stand apart from the rest through innovation, style, and
elegance.
What kind of SysOp are you? What kind of SysOp would you like to
be? Do
you want respect for your efforts and results in the way of
activity
and scene-wide fame for doing something incredible? Or would you
rather
just be another brick in the wall, and have very little in the
way of
glory? It's up to you.
- The entire BBS scene benefits from your work when you
do it
the right way, and you keep doing it the right way.
- While art is good, it does NOT make the BBS good. I've
seen
plenty of default setups with a few great pieces of art
here
and there in the display file area, and was not the
least bit
impressed. I'm one of those die-hard fanatics though.
To close this small part of the docs, I must say one thing. A
BBS,
regardless of the software or the users or the posts or the files
or
the games, is only as good as the SysOp running it. Your BBS
should be
an extension of your persona. It should be a representation of
your
soul, your heart, your dreams and your fantasies. Don't be afraid
to
deviate from the norm. Don't be afraid to innovate, elaborate or
even
mutilate the way things are done!
.---------------------------------------------------------------.
| |
| (8.A) LANGUAGE FILES (*.TXT/*.LNG) |
| |
`---------------------------------------------------------------'
====================================================================
# DEFAULT.TXT: Default language file for Mystic BBS.
# ---------------------------------------------------
# Lines which begin with a "#" character are considered comments.
# Lines which being with a ";" are language editor comments
# Prompts do *NOT* have to be in numerical order.
#
# Language text that begins with "!" will run an MPE program:
# Example: 000 !askname
# The above line would execute ASKNAME.MPE from the scripts
directory.
#
# Language text that begins with "@" will display a display file.
# Example: 001 @askname
# The above line would display ASKNAME.ASC/ANS from the text
directory.
# Note: the DF MCI code can also be used to display files in
place of
# prompts.
====================================================================
As you can see, the language file supports comments, blank lines,
etc.
This file can be edited with any ASCII text editor. After you
change a
language file, you need to compile it so that Mystic BBS can
optimize
it and place it into the language database. To compile a language
file
use the MAKELANG program. The syntax for this is simple:
MAKELANG DEFAULT.TXT
This will compile the file DEFAULT.TXT which is the language file
for
the DEFAULT language, into *.LNG format and copy it to the BBS
DATA
directory where all *.LNG files are to be placed.
You may also use the MCFG language file editor, which makes it
much
easier to use than a ASCII based editor. See section {8.A.1} for
more
information on this.
=================================================================
-----------------------------------------------------------------
The MCFG program that comes with Mystic BBS has several features
that
are better and easier to use than their legacy internal
counterparts.
One of which is the Language File Editor.
With the language file editor, you can see exactly how prompts
will
look to the user right from within the editor itself. You can
also
simulate long prompts as well as lookup MCI codes and be afforded
the
Mystic BBS input functions for editing which are nicer than most
ASCII
text editors input routines.
You can also search for strings of text, go back and forth from
page to
page and jump to individual string numbers. Very very handy! Here
is
the documentation on the MCFG Language File Editor.
====================================================================
╒══════════════════════════════════════════════╕
│ ## Language Description FileName │
│──────────────────────────────────────────────│
│ 1 S7 S7 ▓
│ 2 Mystic Default DEFAULT ░
│ ░
│ ░
│ ░
│ ░
│ ░
│ ░
╘══════════════════════════════════════════════╛
====================================================================
Because you are allowed more than one language, the language
editor
first prompts you to select the chosen language you wish to edit.
You
do this using the [UP] and [DOWN] arrow keys. When you've
selected the
language you want to edit, press [ENTER]. This will take you to
the
below screen:
====================================================================
╒═══════════════════════════════════════ Language: S7 ═╕
│ │
│ Description S7░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │
│ File Name S7 │
│ Menus Path C:\S7BBS\S7-MENU\ │
│ Text Path C:\S7BBS\S7-TEXT\ │
│ │
│ Allow ANSI Yes │
│ Allow ASCII Yes │
│ │
│ (CTRL-P) Edit Language Prompts │
│ (CTRL-E) Edit Language Settings │
╘══════════════════════════════════════════════════════╛
====================================================================
Here you can edit your language properties. But we've already
discussed
how to do this in depth in section {6.2.G} Our concern now is
getting
at the meat of the language, the prompts themselves.
To begin editing the prompts press [CTRL]-P. This will take you
to the
following screen:
====================================================================
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░╒═(001/461)═════════════════════════════════════(
S7.txt)═╕░░░
░│ |DFpreuser |CR[■] Enter your user name:
│░░░
░│ |CR|12Create an account with this BBS? |11░░░░░░░░░░░░░░░░░░
│░░░
░│ |CR[■] Enter your password:
│░░░
░│ |CRInvalid password.
│░░░
░│ |CRSystem Password:
│░░░
░│ |CRNew User Password:
│░░░
░│ [■] Enter your full REAL name ->
│░░░
░│ |CRPlease enter your first AND last name!|CR
│░░░
░│ |CRUser already exists.|CR
│░░░
░│ [■] Enter your alias/handle ->
│░░░
░│ |CREnter your street address.|CR:
│░░░
░│ |CREnter your city & state.|CR:
│░░░
░│ |CREnter your postal code: #####|CR:
│░░░
░│ |CREnter your home phone number:|CR:
│░░░
░│ |CREnter your data phone number:|CR:
│░░░
░│──────────────────────────────────────────────────────────────│░░░
░│
│░░░
░│
│░░░
░│ Log in as new user prompt
│░░░
░╘══════════════════════════════════════════════════════════════╛░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
CTRL+ (Q) Help (O) Search (A) Again (G) Goto (U) Undo
(Enter) View (Esc) Quit
====================================================================
Note: This screen capture has been shrunken and truncated to
provide
readability and printability.
[CTRL]-Q : Help
---------------
Issuing this command will launch the MCFG help system.
Here you
can cross reference all the necessary things you'd need
while
editing your language file.
[CTRL]-O : Search
-----------------
Issuing this command will bring up a search dialog where
you
can then enter keywords to search for in the language
file.
Upon finding a match, you will be taken to the prompt the
match
was found. To find more matches using the same search
criteria
simply press [CTRL]-O again, and press [ENTER]. The last
search
you performed will automatically be active in the search
dialog
prompt, or you can do it the fast way and press [CTRL]-A
which
is defined next.
[CTRL]-A : Again
----------------
This will perform the last search again, and if a match
is
found, will take you to the prompt with the matching
text. If
a match is not found, a message will appear saying "No
Match".
[CTRL]-G : Goto
---------------
This will allow you to jump to any prompt # within the
language
file. Enter the # you wish to goto and press [ENTER].
[CTRL]-U : Undo
---------------
This will undo the last change you made to any language
file
prompt you have just edited. Very handy!
[ENTER] : View
--------------
Pressing [ENTER] on a prompt will display it as the user
would
see it, with color codes, and MCI Display Codes
interpreted.
[ESC] : Quit
------------
Pressing [ESCAPE] will exit the language editor. If you
have
changed a language file, and you press [ESC] you will
then be
prompted to Save Changes. And if you choose to save the
changes
you made, you will again be prompted if you would like to
compile the new language file. Answering yes will compile
the
language file and put it right where you need it.
=================================================================
-----------------------------------------------------------------
Compiling language files is quick and easy. Use the program that
comes
with Mystic BBS called MAKELANG to do so. The syntax is:
MAKELANG <LANGFILE.TXT>
-----------------------------------------------------------------
|DFwelcome
=================================================================
-----------------------------------------------------------------
!myscript
!C:\SCRIPTS\YOURSCRIPT
This really allows you to customize the hell out of your BBS
should you
decide to do so. For more information on MPL see section {8.D}
.---------------------------------------------------------------.
| |
| (8.B) DISPLAY FILES (*.ANS/*.ASC) |
| |
`---------------------------------------------------------------'
Display files offer an easy way to customize your BBS's
appearance. The
format for display files is either ASCII (*.ASC) or ANSI (*.ANS).
This
section attempts to describe in minute detail everything you need
to
know about Display Files in Mystic BBS Software.
=================================================================
-----------------------------------------------------------------
=================================================================
-----------------------------------------------------------------
Mystic BBS has the ability to show random display files. This is
a very
elegant way to keep the content on your BBS looking fresh and
exciting.
To make any display file within Mystic BBS random, create the
display
files in a series, and name them something like this:
RANDOM.ANS
RANDOM.AN1
RANDOM.AN2
etc..
Put the files in your TEXT directory and now everytime Mystic
goes to
display these files, it will pick randomly which file to show.
The same
can be done with ASCII files:
RANDOM.ASC
RANDOM.AS1
RANDOM.AS2
You can have up to 9 (1-9) random display files per each file the
BBS
shows the user.
=================================================================
-----------------------------------------------------------------
To create your own display files, you can either use a standard
ASCII
editor, like edit.com, vi, pico, whatever, or you can use a
program
that was specifically created for making display files for BBS's
like
The Draw, ITPDraw, or ACIDDRAW. When you save your file, save it
with
an extension and format recognized by mystic. I personally
recommend
ITPDraw because I've had great luck with it. ACIDDRAW has crashed
on me
several times, and TheDraw only supports up to 100 lines. To
create
animated display files, you will want to use The Draw and save
the file
as *.ANS. You can get these programs from the below addresses:
- The Draw
* ftp://archives.thebbs.org/ansi_utilities/tdraw463.zip
- ACIDDRAW
* ftp://archives.thebbs.org/ansi_utilities/adraw120.zip
- ITP Draw
* ftp://archives.thebbs.org/ansi_utilities/idw20b.zip
=================================================================
-----------------------------------------------------------------
There are several tips and techniques you can use when you create
your
own display files. I've been doing them for so long it's like
second
nature to me so I'm going to list them all right here so that you
to
can benefit. It's sort of a HOW-TO-FIX broken display files
section.
Problem: "My cursor winds up at the wrong spot down a line or two
from
my prompt."
Fix : To fix this problem first you need a good ASCII editor.
I
highly recommend CMEditor. It's very small and very good
at
editing text files. You can show the linefeeds visually
and
it is the only editor i've ever used that could insert
escape
codes through doorway remotely. The URL to cmeditor is
this:
http://ourworld.compuserve.com/homepages/novasoft2/CE363.ZIP
====================================================================
|16|07
Main Menu: [LF]
[LF]
====================================================================
[LF] shows up as a colored ░ in CMEditor. This symbol signifies a
line
feed is in place in this position of the file. make your file
look like
this to fix it:
====================================================================
|16|07
Main Menu: [LF]
====================================================================
Notice now how all extraneous linefeeds have been removed? Hit
[ESC] to
save your file and press [ENTER] when the save as screen is
showed. Now
hit [ESC] again to exit. Now test your prompt. You will see it is
now
fixed and the cursor ends up where you would like it to end up.
Problem: Any screen that I design that uses MCI Codes gets messed
up.
Cause : Your file is placing MCI Codes inline in the ansi. This
is not
a good idea as you run into situations like the one
above.
What is happening here is the output of the MCI code is
over
writing the rest of the display file.
Fix : Make a note of the X and Y position where your MCI code
is to
be placed from right within the ANSI editor. Jot down
all the
locations of all your MCI codes and their corresponding
code
like so:
Y X CODE
-- -- ----
02 13 |TL
Now that you've got that nailed. Remove the codes from
your
display file within the ansi editor. Now shell to DOS
and load
CMEditor with your display file. Your file may or may
not have
several lines of ansi coding. Go to the last line in
your file
that has text to be displayed on it. Below is an example
of
what this could look like:
====================================================================
[1;30m( [37mTime Left [30m): [ ]
[1;30m( [37m/s [30m) [0msystem news[LF]
[1;30m( [37mx [30m) [0m multi-node msg.[LF]
[1;30m( [37mk [30m) [0mconfiguration[LF]
[1;30m( [37m/x [30m) [0mtoggle expert[LF]
====================================================================
====================================================================
[1;30m( [37mTime Left [30m): [ ]
[1;30m( [37m/s [30m) [0msystem news[LF]
[1;30m( [37mx [30m) [0m multi-node msg.[LF]
[1;30m( [37mk [30m) [0mconfiguration[LF]
[1;30m( [37m/x [30m) [0mtoggle expert[LF]|[Y02|[X13|TL
====================================================================
Now what happens? Your entire display file is drawn blank, and
then you
use the Mystic MCI Control codes which are described in more
detail in
section {9.3} to position the cursor in the right spot, and then
draw
the MCI Display code for time left at that exact location. Now
this
presents another problem that we will remedy right here and now.
The
problem is that when the MCI is drawn it is the last to be drawn,
and
guess where the cursor winds up after it's drawn? You guessed it!
On
the row right under the MCI code itself. Which would then fuck up
our
(/s) system news display. So lets fix that. After the |TL MCI
code,
lets put the cursor back where we got it before we placed it.
Doing so
is quite simple. Put |[Y07|[X01 right after the MCI code. This
will put
the cursor back on row 7 and at column 1.
Note: When using MCI Control codes you must make certain that the
code
values are two digits in length, padded by zeroes if less
than 10
otherwise Mystic will not be able to interpret them
correctly.
Problem: Your display file looks fine using telnet client A, but
when
using telnet client B it messes all up!
Cause : This happens because the telnet clients handle the 80th
column
of text differently. While one programmer decided that
his
telnet client would wrap automatically when the cursor
reached
column 80, another said I will explicitly add a linefeed
AND
wrap the text when the cursor reaches column 80.
=================================================================
-----------------------------------------------------------------
(8.B.6) ANSICHAT.xxx
[TEMPLATE]
The ANSICHAT.xxx template is used when the split screen chat mode
is
activated. Screen Info MCI codes are used in this template to
specify
the coordinates of both the sysop and user chat window. The
following
is a list of the MCI codes used in this template followed by an
explanation of where each one should be used:
|!1 Specifies the upper Y position of the user's window and the
text
color of the user's window.
|!5 Specifies the upper Y position of the sysop's window and the
text color of the user's window.
====================================================================
User: |&1
-----------------------------
|!1
|!3 |!4
|!2
Sysop: |&2
-----------------------------
|!5
|!7 |!8
|!6
-----------------------------
====================================================================
(8.B.7) ANSIEDIT.xxx
[TEMPLATE]
The ANSIEDIT.xxx template is used when the full screen editor is
activated. Screen Info MCI codes are used in this file to define
the
coordinates of the text editing window. The following list of MCI
codes
which are used in the Full Screen Editor template:
|!1 Specifies the top line of the edit window, as well as the
color of the inputted text.
====================================================================
Full Screen Editor [|!3] Ctrl-Z = Help
------------------------------------------
|!1
|!2
------------------------------------------
====================================================================
This template is used when displaying extended information on a
file
during the lightbar file listings. The following screen info and
prompt
info MCI codes are available:
(8.B.9) ANSIFLST.xxx
[TEMPLATE]
The ANSIFLST.xxx template is used to define the coordinates and
colors
for the lightbar file listings. The color of each screen info MCI
code
for this template is saved, and will be used in the file listing.
The
following screen info MCI codes are used:
(8.B.10) ANSIMLST.xxx
[TEMPLATE]
This is the template for the ANSI message index listing, where
users
can scroll through a list of messages with the arrow keys. The
following MCI codes are used:
(8.B.11) ANSIMRD.xxx
[TEMPLATE]
This is the template for the actual message reader, which allows
the
user to scroll through the message using the arrow keys / pgup,
pgdn
keys. The following MCI codes are used:
(8.B.12) ANSIQUOT.xxx
[TEMPLATE]
The ANSIQUOT.xxx template file is used to define the quote window
used
in the full screen editor. The quote window is always six lines
in
size, so when creating the ANSIQUOT.xxx, you must make sure that
there
are at least 6 lines from the beginning of the quote window to
the end
of the screen. The following is a list of MCI codes which are
used for
this template:
|!2 This is the line where the actual first line of the quote
window
is. The bottom line is not needed since the quote window is
always 6 lines long. The color of this code is saved and is
used
for non-highlighted text.
====================================================================
<top of screen>
|!1
--Quote Window (ESC) Quit----------------
|!2
<bottom of screen>
====================================================================
The color for the Quote Window Lightbar can be defined in the
system
configuration -> language editor section of the BBS {6.2.G}
(8.B.13) ANSITELE.xxx
[TEMPLATE]
This is the template for the full screen irc-ish teleconference
system.
This ssytem allows the user to have a permanent input line as
well as a
window where text will scroll, maybe similar to a text-based IRC
client
like BitchX. Each user also has a 200 line scrollback buffer! The
MCI
codes used in this template file are below:
====================================================================
<top of screen>
[Channel #: |!4 / Topic:
|!5]:::::::::::::::::::::::::::::::::::::::
|!1
|!2
-----------------------------------------------------------------
---
|!3
<bottom of screen>
====================================================================
(8.B.42) WFCSCRN.xxx
[TEMPLATE]
This template, although it is not seen by the user, allows you to
tweak
your WFC Screen to your own desires. This file is placed in the
BBS
DATA directory (UNLIKE THE REST OF THE DISPLAY FILES!). The
random
display system works as well, allowing up to 10 randomly selected
WFC
Screens! You may also use any MCI Display and Control codes
available
to Mystic when creating this file. The MCI Codes specific to this
template are:
(8.B.14) AMSGHLP1.xxx
This display file is shown to the user when they request help
while
using the full screen message index (ANSIMLST.xxx {8.B.10}). Here
are
a list of available commands while in the message index so that
you can
customize your display file without trying to figure it out
yourself:
(8.B.15) AMSGHLP2.xxx
This display file is shown to the user when they request help
while
using the full screen message reader (ANSIMRD.xxx {8.B.11}). Here
are
a list of available commands while in the message reader so that
you
can customize your display file without trying to figure it out
for
yourself:
(8.B.16) BIRTHDAY.xxx
This display file is displayed during login if the user calls on
their
birthday.
(8.B.17) BLINDUL.xxx
This display file is shown when the user selects to blind upload
in the
file areas. Here you could list upload rules and regulations,
etc.
(8.B.18) CLOSED.xxx
This display file is shown if a System Password has been defined,
and
the caller did not enter the correct System Password when
prompted.
(8.B.19) DOWNLOAD.xxx
This display file is shown before the "Filename: " prompt when a
user
starts to download a file in the file areas.
(8.B.20) EMAILHLP.xxx
This display file is shown when the user request help from the e-
mail
message reading screen. The available commands for this help file
are
listed below:
This display file is shown before new users are forced to send
feedback
to the SysOp when creating a new account on the system. It's
usually
used for telling the user what kind of information you would them
to
give you in the new user feedback letter.
(8.B.22) FGROUPx.xxx
This display file is shown after joining File Group x where x is
the
number of the file group.
(8.B.23) FLAG1x.xxx
This display file is shown during login if the user has FLAG1x
set.
Where x is an AR flag from set 1 from A-Z. This is usually used
to show
special announcements to members of an affiliation whom you flag
using
an AR flag. But it can be used for whatever you like.
(8.B.24) FLAG2x.xxx
This display file is shown during login if the user has FLAG2x
set.
Where x is an AR flag from set 2 from A-Z. This is usually used
to show
special announcements to members of an affiliation whom you flag
using
an AR flag. But it can be used for whatever you like.
(8.B.25) FLISTLP.xxx
This display file is shown when a user requests help while in the
full
screen file lister (ANSIFLST.xxx {8.B.9}). The available commands
while
in this listing mode are shown below:
(8.B.26) FSEARCH.xxx
This display file is shown before prompting the user with the
keywords
or partial filenames they wish to search for in the file areas.
(8.B.27) FSHELP.xxx
This display file is shown when the user requests help from the
full
screen message editor (ANSIEDIT.xxx {8.B.7}). The available
commands
while using the full screen message editor are listed below:
Slash Commands:
/A Abort message
/S Save message
/C Continue editing
/Q Quote message
/U Upload a file
/? Slash Command help
(8.B.28) GROUPx.xxx
This display file is shown immediately after a user joins message
group
x where x is the group number. This could be used to show
disclaimers
and rules and regulations for message networks, and the like.
(8.B.29) LOGOFF.xxx
This display file is shown right before hanging up on the caller
when
they choose to logoff the BBS with the [G]oodbye command. This
file is
not shown when GI (hangup immediately) is used instead of (GH).
(8.B.30) LOGON1-9.xxx
These display files LOGON1.xxx - LOGON9.xxx are displayed in
numerical
order after a user successfully logs onto the BBS.
(8.B.31) NEWUSER.xxx
This display file is shown before asking a potential new user if
they
would like to create an account on the BBS. It can be used to
show a
little bit of information about your system, and then let them
decide
if they want to create an account on your board. If the user
selects
yes to continue logging into the BBS the system then displays the
file
NEWUSER1.xxx
(8.B.32) NONEWUSR.xxx
This display file is shown if Allow New Users is toggled off in
the
system configuration. After the file is shown, the user is
immediately
disconnected from the system.
(8.B.33) PRELOGON.xxx
This display file is shown after the user selects their terminal
emulation or it is automatically detected, and before the "Login:
"
prompt or the matrix menu. This is the first display file a user
will
see when logging into your BBS, so a nice splash screen would be
great
for this display file. In the old days, SysOps would list the
phone
number, city, state, and zipcode of their BBS. But you could
update the
old way by putting in a web link to your BBS's homepage, your
telnet
address, and the email address of the SysOp.
(8.B.34) PROTO.xxx
Note: In the latest versions of Mystic BBS protocols have been
added
internally to the software itself, thus eliminating the
need of
using any external protocols at all, and hence the External
Protocol editor has been removed. However, for those of you
using older versions of Mystic this section of the
documentation
has been kept intact for your convenience.
Note: In the latest versions of Mystic BBS protocols have been
added
internally to the software itself, thus eliminating the
need of
using any external protocols at all, and hence the External
Protocol editor has been removed. However, for those of you
using older versions of Mystic this section of the
documentation
has been kept intact for your convenience.
(8.B.36) READHLP.xxx
This display file is shown when the user requests help when
reading
messages using the Standard message reader. The available options
are
listed below:
(8.B.37) READSHLP.xxx
This display file is shown when the SysOp requests help when
reading
messages using the Standard message reader. The available options
are
listed below:
(8.B.38) SLxxx.xxx
This display file is shown during login if the user has a
security
level of xxx or higher. Where xxx is the minimum users security
level
required to show the file. This could be used to show new users
that
they have not been validated fully or the like.
(8.B.39) TELECONF.xxx
This display file is shown before the user enters the standard
tele-
-conference, and shown again after the user requests help from
the
teleconference. It could be used as a header for the standard
tele-
-conference to brand it to your system.
(8.B.40) TELEHELP.xxx
This display file is shown when the user requests help while in
the
teleconferencing system. Note that this file is shown for both
the
standard and full screen teleconference (ANSITELE.xxx {8.B.13}).
(8.B.41) UPLOAD.xxx
This display file is shown when a user starts to upload before
they are
presented with the "Filename: " prompt. You could use it to show
a list
of rules and regulations you have on your system about uploading
files.
(8.B.43) QUOTES.DAT
This file is not a display file, but it displays things so I
figured it
should go here. Mystic BBS features a rumore system or user quote
system, which can be displayed in every menu, or somewhere else
if you
like. To use it, employ the |QO MCI Code in your display files.
Mystic
will automatically replace the |QO MCI code with a randomly
selected
quote from the QUOTES.DAT file which is in your DATA directory.
The
format for the QUOTES.DAT file is straight ASCII text which can
be
edited with any text editor. Each quote must START with a line
with
nothing else but an * as the first character of the line. After
that,
an unlimited number of text lines can be added as the quote.
For example:
*
This is a sample quote. It can be an unlimited number of text
lines and will be displayed whenever a "QO" MCI code is placed
in a text file.
*
This is the last quote in the file. Notice that there is NOT
an * at the bottom of this because it is the last quote and
the * is only placed at the BEGINNING of a quote block.
(8.B.44) NEWUSER.MPE
This file is not a display file, but an MPL script and since it
has the
potential to display something to the user, I've opted to put it
here.
The Mystic BBS Menu System is the heart and soul of your BBS.
Through
it you can completely customize the way someone uses your system.
Menu
files are created and edited using the internal and external
editors
which come with Mystic BBS Software. There can be up to 75
commands per
menu in Mystic BBS Software! WOW!
The default Mystic BBS menu setup contains the following menus:
ACCOUNT
-------
This menu allows users to change information regarding
their
account configuration settings.
AUTOSIG
-------
This menu allows users to edit their auto signature, and
toggle
it's functionality ON or OFF.
BBSLIST
-------
This menu allows users to view, add, and list BBS
Listings on
your system. You can have more than one BBS list!
DOORS
-----
This menu has a few examples of running doors from within
Mystic BBS. You can use it to run your doors, or create
your
own.
FILE
----
This menu contains all of the functionality for your
BBS's
file bases. Users can list, view, upload, download,
search,
new-scan, etc, for files in your file bases.
FLIST
-----
This menu contains commands for the [L]ist files command
from
the file menu. It allows your users to specify what kind
of
file listing they'd like to see.
FNEWSCAN
--------
This menu contains commands which prompt your users if
they
wish to scan for new files upon entering the file areas.
FQUEUE
------
This menu contains all the commands necessary for your
users to
maintain their batch download file queues.
GOODBYE
-------
This menu contains the options presented to a user when
they
issue the [G]oodbye command from anywhere in the BBS. The
user
then has a chance to back out, or leave feedback before
hanging
up.
MAIN
----
This is the main menu where all the other menus are
called from
It is the heart and soul of the default Mystic BBS setup.
MESSAGE
-------
This menu contains all of the functionality your users
need to
interact with the Mystic BBS Message Base System. This
includes
posting, reading, listing, sending email, reading email,
etc,.
MNEWSCAN
--------
This menu contains commands which prompt your users if
they
wish to scan for new messages upon entering the message
bases.
MSEARCH
-------
This menu contains all of the commands your users need to
do
a search on your message bases. They can search for text,
or
by author and subject, etc.
NEWINFO
-------
This menu is executed after a new user fills out all of
the new
user questions you have toggled on in system
configuration. It
allows them to change their answers after they have
initially
answered the questions.
PRELOGIN
--------
This menu handles all of the basic startup functions such
as
showing the One-Liners, and checking for email.
QWK
---
This menu contains all of the commands necessary for your
users
to upload and download offline mail packets (QWK).
SYSOP
-----
This menu contains all of the sysop commands you can use
while
directly on the BBS. You can change system configuration,
edit
message and file areas, and much much more! Make SURE you
have
this menu set for ACS of s255 or even s255&b0 to make
sure only
the local console can access this menu!
TIMEBANK
--------
This menu contains all of the commands a user needs to
store
time in the system timebank or withdraw time from their
account
and is a handy feature if you run a system that uses time
as
a method of crime and punishment :)
VOTE
----
This menu contains all of the commands necessary for your
users
to use the Voting Booth. They can add questions, vote on
the
current questions, and see the results of any questions
that
already exist.
GLOBAL
------
While this menu is NOT included in the default Mystic
setup, it
deserves to be mentioned here because any command that
you put
in the GLOBAL menu can be accessed from ANY other menu on
your
entire BBS as long as the menu flags are set to Allow
Global.
Types of Menus
--------------
There are technically 5 types of menus which you can use on your
BBS:
A. Menu Header :
B. Menu Prompt : AutoSig [|AS]:
(V)iew/(E)dit/(T)oggle/(Q)uit
C. Display Cols : 3
D. ACS : s10
E. Password :
F. Display File : AUTOSIG
G. Fallback Menu : message
H. Menu Type : Standard
I. Finish X/Y : 0 0
J. Use Global MNU: Yes
K. Input Type : User setting
9. Mystic has finished with the menu, and awaits for the
user
to press a hotkey from those we've defined. In this
case
the menu type is one that only has a prompt so we
defined
explicitly the available hotkeys manually in our
prompt.
10. When a user presses a key Mystic then checks the menu
for
the hotkey and if it finds a match, the corresponding
menu
commands assigned to be called by the hotkey the user
has
pressed are executed. There is a feature in Mystic
BBS that
is very powerful called Stacking Menu Commands. This
allows
one hotkey to trigger several menu commands at the
same
time. For more information on this see section
{8.C.6}
Regular Menus
-------------
Regular menus are the kinds of menus you will probably
wind up
using the most. They consist of a display file, or
internally
generated menu command list, and a menu prompt, which the
user
then presses the hotkey, and if required [ENTER] to send
the
command to Mystic BBS.
====================================================================
Menu Command List
====================================================================
Note: This screen capture has been truncated for display
purposes.
====================================================================
Menu Flags (MAIN)
(V)iew or (Q)uit:
====================================================================
Lightbar Menus
--------------
Refer to section {8.C.4} for a complete guide on how to
create
lightbar menus!
=================================================================
-----------------------------------------------------------------
The location for menu files (*.MNU) in the default Mystic BBS
setup is
<BBSDIR>\MENUS. You can change this location through the language
editor {6.2.G} Each language definition can have a different
location
for it's menu files, or it can share the menu files with other
language
definitions. It's all up to you.
=================================================================
-----------------------------------------------------------------
=================================================================
-----------------------------------------------------------------
When using the menu editor you assign each of the menu items in
your
menu a hotkey. This hotkey can be any ascii character A-Z, 0-9,
symbols
etc, whatever you like -- or a combination thereof. But the real
power
of Mystic BBS menuing lies in the special hotkeys and they are
defined
in detail below:
FIRSTCMD : Automatically runs the command each time the menu is
loaded,
but does not automatically run it when the menu is
used and
no other menus are executed.
The other special hot keys are for user input keys:
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Z,
0,1,2,3,4,5,6,7,8,9
`,~,!,@,#,$,%,^,&,*,(,),-,_,=,+,[,{,],},;,:,',",\,|,<,,,>,.,/,?
=================================================================
-----------------------------------------------------------------
2. Once you have your display file drawn, it's a good idea
to save
a copy of it as a backup and then work with the backup so
that
you will always have the original display file template
ready
when you are proceeding to the next few steps.
5. Now save the file as your display file filename for the
menu
you wish to create it for. It's a good idea to maintain
back-
-end organization on a BBS to name all the display files
that
go with a menu file the same name. Example: AUTOSIG.MNU
uses
AUTOSIG.ANS, etc,.
Now we are going onto make the actual menu! Fun eh?!
6. Start MCFG (you can use the regular SysOp stuff if you
want,
but i personally prefer MCFG over that hokey old
interface :))
7. Enter the menu editor and choose the language which you
are
going to add your new lightbar menu into.
12. Now set the menu footer and the menu header to nothing.
Mystic
automatically creates a default for you, but we dont want
that
stuff, so delete it.
14. Set the rest of the options you want in terms of ACS and
all
that hokey pokey.
16. Now press CTRL-V from MCFG to display your template. You
will
note that I instructed you to leave the unhighlighted
items and
the example highlighted item intact. This is because we
can now
use this information to help construct the rest of our
menu to
exacting standards! To view the emulated display of your
menu
from the internal menu editor choose [V].
17. Ok, so now we've got the display file template in place,
and we
got the menu setup to be a lightbar. Now we have to do
the
dirty work of entering all of our commands. I advise you
to
first position the lightbar items, and then worry about
the
functional commands which each hotkey will perform. More
on
this in a minute.
18. [E]dit the first command that mystic has supplied for you
when
you created a new menu. Get rid of the display text, or
text as
it's referred to in the internal editor.
19. Begin editing the Lightbar Low string. Enter this using
the
colors and format you used in your template. To view your
menu
template, remember press CTRL-V.
Example:
21. Now preview your menu template again and eyeball where
the menu
option is going to be placed on it row/column wise.
24. Add another command using the same steps [18-23] but you
will
need to insert a new menu command before doing so with
CTRL-I
or [I]nsert.
25. Now that you have two of the lightbars placed, you can
test the
movement of the bar. Press CTRL-V to preview the lightbar
as it
is displayed to the user with the ability to preview the
move-
-ment of the bar. In the old editor press V to preview
it. Now
move the lightbar down and up and check to make sure
everything
lines up. If it doesn't, fix it in each of the items.
27. Once you have all of your items setup just how you like,
press
[ESC] and exit the menu editor and answer YES to save the
menu.
We do this to insure none of our hard work is lost..
28. Begin editing the lightbar menu you just created again,
and now
edit the menu item Menu Commands for the lightbar items
to do
whatever you want them to do. Make sure you define a
different
hotkey for each menu item, that way commands aren't
accidentaly
stacked and thus create strange and unexpected results.
30. Now that you're done, editing your lightbar menu and
everything
is setup JUST how you like it. You need to remove the
existing
lightbar items you left in the template to assist you in
lining
things up. So open up your ANSI editor, and get rid of
em, all
of em including the one that you highlighted as a
reference for
drawing the highlight bar itself.
=================================================================
-----------------------------------------------------------------
Lightbar grid menus are one of the features that can really set
your
system apart from the rest. It allows for a professionally setup
lightbar menu to actually act like a real menu. Meaning, if the
user
presses right on a 3 column lightbar setup, and is on column 1,
instead
of going down to the next option like a traditional lightbar
menu, the
lightbar highlights the next option horizontally neighboring it
which
is in column 2, and if they press the right again, the same
behaviour
only now they highlight column 3! Way more efficient and elegant
than
having to go through every single option with the highlight bar
down
down down down down over down down etc.!
Each lightbar item option in a lightbar grid based menu has four
exit
coordinates which are set as the menu command # in the menu item
listing you want the bar to highlight when the user pressese
left,
right, up, and down. What this means is that when the user has
selected
the current menu option that you are definining exiting
coordinates
for, when they press up, left, right, down, etc, it will
highlight
whichever you specify from each individual option.
When the user has option number one selected with the
lightbar
and they press the left key, we can set the Left grid to
exit
to option 3. Then if they decide to press down, in option
3,
we can define the down grid exit to be option 4. This is
simplified by the below diagram:
1 <--> 3
/\ /\
|| || <- those are arrows, shutup bitch!
\/ \/
2 <--> 4
=================================================================
-----------------------------------------------------------------
Stacking menu commands unleashes the true power of the Mystic BBS
menu
system. When you stack a menu command you assign the same hotkey
to
several different menu items. This allows a sort of high-level
programming to be performed using all of Mystic BBS's available
menu
commands where are defined in sections {8.C.7 - 8.C.20}
This is just one example. there are several other uses you could
use
stacked menu commands for. Use your imagination :)
---
Command : AE
Description : Edit the users auto signature.
Optional Data : None.
Note: This command takes the user into the frequently unused text
file
editor portion of Mystic. The display of this editor can be
configured from the language prompts in the language
editor, as
there are no display files associated with this mode of
editing
by default.
---
Command : AT
Description : Toggle users auto signature ON or OFF.
Optional Data : None.
---
Command : AV
Description : View users current auto signature.
Optional data : None.
Note: This menu command will output the raw contents of the users
auto-
-signature with no pre-formatting MCI display codes used to
place
the text. So you will have to place the cursor where you
want it
before you use this command.
Command : BA
Description : Add a BBS to the BBS list.
Optional Data : None.
---
Command : BL
Description : Display the extended BBS list. The optional data
field
requires a LIST ID, which is up to an 8 character
long
unique name for the BBS list. This allows
multiple BBS
lists to be maintained. If ;SEARCH is appended
after
the LIST ID, Mystic will prompt the user for a
search
string to allow them to view only BBSes which
contain
the search string.
Optional Data : <LIST ID>;SEARCH
---
Command : BS
Description : Display the short BBS list. The optional data
field
requires a <LIST ID>, which is up to an 8
character long
unique name for the BBS list. This allows
multiple BBS
lists to be maintained. If ;SEARCH is appended
after
the LIST ID, Mystic will prompt the user for a
search
string to allow them to view only BBSes which
contain
the search string.
Optional Data : <LIST ID>;SEARCH
Command : G1
Description : Show system daily history.
Optional Data : None.
---
Command : GD
Description : Display a text file. The optional data field is
required and holds the name of the file to
display.
If there is no file extension then the extension
of
.ANS or .ASC will be appended according to the
user's
terminal settings.
Optional Data : <FileName>
---
Command : GE
Description : Edit User Settings. This command can be used to
allow
users to edit their user profile. The optional
data is
required for this menu command, and will set
which
field in the user's profile to edit. The optional
data
must be set to one of the following:
Command : GH
Description : Logoff user. This command will show the display
file
GOODBYE.xxx and then log the user offline. If the
user
has files in their download queue, they will be
prompted to download them before logoff.
Optional Data : None.
---
Command : GI
Description : Logoff user immediately. This command will not
show the
user the GOODBYE.xxx as in GH but instead log the
user
off the system immediately.
Optional Data : None.
---
Command : GL
Description : This command lists the last 10 users who called
into
the BBS system. Local logins are not included in
this
list, nor are any users marked as Ignore LC in
the user
editor.
Optional Data : None.
---
Command : GN
Description : One Liners. This option will allow the user to
view
and enter a one-liner if they choose. The
optional data
field allows the maximum number of lines and the
maximum line length (in characters) to be
configured.
If no optional data is supplied, the default used
is 10
lines and 75 characters.
Optional Data : <max lines>;<max line length>;<max input field
length>
---
Command : GO
Description : Go to a new menu. The optional data field for
this menu
command is required. It holds the name of the new
menu
that is to be loaded.
Optional Data : <Menu Name>
---
Command : GP
Description : Page the System Operator for chat. This command
will
allow the user to page the System Operator for
chat.
If the optional data is set to /F, Mystic BBS
will
ignore the defined chat hours and page the SysOp.
Optional Data : /F
---
Command : GR
Description : Return from a gosub. This option will load the
last
menu which was saved onto the menu stack by the
GS
(Gosub Menu) command.
Optional Data : None.
---
Command : GS
Description : Gosub to a new menu. This option will save the
current
menu name on the menu stack and go to a new menu.
The
optional data field is required and holds the
name of
the new menu that is to be loaded.
Optional Data : <Menu Name>
---
Command : GT
Description : Display line of text. This command is used to
display a
line of text. The optional data field holds the
text
that is to be displayed.
Optional Data : <Text to Display>
Note: All Mystic BBS MCI Display Codes, MCI Control Codes, and
Color
Codes are available for use as the optional data.
---
Command : GU
Description : List all system users. This command will display
a list
of all user accounts on the system. If the
optional
data is set to SEARCH, the user will be able to
search
the list for a specific user.
Optional Data : SEARCH
---
Command : GX
Description : Execute MPE module. This command will execute a
Mystic
BBS programming executable. Mystic BBS has a
built in
programming language which allows the Sysop to
write
custom programs for their BBS. For more
information on
this, see the section on MPL {8.D}
Optional Data : <MPE_MODULE> <MPE_PARAMETERS>
Note: It is possible to pass parameters to an MPE module all you
have
to do is separate the module name from the rest of the
parameters
using spaces. You can then access these parameters through
the
MPL function ParamStr();
Command : VA
Description : Add Question to Voting Booth. This command allows
users
to add questions into the voting booth.
Optional Data : None.
---
Command : VN
Description : Votes on all unvoted on (new) voting questions.
Optional Data : None.
---
Command : VR
Description : See results of a voting question. This command
allows
users to display the results of a voting
question.
If the question number is supplied in the option
data
field, the results for that question will be
displayed.
If the optional data field is left blank, the
user will
be asked to select which question they'd like to
see
the results of.
Optional Data : <Question Number>
---
Command : VV
Description : Voting Booth. This command will allow users
toaccess
and vote on the current voting questions in the
Voting
Booth database. The optional data field can be
used to
force a user to vote on a certain question by
supplying
the number of the question (as listed in the
voting
booth editor).
Optional Data : <Question Number>
Command : TA
Description : Deposit Kilobytes into Kilobyte bank.
Optional Data : None.
---
Command : TD
Description : Deposit time into the time bank.
Optional Data : None.
---
Command : TS
Description : Withdrawal Kilobytes from Kilobyte bank.
Optional Data : None.
---
Command : TW
Description : Withdrawal time from the time bank.
Optional Data : None.
(8.C.12) FILE BASE MENU COMMANDS
(Fx)
Command : FA
Description : Allows the user to change their selected file
base. If
the file base number (as listed in the file base
editor) is supplied in the optional data field,
Mystic
will automatically change to that file base. If
the
data field is set to "+", Mystic will change to
the
next file base. If the field is set to "-",
Mystic will
change to the previous file base.
Optional Data : <File Base Number> or "+", "-", "nolist"
---
Command : FD
Description : Download a file. This command will prompt the
user for
a filename and allow them to download a file from
the
file database. If they have existing files in
their
file batch queue, they will be prompted to
download the
files in their queue instead.
Optional Data : None.
---
Command : FF
Description : Create a text files list. This command is used to
allow
the user to create and download a text file
containing
a list of files on the BBS system.
Optional Data : </NEW> </ALLGROUPS>
---
Command : FG
Description : Select file group. This command will allow the
user to
select which file group they are in. If the
optional
data field holds a file group number as listed in
the
File Group Editor, the user will be automatically
put
into that File Group if they meet the ACS
requirements.
If "+" is supplied on the field, Mystic will move
the
user into the next available file group. If "-"
is
supplied, Mystic will move the user into the
previous
available file group.
Optional Data : <File Group Number>, "+", "-"
---
Command : FL
Description : List files. This command will list files in the
currently selected file base. If the optional
data
field is left blank, all files will be listed. If
the
optional data file is set to "SEARCH", the user
will
be prompted for a file mask. If a <File Mask> is
supplied, files which match the supplied mask
will be
listed.
Optional Data : "SEARCH" or <File Mask>
---
Command : FN
Description : New file scan. This command will allow the user
to scan
for all files that have been added to the file
database
since the last time they preformed a new file
scan. If
the optional data field is set to "C", only files
in
the current file base will be scanned. If set to
"G",
all bases in the current group will be scanned.
If set
to "A", all files in all groups will be scanned.
If
left blank, the user will be asked if they'd like
to
scan all bases, or just the current base.
Optional Data : "A", "C", "G" or <BLANK>.
---
Command : FP
Description : Set file new scan pointer. This command will
allow the
user to set the date which Mystic will use to
search
for new files.
Optional Data : None.
---
Command : FS
Description : Search for files. This command will allow the
user to
search the file database for a matching search
string.
Optional Data : None.
---
Command : FU
Description : Upload a file. This command will allow a user to
transfer a file from their computer into the BBS
system's file base.
Optional Data : None.
---
Command : FV
Description : View an archive. This command will allow a user
to view
the contents of any archive in the file base.
Optional Data : None.
---
Command : FZ
Description : Toggle New Scan File Bases. This command will
allow a
user to set which file bases will be scanned when
a
scan for new files is ran.
Optional Data : None.
---
Command : F1
Description : Mass file upload. This command will search the
current
file base's directory for files that haven't been
added
into the file database. When a new file is found,
the
BBS asks how to handle the file:
Upload BLAH.ZIP? (Y)es, (N)o, (A)uto, (S)kip,
(Q)uit:
---
Command : F2
Description : File directory editor. This command will bring up
the
file directory editor for the current file base.
Here
each file listed in the directory can be edited
or
deleted. *NOTE* THIS COMMAND SHOULD BE MADE
AVAILABLE
ONLY TO A SYSOP.
Optional Data : None.
Below is a screen shot of the File Directory Editor and under it,
an
explanation of what each option does:
====================================================================
File DIR Editor : 2 of 2
────────────────────────────────────────────────────────────────────
1) hexcalibur01.jpg
────────────────────────────────────────────────────────────────────
2) File Size : 6,125 bytes 3) Uploader : grymmjack
4) File Date : 02/17/02 5) Downloads : 0
6) Status : Normal
────────────────────────────────────────────────────────────────────
!) Description : No Description
────────────────────────────────────────────────────────────────────
([) Previous (]) Next (D) Delete (I) Import DIZ
(U) Update DIZ (M) Move (V) View Archive (E) Email ULer (Q)
Quit:
====================================================================
Note: This screen capture has been truncated for display
purposes.
1) Filename
-----------
This specifies the name of the file in the file database.
On
Windows and linux platforms, this file can be very long.
On
OS/2 and DOS it is limited to 8.3 type filenames.
2) File Size
------------
This specifies the size of the file in the file database
in
bytes.
3) Uploader
-----------
This shows who uploaded the file and who gets credit for
it in
the file listings if Show Uploads is enabled in the file
base.
4) File Date
------------
This is the date the file was uploaded, or created
depending
on how you have your file base setup.
5) Downloads
------------
This tracks how many times the file has been downloaded.
This
is a nice feature so that you can perhaps create a top 10
of
downloaded files using an external programming language
like
c or pascal.
6) Status
---------
This specifies the files status in the file database it
can be
one or all of the following:
!) Description
--------------
This is the description of the file. It is automatically
imported when the file is uploaded if the file contains a
FILE_ID.DIZ file within the archive and you have Import
File
ID enabled. You can edit this file manually. The standard
Mystic BBS input hotkeys and editing functions apply.
([) Previous
------------
This will take you to the previous file in the file base
list
for the current file area.
(]) Next
--------
This will take you to the next file in the file base list
for
the current file area.
(D) Delete
----------
This option will allow you to remove the file from the
file
database for this file base, and optionally remove the
file
physically from your hard disk.
(M) Move
--------
This option will let you move the file from the current
area to
a new area. You will be prompted for a file group if any
exist,
and then a new file area. You can then optionally also
move the
physical file to the new file areas pre-configured
directory.
---
Command : F3
Description : File download. This command will allow the SysOp
to
force a user into downloading a file. The
optional data
field is required and holds the full path and
file name
of the file to send. Note that the file specified
in
the optional data field does NOT have to be a
file
which exists in the file database. It can be any
file,
just as long as it exists somewhere on the drive.
Optional Data : <Full path and file name of file to Send>
Command : QA
Description : This command will allow a user to add a file to
their
batch queue.
Optional Data : None.
---
Command : QC
Description : Clear batch queue. This command will remove all
the
files in the user's batch queue.
Optional Data : None.
---
Command : QD
Description : Delete batch queue. This command will allow a
user to
remove a file from their batch queue.
Optional Data : None.
---
Command : QL
Description : List batch queue. This command will allow a user
to
list the files currently in their batch queue.
Optional Data : None.
(8.C.14) MESSAGE BASE MENU COMMANDS
(Mx)
Command : MA
Description : Select the current message base from a list. If
the
message base number (as listed in the message
base
editor) is supplied in the optional data field,
Mystic
will automatically change to that message base.
If the
data field is set to "+", Mystic will change to
the
next message base. If the data field is "-",
Mystic
will change to the previous message base.
Optional Data : <Message Base Number>, "+", "-", "nolist"
---
Command : MC
Description : Checks for any new electronic mail.
Optional Data : None.
---
Command : MG
Description : Select a message group. This command will allow
the
user to select what group they are in. The
optional
data field can be used to force the user to join
a
certain group if the number of the group (as
listed in
the Message Group Editor) is supplied. If "+" is
supplied, Mystic will change to the next message
group.
If "-" is supplied, Mystic will change to the
previous
message group.
Optional Data : <Group Number>, "+", "-"
---
Command : MD
Description : Set the last read pointers for all message bases
based
on a date. This function allows users to set the
last
read pointers for the message system using a date
as
opposed to having to go through and jump to the
last
message in each base to skip any old content they
don't
want to read.
Optional Data : None.
---
Command : MM
Description : Mass e-mail. Allows SysOps to send e-mail to
multiple
users at once, by three different options:
---
Command : MN
Description : Scans all message bases for new messages. The
optional
data field can be left blank, or can contain any
of the
following options:
---
Command : MP
Description : Posts a message to the currently selected message
base.
Optional Data : </TO:> </SUBJ:> </ADDR:> </F>
Command : MP
Data : /TO:some_user /SUBJ:hello_there! /F
---
Command : MR
Description : Reads messages in the currently selected message
base.
The optional data field specifies the read
<MODE>,
which can be any one of the following:
<BLANK> Prompts user to select read mode.
"F" Reads messages forward.
"N" Reads new messages.
"Y" Reads messages sent TO the user.
"S" Text search for messages
---
Command : MS
Description : Allows searching of one or all message bases for
a text
match. The optional data field has three options
available:
---
Command : MV
Description : View outbound email.
Optional Data : None.
---
Command : MW
Description : Send electronic mail to another user.
Optional Data : </TO:> </SUBJ:> </ADDR:> </F>
/TO:<user_name> - Sets the TO field of the
message.
/SUBJ:<subject> - Sets the SUBJECT field of the
msg.
/ADDR:<netaddr> - Sets the netmail address field.
/F - Forces the user to post the
message.
Command : MP
Data : /TO:some_user /SUBJ:hello_there! /F
---
Command : MZ
Description : Allows the user to select which message bases
will be
scanned in their new message scan (menu command
MN).
Optional Data : None.
Command : NA
Description : Set Node Action. This command will set the node
action
which appears when a Who's Online (NW) list is
done.
The Optional Data field is required and holds the
text
that will appear in the "Action" field of a Who's
Online list.
Optional Data : <Action>
---
Command : NC
Description : Multi-node chat. This command will enter the
multi-node
chat teleconference where all users currently
logged in
can talk with each other in real time.
Optional Data : None.
---
Command : NS
Description : Send message to a node. This command will allow a
user
to send a message to another logged in user. The
optional data field can be used to force a
message
sent to a certain node. The node number must be
supplied first followed by a semi-colon and then
the
message text. For example, 2;Hello would send a
message
to node 2 saying Hello. If a zero is used as the
node
number, the message text will be sent to all
users
currently logged in to the BBS system using the
System
Message format. This way it is possible to have
Mystic
inform all users online when a user logs into
another
node, or when a user basically does anything you
wish
everyone to know about.
---
Command : NW
Description : Who's Online. This command will list all the
users who
are currently logged into the system. It will
also give
a general idea of what they are doing at the time
of
the list, and where they are calling from.
Optional Data : None.
Command : OD
Description : Download a .QWK packet. This command will
compile,
archive and allow a user to download a .QWK
packet.
Optional Data : "/ALLGROUP"
---
Command : OS
Description : Set QWK scanned bases. This command will allow
the
user to select which message bases are included
in
their .QWK packet.
Optional Data : None.
---
Command : OU
Description : Upload a .REP packet. This command will allow the
user
to upload a .REP packet produced by their offline
mail
reader. After the packet is uploaded, Mystic will
then
add the messages into their appropriate message
bases.
Optional Data : None.
Command : D-
Description : Door with no dropfile. Shells to the OS and
executes
<command line>.
Optional Data : <Command Line> <MCI CODES>
---
Command : DC
Description : Shells to the OS and executes <command line>.
The CHAIN.TXT drop file is created in the node's
temporary directory.
Optional Data : <Command Line> <MCI CODES>
---
Command : DD
Description : Shells to the OS and executes <command line>.
The DORINFO1.DEF drop file is created in the
node's
temporary directory.
Optional Data : <Command Line> <MCI CODES>
---
Command : DG
Description : Shells to the OS and executes <command line>. The
DOOR.SYS drop file is created in the node's
temporary
directory.
Optional Data : <Command Line> <MCI CODES>
---
Command : D3
Description : Shells to the OS and executes <command line>. The
DOOR32.SYS drop file is created in the node's
temporary
directory. This is a special interface to allow
the
mystic telnet server (TSERVER) run DOOR32 based
doors.
Optional Data : <Command Line> <MCI CODES>
Command : XA
Description : Apply for an account. This menu command allows
the user
to log in as a new user, but then is taken back
to the
Matrix menu where they will not be able to enter
the
BBS without the matrix password.
Optional Data : None.
---
Command : XC
Description : Check for matrix password. This menu command
will
allow the user to check for the matrix password.
If the
user meets the "See Matrix Password" ACS setting
in the
New User Settings, they will be given the matrix
password which will then allow them to log into
the
BBS.
Optional Data : None.
---
Command : XL
Description : Log into the BBS system. This command allows a
user to
log into the BBS system from the Matrix menu.
When this
option is selected, the user will be prompted for
the
Matrix password and will not be able to log in
without
it.
Optional Data : None.
---
Command : XP
Description : Page SysOp for chat from Matrix. This command
works
just like the GP (Page SysOp) command, but is to
be
used from the Matrix login menu.
Optional Data : <same as GP command>
*NOTE* These commands are for the System Operator (Sysop) only
and
should NOT be made available to anyone except the Sysop.
Command : *#
Description : Menu Editor.
Optional Data : None.
---
Command : *A
Description : System Archive Configuration. This enters the
archive
configuration where all compression utilities are
setup and maintained.
Optional Data : None.
---
Command : *F
Description : File Base Editor.
Optional Data : None.
---
Command : *G
Description : Group Editor.
Optional Data : None
---
Command : *L
Description : Security Level Editor.
Optional Data : None.
---
Command : *M
Description : Message Base Editor.
Optional Data : None.
---
Command : *P
Description : Protocol Editor.
Optional Data : None.
---
Command : *S
Description : System Configuration.
Optional Data : None.
---
Command : *U
Description : User Editor.
Optional Data : None.
---
Command : *V
Description : Voting Booth Editor.
Optional Data : None.
(8.C.20) MISCELLANEOUS MENU COMMANDS
(-x)
Command : -D
Description : Set user flags. This will allow user flags to be
set
for each user's SECOND set of flags - using the
following format:
<Command><Flag>
!A (toggles flag A)
-B (toggles flag B OFF)
+A (toggles flag A ON
!A-E+Y (toggles A, turns E OFF, turns Y ON)
---
Command : -F
Description : Set user flags. This will allow user flags to be
set
for each user's FIRST set of flags - using the
following format:
<Command><Flag>
!A (toggles flag A)
-B (toggles flag B OFF)
+A (toggles flag A ON
!A-E+Y (toggles A, turns E OFF, turns Y ON)
---
Command : -N
Description : Prompts user with a Yes/No question and if the
user
answers "Yes", the OK ACS command will be set to
TRUE.
The optional data line is the text that will be
displayed to the user as the Yes/No question.
Optional Data : <TEXT>
---
Command : -P
Description : Prompts user with <TEXT> to input a <PASSWORD>.
If the
user correctly enters the password, the OK ACS
command
will be set to TRUE. The optional data field for
this
command is required. The <TEXT> field is the text
which
prompts the user for the password. The <PASSWORD>
field
is the password that the user must enter.
Command : -S
Description : Add line of text into SysOp log file. This
command will
add a line of text into the SysOp log file. The
optional data field holds the text that will be
appended.
Optional Data : <Text to Output>
---
Command : -Y
Description : Prompts user with a Yes/No question and if the
user
answers "Yes", the OK ACS command will be set to
TRUE.
The optional data field is the text that will be
displayed to the user as the Yes/No question.
Optional Data : <TEXT>
.---------------------------------------------------------------.
| |
| (8.D) MPL (MYSTIC PROGRAMMING LANGUAGE) SCRIPTS (*.MPS/*.MPE) |
| |
`---------------------------------------------------------------'
In essence, you have all the power in the world that you may need
to go
beyond the call of duty as a hard-core SysOp.
File Extensions
---------------
MPS files or MPL Sourcecode files are standard ASCII text files
and can
be edited with any text editor. There is an IDE that comes with
Mystic
BBS that is a little bit friendlier than a regular old text
editor as
it integrates the ability to compile the sourcecode quickly and
to use
syntax highlighting on the sourcecode itself.
If you are first starting out with MPL you are encouraged to use
MIDE
as there is a built in help system just like the borland IDEs you
may
have used in the past for Turbo Pascal and C++.
=================================================================
(8.D.1) USING THE MPL IDE (MIDE)
-----------------------------------------------------------------
To use MIDE simply run MIDE [ENTER]. When you are in the program
it's
very easy to use. The function keys for it's main operations are
found
at the top of the screen they are:
F1 - Help
---------
This option loads the MIDE online help system. It's
operation
is described below:
F2 - Save
---------
This option allows the file being edited in the current
editor
window to be saved to disk. If there are no open edit
windows,
the command is disabled.
F3 - Open
---------
This option allows a new file to be loaded. When
selected, an
Open File box will appear where a file can be loaded,
deleted,
or created. MIDE supports a maximum of 9 files opened at
one
time, limited only by available memory.
F4 - Close
----------
This option closes the file being edited in the current
window.
If there are no open files this option is disabled. When
a file
is closed, MIDE will ask to save the file if any changes
were
made since it was loaded.
F5 - Find
---------
This option seaches for text in the current edit window.
If no
windows are open, this command is disabled.
F6 - Again
----------
This option repeats the previous search command, starting
from
the last matching text.
F8 - Options
------------
This option brings up the MIDE options dialog. It's
settings
are described below:
F9 - Compile
------------
This option will compile the source code in the current
window
into a Mystic BBS Programming Executable, or MPE. If an
error
occurs during compilation, MIDE will abort the compile,
report
the error, and attempt to locate the cursor the exact
line
where the error has occured.
=================================================================
-----------------------------------------------------------------
The source file mask can be any file name or any wildcard
file
name. The file extention is not required, MPLC will
automatically append .MPS to the source mask.
-----------------------------------------------------------------
=================================================================
-----------------------------------------------------------------
For example:
-----------------------------------------------------------------
The MPL does not follow the order of operations when doing
mathmatical
equations (ie PEMDAS - parenthesis, exponents, multiplication,
division, addition, subtraction). So math functions are done in
the
order that they appear in the expression.
- Subtract
+ Addition
* Multiplication
/ Division
MOD Modulus Operator
=================================================================
-----------------------------------------------------------------
Examples:
var dummy byte
var str string
var
dummy byte,
str string
Examples:
=================================================================
-----------------------------------------------------------------
String constants:
Const
SomeStr = 'Hello World!'
Numerical constants:
Const
SomeNum = 69
Const
SomeNum = 69,
SomeStr = 'Hello World!'
=================================================================
-----------------------------------------------------------------
IE:
Procedure Hello_World
WriteLn ('Hello World')
Pend
OR:
OR:
=================================================================
-----------------------------------------------------------------
IE:
=================================================================
(8.D.10) FOR LOOPS (FOR/FEND)
-----------------------------------------------------------------
For A := 1 to 10
WriteLn (A)
FEnd
1
2
3
4
5
6
7
8
9
10
For A := 10 DownTo 1
WriteLn (A)
Fend
10
9
8
7
6
5
4
3
2
1
=================================================================
-----------------------------------------------------------------
Repeat
<Code here>
Until <Boolean Expression>
IE:
Repeat
WriteLn ('Blah blah')
Until A > 0 or A = 5
The difference between a REPEAT loop and a WHILE loop is that the
condition in a REPEAT loop is tested AFTER each iteration of the
loop.
=================================================================
-----------------------------------------------------------------
The difference between a WHILE loop and a REPEAT loop is that the
condition in a WHILE loop is tested BEFORE entering an iteration
of the
loop.
IE:
While A > 0 and A = 5
WriteLn ('Blah')
WEnd
=================================================================
-----------------------------------------------------------------
The purpose of the IF statement is to execute a block of code if
a
condition is is met. The purpose of the ELSEIF statement is to
stay in
the body of the IF statement and check for alternative conditions
to
be met. The purpose of the ELSE statement is to execute a block
of code
if the condition is NOT met. The purpose of an ENDIF statement is
to
terminate the IF statement proper.
If <boolean statement>
<True code here>
ElseIf <boolean statement> # (optional)
<True code here>
Else # (optional)
<False code here>
EndIf
If Not Eof(1)
WriteLn ('We''re not at the end of the file.')
EndIf
If A = 1 Then
WriteLn ('A is 1')
ElseIf A = 2
WriteLn ('A is 2')
ElseIf A = 5
WriteLn ('A is 5')
Else
WriteLn ('A is not 1, 2, or 5...')
EndIf
=================================================================
-----------------------------------------------------------------
Source files can be included within other source files using a
variation of the comment system. This can be useful for creating
a
library of common procedures or to split up a large projects into
more
organized smaller files. The syntax for include files is as
follows:
#include [filename]
Example:
#include common.mps
Begin
End
=================================================================
-----------------------------------------------------------------
Example:
Uses USER
Begin
GetThisUser
WriteLn ('Welcome to this program ' + UserHandle)
End
=================================================================
-----------------------------------------------------------------
Syntax:
Function Chr (B Byte) : Char
Description:
Example:
Var Count Byte
Syntax:
Function Copy (Str String, Index Byte, Count Byte) :
String
Description:
Copy returns a string containing "Count" number of
characters of
string "Str", starting an the "Index" character.
Example:
Var Str String
Str := 'Mystic BBS'
Str := Copy(Str, 1, 6)
WriteLn (Str)
Syntax:
Procedure DELETE (Str String, Index Byte, Count Byte)
Description:
Example:
Syntax:
Procedure INSERT (Source String, Str String, Index Byte)
Description:
Insert takes a string and inserts its contents into
another
string starting a Index.
Example:
Var
Str String
Begin
Str := 'Mystic v1.07'
Insert ('BBS', Str, 8)
End
The above example takes the text of the STR variable and
inserts the text "BBS" into it at position 8. The
resulting
output would be "Mystic BBS v1.07".
Syntax:
Function INT2STR (Number LongInt) : String
Description:
Int2Str takes a numerical value or variable and converts
it
into a string variable or value.
Example:
Var
Number Byte
Begin
Number := 10
WriteLn ('The value of number is: ' +
Int2Str(Number))
End
Syntax:
Function LENGTH (Str String) : Byte
Description:
Example:
WriteLn ('Hello World!')
WriteLn (Length('Hello World!'))
Syntax:
Function LOWER (Str String) : String
Description:
The Lower function takes a string value and converts it
to
all lowercased letters.
Example:
WriteLn (Lower('HELLO WORLD!'))
Syntax:
Function MCI2STR (Str String) : String
Description:
This function takes an MCI code and converts the value of
the
code to a string variable.
Example:
Var
MyVar String
Begin
MyVar := MCI2STR('|UN')
WriteLn(MyVar)
End
The above example would then place the users name into
the
variable MyVar, adn then print the result using WriteLn
as
<User Name>
Syntax:
Function ODD (Number LongInt) : Boolean
Description:
Returns TRUE if the supplied number is an ODD number
Example:
If Odd(3) Then
WriteLn ('The number 3 is ODD')
Else
WriteLn ('The number 3 is NOT ODD')
EndIf
Syntax:
Function ORD (Ch Char) : Byte
Description:
Converts a Char variable into its corresponding ASCII
value
Example:
WriteLn ('The ASCII value of "A" is: ' +
Int2Str(Ord('A')))
Syntax:
Function PADCT (Str String, Size Byte, Ch Char) : String
Description:
PADCT takes a string value and pads it to the center with
the
specified character. The Size parameter specifies the
length
of the padded string.
Example:
Var
Str String
Begin
Str := PadCT('Hello', 40, '*')
WriteLn(Str)
End
*****************Hello******************
Syntax:
Function PADLT (Str String, Size Byte, Ch Char) : String
Description:
PADLT takes a string value and pads it to the left with
the
specified character. The Size parameter specifies the
length
of the padded string.
Example:
Var
Str String
Begin
Str := PadLT('Hello', 40, '*')
WriteLn(Str)
End
The above example uses the PadLT function to pad the text
"Hello" to the left. The result is a string of 40
characters in
length, using the '*' character to fill the empty spaces.
The
result would be:
***********************************Hello
Syntax:
Function PADRT (Str String, Size Byte, Ch Char) : String
Description:
PADRT takes a string value and pads it to the right with
the
specified character. The Size parameter specifies the
length
of the padded string.
Example:
Var
Str String
Begin
Str := PadRT('Hello', 40, '*')
WriteLn(Str)
End
The above example uses the PadRT function to pad the text
"Hello" to the right. The result is a string of 40
characters
in length, using the '*' character to fill the empty
spaces.
The result would be:
Hello***********************************
POS [STRING AND INTEGER
FUNCTIONS]
Syntax:
Function POS (SubStr String, Str String) : Byte
Description:
This function returns the starting position of a
substring
within a string. If the substring does not exist in the
string, POS returns 0.
Example:
Var A Byte
A := POS('World', 'Hello World')
WriteLn (A)
The above example uses the POS code to find out the
position of
"World" in the string "Hello World". The result is then
printed
on the screen, which would be "7".
Syntax:
Function STR2INT (Str String) : LongInt
Description:
Str2Int takes a string value or variable and converts it
into a numeric variable or value.
Example:
Var
Str String
Num Byte
Begin
Str := '10'
Num := Str2Int(Str)
WriteLn ('The value of num is: ' + Int2Str(Num))
End
Syntax:
Function StripMCI (Str String) : String
Description:
The StripMCI function strips valid MCI codes from a
string.
Example:
WriteLn (StripMCI('|CRHello World!'))
Hello World!
Syntax:
Function STRREP (Ch Char, Len Byte) : String
Description:
The StrRep function takes a character and returns a
string
of that character Len characters long.
Example:
!!!!!!!!!!!!!!!!!!!!
Syntax:
Function UPPER (Str String) : String
Description:
The Upper function takes a string value and converts it
to
all uppercased letters.
Example:
WriteLn (Upper('hello world!'))
=================================================================
-----------------------------------------------------------------
Syntax:
Function DOSERROR : Byte
Description:
This function returns the current DosError and is used
with the
FindFirst and FindNext functions. The possible values
which may
be returned by DosError are as follows:
Value Meaning
----- ---------------------
0 No error
2 File not found
3 Path not found
5 Access denied
6 Invalid handle
8 Not enough memory
10 Invalid environment
11 Invalid format
18 No more files
----- ---------------------
Example:
FindFirst ('*.*', AnyFile)
While DosError = 0
WriteLn ('File Name: ' + DirName)
FindNext
Wend
FindClose
Syntax:
Function EOF (FileNum Byte) : Boolean
Description:
This function will return true if the file position of an
opened file is at the End Of the File (EOF). The passed
Handle
value is the file number of the already opened file.
Example:
Var Str String
FOpen (1, Text, Reset, 'BLAH.TXT')
While Not Eof(1)
FReadLn (1, Str)
WriteLn (Str)
Wend
FClose (1)
Syntax:
Procedure FCLOSE (FileNum Byte)
Description:
This procedure closes an already opened file. The passed
Handle
value is the file number of the opened file. All files
which
are opened MUST be closed after they are not being
accessed any
more.
Example:
fOpen(1, Text, ReWrite, 'BLAH.TXT')
<Code to access file goes here>
fClose (1)
Syntax:
Function FCOPY (Source String, Dest String) : Boolean
Description:
This function will copy a file from the specified source
location to the specified destination location. The
function
will return as TRUE if the file was copied successfully,
or
FALSE if an error occured. Note: The file which is being
copied
should not already be opened for File I/O by the program.
Example:
Write ('Copying C:\HELLO.TXT -> D:\HELLO.TXT: ')
If fCopy ('C:\HELLO.TXT', 'D:\HELLO.TXT') Then
WriteLn ('OK')
Else
WriteLn ('ERROR')
EndIf
Syntax:
Procedure FERASE (FileName String)
Description:
This procedure is used to erase an existing file from the
disk.
The FileName variable is a string variable which contains
the
file name which is to be erased. The result of the FERASE
procedure can be checked by checking the DOSERROR
function.
DOSERROR will return a 0 if successful or a 2 if an error
occured.
Example:
FErase ('C:\HELLO.TXT')
Syntax:
Function FEXIST (FileName String) : Boolean
Description:
The above function will check to see if a file exists,
and
return TRUE if it does. The passed FileName string if the
path
and file name of the file to check. This file should not
already be opened with the FOPEN procedure.
Example:
If FExist('BLAH.TXT') Then
WriteLn ('BLAH.TXT exists.')
Else
WriteLn ('BLAH.TXT does NOT exist.')
EndIf
Syntax:
Function FILEPOS (Handle) : LongInt
Description:
This function returns the current file position of an
opened
file. The passed Handle is the file handle number used
when the
file was opened. The FilePos function only works for
files that
are opened as Binary, since Text files are read line by
line.
Example:
fOpen (1, Bin, Reset, 'TEST.DAT')
If FilePos(1) = FileSize(1)
WriteLn ('END OF FILE.')
EndIf
fClose (1)
Syntax:
Function FILESIZE (Handle) : LongInt
Description:
This function returns the total file size of an opened
file. The
passed Handle is the file handle number used when the
file was
opened. This function only works with files that have
been
opened as Binary since Text files are read line by line.
Example:
fOpen (1, Bin, Reset, 'TEST.DAT')
WriteLn ('File is ' + Int2Str(FileSize(1)) + ' bytes in
size.
fClose (1)
Syntax:
Procedure FINDCLOSE
Description:
This function is used along with the FindFirst and
FindNext
functions. It is called only after all "Find" procedures
have
completed. See the "FindFirst" and "FindNext" command
references for more information.
Example:
See example in FINDFIRST
Syntax:
Procedure FINDFIRST (Mask String, Attributes)
Description:
This function is used to search a drive for files using a
supplied file mask and attribute list. The results of the
search are held in the DIR variables as listed below.
Attribute Description
----------- -------------------------
ReadOnly Return files marked as "read only".
Hidden Return files marked as "hidden".
SysFile Return files marked as "system files".
VolumeID Return files marked as "volume ID".
Directory Return files marked as "directory".
Archive Return files marked as "archive".
AnyFile Returns any and all files.
The above example will list all files which fit the file
mask
of "C:\*.*" and fit the attributes of either ReadOnly or
Archive. The DOSERROR function is used to determine when
there
are no more files found (See the DOSERROR reference). If
a file
has been found, it will then be printed to the screen
using the
DIR variables. The FindNext functon is used to find the
next
file that matches the name and attributes specified in
the
earlier call to FindFirst. FindClose is used when all
"Find"
functions have been completed.
Syntax:
Procedure FINDNEXT
Description:
This procedure is used to find the next file which
matches the
filemask and attributes specified in the last call to
FindFirst.
Example:
See example in FINDFIRST
Syntax:
Procedure FOPEN (Handle: Byte, fType, oType, Name:
String)
Description:
This procedure opens a text or binary file for file
operations.
oType : This specifies how MPL will open the file. The
following open types are supported:
RESET : This will open an already existing file at
the
beginning of the file.
REWRITE : This will erase an existing file and recreate
it,
leaving the file position at the beginning of
the
file. If the file does not already exist, MPL
will
create the file.
APPEND : This will open an already existing file at
the end
of the file.
Example:
fOpen(1, Text, ReWrite, 'BLAH.TXT')
fWriteLn (1, 'Hello World!')
fClose(1)
Syntax:
Procedure FREAD (FileNum Byte, Variable, Size)
Description:
This procedure reads SIZE number of bytes from an opened
data
file, storing the result in the VARIABLE variable.
Example:
Var Str String
fOpen(1, Bin, Reset, 'SOMEFILE.DAT')
fRead(1, Str, 40)
fClose(1)
Syntax:
Procedure FREADLN (FileNum Byte, Variable)
Description:
This procedure reads a single line of text from a text
file
and stores the result into a variable. This procedure can
only be used on files opened as text files.
Example:
Var Str String
fOpen (1, Text, Reset, 'C:\MYSTIC\MYSTIC.DOC')
While Not Eof(1)
fReadLn (1, Str)
WriteLn (Str)
Wend
fClose (1)
Syntax:
Procedure FREADREC (FileNum Byte, Variable, <Length>)
Description:
This procedure reads a variable from a binary file,
following
the style of data storage used by Pascal compilers. When
reading a non-string variable, the format is:
Type
SomeRec = Record
SomeByte : Byte; # 1 byte
SomeWord : Word; # 2 bytes
SomeStr : String[30]; # 31 bytes
# (str size +
1)
End
Example:
(Assuming a TEST.DAT file already exists with data in it)
Var
SomeByte Byte,
SomeWord Word,
SomeString String
Begin
fOpen (1, Bin, Reset, 'TEST.DAT')
fReadRec (1, SomeByte)
fReadRec (1, SomeWord)
fReadRec (1, SomeString, 30)
fClose (1)
End
Syntax:
Procedure FSEEK (FileNum Byte, Position LongInt)
Description:
The FSEEK procedure will seek to a current byte position
in a
file opened as binary.
Example:
fOpen (1, Bin, Reset, 'TEST.DAT')
fSeek (1, 34)
Syntax:
Procedure FWRITE (FileNum Byte, Variable, Size)
Description:
This procedure writes SIZE number of bytes to an opened
data
file, with the data contained in the VARIABLE.
Example:
Var Str String
fOpen (1, Bin, Reset, 'SOMEFILE.DAT')
fWrite (1, Str, 40)
fClose (1)
Syntax:
Procedure FWRITELN (FileNum Byte, Variable)
Description:
This procedure writes a string to an opened data file,
and
appends the string with a newline character/linefeed.
Example:
Var Str String
Str := 'Line of text'
fOpen (1, Text, Reset, 'SOMEFILE.DAT')
fWriteln(1, Str)
fClose (1)
The above example opens a text file "SOMEFILE.DAT" and
writes
the value of Str ("Line of text") and then appends the
line
with a newline character/linefeed. The file is then
closed with
the FCLOSE command.
Syntax:
Procedure FWRITEREC (FileNum Byte, Variable, <Length>)
Description:
This procedure writes a variable to a binary file,
following
the style of data storage used by Pascal compilers. When
writing a non-string variable, the format is:
Type
SomeRec = Record
SomeByte : Byte; # 1 byte
SomeWord : Word; # 2 bytes
SomeStr : String[30]; # 31 bytes
# (str size +
1)
End
Example:
(Assuming a TEST.DAT file already exists with data in it)
Var
SomeByte Byte,
SomeWord Word,
SomeString String
Begin
SomeByte := 0
SomeWord := 13000
SomeString := 'Woot!'
fOpen (1, Bin, Reset, 'TEST.DAT')
fWriteRec (1, SomeByte)
fWriteRec (1, SomeWord)
fWriteRec (1, SomeString, 30)
fClose (1)
End
=================================================================
-----------------------------------------------------------------
Syntax:
Function DATESTR (DT LongInt, Format Byte) : String
Description:
This function will take a packed datetime number and
convert it
to a date string. The Format parameter is used to set the
format of the date which is returned. Valid types are:
Example:
GetThisUser
WriteLn ('Welcome. You last called on ' +
DateStr(UserLast))
Syntax:
Function DATETIME : LongInt
Description:
This function returns the current Date and Time in the
packed
format. DATESTR and TIMESTR can be used to convert this
value
into strings.
Example:
WriteLn ('Current Date: ' + DateStr(DateTime, 0))
WriteLn ('Current Time: ' + TimeStr(DateTime, 1))
Syntax:
Function TIMER : LongInt
Description:
This function returns the number of seconds which have
passed
since midnight.
Example:
WriteLn ('Seconds since midnight: ' + Int2Str(Timer))
Syntax:
Function TIMESTR (DT LongInt, Format Byte) : String
Description:
This function takes a packed date/time record and returns
the
time in a string format, where Format is one of the
following:
Example:
GetThisUser
WriteLn ('Last call on: ' + DateStr(UserLast, 0))
WriteLn (' at: ' + TimeStr(UserLast, 1))
The above example uses GetThisUser to read information on
the
current user. It then uses DateSTR and TimeSTR to
display the
last time and date that the user called.
=================================================================
-----------------------------------------------------------------
Syntax:
Procedure GETCFG
Description:
This procedure will load the current configuration data
into
the CFG variables. The "USES CFG" command must be used at
the
start of your program for GETCFG to work. The following
variables will be loaded:
CFGSYSPATH : System Path
CFGDATAPATH : Data Path
CFGMSGSPATH : Message Base Path
CFGPROTPATH : Protocol Path
CFGARCSPATH : Archive Path
CFGQWKPATH : Local QWK Path
CFGMPEPATH : Script (MPE) Path
CFGATTPATH : File Attach Path
CFGLOGSPATH : System Logs Path
CFGTEXTPATH : Text Files Path (for the current
language)
CFGMENUPATH : Menu Files Path (for the current
language)
CFGSTATUSTYPE : Returns status line mode (0=2 line, 1=1
line)
Example:
Uses CFG
GetCFG
WriteLn ('Mystic BBS is installed in ', CfgSysPath)
Syntax:
Function GetFBase (BaseNum : Word) : Boolean
Description:
The GETFBASE function is used to read in the
configuration data
for a file base. In order to use the GETFBASE function,
USES
FBASE must be added into your USES statement.
Example:
Uses FBASE
Var
Count Word
Begin
Count := 1
While GetFBase(Count)
WriteLn ('FileBase #' + Int2Str(Count) + ': ' +
FBName)
Count := Count + 1
WEnd
End
Syntax:
Procedure GETFGROUP
Description:
This procedure will load the current file group data into
the CFG variables. The "USES FGROUP" command must be used
at
the start of your program for GETFGROUP to work. The
following
variables will be loaded:
Example:
Uses FGROUP
GetFGROUP
WriteLn ('Your currently in the ', FGROUPNAME, ' FILE
GROUP!')
Syntax:
Function GETMBASE
Description:
This procedure will read message base data into the MBASE
variables. The supplied N is the record number to read.
The
function will return TRUE if the record was read
successfully,
or FALSE if the record was not read. The "USES MBASE"
command
must be called at the start of your program for the MBASE
functions to work correctly.
Example:
Var A Word
A := 1
While GetMBase
WriteLn ('Base name: ', MBaseName)
A := A + 1
Wend
The above example will list all available message bases
on the
BBS.
Syntax:
Procedure GETMGROUP
Description:
This procedure will load the current file group data into
the CFG variables. The "USES MGROUP" command must be used
at
the start of your program for GETMGROUP to work. The
following
variables will be loaded:
Example:
Uses MGROUP
GetMGROUP
WriteLn ('Your currently in the ', MGROUPNAME, ' group!')
Syntax:
Function GETPROMPT (N : Word) : String
Description:
This function will return a prompt from the current
user's
language file. The passed N varliable is the prompt
number to
return.
Example:
WriteLn(GetPrompt(1))
Syntax:
Function GETUSER (N: Integer) : Boolean
Description:
This procedure will read user data into the USER
variables. The
supplied N is the record number to read. The function
returns
true if the record was read, or false if a record was not
read.
The following USER variables will be set when a record is
read:
Example:
Var A Integer
A := 1
While GetUser(A)
WriteLn ('User Alias: ', UserAlias)
A := A + 1
WEnd
The above example will list all user accounts on the BBS
system.
<UNDOCUMENTED AS OF 02/17/02>
Syntax:
Procedure GETTHISUSER;
Description:
This procedure loads the user information for the
currently
logged in user into the USER variables. See the GETUSER
function for a reference of the USER variables.
Example:
GetThisUser
WriteLn ('Welcome to this BBS, ', UserAlias)
WriteLn ('You have called ', UserCalls, ' times!')
<UNDOCUMENTED AS OF 02/17/02>
Syntax:
Procedure PUTFGROUP
Description:
This procedure will save the current file group CFG
variables
back to the filebase data. "USES FBASE" command must be
used at
the start of your program for PUTFGROUP to work. The
following
variables will be saved:
Example:
Uses FBASE
FGROUPNAME := 'New FGROUP Name'
PutFGROUP
The above example will save the CFG variables into the
file
group data file.
PUTMBASE [BBS DATA ACCESS
FUNCTIONS]
Syntax:
Procedure PUTMBASE
Description:
This procedure will save the currently loaded MBASE
variables
intoa message base record. See the GETMBASE function for
a list
of valid MBASE variables.
Example:
If GetMBase(1) Then
MBaseName := 'Message Base #1'
PutMBase(1)
EndIf
The above example will read the data for message base #1,
set
the name to "Message Base #1" and write the data back to
the
data file.
Syntax:
Procedure PUTMGROUP
Description:
This procedure will save the current msg. group CFG
variables
back to the filebase data. "USES MBASE" command must be
used at
the start of your program for PUTMGROUP to work. The
following
variables will be saved:
Example:
Uses MBASE
MGROUPNAME := 'New FGROUP Name'
PutMGROUP
The above example will save the CFG variables into the
msg.
group data file.
<UNDOCUMENTED AS OF 02/17/02>
Syntax:
Procedure PUTTHISUSER
Description:
This procedure will save the USER variables into the
currently
logged in user's record. See the GETUSER function for a
list of
the USER variables which are saved by the PutThisUser
function.
Example:
GetThisUser
WriteLn ('Welcome ', UserAlias, '. Deleting your
account...')
UserDeleted := True
PutThisUser
HangUp
The above example will load the USER variables with the
currently logged in user's information, then mark them as
deleted with the UserDeleted variable. Their account is
then
saved with the PutThisUser procedure and then they are
hangup
on using the HangUp command.
PUTUSER [BBS DATA ACCESS
FUNCTIONS]
Syntax:
Procedure PUTUSER (N: Integer)
Description:
This procedure will save the USER variables into the user
file.
The passed N parameter is the record number to save
under. See
the GETUSER function for a list of the USER variables
which are
saved by the PutUser procedure.
Example:
If GetUser(1)
UserDeleted := True
PutUser(1)
EndIf
The above example will attempt to load the data from user
record 1 into the USER variables. If the data is loaded
without
any errors, it will mark the user as deleted using the
USERDELETED variable, and then save the record back to
the user
file.
Syntax:
Procedure SETPROMPT (N : Word, String)
Description:
This function will set a prompt in the current user's
language
file to the specified string. The N variable is the
prompt
number to replace.
Example:
=================================================================
-----------------------------------------------------------------
INPUT [INPUT
FUNCTIONS]
Syntax:
Function INPUT (Field: Byte,
Max: Byte,
Mode: Byte,
Default: String) : String
Description:
This function gives input to the user, and returns the
result of
the input as a string variable.
Example:
Var Str String
Write ('Enter something: ')
Str := Input (30, 30, 1, '')
The above example will print the text "Enter something: "
to
the screen and the allow input of up to 30 characters in
length, using input type 1 (allows all characters). No
default
text has been supplied so the input field will be empty
by
default.
INPUTNY [INPUT
FUNCTIONS]
Syntax:
Function INPUTNY (Text: String) : Boolean
Description:
This function prompts the user with a Yes/No question,
defaulting to No. TRUE will be returned if the user
answered
Yes, or FALSE if the user answered No. The passed Text
variable
is the text that is displayed to the user asking the
question.
Example:
If Not InputNY('Do you want to run this program? ')
Halt
EndIf
The above example will prompt the user with the Yes/No
question
passed as <Text>. This question will default to No. If
the user
answers No, the program will halt from being executed.
INPUTYN [INPUT
FUNCTIONS]
Syntax:
Function INPUTYN (Text: String) : Boolean
Description:
This function prompts the user with a Yes/No question,
defaulting to Yes. TRUE will be returned if the user
answered
Yes, or FALSE if the user answered No. The passed Text
variable
is the text that is displayed to the user asking the
question.
Example:
If Not InputYN('Do you want to run this program? ')
Halt
EndIf
ISARROW [INPUT
FUNCTIONS]
Syntax:
Function ISARROW : Boolean
Description:
This function is used along with the READKEY function.
After
READKEY is called, this function can be checked to
process
various extended keys, such as arrow keys. When ISARROW
is
true, READKEY will return the following:
Example:
Var Ch Char
Ch := ReadKey # Input one key
If IsArrow # Is key an arrow key?
If Ch = 'H'
WriteLn ('Up arrow')
ElseIf Ch = Chr(80)
WriteLn ('Down arrow')
EndIf
Else # No arrow key.
WriteLn ('You entered character: ', Ch)
EndIf
The above example reads a key with READKEY and then uses
the
ISARROW function to process the Up Arrow and Down Arrow
keys.
ISLOCALKEY [INPUT
FUNCTIONS]
Syntax:
Function ISLOCALKEY : Boolean
Description:
This function is used along with the READKEY function.
After
READKEY is called, this function can be checked to see if
the
key just entered was from the local keyboard or not.
Example:
Var Ch Char
Ch := ReadKey
If IsLocalKey Then
WriteLn ('Was entered from the local keyboard')
Else
WriteLn ('Was entered from the remote keyboard')
EndIf
KEYPRESSED [INPUT
FUNCTIONS]
Syntax:
Function KEYPRESSED : Boolean
Description:
This function returns TRUE if a key has been pressed
either
remotely or locally. Keep in mind two things about this
function:
Example:
Repeat
Until KeyPressed
WriteLn ('You pressed a key!')
The above example will wait for a key to be pressed and
then
write to the screen "You pressed a key!".
ONEKEY [INPUT
FUNCTIONS]
<UNDOCUMENTED AS OF 02/17/02>
READKEY [INPUT
FUNCTIONS]
Syntax:
Function READKEY : Char
Description:
This function will read a key from the buffer and return
it as
a char variable. If there are no keys in the buffer,
readkey
will wait for a key to be pressed.
Example:
Var Ch Char
Repeat Until KeyPressed
Ch := ReadKey
WriteLn ('You entered: ', Ch)
STUFFKEY [INPUT
FUNCTIONS]
Syntax:
Procedure STUFFKEY (S : String)
Description:
This function will stuff a string of text into the
keyboard
buffer. This can be used to force your program into
thinking
the user had actually typed <S>.
Example:
Var Ch Char
StuffKey ('A')
Ch := ReadKey
WriteLn ('You entered: ', Ch)
The above example will stuff the character "A" into the
input
buffer, where it will be read into Ch using the ReadKey
function. It is possible to stuff entire strings of text
into
the buffer too.
Example:
Var Str String
StuffKey 'Hello World'
Str := Input (20, 20, 1, '')
The above example will stuff "Hello World" into the input
buffer. This will cause the input function to think the
user
has actually typed in "Hello World". In this case, the
above is
the same as supplying "Hello World" in the <DEFAULT>
field of
the Input function.
=================================================================
-----------------------------------------------------------------
CLS [OUTPUT
FUNCTIONS]
Syntax:
Procedure CLS
Description:
Clears the screen and returns the cursor to the top left
side
of the screen.
Example:
CLS
WriteLn ('The screen was just cleared!')
DISPFILE [OUTPUT
FUNCTIONS]
Syntax:
Procedure DISPFILE (FileName String)
Description:
This procedure displays a text or ANSI file to the
screen. If a
path not included in the passed filename, Mystic will
look for
the file in the language text file directory. If no file
extension is provided in the passed file name, Mystic
will
display the correct file according to the user's graphics
settings (ie .ANS for ANSI, .ASC for non-ansi).
Example:
DispFile ('WELCOME')
GOTOXY [OUTPUT
FUNCTIONS]
Syntax:
Procedure GotoXY (X Byte, Y Byte)
Description:
Locates the cursor to the specified X and Y position on
the
screen. This procedure only works if the user has ANSI
terminal
emulation enabled.
Example:
CLS
GotoXY (1, 10)
Write ('This is the 10th line of the screen')
ISNOFILE [OUTPUT
FUNCTIONS]
Syntax:
Function IsNoFile : Boolean
Description:
Returns TRUE after a call to DISPFILE if the file that
was
attemped to display did not exist.
Example:
Begin
DispFile('HELLO')
If IsNoFile Then
WriteLn ('HELLO.XXX does not exist.')
EndIf
End
MOVEX [OUTPUT
FUNCTIONS]
Syntax:
Procedure MoveX (XPos Byte)
Description:
This procedure moves the cursor from the current position
to
the passed X coordinate on the screen. This procedure
only
works if the user has ANSI compatible terminal.
Example:
Begin
MoveX (25)
Write ('This text is on column 25')
End
MOVEY [OUTPUT
FUNCTIONS]
Syntax:
Procedure MoveY (YPos Byte)
Description:
This procedure moves the cursor from the current position
to
the passed Y coordinate on the screen. This procedure
only
works if the user has ANSI compatible terminal.
Example:
Begin
MoveY (10)
Write ('This text is on line 10')
End
TEXTATTR [OUTPUT
FUNCTIONS]
Syntax:
Function TextAttr : Byte
Description:
This function returns the current text attribute. See the
help
for WRITELOCALXY for a detailed description of the text
attribute colors.
Example:
Begin
WriteLn ('Text attribute is: ' +
Int2Str(TextAttr))
End
TEXTCOLOR [OUTPUT
FUNCTIONS]
Syntax:
Procedure TextColor (Color Byte)
Description:
This procedure changes the current text color to the
passed
text attribute. See the help for WRITELOCALXY for more
detailed
information on the text attribute.
Example:
Begin
TextColor (31)
WriteLn ('This text is a White on Blue
Background!')
End
WHEREX [OUTPUT
FUNCTIONS]
Syntax:
Function WHEREX : Byte
Description:
This function returns the current X coordinate of the
cursor.
Example:
Var X Byte
Var Y Byte
X := WhereX
Y := WhereY
WriteLn (' World')
GotoXY (X, Y)
WriteLn ('Hello')
WHEREY [OUTPUT
FUNCTIONS]
Syntax:
Function WHEREY : Byte
Description:
This function returns the current Y coordinate of the
cursor.
Example:
Var X Byte
Var Y Byte
X := WhereX
Y := WhereY
WriteLn (' World')
GotoXY (X, Y)
WriteLn ('Hello')
WRITE [OUTPUT
FUNCTIONS]
Syntax:
Procedure WRITE (Text)
Description:
This procedure is used to write text to the screen
without
going to the next line (ie, without sending a carriage
return).
Examples:
Write ('Hello ')
Write ('World')
WRITELN [OUTPUT
FUNCTIONS]
Syntax:
Procedure WRITELN (Text)
Description:
This procedure outputs text to the screen. Its
functioning is
identical to the WRITE statement except that it goes to
the
next line after the text is printed (ie, it sends a
carriage
return).
Example:
WriteLn ('Hello')
WriteLn ('World')
WRITELOCALXY [OUTPUT
FUNCTIONS]
Syntax:
Procedure WriteLocalXY (X Byte, Y Byte, Text String, Attr
Byte)
Description:
This procedure allows text to be written to the local
screen
only, at a specified X/Y position and text attribute.
Example:
WriteLocalXY (1, 1, 'Only printed on the local screen',
31)
=================================================================
-----------------------------------------------------------------
ACS [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function ACS (AcsStr String) : Boolean
Description:
Checks an access string with the current user's
information and
returns either TRUE or FALSE based on if they user
passed.
Example:
If ACS('s20') Then
WriteLn ('Your security level is higher than
20!')
Else
WriteLn ('Your security level is less than 20!')
EndIf
DELAY [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure DELAY (MilliSec Word)
Description:
Delays for a specified number of milliseconds
Example:
WriteLn('Pausing for 1 second...')
Delay(1000)
EXIT [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure EXIT
Description:
Exits the immediate procedure, structure, or loop.
Example:
Begin
For A := 1 to 10 do
if A = 5 then exit EndIf
Pend
GETUSERTIME [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function GETUSERTIME
Description:
Returns the number of minutes a user has remaining.
Example:
Var MinLeft
MinLeft := GETUSERTIME
WriteLn('You have ', MinLeft, ' minutes left online!')
GRAPHICS [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function GRAPHICS : Byte
Description:
This function returns the user's current graphics mode in
numerical format:
Example:
If Graphics = 1
WriteLn ('ANSI graphics')
Else
WriteLn ('ASCII graphics')
EndIf
HALT [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure HALT
Description:
Halts execution of the program and returns the user
immediately
back to the BBS.
Example:
If Graphics = 0 Then
WriteLn ('Sorry, this program requires ANSI
graphics.')
Halt
EndIf
HANGUP [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure HANGUP
Description:
This procedure will stop the program immediately, hangup
up on
the user, and return Mystic BBS to the waiting for caller
screen.
Example:
If InputYN ('Do you want to hangup now? ')
HangUp
EndIf
LOCAL [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function LOCAL : Boolean
Description:
This function returns TRUE if the user is logged into the
BBS
system locally. It will return FALSE if the user is
connected
via a remote location.
Example:
If Local Then
WriteLn ('Local caller detected.')
Else
WriteLn ('Remote caller detected.')
EndIf
MENUCMD [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure MENUCMD (CM: String, Data: String)
Description:
This procedure will allow menu commands to be ran from
within a
program. <CM> is the menu command, and <DATA> is the menu
command optional data.
Example:
MenuCmd ('NW', '')
The above example will run the menu command "NW" with the
optional data field set to nothing. This example will
display
the Who's Online list. See MYSTIC.DOC for a list of all
available menu commands.
NODENUM [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function NODENUM : Byte
Description:
This function returns the current node number which the
program
is being ran on.
Example:
WriteLn ('Welcome to node number ', NodeNum)
PARAMCOUNT [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function PARAMCOUNT : Byte
Description:
This function is used to determine the number of command
line
options which have been passed to the MPE program. For
more
information, see the PARAMSTR function.
Example:
If ParamCount < 2
WriteLn ('Invalid command line.')
Halt
EndIf
PARAMSTR [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function PARAMSTR (Number : Byte) : String
Description:
This function returns the command line option specified
by the
NUMBER parameter. A command line is the optional data
which
is passed on the "Data" field of a menu command. For
example,
when defining a menu command which executes an MPE
program in
the menu editor, the text after the program name becomes
command line options.
Menu Command: GX
Data : BULLETIN p1 p2 p3 p4
RANDOM [MISCELLANEOUS
FUNCTIONS]
Syntax:
Function RANDOM (Max: Word) : Word
Description:
This function will return a random number within the
range
specified.
Example:
Var A Byte
A := Random(255)
WriteLn (A)
<UNDOCUMENTED AS OF 02/17/02>
SYSOPLOG [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure SysopLog (Text String)
Description:
This procedure adds a line of text to the current node's
Sysop
log file. The date and time will automatically be added
into
the log as well, keeping the same format as all the other
entries into the log.
Example:
SysopLog ('This will be in the log file now!')
UPUSER [MISCELLANEOUS
FUNCTIONS]
Syntax:
Procedure UPUSER (Sec: Byte)
Description:
This procedure will upgrade the currently logged in
user's
security level using the validation system. The passed
value
is the security level to upgrade to and must be between
the
range of 0 to 255.
Example:
WriteLn ('Upgrading your access to level 20')
UpUser (20)
The above example will do a validation upgrade to the
security
level of 20.
.---------------------------------------------------------------.
| |
| 9.0 TECHNICAL REFERENCE |
| |
+---------------------------------------------------------------+
| |
| 9.1 ....... ACS System |
| 9.2 ....... MCI Display Codes |
| 9.3 ....... MCI Control Codes |
| 9.4 ....... Color Codes |
| 9.5 ....... Menu Editor Hotkeys |
| 9.6 ....... Local SysOp Hotkeys |
| 9.7 ....... Door System MCI Codes |
| 9.8 ....... Archive System MCI Codes |
| 9.9 ....... Protocol System MCI Codes |
| 9.10 ...... Event System MCI Codes |
| 9.11 ...... ERRORLEVELS returned by Mystic BBS |
| 9.12 ...... Mystic BBS Error Codes |
| 9.13 ...... ANSI.SYS Codes |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (9.1) ACS SYSTEM |
| |
`---------------------------------------------------------------'
As you can see, the access command system gives Mystic BBS an
incredible amount of flexibility when it comes to system
security!
.---------------------------------------------------------------.
| |
| (9.2) MCI DISPLAY CODES |
| |
`---------------------------------------------------------------'
MCI codes are used to display various information about the BBS
system
or the currently logged in user. They can be used in all prompts
and
display files throughout Mystic BBS, and are in the format of |XX
(where XX is replaced by any one of the codes listed below). The
following is an example of using the MCI system in a display
file:
Original text:
--------------
Welcome to this BBS, |UN.
Codes &0 through &9 are used in the language file and hold
different
values for different display strings. They are called Prompt Info
MCI codes. The supported prompt info codes for each string are
listed in the language file and the language editor.
Codes !0 through !9 are used with the template system and are
called
Screen Info MCI codes. They are usually used to define screen
coordinates in each template file. For more information on these
MCI codes and the template system, see the section on the Mystic
BBS
Template System.
IF - Turns the input field box OFF for the next input.
IL - Displays the user's invisibility status (ON/OFF).
IN - Format: INxx. Limits input field to XX characters.
KB - Displays the number of KB in user's KB bank.
KT - Displays the user's total number of download kilobytes
today
LO - Displays the date of the user's last login.
MB - Displays the name of the current message base.
ME - Displays the number of emails the user has sent.
MG - Displays the name of the user's current message group.
ML - Displays on/off based on the user's lightbar message
index.
MN - Displays the network name for the current message base.
MP - Displays the number of messages the user has posted.
ND - Displays the current node number
NE - Displays the number of minutes until the next system
event.
OS - Displays the Mystic BBS OS version. IE: DOS, WIN, or OS2.
PA - Pause. Sends the pause prompt and waits for the user to
press a key.
.---------------------------------------------------------------.
| |
| (9.3) MCI CONTROL CODES |
| |
`---------------------------------------------------------------'
The following three MCI codes are used to set how the next
displayed
MCI code is formatted:
$Rxx - Pads the next MCI code to the right with spaces. Where
xx is the number of spaces to pad. It must ALWAYS be
two characters, so if you want to pad an MCI to 5
spaces,
you MUST enter |$R05, not |$R5.
$Lxx - Pads the next MCI code to the left xx spaces.
$Cxx - Pads the next MCI code to the center. Where xx is the
number of spaces to center the MCI within.
Original text:
--------------
|$R30|UNHello
Original text:
--------------
Hello|$L30|UN
Original text:
--------------
|$C70|UN
Original text:
--------------
Hello
|$D20*
.---------------------------------------------------------------.
| |
| (9.5) MENU EDITOR HOTKEYS |
| |
`---------------------------------------------------------------'
When using the menu editor you assign each of the menu items in
your
menu a hotkey. This hotkey can be any ascii character A-Z, 0-9,
symbols
etc, whatever you like -- or a combination thereof. But the real
power
of Mystic BBS menuing lies in the special hotkeys and they are
defined
in detail below:
The other special hot keys are for user input keys:
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Z,
0,1,2,3,4,5,6,7,8,9
`,~,!,@,#,$,%,^,&,*,(,),-,_,=,+,[,{,],},;,:,',",\,|,<,,,>,.,/,?
.---------------------------------------------------------------.
| |
| (9.6) LOCAL SYSOP HOTKEYS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (9.7) DOOR SYSTEM MCI CODES |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (9.8) ARCHIVE SYSTEM MCI CODES |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (9.9) PROTOCOL SYSTEM MCI CODES |
| |
`---------------------------------------------------------------'
%0 = Comport handle (Win32 and OS/2 only)
%1 = Comport which the modem is using.
%2 = The baud rate the user is currently connected at.
%3 = Name of the file being transferred.
%4 = Baud rate as setup in the Node settings (locked).
.---------------------------------------------------------------.
| |
| (9.10) ERRORLEVELS RETURNED BY MYSTIC BBS |
| |
`---------------------------------------------------------------'
ERRORLEVELS Listing
-------------------
0 Normal Exit
1 Critical Error
5 New FidoNet mail has been entered
6 New UseNet (newsgroup) mail has been entered
7 Both FidoNet and UseNet mail have been entered
255 [Q]uit command was issued from the WFC Screen
.---------------------------------------------------------------.
| |
| (9.11) MYSTIC BBS ERROR CODES |
| |
`---------------------------------------------------------------'
Mystic BBS has several run-time error codes which can assist you
in
figuring out why something went wrong. If an error happens while
Mystic
BBS is running, it will return one of these codes in an error
message
to the user and then terminate the call. In the sysop log file
the
error code will be logged. Below is a list of what each of those
error
codes mean.
RUNTIME ERROR CODES
-------------------
.---------------------------------------------------------------.
| |
| (9.12) ANSI.SYS CODES |
| |
`---------------------------------------------------------------'
The ANSI escape codes for screen control supported by the MS-DOS
ANSI.SYS device are a subset of the ANSI 3.64-1979 standard.
They are used by Oblivion/2 to manipulate screen information,
primarily cursor position and color changes.
================================================================
Escape
Sequence: Meaning:
================================================================
Esc[2J Clear screen. Place cursor in upper left corner
(home position).
Esc[K Clear from cursor to EOL.
----------------------------------------------------------------
Esc[row;colH Position cursor. (Row is the y coordinate in the
range of 1-25 and col is the x coordinate in the
range of 1-80 for 80-by-25 text display modes).
Escape sequences terminated with the letter f
instead of H have the same effect. (Esc[H will
home cursor).
*NOTE* Since ANSI.SYS doesn't support go to X column in
current row, and thus TheDraw doesn't add that
code in, Obv/2 uses it's own. Esc[;xxH should go
to XXth column in first row, but for middle in
the repeat ansis (and only middle in the repeat
ansis), it goes to the XXth column in the current
row. You therefore need to edit your repeat ansi
in an ascii editor when you've finished the
middle part. See the section about repeat ansis
for more information.
-----------------------------------------------------------------
Esc[nA Move cursor up n rows.
Esc[nB Move cursor down n rows.
Esc[nC Move cursor right n rows.
Esc[nD Move cursor left n rows.
Esc[s Save current cursor position.
Esc[u Restore cursor to saved position.
Esc[6n Return current cursor position on the standard
input handle in the format esc[row;colR.
-----------------------------------------------------------------
Esc[nm Select character attributes (values for n):
0=no special attibutes
1=high intensity
2=low intensity
3=italic
4=undeline
5=blink
6=rapid blink
7=reverse video
8=concealed text (no display)
30=foreground black
31=foreground red
32=foreground green
33=foreground yellow
34=foreground blue
35=foreground magenta
36=foreground cyan
37=foreground white
40=background black
41=background red
42=background green
43=background yellow
44=background blue
45=background magenta
46=background cyan
47=background white
=================================================================
Esc[=nh Select display mode (values for n):
0=40-by-25, 16-color text (color burst off)
1=40-by-25, 16-color text
2=80-by-25, 16-color text (color burst off)
3=80-by-25, 16-color text
4=320-by-200, 4-color graphics
5=320-by-200, 4-color graphics (color burst off)
6=620-by-200, 2-color graphics
-----------------------------------------------------------------
14=640-by-200, 16-color graphics (EGA and VGA)
15=640-by-350, 2-color graphics (EGA and VGA)
16=640-by-350, 16-color graphics (EGA and VGA)
17=640-by-480, 2-color graphics (MCGA and VGA)
18=640-by-480, 16-color graphics (VGA)
19=320-by-200, 256-color graphics (MCGA and VGA)
Escape sequences terminated with l instead of h
have the same effect.
-----------------------------------------------------------------
Esc[=7h Enable line wrap.
Esc[=7l Disable line wrap.
=================================================================
ASCII Bell ^G
-----------------------------------------------------------------
Esc[#;string;p Reassign a "string" or another value to a key.
The first # or esc[#;#p can be also written as 0;# for
extended ASCII key codes.
=================================================================
.---------------------------------------------------------------.
| |
| 10.0 ADVANCED TIPS AND TECHNIQUES |
| |
+---------------------------------------------------------------+
| |
| 10.1 ...... Using AR Flags |
| 10.2 ...... Using the OK Flag |
| 10.3 ...... Creating GLOBAL Menu Commands |
| 10.4 ...... Using Random Display Files |
| 10.5 ...... Configuring File/Message Groups |
| 10.6 ...... Creating a Mandatory Voting Question |
| 10.7 ...... Creating a Mandatory Message Base for Sys. News |
| 10.8 ...... File Upload Testing |
| 10.9 ...... Stuffing the Input Buffer using MPL Scripting |
| 10.10 ..... Removing Pauses from Continuous Display Files |
| 10.11 ..... Using Mass Mail |
| 10.12 ..... Exporting All-Files Listing to HTML |
| 10.13 ..... Importing FILES.BBS Descriptions from CD-ROMs |
| 10.14 ..... Setting up Doors under DOS/OS/2 |
| 10.15 ..... Setting up Doors under Windows |
| 10.16 ..... Setting up Doors under Linux |
| 10.17 ..... Setting up Networked Message Bases (ECHOMAIL) |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.1) USING AR FLAGS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.2) USING THE OK FLAG |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.3) CREATING GLOBAL MENU COMMANDS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.4) USING RANDOM DISPLAY FILES |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.5) CONFIGURING FILE/MESSAGE GROUPS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.6) CREATING A MANDATORY VOTING QUESTION |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.7) CREATING A MANDATORY MESSAGE BASE FOR SYSTEM NEWS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.8) FILE UPLOAD TESTING |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.9) STUFFING THE INPUT BUFFER USING MPL SCRIPTING |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.10) REMOVING PAUSES FROM CONTINUOUS DISPLAY FILES |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.11) USING MASS MAIL |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.12) EXPORTING ALL-FILES LISTING TO HTML |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.13) IMPORTING FILES.BBS DESCRIPTIONS FROM CD-ROMS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.14) SETTING UP DOORS UNDER DOS AND OS/2 |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.15) SETTING UP DOORS UNDER WINDOWS |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.16) SETTING UP DOORS UNDER LINUX |
| |
`---------------------------------------------------------------'
.---------------------------------------------------------------.
| |
| (10.17) SETTING UP NETWORKED MESSAGE BASES (ECHOMAIL) |
| |
`---------------------------------------------------------------'
* EOF