Category : BBS Programs+Doors
Archive   : TQM100.ZIP
Filename : TQM.DOC

Output of file : TQM.DOC contained in archive : TQM100.ZIP

Version 1.00
The QWK Mail Door for RBBS-PC
by Tom Collins


TQM is a QWK mail compatible door for RBBS-PC bulletin board systems.
It is compact, fast, highly configurable and easy to use. If you need
a mail door on your BBS, and like the QWK mail format, TQM may be just
the door you're looking for. If not, please pass it around (TQM is
shareware) so others can have a look.


TQM contains a multitude of features, including:

o Completely customizable - all menus, help files and even the
system command prompt can be modified to suit the SysOp's taste.

o RBBS' SmartText commands are interpreted near-universally, as
well as several TQM-specific SmartText commands.

o High-speed FOSSIL communications, at baud rates up to 38,400.

o Configurable support for ZIP, LZH, ARC and ARJ archivers,
including customizable command lines. The user can select an
archiver to use for downloads, and uploaded replies are
automatically checked for archive type, and the appropriate
unarchiver is executed.

o Compatibility with OverMail, and the normal "non-pure" mode.

o Internal support for all forms of RBBS FMS directories, even
including chained directories.

o TQM uses your RBBS PROTO.DEF file to obtain protocol
descriptions, so a wide range of external protocols can be used.
If RBBS can use a protocol, TQM probably can, too.

o Internal support for Walter Ames' CBAUD merge, which allows TQM
to pass the connect baud rate to external protocols.

o Ability to do bidirectional mail transfers using protocols like
BiModem. The user can upload a REPly packet while downloading a
QWK packet.

o Extended logging to a SysOp-configurable file.

o Internal RBBS-style file locking for DESQview and NetBIOS/SHARE
systems. Also, to facilitate multi-node operation, TQM
maintains separate work directories and log files for each node.

o Compact size - TQM requires approximately 90K of free RAM to
run, plus whatever memory is required to execute the archivers
and protocols.

System Requirements

o RBBS-PC v17.3A or later (v17.3C recommended).

o A FOSSIL driver, already loaded.


TQM is guaranteed to work as well as any Tom Collins utility (that is,
not at all) on your BBS. There's an OK chance that it won't trash
your RBBS system files, and a so-so chance that it won't reformat your
disk. If either of these happen, it may be time to look for a new QWK
door, eh?


TQM is shareware, but is not crippled in any way. If you use TQM for
a while, you should be a good guy (or gal) and register it. Details

Thanks To

Walter Ames, SysOp of the GreyHawk BBS, for beta testing,
encouragement, suggestions and menus. TQM would probably still be
"half-baked" without his help.

Setting Up TQM

How difficult setting up TQM is depends a lot on how customized your
RBBS system is. If you run a system "straight out of the box," TQM
will install very easily. If not, welp, now might be a good time to
print out the DOCs!

The first step in setting up TQM is to install it on your hard disk.
If you received a virgin copy of the TQM archive, you'll find that the
ZIP contains relative pathnames. If this is so, change to the disk
directory ABOVE where you'd like TQM installed (usually, this is
C:\RBBS) and type:


PKUNZIP will then create all of the TQM directories for you, extract
the files, and create a TQM.BAT in your current directory.

(If you don't know what a "PKUNZIP" is, you might want to put off
installing TQM until you're more familiar with BBSes.)

If you didn't receive a virgin archive, create a TQM directory
(C:\RBBS\TQM recommended) and create directories for the HELP, TEXT
C:\RBBS\TQM\DOCS). Move all of the *.HLP files from the TQM archive
into the HELP subdirectory, and move the WELCOME?, MENU? and NEWUSER?
files into the TEXT subdirectory. Put TQM.EXE, TQM.CFG and CM2TQM.EXE
in the TQM directory, and TQM.BAT in your RBBS directory. Move all
*.DOC files into the DOCS subdirectory.

Whether or not you received a virgin archive, now is the time to
create TQM's work directories. Make a work directory for TQM (this
parameter is configurable, but defaults to C:\RBBS\TQM\WORK), and
create directories for each node on your system below the work
directory. In a single node system, you'd create C:\RBBS\TQM\WORK\1.
In a three node system, you'd create C:\RBBS\TQM\WORK\1, ...\2 and

Next, modify the TQM.BAT file in your RBBS directory. This is the
door batch file that RBBS uses to invoke TQM. For most systems, the
supplied batch file should work fine.

Now, the tough part. Edit TQM.CFG and modify it to your setup. As
supplied, TQM.CFG contains the parameters that the "out of the box"
RBBS setup uses. If you've configured your system differently,
you'll have to type in the correct values for your system. Sufficient
information should be contained in the .CFG file for you to figure out
what each parameter if for. If not, refer to appendix A, which
details (in gruesome detail) what each parameter is for.

Finally, modify your RBBS setup to invoke TQM. The preferred method
is to use RBBS' DOORS.DEF file to invoke TQM.BAT with the system's
node number passed on the command line, but TQM.BAT should work, even
if you don't pass the node number.

Fossils and Other Dinosaurs

TQM uses a FOSSIL driver to do communications between your computer
and your modem. A FOSSIL is an installable device driver (installed
in your CONFIG.SYS file) that lets TQM interface to the COM port in a
computer-independent way. The most popular shareware FOSSIL drivers
are X00 and BNU, and are normally found on bulletin boards with names
like X00V123.ZIP or BNU180.LZH. To install a FOSSIL, simply download
the driver from a BBS, and add a line to your CONFIG.SYS that looks
like this:


When TQM runs and initializes the driver, you'll see a "logo" from
the FOSSIL author.

About Menus

TQM's menus are in the TEXT subdirectory, and are called MENU, MENUG
and MENUC. Two alternate sets of menus are also supplied, with the
extensions .GHK and .MSF. These are the TQM menus currently used on
the GreyHawk and MSFA BBSes. If you like either of these better than
the "stock" TQM menus, simply copy them on top of MENU, MENUG and
MENUC and you'll be all set.


CM2TQM is a crude little utility with a handy purpose - it allows you
to easily import your RBBS CONFMAIL.DEF file into TQM's .CFG file,
saving you the hassle of retyping all of your system conferences into
TQM.CFG. To use it, just type CM2TQM and follow the prompts.

Reaching the Author

If you have problems running or setting up TQM, or have suggestions or
bug reports, I can be reached on the FidoNet RBBS echomail conference,
or on the MSFA BBS (FidoNet 1:261/1047, (410) 536-1935). I also
monitor the RIME RBBS conferences, though less frequently.

Latest Version

The latest (and greatest?) version of TQM is always available on :

BBS: Data Number: FidoNet: RBBSNet: Speed:
The MSFA BBS (410) 536-1935 (1:261/1047) 2400 BPS
The GreyHawk BBS (410) 461-9943 (1:261/1116) (8:936/203) USR D/S
(410) 465-3891 (1:261/1117) (8:936/204) USR D/S

TQM can be file-requested by name, or using the Magic name "TQM".

Parting Words

Good luck... you'll need it!

-- Tom Collins

Appendix A - TQM.CFG Parameters

Parameter: SysOpPW Value: Secret Name

The name that the SysOp uses when logging on locally to RBBS. TQM
uses this parameter so it can find the SysOp's user record in the
RBBS users file.

Parameter: SysOpSec Value: 10

The SysOp's security level. Users with a security level above this
level will be allowed to download private mail that's not addressed
to them, and to see new "SysOp-only" files in the FMS directory.

Parameter: SystemName Value: Your RBBS-PC

This is a text string that's passed in a users QWK packet that
tells 'em the name of the system.

Parameter: BBSCity Value: My City, State

Another QWK-only text string that tells the city and state of the

Parameter: BBSPhone Value 301-123-4567

Yet another QWK-only parameter that tells the user the phone number
of the BBS. You should enter this parameter in the form shown

Parameter: BBSId Value: YOURRBBS

This is the base filename used when creating an archive for the
user, and is limited to 8 characters. This should be an
abbreviation for your BBS (Joe's Black Board might use something
like JOESBB). Uploaded replies are expected to use the filename

Parameter: FMSDir Value: C:\RBBS\DIR\FMS.DIR

TQM works with fixed-length FMS directories. This is the name of
your FMS directory. If you use "chained" FMS directories, this is
the name of the first FMS directory in the chain.

If you use "old-style" directories, set this entry to "FMSDir=" to
disable the new files scan. (Does anyone still use "old-style"
directories any more? If so... why?)

When searching FMS directories, TQM can properly handle any length
directory, and can chain to additional directories. In addition,
TQM can read the directory from the top or bottom (based on the
"header line" in the FMS). All of the FMS directory options ("*" for
headers, "\" for comments, and "=" for security-restricted files)
are dealt with by TQM in the same manner as RBBS.

Note: If you chain to additional FMS directories, be sure to
specify the full path in the "CHTO()" line of the FMS.

Parameter: BullPrefix Value: C:\RBBS\BULLETIN\B

This is the path and base name of your bulletin files. When TQM
does a scan for new bulletins, it uses this string as the base name
of the bulletin files, and appends the bulletin number to it.

Parameter: BullFCK Value: C:\RBBS\BULLETIN\B.FCK

This parameter serves "double duty." If you use numbered
bulletins, enter the number of bulletins on your system here. If
your bulletins are not numbered, enter the full path and file name
of your RBBS bulletin .FCK file here. TQM will use the .FCK file
to extract the bulletin names from.

If the user tells TQM to include new bulletins in his packet, TQM
uses this parameter, along with "BullPrefix," to find new
bulletins newer than the user's "last on" date.

Setting this parameter to nothing disables the new bulletin scan.

Parameter: NewsFile Value: C:\RBBS\TEXT\MAIN.NWS

The system news file. When TQM creates a QWK packet for the user,
it includes this file if it's newer than the users "last on" date.

Parameter: WelcomeFile Value: C:\RBBS\TEXT\WELCOME

The name of your main system welcome file. If you specify this
filename, TQM will include it in all downloadable QWK packets.

Parameter: ExitFile Value:

This is the filename of an ASCII or color text file that TQM will
include in the QWK packet as your system close-out screen. This is
NOT the name of your RBBS EPILOG.DEF file.

To use this entry, you have to create this file, or extract the
"display text" lines from your EPILOG.DEF.

Note: For the bulletins, the news file, the welcome file and the
exit file, TQM will send the color and ASCII graphics
versions of these files as determined by the user's graphics
default. TQM automatically searches for the "C" or "G"
versions of a filename for each. In addition, TQM will
remove or replace any SmartText commands before sending the
files to the user.

If the user specifies that his download format isn't QWK, TQM
will send the ASCII graphics versions of the files, but never
the color graphics versions.

Parameter: LogFile Value: TQMNODE{ND.LOG

TQM will happily log all kinds of things about its operation, but
you have to give it a filename to log to. If this entry is blank,
TQM won't log anything.

The log file is an ASCII text file, containing the date and time of
various system activities.

In order to make this logfile node-specific, you can use the
SmartText command {ND in the log file name. TQM will replace "{ND"
with a node number, like "1", when it runs.

Parameter: ProtoDef Value: C:\RBBS\XFER\PROTO.DEF

Enter the name and path to your RBBS protocol file here. If you
don't use a protocol file, you'll have to create one, in the
standard RBBS format. TQM will use it just like RBBS does, with
the following exceptions:

1. TQM ignores the questionnaire field.

2. TQM ignores the macro field.

3. Unlike RBBS, TQM doesn't care whether a protocol requires
8-bit, and 7-bit protocols are treated just like 8-bit ones.

4. TQM assumes that all protocols are on a different screen
line, and will mess up protocol descriptions that RBBS
displays as:

A)scii, X)modem, Y)modem, Z)modem, N)one

If RBBS displays your protocols like this:


You're OK.

5. TQM doesn't automatically add "None" to the protocol list -
you have to specifically include a "don't transfer" entry in
your PROTO.DEF, or users will never be able to abort a file
transfer from the protocol prompt.

6. TQM supports Walter Ames' CBAUD merge, and will correctly
pass the connect baud rate to a protocol, using the [CBAUD]

7. Protocols that are "doored" to by RBBS will be "shelled" to
by TQM, so you have to have enough memory to have both
TQM and the protocol in memory at the same time. Thus, it's
not a good idea to "shell" to TQM from your DOORS.DEF file.

TQM also does "advanced protocol writes" ("=A" in the fourth
protocol parameter) if necessary.

8. TQM doesn't verify the filename of the protocols, so if it's
listed, TQM assumes it can be executed (see note 1 below).
RBBS normally verifies that the protocol filename (.EXE)
exists, but TQM will execute protocols in the DOS PATH.


1. TQM supports the same control words that RBBS uses in the
protocol strings, i.e. [FILE], [BAUD], [PARITY], [PORT],
[PORT#] and [PROTO], in addition to [CBAUD].

2. TQM supports bidirectional protocols, like BiModem. Here's
how to set them up: add an entry to your PROTO.DEF for
BiModem, but in the download template, instead of using
[FILE] for the filename to send, use [SFILE], and tell
BiModem you'd like it to receive [RFILE]. After the download
is complete, if TQM finds a reply in its work directory, it
simply imports the contents of that file. Remember, if you do
this though, you'll have to create a TQM-specific PROTO.DEF,
as RBBS won't be able to use this modified PROTO.DEF.

3. TQM switches to your RBBS directory before executing a
protocol, and then switches back to the original directory
after the transfer.

4. There's an additional replacable parameter, called [NOTTQM]
that may be handy in your protocol strings. It's removed
by TQM when it executes a protocol, which lets protocols
which are invoked by batch files do testing to see who
invoked 'em. If RBBS invoked 'em, there'll be a parameter
called [NOTTQM], if TQM invoked 'em, that parameter will be

For example, lets say your template for uploading looks
like this:


Then your FASTPROT.BAT could look like this:

if %3==[NOTTQM] goto RBBS

rem Protocol invoked by TQM
c:\rbbs\xfer\fast.exe baud %1 send %2
goto End

rem Protocol invoked by RBBS
c:\rbbs\xfer\fast.exe baud %1 send %2


Parameter: WorkDir Value: C:\RBBS\TQM\WORK

Drive and directory where TQM should put its files before creating
the QWK archive, and where TQM should extract the uploaded REPly
to. A subdirectory off of this directory will actually be used,
based on the node number.

For each node, YOU have to create a directory off of the work
directory (see Setting Up TQM, above).

Don't add a backslash to this directory.

Parameter: RBBSDir Value: C:\RBBS

This parameter is the directory where TQM will look for RBBS'
DORINFOx.DEF and DRSTx.DEF files, and the protocols' XFER-x.DEF
file. (x is the node number).

Don't add a backslash to this directory name.

Note: In some RBBS installations, the XFER-x.DEF and DORINFOx.DEF
files are written to the RBBS directory, but DRSTx.DEF is put
in a node-specific directory. If this is the case on your
system, have your TQM batch file copy DRSTx.DEF to your RBBS
directory. The original TQM.BAT file does this.

Parameter: FileLock Value: None

When running in a multi-node configuration, TQM will lock and
unlock files just like RBBS does, but only for DESQview and
NetBIOS/SHARE configurations.

Enter "None", "DV" or "Share" in this parameter to tell TQM what
kind of file locking to do. Single node systems should enter

Parameters: EmphasizeOn

These parameters tell TQM what colors are configured on your
system. Use the string "ESC" in place of the escape character.

Note: TQM will interpret a subset of RBBS' SmartText commands when
displaying menus, help and other text files to the user. In
addition, TQM will replace these same SmartText commands in
the bulletins, welcome, news and exit files before passing
'em on to the user. The following are supported:

{C0 through {C4 - Colors.
{FN and {LN - User's first and last name.
{SL - Security level.
{DT and {TM - Date and time.
{FS and {LS - SysOp's first and last name.
{ND - Node number.
{NS and {PB - Nonstop and page break.
{CS - Clear screen (reset line counter).
{TR - Time remaining.
{VY and {VN - Overlay on and off.

The following commands are stripped:

{TE, {TL, {RP, {RR, {DD, {BD, {DB, {UB, {DL, {UL,
{FI, {TY, {TN, {BN and {CT

There are also several TQM-only SmartText commands:

{C5 - Turns on graphic emphasis.

{BI - The string "On " or "Off" depending on when
bulletins are included in the output file.

{NI - Same as {BI, but for the NEWS file.

{FI - Same as {BI, but for new files.

{LD - The user's last-on date (used to compute whether the
bulletin and news files are new) as MM-DD-YY.

{FD - Date the user last listed a directory (used to find
new files) as MM-DD-YY.

{PL - Currently selected protocol letter.

{OF - Output format ("QWK " or "Text" ).

{AT - Archiver type ("ARC", "ZIP" ,"LZH" or "ARJ").

Parameter: TQMPrompt

This is the prompt that TQM displays to the user after displaying
the menu, and is the "main command prompt." You can embed
SmartText in this prompt.

Parameter: AutoLogoff Value: Yes

TQM contains two commands that allow users to log off from within
the door. This parameter determines whether the commands are
allowed. Enter "Yes" or "No" for this parameter.

Logoff within doors usually causes RBBS to recycle more slowly, and
is sometimes undesirable.

If you set this option to "No," be sure and remove the options from
the menu files and the command prompt, if applicable.

Parameter: Archiver

This parameter specifies the "templates" for creating the QWK
archives for the user, and extracting the REP archives from the
user. The format is:


There must be three fields per line, separated by commas. The
strings are:

Archiver - Must be "ARC", "ZIP", "LZH" or "ARJ".

String - Prompt string for this type of archiver. Displayed to
the user when prompted to select an archiver.

Create - "Template" for creating an archive. This is a string,
very similar to the download and upload templates used
in your PROTO.DEF file, that tells TQM how to create
a certain type of archive.

Extract - "Template" for extracting files from an archive.

You embed control words in create and extract templates to specify
the replaceable parameters. TQM supports the same control words
that RBBS uses in the protocol strings, i.e. [FILE], [BAUD],
[PARITY], [PORT], [PORT#] and [PROTO], with the following
difference: [FILE] refers to the full name and path of the QWK or
REP file to be created or extracted. In addition, TQM supports one
additional control word, [WDIR], which is replaced by the name of
the work directory where the files are to be archived from or
extracted to. [WDIR] doesn't contain a trailing backslash.


1. If a given archiver isn't specified in the TQM.CFG file, it
won't be selectable by the user. For example, to disallow
ARJ archives, simply delete the "Archiver=ARJ" line from

2. When a REP packet is uploaded, TQM figures out whether it's
an ARC, ZIP, LZH or ARJ archive and calls the appropriate
unarchiver automatically.

Parameter: Conf

The Conf parameter tells TQM about the conferences on your system.
Each line represents a different conference, and requires 6 values
per conference, separated by commas. The format is:

#,Messages,Users,Read Sec,Write Sec,Join Sec


# - Conference number (0 - 255). This is used by QWK
mail readers to keep track of which conferences are
which on your system. Once you decide on a
numbering scheme, you shouldn't renumber your

Messages - Path and filename for the messages file associated
with this conference.

Users - Path and filename for the users file associated with
this conference.

Read Sec - Minimum security level that a user must have to
download messages from this conference, and to know
of its existence. Also, this is the security level
that imported messages are set to.

Write Sec - Minimum security level that a user must have to
upload a message into this conference. If a user is
below this level, and tries to upload, the message
is discarded.

Join Sec - Minimum security to be auto-added to the users file
for this conference. Users are auto-added if they
S)elect a conference that they're currently not a
member of.


1. There must be a conference zero, and it must be your MAIN
message base and users file. If no conference zero is
defined, TQM burn and crash in a bloody mess.

2. Use the utility CM2TQM to initially define your conferences.
CM2TQM can read your RBBS CONFMAIL.DEF file, and will convert
it into a "Conf=" format.

  3 Responses to “Category : BBS Programs+Doors
Archive   : TQM100.ZIP
Filename : TQM.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: