Copyright (c)1992 By Michael Leib
A .QWK Compatible Off-Line Mail Door For
The WWIV BBS System
WARNING: WWIVMail/QWK v4.3 is ONLY for WWIV v4.20-4.21a ONLY.
WARNING: If you are upgrading from a previous version of
WWIVMail or WWIVMail/QWK, please delete the wwivmail.usr user
file...the record size is different and the file should be
NOTICE...this is more than likely the LAST release of WWIVMail/QWK
that will be compatible with WWIV versions before 4.22( when it
comes out next year). From what I understand, the userrec and
qscan pointer information will be stored in a radically different
manner so, trying to maintain backwards compatibility will almost
be impossible. If you are using WWIV BBS versions before 4.22,
WWIVMail/QWK ver 4.3 is the correct version for you. When you
upgrade to WWIV 4.22 (or higher), you will have to get my
latest(4.4 or whatever newer version is out at the time).
WWIVQWK.EXE 32/64-SUB SELF-DETECTING WWIVMail/QWK EXECUTABLE.
WWIVMAIL.DOC DOCUMENTATION FOR WWIVMail/QWK. (THIS FILE)
WWIVMAIL.REV REVISION HISTORY/CHANGES IN WWIVMail/QWK.
WWIVMAIL.CFG SAMPLE SYSOP CONFIGURATION FILE (OPTIONAL).
MORGUL01.MOD MOD TO RUN WWIVMAIL/QWK OFF MAIN BBS MENU
REGISTER.LST LISTING OF ALL CURRENTLY REGISTERED SYSOP/BBS BOARDS.
QWK.LIB WWIVMail/QWK LIBRARY TO LINK WITH USERREC.C
QWKBCC.BAT .BAT FILE TO COMPILE AND LINK WWIVQWK.EXE(BC++ 2.0 or newer)
QWKTCC.BAT .BAT FILE TO COMPILE AND LINK WWIVQWK.EXE(TC++ 1.0 or newer)
USERREC.H HEADER FILE FOR USERREC.CPP
USERREC.CPP CPP FILE TO COMPILE WITH YOUR VARDEC.H AND LINK WITH QWK.LIB
There have been MANY changes in this version of WWIVMail/QWK, so
please take the time to read this documentaion.
So, for those who haven't looked at this program before, WWIVMail/QWK
(formally known as WWIVMail) is a fully .QWK (Q-Mail Packet (c)) Compatible
Off-Line Mail Door for the WWIV BBS System. It generates .QWK Mail packets
that can be read by a huge number of Public Domain/Freeware/ShareWare Mail
Readers and can accept response messages (.REP) from those readers and
incorporate those messages back into your WWIV BBS System.
I am not going to go into a long dissertation about the history
of .QWK Mail packets or about the structure thereof. Those questions
can be answered by reading the documentation in any .QWK compliant Mail
Reader. Let me just say that, as far as I know, WWIVMail/QWK is the first
.QWK Mail Door available for the WWIV BBS System. WWIVMail, in it's earlier
form, has been around for over 1 1/2 years with great success. I am proud
to be the author of this software, and will continue to support it until
I die or Wayne Bell does. (Well, maybe till I create something better!)
WWIVMail/QWK supports all standard-documented features of the
original.QWK packet system as incorporated in the Q-Mail(c) Mail System
approx 5+ years ago, as well as, the ADD/DROP Sub capability supported by
several .QWK readers. The standard support in WWIVMail/QWK includes System
Bulletins, Newsfile and an optional New Files Scan (which can be toggled
on and off by the user). This wasn't an easy task because of Wayne Bell's
WWIV(c) message base design; however, WWIVMail/QWK converts all STANDARD
WWIV messages and e-mail into standard .QWK format. (message.dat)
Personal E-mail, as well as all Public Posts, can also be uploaded
through WWIVMail/QWK in the .QWK stanadrd .REP response packet.
WWIVMail/QWK Also supports WWIV BBS Systems with Modified Userrec
vardec.h file structures by allowing you to compile your own version
with a freely distribulted .LIB created for Borland C++ 2.0/3.0/3.1 and
Turbo C++ 1.0 or newer.
(Full source code is available for download to registerred user's; however,
everything you need for a modified userrec structure is included in this
Files in a .QWK Packet That WWIVMail/QWK Creates:
HELLO => Openning BBS Welcome Screen
/* welcome.ans/.msg */
GOODBYE => Closing BBS Goodbye Screen
/* logoff.ans/.msg */
BBSNEWS => BBS News File
/* BBS News */
CONTROL DAT => BBS Message Subs/BBS Information Data File
/* WWIVMail/QWK generated */
DOOR ID => Information About WWIVMail/QWK
/* WWIVMail/QWK generated */
BLT-0 X => BBS Bulletins
/* WWIVMail/QWK generated. User Option */
MESSAGES DAT => All Messages For User To Read
/* WWIVMail/QWK generated */
000 NDX => Message Base Index Files (000-032/000-064)
/* WWIVMail/QWK generated */
NEWFILES.DAT => NewFiles Since User Last Logged-On
/* WWIVMail/QWK generated. User Option */
To see how to set the Sysop Options(mentioned above), see the information
Features (Among A Cast Of 1000's)
(1) Built-in Communication routines( no need to monitor dos interrupts ).
Including Built-In support for hardware flow-control and, hence,
support for comm port speeds up to 38,400.
(2) Ansi color graphics support.
(3) Easy to use interface.
(4) Use of External Transfer Protocol Engines (Such as DSZ ((c) Omen
Technology)) to maintain high quality and compatibility among file
See below for External Protocol documentation.
(5) Monitors Carrier Detect ( recycles back to the BBS ).
(6) 2 minutes time-out between keystrokes.
(7) On-line Help.
(8) All system security is maintained( user will NOT have access to any
message subs that they don't normally have access ) or be able
to Post on Subs that they are restricted from. Also, all Sysop
validation for Posts ( Net / User restrictions ) are maintained.
Also, the New Files scan option only looks at Transfer Section Areas
that the user has access to. (ie, AGE, DAR, AR, SL and DSL are
all checked ).
(9) Local User Q-Scan Data For Maximum User Friendliness....
(10) Optional Newfiles Scan right in the DOOR!
(11) Full WWIV Multi-Net(WWIV 4.21a) support capabilities built-in.
(12) Support for both 32 and 64 Messages Areas (Auto-Detecting).
(13) Support for Modified Userrec's!
(14) Supports ANY compression programs that the BBS does(.zip,.arc,etc)...
Very helpful for non-IBM users.
(15) Translates WWIV Colors into ANSI codes if the user desires.
(16) WWIVMail/QWK now supports the ability to import messages from
non-WWIV BBS systems via the .QWK packet. Hence, you can now
EASILY network your BBS without being restricted to a WWIV hosted
WWIVMail/QWK and it's related files are NOT public domain or freeware.
The WWIVMail/QWK Mail Door is a copyrighted software product developed and
owned by Michael Leib.
The WWIVMail/QWK BBS executable is licensed "AS IS". Michael Leib
is NOT responsible for any damage to your system, software or your life.
There has been some concern with people who have been involved with
this project regarding compatibilty with their HEAVILY modified WWIV systems.
Although WWIVMail/QWK can ( and will ) work with modified userrec's, I have
fully tested this software with un-modified WWIV systems and have had
no difficulty. However, this doesn't mean your WWIV will behave nicely if you
have modified the way data is stored in the user's files( .dat, .sub, etc).
To get around this problem, I have no choice but to make the source code
available for you to compile with your vardec.h header file. At first I
really didn't want to do this but, in order to get everbody on the bandwagon
( as well as keep the spirit of WWIV alive), this seems the only fair
alternative..so, I have set-up the following standards:
Lifetime Use of WWIVMail/QWK Door ------------------- $20.00
Lifetime Use of WWIVMail/QWK Door Plus
Full Source Code ------------------- $30.00
(Compiles Under BC++ v2.0(or newer) and TC++ 1.0(or newer).
I feel these prices are fair( in comparision to the other .QWK mail doors for
Non-WWIV BBS systems) and the current cost of the WWIV BBS source code
at 50.00..( Thanks Wayne! ) WWIVMail/QWK is almost a BBS in itself..It
has built-in Communications routines, support for the upload and download
of Public posts and E-mail, Full NET support, as well as the ability to scan
the Transfer Section for New Files. Also, starting with WWIVMail/QWK ver 4.3,
it also has the ability to import messages from non-WWIV BBS systems.
Now, why should I register?
1) WWIVMail/QWK is not crippled in any way. I have released it on trust.
I have, however, placed a key system in the door that places a 15 second
delay banner in all UNREGISTERED door versions and flags all posts in
the tagline as [EVALUATION COPY]. Please take the time to register if
you use this door, the cost is VERY low considering the time I have put
into creating it. I will respond to your mail the day I receive it
(see below for address and contact information).
WWIVMail and WWIVMail/QWK have been out for almost 2 years. I have spent
literally hundreds of hours working on this project and adding support
(compatibility) for all of Wayne Bell's enhancements. Please support my
effort to enhance the capabilities of WWIVMail/QWK.
2) If you have modified the BBS's users files, the only way you'll get
it to run is to purchase the rights to the source code. At the end of
this file you will see a listing of the BBS files that WWIVMail/QWK uses.
You can then compile the door with your modified vardec.h/net.h files
and then WWIVMail/QWK will run correctly.
Starting with WWIVMail/QWK v4.0, I supply all the needed files to get
WWIVMail/QWK to run with a modifed userrec. However, if you have changed
ANY other structure that is in the list at the bottom of this file, you
will have to get the source. (See below for info on compiling your own
version of WWIVMail/QWK).
3) Sysop's who register always get priority regarding bug fixes and
4) The time I have spent in writing WWIVMail/QWK is obvious. Please support
my endeavor and push me to continue to write support programs for
WWIV. Among other programs created under my pen (actually, mouse!):
WWIVFile : v1.1 External Transfer Section File Manager.
Basically, an XTREE(c) Clone for WWIV Transfer Section
Topten : v1.0 Lists the top Download Files from your BBS by section.
Master : v1.0 BBS Door for users to Download A Master File List.
1) Feel free to contact me via "The General" On Amber(#[email protected]
WWIV Home Board in Los Angeles, California.
"Michael Leib" on Rambo-Scan (#[email protected]
2) Join the WWIVMail/QWK Support Sub on the WWIVnet.
Contact Rambo of Rambo-Scan BBS(#[email protected]
) to join. (818) 566-7912.
He will ALWAYS be runing the newest Beta of WWIVMail/QWK...
Beta copies may be picked-up (when available) to registered
WWIVMail/QWK Sysops from Rambo-Scan.
I call this board several times a week, if you post messages on
the WWIVMail/QWK sub, I will respond quickly.
Send registration (or comments) to:
1740 N. Ontario St.
When you send your payment, please enclose:
1) The name of your BBS, as it is spelled (including capitialization),
in your init.exe program field.
2) The Sysop's Name for your BBS, as it is spelled (including
capitialization), in your init.exe program field.
3) The phone number of your BBS..so I can add your full information to
the REGISTER.LST file..
4) A net location where I can send e-mail to you with a registration
number to disable the 15 second delay and the [EVALUATION COPY] tagline
on all uploaded posts/e-mail. If you registered w/ source option, I will
also let you know how you can obtain the source code for WWIVMail/QWK.
I currently support both working storage types of WWIV ver 4.21a.
Storage Type 0 stores each message in seperate files with a common header
file, whereas Storage Type 2( the default and most common ) stores all
messages in one .msg file. Type 1 is not functioning in WWIV
(last time I looked into it), so, I also fail to fully support it.
The .QWK message structure is a WHOLE lot different then the
standard WWIV message base system. In order to get Messages to fit properly,
WWIVMail/QWK NEEDS to strip out all the WWIV color code sequences from
posts. Also, the time and date structure is different (written out rather
then military time standard); therefore, I have to convert those as well.
Also, it appears as though SOME .QWK readers can only support 78 characters
accross the screen and, in ANSI mode, WWIV can do the full 80. Therefore,
SOME ANSI posts may not come out correctly. There is nothing that
WWIVMail/QWK can do. This is a design limitation of the .QWK packet
structure(and SOME of the readers!). So, although you may not have modified
any BBS structures, some small MODS that display the above functions
differently then in the stock manner may cause weird characters (or say
the loss of a date field or the such) to occur. This is normal and there
is nothing to worry about.
Since E-Mail in WWIV doesn't have a Message Sub, I send all
Personal E-mail into Sub 0 in the .QWK Packet. This, in itself, doesn't
hurt anthing BUT, if your 1st Message Base cannot be read by a User
(They Don't Have Access To See It), then when they try to respond
to their e-mail, they will not be able( get some error in a .QWK
reader that the SUB doesn't exist). Therfore, I suggest that you make
your first Message SUB viewable by all. They don't have to be able to
Post on it, just read it. This has only been reported by One User, and,
there really isn't anything I can do about it. The workaround, for the
User, is to pick another SUB, then everything will work well. This is
a VERY rare problem, so, don't even worry about it but I did want to share
Ok, I assume that if you made it this far in the docs, I haven't
scared you away with all my talk of registration and compatibility.
Copy the file WWIVQWK.EXE to your main bbs dir.
(Where you keep your bbs.exe and config.dat )
WWIVMail/QWK ver 4.3 has the ability to auto-detect whether you are using
a 32 or 64 sub version of WWIV. WWIVMail/QWK ONLY supports these 2
configurations and their implementation as defined by Wayne Bell since
WWIV ver 4.12. Anything other then this will require you to register
and obtain the source from me for modification.
It has been rumored that WWIV 4.22 will support upto 999 subs...when
(and if) this happens, I will release a WWIVMail/QWK that will support
This is the only file you will need.( See below for information regarding
the optional wwivmail.cfg file).
2) Make sure you always maintain a couple of free megs of disk space for
the .QWK packet creation( The user will be warned if disk space gets low ).
Since all upload and download packets are placed in the directory that
you have specified as your "TEMP" directory for WWIV, this is the place
that should have plenty of space....
I allow the Sysop to override the location where the temporary packet
resides. If you wish the temporary files that WWIVMail/QWK creates to be
placed in any other location besides the BBS "TEMP" directory, you may
set an environment variable to that location. In your autoexec.bat
(or in a .bat file that starts the BBS) put:
where xxxxxxxxxxxxxxxxxxxxxxxxx represents the drive and path where the
files will be placed.
Example: set wwivmail=d:\temp\files\junk\
(trailing \ is not needed..if you leave it off, I append it.)
I find, however, that the "TEMP" directory works quite fine for
3) Start the BBS and go into //chainedit:
A. Description : WWIVMail/QWK v4.3 .QWK Mail Door
B. Filename : WWIVQWK.EXE
C. SL : 10
D. AR : None.
E. ANSI : Optional
*F. DOS Interrupt: NOT Used
G. 300 Baud : NOT Allowed
*H. Shrink : Yes
I. Disable pause: No
The only things you have to worry about here are these 2 options;
F. => DO NOT have the BBS monitor dos calls....this is not needed
because WWIVMail/QWK has it's own com port initialization,
reads and writes.
H. => You must have the BBS Shrink..not because my program takes alot
of memory, but this is the only way in which WWIV will update
the qscan pointers...Don't worry, WWIVMail/QWK won't run if you
don't do this( and it will warn you ).
4) Make sure you have a copy of ALL external programs in your path.
[Used to compress the packets before transfer and the transfer protocols]
WWIVMail/QWK's Use of External Protocols
You must have DSZ(c) in your path because WWIV has Xmodem and Ymodem
built-in. WWIVMail/QWK doesn't...so, I use DSZ(c) to handle those two
basic protocols. After those two, WWIVMail/QWK will use the transfer
protocols as you have them set-up for the BBS( WWIVMail/QWK will use
the command-lines as they are in the INIT.EXE( stored in nextern.dat).
This allows you to be assured that WWIVMail/QWK will run ( while
transferring packets ) EXACTLY like the BBS. Any special command-lines
that you had to implement for your high-speed modem or strange
configuration will be maintained in WWIVMail/QWK!. (Nifty Huh?)
Due to the above, You will need (For Sure) a copy of Omen Technology's
DSZ(c)in your path.(it need not be registered)(Available on almost any BBS)
[Used to transfer the packet for the default xmodem and ymodem choices]
You will also need to have each compression program(.zip, .arc, etc)
that you have listed in your init.exe (config.dat) as supported on your
BBS in your path so the user can pack/extract the .QWK/.REP packets.
The user has the option of selecting a default choice of transfer
protocol and compression type. The list they choose from is DIRECTLY
made off of your configuration in the INIT.EXE(config.dat). The more
you put into the BBS, the more functionality that goes into WWIVMail/QWK.
The extent of these functions is only limited by you.
NOTE: These programs NEED to be a directory who is in your
"path=" statment in your autoexec.bat. If not( although these
programs may be in your main wwiv bbs directory) it doesn't
matter. I change directories to your TEMP area for processing,
so please have them in into your path. If not, WWIVMail/QWK will
spawn for the external protocol and will fail attempting to complete
the transfer or compress/uncompress the packet.
For your information, the %1 (com port speed) and %4 (modem speed)
are taken directly from chain.txt (see userrec.cpp for code) so the
external protocols will run the same as they do from within the
If you experience any problems with compression or extraction, please
investigate your command-line strings...all external programs that get
executed from WWIVMail/QWK have the command-lines written to the screen
and the sysop's log. Good chance any problems can easily be resolved
by changing the strings. These strings are taken directly as you have
them listed in the INIT.EXE fields.
5) What files does WWIVMail/QWK Create?
As your users log into the Door and start selecting subs and
defaults(tansfer protocol and compression options), a file named
wwivmail.usr will be created and placed in your wwiv main directory.
The size of this file will grow as more users begin to use the door.
Other then this file, everthing else that WWIVMail/QWK creates is
loacated in your TEMP directory location, so they get deleted after
every door session.
Starting in WWIVMail/QWK ver 4.3, information about the user's actions
in the chain are added to the current sysop's log. Therfore, you will be
able to see exactly what the user did while in the door and outside the
control of the BBS.
The name of the .QWK packet for your BBS is created using the BBS NAME
field from your INIT.EXE(config.dat). The packet name is based off of the
first eight characters, with any blanks being replaced by underscores.
The only problem I have encountered with this simple idea is one BBS that
had ">" 's in the name....this CANNOT be used to create a valid file
because it represents a standard dos redirection of output. So, a board
name of say:
Rambo Scan BBS would become=> RAMBO_SC.QWK
That's it!!!!!! (simple in comparision to other bbs chains, huh?)
WWIVMail/QWK has MANY Sysop Definable options. To set them, you need
to create a file named wwivmail.cfg and place it in the main BBS
directory (along with wwivqwk.exe).
Previously, prior to WWIVMail/QWK 4.3, I included a program named
wwivcfg.exe which created wwivmail.cfg. After consideration, I have opted
just to state the fields in the file (and the format) and save at least
50k in the distribution file archive...
Let's look at the wwivmail.cfg that is distributed in the WWIVMail/QWK
Obviously, you will want to modify these fields! But, here is what they are..
LINE1: The CITY/STATE where your BBS is located.
LINE2: Maximum TOTAL messages that can be downloaded at 300 Baud.
LINE3: Maximum TOTAL messages that can be downloaded at 1200 Baud.
LINE4: Maximum TOTAL messages that can be downloaded at 2400 Baud.
LINE5: Maximum TOTAL messages that can be downloaded at 9600 Baud.
LINE6: Maximum TOTAL messages that can be downloaded at 14400 Baud.
LINE7: Maximum TOTAL messages that can be downloaded at 19200 Baud.
LINE8: Maximum TOTAL messages that can be downloaded at 38400 Baud.
LINE9: Full Path to BULLETIN #1 (LEAVE ANY OF THESE BLANK TO IGNORE)
LINE10: Full Path to BULLETIN #2
LINE11: Full Path to BULLETIN #3
LINE12: Full Path to BULLETIN #4
LINE13: Full Path to BULLETIN #5
LINE14: Full Path to BULLETIN #6
LINE15: Full Path to BULLETIN #7
LINE16: Full Path to BULLETIN #8
LINE17: Full Path to BULLETIN #9
LINE18: Full Path to BULLETIN #10
LINE19: Full Path to NEWS FILE
Remember, this configuration file is totally optional, and is needed only
if you wish to set these options. Starting with WWIVMail/QWK v4.3, the
user has the option to download or ignore the BULLETINS and NEWS files,
but I think it wouldn't hurt to set them up. You probably want to have
these fields point to some of your G-Files...If you place a bad path
or a path to a file that doesn't exist, the entry will just be ignored.
WWIVMail/QWK supports several command-line options...
1) "wwivqwk local":
WWIVMail/QWK can be run local but you need to use a special command-line
argument. This is due to the need for carrier detect under normal
conditions...if you don't use the correct parameters, it will drop you
back to dos. Type 'wwivqwk local' and the door will go into local mode.
For Downloads: Go through the menus as you would if you were on-line!
A valid packet wil be created. Then, take a look in your
directory that is specified in your bbs configuration as
your TEMP dir. The download packet will be in that
For Uploads: Create a valid upload response packet and place that packet
in the TEMP dir (or location that you specified for packets
to be placed). Go through the door as normal, and the
packet will be detected and imported....
2) "wwivqwk nowrite":
WWIVMail/QWK reads and writes to MANY WWIV BBS data files (see below
for listing). If you aren't sure whether or not you have modified the
ways your modifed BBS writes to those files, you can try WWIVMail/QWK
with the "nowrite" option. This will cause the program to ONLY read
all files (except those which it creates). Doing this will save your
data, and you can see how the door behaves on your system. This is
basically an evaluation mode.
Uploading Messages with this option enabled will not work because
it won't do anything ( no way to save your posts ).
3) You can also use these parameters together, such as:
"wwivqwk local nowrite" or "wwivqwk nowrite local"
4) "wwivqwk import=xxxxxxx.qwk":
A key new feature in WWIVMail/QWK ver 4.3. First let me say, this option
also enables the "local" parameter and loads the user information from
user #1. This assumes the Sysop is user #1 and has full access to all
pieces in/of the BBS. If user #1 isn't the Sysop, you MUST set that
account up for the correct access to the messages subs you want to import
into. This is to say, all security is still maintained, and if user #1
can't post on a sub, neither will WWIVMail/QWK in import mode.
So, what the heck does this option do?
One of the neat features of the .QWK packet is that the file structures
of messages.dat (in a .QWK packet) and the .msg file in a .REP packet
are exactly the same. Due to this feature, WWIVMail/QWK has implemented
an automated method of importing messages from a downloaded .QWK packet
and the ability to bring those messages directly into your BBS. This
feature allows you to network your BBS to non-WWIV boards easily through
the use of a .QWK mail door on any BBS and through WWIVMail/QWK on your
How does this work?
1) Download a .QWK packet from a BBS and place that packet in your
TEMP directory (or where "set wwivmail=" is set to). You can either
do this manually or set-up a script to run remotely via a
communications program to call and get your messages.
2) Invoke "wwivqwk import=xxxxxx.qwk" from the main BBS directory
(where xxxxxx is the name of the packet you want to import).
If you use the wrong name, the file isn't a .QWK packet or no
messages.dat can be found, WWIVMail/QWK will exit normally and
inform you that a messages.dat couldn't be found.
3) WWIVMail/QWK will extract messages.dat from the packet and
process the file for import. User #1's default extraction
protocol will be used for the operation. Each message will be
posted in the default sub number it came from off the BBS is was
downloaded from, unless you over-ride that conference number
(see below for explanation on how to do this). Therefore,
if the message was on sub number 12 on RAMBO-SCAN BBS and you
import it, it will be posted on your sub number 12. If you don't
have a sub 12, or user #1 doesn't have access to sub 12, the
message will be skipped. This can also be a problem when you try
to import messages from a 200+ conference Non-WWIV BBS and try to
get them to all import into your 32 or 64 sub WWIV BBS! (see below
for explanation on how to get around this).
4) After all the messages are uploaded, you will be given the total number
of messages imported. Unlike normal operation, user #1 will NOT have
his/her account updated..so all imported messages will be new when
the board is next scanned. Also, the WWIVMail/QWK tagline will NOT be
added to the end of each message and the real name of the person who
wrote the post will be used, not the name of user #1. Also, internally
to WWIV, user #1 will not be tagged as the uploader of the post. This
way, user's who 'A'uto-Reply to these imported messages won't have them
all (e-mail reply's) come back to the sysop's account (which would
probably make you just a little mad!).
After completion, messages.dat is deleted.
How do I handle over-riding the sub number?
For each .QWK packet from different system's, you'll probably want
a different conference mapping system. To facilitate this, you need
to create seperate "map" files for each system you plan on importing
messages from. Once again, you ONLY need to do this if you don't like
the way the conferences map, or you want to bring messages in from
conference numbers greater then the available subs on your WWIV bbs.
Let's continue to use the RAMBO-SC.QWK example from above.
Say you call Rambo-Scan BBS and you want to bring his sub's 5 - 10
into your message base 4, his subs 11 and 12 into your message
base 7 and his base 200 into your message base 15...that is:
And that's how your "map" file would look. So, to finalize this..
In order to do the above mapping of his subs into your BBS, make a file
named RAMBO-SC.MAP and create it so it has 2 columns of numbers. The
first is his sub number(s) that you wish to over-ride their mapping
order and the second is where you want those conferences to "map"
into(his sub 5 will map into your sub 4, etc). These lines of numbers
(wich a space between them) is how the map file would look for each
conference you wish to "map".
Then, you can place the RAMBO-SC.MAP file in your main WWIV BBS
directory(along with wwivqwk.exe) and it will be used when you
You need to make a xxxxxx.MAP file for each xxxxxx.QWK packet you
plan on importing from(and want to control what messages go where).
I personally like the idea of making a sub with the title "Messages
from Rambo-Scan" and importing all messages from RAMBO-SC.QWK into
one message sub....but, that's me!
(example: all of his 10 subs into your sub 30)
One last note here....This process can be VERY time consuming..so,
don't be alarmed if it takes awhile to run. However, as each message
is processed, little "."'s will print on the screen to let you know
the system didn't take a dive!
WWIVMail/QWK and Networked Subs
WWIVMail/QWK has full built-in support for Networked Subs. That is to
say, WWIVmail/QWK is a full extension of your BBS. If a user posts on a
Net Sub, that post WILL go out on the network. This is acomplished in
one of two ways:
1) If the sub is marked as Sysop Validate = YES, WWIVMail/QWK will place
the message in the local Sub and mark it as pending for net status.
When you, or anyone with access to validate, validates the message,
WWIV will process the post and add it to the p1.net file in your DATA
directory(or whichever directory is set-up under a multi-net environment).
When the user logs off, WWIV will run the NETWORK program(s) on that file,
and the messages will be sent out on the net.
2) If the sub is marked as Sysop Validate = NO, WWIVMail/QWK will place
the message in the local sub AND will CREATE/ADD TO the p1.net file.
As in the case above, WWIV will process the p1.net file when the user
logs off the board, and the message(s) will be sent out on the net.
I create the p1.net file EXACTLY as Wayne Bell does, so the integrity of
all net actions will be maintained.
This is also how e-mail networking is set-up. WWIVMail/QWK creates the
p0.net file, and when the user hangs up, WWIV does a clean_upnet() on
all the p*.net files. At this point, all e-mail destined for the NET
will be sent.
Here is an example on how NET E-Mail looks on the receiver's end.
I sent this personal e-mail (my config.sys), from my account on Rambo-Scan
to my account on Amber (#[email protected]
was how it was addressed).
This is what I got...
(1/1): Net E-mail test
Name: Michael Leib #11 @8856
Date: Thu Jun 18 06:36:15 1992
From: WWIVnet - Rambo-Scan BBS (Southern California) [818-566-7912]
Response To: #[email protected]
Does this get through..
device=c:\qemm\loadhi.sys /r:1 c:\utils\aspi2dos.sys
SLMR 2.1a All hope abandon, ye who enter messages here.
WWIVMail/QWK 4.2 [REGISTERED]: RAMBO-SCAN BBS - @8856 on WWIVnet
.....And this is what I expected.
Also, after I read the mail, I was notified that it was read on Rambo-Scan
just as it was any other piece of E-Mail.
Starting with WWIVMail/QWK ver 4.2, I support the optional Multi-Net
NETWORKS.DAT file used by WWIV ver 4.21a. WWIVMail/QWK will send Net posts
and E-mail out on whichever NET is active for the Sub in question. If
NETWORKS.DAT doesn't exist(for WWIV versions before 4.21a), WWIVMail/QWK
looks for the net files (and writes the p0.net and p1.net files) in the
\DATA directory(as it is defined in INIT.EXE).
Thanks go out to:
Rambo........ (Of Rambo-Scan BBS ) who allows me the time and resources
of his BBS and continues to be the main testing ground for
Foundation....(Of Dark D.) who helped me design the network support.
Crashed him out a few times too...Was also his idea
for the IMPORT mode...thanks for the great ideas!
JAFO..........(Of Blue Thunder BBS) who modified the source to get it
to work with Turbo C++ as well as BC++. Common source
for all current production Borland C compilers. Thanks...
Wayne Bell....what do ya want for 50 bux!
And all the people who have commented, helped in the coding, and design of
WWIVMail/QWK. Also, thanks to those authors who compiled all the information
I found in various places describing the structure/contents of the .QWK
Listing Of Vardec.h/Net.h Ties
In order for WWIVMail/QWK to run correctly on your system, you must
have NOT modified any of the Files listed below. If you have a modified
bbs but have not made any changes to the vardec.h include file, then you
should be fine( And forget you ever read this! ). Otherwise, do a comparision
to the stock file (vardec.h/net.h as Wayne Bell created it) to make sure
these Files aren't stored in a different way. If they are, then you will
need to register your copy of WWIVMail/QWK and obtain the source code to
compile with your modified header files.
directory.filename.DIR ( all .DIR files )
subboards.filename.DAT ( all .DAT files )
subboards.filename.SUB ( all .SUB files )
What Do I Do if I have a modifed USERREC?
Although I have felt in the past that registerred user's did have userrec
support, since they legally got the source code; but, some people couldn't
evaluate the product before paying for it. In order to fix this, and give me
equal advantage with any competetors (current or future), WWIVMail/QWK can
now be compiled and linked via an object-oriented approach to match any
userrec changes that you may have made. Any changes to the BBS structure,
other then the userrec, however, will still require you to register and get
the source. I hope by adding this feature that I will have satisfied many of
your needs and will have greatly enhanced the use, compatibility and quality
of the product.
REMINDER: You ONLY need to do this procedure, with 32 or 64 subs, if you
have modifed your user.lst. If not, use the .exe included in this .zip file.
It was made EXACTLY the same way as you are going to make yours(except with
a stock vardec.h)...I used this .lib as well!
QWK.LIB WWIVMail/QWK LIBRARY TO LINK WITH USERREC.OBJ
QWKBCC.BAT .BAT FILE TO COMPILE AND LINK YOUR VERSION OF WWIVQWK.EXE(BC++)
QWKTCC.BAT .BAT FILE TO COMPILE AND LINK YOUR VERSION OF WWIVQWK.EXE(TC++)
USERREC.H HEADER FILE FOR USERREC.CPP
USERREC.CPP CPP FILE TO COMPILE WITH YOUR USERREC AND LINK WITH .LIB
1) Get your programming environment set-up.
A) Copy the qwk.lib into your .lib directory.
B) Make sure your tools are in your path (bcc v2.0(or higher) or
tcc v1.0(or higher) and tlink).
My Tools: bcc.exe ver 3.1
tlink.exe ver 5.1
tlib.exe ver 3.02
This is what was used in the making of WWIVMail/QWK v4.3.
C) You will HAVE to modify the .bat file to set-up the paths for the
include and library directories..
ie; -Ie:\BC31\INCLUDE must be changed to match your system.
bcc -DEXTENDED -O2 -c -G -ml -N -Ie:\BC31\INCLUDE userrec.cpp
(or tcc depending on which .bat file you are using)
tlink /x/c/P-/Le:\BC31\LIB c0l.obj userrec.obj, wwivqwk, wwivqwk,
emu.lib mathl.lib qwk.lib cl.lib
2) Make sure your userrec.cpp and userrec.h files (this file contains the ONLY
places in WWIVMail/QWK where your userrec is accessed) are accessable.
Userrec.cpp uses vardec.h as well as userrec.h; therefore, make sure
your current modifed vardec.h header file is either in the current
directory or in the directory you have indicated as your INCLUDE
directory. Also, do NOT change any definitions in the userrec.h header
file...because all the code in the .lib was built using those
3) Type qwkbcc.bat(or qwktcc.bat). It will attempt to compile (no link)
your usserec.cpp into userrec.obj using the large memory model.
You should get NO errors or warnings. If you do, try again till it
Notice that there is a -DEXTENDED in the bcc command-line. This needs
to be done so WWIVMail/QWK can detect whether you are using 32 or 64
Message Bases for BBS operation. Don't change this!
4) After it completes a clean compile, it will execute the second line in the
.bat file and attempt to build a wwivqwk.exe. If all your .lib files can be
found, your done. If not, you will get some unresolved external errors
during the link. Fix them (path isn't right...can't find the file...etc)
and THEN you are done. Copy the linked wwivqwk.exe to your WWIV main