º Mythical Kingdom Software º MKXRS - XRS Reply/Message Tosser
º Ü Ü Ü Ü º
º ÛÛÛ Þß Þß ÛÛÛ º Version 1.02
º ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ º
º ÛÛÛÛÛÛ°°°ÛÛÛÛÛÛ º Copyright 1990, 1991 by Mark May
º ±±±±±±±±±±±±±±±±±±±±±±± º
* Works with Remote Access / Quickbbs / Superbbs
* RA mulinode aware, uses environment variable to find system
directory and Config.RA to find everything else (searching
directories in the same order that RA does)
* Checks user security and flags against the message base write
security moving disallowed messages to a default area.
* Messages are put into the message base to appear that they
have been entered online, so that XRS can be used with Fido
technology or Non-Fido technology echos (such as RIME or
HyperMail or QWK based networks)
* Updates users record (via ExitInfo.Bbs) for messages posted
* Updates system log file to show messages posted
* Updates users record (via ExitInfo.Bbs) for Pending NetMail
* Checks users NetMail credit and moves messages over the limit
to the default message area.
* NetMail messages automatically clear the FileRequest and
FileAttach attributes to prevent security problems.
* Allows separate sysop definable costs for Normal Netmail,
Crash, Mail within your net, and InterZone NetMail
* Optionally allows you to force messages to use the UserRecord
name to improve security against hacked reply packets
* Optionally allows you to use your normal Bbs Origin line
(again a protection against hacked reply packets).
* Replies are tossed before user returns to Bbs
* Easy set-up just run MkXrsCfg and then add one line to your
RAQMX batch file to run MkXrs
* Automatic use of the correct unpack program (LZH/ZIP/ARC/
ZOO/ARJ/DWC/HYP) as long as they exist in any directory on the
Path or in the current directory.
* Sends private message to the sysop (in the default area)
to inform him/her about any messages that were moved to
the default area.
* Local mode operation option
* Free for any RA/Qbbs/Sbbs sysop
* Uses a swapping exec to call the unpacking programs leaving
less than 12K of MkXrs resident while the unpackers are
* Duplicate message checking with configurable number of days
This set of programs comes without warranty neither expressed
nor implied. It is your responsibility to see that these
programs meet your needs. The author assumes no liability
for any damages or results that occur from using or the
inability to use these programs. As with all bbs utilities,
there is some risk of problems even after testing, so full
and regular backups are important! If you do not agree with
this disclaimer, you are prohibited from running these programs.
Running them confirms your agreement to these conditions.
The programs MkXrs.Exe and MkXrsCfg.Exe should be copied to
any directory that is on your Dos path. Then switch to the
main bbs directory (for Quickbbs or SuperBbs) or to each node
directory (for Remote Access) and run MkXrsCfg to create an
MkXrs.Cfg file that will be in the current directory when
MkXrs runs. See section below for explanation of configuration
Because MkXrs updates ExitInfo.Bbs, you will want to install it
as a type 15 door on Quickbbs/SuperBbs, but may install it as
either a type 7 or type 15 door on Remote Access. It must run
while the caller is still online so that everything will be
updated properly. The easiest way to do this is to use the
sample batch file included here and add a menu choice like:
For Remote Access use a Type 7 with optional data of
*C /C RAQMX.BAT *M *!
For Quickbbs or SuperBbs use a Type 15 with an errorlevel
and then add a line to your batch file to "Call RAQMX.BAT"
when it detects that errorlevel.
MkXrsCfg presents a screen of fields and options that you
must set so that MkXrs will operate correctly. To run it,
change to the directory that your node or bbs runs in and
run MkXrsCfg. After setting the options press (Esc) to
save the changes and exit or Control-X to exit with no
without saving any changes.
Bbs Path: For Quickbbs and SuperBbs, MkXrs needs to know
the path to the directory that contains your message
base files. A trailing backslash will be automatically
added if needed. For Remote Access the environment
variable and config files are used to locate the files
XRS Packet Path: This is the path that your incomming
compressed XRS packets are uploaded to (usually
\QMX\). Any compressed packets in this directory
are processed along with any uncompressed packets in
the current directory only.
Use Bbs Origin: Forces the use of your normal Origin line
(including special origin lines for each message area
in an RA environment). It will also cause the tearline
to be replaced by '--- ' followed by the text that you
put in the Config tearline field.
Default Msg Area: When the user does not have the security
or flags to write to the area he requests, or if he is
sending netmail and doesn't have enough credit for it,
the message will instead be moved to this default
message area (should be a LOCAL message area). This
area will also be used for messages to the sysop from
MkXRS indicating the reason messages were moved to the
Bbs Type: Choose either Remote Access, Quickbbs, or
SuperBbs from the picklist and press enter.
Force User Name: Forces all message to use the user name
from ExitInfo.Bbs instead of the name sent by the user.
This slightly improves security, but does eliminate the
use of alias names.
NetMail Cost: If the user has access to the NetMail message
area and sends a normal netmail message, this is the
message cost to use for netmail credit accounting.
Crash NetMail Cost: This is the cost to use when the
Netmail message is marked as a "crash" message.
MyNet NetMail Cost: This cost is used if the message is
being sent to another system in the same net as yours.
InterZone NetMail Cost: This is the cost when the message
contains an ^aINTL to indicate that it is being sent
to another zone.
Use Direct Screen Writes: Option to allow direct screen
writes for a full screen status display. If you are
running a multitasker this option should be set to "N",
otherwise you probably should leave it set to "Y".
Dupe Checking Days: The number of days old a prior message
can be that will still cause the current (matching)
message to be considered a dupelicate. Note that the
4000 message storage limit may limit the effectiveness
of using a large number of days. A large number of days
also (very slightly) increases the chance of falsely
flagging messages as duplicates. I suggest a moderate
number like 7 to 14 days.
Tear Line: When using the force Bbs origin option the
text here will be added to the tear line, even though
I personally prefer plain tearlines to avoid message
When problems are encountered an error message will be
displayed to the screen. As a general rule, if the message
is "Unable to Open/Reset" a file, the problem is that the
named file couldn't be found. In this case you should check
that the file does exist, and that the configuration gives the
correct path to find it.
Messages such as "ErrorLevel ?? returned from unpacker"
indicate that the unpacking program (Lharc, PkUnzip, etc) have
indicated an error when they ran. The meaning of the errorlevel
should be given in the documentation for the unpacker. The most
common error is insufficient memory. If this happens you should
switch to the batch file method of calling MkXrs instead of
having RQSEX140 calling it directly.
MkXrs follows the Remote Access style of message base locking.
When writing messages it opens MsgInfo.Bbs in ReadWrite/DenyWrite
mode which means that any other messages being entered at the
same time on other nodes must wait for this write to complete.
This appears to be the same technique (and result) that RA uses,
but may be more noticeable since MkXrs is tossing several messages
while an online user would only enter one at a time. If this
causes too many delays, future versions may close the message
base after every "x" messages to minimize the disruptions.
When tossing messages in a multinode environment, it is very
important that you have each nodes RAQMX inbound path set to
a different directory. Otherwise MkXrs may attempt to toss a
partially uploaded packet or toss messages as if they were from
the wrong node's user.
To operate MkXrs in local mode, just change to the directory
that contains your MkXrs.Cfg file and type:
MkXRS L FirstName LastName
(replacing FirstName and LastName with the name of the person
who should be used as the message originator (to update msg
stats and netmail credit)
Duplicate Message Checking
MkXrs maintains a file (MkXrs.Dup) of the CRC's of selected
portions of the messages tossed to the message base. The
values are stored in an array based on the low order portion
of the Crc value. This allows duplicate checking to be very
fast via a direct lookup (with limited collision handling),
but does mean that there is some (low) risk that duplicates
can slip thru. The full CRC value is stored along with the
date the message was tossed. If the date is older than the
configured number of days to check for dupes or the remainder
of the CRC does not match, then the message is not considered
to be a duplicate. This approach should yield a very low risk
of false alarms on duplicates.
Free Registration MKXRS v1.02
NO registration fee is required for these programs. I
initially wrote the utility to make operation of RAQMX
smoother on my own Bbs (especially with non-Fido technology
networks and want to make them freely available to other
sysops. I'd like to hear from those that find the program
useful (especially any suggestions for improvements), and
have included a short form to make that convenient.
City, ST Zip _______________________________________________
Bbs Name: _______________________________________________
Bbs Type (Remote Access/Quickbbs/SuperBbs) __________________
Bbs Phone Number ( ) -
Any suggestions or comments _________________________________
Registrations should be mailed to:
Mythical Kingdom Software
P.O. Box 24808
Huber Heights, OH 45424
You may leave questions or get the latest version by
Mythical Kingdom Tech Bbs
Phone (513) 237-7737 9600 baud HST/V32
RIME (RelayNet) ->MYTHKING
Note various software products mentioned are trademarks by
the respective owners.