Dec 252017
Multi-Node BBS online chat door.
File RAP100A.ZIP from The Programmer’s Corner in
Category BBS Files
Multi-Node BBS online chat door.
File Name File Size Zip Size Zip Type
055TO060.EXE 4836 3141 deflated
ACTION.RAP 5687 2335 deflated
BRUN45.EXE 77440 53681 deflated
HELP.ANS 2190 946 deflated
HELP.ASC 1812 872 deflated
MAKERAP.EXE 6284 3810 deflated
NEWS.ANS 1644 866 deflated
NEWS.ASC 1402 797 deflated
RAP.ANS 4745 694 deflated
RAP.ASC 1320 160 deflated
RAP.CTL 327 214 deflated
RAP.DOC 20905 8541 deflated
RAP.EXE 88260 33634 deflated
RAPMAINT.EXE 5636 3583 deflated
RELEASE.DOC 1155 643 deflated
TALKTYPE.RAP 752 358 deflated
WHATSNEW.100 11955 5438 deflated
WIPEUSER.EXE 4738 3038 deflated

Download File RAP100A.ZIP Here

Contents of the RAP.DOC file

**** * ****
* * * * * *
**** ***** ****
* * * * *
* * emote * * ccess * ub!

Version 1.00

(C)opyright Nov 15 1991 Bad Attitude Software

What it is

This program is based upon the "Neighborhood Pub" subsystem found on
some Galacticomm/MajorBBS multiline BBS systems. However, this version
is built specifically for RemoteAccess V1.10. It should also function
on any BBS system capable of producing a DORINFO1.DEF file (and working
in a multiline environment), such as QuickBBS, SuperBBS, and RBBS.

If you are running RemoteAccess V1.10 or greater, RAP also supports
communications between RAP and the BBS. See the info on the RAP.CTL
file for info on how to set this up.

This is a line-oriented "chat" program. At the prompt, you may type
anything you like (up to 400 characters), and this will be "broadcast"
to all users currently in the Pub. There's also a "whisper" facility
(to say something to only one other person in the Pub) and, last but not
least, there are "actions".

This program can handle up to 32 nodes simultaneously and has room in
the userfiles for up to 300 users.

Late breaking news: RA V1.10 mentions a new "RemoteAccess Professional"
version which will include teleconferencing, but does not specify what
the upgrade fee will be. I have *ZERO* specifics on this new feature, I
don't even know what it will look like nor what features it will have.
Once I've seen it, I'll endeavor to duplicate any features it has that
RAP lacks. Hopefully, RAP will stay on top of this suddenly-crowded

The Legal Stuff

This program is protected by copyright. Bad Attitude Software reserves
all rights. You are granted the right to run this program, unmodified,
on as many computer systems as you wish on a TRIAL BASIS. If you
continue to use this program after thirty (30) days, you are required by
law to register it. Registration will get you the latest version of RAP
sent to you, either via electronic mail or by floppy disk. This version
will be specifically "stamped" as being registered to your BBS.
Information on registration will appear at the end of this document.

Throughout this document, there are references to specific programs
which are also copyrighted. I'll try to list them all here, and my
sincere apologies to anyone I miss (please let me know so I can update
this document).

QuickBBS - ???
SuperBBS - ???
RemoteAccess - Continental Software
QuickBASIC - Microsoft
MS-DOS - Microsoft
Desqview - QuarterDeck
QEMM - QuarterDeck
4DOS - JP Software Inc.
X00 - Ray Gwinn
BNU - David Nugent
Opus!Comm - Bit Bucket Software

This program was written in QuickBASIC (V4.5) by Joe Lindstrom. Certain
input routines and the logon screens were written/created by Racey Sealock,
whose help has been invaluable (though he'll tell you otherwise). Thanks
for being there, Racey! (and yes, that *IS* his real name!)


This program is dedicated to the memory of Gene Roddenberry, who passed
away on October 24th, 1991. Gene was the creator of the now-legendary
television show "Star Trek", which encouraged us all to go where none
have gone before. Gene's vision of a positive future, of learning to
better get along with each other, and of the exciting "human adventure",
was an inspiration to "Trekkers" and non-Trekkers alike. Gene is now in
"The Undiscovered Country"... he may be gone, but he will never be

Rest in peace, Gene.

Setting it up

First, you need to make sure that you have an acceptable "environment".
I have tested this program under Desqview V2.34 (QEMM V5.00) with MS-DOS
V5.00 and 4DOS V4.00. It should work under other multitaskers, and it
should also work on a LAN-based system. I have tested it under
LANTASTIC NOS V4.00 and it worked just fine, though since my LAN cards
are not the swiftest things were a bit slow.

SHARE - SHARE.EXE comes with all versions of MS-DOS V3.1 and newer. It
*MUST* be installed. Since I assume you already run a multi-line BBS,
you probably have already done this. If not, it is *REQUIRED*. RAP
uses disk files to communicate with other RAPPERS and if SHARE isn't
loaded, RAP will barf all over you.

FOSSIL DRIVER - Again, to even RUN most of the above-named bulletin
boards, you have to have a FOSSIL driver installed (FOSSIL stands for
Fido/Opus/Seadog Standard Interface Layer), which is an interface
between user software and the communications ports. If you do *NOT*
have one loaded, RAP will not function. I highly recommend X00 V1.24,
but others such as BNU and Opus!Comm will also work. If you are running
under a LAN, *EACH* workstation needs to have a FOSSIL installed, even
if logins will always be local (ie: not remote). RAP makes use of a
specific FOSSIL call to the ANSI driver. If a FOSSIL is not installed,
RAP's output will be invisible and you'll be typing blind. That's a
best case: on some machines, it just locks up the computer.

A note to high-speed modem users: "doorfix" programs are not required
with RAP. Because RAP uses the FOSSIL driver directly, if you are using
a high-speed or other buffered modem you do *NOT* have to give RAP an
artificially high baud rate if you have already "locked" the FOSSIL
driver to that rate. RAP and the FOSSIL driver will automatically send
the data through the serial port at the correct rate of speed.

Now, to set it up, you should first create a subdirectory on your system
for RAP to live in. Of course, it should be accessible by all BBS nodes
that will be accessing RAP. If you're running under a LAN, set up this
subdirectory on the SERVER and ensure that all workstations have full
read-write privileges.

Copy all the files in this archive into this subdirectory, which, for
sake of demonstration, we'll call D:\RAP. Unless you're upgrading from
V0.55 or earlier, you can delete the 055TO060.EXE program. If you are
upgrading from V0.55 or earlier, see the WHATSNEW file (sub-heading
What's New V0.60) for information on using 055TO060.EXE. Once you've
finished using it, it can be destroyed. You'll need to keep all the
other .EXE files, .RAP files, .ANS files, and .ASC files.

(Note: this program requires the use of a specially-patched version of
BRUN45.EXE, supplied in the archive. If you have other programs on your
system that also use BRUN45.EXE, you may simply copy this BRUN45.EXE
into any other directory in your path. This particular version is
"patched" so that it will not drop DTR after exit. All of your other
programs can use this version of BRUN45.EXE, and you *ONLY* need one of
them on your system).

Next, change directories (the CD command) into D:\RAP.


MAKERAP.EXE will create a couple of system files for RAP to use. Typing
MAKERAP by itself will show you the available options, which are:

TOTAL - Create all-new system files.
CLEAN - Wipes only the NODEIDX file. Useful if your system crashed
while RAP was running... if this happens, the next time
someone tries to login, they may be told "this node is already
logged in" and RAP will abort. Running MAKERAP CLEAN will
clear up this problem.


If you intend to run RAP under RemoteAccess and allow the two to talk to
each other (further details below), you should be aware that RA tends to
"garbage" its main communications file, called USERON.BBS, which is
stored in the main system directory (usually defined in RACONFIG as the
SYSTEM DIRECTORY). Somehow, RA can handle this but it can confuse RAP
somewhat. There is therefore a procedure that should be done at least
once, but better yet it should also be done in your AUTOEXEC.BAT or your
MIDNIGHT.BAT as well. A provided program, WIPEUSER.EXE, is designed to
"blank" the USERON.BBS file (be sure nobody is online before you run it!).

CD into your main RA directory and run it there... you can just type
WIPEUSER to format space for 32 nodes, or you can type WIPEUSER followed
by a number (from 1 to 99) to format space for that number of nodes. I
strongly recommend that you do not use a value less than 32 for use with
the RAP program.

Once you've done all of this, you're almost ready to roll. The
following instructions apply to both RemoteAccess and QuickBBS. If
you're running something else, read the instructions and apply them to
your own setting.

You'll need to build a menu option to activate RAP. Either a TYPE 7 or
a TYPE 15 will work, and TYPE 15 is recommended. If you use a TYPE 7,
have it call a batch file to do the batch instructions below. A good
idea would be something like this:



*N will be translated to the current BBS node number. If the user is on
node 1, RAP1.BAT will be called. Etc.

The following batch instructions will appear in RAP?.BAT if you're using
TYPE 7, or in your main BBSLINEx.BAT if you're using a TYPE 15.


This of course assumes that your main BBS files are in C:\BBS\LINE1 and
that this batch file is for node 1. RAP requires three command-line
parameters. The first is the filename (full path if necessary) for the
RAP.CTL file. Usually one file will work fine for all of your nodes but
if you want to enable different stuff for different lines, make several
RAP.CTL files (name them whatever you like) and specifically name them
on the appropriate batch file command line. The second parameter is the
full path to the DORINFO1.DEF file for the current node, and the third
is the node number. They *GOTTA* be different, folks: you can't have
two people logging on as node 1! It becomes *VERY* important if, by
using RAP.CTL appropriately, you configure RAP-to-BBS communications:
the node number that RAP uses *MUST* repeat *MUST* match the node number
that the BBS that spawned it thinks it is: if not, undefined things will
happen and I take *NO* responsibility. If line 1 calls RAP, RAP should
be told that it is line 1. Etc.

If you run into any other weird problems with RAP, I'd recommend:

- Increasing your FILES= setting in CONFIG.SYS.
- Ensuring that RAP can find USERS.RAP and NODEIDX.RAP as well as all
the other associated *.RAP files.
- Making sure you've run WIPEUSER at least once (see above instructions,
applies to RA systems).

Assuming all the RAP files (RAP.ANS, HELP.ANS, etc.) are located in the
current directory, everything will work just spiffy-like! User
instructions are built-in (examples are contained in HELP.ANS and HELP.ASC).


This file ESSENTIALLY contains optional information but it *MUST* be
present, even if the file is blank (be sure there's at least one line,
even if it's just a carriage return). Three parameters can be defined
in RAP.CTL (or whatever name you use, see above), as follows:

RAPATH d:\path\

This tells RAP two things: that you are using it with RemoteAccess V1.10
or greater, and that the d:\path\ directory is where it can find
USERON.BBS and the various NODExx.RA files, which are all needed for
communicating with the BBS (and vice versa). This is the directory
defined in RACONFIG as your SYSTEM DIRECTORY. If RAPATH is not defined,
RAP assumes no RemoteAccess capabilities.

RapWorkPath d:\path\

All RAP files are contained in whatever directory is "current" when RAP
loads. This includes the user file, help files, and whatnot.
*HOWEVER*, some sysops have asked that they be able to put some of this
stuff on a RAMDISK. That can be dangerous, but there is *ONE* file that
is both used a great deal *AND* contains no "permanent" information, so
it's a PERFECT candidate for a nice, high-speed RAMDISK. That file is
NODEIDX.RAP and is created and maintained automatically by RAP (though
if it gets corrupted, you'll need to run MAKERAP CLEAN in whichever
directory it resides in). You could define RapWorkPath to your RAMDISK
and let all the RAP nodes use the RAMDISK for faster inter-RAP
communications. Remember, though, that *EVERY* RAP node needs to be
able to access the *SAME* NODEIDX.RAP file: if you're running on a LAN,
be damned sure that RapWorkPath points to a directory that ALL nodes can

Bell (ON or OFF)

Some sysops were annoyed at ASCII-007 characters being printed at the
local console, which of course rings the bell. BELL OFF will turn this
off (locally only, it will still ring remotely). BELL ON leaves it on.

One command per line please!


Once per day, you should:


The 45 is an arbitrary number, any number from 1 to 300 will do. This
will increment all the day counters in the USERS.RAP file, and delete
anyone over 45 (or the number you specify) days old. Users that aren't
using RAP will therefore take no room in the userfile. Although I have
*NOT* tested this, RAPMAINT should work just fine even if users happen
to be using RAP at the time.

Extra features

The WHISPER facility works something like this (assuming you are JOE)

You type:

/FRED hey, how ya doin' today?

This message will be sent *ONLY* to Fred.

Fred will see:

Joe *whispers* to you: hey, how ya doin' today?

Additionally, partial names will work (and they'll also work with
ACTIONS as described below). For example, this would get you the same
thing as the above:

/FR hey, how ya doin' today?

RAP will match /FR with the first online user who's name begins with FR.

Typing ? or HELP brings up an online help screen

Typing WHO, NODES and LOOKUP bring up different user lists (which, since
they're long, can be aborted by pressing the S key).

Typing PAGE (if configured under RemoteAccess) will let you page BBS
users. If the user happens to also be in RAP, it will function
something like a whisper in that *ONLY* the "target" node will receive
the message. If the user is elsewhere in the BBS, RAP will use the
RemoteAccess facilities for passing messages between BBS users.

Typing ACTIONS gives a list of available actions.

If the sysop enters F1, 1 minute will be added to the user's time.

If the sysop enters F2, 1 minute will be deducted from the user's time.

If the sysop enters F10, the user will be thrown out of the Pub (this
works only after the user has actually entered the Pub).

There's a few other things you can add to RAP.

RAP News

If NEWS.ASC exists in the RAP subdirectory, it will be displayed to
users just before they "sit down in the Pub". If you want to give your
users special instructions, or the latest news on whatever, edit this
file and they'll see it every time (abortable by pressing "S"). Note
that if your user supports ANSI, and NEWS.ANS is available, they'll see
this file instead. In other words, you can make NEWS.ANS and NEWS.ASC
and the "appropriate" file will be displayed... if only NEWS.ASC exists,
it will be displayed to both types of user.


Here is where the fun starts. An "action" is a verb that you define
that has special meaning to RAP. It's best to explain this by example,
so here goes:

If you (JOE) type:


Then Fred will see:

Joe just kicked you!

And everyone else will see:

Joe just kicked Fred!

Or, perhaps you just want to type:


In which case, everyone (except you of course) will see:

Joe is smiling.

Etc. This is all sysop-configurable. The distribution archive contains
some samples that are a good starting point, and you can modify them
and/or add to them all you like.

There are two types of actions, regular and talktype. They are stored,
respectively, in ACTION.RAP and TALKTYPE.RAP in your RAP subdirectory.
These files have an *EXACT* format and you will find RAP to be very very
unforgiving if you mess this up: it will abort with a nasty error
message and refuse to run. So get 'em right.

In each file, a given action definition takes up four lines. Here are
the brief descriptions (might be a good idea to examine the sample files
that I've included so that you can better visualize this).


Line 1 - The actual verb itself
Line 2 - The text to display locally when this verb is used
Line 3 - The output text if this verb is used BY ITSELF
Line 4 - The output text if this verb is used with a username

%m ("me") can be used to tell RAP where to put the user's name
%y ("you") can be used to tell RAP where to put the name of the user
towards whom this verb is directed.


Gosh, aren't you nice?
%m is smiling pleasantly.
%m is smiling pleasantly at %y.

Now, if you were to then type:


You would see:

Gosh, aren't you nice?

Everyone else would see:

Joe is smiling pleasantly.

If you had typed:


Fred would see:

Joe is smiling pleasantly at you.

And everyone else would see

Joe is smiling pleasantly at Fred.

The word "ALL" can be used as a username, in which case all users would

Joe is smiling pleasantly at everyone.

Pretty easy? Good.

n/a, if used alone on either line 3 or line 4, disables that function.
For example, PHASER might be a good thing to do to someone, but PHASER
by itself makes little sense, so you'd N/A the third line.

Next is TALKTYPE.RAP. The format is virtually identical, with the
following differences:

Line 4 - Prompt modifier. Will be surrounded by "From " and ": "

The %y variable is invalid.


Do, Re, Mi!
%m is singing to himself.
%m, singing

If you then type:


Everyone sees:

Joe is singing to himself.

But if you type:

sing Deck The Halls...

Everyone will see:

From Joe, singing: Deck The Halls...

As with whisper mode, these actions will also accept a partial username
in place of a full name. If you PHASER J, and the first user who's name
begins with J is "Joe", then Joe gets phasered. You may also PHASER
ALL, in which case RAP will report that "everyone" got phasered.

And that's about that! The possibilities are endless. Well, almost
endless. You are restricted to a maximum of 100 ACTION.RAP definitions
and 20 TALKTYPE.RAP definitions.


Personal Actions: The user can define up to 4 actions (as above) that
*ONLY* that user may use.

Handle: Let's you change your Handle.

Desc: Change your Description (shown to others with LOOKUP)

Configurable Login/Help Screens

The login screens (RAP.ANS and RAP.ASC) and the help screens (HELP.ASC
and HELP.RAP) are disk files contained in the RAP directory. Although I
recommend that you leave them as they are, they *CAN* be edited by you.
One idea might be to add the name of your BBS on the login screens
(although your users will be told by RAP that they are on "Fred's BBS",
if that's the name of your board, anyways).


Yeah, the lousy part.

If you find this program useful, and/or you use it for more than thirty
(30) days, you gotta register it. Sorry! Grin!

Anyways, here's the deal. Registration is $20 in *CANADIAN* currency.
I cannot cash American dollar cheques, nor British Pounds or Italian
Lira for that matter. If you're not in Canada, a money order will do
the trick. If you're in Canada, you also have the option of sending a
cheque drawn on a Canadian bank.

Please make cheques and money orders payable to:

Joe Lindstrom
34 Harvest Wood Link N.E.
Calgary, AB, Canada
T3K 3X8

Canadian orders please add $1.40 GST (Registration Number R129367801)

The latest version of RAP is downloadable from, and installed online on,
The Telekon BBS, which you can (as of this writing) dial at:

Line 1 - (403)-226-1157 (HST/V32, up to 14400 baud)
Line 2 - (403)-226-1158 (MNP5, up to 2400 baud)

You can also send FTSC-style "netmail" to me if you're in either
GoodEggNet or MetroNet. My addresses are:

GoodEggNet 99:9305/55 and 99:9305/90
FantasyNet 111:1110/55 and 111:1110/90
MetroNet 201:5500/55 and 201:5500/90

It can be file-requested with the "magic" filename RAP

I hope you enjoy RAPPING with your users!

 December 25, 2017  Add comments

Leave a Reply