home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
WW424TXT.ZIP
/
WWIV424.DOC
< prev
Wrap
Text File
|
1995-04-23
|
987KB
|
19,001 lines
WWIV v4.24 Documentation
by
Filo DeMoville
1@4000 WWIVnet
(c) Copyright 1995
Wayne Bell
Suggestions for the documentation should be sent to Filo.
Your comments and suggestions are welcome. We hope that
you find these documents useful as you use WWIV BBS
software.
Contents
1 Introduction .....................................
2 Historical Developments ..........................
3 WWIV Software Services ...........................
4 READER Documentation .............................
5 ASCII Documentation ..............................
6 Registration Procedures ..........................
7 Network Registration .............................
8 WWIV - OS/2 Registation ..........................
9 NETUP Registration ...............................
10 Accessory Products ...............................
11 License Agreement ................................
12 Upgrade Information ..............................
Installation Information
13 Quick Setup Information ..........................
14 Quick Multi-Instance Setup .......................
15 Installing a New Version over an Older One .......
16 Installation Init Options ........................
17 Directories Created by Init ......................
18 Multi-Instance Setup .............................
19 Standardized Files ...............................
20 Setting up Message Bases .........................
21 E-Mail ...........................................
22 Defaults Area ....................................
23 Transfer Area ....................................
Operation Information
24 Operating the BBS ................................
25 UserEdit .........................................
26 BoardEdit ........................................
27 Conference Editor ................................
28 Directory Edit ...................................
29 G-File Editor ....................................
30 Chain Editor .....................................
31 Allow and Instance Edit ..........................
32 Information on Chains (On-Line Programs) .........
33 QWK OFF-Line Reader Support ......................
34 WWIV.INI Options .................................
35 Top of Screen Information ........................
36 Archiving Programs ...............................
37 Protocols ........................................
38 Multiple Languages ...............................
39 WWIV Source Code Documentaion ....................
40 Where to go for help .............................
41 Upgrading from a prior version of WWIV ...........
Detailed Information
42 Email && Message Base Commands ...................
43 Waiting for Call (WFC) ...........................
44 Main Menu Commands ...............................
i
45 Transfer Area Commands ...........................
46 Information on Chains (On-Line Programs) .........
47 GFILES Information ...............................
48 Modem Information ................................
49 Managing Multi-Instances .........................
50 Multi-Tasking and LAN Operation ..................
51 User On Line .....................................
Frequently Asked Questions
and Reference Information
52 F.A.Q.s - I ......................................
53 F.A.Q.s - II .....................................
54 F.A.Q.s - III ....................................
55 F.A.Q.s - IV .....................................
56 REFERENCES .......................................
57 What's New in 4.24 ...............................
58 Special Thanks... ................................
59 Listing of some Utilites for WWIV ................
ii
Introduction
1.0
WWIV is BBS software written by Wayne Bell and
distributed by WWIV Software Services and authorized
Source Distribution Sites (SDS). It is the BBS system of
choice for thousands of sysops world-wide who appreciate
having a rock-solid BBS system to rely upon and who like
the fact that it is dynamic and evolving software having
at least one major release each year.
WWIV is available in two basic forms. One version is
shareware which permits the user to "try" WWIV for a period
of 60 days. If the user likes the software, he should
register it. The other version is the registered version
which includes (in current versions) the source code to the
program as well as the pre-compiled version. Neither ver-
sion is crippled in any way. Both are the full-featured
BBS. However, beginning with v4.23 it is possible to
"upgrade" the capacity of the BBS to handle more than two
"instances." The new multi-instance software refers to the
ability of the software to have several instances use the
same BBS.EXE and access the same USER.LST at the same time.
This multi-instance ability permits systems to be both
multi-node and multi-line.
The software offers many features commonly found in BBS
softwares selling for many times as much. It also retains
the ability to be easy for a sysop to install and operate.
Thus the combined features of versatility, power, and ease
of use make WWIV one of the most prominent, dynamic, and
fastest-growing BBS programs available.
WWIV is responsive to sysop needs and suggestions made
by sysops. If you have a suggestion that you feel would
improve the software, please feel free to communicate that
suggestion to Wayne Bell by one of the following methods:
=> Send E-Mail to 1@1 on WWIVnet.
=> Call (310) 798-9993 which is the number for Amber,
the BBS run by Wayne Bell. Leave feedback to
Random (Wayne's Handle) on the BBS.
=> Send regular US Mail to:
Wayne Bell
WWIV Software Services
P.O. Box 720455
McAllen, Tx 78504-0455
1
Your help in making WWIV the best BBS system in the
world is needed and appreciated.
Historical Developments
1.1
WWIV was created when Wayne Bell was a teenager. It
was first written in BASIC on a TRS-80. Wayne soon
recognized the limitations of the BASIC language for BBS
operations and he re-wrote the program in PASCAL. At
that time, the BBS program could be registered by
donations of $25. The last PASCAL version was v3.21d.
Version 4.xx is now written in C. Under the C language,
WWIV has developed into a many featured BBS system
supporting one of the largest and most trouble-free
networks in the world.
WWIVnet, the network founded by Wayne Bell, began as a
local based network in Los Angeles, California with 25
charter members. The network has now grown to over 1,500
members located around the world. Because many sysops
wanted to run their own networks for various reasons,
Wayne Bell added a feature which allowed the BBS system
to participate in multiple WWIV-based networks and
developed the networking software to support such
multiple network usage. Now there are over 100 WWIV-based
networks offering a range of topics and supporting a
multitude of various interests. The WWIV networking
software is shareware which is included in the registered
packet distributed by WWIV Software Services. A
registered WWIV sysop does not have to pay any additional
fee to utilize the network software. Some other BBS
softwares also use the WWIV networking program. Sysops
of those softwares are expected to register the WWIV
networking software since they are not registered WWIV
sysops. The form to be used for such Network registration
is NETREG.FRM.
The documentation for WWIV has also developed overtime.
It began as a short 3 page document written by Wayne
Bell. Later, with v4.10, William Daystrom wrote a
complete set of documentation for use with WWIV.
Beginning with v4.20, Filo added additional comments to
some of the documentation files written by Will and
completely rewrote others. The documentation was again
completely rewritten by Filo for v4.23. With the release
of v4.24, Sam (1@4051) has begun to help with the upkeep
2
and maintenance of the documentation.
Beginning with v4.23 the documentation is now available
in the "reader" format which contains a menu option to
let you print the docs. The reader format utilizes a
program written by Chuck Walden of UCS which was made
available to WWIV Software for such usage. The address
for UCS is contained in Chapter 57 of this documentation.
Also beginning with v4.24, WWIV Software Services as
agent for Wayne Bell is handling numerous accessory pro-
grams for use with WWIV. These accessory programs may
be found in the ORDER.LST that accompanies the BBS soft-
ware. Information on these accessories is in Section
1.3.5 of this documentation.
Beginning with v4.24, an OS/2 release for WWIV will be
made available. Information on this new release is found
in Section 1.3.3 of this documentation.
WWIV Software Services
1.2
WWIV Software Services was established in 1992 to
assist Wayne Bell with registrations and other business
matters. All questions regarding registration and all
registrations themselves should be sent to WWIV Software
Services. The mailing address is:
WWIV Software Services
P.O. Box 720455
McAllen, Tx 78504-0455.
WWIV Software Services also markets a line of
accessory programs to be used in conjunction with WWIV
BBS software. Information regarding these accessory
programs is in Section 1.3.5 (p. 52) of the documentation.
In addition, an ORDER.LST is included with the BBS soft-
ware in both the pre-compiled and source code versions.
The ORDER.FRM may be used to place the order. The
ORDER.LST contains the item number and a description of
the software itself.
WWIV Software Services is run by Filo. Filo may be
contacted as follows:
3
=> E-mail 1@4000 WWIVnet
E-mail 1@2050 WWIVLink
E-mail 1@2050 IceNET
E-mail Filo@panam.edu on InterNet
=> Call (210) 631-5841 and leave e-mail or feedback
to Filo or usernumber 1.
=> Send US mail to Filo C/O WWIV Software Services.
WWIV Software Services batch processes registrations
and accessory product orders once a week, normally on
Saturdays. Disk mailers with the products ordered,
registration papers, and letters are normally mailed the
following Monday. Thus, if you send in an order, allow
a few days for the post office to do its work and then
assess the schedule above to determine when you should
get a response. If you have not gotten a response by
one week after that date, please contact Filo and ask
about the status of your order. When inquiring about
the status of an order, please give your real name as
most of our files are arranged by real name.
WWIV Software Services wishes to have the reputation
of providing WWIV sysops and others with good, fast
service. Any suggestions you have along these lines or
any complaints should be sent to Filo.
READER Documentation
1.2.1
Filo Software Productions is a company run by Filo.
The company engages in the sale and distribution of soft-
ware written by Filo and it also is an authorized
distributor of the BOOK READER SYSTEM developed by Chuck
Walden of United Computer Services. Because of this re-
lationship, Filo has obtained the use of the book reader
for WWIV sysops at no cost to them. Additional informa-
tion on the BOOK READER SYSTEM may be found in DATA.HLP
that accompanies this documentation.
The data files for use with the book reader are
distributed as DATA.xxx where xxx indicates the particular
document. For example, the documentation for NET34 is
distributed as DATA.N34. The WWIVnet Policy Document is
distributed as DATA.WNP. The book reader can read all of
these data files and can search through them quickly for
any phrase or word of interest. The book reader docu-
mentation also contains page numbers to make it easy
4
to locate related items.
With the book reader, you can print to a printer or
to disk, the entire documentation, only a chapter of it,
or only a page. Thus, those sysops who prefer using ASCII
text may create their own ASCII text copy of the docs by
using this feature. An ASCII version of the docs, see
Section 1.2.4 of this documentation, is also available
for downloading from the support boards and from Amber.
Amber is Wayne Bell's BBS.
The book reader is distributed in several different
forms (See DATA.HLP). The form distributed to the
WWIV Sysop is capable of reading all data files produced
by Filo Software Productions. Other versions of the
book reader system may be obtained from Chuck Walden
or from Filo for a fee.
With v4.24 of WWIV, the enhanced memory features pro-
vide enough memory that the book reader may be run from
a DOS MACRO (page 20). Thus, the sysop can easily
run the reader program to search the documentation without
leaving the BBS. Because the reader does not feed to the
comport, this feature cannot be used remotely.
Another book, separate and apart from the WWIV doc-
umentation is also included here--Reader Help. This
document provides information on the commands available
to you through the reader and the book reader system.
Additionally, there is a Sub called EBRNFO (Electronic
Book Reader Information) hosted by Chuck Walden, 1@4025
WWIVnet, that may be auto-subscribed to for additional
information and help on the book reader system. For
those who are not on WWIVnet but who are on WWIVLink
or IceNET, the sub may be auto-subscribed as EBRNFO
from 1@2050.
Because the book reader system is capable of making
ASCII text files for those who prefer documentation in
that format, the READER type docs are the only type
distributed to new registrants and to those who have the
latest version of the software sent to them on diskette
by WWIV Software Services. Those who download the latest
version of WWIV Software may select from the READER for-
mat or the ASCII format.
1.2.2 Naming Conventions for Documentation
The files that should be available for downloading on
the support boards and Source Distribution Sites (SDS
systems) will be described as follows:
5
WW424RDR.ZIP - Complete WWIV Documentation and READER
WW424TXT.ZIP - Complete WWIV documentation in ASCII
WW424DAT.ZIP - Complete WWIV documentation in DATA
format without the READER.EXE
WWDOCRDR.ZIP - READER.EXE with no DATA files other
than DATA.HLP
WW424RDR.ZIP will be the format distributed to new
registrants and to those who want updates sent to them
on diskette (See Section 1.3.5, page 62) for information
on this service).
People who wish to obtain the latest documentation but
who already have the READER.EXE will probably want to
download the WW424DAT.ZIP file. Those who want the
latest version of the reader program will download the
WWDOCRDR.ZIP file which will contain only the latest ver-
sion of the READER.EXE.
1.2.3 Using Dos Macro for Reader
To use the reader with the DOS MACRO as recommended,
you should do the following:
1) Create a sub directory off of your main bbs
directory called DOCS.
2) Put the READER.EXE and all documentation in the
DOCS directory.
3) In your DATA directory, create a file called
MACROS.TXT and insert the following:
R: C:\WWIV\DOCS\READER
Such a setup with a DOS MACRO will permit you to enter
ALT R and access the reader. Once you are in the reader,
you can follow its instructions. The book select option
allows you to select the particular documentation that
you want from a list of the documentation that is present.
6
ASCII Documentation
1.2.4 Ascii Documentation
The ASCII Documentation for the WWIV programs is
similar but not identical to the version distributed for
the READER. The reason for this is that the hyperlinks,
figures, etc. that are accessed easily in the READER
cannot be easily handled in the form of ASCII docs or
cannot be handled at all.
The ASCII Documentation is provided as a service to
those sysops who (a) objected to paying a few cents extra
to obtain the READER.EXE via a download and (b) indicated
that they had no use for the READER.EXE or its features.
By providing ASCII docs in addition to the READER,
we believe that we can meet the needs of all sysops.
The ASCII version does have a few marks to enable
identification of page numbers and so forth and they
are still formatted in columns that are basicaly 60
characters wide. This permits the sysop to specify
a left margin of 10-12 characters so that the pages
may be bound if desired.
Any sysop who wishes to reformat the ASCII version
for use in his/her word processor is, of course, free to
do so. We even thought about putting the documentation
in Word Perfect format, but then we realized that doing
so would only generate additional complaints for those who
used some other form of Word Processor and those who pre-
ferred to use a text editor instead of a word processor.
Hopefully, the ASCII docs provided with the BBS soft-
ware will be sufficient to meet the needs of those who
prefer the ascii format and who objected to having to
download the READER.EXE in order to create their own
ASCII docs.
The fact that we have two versions of the docs is
one indication that we wish to provide the most service
to WWIV sysops that we can.
7
Registration Procedures
1.3
WWIV is shareware. This means that the product in
its precompiled form (ie the version distributed as
WWIVxxx.ZIP where the xxx is the version number) may be
tried for a period of 60 days before the user becomes
obligated to register the program. WWIV is able to
offer its software at a very low price relative to that
of many other BBS programs because it is a shareware
product. This means that we do not have to spend money
on fancy packages (boxes), large advertisements, etc.
This savings is passed on to the user in the form of a
very inexpensive, full-featured BBS program. Unlike
many other BBS packages, registration of WWIV insures
that you are entitled to all v4.xx versions of the BBS
that are released.
An understanding of the numbering system that WWIV
uses for its releases is important so that you can
appreciate the scope of the statement that you are en-
titled to all future 4.xx releases. When WWIV began to
be offered to the public in the C language, the BBS
numbering began at 4.01. During the early stages of the
C release, some numbers were skipped in order to indicate
that the new version was significantly changed over that
of prior versions. However, beginning with v4.20, a new
numbering scheme was adapted. In the new numbering plan,
a new version will only be incremented by one over that of
the preceeding version. Thus the current version is v4.24
which is only one higher than 4.23 and the next version
will be 4.25 which will only be a single increment over
the previous version.
Those who have followed the development of WWIV know
that the increase in the number of features available in
the 4.23 version was significant. v4.24 also offers a
significant number of major features over that of v4.23.
You may obtain an idea of how many features this was by
by examining Chapter 56 regarding "What's New". If
WWIV continues its plan of having no more than 2 new
releases per year, then registration now provides you with
the right to obtain the next 38 releases of DOS versions
at no additional charge to you if you download the new
versions from the SDS sites or at a minimal fee to cover
postage and handling if you have WWIV Software Services
mail you the new version on disk.
You should also be aware that WWIV has followed and
will continue to follow the practice of allowing sysops
to have a full trade-in if a new language and/or operating
8
system is made available. Not only are you entitled to a
full trade-in, but you also retain the rights to your old
release as well. To help you understand this concept
better, an example based on the past and an example based
on the current time period will be considered.
When WWIV changed its language from Pascal to C, the
sysops who had registered the Pascal version (suggested
price of $25) were able to upgrade their registration to
the C version by paying the $25 difference in price. Not
only did they get the new version by paying the difference
in price, but they also retained their right to obtain any
additional versions that might have been offered in
Pascal.
Now that an OS/2 version is being released, a sysop
registered for the DOS version may upgrade to it by
paying the difference in basic registration cost between
what was paid for v4.xx and what is paid for WW4O424 or
WW4O424S. The pricing of these new versions is explained
in Section 1.3.2 (page 41) of this documentation.
The sysop who opts to register one of the OS/2
versions will still be able to access the DOS versions;
however, the DOS sysop will not be able to obtain the
OS/2 versions without paying the additional registration.
The registration process itself is very simple. You
should print the REGISTER.FRM file to a printer and then
fill it in. Mail the form along with payment to WWIV
Software Services. When your registration has been
processed, you will receive a registration number and
diskettes containing the latest version of WWIV, its
documentation, and the latest version of the networking
software. Your payment should be by Check or Money Order.
DO NOT SEND CASH. If you are located in a foreign
country, you should send an International Postal Money
order or a check drawn on a US bank. We do not have the
facilities to cash checks drawn on foreign banks. We
do not take credit cards.
If you do not have a printer, you may put the
essential information in a letter and mail it to WWIV
Software Services. The essential information is:
Your Full Name
Your Mailing Address
Your voice telephone number (in case there are
questions)
Your preferred disk size. We prefer to send on 1.44
meg 3.5' diskettes. We will use that form if you
do not specify your preference. If you can use
that format, we prefer that you do so.
A clear statement of what you wish (i.e. please send
latest version of WWIV BBS Software).
9
With that information and your check or money order, we
can process your order quickly and efficiently. It will
help us if you put your name and address on the envelope
in the upper left-hand corner. This facilitates your
registration process and will allow us to find your
order more quickly if questions should arise regarding
its status.
Please note that there is a $20 charge made by WWIV
Software Services for your checks that are not honored by
your bank. The reason for this charge is that our bank
charges us an additional fee when your bank does not
honor the check that you sent us, and we must send extra
correspondence to you to get the matter straightened out.
Your registration will be treated as void as long as
there is an outstanding charge against your registration.
We recognize that some people cannot afford to pay the
entire $80 ($85 for registrations not in North America) at
one time. We do offer an installment plan to accomodate
these people. The installment plan payment schedule is
as follows:
You are in You are NOT in
North America North America
───────────── ────────────────
Payment 1 -- $20 Payment 1 -- $25
Payment 2 -- $20 Payment 2 -- $20
Payment 3 -- $20 Payment 3 -- $20
Payment 4 -- $25 Payment 4 -- $25
The installment plan is actually a lay-away plan. That
is, you do not receive the source code or a registration
number until you have completed all payments for the
registration. What this does do, however, is provide you
with a legal right to use the software for an additional
60 days for each payment that you make. Also, since some
networks require that you be registered in order to
participate in the network, most will accept the install-
ment plan as a sufficient reason to extend your trial
period in that network for another 60 days.
The ORDER.FRM has a place to indicate that you are
making an installment payment and the amount of that
payment. Please send an ORDER.FRM for each payment that
you make, or include the essential information (See page
36) and an indication of which payment you are making.
If you have any questions about registration
procedures, contact Filo.
10
Network Registration
1.3.1
The WWIV network program is an extremely powerful,
easy to use program that permits the sysop to participate
in any of the established WWIV based networks. The
sysop may also establish a network. The characteristics
of the network executables are explained more thoroughly
to the average user in the documentation for NET34 and
in the WWIVTECH documentation for those writing software
designed to be compatible with WWIV based networks.
The WWIV network executables are also shareware. That
is, a person may try them out for a period of 60 days
without paying a registration fee; after the 60 day trial
period, the individual is expected to either register the
WWIV BBS software if the BBS is WWIV or register the
network programs if the BBS is not WWIV. Those who
register the WWIV BBS software are considered to be
registered for use of the WWIV network programs. Those
who run a different type of BBS but also use the WWIV
network programs are expected to register the network
software.
The registration of network software may NOT be
upgraded to that of BBS registration. That is, the
person who registers the network software for use on a
non WWIV bbs cannot subsequently trade that registration
in on a WWIV BBS registration.
The form to be used for registering the network
programs is NETREG.FRM. It is distributed with the NETxx
archive and will generally be found in the main directory
of your bbs. You should print this form on your printer
and then send it along with a $20 check or money order
to WWIV Software Services, P.O. Box 720455, McAllen, Tx
78504-0455. If you do not have a printer, you may provide
the essential information (see page 33) in a letter and
send it along with your check or money order. A $20
fee is assessed for checks that are not honored by your
bank.
The essential information required is:
Real Name
Mailing Address
Disk Size (not required for net registrations)
If you have any questions about the process of
registering the network software, contact Filo at WWIV
11
Software Services.
WWIV - OS/2 Registation
1.3.2
With the growing popularity of OS/2(tm), WWIV Software
Services is happy to offer an OS/2 version of WWIV. This
version will be distributed as WW4Oxxx.ZIP where the O
indicates that it is OS/2 and the xxx indicates the
version number of WWIV. The OS/2 version will NOT be
distributed as shareware. Persons wanting to find out
about WWIV can use the DOS version in a "Dos Box" of OS/2.
That works quite well and all that is necessary is that
the sysop follow the OS/2 setup instructions that are
provided in this documentation. However, a number of
sysops do not want to run WWIV in a "dos box" and these
wanted to see a version of WWIV designed to run in the
OS/2 operating environment.
The OS/2 version of WWIV was developed by Jeff Garzik
and several other people. It is distributed in
two versions: WW4O424.ZIP and WW4O424S.ZIP. The first
version refers to the precompiled version and the second
to the source code version. The source code version re-
quires a compiler that is OS/2 compatible. The compilers
used to compile the DOS version of WWIV will not work for
this purpose.
Some people have wondered why WWIV Software Services
would offer both a precompiled and a source version for
OS/2 when it does not offer both versions in DOS. The
question is a good one and the rationale for this is
discussed below.
First, the DOS version of WWIV is distributed as
shareware whereas the OS/2 version is not shareware in
any of its forms. Since the dos version requires a "test"
version of the software, our choices are basically those
of providing a full-featured, uncrippled BBS as test
software or providing a limited and/or crippled version.
We believe that we have made the right decision by dis-
tributing the full-featured, uncrippled version of WWIV
for DOS and trusting to the honesty of people to register
it. We have many registered WWIV sysops who have no need
for the source code version of the WWIV for DOS. They do
not want to modify their boards and/or take the time to
learn how to use a compiler. For these people, the
precompiled version of WWIV for dos is sufficient.
12
Since the OS/2 version is not being distributed as
shareware, people who do not want to modify the source
code can obtain the WW4Oxxx.ZIP version by registering
the program for $100 (note: additional trade-in discussion
is found later for those upgrading from a registered WWIV
for DOS). The sysop who wants to modify his source and
use the OS/2 version can do so by registering for $120.
The OS/2 source version will require an OS/2 compatible
compiler to compile the source code.
The OS/2 version(s) of WWIV may be obtained by
ordering from WWIV Software Services. Once a sysop is
initially registered for the OS/2 version, then future
OS/2 versions may be ordered from WWIV Software Services
or obtained from The Dragon's Den or The Dragon's Den II
(Filo's boards) or from Amber (Wayne Bell's board). At
the present time, plans do not include distribution of the
OS/2 version by SDS sites.
If a sysop is already registered to use WWIV for DOS
and wishes to upgrade to OS/2, the process is one of
registering the OS/2 and paying the difference between
the registration fee paid for the dos version and the
price of the OS/2 version of interest.
The chart below indicates the options and their
prices:
Type of WWIV OS/2 OS/2
Registration No Source with Source
_____________ __________ ___________
None $100.00 $120.00
WWIV v4.xx $50 50.00 70.00
WWIV v4.xx $80 20.00 40.00
Orders for OS/2 by sysops registered for WWIV v4.xx may
be placed on the ORDER.FRM. Orders from sysop who are
not registered for WWIV should be placed on the
REGISTER.FRM. Sysops not located on the North American
continent should add $5.00 to the prices above.
Payment should be by check or money order. A $20
charge is levied by WWIV Software Services for additional
handling if your check is not honored by your bank. If
you are not located on the North American Continent, you
should use an International Postal Money Order payable
in US funds or a bank draft drawn on an US bank.
Any questions about the OS/2 version of WWIV should
be directed to Filo at WWIV Software Services.
13
NETUP Registration
1.3.3
NETUP is a program written by Wayne Bell for use on
WWIV compatible networks. The program is not shareware
and is available only to registered users of WWIV who
agree to the terms of the license which if contained
in this section. The program is available for purchase
for $300.00.
The reason that the program seems expensive is that
if reflects custom programming done by Wayne Bell and
each version requires some additional customized code.
There are other people selling similar programs for less
money.
NETUP allows you to set up, run, and maintain your
network in the same way that WWIVnet is run. When WWIVnet
is updated and the change requires a change in NETUP, that
change will be made available to you without further
charge. Thus with NETUP, you can be assured that your
network will always be up to date.
NETUP allows you to send out updates to those who
are on your network. Those on the network will be able
to process the updates in the same fashion as they are
processed on WWIVnet.
With a netup registration, you receive netup.exe,
de?1.exe, and en?1.exe. The ? in the filenames are
dependent upon the name of the network. Before they are
used on your network, they should be renamed to de1.exe
and en1.exe. The de1.exe file should be distributed to
all nodes in your network.
The en1.exe and netup.exe programs should exist only on
the Net Coordinator's (NC) system and should not be given
to others.
The netup.exe program is the same program that is
used in WWIVnet for sending updates. The de1.exe and
and en1.exe, of course, are different and are unique to
your network.
Before registering netup for use on a network, you should
already have your network up and running, with at least
30 systems, for a few months. (It isn't worth register-
ing netup for only a few nodes. Running a network
for a few months before using netup will allow you to
understand how networks run, and what files need to be
14
updated.) If you want to run your own network with just
a few nodes, the easiest method is to set up a subboard
where you periodically post the bbslist and connect
files, and have the sysops manually update those files on
their system.
Netup will NOT help you initially set up a network.
It does not contain docs or support to help you run a
network. Netup will only be useful to you after you have
a network up and running.
If you wish to register netup, print out the letter
below the line of asterisks (*), fill in all blanks,
print it out, sign it, and send it, along with a money
order for $300 (made out to "WWIV Software Services") to:
WWIV Software Services PO Box 720455 McAllen, TX
78504-0455. Note that if you send a check, your netup
application will not be processed until the check has
cleared our bank; thus you can speed up the process by
sending a money order.
1.3.4 NETUP LICENSE AGREEMENT
The WWIV Net Update Software (Netup) is designed to
provide an independent WWIV-based network with the
ability to have network updates sent out by a Net
Coordinator (NC) and to permit regional coordinators to
send updates to the NC. Each network that registers this
software has a unique encoding scheme which prohibits the
program from working on any other network. The software
is sold for the exclusive use of the individual or
organization to whom it is registered, on one network,
and may not be used by anyone else, nor may the ownership
be transferred to another person or organization.
The registration of this software entitles the software
to be upgraded as necessary to remain compatible with the
latest version of NETxx, the WWIv network software used
on WWIVnet. No other representation or warranty is
expressed or implied by the program.
Name :
Address :
City, State, Zip:
Network name
(capitalize as you want it to appear):
Date:
By purchasing the WWIV Net Update Software for the sum of
$300.00 (Three hundred and no/100ths dollars), I hereby
15
agree that this software will only be used by me or by my
designated agent; that it will not be transferred to any
other person or used for any other purpose than that of
providing updates for a WWIV-based network.
I further agree that I will adopt and enforce the
following policy on my network (choose either policy A or
B and circle it, placing your initials in the margin next
to the item circled):
A. Membership and participation as a sysop in my network
will require registration of the WWIV BBS software, or
of the WWIVnet software, if a system does not use WWIV
BBS software.
B. Membership and participation as a sysop in my network,
beyond a sixty day trial period, will require
registration of the WWIV BBS software, or of the
WWIVnet software, if a system does not use WWIV BBS
software.
Registration numbers will be placed in the bbslist for
each node, or expiration date for the trial period will
be shown. These numbers will be placed in brackets
immediately before the name of the BBS. The network
bbslist(s) will be made available to Wayne Bell and/or
WWIV Software Services upon request. I recognize that
each entity mentioned in the previous sentence has an
interest in verifying the registrations, and I agree to
cooperate with such efforts.
I reserve for myself the right to permit up to a 30 day
'grace' period beyond the original 60 day trial period,
and I agree that no one will be allowed to continue to
participate in my network beyond that period. I hereby
admit that I am on notice that permitting a board to
remain in the network beyond that period when it is
unregistered, or abetting a board to fraudulently avoid
registration of the BBS software, shall be cause to
nullify the agreement which permits me to obtain upgrades
of the Net Update Software.
Signed,
__________________________________
Dated, __________
This contract is meant to say what it clearly says and
nothing other than that without written addendums agreed
to by all parties involved.
16
/***********End of License Agreement********************/
Questions regarding the NETUP software should be sent
to Wayne Bell. Questions about the registration of NETUP
should be sent to Filo. Both may be contacted at WWIV
Software Services, P.O. Box 720455, McAllen, Tx 78504.
Accessory Products
1.3.5
WWIV Software Services handles a variety of utilities
for use with WWIV. Some of these utilities duplicate
functions that are in the BBS software but which handle
the functions more readily or more colorfully. None of
these are required for use, but their use may make the job
of operating and managing the BBS much easier.
These products are also described on the ORDER.LST
included with the BBS software. They may be ordered from
the ORDER.FRM that is included with the BBS software.
Questions regarding these products should be directed
to Filo at WWIV Software Services.
Product Description
ESM (External String Manager)
COST $5.00
TYPE Shareware
DESC. Allows editing of external string (.STR)
files. Also comes with ESMPOP, a TSR loader,
that allows swapping out currently executing
program and loading in ESM.
UEDIT (User Editor)
COST $20.00
TYPE Shareware
DESC. Allows global color redefinition, searching,
editing, tons of stuff. Also includes UDB,
which translates USER.LST data to comma-
delimited ASCII format, for importing into
mainstream database programs (Paradox, etc).
PackScan (NetWork2 Preprocessor)
COST $20.00
TYPE Shareware
DESC. Registration enables only the files-via-
network capability. PUS-reception and
packet-logging are free. Probably the most
17
sophisticated network2 preprocessor on the
market, and written so that adding new
features may be incorporated.
PUS (PackScan Update System)
(Must be registered for each network)
COST $20.00
TYPE Commercial
DESC. Does most of what NETUP does, but requires
PackScan on all systems. For small-scale
networks. Networks with more than 100 nodes
should obtain NETUP.
StrPop (String Pop)
COST $15.00
TYPE Shareware
DESC. TSR string-editor/viewer, activated with
AltV. Put the cursor on a get_string or
get_stringx call and it pops up a window
showing what that string is, and allows
on-the-spot editing (usually from within
Borland IDE or the person's source code
editor).
SPU (Sound Playback Utility)
COST $10.00
TYPE Shareware
DESC. Plays back .CMF, .VOC, and .WAV files,
for AdLib or Soundblaster equipped systems.
GDU (Graphics Display Utility)
COST $10.00
TYPE Shareware
DESC. Displays .PCX and .GIF files. Supports
commandline or interactive selection.
Supports 23 different VGA/SVGA chipsets.
Mainly written so that it could be invoked
from within TAM to view GIFs that a BBS
might have online.
TAM (Transfer Area Manager)
COST $20.00
TYPE Shareware
DESC. Permits easy management of transfer area
data including editing descriptions, sorting,
etc.
ProbeLite (Network Utility)
COST $10.00
TYPE Shareware
18
DESC. Allows profanity-zapping and network logging.
UTIL_PAK (Utility Package)
COST $10.00
Type Shareware
DESC. Includes serveral small utiliites as described
below:
LFILE -- Generates file listings based on
the access of a supplied usernum.
NSORT -- Sorts N*.NET files
NewFile -- Marks specified files as showing as
always new on the BBS. ...continued
TVault -- Time Bank type chain. Very similar
to the Time Vault built into WWIV.
ZLOG -- Shows ZLOG data in scrollable
fullscreen form.
RR (Russian Roulette)
COST $10.00
TYPE Shareware
DESC. ANSI game, pull-trigger-blow-brains-out chain.
Hangs up if you lose.
....continued
Topper (Top Ten User Utility)
COST $10.00
TYPE Shareware
DESC. Chain/util to create list of top ten users
in various categories.
WWMON (WWIV Instance Monitor)
COST $10.00
TYPE Commercial
DESC. Shows some basic info about all instances
(who online, etc). ALso allows some of the
inter-instance message types to be sent
(string msg, shutdown msg). Intended to help
multi-instance systems keep track of what's
going on from one "watchdog" program.
19
WUFFC (WWIV Uploader for FIDOnet Files)
COST $75.00
TYPE Commercial
DESC. Basically imports the FIDOnet file backbone
directly into WWIV. A maintenance-type
program estimated to save the sysop who is
receiving all of the FILEBONE approximately
15 weeks of maintenance time per year. This
version will handled an unlimited number of
directories.
WUFFB (WWIV Uploader for FIDOnet Files)
COST $50
TYPE Commercial
DESC. Same as WUFFC except that it only works on
a maximum of 50 directories.
....continued
WUFFA (WWIV Uploader for FIDOnet Files)
COST $25.00
TYPE Commercial
DESC. Same as WUFFC but limited to working on 25
directories.
WSSFDI (Installer for FrontDoor(tm))
COST $15.00
TYPE Commercial
DESC. This program provides all necessary programs to
operate WWIV with the FrontDoor (tm) program.
The program installs the FrontDoor, a fossil
driver (required by FrontDoor), a mail tosser,
and the WFIDO translator program that translates
FidoNet style messages to WWIV and vice versa.
This program writes the batchfiles required to
make it all work and it contains documentation to
help with the setup.
WWIVedit (Full-Screen Editor for WWIV)
COST $20.00
TYPE Shareware
DESC. A full-screen editor for WWIV. Program written
in PASCAL. Originally developed by Adam Cald-
well. Owned and distributed by WWIV Software
Services. Registration is good for all future
updates and is reflected when a user enters the
editor.
Next version(s) on diskette
WWIV Software Services will mail the next version of WWIV
to you on diskette along with all accompanying documenta-
tion and the latest version of the network software on
1.44mg disks for $7.50 to cover postage and handling; if
20
you require a disk size other than 1.44mg, please include
an additional $2.50 and be sure to specify the format
that you wish.
License Agreement
1.4
┌────────────────────────────────┐
│ WWIV v4.23 License Agreement │
│ Your use of 4.23 Source │
│ indicates your agreement │
└────────────────────────────────┘
In prior releases, the information contained in this
explicit agreement was found in the WWIVSOUR.DOC and in
the headers to the parts of the WWIV source code.
Beginning with version 4.23, this agreement is being made
explicit.
If you do not agree to the terms herein, you should
not unzip the source code version. Unzipping the source
code version will be taken as an explicit indication that
you agree to adhere to the terms contained herein.
Some changes in the operation of the BBS under v4.23
require that the license agreement be changed. Those
changes are called to your attention below. If you do
not agree to the change, do not unzip v4.23. These
changes do not alter your prior rights and you may
continue to use older versions of the software.
CHANGES in License Agreement:
OLD:
Registration of WWIV entitles you to use the WWIV
software beyond the 60-day trial period, and access to
and use of the WWIV v4 source code, for use on a single
BBS phone line. (If you have more than one phone line
connected, you need a separate registration for each
phone line.)
NEW:
Registration of WWIV v4.23 and subsequent versions
entitles you to use the WWIV software beyond the
60-day trial period, and to have access to and use of
WWIV v4.23 source code, for use with one or two phone
lines. The initial registration entitles you to have
either one phone line and one local work station (ie
21
keyboard) or two phone lines, or two work stations (with
no phone lines) provided that ALL of them access the
same USER.LST. If they access different USER.LST files,
then a separate registration is required for each.
You may purchase the right to have additional phone
lines and/or work stations. Each additional use is
termed an "instance". Information on upgrading to
additional instances is found in the enclosed
documentation and on the UPGRADE.FRM.
OLD:
You are allowed to view, modify, and use the source code
for your BBS. (This means you can modify the source
code to suit your needs/desires, compile that, and run
your modified executable as your BBS.) You may not give
out the source code, or give out a copy of the BBS which
you have compiled (only the version of the BBS, compiled
by WWIV Software Services, may be distributed).
NEW:
You are allowed to view, modify, and use the source code
for your BBS. You may not give out the source code, or
give out a copy of the BBS which you have compiled (only
the version of the BBS, compiled by WWIV Software
Services, may be distributed).
You may allow a non-registered individual to modify your
source code provided that the source code is not copied
to another computer and provided that it never leaves
your own computer. If you need assistance in the
modification or compilation of your source code, you
may obtain it from another registered WWIV user provided
that you notify Wayne Bell of your intention to do so
and obtain his permission prior to doing so. In asking
for permission, you should identify the other
registered sysop by name and registration number.
OLD:
As can be seen in the notice at the beginning of all the
source files, DISTRIBUTION OF THE SOURCE BY ANYONE
EXCEPT WWIV SOFTWARE SERVICES OR A SOURCE DISTRIBUTION
SYSTEM (SDS) AUTHORIZED BY WAYNE BELL IS PROHIBITED.
Even if your best friend mails a registration check
right before your eyes, he must get the source from WWIV
SOFTWARE SERVICES or from an SDS BBS, you may not give
him a copy.
If you have somehow gotten ahold of this WITHOUT either
22
downloading it from an SDS BBS, or having WWIV SOFTWARE
SERVICES send you a copy, then you are hurting the cause
of good software. If it turns out that it is not
possible to control distribution of the source by
reasonable means, you will probably find that the source
WILL NOT BE AVAILABLE for future versions.
NEW:
As can be seen in the notice at the beginning of all the
source files, DISTRIBUTION OF THE SOURCE BY ANYONE
EXCEPT WWIV SOFTWARE SERVICES OR A SOURCE DISTRIBUTION
SYSTEM (SDS) AUTHORIZED BY WAYNE BELL PROHIBITED. Even
if your best friend mails a registration check right
before your eyes, he must get the source from WWIV
SOFTWARE SERVICES or from an SDS BBS, you may not give
him a copy.
If you have somehow gotten ahold of this WITHOUT either
downloading it from an SDS BBS, or having WWIV SOFTWARE
SERVICES send you a copy, then you are hurting the cause
of good software. If it turns out that it is not
possible to control distribution of the source by
reasonable means, you will probably find that the source
WILL NOT BE AVAILABLE for future versions.
If you distribute WWIV source code without
authorization, you will lose your registration
priviledges and be subject to both criminal prosecution
and civil liability. Wayne Bell and WWIV Software
Services will prosecute to the fullest extent of the
law.
SUMMARY of Agreement:
1. Wayne Bell and WWIV Software Services agree to:
a. make the current (v4.23) and future versions of
WWIV v4.xx available to registered users at no
additional fee for BBSes having either one phone
line and one local work station (ie keyboard) or
two phone lines, or two work stations (with no
phone lines).
b. accept additional Upgrade registrations from
registered users to enable additional phone
lines or work stations.
c. test the current and future releases before
releasing them to registered users. Such
testing may not reveal all bugs, and thus no
explicit or implied warranty exists; however,
23
users can be assured that reasonable care has
been used to test the workability of the
program.
d. protect our copyright and your registration by
prosecuting violators of this agreement to the
fullest extent of the law.
e. maintain a list of registered users and to
utilize various methods to check the registra-
tions of those using WWIV software.
2. The registered user agrees to:
a. refrain from distributing the source code to any
one who is not registered. Distribution to a
registered user may only come about if (a) you
are an authorized SDS system or (b) you have
obtained Wayne Bell's permission to have a
registered user help you modify your source
code.
b. refrain from making modified copies of the BBS
available to others. The single exception to
this is that a registered user may modify and/or
compile the source code on his computer and make
it available to one other person provided that
Wayne Bell's permission has been secured in
advance (see 2.a. above).
c. adhere to Wayne Bell's admonitions regarding the
distribution of modifications as discussed in
the documentation which states, "If your
modifications would require you to distribute
over 100 lines of the initial BBS code, you
should contact Wayne Bell before you distribute
it, sending him a copy, and asking if it's OK.
Most likely it will be."
If individuals abide by this agreement, Wayne Bell and
WWIV Software Services will be able to continue to
make WWIV source code available to registered
individuals. If you become aware of anyone who is
distributing WWIV source code without authorization
and who is damaging your right to continue to receive
source code by so doing, please report this to Wayne
Bell and/or WWIV Software Services.
Questions regarding this license agreement may be sent to
24
Filo care of WWIV Software Services, P.O. Box 720455,
McAllen, TX 78504-0455.
Upgrade Information
1.5
Beginning with v4.23 of WWIV BBS software, the BBS
will have "multi-instance." Multi-instance is defined to
allow more than one "instance" per user.lst. An instance
may be either a keyboard attached to a computer or a
comport attached to a remote modem. Sysops who are
already registered are entitled to have two instances
without making any additional payment. The upgrade is for
those who wish to have more than two instances which
utilize the same user.lst.
Upgrade requests should be sent on the UPGRADE.FRM
that is included with the BBS software. Texas residents
should include Texas sales tax at the rate of 7.75% on
the total order.
You may upgrade from 2 instances to 4 and then later
wish to upgrade from 4 instances to 8 or 16. The chart
below should facilitate your determining the cost of your
upgrade. If you have questions, please direct them to
Filo.
P R I C I N G
UpGrade From \ 1 or 2 4 8 16 32
Upgrade To :
4 : $20
8 : $45 $25
16 : $80 $60 $35
32 : $120 $100 $75 $40
unlimited : $220 $200 $175 $140 $100
The multi-instance software has been tested on LAN
systems having 38 nodes and on bbs systems having up to
32 lines. If you should use this software in situations
which test the capacity beyond that, please report your
results to Filo so that he has that information available
to inform others.
25
Quick Setup Information
2.1
╔════════════════════════╗
║ FAST SETUP INFORMATION ║
╚════════════════════════╝
2.1.1
NEW INSTALLATION:
Setting up WWIV for the first time is very simple and
should only take a matter of minutes. The first thing to
do is to create a directory for the BBS. This should be
a directory created off of the root directory of any
drive. To create such a directory, you can use the DOS MD
(make directory) command. Most people name their main
bbs directory as either WWIV or BBS.
Make Directory:
cd\ (change directory) slash gets you to the root
directory of the drive.
md wwiv creates the WWIV directory.
Unzip Archive:
The next step is to unzip the bbs files into the WWIV
directory that you just created. Assuming that your
WWIVxxx.ZIP file is on drive "A", the appropriate steps
would be:
cd\WWIV (change directory) to WWIV
pkunzip a:\wwiv4xx.zip this will unzip the archive
into the current directory
(ie the WWIV directory).
You must have PkZip (tm) somewhere in your path in order
to use the PkZip commands.
Files included:
You should check the FILES.LST contained with the archive
to determine the complete files list shipped with the
current version. If any files are missing, your BBS may
not run properly or perhaps not run at all. To check
that FILES.LST, you can use the DOS type command:
type files.lst
which should cause you to see a listing of the included
file names.
Run Init:
26
If all files are present, your next step is to run the
program called INIT.
Once you run INIT (for the first time), you will be told
that CONFIG.DAT wasn't found, and you will be asked if
you wish to perform the initial installation. You should
answer Y. INIT will then proceed to install the necessary
files and directories for WWIV to run. You should note
that all directories will be made as sub-directories of
whatever your current directory is, so be SURE that your
current directory is the one you want to use as your main
WWIV directory, when you first run INIT.
This program will automatically create some directories
for you on the hard drive and put certain files in some
of these directories. Although each version of WWIV may
have slightly different files, you should expect to see
something like this as the directory tree that is
created:
:\WWIV
\DATA
\GFILES
\MSGS
\TEMP
\DLOADS
\SYSOP
\MISC
A number of files will be placed in DATA when you
finish the INIT program, and a number of *.msg files will
be moved to the GFILES directory. Several of those may
be edited to suit your preference. Editing those files
is discussed later in the documentation. [Chapter 19]
Be sure that your primary language string is named
BBS.STR.
Configure Modem:
The first time that you run INIT, the program will
attempt to detect your modem type and configure it for
use with the BBS. If the modem type that is selected
does not work well, you can select the SELECT MODEM TYPE
from the menu and chose the one that most closely
represents your own modem. There is also more detail
about modem selection and modem use in the section of the
documentation dealing with modems. [Chapter 48, p. 530]
After your modem has been configured, there are
27
certain items of information requested by INIT that you
will definitely want to fill in immediately; other items
may be left at their default values until you are more
familiar with WWIV.
You will be told that your system password has
defaulted to SYSOP. The system password is a password
that should only be known by the primary system operator.
The system password should be entered whenever you see
the "SY:" prompt. You will need to enter the system
password whenever you run INIT, or run more sensitive
sysop functions from the BBS. After you are told what the
system password is, you will be given the "SY:" prompt,
and you will need to enter the system password, SYSOP.
After correctly entering the system password, you will
be in the WWIV v4 initialization/configuration program.
You will have a list of 14 options. These options will
be described later in order. If you don't fully
understand some of the options, just leave them as they
are, and their use will probably become clear after
playing with the system a bit, or reading the WWIV sysop
manual.
For a fast setup, change the following items in Option
1 to fit your system:
System PW
System Name (the name you want to call your BBS
and Sysop Name.
The rest of the settings can be altered later after you
you learn more about how WWIV operates.
You should now log on as NEW. Answer the questions as
they are posed to you. When you have finished logging on,
you should hit the F1 key. This allows you to edit a
user that is online. Since you want all powers and
features, enter 255 as your SL and DSL. For ARS and DARS,
enter the letters A through P. If restrictions are shown
remove them by pressing the letter of the restriction.
For exemptions, enter 9. When you exit the online
user edit function, you should see your time increase
dramatically. You are now a sysop with an operating BBS.
Have a friend call from his computer to test it out.
There is much more to learn, but you can learn things
by (a) experimenting with the BBS, (b) using the online
help features, and (c) reading the documentation.
28
Quick Multi-Instance Setup
╔═════════════════════╗
║ FAST MULTI-INSTANCE ║
║ SETUP INFORMATION ║
╚═════════════════════╝
2.1.2
Beginning with v4.23 it is possible to run more than
one instance of WWIV. This may be done in situations
where you are using multitasking software and/or a LAN.
This permits more than one user to be using an "instance"
of the BBS at the same time. In order to utilize more
than one instance, you must do the following for EACH
instance (other than the first).
1. Create an additional TEMP directory for each
instance to be run. You may do this with the DOS MD
command discussed earlier. For example,
cd\wwiv
md temp2
would create the TEMP2 for the 2nd instance. If you
have purchased capacity for more than 2 instances
(two instances are permitted in the normal dis-
tribution version), you would make additional TEMPx
directories for each additional instance.
2. Run INIT using the following command:
INIT ,2
which enables you to create the "second instance" If
the second instance is only for local keyboard use
(ie no modem attached), then the only changes to be
made are in option 3 for PATH information: show the
path to TEMP2 for the TEMP directory and the Batch
Directory.
If the second instance is attached to a modem, then
it will be necessary to define the COM port for that
modem and select a modem type for it.
3. For a local logon, you need a batchfile that can be
used to logon to the second instance. This will be
invoked by your multi-tasking software in a multi-
tasking environment or may be used over a LAN. The
batchfile should look like this (do not type the
29
comments):
c: : put drive appropriate to your
: system or LAN
cd\WWIV : change directory to where WWIV
: is located
SET WWIV_INSTANCE=2 : set environmental variable
: for 2nd instance
bbs -m -i2 : -m = do not use modem
: -i2 = instance 2
If the second instance is attached to a modem also,
then the -m is used only for local logons. The i2
is necessary to tell the BBS that it is instance 2
that is being run.
4. You will need to install SHARE.EXE or be using some
form of "share" via your network software if you are
on a LAN in order to have multi-instance capability.
If you are using OS/2 as your multi-tasking software
you will NOT need share.
Additional information for multi-tasking may be found
in chapters 49 and 50.
Installing a New Version over an Older One
2.2
╔══════════════════════════╗
║ Setting Up a New Version ║
║ of WWIV ║
╚══════════════════════════╝
If you are already running a version of WWIV and you
wish to install a new one, the following procedures will
normally work. Note that you could enter this
information into a batch file with the drive letters and
paths changed for your machine. If the version of WWIV
that you are running is the immediately preceeding ver-
sion, you will have the least amount of difficulty. The
read.me file which is included as an appendix to these
documents always covers the problems associated with
upgrading older versions to newer ones. If you have
critical data in any of your directories, it is always
a good practice to make a backup copy before beginning
an upgrade.
30
The procedures to follow to install a new version
of WWIV over an older one are:
1) Unzip the new version of WWIV into a directory of
its own.
2) Copy *.exe c:\wwiv [note: change drive\path
for your setup]
3) copy *.com c:\wwiv
4) copy *.msg c:\wwiv\gfiles
5) copy *.str c:\wwiv\gfiles
6) rename the ENGLISH.STR to BBS.STR
7) copy REGIONS.DAT c:\wwiv\data
8) OPTIONAL:
Copy MODEMS.DAT c:\wwiv\data
9) change directories to the C:\WWIV directory and run
INIT
10) For versions using RIP, unzip RIPMENUS.ZIP into
your GFILES directory unless you have defined your
main language directory to be elsewhere.
Normally the procedures above will be all that is
necessary for you to install a new version over an older
version. If English is not your primary language, then
rename the appropriate language string. NOTE:
MODEMS.DAT is released with each version of WWIV; since
the setting for your modem may be different than that
which you have been using, you may wish to save your old
MODEMS.DAT to avoid overwriting your settings. This is
precautionary until you discover whether or not the new
settings work well for you.
31
Installation Init Options
╔═══════════════════════╗
║ PRIMARY CONFIGURATION ║
╚═══════════════════════╝
2.3 Using INIT
Once INIT is run, and after you have correctly entered
the system password, you will be presented with a menu
listing fourteen options. This section will describe each
of them, giving examples of how to use and modify your
configuration. [pic00]
2.3.1 Option 1. System info (name, passwords, newuser
info, etc) [pic01]
This section allows the sysop to change general system
information. The things you can change are:
2.3.1.a System password
The system password defaults to SYSOP, but you should
be sure to change it to something else, hopefully
something that other people will have a difficult time
guessing. Selecting your own personalized system password
helps prevent other people from gaining unauthorized
access to your BBS. When you type the password it will
show on screen as XXXXX.
Note that with the release of v4.24, an added security
measure has been added that allows you to enter a system
password on the command line when you start up your bbs.
See the setup section for details.
2.3.1.b System name
This should be set to the name of your BBS, but if it
isn't set correctly, nothing bad will happen. You should
give considerable thought to selecting a name for your
BBS. To avoid duplication of other names that might be in
use on BBSes, you are encouraged to check the network
listings for the various WWIV based systems and perhaps
FidoNet systems as well.
2.3.1.c System phone
This should be set to the phone number of your BBS.
This isn't critical information UNLESS your board is a
32
member of a WWIV network.
2.3.1.d WWIV Reg Num
If you have registered your BBS, you will have a
registration number. This is where you enter that
number. This information is shown to callers when they
log on to the BBS.
2.3.1.e Newuser PW
This is the password people will have to enter in order
to log on as new users. If there is no newuser password,
anyone may log on as a new user. This should only be used
if you wish to operate a "private" system.
2.3.1.f Newuser restrict
This sets the restrictions that all new users are
given. This should probably be left as-is until you fully
understand what the restrictions are used for. See
"Restrictions" for more details. The default restriction
of M means that any messages that the user posts, will
not be seen by anyone else until you have validated the
messages.
2.3.1.g Newuser SL
This sets the security level that all new users are
given. The default is 10. This should also be left alone
until you understand what the different security levels
do, and even then, most sysops will probably want to
leave this set to 10.
2.3.1.h Newuser DSL
This sets the download security level that all new
users are given. The default is zero. New users are
severely limited in what they can do on the BBS until you
have 'validated' them which usually involves an increase
in their SL and DSL as well as possibly the assignment of
some ARS and DARS.
2.3.1.i Newuser gold
WWIV keeps track of an amount of "gold" for use in
online games, if needed. This sets the default amount
new users are given. The regular distribution version of
WWIV does not use gold for anything. If you have
registered your BBS and obtained the source code,
modifications are available which can allow you to use
33
gold, for example, to regulate downloads or game use by
requiring that the caller "earn" a certain amount of gold
by posting.
2.3.1.j Sysop name
At a few points in the BBS, the system will need to
print out the name of the system operator. This is where
you can set what that name will be.
2.3.1.k Sysop low time
The sysop low time and sysop high time set the time
limits that the sysop is available to be chatted with.
If, for example, you don't want people to be able to
request a chat between 11pm and 7am, then your chat hours
would be 7am to 11pm. The low time (when chat hours
begin) would then be 7am, and the high time (when chat
hours end) would be 11pm. You enter the time in the
standard 24-hour format, where 7am is 07:00 and 11pm is
23:00.
Normally, the scroll lock key determines when the sysop
is available for chat. If sysop hours are defined, the
system ignores the status of scroll lock during the hours
the sysop is supposed to be unavailable. In other words,
if you followed the above example and chose available
hours to be from 7am to 11pm, callers will not be able to
request chats with you from 11pm to 7am, regardless of
the scroll lock setting.
During the sysop hours (7am to 11pm), scroll lock IS
monitored, and will determine whether or not the sysop is
available for chat. If the scroll lock is on, callers
will be told you are available, and if they request a
chat, a chat alarm will be sounded (unless you have
turned the beep off. (See page 111 for details).
2.3.1.l Up/Download ratio
Many sysops want to have up/download ratio
requirements. This allows you to set them. A caller's
ratio is defined to be the number of k (1024 bytes) of
files uploaded divided by the number of k of files
downloaded. So, if you want a caller to be able to
download 5k for every 1k uploaded, the required ratio
would then be 1/5=0.2, so you would set the ratio
required to be 0.200. This way, when a caller has
34
violated the ratio (downloaded over five times what
he/she uploaded), the caller would not be allowed to
download again until the caller uploaded enough data to
clear the ratio.
2.3.1.m Post/Call ratio
Similar to the Up/Download ratio, this restricts users
from downloading if they do not meet the minimum ratio
established.
2.3.1.n Max waiting
Each caller may have a number of pieces of mail
waiting. This allows you to set the maximum number of
pieces of mail a caller can have waiting. NOTE: The sysop
(sl=255) can have 5 times this number of mail waiting.
So, if, for normal callers, 20 is the maximum, then 100
would be the maximum for the sysop. If the sysop has
more than 254 pieces of email waiting, only the first 254
will show up at the mail prompt, but the rest will not be
deleted. After the sysop reads some email, the software
will make more of the waiting email available, but will
still only show the first 254 pieces at the mail prompt.
2.3.1.o Max users
The BBS requires you set the maximum number of users
that can be on the system. This defaults to 500, but you
may increase or decrease it. The absolute maximum is
32,767, but 2,000 is probably about the limit for
performance reasons (ie, the system slows down the more
users you have).
2.3.1.p Caller number
If you have converted to WWIV v4 from another BBS
(possibly an earlier version of WWIV), you may set the
current caller number with this option. This counter is
increased by one each time the system receives a non-
network call unless the remote caller is the sysop.
35
2.3.2 Option 2. More system info (net, status, etc)
2.3.2.a System number
If your system is a member of a WWIV network, the node
number is entered here. A node number is something that
is assigned to you by a network administrator and is the
means by which others can address your system with e-mail
and/or send you a networked sub.
In v4.21a and higher, if your network software is
NET31 or more, the option for Node Number is moved to
option N. If you do not have NET31 or higher AND v4.21a
or higher, you will still configure your node number
here. In these other versions, you will see option N
which is discussed below.
2.3.2.b Net low time
You can specify hours during which your BBS will only
accept network connections. Anyone else calling at that
time will be asked to call back later and be
disconnected. The net low time is the time from which
your BBS will stop accepting regular calls. The time is
entered in 24-hour format, just like the sysop hours (ie,
4pm = 16:00).
2.3.2.c Net high time
This parameter, used in conjunction with the net low
time, specifies the time at which regular calls will be
accepted again.
2.3.2.d Closed system
If you don't want to allow new callers on at all, set
this option to "Y," and no new callers may log on
remotely.
2.3.2.e Local system
It is possible that you may want to run the BBS on a
computer that you don't have continual access to. Setting
local sysop to "N" will: a) disable all function keys, b)
disable the top of screen data, and c) disable sysop
functions while the BBS is waiting for a caller.
36
2.3.2.f Beep for chat
Normally, the BBS will make a horrid beeping noise in
an attempt to attract your attention when a caller
requests a chat. If you would prefer not to be such
annoyed, simply set this to "N," and the BBS will no
longer beep at you for chat requests.
2.3.2.g Phone off hook
When the sysop wants to check up on his system
locally, remote callers can not log on. If you would
prefer people calling while you are on to get a busy
signal (instead of ringing), set this to "Y," and the BBS
will pick up the phone while you log on locally, or read
feedback, or use any other WFC command that is likely to
take some time.
2.3.2.h Two color chat
Normally, in chat mode, all text will be the same
color. If you would prefer text typed locally and
remotely to be two different colors (if the caller
supports ANSI graphics), set this option to "Y."
2.3.2.i Two way chat
Under normal conditions, two way chat mode will be
used when the caller has ANSI and is calling at 1200 bps
or higher. This option allows you to disable two-way chat
capability.
2.3.2.j Allow aliases
If you would prefer to disallow the use of aliases on
your BBS, set this option to "N."
2.3.2.k Close transfers
This option will allow you to close the transfer
section of your BBS. This means that no one will be able
to upload or download from your BBS. This option may be
very useful if you have limited disk space available for
the board.
2.3.2.l All UL to sysop
This option forces all uploads to be placed in your
sysop directory. This is an excellent way to ensure you
do not get any viruses or other unwanted programs
37
uploaded to you to affect your callers. This will force
all programs uploaded by your callers to go directly into
your sysop directory, where you can run them through a
virus scanner or run the program yourself before moving
them to an area or directory where the rest of your
callers can then download them.
2.3.2.m Sysoplog to printer
If you would like the sysoplog to be printed out to the
printer as events occur, then set this option to "Y."
Please note that you must have a printer connected and
ready on LPT1: in order for this to work.
2.3.2.n Use list utility
If you have a text file viewing utility, you may use it
to view your sysop logs from WFC. The utility must be
named "LIST" and be placed in the DOS path (or main BBS
directory). If the list utility is not used, sysop logs
are always printed to screen as if TYPE were used (i.e.
they are listed continuously from top to bottom).
2.3.2.o Free format phone
This option allows "non-standard" telephone numbers to
be entered. "Standard" format being what is used in the
United States and Canada, which is ###-###-####. Other
countries may have a different format that may have more
or fewer numbers. This allows systems to operate in
other countries as well as allowing callers from other
countries to call BBS's in the United states and Canada.
When this option is set to "Y", users are not prompted
for their last 4 digits when logging on.
2.3.2.p Notify user of DL
If this is set to "Y", when a user logs onto the BBS,
a short message is displayed advising who downloaded any
files they uploaded. This option only checks user
numbers, so it is possible a user may be notified of an
download that was uploaded by the person who previously
had that same user number.
2.3.2.q Extended Information on Users
Toggling this option will ask your old users for the
38
address information and so forth that was added in v4.22.
2.3.3 Option 3. Paths (messages, gfiles, data, etc)
If you have more than one hard disk, you may wish to
split up the BBS files among your hard disks, in order to
better use the space. Using this option, you may change
the directories that the BBS looks to for certain things.
Please note that changing any of the options here will
only change where the BBS looks for the data; IT WILL NOT
ACTUALLY MOVE ANY FILES OR DIRECTORIES.
2.3.3.a Messages dir
Information regarding all e-mail and posts is stored
here.
2.3.3.b Gfiles dir
The Directory where the bbs text files are stored.
These files can be read by users while they are on line.
See chapters 29 and 47 for information on G-Files.
2.3.3.c Data dir
Data files used by the BBS are stored here.
2.3.3.d Dloads dir
This directory is used to set the default directory
for new file sections.
2.3.3.e Temp dir
This area is used to temporarily store files for the
BBS. Because this area is "cleared" each time that a
user logs off, you should not store anything in this
directory.
In multi-instance WWIV you will need a separate TEMPx
directory for each instance that you have. See the
section of FAST SETUP FOR MULTI-INSTANCE for more
information.
39
2.3.3.f Batch dir
This directory is used to temporarily store files that
are batch uploaded (defaults to Temp dir--should have
adequate disk space for files being batch uploaded; at
least 2 megs recommended).
You may freely change the dloads dir, temp dir and
batch dir to whatever you want without hurting anything.
HOWEVER, the temp/batch directories MUST exist. If you
can, have the temporary directory exist as a ramdisk. If
the temp dir is a sub-dir of a ramdisk, MAKE SURE that
the directory is created BEFORE the BBS is run. In other
words, run the BBS in a batch file that first creates the
temp directory.
Please note also that any files found in the temporary
directory when the BBS is run will be DELETED. If you
point the temporary directory to your root directory, or
the BBS directory, ALL THE FILES IN THAT DIRECTORY WILL
BE ERASED. Therefore, have the temporary directory be one
that doesn't contain any files you care about.
After batch uploads are completed, the BBS will auto-
maticaly move the files into the appropriate drive and
directory.
The others (messages, gfiles, data), however, will
have files in them that the BBS needs to find in the
appropriate directories. Use the following guidelines for
selecting and naming new directories (if you wish to use
any):
1. Never use the root directory of any drive to store
BBS files; the root directory can only hold a
fixed number of files, while any sub-directories
may hold an unlimited number of files in them.
2. Always have a backslash on the end of the
path/directory name. The software will normally
add this backslash for you.
3. The directory may be specified relative to the
main BBS directory, or as a full pathname. In
other words, "msgs\" is recognized as a
sub-directory of the main BBS dir. In most
instances, however, you won't need to change the
default directories. If you choose to have
directories located on another drive, remember to
include a drive letter in the pathname.
If you change the messages, gfiles, or data directory,
you must then:
40
1. Go to DOS and create the new directory.
2. Move all files from the old to the new directory.
3. You should then probably erase the old files and old
directory, to ensure you aren't confused by multiple
copies later on.
If you have any gfile sections (described later), you
will have sub-directories of the gfiles directory, ie,
"gfiles\section1\". You will then need to create sub-
directories, of the new directory, with THE SAME NAME,
and copy all files from the old sub-directory to the new
one.
2.3.4 Option 4. Com port info (port, IRQ, base address,
etc
2.3.4.a Com Port
This sets the com port number that your modem is
connected to. If this is set to zero, the result is that
the BBS will not use a modem at all (same as /m
parameter). Initially, the com port is identified and set
with the auto-detect features of the INIT program.
2.3.4.b Interrupt
This allows you to manually change the interrupt used
by the BBS. You will probably not need to modify this.
2.3.4.c Base address
This sets the com base address used by the BBS, and is
dependent upon the com port number. It is set
automatically when you change the com port option, and
you will not need to change this, unless necessary.
2.3.4.d Slow UART
The INIT program automatically detects the presence of
the 16550 buffered UART chip for the com port listed.
"Y" indicates INIT has detected a 'slower' UART chip and
the "Unbuffered UART on COMx" message will be displayed.
2.3.5 Option 5. Select modem type
This option allows the manual selection of the modem
type to be used by the BBS. Using up/dowm arrow keys,
scroll to the modem type that most closely describes your
modem; press enter, and a new MODEM.DAT file will be
compiled and placed in the DATA directory. It is this
file that contains all modem information the BBS needs.
MODEM.DAT is a data type file that cannot be altered or
changed. The source for the MODEM.DAT file is a config-
urable text file called MODEMS.MDM. MODEMS.MDM is one of
41
the files that now comes with WWIV. When you run INIT
for the first time, this file is moved to the DATA
directory.
It is very unlikely that you ever need to change the
data stored in MODEM.DAT, but if it ever became necessary
(changing a result code or such), the place to do so is
in MODEMS.MDM, then re-select that modem type and a new
MODEM.DAT file will be compiled. For more information on
this, consult Chapter 48.
2.3.6 Option 6. External programs (zip, terminal, etc)
2.3.6.a Terminal program
This should be set to the name of a batch file to run
a terminal program. If, for example, you want to run
Qmodem, and your Qmodem files are in the directory
c:\qmodem, you should then set the terminal program
option to QMODEM. Then, in your main BBS directory, you
should create a file to run Qmodem, such as:
copy con qmodem.bat
c:
cd \qmodem
qmodem
^Z
You don't need to worry about changing back to the BBS
directory when done, the BBS will do that for you. One
side note: Due to the size of Qmodem, and the size of the
BBS, you probably can't actually use Qmodem unless you
"shrink" the BBS out of memory during the time you are
using the comm program. Also, you don't necessarily have
to run a terminal program with this option. It simply
allows you to run an external program from WFC. You
could, for example, run a file management utility from
the BBS by running it instead of a terminal program. The
only limitation in that instance is, again, the memory
remaining.
2.3.6.b BeginDay Event
This is a batch file or program that the BBS will
automatically run after the first caller logs on after
midnight, every night. You can write a batch file, for
example, to run the maintenance program of an on-line
game. Or, you can write a batch file to backup some BBS
files.
42
2.3.6.c Logon Event
This is just like the BeginDay Event, except that it
is run every time a caller logs on. This option may be
used to run a program that gives the caller a "quote for
the day" or other similar utility.
2.3.6.d Newuser Event
This is also like the BeginDay Event. This time,
though, it is executed immediately after a new user has
saved the validation letter.
2.3.6.e Upload Event
This is similar to the BeginDay Event, and will
execute after a user uploads file(s). This is a good
opportunity to "virus scan" uploads, change the archiving
method or even change/add zip comments, just to name a
few possibilities. Parameters that can be used in this
event are:
%1 chain.txt path and name
%2 directory
%3 filename
2.3.6.f External Event
Again, this is not too different from the above-listed
events. This one, however, can be set to run at any pre-
defined time. See the next section for details.
2.3.6.g Time for Event
This is how you can set the time that the External
Event will run. Any caller that logs on before the
external event is set to run will have his/her time
on-line shortened so that the caller will be off the BBS
before the event runs.
2.3.6.h Archive Extension
This option is listed four times, as are the other
extension-related settings. This is because WWIV can
support up to four different archiving programs. In the
transfer system, you or a caller may view the files
within an archive, extract individual files from
archives, and add those extracted files to a new archive.
Archive Extension is simply the filename extension of the
archive program you want to support. For example, ZIP,
ARC, PAK, and LZH are all popular archive extensions.
NOTE: The first archive listed is the most important in
one respect: it is the only archive that will be used
43
when the Add to archive option is selected. For example,
if a caller extracts a file from within a LZH archive,
and then wants to add the file to a temporary archive to
download later, ZIP would be used to create the new
archive if ZIP were listed first in INIT. Select which
archive you want to use for this role, and enter its
extension first in order.
2.3.6.i List Archive
This is the archive command used to see a listing of
the files within an archive. Some sample commands are:
(for ZIP): PKUNZIP -V %1
(for PAK): PAK V %1
(for LZH): LHARC V %1
The %1 is a parameter which the BBS uses to pass
the filename of the archive to be viewed.
2.3.6.j Extract Archive
This is the archive command used to extract a file
from within an archive. Some sample commands are:
(for ZIP): PKUNZIP -E -O %1 %2
(for PAK): PAK E %1 %2
(for LZH): LHARC E %1 %2
Again, %1 is replaced by the BBS with the filename
of the archive to be worked on, and %2 in this instance
is replaced by the path of the temporary directory
(discussed earlier).
2.3.6.k Add to Archive
This is the archive command used to add a file to the
temporary archive. As stated earlier, only the first "Add
to Archive" entry is important; you may leave the other
three blank. Some sample commands are:
(for ZIP): PKZIP -A %1 %2
(for PAK): PAK A %1 %2
(for LZH): LHARC A %1 %2
In this case, the BBS replaces %1 with the filename of
the temporary archive to be created, and %2 is replaced
by the path and filename of the file(s) to be added to
that temporary archive.
44
2.3.7 Option 7. External protocols (other than X,Ymodem)
Using this option, you will be able to insert, delete,
and modify external protocols for the BBS to use.
Following are some examples of commands to use for
various external protocols:
Description : Zmodem
Xfer OK Code : 0
Require MNP/LAPM : No
Receive command line:
dsz port %2 speed %1 est 0 %4 rz %3
Send command line:
dsz port %2 speed %1 est 0 %4 sz -r %3
Receive Batch Command Line:
dsz port %2 speed %1 est 0 %4 restrict rz %3
Send Batch Command Line:
dsz port %2 speed %1 est 0 %4 sz @%3
Bi-directional transfer command line (not implemented
yet):
The return code is only checked for sending files.
Also, if you leave either the send or receive command
line blank, that protocol will be disabled for the
function omitted. In other words, if you didn't specify a
command for sending with Zmodem, callers would only be
able to use Zmodem when uploading to you.
Under v4.22 and up, you may over-ride the built-in
protocols of Xmodem and Ymodem by entering alternative
parameters to them. For example, you might wish to
replace those functions with those found in DSZ by Omen
Technologies. However, if you do this, be aware that the
BBS will consume about 3k more of memory. The command
lines for HS-LINK in use by Moon Valley Triangle (1@6211
WWIVnet) are:
Description : HS/Link
Xfer OK code : 0
Require MNP/LAPM : N
Receive command line:
HSLINK -P%2 -E%4 -U%3
Send command line:
HSLINK -P%2 -E%4 -NU %3
Receive batch command line:
HSLINK -P%2 -E%4 -U%3
Send batch command line:
HSLINK -P%2 -E%4 -NU @%3
Bi-directional transfer command line:
HSLINK -P%2 -E%4 @%3
45
2.3.8 Option 8. External editors (full screen)
Full screen editors allow you and your callers (with
ANSI) to write email and posts using an editor that is
not restricted to the line-by-line approach used by
WWIV's built-in text editor. Some editors allow the use
of function and arrow keys to move the cursor about the
screen, in much the same manner as a regular word
processor. Full screen editors tend to be awkward for
callers to use, however, as while the sysop might use the
arrow keys to move the cursor, the caller must almost
always use control-key combinations to achieve the same
thing -- not very easy. Still, there are some great
advantages to using a full screen editor, especially from
the sysop's point of view, and so provision is made in
WWIV for their use. The full screen editor must do all
I/O through DOS calls. A well-known full screen editor
because it has been used in many versions of WWIV is
FSED, written by Sagredo. The command lines to use FSED
could be:
remote: fsed +dosansi.cfg +wordstar.cfg -w%2 -h%3 -l%4 %1
local: fsed +console.cfg %1
Other well-known full-screen editors for WWIV include
WWIVEDIT, ZEDIT, MEREDIT and FEDIT.
If you utilize FSED, you can experiment with the
commands provided in the FSED documentation to find a
combination that you like best, but the above is probably
the best for general use - especially from the sysop's
perspective.
Command lines to use in WWIV for FEDIT are:
Description : FEdit 1.1
Filename to run remotely
FEDIT %1 %2 %3 %4
Filename to run locally
FEDIT %1 %2 %3 %4 %5
Some editors, such as WWIVEDIT, will do automatic
configurations. Because of that ability, the command lines
for WWIVEDIT are not shown here.
2.3.9 Option 9. Seclev data change
For each security level (0-255), there is a set of
data that determine what a caller with this SL may do.
This option will allow you to change that data.
46
Using {,},[,], you can scan through until you find an
SL you want to change. Then, hit enter to edit the data.
You can then alter:
2.3.9.a Security level
Changing this changes to that security level. The
other data on the screen is appropriately changed. Any
data changed for the previous SL is saved.
2.3.9.b Time per day
This gives the time, in minutes, that a caller with
that SL is able to be logged on the system per day,
regardless of the number of calls.
2.3.9.c Time per logon
This gives the time, in minutes, that a caller with
that SL is able to be logged on to the system per call.
Normally, the time per day is 2.5 times the time per
logon. Normally, the time allowed on is limited by the
time per logon, but after the second call that day, the
time per day may cut down the total amount of time on.
Of course, the time allowed on may be affected by
uploads, chat time, and extra time allowed by the sysop.
2.3.9.d Messages read
This sets the number of messages that can be read
(per call) by a caller with that SL.
2.3.9.e Emails per day
This sets the maximum number of pieces of mail that
a caller with that SL can send, per day. NOTE: Email
excludes feedback. A caller is allowed to send up to 5
pieces of feedback per day.
2.3.9.f Posts per day
This sets the maximum number of posts a caller with
that SL can post per day.
2.3.9.g Post anony
If set, this means that a caller can post a message
anonymously on any message base.
47
2.3.9.h Email anony
If set, this means that a caller can send anonymous
e-mail.
2.3.9.i Read anony posts
If set, a caller with this SL can read the names on
anonymous posts.
2.3.9.j Read anony email
If set, a caller with this SL can read the names on
anonymous e-mail.
2.3.9.k Limited co-sysop
If set, a caller with this SL can validate and delete
messages from any caller. Normally, callers can only
delete messages they themselves have written.
2.3.9.l Co-sysop
If set, a caller with this SL has access to all
co-sysop functions.
2.3.10 Option 10. Auto-Validation data change
The sysop can set the Alt-F keys (Alt-F1 through
Alt-F10) to set certain data for a caller. This function
allows you to change that data. You may set the SL, DSL,
AR, DAR, and restrictions. Then, when a caller is
on-line, you may press any ALT-function key combination
to immediately change that caller's security levels, AR,
and restrictions. This may be useful for validating a
caller - you can, for example, just hit Alt-F1, and if
you have that configured to give the caller standard
access, the caller will immediately receive said access.
It all happens very quickly, and there is no immediate
indication on the caller's side that anything has
happened, save perhaps a dramatic increase in the
time-left display.
Be careful, though. If you are logged-on locally, and
hit an Alt-key combination, your stats will be altered as
well. This would do no permanent damage, but it will
cause an annoyance as you have to go to the indignity of
validating yourself again.
ALT-F10 also has a special usage for registered
sysops. If the OPT_SIMPLE_AUTOVAL is selected before
compiling the BBS, a visiting sysop being automatically
48
autovalidated because YES was entered in response to the
question, "Are you a WWIV Sysop?", will have AR, DAR, SL,
and DSL set to the parameters entered for F10 subject to
the contraints that the value must exceed that for new
users and must be less than 100.
2.3.A Option A. Auto-Detect modem type (if possible)
This option, if selected, will have the software try
to match your modem to one of the types as best it can.
2.3.N Option N. Update Network info
If you have both v4.21a or higher of the BBS software
AND NET31 or higher, you will see Option N and it will
enable you to configure your system for more than one
network. When selected, you will see the self-
explanatory prompt:
Networks: M:odify, D:elete, I:nsert, Q:uit :
If you select I:nsert, you will be prompted to
provide information on the network name, the node number
of your system in that network and the directory where
the data files for that network are to be found.
Each network should have its own data directory so
that bbslists and so forth may be updated properly.
The network software will look first to this directory
for network files, so if some files for a particular
network are different, they should be placed here as
should the BBSLIST and CONNECT information for that
network.
2.3.U Option U. Userrec (WWIV v4.21a) Max # Subs/Dirs
(WWIV v4.22+)
If you have not modified your userrec, then this
option will adjust your userrec for the increased message
base size (32 to 64 subs) available on v4.21a. If your
userrec has been modified, this option will do nothing.
In v4.24, you may use this option to increase the
number of message bases and/or directories that are in
use. The software will increment these in blocks of 32
each. You should NOT select more than you think that you
will actually need, for more memory is required as the
number is increased.
49
If you are counting for the 14 options, the 14th is Q
to quit.
Directories Created by Init
2.4 Tree Stucture and Directory Function
Under WWIV v4.24 the following tree structure is
created under the main directory (WWIV assumed as name of
the main directory):
\wwiv
\data
\dloads
\sysop
\misc
\gfiles
\msgs
\temp
Each of those directories has a particular
function that is described in this chapter. The
location of all of the immediate subdirectories with the
exception of ripmenus may be changed in the INIT program
by specifying different drives or paths. The sysop and
miscellaneous directories are part of the transfer
section and these may be changed by the directory editor
[See Section ].
2.4.1 Data Directory
The data directory holds a number of important files
for the bbs to use. For example, you will find the
following files there:
USER.LST - This file contains information on all of
your users. All information except names
is kept in this file.
NAMES.LST - This file contains the names of the users.
It is indexed to the USER.LST.
SUBS.DAT - This file contains information on all of the
message bases (subs) that you create. The
BBS begins with one sub called BOARD1.SUB
as the file name and General as the Title of
the sub.
50
DIRS.DAT - This file contains information on all of
the transfer directories. The BBS begins
with two transfer directories -- sysop
and miscellaneous. The information for
them is contained in the DIRS.DAT. Each
directory also has its own file (as shown
in the next two data files).
UBSYSOP.DIR - The file that contains all of the in-
formation regarding uploads to the sysop
directory.
MISC.DIR - The file that contains all of the infor-
mation regarding uploads to the miscel-
laneous directory.
EMAIL.DAT- The file contains header information and
e-mail titles regarding private mail that
has been sent on the board. The messages
themselves are located in another EMAIL.DAT
file located in the MSGS directory.
STATUS.DAT - The file contains important information
about your BBS.
As your BBS grows in size through your adding
additional subs and transfer directories, the number of
files in your DATA directory will grow. In addition,
this directory often holds information about the network
that you are on (refer to NET documentation).
2.4.1.1 Backup
Because some of the information in the DATA
directory is critical to the operation of your BBS, you
may wish to make a copy of it regularly. Of the files
above, the ones that I would recommend backing up
regularly would be STATUS.DAT, NAMES.LST, USER.LST and
possibly the *.DIR files. If you are on one or more
networks, you may also have some important network data
files that should be part of a regular copy routine to
enable you to restore the information easily if it
should be lost.
2.4.2 Dloads Directory
The Dloads (downloads) directory does not contain
any files in it. Its primary function is to allow all
download directories to be created under it rather than
directly off the main bbs directory. The sysop and
miscellaneous directory are two such examples. You
51
may find that before you are through with your bbs that
you have dozens or even hundreds of directories in your
download area.
In the DIREDIT (see chapter 28), you can set various
parameters that define who has access to each directory.
Typically, the sysop directory will not be available to
anyone except the sysop and will be used to accept
uploads from the users when they wish for something to be
seen only by the sysop, unless, of course the sysop
restricts all uploads to going to the sysop directory so
that they may be approved before putting them elsewhere
on the board for more general access.
2.4.3 Gfiles Directory
The G-Files (General Files) directory is an
important one in terms of the functioning of the BBS.
Although many sysops do not have a G-Files area that is
accessible to users (that is, they elect not to have
general text files for online viewing by the users in
this area), yet the directory itself must be maintained
as it is the repository of the daily logs, laston.txt,
and other important files that may be created on a
transitory basis by the bbs software.
The use of the gfiles area as a place for general
text files is discussed in Chapter 29, along with the
use of the GFILEEDIT used to maintain the section.
2.4.4 MSGS Directory
This directory is the place where the actual text of
messages placed on subboards and in email is kept. The
files here are all kept with an extension of DAT. The
size of the file is determined by the number of messages
that are allowed in each message base; that is, a message
base that has a maximum size of 50 will be of a different
size than one that is configured for 80 messages even
though both of them may be empty when created. The bbs
software creates the file of the maximum size in order to
insure that room is available for holding that many
messages. There are utilities available which can
compress the dat files in MSGS.
Under normal operating conditions, a sysop may
safely ignore this directory. Typically the only time
that a sysop must do any maintainance on this directory
is when a message base has become so corrupted that the
FIX program (see section ) cannot fix it. At that point,
the sysop may have to delete the *.DAT file for the sub
and start the message base over. This deletion of a file
52
here should be a last step measure when all else has
failed. Unless you are an experienced sysop, you are
advised to check with others before taking this step as
it may not be necessary to remove the file.
2.4.5 RipMenus Directory
The RipMenus are placed in GFiles. Its purpose
is to hold the menus done in rip graphic format. If you
elect not to have the RIP option available to your users,
you may delete the rip files in this directory. The RIP
menus provided with v4.24 were prepared by Zach Ives.
2.4.6 Temp Directory
The temp directory is a temporary holding directory.
The contents of this directory are erased when a user logs
off; therefore you should never store anything in this
directory that is not replaceable. The purpose of the
directory is to act as a holding place for the contents
of files that a user may extract while online. The
extract command is investigated in Section .
2.4.7 Tempx Directory
The sysop running a multi-instance bbs will need more
than one temp directory. Thus for instance 2, a temp2
will be needed, etc., for as many instances as are
permitted. These perform the same function as the temp
directory on a single instance bbs.
Multi-Instance Setup
2.5 Multi-Instance
Many have wondered why WWIV is multi-instance instead
of multi-line or multi-node. The reason is simple; it is
both multi-line and multi-node and we wanted a way to
convey this. WWIV uses a single USER.LST (see Section
2.4.1) that can be accessed simultaneously by instances
that may be on a Local Area Network, a single machine that
is multi-tasking, or from remote locations via modems over
multiple phone lines. Because WWIV literature has always
referred to BBSes on WWIV-based networks as nodes, we
wanted to avoid the confusion that could result from use
of that term and we wanted to convey that it was much more
than merely multi-line.
53
2.5.1 Multi-Instance Requirements
WWIV is distributed as a two-instance BBS. The
registered sysop is entitled to use these two instances
as two remote lines, two local instances (no telephone
line) or a combination of the two. The unregistered sysop
is expected to use it with no more than one telephone
line connected to it although it may be used with a local
access and a telephone line.
Persons wanting to have more than two lines and who
are registered sysops are referred to the Upgrade infor-
mation contained in Section 1.5. The cost of upgrading
to more instances is contained there along with informa-
tion regarding how to make this upgrade.
2.5.1.1 Registration Requirement
To have more than one phone line connected to your BBS
you are required to register the software. To have more
than two local instances (assuming no remote line), you
are required to register the software. With registration
and an upgrade, you can increase the number of instances
up to a theoretical maximum of 999 instances. This is
referred to as a theoretical maximum because, to our
knowledge, no one has tested the software on more than
38 instances.
2.5.1.2 Hardware Requirements
The hardware required to run multiple instances is
largely a function of the type of setup that you have
and the type of additional software that you may be using.
For example, to run WWIV using OS/2 (tm) or Windows (tm)
as your multi-tasking or operating system, you will need
more memory available than if you were to run the BBS on
multiple computers connected on a LAN. After all other
software is loaded, you need a minimum of 580k of free
lower memory to successfully run most operations.
2.5.1.3 Advice for various setups
Other sections of this documentation provide advice
from sysops who have operated WWIV in various environments.
Deskvue (tm) - See Section
Windows (tm) - See Section
Windows for Workgroups - See Section
OS/2 - See Section
54
OS/2 Warp - See Section
Novell Netware - See Section
Lantastic - See Section
Standardized Files
2.6 Standardized files
There are several "standard" files supplied with WWIV
that are identified simply as "This is Welcome.MSG",
"This is LOGOFF.MSG", etc. You SHOULD change these as
soon as possible. WWIV in its unmodified form will
handle three types of file extensions very readily.
These are ANS for ansi with color, B&&W for ansi without
color, and MSG for non-ansi type messages. Thus, for
example, you could have a WELCOME.ANS, WELCOME.B&&W and a
WELCOME.MSG to show to your users.
Versions prior to v4.23 had the following standard
files which sysops were encouraged to change:
Welcome -- shown to all users who call the bbs
this is the very first file that is shown,
before the caller inputs his name.
Newuser -- shown to a first time caller only
System -- shown to a newuser and thereafter shown when
the user hits I for system information
Feedback -- shown to a newuser as he prepares to write
the newuser feedback message
Logon -- shown to all users logging on
Logoff -- shown to all users logging off
2.6.1 Optional "Standard" Files
Version 4.23 added some additional standard files which
will be shown to the user ONLY if they exist. That is,
the files must be created and must be in the GFILES
directory, otherwise the user will not see them. These
files are:
Defaults -- shown to the user when entering the default
area of the board
Xfer -- shown when the user hits T at main menu
Download -- shown when the user downloads a file in XFER
area of the board
Upload -- shown when the user uploads a file to XFER
area of the board
Gfiles -- shown when the user accesses the Gfiles area
55
of the board
Chains -- shown when the user accesses the chains area
of the board
Like the other standard files, these files may take on
ANS, B&&W, or MSG file extensions. You can make these
files with a standard ascii text editor, with an ansi
editor like THEDRAW (tm), or with an editor like Qedit
(tm) that is capable of using "WWIV heart codes."
2.6.2 Random Welcome Screens
WWIV v4.23 also adds the feature of allowing you to
use up to 1000 ansi welcome screens (ie versions of
WELCOME.ANS). In order to use these random screens, you
should create WELCOME.0, WELCOME.1, ... up to
WELCOME.999. The software will randomly select from
whatever welcome screens you have named in this way if
the user has identified that he wants to use ansi in
color. You must also have a WELCOME.ANS file in order to
use the random welcome message feature.
2.6.3 Menus
Although care has been taken in designing the
"standard" menus provided for use with WWIV, many sysops
prefer to customize their board by providing their own
custom menus. WWIV software easily permits two ways of
doing this.
One way is to study the format of the MENUSANS.MSG
and MENUS.MSG files and to replace them with files of
your own. You should note that within those messages,
there are "tear" lines, each of which begins with a
backgrave (`) followed by a number. The number indicates
what menu number follows and the software prints out the
appropriate menu at that place on the board. You can
create your own replacements for MENUSANS.MSG and
MENUS.MSG by following a format similar to that of those
files but using your own designs or color schemes.
A second way to customize your menus, is to create
separate menus naming them with file names like:
MENU0.ANS, MENU1.ANS, etc. Then when the software needs
to print out menu # 1, it will use the MENU1.ANS file if
the user has selected to use ansi with color. If you use
THEDRAW (tm) or another similar program to save your
menus, you are urged to save them with BLOCK SAVE rather
than full-screen save so that the top of the menu does
not scroll off of the screen when the bbs prints the
prompt. Use of approximately 22 lines or less for each
menu is recommended.
56
If you have difficulties with this form of menu
customization, you are encouraged to contact one of the
support boards.
2.6.4 RIP Menus
Rip menus are also provided with v4.24. These may be
customized by using software suitable for that purpose.
The current set of WWIV menus is as follows:
MENU0: WWIV Main Menu - Quick-redraw for RIP
MENU1: WWIV Message Base Commands
MENU2: Built-in Line Editor Command List
MENU3: Transfer Section Menu - Dialog portion for RIP
MENU4: Mail Reader Command List
MENU5: Co-sysop/Sysop Command List
MENU6: User Editor Command List
MENU7: WFC Command Menu
MENU8: Transfer Section Sysop/Co-sysop Commands
MENU9: Batch Download Queue Commands
MENU10: User Restrictions Menu
MENU11: WWIV Text File Editor Commands
MENU12: Multi-mail Commands
MENU13: Sysop Message Base Commands
MENU14: Archive Commands
MENU15: WWIV Slash Commands
MENU16: Transfer Area Slash Commands
MENU17: File Tag Commands
MENU18: Extract Commands
MENU19: User On-Line WFC Menu
MENU300: WWIV Main Menu, Full-Redraw
MENU301-309: WWIV Pull-Down Menus (only 301-4 used in
RIPspeed)
MENU310: WWIV Transfer Menu, button-bar section
MENU311: Minimized WWIV Transfer Menu palette
MENU312: Door Menu
MENU313: Return from WWIV Transfer Section
MENU314: Chat Screen
MENU315: G-Files Menu
MENU316: Defaults Menu
MENU317: G-Files Sections Menu
MENU318: Transfer Defaults Menu
MENU319: Defaults/Transfer Defaults CLS Menu
MENU320: "Go Back" Screen/Generic
MENU321: Blank Button Bar/Generic
MENU322: About... Screen
MENU323: Q-Scan Configuration Screen
MENU324: Mail Waiting Screen
MENU326: Your Info Screen
MENU328: BBS Info Screen
MENU330: Yes/No Choice
MENU331: Yes/No/Quit Choice
MENU332: Pause/Nonstop/Continue
MENU333: Clear Pause Screen
MENU334: If this file has a size of >10 bytes, this
signifies full-screen menus. Functions to
reset window size and trigger automatic [PAUSE]
after certain operations
57
MENU340: Help Screen for Main Menu
MENU360: Download Filename Dialog
MENU361: Upload Filename Dialog
MENU364: Extended Info Screen
MENU366: Time Bank
MENU368: QWKmail Menu, Non-Sysop
MENU369: QWKmail Menu, Sysop
These menus are all integrated into MENUSLCL.MSG:
MENU350: Download RIP Menus Selection Screen
MENU351: Download RIP Menus Query Screen
MENU353: Log-on Name Dialog (Softerm only)
MENU354: Log-on Phone Dialog (Softerm only)
MENU355: Log-on Password Dialog
MENU356: Sysop Password Dialog
Finally, these optional files can be used to extend the
RIP environment, and are stored in GFILES:
EDITx.RIP: Full-Screen Editor RIP Menus
DOORx.RIP: Door RIP Menus
The following screens are stored in the language (GFILES)
directory:
WELCOME.RIP: Main log-on screen
HELLO.RIP: Secondary log-on screen; displayed after
user data entered
GOODBYE.RIP: Log-off screen
NEWUSER.RIP: Displayed when new user info is being
entered
The following new lines have been added to WWIV.INI:
RIP_BBS_ID: RIPterm will maintain the user's i.d. under
a unique variable name. This constant (which can be up
to 9 chars) specifies the name for your BBS. It should
be different for every board.
RIP_MENU_DATE: If the user has a MENU0.MNx file older
than this date, the user's menus will be considered
obsolete. Either the user must download new menus, or
he/she will be forced to use menus off the host system.
RIP_ADJUST: An integer value, from -2 to +2. If your
users experience mis-alignment of the WWIV prompt after a
pull-down menu is displayed, adjust this value until
things match up.
RIPDRIVE_ON: Enable or disable default support for the
RIPdrive local RIP viewer TSR. If this flag is set, the
BBS will switch into local RIP mode whenever the TSR is
58
loaded and a user calls with RIP. If not, the sysop must
press [Shift]-[F2] to activate the TSR.
By default, when RIPdrive is enabled, the topscreen
display is turned off; otherwise, it tends to make a mess
of the screen. The sysop may use [Shift]-[F2] to toggle
the BBS from RIP graphics mode to text mode and back at
any time (assuming the user is using RIP graphics and the
TSR is loaded). Local log-on using RIP is also
supported: log on normally, then type /R to bring up the
RIP mode selection dialog box.
Setting up Message Bases
2.7 Message Bases
Message bases are sometimes referred to as "subs."
These are areas on the bbs where messages related to
particular subject areas may be kept. Users who have the
appropriate SL and ARs can read the message bases and
post on them. These messages are non-private and may be
read by anyone else who has the appropriate SL and ARs.
SLs and ARs are discussed in Section .
Message bases are setup by using the BOARDEDIT
feature. This feature may be accessed in the following
ways:
[1] From WFC, enter B and then enter the system
password when prompted for it.
[2] From the main menu, enter //BOARDEDIT and then
enter the system password when prompted for it.
[3] From the main menu, enter //BE (short form for
BOARDEDIT and the system password when prompted
for it.
2.7.1 BoardEdit
Using Boardedit, you will see a screen that looks
like the following (after you have chosen to add or
modify your listing):
A. Name :
B. Filename :
C. Key :
D. Read SL :
E. Post SL :
F. Anony :
59
G. Min. Age :
H. Max Msgs :
I. AR :
J. Net info :
Network Type Host Flags
a)
K. Storage typ:
L. Val network:
M. Req ANSI :
N. Disable tag:
O. Description:
Which (A-O,Q) ?
This screen is used when setting up a sub. Items J,
L, and O apply to networked subs. Item J identifies what
network the sub is on, what its sub-type is for that
network, who the host is, and what network flags apply to
it. Information on the network items is explained in
detail in the network documentation in Section .
Each of the items above is explained in detail in
Chapter 26 where the BOARDEDIT commands are examined
one by one. The main thing to keep in mind when setting
up subs is that the filename (item B. above) must be
unique. When entering the file name, you should enter a
name of 8 or fewer characters and you should not enter
any extension. The default for the first sub (General)
that is created for you is BOARD1; however, you may not
wish to use filenames that are related to the numerical
position of a sub because of the fact that you may later
wish to insert subs or delete subs thus messing up the
correspondence that might exist between sub number and
file name. Instead, it is recommended that you create
file names that are suggestive of the name of the sub.
For example, General might use a file name of GENERAL.
When you create a sub, the bbs software will use the
filename that you designated to create two related files:
FILENAME.SUB in the DATA directory and FILENAME.DAT in
the MSGS directory. The former holds message header in-
formation and the latter holds the text of the messages.
The size of the FILENAME.MSG file is related to the
maximum number of messages that you allow to be in the
message base. Beginning with version 4.24, the bbs
software will permit up to 32,000 messages per message
base. You should use your judgment when selecting the
size of the message base. If you have a message base
that has a lot of posting on it, then you may wish to
have a higher number of messages for it; one that has a
low volume of posting may be fine with a maximum set at
20 or 30 messages. One factor to keep in mind is that
60
your users normally will not want to read a lot of
"stale" or "old" messages when doing a new scan for the
first time; thus if you set the number of messages so
that the oldest message is not more than a couple of
weeks old (or less), your users will normally take a
greater interest in the sub.
2.7.2 Conferencing
If you have set up conferencing (see Chapter 27 ),
then after setting up a new sub, you will be prompted to
indicate which conference it should go in. Whether or
not you use conferencing is up to you as sysop and up to
your users, because the user can select to turn it off.
Conferences are handy when you have a number of subs
that are related to a broad topic or that have a special
AR or SL designation for admittance to the area.
network the sub is on, what its sub-type is for that
network, who the host is, and what network flags apply to
it. Information on the network items is explained in
detail in the network documentation in Section .
Each of the items above is explained in detail in
Chapter 26 where the BOARDEDIT commands are examined
one by one. The main thing to keep in mind when setting
up subs is that the filename (item B. above) must be
unique. When entering the file name, you should enter a
name of 8 or fewer characters and you should not enter
any extension. The default for the first sub (General)
that is created for you is BOARD1; however, you may not
wish to use filenames that are related to the numerical
position of a sub because of the fact that you may later
wish to insert subs or delete subs thus messing up the
correspondence that might exist between sub number and
file name. Instead, it is recommended that you create
E-Mail
2.8 Electronic Mail
Sending and receiving private mail is one of the
functions of the bulletin board. A new user logging on
to the BBS is treated to this function almost
immediately when asked to leave feedback to the sysop.
Feedback is merely a special name for private mail to the
sysop.
Federal law, in the form of the Electronic
Communications Privacy Act (ECPA) governs the rights of
61
individuals to privacy with respect to these
communications. Thus, although it is possible for the
sysop to read all communications (both private and
public) that take place on the BBS, the sysop should
familiarize himself or herself with the laws that govern
the operation of a BBS and of the responsibilities of the
sysop in this respect.
2.8.1 Sending E-Mail
To access the E-mail portion of the BBS, the user (or
sysop) may press E at the main menu. The software then
asks for "User Name or Number?" Either the user's name
or the user's number may be entered and the electronic
mail will be sent. If the user's name is entered
incorrectly, you may receive the message "Unknown User."
After the user's name or number has been entered, a
prompt asks for the title to the message. If a return is
entered without a title, the message function will be
aborted. It is good practice to give descriptive titles
to messages whether they are e-mail or sub posts.
2.8.2 Multiple E-mail
It is possible to send the same e-mail message to a
group of people on the bulletin board. This is known as
sending multiple e-mail. The procedures for this are
discussed below; however, the sysop
can make it easier to send multiple e-mail by
establishing pre-defined lists. These lists should be
established in the DATA directory. They may have any
legitimate dos file name, but the extension must be .MML
(for multi-mail list). If the list is given a
descriptive name, then it will be easier for others to
use it. For example, if you have a computer club, you
might name the list C_CLUB.MML. If you have a number of
users playing Food Fite, you might call the list
FOODFITE.MML.
A multi-mail list is limited to 25 users. Also, if
one of the users has his/her mail forwarded to another
BBS (see User Docs), then the multi-mail feature will
not work for that individual. The reason for this is
because the BBS software has been deliberately designed
to NOT support mass mailings to people through the
network. The rationale for this may be found in the
network documentation.
2.8.3 Forwarding Mail
A person may have mail forward to another user on the
62
BBS, or, if the bbs is on a network, to himself at
another bbs. The user is able to set this mail
forwarding up in the Defaults section of the bbs. The
sysop may also have mail forwarded to another user or
even to another board.
2.8.4 Multiple Feedback
Because some bulletin boards utilize multiple sysops,
the BBS software has been designed so that when a user
presses F for feedback, a list of all person with user
numbers of less than 10 and Security Levels of 100+ will
be shown. This function enables the sysop to have one or
more persons in charge of validation, games, transfer
area, etc., and let the user select which sysop should
receive the feedback message.
2.8.5 Mail Forwarding Limitation
The bbs and network software have been designed so
that mail will only be forwarded once. The reason for
this is to prevent individuals from forwarding mail all
over the country (or world) at the expense of the sysops.
For this reason, it is handy to have a "home board".
Then the mail from other boards could be forwarded to
that home board.
Defaults Area
2.9 The Defaults Area
This area of the BBS allows the user to set certain
options that will apply to his/her account. When
entering the defaults area, the following screen is
shown:
1. Screen size :
2. ANSI :
3. Pause on screen :
4. Mailbox :
5. Configured Q-scan
6. Change password
7. Update macros
8. Change colors
9. Full screen editor:
A. Extended colors :
B. Optional lines :
C. Conferencing :
W. WWIV reg num :
M. Allow user msgs :
Q. Quit to main menu
63
Defaults: (1-9,A-B,C,W,L,?,Q) :
These options are all discussed in User Docs. Some
of these -- Options 1, 2, 6 and C may be set at the time
that the user logs on. However, the defaults area allows
changes to be made in certain of the logon
characteristics. For example, a person might not have
had a color monitor when an account was first
established; if that situation changes, the user can use
this area to reconfigure.
Option C allows the user to have conferencing on or
off. Note that if the sysop has not setup the bbs for
conferencing, then the toggle will not do anything.
Option W for WWIV registration number is for those
sysops who have areas of their bulletin board that are
restricted to registered users. For example, one of the
network subs available on many networks is Mod Net. On
that net sub, modifications for the BBS source code are
published. Because no one should have the source code or
have access to it unless they are registered, the sub
requires that people be registered to have access. This
area in defaults would allow them to place their
registration number and the sysop could have the
information verified by WWIV Software Services before
giving the individual access to the sub. As a matter
of security, you should not automatically fill this in
when logging on to a BBS; instead, you should ask the
sysop if there are any areas of his bbs where
registration is a requirement for access.
Option M allows the user to turn off user messages.
2.9.1 Macros
The concept of macros is that a person may use a
single command to accomplish a series of keystrokes. The
BBS software supports three types of macros: user macros
like those available through the Default area, DOS macros
which may be defined in the MACROS.TXT file in G-Files,
and network macros (see Network Documentation).
2.9.2 User Defined Macros
User defined macros can be used for many things. One
common use for them is to create an on-line signature to
be used. The method for creating these signatures is
discussed in the user documentation.
However, such macros are not limited to this usage. For
example, if a person always wishes to check out directory
64
17 for new files and then go to the On-Line program
section of the BBS and play game number 8, a macro such
as the following could be built so that the user need
only hold the ALT key down and press the letter A.
T^M17^MNN^MQ.8^M
In the macro above, ^M stands for a carriage return. The
use of such macros can often decrease the amount of time
that a user is on-line and thus decrease (in some cases),
the long distance bills.
2.9.3 DOS Macros
DOS macros are defined in a file called MACROS.TXT
that must be located in the DATA directory. This allows
the sysop to run a DOS program from anywhere on the BBS
by pressing the ALT key down followed by the letter
designating the macro that is to be run. Below is an
example of one MACROS.TXT file:
B q I:\wwiv\data\bbslist.260
C q I:\WWIV\data\connect.260
L list I:\wwiv\data\subs.*
R i:\wwiv\ndoc\reader
The first line causes QEDIT (tm) to be used to edit
the BBSLIST.260 found in the DATA directory. The second
performs the same function on CONNECT.260. Without such
macros, I would have to (a) drop to dos, (b) change
directory to where the BBSLIST.260 file is located, (c)
load QEDIT to edit it, and then make the changes that are
desired to the file. Since I often get e-mail through
the network asking that changes to these files be made
(to update network listings), it is quite handy to have
them such that by pressing 2 keys I am in the editor and
editing the desired file.
The third line causes the LIST (tm) program to be
used to list the SUBS.* files. This enables me to scan
easily for listing of new subs, etc.
The third line puts me into the READER.EXE for
reading the WWIV documentation. This approach was not
possible under versions prior to 4.24 because there was
not enough memory in the shell program.
65
Transfer Area
2.10 The Transfer Area
The Transfer Area is for the uploading and
downloading of files. This area is usually one of the
more popular areas of each bulletin board. A detailed
listing of commands for this area will be found in
chapter 45.
2.10.1 Conferencing in the Transfer Area
Just as the message base area may be set up for
conferencing, the transfer area can be also. As the
number of directories which a board has increases, the
conferencing option become more usable. Conferencing in
the transfer area is setup just like conferencing in the
message area.
2.10.2 Download Editor
The Download Editor for maintaining the transfer
areas may be accessed in three ways:
[1] From WFC by the letter D
[2] From the Main Menu or Transfer Menu with
//DIREDIT.
[3] From the Main Menu or Transfer Menu with the
short cut option of //DE.
Accessing the download editor will bring up a screen
similar to the following:
A. Name :
B. Filename :
C. Path :
D. DSL :
E. Min. Age :
F. Max Files :
G. DAR :
H. Require PD :
I. Dir Type :
J. Uploads :
K. Arch. only :
L. Drive Type :
Which (A-L,R,Q) ?
You should be sure that you give each download area a
unique filename and you should not enter any extension as
66
the bbs will create one for you. Each of the items on
the download editor menu will be described in detail in
Chapter 45. The key item here, besides file name, is
the drive type. There are two drive types supported by
WWIV: hard drive and CD-ROM. By selecting CD-ROM as the
drive type, the sysop indicates to the software to take
items selected for transferring from that directory and
move it to the hard drive prior to the download. This
allows other users (in a multi-line environment) to
access the CD-ROM for other purposes while the user is
downloading a file, and it makes the downloading go much
faster.
A transfer area directory can support up to 16,000
files per directory.
Option J determines whether or not uploads are
allowed into this particular directory. If the sysop has
indicated in INIT that all uploads are to go to the sysop
directory, then leave Option J set to YES. If uploads
are allowed into the various directories, then setting
this option to NO will prevent uploads into it by users.
Uploading Files locally
If you wish to upload files locally, all you need to
when logged into the transfer area is type //upload and
you will be prompted for file names and descriptions. If
you have files on a CD ROM or other device that already
has file descriptions, you can type //uploadfile and then
enter the path and filename of the file description file.
If the files contain FILE_ID.DIZ or file descriptions,
you can put a space where the description is asked for and
the bbs will extract the description information from the
file archive.
67
Operating the BBS
3.0 General Comments on BBS Operation
Operating a BBS can be a very satisfying experience,
particularly if you have given some thought to your setup,
to the needs and desires of your users, etc. Because a
BBS can be used for such a wide variety of things, this
chapter assumes that you know virtually nothing about a
BBS and that you are a first-time BBS operator. The
information that follows is meant to help guide your
thoughts and creative processes so that you will obtain
the most enjoyment from the experience.
You can determine whether your BBS is to be a general
purpose BBS or whether it will cater to some particular
interest. A general purpose BBS normally will not focus
on any particular topic in its message bases or file
sections; instead, it will have something for everyone and
will probably not try to have everything available on any
topic or subject area. A general purpose BBS is often the
best approach for a beginner to take unless you have some
clearly defined area(s) of interest that you want to pur-
sue. If you are not participating on a network, then
you may wish to have message bases that reflect a broad
spectrum of interests. If you are on a network, you may
wish to subscribe to subs that reflect such broad areas.
Your download sections may also reflect a broad area of
interest. I would recommend, at a minimum, that you pro-
vide file areas that support the needs of a general user.
That is, you may want to make the common archive programs,
protocols, and terminal programs available to your users
to make it easier on them to call the BBS. You may wish
to provide the READER.EXE and the User Documentation data
files for download so that your users can learn how to use
a WWIV BBS system. Beyond those minimums, you are left
to your own imagination and perhaps the suggestions of
your users to create the topical download areas that will
appeal to those who call your board.
A special purpose BBS is generally best when it re-
flects your own interests. If it reflects your interests,
you are more likely to take an active interest in your
BBS, to post things, and to keep fresh material in your
download areas. Generally, a BBS that reflects that the
operator takes an active interest in the BBS is more
successful than one where the operator's presence is in-
visible or totally lacking.
Once you have determined the type of BBS that you are
going to run, you should give some thought to the types
68
of security levels that you will have on your board and
the amounts of time that you will allow each user and/or
security level. By looking in INIT, you can determine
the predefined or default levels for certain security
levels. My advice would be to (a) use no more security
levels than you absolutely need and (b) to try to keep
things as simple as possible. To give you some idea of
this, let me describe a few things here at The Dragon's
Den which is primarily a support BBS for WWIV operators.
I use only 4 security levels with SLS and DLS as
follows:
Type of User SL DSL
──────────── ──── ─────
Unvalidated 20 0
Non-Sysop 30 30
Visiting Sysop 60 60
Sysop 255 255
The sysop status is only held by myself, my son, and
my daughters. No remote person has full sysop access.
We validate users every day, so no one stays in unvalidated
status for very long. We also have the ASV (auto-sysop-
validation) feature activated so that visiting sysops who
call for support will have immediate access to many of
the support areas of the BBS. The Dragon's Den also
employs ARS and DARS as follows:
User Type ARS DARS
───────── ───── ──────
Non-Sysop G
Visiting Sysop
Unregistered CDG CD
Registered BCDG BCD
SDS Access BCDG ABCD
The AR of G indicates that the individual has "game"
access; that is, they may access the on-line programs.
The ARS and DARS of CD indicate that the person has
access to the WWIV support message bases and file sections
but does not have access to the modifications and/or the
WWIV source code. A registered visiting sysop (i.e. one
that is a bonafide registered WWIV sysop) has access to
the message bases dealing with modifications of the source
code (indicated by AR and DAR of B) and the transfer areas
that contain such modifications. This status must be
requested. Finally, I have the sysops who are registered
and have requested to use my board as their SDS site
(source distribution site). Those people must send a
letter to Wayne Bell and provide the information necessary
69
to be approved for source access.
As you can see, the number of SLS, DSLS, ARS, and DARS
used here is very limited, yet it suits the security pur-
poses of my BBS. After you have examined your needs and
thought out your own security arrangements, then you
should use the BOARDEDIT and DIREDIT features to set up
your board to reflect the security levels and access
restrictions that you will need. You may wish to also
have other indicators (i.e. age or sex) for certain areas.
The BBS software supports your using all of these factors
to allow or deny support from various sections of your
board. You should be aware that any user who does not
have the appropriate SL and accompanying access rest-
rictions will not be aware of the other parts of your BBS.
For example, lets say that you have a total of 10 message
bases. The first three have SL of 30 and no ARS; the
next three have SL of 40 and AR of A. The last four have
SL of 50 and AR of B. A user with SL of 30 would see
only the first 3. A user with SL of 40 and AR of A would
see the first 6 message bases. In other words, if you
have the appropriate access restrictions (ARS), you can
see those message bases that have lower SLs than your own.
A user with SL of 50 are AR of B would see the first 3
message bases and the last 4. If that user had ARs of
both A and B, then he could see all of your message bases.
After you have developed your security levels and
access restrictions, you should probably make yourself
some form letters to send to people explaining any
particular rules of your BBS and/or any rules associated
with their particular access level. These form letters
are explained in Chapter 42 of the documentation.
You may then wish to have a few friends call so that
you can learn the process of validating them while they
are on line (see section ). Encourage them to try out
various parts of the BBS and to post some messages.
You may also wish to subscribe to the sub on WWIVnet
and WWIVLink known as the New Sysop's Forum. It is a
good place to ask those questions that a new sysop always
has.
One feature that you may find quite helpful as a sysop
is that you can use the /? at main menu or tranfer menu
to obtain a list of commands for sysop and/or co-sysop use
on the BBS.
70
UserEdit
3.1 Uedit
Uedit is the user account editor function which allows
the sysop to maintain the user list and alter accounts as
needed.
3.1.A Toggling the Uedit Display
There are two possible displays in Uedit - the short
display, and the long display. If there is a remote
caller, it will default to the short display. Otherwise,
it will default to the long display. Typing a period at
the Uedit prompt will toggle between the long and short
displays. In the short display, typing a comma will
expand to the long display FOR THAT ACCOUNT ONLY.
3.1.B [ and ] to move in Uedit
You use [ and ] to move down and up accounts in the
user list. "]" will move to the next higher account in
the user list, and "[" will move to the next lower
account.
3.1.C { and } in the Search Option
"{" and "}" search through the user list, using the
options set with "/", to the next (or previous) account
which satisfies the selected criteria. Entering "U" and
then entering a (full or partial) name will go directly
to that account, or you can access a particular account
by entering "U" and then the user number.
3.1.D Other options in Uedit are:
? - Menu of options
: - Force user to re-enter information at next logon.
~ - Reset ass_pts to zero. Not currently implemented
elsewhere.
A - Change user's AR.
C - Change user's callsign.
D - Delete the current account, erasing any mail
to/from that user and discounting any votes made
by that user.
E - Change user's exemptions
0=no exemptions
1=exemption from transfer ratio
8=exemption from post/call ratio
9=exemption from both transfer and post/call
ratio
G - Change user's birthdate.
I - Change user's DAR.
L - Change user's real name.
71
M - Change user's computer type.
N - Change user's name.
O - Change note about user.
P - Change user's phone number.
Q - Quit out of Uedit.
R - Restore a deleted user. This doesn't re-create
any mail, or add back in votes made by that user
before deletion.
S - Change user's SL.
T - Change user's DSL.
X - Change Registration/Expiration Date
(registered version only)
Y - Change user's sysop sub. Set to 999 to clear the
sysopsub value.
Z - Change user's restrictions.
% - Change user's address data including City, State.
3.1.D.1 Available restrictions are:
A - Automessage : The caller cannot change the
automessage.
C - Chat : Caller won't be able to request
chats with you.
E - E-Mail : The caller cannot send e-mail.
L - Logons : Limits the caller to 1 logon per
day.
K - Chat : Restricts the user from chat room
N - WWIVnet : The caller cannot use the WWIV
network
P - Posts : The caller cannot post messages.
V - Voting : The caller is not permitted to
vote.
* - Anonymous : The caller cannot post
anonymously.
U - Upload : All uploads by this user will go
to the sysop dir.
M - Messages : Posts by the caller will not be
accessible by your other callers
until either yourself or a
co-sysop have read and approved
the message for public viewing.
The X option works only for registered sysops who have
set the toggle for OPT_REGISTRATION to on. This permits
a sysop to set an expiration date for a user with respect
to certain preferred status. It should be useful for
those who have "pay" or "donation" type BBSes. If the
sysop hits CR at the registration date, today's date is
entered.
72
3.1.E Long Information on User
The long information printed about a user account
consists of:
Name: Random #1 (name/alias of user, number of user)
RN : Wayne Bell (real name of user)
Call: N6PLU (amateur radio callsign)
PH : 213-208-6689 (Voice phone number)
Age : 22 M (age, sex)
PW : AAA (password)
Comp: IBM AT (80386) (user's computer type)
Last: 07/12/89 12/15/87 (last date on, first date
on)
Msgs: P=123 E=148 F=125 W=64 (posts, emails,
feedbacks, mail waiting)
Log : 802 4 I=0 (total calls, calls
today, illegal logons)
UpDn: U=17-989k D=3-43k (uploads, downloads)
Note: This is a note (user note)
DATAPH: 310-218-7766 (user's dataphone number)
SL : 255 DSL=255 (SL, DSL)
AR : ABCDEFGHIJKLMNOP (user AR)
DAR : ABCDEFGHIJKLMNOP (user DAR)
The comments on the right are not printed in Uedit.
Some of the lines are not always printed unless they have
a value. For example, if the user did not have an amateur
radio callsign, the callsign line would not be present in
the Uedit listing. This rule also applies to
restrictions, AR, DAR, and sysopsub.
Passwords are ONLY printed for 255 SL's. If a co-sysop
goes into Uedit, passwords will not be displayed
(although they will be printed locally on your computer
screen).
3.1.F Using Uedit Search Ability
Since many sysops have been somewhat baffled by the
search options in UEDIT, this appendix has been included
to provide more information on the function and how to
use it.
This functions very similar to an 'if test' if a
program; that is, you specify a condition according to
the appropriate format, and then when the search finds a
user meeting that condition, it stops. Generally, you
will have a condition such as sl, dar, ar, etc., and a
comparison. For example, the setup to look for a user
73
with an sl greater than 50 would look like this: sl>[50]
Note that the number is included in brackets. You can
use either > or < that is, greater than or less than.
Greater than is the default.
These conditions can be modified as follows:
! meaning NOT
& meaning AND
| meaning OR
and you can use parens (parentheses) to group them
together. Precedence (ie order) is determined from left
to right. There is no default of & over | as there is in
C.
A search string such as the following might be used to
purge users who have not been on during the last 80 days
and who do not have an AR of A.
!DAR[A] & LASTON>[80]
A more elaborate example is the following which would
search for everyone having an AR of C and who is either
Male or over 21 years old:
AR[C] & (Sex[M] | AGE>[21])
Current searchable variable include: last-on, baud-rate,
real name, number of logons, area code, sl, dsl, ar, dar,
sex and age.
After entering the search criteria, the } will search
in ascending order and the { will search in descending
order.
BoardEdit
3.2 Boardedit
The BBS, when first initialized, creates a single
default message base called General. Sysops normall will
want to create additional message bases and/or modify the
names of those that may exist. WWIV can handle up to 999
different message bases although it starts with 32
message bases as a default. The number of message bases
and directories may be increased in the INIT in blocks of
32.
74
Because the more message bases and directories that
you create, the more memory is required for pointers and
so forth, it is advisable to set the number of message
bases to the next highest multiple of 32 over the number
that you actually intend to use. This will conserve
memory.
A message base, sometimes called a sub or sub-board, is
a place where persons with the appropriate SL (security
level) can read and/or post messages. B from WFC, or
//BOARDEDIT from the main prompt, accesses the Boardedit
procedure.
In the Boardedit procedure, you can delete, insert,
and modify subs. WWIV defaults with one sub-board,
General. Any topic you can imagine may be used for a sub.
Common examples include politics, science fiction,
entertainment, sports, trivia, etc.
For each sub-board, the following information is
necessary:
3.2.A Name
Each sub-board needs a name, describing what type of
messages are expected on that sub-board. If your BBS is a
member of a WWIV network, the software will insert either
<Net> or [Net] preceeding the sub-board name when the sub
listing is obtained. The difference between these two
uses of NET is discussed below under the Network
Validation Option.
3.2.B Filename
Each sub-board also needs a DISTINCT FILENAME. If two
subs have the same filename, BOTH SUBS WILL REFER TO THE
SAME MESSAGES. The filename can be whatever you want (up
to 8 letters in length), but it must not contain an
extension. For example, MODNET would be a legal name to
enter, but MODNET.SUB would be illegal because it uses an
extension.
3.2.C Key
Normally, all sub-boards are assigned a number (in
ascending order, starting at one for your first
sub-board) which callers can press to immediately access
them. If you would prefer that a sub-board be referred to
by a key (such as %,&,#, etc) instead of a number,
setting the key to that character will do so. In most
cases, this option will not be used.
75
3.2.D Read SL
This setting determines the minimum SL required to
allow a caller to read messages on the sub-board. If the
read SL for a sub is 40, and a caller's SL is 39, that
caller will never know that the sub-board exists.
3.2.E Post SL
This setting determines the minimum SL required for a
caller to post on the sub. The post SL should be greater
or equal to the read SL. Having the post SL greater than
the read SL would allow callers to read messages on the
sub, but not post any. This type of setting is often
useful on some network subs where anyone may be permitted
to read the sub, but posting may be only by certain
persons (perhaps the sysop and/or the co-sysops.)
3.2.F Anony
Setting the anony (no, yes, forced, dear abby)
determines whether or not messages posted on that sub can
be anonymous. No means no anonymous (unless the caller
has a security level which permits it); yes means the
caller has the option of posting anonymously, regardless
of security level; forced means the post is always
anonymous; dear abby means that the caller will be
presented a choice of "signatures" for his/her post:
their name (alias), Abby, or Problemed Person. In effect,
the "dear abby" option does the same thing as setting
anony to yes, but it gives the caller two options on
which name will represent the author of the post.
3.2.G Min age
This will allow you to set the minimum age of callers
on that sub. If, for example, you set the minimum age to
18 (years), anyone under 18 would not know the sub
existed. Usually used for adult-oriented subjects.
3.2.H Max msgs
This sets the maximum number of messages that can be
on the sub at one time. This is usually set to 50 or 100,
but can be up to 249. When the maximum number is
reached, the oldest post in the sub is rotated off
(deleted) as each new post is entered, unless a post has
been given permanent status.
A post with permanent status means that it will not be
76
erased. This is useful if you have posted the sub rules
or something as the first message on the sub. To give
permanent status to a post, you hit N after reading the
post. You will see the message, "This post will NOT be
auto-purged.
3.2.I AR
This allows you to set the AR for that sub. AR is used
to allow specific people to access specific subs when
other sub limitations (age, post SL, etc) are not
sufficient for your needs. As an example, suppose you
have a group of Amiga callers on your BBS. You want to
give them their own area to talk about Amigas. Age and SL
restrictions would be cumbersome and inefficient. That's
where AR comes into play. There are 16 different AR flags
that can be used, A through P. To give the Amiga callers
their own sub, you would use BOARDEDIT to create a sub
for their use. Set the AR to whatever you wish, as long
as it isn't in conflict with another sub which doesn't
concern the Amiga people (you can use the same AR on
different subs, but realize that anybody with the same AR
flag set would be able to access all subs with the
identical AR). For this example, set the AR flag to A.
Then you would go into UEDIT and activate each Amiga
caller's A flag. Now, all Amiga callers would be able to
access the Amiga sub (as long as SL and age requirements,
if any, were met) and nobody else would know the sub
exists.
3.2.J Net info
Used with WWIV network software on network subs to
properly allocate messages. If the sub you are editing is
not a WWIV network sub, leave this blank. Under v4.22,
if you select this option, you will get a sub-menu asking
for information regarding Network, Type, Host, and Flags.
As you enter the information, you will receive helpful
prompts. The Networks that are recognized are those that
you have setup in the INIT program.
TYPE refers to the SubType. Under WWIV v4.21a and
NET31 or earlier, these subtypes had to be integer
values; under NET32 and WWIV v4.22, you may use 7 letter
character names for the subtype. This option is referred
to in WWIV literature as "sub-by-name".
HOST refers to the network host of the sub; if you
host it, the information will display HERE; otherwise,
the host's network node number will be shown.
77
FLAGS refers to whether the sub is auto-requestable
and whether or not the information about the sub should
be reported in the SUBS.LST distributed on each network.
For more information on this, refer to the WWIVnet
Documentation that accompanies the NetWork Software.
3.2.K Storage type
There are 2 main ways messages can be stored, either
with each message in its own file, or with all messages
in that message base in one large file. 0 means each
message will be in its own (text) file, 2 means all
messages in that sub will be in one large (non-text)
file.
3.2.L Val Network
This option may be toggled on or off. If toggled on,
sub-board that are network subs, will have [NET] in front
of the name and the sysop will need to validate the
messages received there before the messages will be sent
over the network. If the option is toggled off, the sub
will have <Net> in front of the Sub-Board name. Because
many network subs have various restrictions (such as no
ansi posts, or ansi posts only, or post by #1 on the
board only, etc), network validation is a means of
insuring that posts originating from this BBS are in
compliance with the sub-host's rules.
3.2.M Req. ANSI
The sysop can require that the user have ansi enabled
in order to view this sub. This option is particularly
useful if the sub is one of ansi pictures drawn with
THEDRAW or some other ansi editor. An example of an all
ansi sub is the WWIVnet Sub known as The Ansi Art
Gallery.
3.2.N Disable Tag
This option, if toggled on, will disable taglines in
the messages. This may be useful if a network sub host
does not permit posts which have taglines added to them.
3.2.O Description
This option is to permit you to provide a description
of subs that you host so that the description will be
used in the SUBS.LST file. The addition of this field
makes it possible for your subs to be reported in the
SUBS.LST without your having to do anything special; the
78
only requirement is that the auto-info option in FLAGS be
set.
There will also be a place for category. If this is
chosen, a list of available categories (distributed by
the NC for the network) will be given. The purpose of
this is to allow the sysop to select the most appropriate
category (for that sub information) for listing in the
Subs List that is distributed by each network.
Directory Edit
3.4 Diredit
The directory editor may be accessed as D at WFC, //DE
or //DIREDIT from the board. The first thing that is
seen when the directory editor is accessed is a listing
of the directories that exist:
NN DAR Name FN DSL AGE FIL PATH
=== --- =============== ------- === --- === ---------
0 A Sysop UBSYSOP 100 18 50 DLOADS\SYSOP
1 Miscellaneous MISC 20 0 50 DLOADS\MISC
2 Test Directory TEST1 40 10 50 DLOADS\TEST1
Dirs: D:elete, I:nsert, M:odify, S:wapDirs, Q:uit, ? :
The commands are relatively straight forward and work
in a fashion similar to BOARDEDIT. Swap directories is a
new command that lets the sysop change the order in which
directories are listed.
When a particular directory is selected for
modification, the following is seen:
A. Name : Miscellaneous
B. Filename : MISC
C. Path : DLOADS\MISC\
D. DSL : 20
E. Min. Age : 0
F. Max Files : 50
G. DAR : None.
H. Require PD : No
I. Dir Type : 0
J. Uploads : Allowed
K. Arch. only : No
L. Drive Type : HARD DRIVE
79
3.4.A Name
The name would be the name that you want the users to
see. Sysops generally find it useful to create
categories that will have like type of files grouped
together in the directory.
3.4.B Filename
This should be a dos legal (ie 8 characters or less)
filename. The BBS software will append the DIR extension
to it, store it in the DATA directory and use it to keep
information in binary format for the board's use.
3.4.C Path
The path is the path to the directory. The path may
be specified complete or in relationship to the main bbs
directory. The example shows one where DLOADS would be a
subdirectory of the BBS. If you wanted to put the
directory on a different drive, you might have something
like:
C. Path : D:\DLOADS\MISC
3.4.D DSL
The DSL is the download security necessary to have
access to the directory. Anyone with that level of DSL
or higher will have access to the directory unless an
upper limit is placed on the DSL in the Conference editor
by the sysop.
3.4.E Minimum Age
This lets you restrict access to people of a certain
age.
3.4.F Maximum Files
This sets the maximum number of files that can be held
by this directory.
3.4.G DAR
This setting allows you to set an Access Requirement on
the directory so that the person must have that DAR in
order to see or access the files in that directory.
3.4.H Require PD
This setting asks the user if the file about to be
80
uploaded is Public Domain. If they answer No, it will
not permit them to upload the file.
3.4.I Directory Type
This setting allows you to set a directory type for
this directory. At the present time, WWIV itself does
not make use of this variable, but some of the utilities
written by third parties do make use of it.
3.4.J Uploads Allowed
This setting may be toggled to indicate that uploads
are not permitted. Many sysops will leave this as
allowed and require in INIT that uploads go to the sysop
directory.
3.4.K Archive Only
Setting this will allow you to require a certain type
of file extension and no other type may be uploaded.
3.4.L Drive Type
This permits the sysop to toggle between HARD DRIVE and
CD-ROM as permissable types. If a CD-ROM is used, its
use will be optimized (ie the board will work better and
faster) if it is identified as a CD-ROM.
G-File Editor
3.5 Gfileedit
Gfiles in this instance are just text files that are
available to callers to read; in other words, they are
similar to bulletins. With Gfileedit, the file
directories for gfiles may be created and the particular
gfile areas which callers can access can be designated.
Most WWIV Sysop functions behave in similar ways.
This enables a sysop to learn how to use each of them
very quickly, without having to know many different
commands and parameters. As with the previous commands
already presented, Gfileedit displays a summary of gfile
directories currently in place, if any. The insert,
delete, modify and quit options are again available.
When inserting a new gfile section or changing an old
one, the following data can be modified:
81
3.5.A Name
This is the name of the section shown to the user.
This name should describe the kind of files to be
displayed in that directory, such as humor,
communications, ANSI, etc.
3.5.B Filename
The filename for the section. In this instance,
however, the filename is ALSO the directory where the
gfiles for this section will be stored. The directory
chosen will be a sub-directory of the main GFILES
directory. After the filename is entered, you will be
asked if you want to create the directory. If you say
no, you will have to create it yourself (i.e. manually).
In either instance, once the directory exists, the files
or bulletins to be displayed must be moved to it.
3.5.C SL
The sysop can set the SL required for section access.
Callers cannot add their own gfiles to the section, so
there is no "post" SL involved.
3.5.D Min. Age
The sysop can set the minimum age necessary for
section access. This feature is sometimes used if the
gfiles section contains some "adult" material.
3.5.E Max Files
The maximum number of gfiles in the section (can be up
to 99) is set here. Once the maximum number is reached,
additional gfiles cannot be added unless this setting is
increased. The section cannot be increased beyond 99
files per separate directory unless the source code is
modified. Such modification is only available to
registered sysops.
3.5.F AR
AR required for section access is established by the
sysop with this parameter. This option works exactly the
way it does in Boardedit.
3.6 Gfile Commands in the Gfile Section
82
3.6.A A - Add Gfiles to All Sections
When the Sysop enters the gfiles section (command G at
the main menu), hitting A at the SECTION prompt (first
prompt given) will add gfiles to ALL sections.
Hitting A within a section will add files for that
section only. When the add files to a gfile section
option is selected, the BBS will search that section's
directory for files to add. For every file it finds, it
will prompt for a description. Once a description has
been entered, that file will be accessible to anyone who
is capable of using that gfile section.
3.6.B R - Remove Gfiles for a Section
Selecting R within a section will allow a co-sysop to
remove gfiles.
Chain Editor
3.7 Chainedit
The Chainedit function is also quite similar to the
Boardedit function. The chainedit is a means of adding
/deleting/modifying on-line programs. The information
presented here should be sufficient to enable the sysop
to setup many on-line programs.
The designation of chains originated in Turbo Pascal
versions of WWIV when the BBS literally "chained" to the
program. Although WWIV no longer operates in that
fashion and is no longer written in Pascal, the CHAINEDIT
termin- ology has remained.
Not all files can be run as external programs from
WWIV. Only those files that do all I/O through DOS calls
can be run. This means that Wordstar, WordPerfect, the
Norton Utilities, and most other graphics programs can
NOT be run from WWIV.
When Chainedit is run, a summary of the chains
currently available, if any, is presented as a listing.
Available options are: Insert, Delete, Modify and Quit.
When a new chain is inserted an old entry is modified,
the sysop is given a chance to change the following
data:
83
3.7.A Description
The description of the chain, printed out for callers.
For example, you might have something like Food Fite--The
Ultimate Challenge, or merely Food Fite. Many sysops put
the version number of the game after its title so that
users will know whether or not a "new" version that they
may have seen elsewhere is running on this bbs. Many
users will upload the "latest" version to the Sysop if
that version is not currently running.
3.7.B Filename
The filename actually executed. The program to be used
can have either an EXE, COM, or BAT extension. Programs
with a BAS or CHN extension cannot be run from WWIV. If
you put a "%1" anywhere in the filename, before the chain
is executed, the %1 will be replaced with a full path and
filename of a text file the bulletin board creates
holding data about that caller, such as the caller's
name, security level, time left, etc. For most programs
explicitly written for WWIV v4, the %1 should be placed
after the filename. If you do not, you will see a
"Parameter file not found" error message. If you see that
message when running a chain, add the %1, as in "tw2001
%1".
If the program is not specifically made for WWIV, it
may be necessary to run it from a batch file which you
create and the batch file may first need to run a
chain.txt converter. Chain.txt is the file that the BBS
creates with the user information in it. The converter
processes the information and creates a new file in the
format required by the game that you are running. For
example, a game designed for QBBS or RBBS would require a
DORINFO1.DEF file.
There are several popular converters which will make
such a file from the information in chain.txt. Beginning
with v4.23, the BBS software will make DOOR.SYS,
DORINFO1.DEF, and CALLINFO.BBS in addition to the
CHAIN.TXT.
3.7.C SL
The SL (security level) required in order to run the
chain. Most sysops will set this at the level of
validated users or higher.
84
3.7.D AR
The AR required in order to run the chain. The sysop
can allow only certain people to play the game by adjust-
ing the AR. This may be particularly useful if the game
is limited to a certain number of players. People can
sign up to play the game and those chosen for the first
round can be given the appropriate AR. When the game
ends, a different group of players can then be given the
AR.
3.7.E ANSI
If ANSI is required in order to run the chain.
Because some games or on-line programs make extensive use
of Ansi screens, those users who do not have ansi may
experience significant problems with the game. This
feature allows you to screen out the people who do not
have ansi capabil- ities.
3.7.F Intercept DOS calls
Many programs run remotely will not have built-in code
for accessing the modem. For these programs, the BBS
should be set to intercept the DOS calls, and "re-direct"
the output to go to the modem, as well as the screen. It
is possible, however, that you will have a program that
will do its own modem access, in which case it should be
set so that the BBS won't intercept DOS calls. In most
cases, you WILL want the BBS to intercept DOS calls. If
the game does not seem to operate properly, you may need
to experiment with this setting. As a general rule, you
should try having the BBS intercept DOS calls for those
games designed specifically for WWIV and try having the
BBS not intercept DOS calls for those games designed to
be run on other systems. These settings may still need
to be changed, but the general rule is sound advice for
what to try as the initial setting for this variable.
3.7.G 300 Baud
Some programs use ANSI graphics to such an extent that
the display rate with 300 baud connections would be
intol- erable. With this setting, the sysop can prohibit
300 baud callers from using the chain.
3.7.H Shrink
The Shrink feature was introduced in WWIV v4.10. This
option handles memory very differently from the way it is
85
handled if this feature is not used. With Shrink set to
off, the BBS remains in memory when you run an external
program, thus restricting the maximum size of the program
you can use. With Shrink set to on, the BBS will
essentially unload from memory, allowing larger externals
to be run. Shrinking reduces the amount of memory the
BBS occupies to around 4k. Other than this different way
of handling memory, chains run with Shrink operate just
as they do without Shrink - except for a slight delay
when entering and exiting the program. If memory is a
problem on your system, use Shrink. Otherwise, it isn't
necessary to use it. Generally, the larger the program
to be run is, the more desireable it will be to use the
shrink feature.
3.7.I Disable Pause
This feature was added in v4.20. Some games, such as
the on-line program TETRIS, do not work well when the BBS
attempts to pause the screen. If the user has pause
toggled ON in the defaults, then the bbs will attempt to
pause after the number of lines of vertical height that
the user had specified. This option allows the sysop to
disable the user's pause option as he enters that
particular program. When the user exits, the pause
status will be reset as it was before the program was
run.
The information that follows was contained in a
separate document called CHAIN.DOC. Some of it may be
repetitive of information found earlier in the
documentation.
Allow and Instance Edit
3.8 ALLOWEDIT (AE)
This option applies to registered sysops only and is
associate with the OPT_FAST_Search setup. A program is
provided called WWSORT.EXE which should be run first.
This program creates your original ALLOW.DAT file which
will permit a fast search for duplicate file names. The
ALLOWEDIT option gives the sysop the ability to add or
remove file names from the binary file. A sysop might
want to add the name of a non-existant file if he did not
care to have that file uploaded to him. For example,
sysops frequently get a "scam" uploaded to them called
FASTCASH. This "scam" is like a chain letter for BBSes.
Putting FASTCASH as a file name would prevent someone's
uploading a file by that name. By the same token, if the
86
sysop needs to remove a filename from the binary list, he
has the option to do so by using the ALLOWEDIT option.
3.9 INSTEDIT (IE)
This option give the sysop limited editor ability over
instances and permits the sysop to shut down all
instances immediately if necessary. This can be handy in
a LAN type operation where all instances may not be
visible. Since certain types of maintenance (such as
that affecting qscan pointers or new scan pointers)
should not be run if a user is on-line, this gives the
sysop the ability to give users a 10 second warning and
then shut down the system.
Information on Chains (On-Line Programs)
╔═══════════════════╗
║ Chain Information ║
╚═══════════════════╝
3.10.1 Chainedit
The Chainedit function is also quite similar to the
Boardedit function. The chainedit is a means of adding
/deleting/modifying on-line programs. The information
presented here should be sufficient to enable the sysop
to setup many on-line programs.
The designation of chains originated in Turbo Pascal
versions of WWIV when the BBS literally "chained" to the
program. Although WWIV no longer operates in that
fashion and is no longer written in Pascal, the CHAINEDIT
terminology has remained.
Not all files can be run as external programs from
WWIV. Only those files that do all I/O through DOS calls
can be run. This means that Wordstar, WordPerfect, the
Norton Utilities, and most other graphics programs can
NOT be run from WWIV.
When Chainedit is run, a summary of the chains
currently available, if any, is presented as a listing.
Available options are: Insert, Delete, Modify and Quit.
When a new chain is inserted or an old entry is modified,
the sysop is given a chance to change the data. A
detailed discussion of the chainedit commands is given in
section .
87
3.10.2 WWIV Games
Games can be characterized as WWIV games if one of two
conditions occur. First, if the game is written to
specifically make use of the drop file known as
CHAIN.TXT. By drop file, is meant a file that is created
by the BBS software either at the time of logon or when a
door (chain) is entered. This file typically contains
information about the user and/or the system. A
commented CHAIN.TXT, written by MrBill is included later
in this document. Some games are written to make
specific use of the information contained in the
CHAIN.TXT file. These games, although perhaps not
specifically written for WWIV alone, are discussed in the
category of WWIV games because they have been written to
work with WWIV.
The second condition that causes a game to be known as
a WWIV game is that it makes use of the special dos color
codes contained in the WWIV software. These games are
characterize by use of the DOS color commands
(pseudo-ansi) found in WWIV. These colors are discussed
in the DEFAULT section of the software and are
configurable by the user. WWIV will interpret a "heart"
symbol as a color command when it is followed by a
number. Because WWIV is one of the few BBS programs that
can use these color commands, games containing them are
almost always written for the exclusive use of WWIV
boards. These games are also most often characterized as
games where the CHAINEDIT option of USE DOS INTERRUPTS
should be left at the default setting of Y.
3.10.3 Games for Other Software
Games that may be considered as being written for
other software are those which do not use CHAIN.TXT and
which instead use one of the drop files of another bbs
software. These usually include games which use
DORINFO1.DEF (RBBS, QBBS, REMOTE ACCESS), games which use
PcBOARD.SYS (PcBoard versions 12 and 14), games which use
DOOR.SYS (Wildcat 3.0, GAP, and PcBoard 14.5+), and games
which use CALLINFO.BBS (pre-version 3.0 of Wildcat).
These games can often be made to work with WWIV provided
that a 'converter' is also used. The use of converters
and so forth will be discussed later.
3.10.4 Setting up WWIV games
Most WWIV games have relatively good documentation
and therefore setting them up and getting them to work is
88
usually very straight forward. However, if there is no
documentation and/or the documentation seems
insufficient, then there are a number of things that you
can experiment with by trial and error to see if you can
get the game to run.
3.10.5 Placement of Game Files
If the game does not tell you where to place the
files, you can try each of the following setups to see if
one of them causes the game to work:
a. In its own directory
Example: C:\WWIV\MWAR
b. In a directory called CHAINS (especially for
older WWIV games)
Example: C:\WWIV\CHAINS
c. In a directory off of CHAINS (also popular place
for older WWIV games)
Example: C:\WWIV\CHAINS\MWAR
d. In the main BBS directory
Example: C:\WWIV
3.10.5.1 Relationship to CHAIN.TXT
If you get a 'parameter file not found' or other type
of error message from the game, then it may be that it is
not finding CHAIN.TXT correctly. You may try
incorporating a batch file and copying the CHAIN.TXT to
the directory where the game is located.
Example:
Use DOS commands as follows:
copy con MWAR.BAT
@echo off
copy chain.txt c:\wwiv\chains\mwar
cd chains\mwar
mwar
cd\wwiv
then press CTRL Z or F6 (function key 6) to save the
batch file.
89
3.10.6 DOS Interrupts
Some games written especially for WWIV will let the
BBS handle the DOS INTERRUPTS. This is especially true
of many games written in PASCAL for use with WWIV. A
sign that sometimes the DOS interrupt option is set
incorrectly is when the game echos double characters.
If the game is viewable from local mode but not from
the remote mode, then you may want to experiment with
setting the DOS INTERRUPTS option differently.
3.10.7 SHRINK Option
Many games do not necessitate the BBS to shrink out in
order to run them; however, if you experience a "lock up"
or freezing of the computer when you try to run the game,
this may be an indication that there is insufficient
memory available and that you should shrink the BBS.
Also, in my experience, it may be helpful to set the BBS
to shrink out if the game is large (ie the file size is
big).
3.10.8 Setting up Non-WWIV Games
Because these games are not specifically made for
WWIV, the first step is to determine what software they
support. You will know what CHAIN.TXT CONVERTER to run by
noting the types of drop files supported. The more
popular converters currently in use by WWIV Sysops are:
WWUTIL5 by Phil DeWitt. This utility will convert
CHAIN.TXT to DORINFO1.DEF, CALLINFO.BBS, and PcBOARD.SYS.
WWUTIL6 by Filo. This utility is based upon Phil
DeWitt's code, but it offers two additional parameters
which may be useful. A command line parameter of H will
pass the user's handle rather than his real name to the
door and an F will pass a locked comport speed rather
than the user's baudrate.
The latter is sometimes helpful in getting a game to
work where you are running a hi-speed modem with a locked
comport.
QKDOOR by Christopher Hall. This utility provides
the ability to convert the drop file from anyone of the
following types of BBS software to any of the others:
GAP -> Door.Sys
Genesis Deluxe -> CallInfo.BBS
90
GT PowerComm -> GTUser.BBS
Osiris# -> ExtInfo#.QBS
OsirisSE### -> Out###.QBS
PCBoard v12xx -> PCBoard.Sys
PCBoard.Dat
Users
PCBoard v14xx -> PCBoard.Sys
PCBoard.Dat
Users
QuickBBS -> DorInfo1.Def
RBBS# -> DorInfo#.Def
WildCat -> CallInfo.BBS
Remote Access -> Dorinfo1.Def
SpitFire
WWIV -> Chain.Txt
Syntax used for QKDOOR is:
QkDoor [Path\]From_Door_Type [Path\]To_Door_Type
[Locked_Baud_Rate]
3.10.8.1 Batch files using converters
You will want to call the non-WWIV game with a batch
file that uses a converter. For example, let us say that
you are going to run a QBBS game (one that requires
DORINFO1.DEF using Filo's converter (WWUTIL6) with user
handle's being passed to the game and the game (MWAR) is
located in C:\WWIV\MWAR, then the batch file to call the
game would be:
@echo off
WWUTIL6 H (the H is for Handle)
cd C:\WWIV\MWAR
MWAR (plus any command line
parameters)
cd\WWIV
If that does not work, then it may be necessary to add a
line to the batch file immediately after WWUTIL6 H which
copies the DORINFO1.DEF to the game directory:
(ie. copy dorinfo1.def C:\WWIV\MWAR
3.10.8.2 Fossil Drivers
WWIV does not require a fossil driver in order to run
because Wayne Bell has written all of the I/O calls to
the comport; however, some BBS software requires a Fossil
Driver in order to operate because the authors have
written their program to use the Fossil. Thus, some
games may expect a fossil to be present even though that
91
is not mentioned in the documentation of the game. This
is particularly true for games written for QBBS, RBBS,
and OPUS.
WWIV should operate just fine even when a fossil
driver is loaded. Most of these fossil drivers take
5-10k of memory, so if your system is tight on memory,
you may wish to load the fossil only when shrinking out
and unload it when you finish the game. This may be
accomplished by using the EXE or COM version of the
fossil and having it loaded and unloaded in the batch
file that calls the game.
The better known fossil drivers are X00, BNU, and
OPUSCOM. I personally use BNU170, but many WWIV system
operators report excellent results from X00. I do not
have experience with OPUSCOM and so make no claims for
it. However, using BNU I have been able to get many games
to run that would not otherwise do so.
3.10.8.3 Batchfiles in the Multi-Instance Environment
The batchfile below shows an example of having a game
in a different directory for each "instance". It uses
Trade- Wars as an example. Whether or not the setup
shown below is necessary depends upon the chain and how
it is written. The example is theoretical. I have not
checked TradeWars to determine whether or not it requires
such a setup. Lines beginning with REM are "remark" lines
and are meant to help you understand what is transpiring
in the batch file.
@Echo Off
REM --> Check to see if instance 3
if %WWIV_INSTANCE%==3 goto Inst3
REM --> Check to see if instance 2
if %WWIV_INSTANCE%==2 goto Inst2
REM --> Example only has three instances; got here, must be
REM --> instance 1
goto Inst1
REM --> Subroutine for Instance 1
:Inst1
Copy C:\WWIV\CHAIN.TXT C:\WWIV\DOORS\TW\1
C:
Cd\WWIV\DOORS\TW\1
TW2002
Goto Done
92
REM --> Subroutine for Instance 2
:Inst2
Copy C:\WWIV\CHAIN.002 C:\WWIV\DOORS\TW\2\CHAIN.TXT
C:
Cd\WWIV\DOORS\TW\2
TW2002
Goto Done
REM --> Subroutine for Instance 3
:Inst3
Copy C:\WWIV\CHAIN.003 C:\WWIV\DOORS\TW\3\CHAIN.TXT
C:
Cd\WWIV\DOORS\TW\3
TW2002
Goto Done
REM --> Cleanup area, exits batch file in proper dir, or
REM --> whatever necessary.
:Done
C:
Cd\WWIV
3.10.9 Other Comments regarding CHAINS
Some of the games written for WWIV in Pascal are
presented in uncompiled form by the authors. This is
often done so that the pascal code may be altered or
customized for your board. Usually these authors have
made use of something called a COMMON.PAS file which
interfaces the game with WWIV. If a particular game has
not been compiled, you must first compile it with the
appropriate version of the Turbo Pascal compiler using
the appropriate version of COMMON.PAS. Most of the
versions of COMMON.PAS are available for downloading on
the WWIV Support Boards.
3.10.9.1 BRUNxx
Some games written in QuickBASIC have been compiled to
utilize an intermediate program called BRUN (Basic RUN
time module). Such games require the BRUN module
specific to the compiler. Current versions of BRUN are
BRUN20, BRUN30, BRUN40, and BRUN45. Again, these
programs are available on most WWIV Support Boards. The
BRUNxx file may be placed in your path and used by all
programs that require it. One advantage of the Basic RUN
time compilers is that the resulting EXE's require
significantly less space (approximately 35k less per
program).
93
3.10.9.2 A Commented Chain.txt
CHAIN.TXT Definition File
by MrBill
Note: Some of the original information about Mr. Bill
and MrBill's Abode has been shortened to accomodate the
60 character margin format of these docs.
-----------CHAIN.TXT-----------------------------------
1 User number
MRBILL User alias
Bill User real name
User callsign (HAM radio)
21 User age
M User sex
16097.00 User gold
05/19/89 User last logon date
80 User colums
25 User width
255 User security level (0-255)
1 1 if Co-SysOp, 0 if not
1 1 if SysOp, 0 if not
1 1 if ANSI, 0 if not
0 1 if at remote, 0 if local console
2225.78 User number of seconds left till logoff
F:\WWIV\GFILES\ System GFILES directory (gen. txt files)
F:\WWIV\DATA\ System DATA directory
890519.LOG System log of the day
2400 User baud rate
2 System com port
MrBill's Abode System name
MrBill System SysOp
83680 Time user logged on/# of secs. from midn
554 User number of seconds on system so far
5050 User number of uploaded k
22 User number of uploads
42 User amount of downloaded k
1 User number of downloads
8N1 User parity
2400 Com port baud rate
7400 WWIVnet node number
----------EOF------------------------------
94
QWK OFF-Line Reader Support
3.11
The QWK offline mail packet generator is a powerful new
feature in v 4.24. It allows your callers to download all
their messages instead of having to read them online,
write their replies offline, and call and upload their
replies. QWK will prompt the caller prior to posting the
message in a mes sage base to ensure it is being placed
in the proper directory. The reason for this should be
obvious- If the sysop decided to add or delete subs
between the time the user downloads the packet and the
time he uploads his reply packet, this will prevent the
posts from going into the wrong sub. The QWK generator
that comes with WWIV supports all of the popular QWK
readers.
The option within QWK for the caller are fairly
straight-forward.
C- Configure This menu allows you to configure many of
your QWK settings. A brief discussion of the sub-menu
topics follows:
Scan Email into QWK: If this is selected, the user's
email will be scanned into the QWK packet.
Delete scanned Email: Selecting this option will delete
the email after it is scanned into the QWK packet.
Set NScan of messages: This feature will mark messages
packed into your QWK packet as "read".
Pack Bulletin in QWK: If the sysop has bulletins set
up, this will grab them and pack them into your QWK
packet for you to read.
Scan for new files: If there have been any new files
uploaded since your last call, this will scan for them
and list them in your QWK packet.
Remove routing info: Selecting this will strip out the
"hidden" routing info that WWIVNetwork appends to the
top of messages.
Do not change colors: Will leave the WWIV "heart"
colors alone.
Remove heart codes: Will remove the ascii 003's WWIV
inserts for colors.
95
Convert colors to Ansi: Will cause QWK to attempt to
convert the WWIV heart colors into ANSI (whether or not
this will work for you depends on the offline mail
reader you use).
Archiver: Which archive method would you like your QWK
packet packed with?
Default Protocol: Which protocol would you like to use
to download your packet?
Max Messages per:
Packet: This is the TOTAL number of messages
(maximum) that you want to be packed into your QWK
packet.
Sub: This is the maximum number of messages you
want to be included within each individual sub
board.
D- Download QWK Packet
Select this to proceed with your download after you
have set all other options.
B- Bi-Directional Transfer of QWK Packets
Select this to use a protocol such as HSLink to both
send and receive your packets simultaneously.
%- Set Percentage of Messages to Download
If you define this number, the new messages you
download will be x percent of ALL THE POSTS ON THE BBS
in the subs you have included in your newscan, Not just
the percent of new posts. Be careful when you use this
option.
U- Upload Reply Packet
Select this option to upload the reply packet you
created with your offline mail reader.
Q- Quit to Main Menu
Quit back into the BBS
S- Select Subs to Include
Basically, this does the same thing as option 5 in the
96
Defaults section. It allows you to define which subs
(message bases) you want to read and includes them in
your QWK packet.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
Here is the one for the REMNOTE.DAT 'feature'. It
probably would not be a bad idea to stick it in there
too....
---------------------------------------------------------
The following passage describes the often
misunderstood feature remnote.dat. Thanks goes to Dawg
for his help and input with the documentation for this
feature
The remnote.dat file is quite useful. Its function
is to notify systems (usually local systems) of a file's
arrival on your system. It started out as a way for
systems using packscan to announce these arrivals to
others, so that other systems could request the files.
Now it is now a part of stock WWIV code and when used in
conjunction with the PFREQ option, quite an easy way to
have a file delivered to your sysop directory. Without
touching on the ethics of file sending, I will explain
the basics of setting up such a file.
Remnote.dat needs to be placed in your systems data
directory as defined by INIT. Its format is as follows:
<NETWORK NAME>,<USER #>,<SYSTEM #>
Here are a few lines from my file:
WWIVNET,1,2001
WWIVLINK,1,13454
PDNET,1,2
The first line there notifies user #1 at @2001 on
WWIVnet. The second line does the same for 1@13454
WWIVLink, and so on. One note, early versions of
Packscan (and remnote.dat) used numbers for the networks.
This was dropped and network names added with Packscan
v2.30. By using the network names your file is
unaffected by adding or deleting other networks.
According to Tolkien, Packscan's author, the net name
should be capitalized to prevent any possible problems.
You should think carefully about adding systems to your
remnote.dat file for several reasons. Among them are:
97
1) They can and will see files uploaded to your sysop
directory, even if they cannot request them.
2) Some people would rather not be inundated with
massive amounts of SSM's constantly.
The PFREQ option goes hand in hand with remnote.dat.
If you have a registered version of Packscan, you will
have the ability to request files from the notifications
received via remnote.dat. A few notes about this:
1) You must have registered Packscan, and have the
filereq.exe in your main bbs dir.
2) You must be in the sending systems alias.net file and
have access to the file you are requesting.
3) You should have all intervening nodes permission
prior to doing this.
WWIV.INI Options
3.12 Understanding WWIV.INI
v4.23 of WWIV provided a new method of configuration
that provided a great deal of power and flexibility to
the BBS system. That method contained numerous options
in VARS.H that could be turned on or off by merely
commenting or uncommenting a define option. While this
method of configuration provided enhancements to those
registered users who had compilers and thus the ability
to recompile the bbs after changing the options, it
created some difficulties for those registered users who
wanted the options but either did not have a compiler
and/or lacked the interest or inclination to learn to use
a compiler.
v4.24 remedies many of those problems by creating
a file called WWIV.INI that resides in the main bbs
directory and that permits a sysop to configure many
items without having to recompile the BBS. The file
itself has a number of instructive commentaries that
should make it easy to use. The purpose of the
discussion here is to provide additional information to
the somewhat cryptic comments in the INI file itself.
3.12.1 Use by other programs
One additional feature of the INI file is that others
who write utilities and so forth may also use it so that
98
their programs can look to the INI file for configuration
details. All that is necessary is that the utility look
for a name in brackets. For example, PACKSCAN, one of
the utilities available from WWIV Software Services,
looks to the WWIV.INI file for its parameters. These
parameters are placed under a [PACKSCAN] option. These
other utility options should follow all of the material
related to WWIV and should not be interspersed with the
WWIV BBS information.
3.12.2 Color Options
Colors are selected numerically. To determine the
value for a color, use the following chart:
0 = Black 8 = Dark Gray
1 = Blue 9 = Light Blue
2 = Green 10 = Light Green
3 = Cyan 11 = Light Cyan
4 = Red 12 = Light Red
5 = Magenta 13 = Light Magenta
6 = Brown 14 = Yellow
7 = Light Gray 15 = White
Now, to calculate a color, you take the value for the
background color and multiply by 16, then add it to the
foreground color you wish. This will provide the value you
should use for that color combination. Note that color
values greater than 127 will result in blinking. In other
words, you should probably restrict background colors to
colors 0-7 above.
An example: if you want to find the value for, say,
bright yellow on magenta, it would be (5*16) + 14. This
equates to (magenta * 16) + yellow.
These color options may then be specified as follows:
Newuser colors
NUCOLOR[0] = 7 NUCOLORBW[0] = 7
NUCOLOR[1] = 11 NUCOLORBW[1] = 15
NUCOLOR[2] = 14 NUCOLORBW[2] = 15
NUCOLOR[3] = 5 NUCOLORBW[4] = 112
NUCOLOR[4] = 31 NUCOLORBW[5] = 15
NUCOLOR[5] = 2 NUCOLORBW[6] = 15
NUCOLOR[6] = 12 NUCOLORBW[7] = 7
NUCOLOR[7] = 9 NUCOLORBW[8] = 7
NUCOLOR[8] = 6 NUCOLORBW[9] = 7
NUCOLOR[9] = 3
99
Other colors for the BBS can also be specified in the
WWIV.INI file. These other colors are indicated below:
Colors
TOPCOLOR = 31
F1COLOR = 31
EDITLINECOLOR = 112
CHATSELCOLOR = 95
MSG_COLOR = 3
3.12.3 Spawn Options
v4.24 also adds some spawn options. These affect how
the bbs acts when it uses the spawning code.
The various spawn options that may be used are:
ABORT Allows ^C to break the spwaned program.
INTERNAL Makes extern appear as part of BBS
NOHANGUP Doesn't check for hangup
COMIO Use RETURN.EXE for WWIV's DOS intercept
(takes about 50k more mem)
SHRINK Swaps out to XMS, EMS, or disk, to free more
memory.
FILES Creates STAT.WWV and RETURN.WWV files.
NOPAUSE Turns off user's pause-on-screen.
NETPROG Tries to run program in network data dir
first.
TOPSCREEN Redraws topscreen after execution.
3.12.4 Combining Spawn Options
These options may be combined like:
SPAWNOPTS[FSED]=SHRINK,COMIO,NOHANGUP
3.12.5 Locations for Spawning
Valid locations that can have spawn options specified
are:
TIMED, NEWUSER, BEGINDAY, LOGON, ULCHK, FSED,
100
PROT_SINGLE, PROT_BATCH CHAT, ARCH_E, ARCH_V, ARCH_A
The ARCH_Xs refer to archive functions and ULCHK is the
upload check program. Timed refers to the external event.
Under the WWIV caption in WWIV.INI, you will find
various spawn options. To use these, you can remove
the semi-colon that precedes them.
[WWIV]
3.12.6 Default spawn options
SPAWNOPT[TIMED] = SHRINK, FILES
SPAWNOPT[NEWUSER] = NONE
SPAWNOPT[BEGINDAY] = SHRINK
SPAWNOPT[LOGON] = COMIO
SPAWNOPT[ULCHK] = NOHUP, SHRINK
SPAWNOPT[FSED] = COMIO
SPAWNOPT[PROT_SINGLE] = NONE
SPAWNOPT[PROT_BATCH] = SHRINK, TOPSCREEN
SPAWNOPT[CHAT] = COMIO, SHRINK, FILES
SPAWNOPT[ARCH_E] = COMIO, INTERNAL
SPAWNOPT[ARCH_V] = COMIO, INTERNAL, ABORT
SPAWNOPT[ARCH_A] = COMIO, INTERNAL
3.12.7 External program commandlines
You can define external program commandlines in
WWIV.INI for the following items:
TERMINAL_CMD =
EXECUTE_CMD =
UPLOAD_CMD =
BEGINDAY_CMD =
NEWUSER_CMD =
LOGON_CMD =
3.12.8 System specification
You can define certain global variables in the system
specification portion of WWIV.INI:
SYSTEMNAME =
SYSTEMPHONE =
SYSOPNAME =
101
3.12.9 RIP-specific constants
The BBS ID should be all caps, and up to 9 chars.
If the user has RIP menus older than this date, a new
set will be used. Note that you must use 2 digits for
month, day, *and* year
If pull-down menus don't align properly, adjust the
RIP_ADJUST offset.
RIP_BBS_ID = WWIV424
RIP_MENU_DATE = 08/11/94
RIP_ADJUST = 0
In addition to the RIP options above, you want to
indicate that RIP_SUPPORT in System Flags is set to YES.
3.12.10 System flags
There are various system flags that can be turned on
and off by setting them to YES or NO. These options are
shown below:
FORCE_FBACK =
CHECK_DUP_PHONES =
HANGUP_DUP_PHONES =
POSTTIME_COMPENS =
USE_SIMPLE_ASV =
SHOW_HIER =
IDZ_DESC =
SETLDATE =
NEW_CHATSOUND =
SLASH_SZ =
READ_CD_IDZ =
FSED_EXT_DESC =
FAST_TAG_RELIST =
MAIL_PROMPT =
SHOW_CITY_ST =
LOCAL_SYSOP =
2WAY_CHAT =
OFF_HOOK =
PRINTER =
LOG_DOWNLOADS =
CLOSE_XFER =
ALL_UL_TO_SYSOP =
NO_EASY_DL =
NEW_EXTRACT =
FAST_SEARCH =
NET_CALLOUT =
FIDO_PROCESS =
102
USER_REGISTRATION =
MSG_TAG =
CHAIN_REG =
CAN_SAVE_SSM =
PACKSCAN_FREQ =
EXTRA_COLOR =
RIP_SUPPORT =
BEEP_CHAT =
TWO_COLOR_CHAT =
ALLOW_ALIASES =
USE_LIST =
FREE_PHONE =
NOTIFY_DL =
EXTENDED_USERINFO =
3.12.11 ASV options
The BBS supports auto-validation for sysops (ASV).
The sysop may set the values that are to be given to the
sysops who anwer the question "Are you a WWIV Sysop?" with
YES.
ASV values
SIMPLE_ASV[SL] =
SIMPLE_ASV[DSL] =
SIMPLE_ASV[EXEMPT] =
SIMPLE_ASV[AR] =
SIMPLE_ASV[DAR] =
3.12.12 System tuning parameters
System tuning parameters that may be set in WWIV.INI are:
MAX_BATCH = 50
MAX_CHAINS = 50
MAX_GFILESEC = 32
3.12.13 Ratio Requirements
The WWIV.INI file also lets you set whether or not ratios
are required as well as the length of the name to allow
when mail is indicated. The length of the who field is
set here.
RATIO_REQ =
MAIL_WHO_LEN = 35
103
Top of Screen Information
╔═══════════════════════════╗
║ Top Of Screen Information ║
╚═══════════════════════════╝
3.13.1 Top of Screen Data
The local sysop's screen can show two screens of
information, which may be toggled with the F2 key. The
first screen is system status.
3.13.2.A Caller's Status for Top of Screen
The second screen shows the current caller's
statistics. The second screen has the following
information:
The first line contains the user's name (alias) and
number, mail waiting for user, uploaded files and
kilobytes, security level, total logons, and posts. The
second line contains the user's real name, phone number,
callsign, downloaded files and kilobytes, download
security level, total time on, and e-mail sent.
The third line contains the user's AR and DAR, restric-
tions, exemption, logons today, and feedback sent. The
fourth line shows the user's note, sex, age, computer,
time left, and feedback waiting for the sysop. A fifth
line may appear after a caller requests a chat. This line
would give the reason the caller entered for wanting to
chat. The border line at the bottom of the topscreen
information may also show Temp Sysop, Capture, Alert,
Comm Disabled, and/or Available and provide information
about the baud rate of the caller.
Temp Sysop appears when the sysop has toggled temporary
sysop status with F9. Capture appears when the sysop has
toggled the global capture with Shift-F1. Alert appears
when the sysop has pressed F6 to be informed when the
caller hangs up. When Alert has been toggled on, the
computer will beep after the current user logs off, and
will not return to WFC so that the sysop can log on
locally. Comm Disabled appears when the sysop has pressed
F3 to prevent the caller from typing. Available appears
when the sysop has toggled the sysop available for chat
option with scroll-lock. More information about function
keys is provided later in this guide chapter 51.
3.13.2.B Abbreviations used in the TopScreen Information
for Caller
To summarize the abbreviations used in the TopScreen:
104
W - Mail waiting for caller SL - Security Level
R - User restrictions DL - Download Security
Level
AR - User AR/DAR PO - Total # of posts
LO - Total number of logons ES - Total e-mails sent
TO - Total minutes on FW - Feedback waiting
for sysop
FS - Total feedback sent EX - User exemptions
UL - Files uploaded/kilobytes uploaded
DL - Files downloaded/kilobytes downloaded
3.13.3 System Status Information for Top Screen
The system status topscreen information shows the
following data about the status of the system. The first
line contains the BBS name and today's date. The second
line indicates the total number of users, total calls to
date, calls today, and number of posts today. The third
line displays the current user's name (alias) and number,
time the system has been active today, percent of time
today the system has been used, and amount of e-mail
sent today. The latter statistic as well as the number
of posts today includes both local and network information,
if the board happens to be participating in the network.
The fourth line shows the current user's security level,
download security level, time left, feedback waiting for
the sysop, files uploaded today, and feedback sent today.
Archiving Programs
╔═══════════╗
║ Archivers ║
╚═══════════╝
3.14 Archive Programs
Archivers also known as compression utilities are
handy utilities for BBSes to use because they permit you
to store files in a compressed format so that they take
up less space on your hard disk and so that they require
less time to transmit via the modem when users are
downloading them. There are many popular archiving
utilities. The settings below reflect a few of the more
popular ones.
None of these utilities were written specifically for
WWIV. Each has a much broader application, but you may
find them (or others) in use at a bbs near you, by your
105
users, etc. Thus you may wish to have them.
You should also note that the E(xtract) command when
reading messages provides you with the option to store a
file as a downloadable, compressed file in your transfer
directories. If you select this option, WWIV will use
the FIRST archive method listed in INIT.
The INIT settings and the archivers in use at The
Dragon's Den are as follows:
Archive Extension : .ZIP
List Archive : pkunzip -v %1 >nul
Extract Archive : pkunzip -e -o %1 %2 >nul
Add to Archive : pkzip -a %1 %2
Archive Extension : .ARC
List Archive : pkunpak -V %1
Extract Archive : pkunpak %1 %2
Add to Archive : pkpak -A %1 %2
Archive Extension : .LZH
List Archive : lha v %1
Extract Archive : lha e %1 %2
Add to Archive : lha a %1 %2
Archive Extension : .ARJ
List Archive : arj v %1 >nul
Extract Archive : arj e %1 %2
Add to Archive : arj a %1 %2
The use of "nul" in the command lines above is because
some of the archivers have written directly to the bios
rather than to the console. By using the redirection to
NUL, you force the information to the console so that it
can be seen by the user. With PkZip, you may also set an
evironmental variable "PKNOFASTCHAR." For this approach,
consult the PkZip documentation. If you are short on
environment space, using the >nul approach will save a
small amount of environment space.
PkZip is a product of PKWARE(tm). Pkunpak is an
outdated version of archiving software produced by
PKWARE. It is backwards compatible with other forms of
archivers.
LZH is one form of LHARC(tm) which is used in may
places. ARJ is a relatively new archiver produced by
Jung. These archivers are available for download on many
bulletin boards including most of the WWIV support
boards.
Note that in v4.24 it is possible to have the BBS use
spawn options with respect to these archive functions.
For more information on this, see section dealing with
106
the WWIV.INI file.
Protocols
┌────────────────────────────┐
│ External Programs for WWIV │
└────────────────────────────┘
Some of the external programs described below were
written for use with WWIV and others were written with
more general applications in mind. WWIV will work
without any of the programs discussed below; however,
since many sysops do find them to be useful, the
parameters used to incorporate them into WWIV are
discussed below.
3.15.1 Protocols
3.15.1.1 Zmodem (DSZ)
Zmodem Protocol, written by Chuck Forsberg and
distributed by Omen Technologies, Inc. is an often used
transfer protocol. The setup below reflects the settings
used at The Dragon's Den. These settings may not be
optimal for your use. You are encouraged to read DSZ.DOC
(supplied with the protocol) and adapt the settings below
for your use.
Description : Zmodem
Xfer OK code : 0
Require MNP/LAPM : N
Receive command line:
dsz port %2 speed %1 ha on rz -r %3
Send command line:
dsz port %2 speed %1 ha on sz %3
Receive batch command line:
dsz port %2 speed %1 est 0 %4 ha on rz %3
Send batch command line:
dsz port %2 speed %1 est 0 %4 ha on sz @%3
Bi-directional transfer command line:
3.15.1.2 HS-LINK
HS-Link is written by Sam Smith and also works on many
different bulletin board systems including WWIV. HS-Link
is capable of operating as a bi-directional protocol.
107
The setup used at The Dragon's Den is:
Description : HSLINK Bi-Directional Protocol
Xfer OK code : 0
Require MNP/LAPM : N
Receive command line:
hslink -p%2 -e%4 -nu%3
Send command line:
hslink -p%2 -e%4 %3
Receive batch command line:
hslink -p%2 -e%4 -nu%3
Send batch command line:
hslink -p%2 -e%4 -nu@%3
Bi-directional transfer command line:
hslink -p%2 -e%4 -@%3
Because HS-Link is also supported by WWIV networking
software, you are encouraged to consult the appendices to
WWIVNET.DOC which show the best settings for using
HS-LINK in the WWIV networking environment.
3.15.1.3 GSZ
GSZ is also produced by Omen Technologies and is a more
colorful protocol than Zmodem. It uses the Zmodem
Command Set. The settings below are those in use at The
Dragon's Den.
Description : GSZ -- DSZ with Color Display
Xfer OK code : 0
Require MNP/LAPM : N
Receive command line:
gsz p %2 s %1 rz %3
Send command line:
gsz p %2 speed %4 sz %3
Receive batch command line:
gsz p %2 s %4 rb @%3
Send batch command line:
gsz p %2 s e%4 sb @%3
Bi-directional transfer command line:
3.15.1.4 MpT
MpT is a protocol developed by Matt Thomas. The p
stands for Puma. The following settings are in use at
The Dragon's Den.
Description : MpT Mathew (Puma) Thomas
Xfer OK code : 0
Require MNP/LAPM : N
108
Receive command line:
mpt R %3
Send command line:
mpt S %3
Receive batch command line:
Mpt S @%3
Send batch command line:
Bi-directional transfer command line:
Additional Protocol Information:
I have found that some people have had trouble
installing some external protocols with WWIV. This is a
collection of protocol setups designed to help the new
and old WWIV sysops alike. Just read the various sections
and you will see how to set up the protocols. You will
notice that for some protocol there are more then one
possible configuration. You can choose which of these
will work best for you.
Zmodem, from Omen technologies, offers the most
reliable of all of the transfer protocols while offering
respectable speed. Download one of the DSZ files and get
along with it the ZDOC file. This is the best docs on
Zmodem around. DSZ, when registered, will support
X/Y/Zmodem and it's many variants like 1k-Xmodem as well
as the reliable modem protocols like Ymodem-G. It
supports single file and batch transfers.
3.15.1.5 Zmodem
Description : ZMODEM (dsz.com)
Receive cmd. line : dsz port %2 speed %1 pB4096 rz %3
Send cmd. line : dsz port %2 speed %1 pB4096 sz -z %3
Xfer OK code : 0
3.15.1.6 PcConnect Zmodem
Description : PcConnect Zmodem v4.05.90 (pcz.exe)
Receive cmd. line : pcz %2 %1 rz %3
Send cmd. line : pcz %2 %1 sz %3
Xfer OK code : 0
3.15.1.7 Zmax
Description : ZMAX v1.00
Receive command line : zmax -b %1 -p %1 -f %3 -r
Send command line : zmax -b %1 -p %1 -f %3 -s
Xfer OK code : 0
NOTE: ZMAX is a fully 32 bit version of ZMODEM, meant to
109
be used as a replacement of it. Seems to work fine, but
not many people using it.
3.15.1.8 SZmodem
Description : SZMODEM (Super Zmodem) v1.41
(szmodem.exe)
Receive command line : szmodem port %2 speed %1 rz %3
Send command line : szmodem port %2 speed %1 sz %3
Xfer OK code : 0
SZMODEM (Super ZMODEM) is fully compatible with DSZ and
other versions of ZMODEM, check this program out because
it's very nice! This is what my SZMODEM.CFG file looks
like:
SZMODEM Configuration:
1. Default Com parameters........ COM1:38400,N,8,1
3. BBS Dorinfo processing........ OFF
4. Input buffer size............. 6144 bytes
5. Output buffer size............ 6144 bytes
6. SZPath........................ (current)
7. Delaytime..................... 2 seconds
8. SZTurbo....................... Enabled
9. Snow checking................. Off
10. Ega/Vga Display............... Off
11. SZMODEM.LOG log file.......... On
12. Allow remote sysop page....... Yes
13. DORINFOx.DEF path............. (current)
14. Handshaking options........... CTS/RTS (Hard)
15. Locked Baud Rate.............. Not Locked
Enter number to change [A=Abort,S=Save,D=Defaults] ?
notes:
If you're not running a high speed modem, then it's
obvious that you'll want to change the default com
parameters, or if you're using com 2. If you're NOT
running your bbs under DesqView or Windows... then you
mightwant to turn the hi-rez EGA/VGA display on. If you
don't want users to page you, set the allow remote sysop
page to No. If you're not running a high speed modem, set
the handshaking to NONE or Soft, but definitely NOT hard.
If you're running an OLD HST (9600) or other high speed
modems that to to get the better cps rates you have to
lock the com port - do it. With the newer USR line you
don't need it locked unless the user is using a form of
compression (V.42bis/MNP/LAPM)...
110
3.15.1.9 Jmodem
Jmodem is a relatively new protocol that supports
blocks up to 8K with a fallback when errors occur. This
protocol should be used on good phone connections. A
noisy line will kill any respectable speed that can be
gained by this protocol. Jmodem is very simple to use. It
has very few arguments necessary to transfer files.
Description : JMODEM (jmodem.com)
Receive command line : jmodem r%2 %3
Send command line : jmodem s%2 %3
Xfer OK code : 0
Description : JMODEM (jbatch.com)
Receive command line : jbatch p%2 s%1 b dR f %3
Send command line : jbatch p%2 s%1 b dS f %3
Xfer OK code : 0
NOTE: Make sure you have the file JBA.COM in the same
directory, the program JBATCH.COM needs the other program
to shell to since it is the actual driver.
Description : JMODEM (superk.com)
Receive command line : superk p%2 s%1 rj f %3
Send command line : superk p%2 s%1 sj f %3
Xfer OK code : 0
NOTE: Make sure that the file SPA.COM is in the same
directory, SUPERK.COM shells to it for the jmodem driver,
it has all other protocols built into the main file. Also
if you want to send and receive files in BATCH mode (it's
only going to send one file though) so that the user
doesn't have to type in the filename upon downloading,
change the 'rj' and 'sj' in the command line to 'rjb' and
'sjb' respectively. BUT make sure the users know this
because if you send in batch mode and they try to receive
in single file mode or vice-versa, the transmission will
abort!
3.15.1.10 Super8K
Super8k is another new protocol. It is also an 8k
packet transfer that differs from Jmodem in 2 ways.
First, it supports batch and single file transfers.
Second, it starts with 8k packets where Jmodem starts at
512 byte blocks and grows to the eventual 8k. Super8k
also supports a 1k fallback when line noise is a problem.
Once again, Super8k should be used on good telephone
111
lines. In tests I have run, Super8k is the fastest
protocol driver I have used to date. It appears to be
very robust. On the Deathstar, the batch implementation
is used. Even if you are transferring 1 file, use the
batch invocation for this protocol.
Description : SUPER8K
Receive command line : superk p%2 s%1 rs f %3
Send command line : superk p%2 s%1 ss f %3
Xfer OK code : 0
NOTE: If you want to send and receive in BATCH mode so
your users won't have to type in a filename on their end
during downloading, replace the 'rs' and 'ss' with 'rsb'
and 'ssb' respectively. BUT be sure to tell them this or
you'll have alot of aborted transmissions since the
single file mode and batch mode are incompatible!
3.15.1.11
K9Xmodem is another Xmodem variant. It's claim is
that it is faster than Xmodem and supports single file
and batch implementation. Like Super8k, the batch
implementation is implemented on the Deathstar. Use the
batch invocation here even if you are only transferring 1
file.
Description : K9XMODEM
Receive command line : superk p%2 s%1 rk f %3
Send command line : superk p%2 s%1 sk f %3
Xfer OK code : 0
NOTE: If you want to send and receive in BATCH mode so
your users won't have to type in a filename on their end
during downloading, replace the 'rk' and 'sk' with 'rkb'
and 'skb' respectively. BUT be sure to tell them this or
you'll have alot of aborted transmissions since the
single file mode and batch mode are incompatible!
If you have a reliable (MNP) type modem, you may want
to try Ymodem-G or 1K-Xmodem-G. These protocols are
specifically for modems that with MNP type error
correction. These modems use hardware error correction
between modems, so the protocols simply stream data from
end to end and the modems handle the error conditions.
While these protocols are some of the fastest as far as
BPS rate, they are the least robust and can die with just
one hard error.
112
Still using Xmodem? Ymodem is a Xmodem variant that
uses 1024k byte blocks. In the real implementation,
Ymodem can step down to 128 byte blocks if necessary. A
variation of this protocol is 1K- Xmodem. It is similar
to Ymodem, but may not step down. This is solely based on
implementation. The basic difference between Ymodem and
1K-Xmodem is Ymodem sends file information down the line
in block zero. 1K-Xmodem does not.
3.15.1.12 Ymodem-G
Description : YMODEM-G (MNP only!)
Receive command line : dsz ha slow port %2 pR1 pB8192
estimate 0 %4 rb -g %3
Send cmd. line : dsz ha slow port %2 pB8192 estimate 0
%4 sb %3
Xfer OK code : 0
NOTE: You must have a registered version of DSZ to use
the Ymodem-G. Also remember, Ymodem-G does no error
correction and should ONLY be used with error correcting
modems (i.e. 9600+ modems) The Difference between
YMODEM-G and XMODEM-1k- G is that YMODEM-G is capable of
doing batch transfers and XMODEM-1k-G is not.
3.15.1.13 Xmodem-1K-G
Description : XMODEM-1k-G (MNP only!)
Receive command line : dsz ha slow port %2 pR1 pB8192
estimate 0 %4 rx -g %3
Send cmd line : dsz ha slow port %2 pB8192 estimate 0
%4 sx %3
Xfer OK code : 0
Still not convinced? Kermit, though it's smaller
packet size, achieves better throughput by using sliding
windows. This is sometimes referred to as Super Kermit.
The implementation here uses a window size of 31. This
means 31 packets can be transmitted before an ack is
required from the other side. It is also a full duplex.
This means data can be sent in both directions at the
same time. While Kermit is a well used protocol, it is
not the easiest in the world to get going unless it is
embedded in your comm program.
3.15.1.14 PcKermit
Description : PCKermit
Receive cmd line: PCKERMIT -l COM%2 -b %1 -m 31 -p n -r
-c
Send cmd line : PCKERMIT -l COM%2 -b %1 -m 31 -p n -s
113
%3 -c
Xfer OK code : 0
Want larger Kermit packets? Well try the Extended
packet Kermit. This implementation transfers up to 1000
byte packets. You must be using MS-Kermit or another
implementation that supports the larger packet size.
PCKermit does not support the extended packet. Remember,
the larger the packet, the more you want to make sure you
have clean telephone lines, or it will severely slow down
your transfer. As with PCKermit, use a 3 byte CRC for
higher reliability.
3.15.1.15 MS-Kermit
Description : MS-Kermit (Extended Packets)
Receive.bat -
Kermit -F NUL,SET BAUD %1,SET PORT %2,SET PARITY %3,SET
RECEIVE PACKET 1000,RECEIVE
Send.bat -
Kermit -F NUL,SET BAUD %1,SET PORT %2,SET PARITY %3,SET
RECEIVE PACKET 1000,SEND %4
Make sure you have the docs for the Kermits for details
on each parameter. The MS-Kermit parameters can be
abbreviated. Check the docs for details.
Need more coaxing? Well try windowed Xmodem. This
Xmodem variant employs a window, like Kermit, in order to
speed up throughput. It certainly will provide faster
transfers of those files.
3.15.1.16 WXmodem
Description : WXMODEM (wxmodem.com)
Receive command line : wxmodem r %3 %2 %1 none W
Send command line : wxmodem s %3 %2 %1 none W
Xfer OK code : 0
Description : WXMODEM (superk.com)
Receive command line : superk p%2 s%1 rw f %3
Send command line : superk p%2 s%1 sw f %3
Xfer OK code : 0
NOTE: If you want to send and receive in BATCH mode so
your users won't have to type in a filename on their end
during downloading, replace the 'rw' and 'sw' with 'rwb'
and 'swb' respectively. BUT be sure to tell them this or
you'll have alot of aborted transmissions since the
single file mode and batch mode are incompatible!
114
3.15.1.17 Lynx
Ah-ha, you want something fast and simple. Might I
suggest Lynx. It's hot off the presses and real simple to
use. Gets decent xfer numbers and offers crash recovery
like Zmodem. It defaults to Com1 and your current baud
rate. What can be simpler. In a word, nothing.
Description : LYNX
Receive command line : lynx r /s /%2 /%1 /r %3
Send command line : lynx s /s /%2 /%1 /r %3
Xfer OK code : 0
NOTE: the /s parameter is new to Lynx version 2.20 (I
believe) and later. If you use a version before that,
don't use the /s or it won't know what that parameter is
and Lynx will abort. If you do have a newer version, the
/s makes a nice fancy full screen with lots of
information on it.
3.15.1.18 MpT
Lynx is a discontinued protocol and was replaced with
Puma, which then changed it's name to MPT.
Description : MPT v1.10
Receive command line : mpt e%4 r %3
Send command line : mpt e%4 s %3
Xfer OK code : 0
This is how i've got my MPT.EXE setup with the MPTSET.EXE
program:
COM port : 1 Beep when finished : No
UART baud : Current Use 16550A FIFOs : Yes
Eff. baud : 14400 CTS/RTS handshake : Fast
COM1 base : 3F8 DCD monitoring : Yes
COM1 irq : 4 Modem hangup : No
COM2 base : 2F8 Wait for key : No
COM2 irq : 3 RLE compression : No
COM3 base : 3E8 Kill aborted files : Yes
COM3 irq : 4 Current date stamp : No
COM4 base : 2E8 Overwriting files : No
COM4 irq : 3 Resuming transfers : Yes
CDS log file = none
DSZ log file = none
115
3.15.1.18 HyperProtocol
Description : HyperProtocol
Receive command line : hyperp port:%1 display:off
compress:off receive %3
Send command line : hyperp port:%1 display:off
compress:off send %3
Xfer OK code : 0
NOTE: because this protocol takes alot of LENGTHY
commands, if you have a high speed modem, then a more
efficient way of setting up this protocol would be to
call it from batch files. Do it like this:
Description : HyperProtocol
Receive command line : hyperp-r.bat %1 %3
Send command line : hyperp-s.bat %1 %3
Xfer OK code : 0
The optimization here for high speed configurations is
FOR high speed users, you might want to have to setups
for the protocol for normal users, and those who are on
at high speed.
differences are:
checktype=checksum instead of CRC, it's faster... you're
modem should be doing the error correcting! If you could
turn it off the transfer would be even faster.
handshake=rts/cts instead of the default XON/XOFF.
XON/XOFF is software and slows things down!
hyperp-r.bat
hyperp port:%1 checktype:checksum handshake:rts/cts
compress:off display:off receive %2
hyperp-s.bat
hyperp port:%1 checktype:checksum handshake:rts/cts
compress:off display:off send %2
the "%2"'s in the batch file are correct, since it is
the second argument being sent TO the batchfile... not
the same numbers/relation as the % parameters in the
WWIV setup fields.
3.15.1.19 Megalink
Description : MEGALINK
Receive command line : mlink port %2 speed %1 rm %3
Send command line : mlink port %2 speed %1 sm %3
Xfer OK code : 0
116
3.15.1.20 Punter
Description : PUNTER
Receive command line : punter r p%2 b%1 %3
Send command line : punter s p%2 b%1 %3
Xfer OK code : 0
NOTE: Punter is a protocol you're probably not familiar
with. It is used mainly on the Commodore 64 (YUK!). But
if you support it or plan to, then you'll want to have it
for them to use.
3.15.1.21 rC_Modem
Description : rC_MODEM v2.72 (CCHLL-MODEM)
Receive cmd line : rcmodem /p=%2/rx/b=%1/bbs/n=0/shh %3
Send cmd line : rcmodem /p=%2/tx/b=%1/bbs/n=0/shh %3
Xfer OK code : 0
3.15.1.22 SeaLink
Description : SEALINK (clink.com)
Receive command line : clink /p%2 /b%1 /o R %3
Send command line : clink /p%2 /b%1 /o T %3
Xfer OK code : 0
3.15.1.23 SeaLink
Description : SEAlink (PCZ.EXE v4.05.90)
Receive command line : pcz %2 %1 rs %3
Send command line : pcz %2 %1 ss %3
Xfer OK code : 0
3.15.1.24 TASY
Description : TASY v4.06BETA
Receive command line : tasy %2 R %3
Send command line : tasy %2 S %3
Xfer OK code : 0
NOTE: Tasy is a lesser known high speed transfer protocol
only... I haven't had much luck with it at all.
3.15.1.25 Tmodem
Description : Tmodem v2.00
Receive command line : tmodem -b %4 -p %2 -l %1 -r
117
Send command line : tmodem -b %4 -p %2 -l %1 -f %3
Xfer OK code : 0
NOTE: the documentation for TMODEM doesn't seem to
mention anywhere how to pass the receiving filename to
the program... i.e. it gets it from the sending copy of
TMODEM via batch. Because of this, people can send more
files then the BBS will know about and, of course, not
give them credit for it. So I'd get in the habit of
routinely doing a //UPLOAD in your upload dirs if you use
this protocol, or send mail to the authors asking them to
allow it to ONLY receive a file at a time if specified,
or you might just want to try putting a "%3" at the end
of the receive command line to see if it will work and
stop people from sending more then one file.
Multiple Languages
3.16 Multiple Languages
Beginning with v4.23, WWIV offered the sysop the
ability to offer multiple languages. In order to do this,
the sysop must define the languages and the directories
where the language is to be found in the INIT program.
For example, one might have French and Spanish in
addition to English. English is the default language and
the menus and help files for it should be placed in the
G-FILE directory. The menus and help files for each of
the other languages that you chose to support should be
placed in the directory that you identified in G-FILES.
If you have multiple languages supported, the user will
be asked to chose his language. The user may also change
language in the Default area of the BBS.
Sysops have volunteered to create language files for
certain languages and these are available on most of the
support BBSes. When language files seem to be complete,
we often distribute them with the software.
118
WWIV Source Code Documentaion
╔═══════════════════════════════════════╗
║ WWIV Source Documentation ║
║ Copyright (c) 1988-1991 by Wayne Bell ║
╚═══════════════════════════════════════╝
4.1 Source Distribution
Although this chapter is being included with the pre-
compiled (shareware) version, its primary use is for
those sysops who have registered. Unregistered sysops
may also learn from it and may some of the advantages of
being registered--advantages which include but are not
limited to the availability of certain options discussed
in this chapter.
The source code is ONLY available to people who have
registered; IT IS NOT FOR ANY OTHER PEOPLE. As can be
seen in the license agreement in Chapter 3 as well as by
the notice at the beginning of all the source files,
DISTRIBUTION OF THE SOURCE BY ANYONE EXCEPT BY WAYNE BELL
OR A SOURCE DISTRIBUTION SYSTEM (SDS) AUTHORIZED BY ME IS
PROHIBITED. Even if your best friend mails a registra-
tion check right before your eyes, he must get the source
from ME or from an SDS BBS, you may not give him a copy.
If you have somehow gotten ahold of the WWIV source code
WITHOUT either downloading it from my BBS, downloading it
from an SDS BBS, or receiving it in the mail from WWIV
Software Services, then you are hurting the cause of good
software. If you continue to possess and use this source
code, you may place yourself and the person from whom you
received it in legal jeopardy. If it turns out that it
is not possible to control distribution of the source by
reasonable means, you will probably find that the source
WILL NOT BE AVAILABLE for future versions.
The source is provided to registered sysops so that it
may be modifed to suit their own needs and desires. You
may not give out a copy of your modified program to
anyone (either the source or compiled).
4.1.A Distribution of Changes to Source Code
This does not mean, however, that you can't distribute
CHANGES. You may not distribute a copy of WWIV that you
have compiled, ever, or any major portions of the source
code without expressed permission of Wayne Bell. If you
would like to help another registered sysop modify their
code, you must follow these procedures:
119
One registered WWIV sysop can legally have another regis-
tered WWIV sysop install mods for him. The rules for
doing this are:
1. Both the person doing the modding, and the person re-
questing it, must be registered WWIV sysops.
a. This is verified by having both the requester and
the modder email WWIVnet 1@1 from their account
on an SDS, where they have access to the source
code (ie, are on the list).
b. The requester and modder must coordinate before-
hand on when this is to be done.
c. The email will say, "I wish to do modding for Joe
Blow #xxx @yyyy", or "I want Jane blow #zzz @aaaa
to do some modding for me." where both accounts
listed (giving name, user-number, and
systemnumber) are accounts on an SDS, with access
to the source code. The two emails must be sent
within a week or two of eachother.
d. After both emails are received, and registration
is verified [actually, registration will have
been verified beforehand, due to their having SDS
access] then WWIVnet 1@1 will email back to both
saying it has been approved. (Approval here
relies only upon registration, and will not be
denied if both are listed for SDS access.)
2. The modder may start out either with the unmodified
source code to the latest version of WWIV, or from a
version of the source code sent by the requester.
3. The modder will then make available to the requester the
modified source code, plus, optionally, a compiled .exe
(but may not only give the .exe, must make available the
modified source also).
4. For purposes of sending source code and/or compiled
.exe's in 2 and 3 above, this must be done either
directly (eg, call up each other in a term program
and xfer it there, or hand deliver it on floppy), or
via the BBS of either requester or modder, where the
BBS is that system on which that person is account #1,
and in that case, only in an xfer directory where only
the requester and modder have access (via DAR
restriction). No other remote sysops or co-sysops
may have access to that directory.
5. Neither Wayne Bell nor WWIV Software Services are
120
responsible for enforcing any modding arrangements. If
the modder never actually ends up doing it, don't come
crying to us.
You may also distribute changes (commonly called mod-
ifications, or "mods") you made to the source, so that
other people with the source may make the same changes.
For example, suppose you made a modification to function
sublist() in BBS.C, and wanted to allow other people to
make the same modification. Now, since function
sublist() is under 50 lines (rather short), you may just
go ahead and distribute the entire procedure, telling
people they need to replace function sublist() in BBS.C
with your new one.
Suppose, on the other hand, that you have made modifica-
tions to function scan() in MSGBASE.C. Since function
scan() is around 350 lines, it is unlikely you will have
made modifications to the entire thing. Most likely, it
will be just a block of code, maybe 50-75 lines long,
that contains the bulk of your changes. Just pull out
those blocks that you have made changes to, and
distribute those, along with a short note telling which
lines to delete, and where to insert your new ones.
4.1.B Permission to distribute source code changes
Suppose, instead, that your modification required you to
insert 3 new variables, and put in a few lines of code in
4 of the source files. DO NOT JUST DISTRIBUTE ALL THE
FILES YOU CHANGED. Instead, document where you made the
changes, and list where to insert (or delete) the few
lines of code you did change. If your modifications
would require you to distribute over 100 lines of the
initial BBS code, you should contact Wayne Bell (1@1)
before you distribute it, sending me a copy, and asking
if it's OK. Most likely it will be.
If you have any questions about this policy, or how it
might apply to you, feel free to contact Wayne Bell at
Amber BBS at 310-798-9993 300/1200/2400/V.32bis/HST/24
hrs.
You may wonder why I have put such restrictions on
distribution of changes. The main reason is the reckless
abandon some people have exhibited in just doing whatever
they damn well pleased with earlier versions of WWIV.
I've heard of people making changes to the code,
inserting profanity in comments throughout the program,
and distributing that as if it were a perfectly normal
121
copy of WWIV. This is what I want to prevent.
As long as your changes don't contain a significant
portion of the BBS source in them, I will probably have
no problems about your distributing them. But, do check,
BEFOREHAND! The old adage that "It is easier to ask for
forgiveness than it is permission" does not apply in this
case, and you could be liable for legal damages if you do
not follow this policy.
Also, any changes that you do distribute, I'd appreciate
it if you'd upload a copy to my system, so that there can
be a sort of "central area" where people can find things.
About INIT.EXE. As you can see, I'm not distributing the
source to the init program. The source to the init
program is not available to anyone, nor is the source to
the network program available.
/******************************************************/
4.2 Compiler versions
There. Now that I'm through with that, I can get about
describing the source a bit. First, how to set
everything up so that it compiles. WWIV will compile
correctly under Turbo C++ v1.0 to 3.0, and Borland C++
v2.0. It will not compile correctly under Turbo C v1.0 or
v2.0, and it will not compile correctly under Microsoft
C, or any other C compiler. Using TC++, you get to use
overlays, and a more powerful make utility, and
everything is really a lot nicer. Therefore, I really
would suggest that people upgrade to TC++, even if you
don't use any of the C++ extensions.
Borland C++ v2.0 is even better. It supports
pre-compiled header files, has a more powerful make, and
a couple other neat things. The upgrade (for me) to
BC++2.0 was $99. It was worth it. Compiling the BBS
under BC++ (with the pre- compiled header files and new
make) is SIGNIFICANTLY faster than under TC++ (4:12 vs
6:30 for compiling the whole BBS on my 20MHz 386, 35%
faster).
Needless to say, that creates quite a few different
environments that everything has to work under.
Therefore, I am NOT going to describe how to get WWIV to
compile under the Turbo C integrated environment. There
are just too many things you have to do, and too many
ways you can mess up, especially if you are not very
122
familiar with it. So, if you want to compile using the
integrated environment, you're on your own.
4.2.A Using the make utility
My preferred method of compiling is therefore using the
make utility. There are two makefiles distributed -
'makefile.tcc' and 'makefile.bcc'. The .tcc file is for
TC2.0 and TC++. The .bcc one is for BC++2.0. Whichever
one is applicable to your compiler, copy it to
'makefile.mak'. Once you make a few simple modifications
to the makefile.mak file, everything will magically
compile optimally, including overlays for TC++ or BC++,
and using pre-compiled header files with BC++. But,
remember: if you upgrade from one version of Turbo C to a
later version, you will have to delete all your .obj
files.
First, un-zip the WWIV source archive into a directory of
it's own. DO NOT put it in your Turbo C directory. I
(Sam) set mine up like this:
└───BORLANDC
├───BIN
├───INCLUDE
│ └───SYS
├───LIB
├───BGI
├───CLASSLIB
│ ├───INCLUDE
│ ├───EXAMPLES
│ ├───LIB
│ └───SOURCE
├───EXAMPLES
│ ├───STARTUP
│ └───TCALC
├───DOC
└───WORK <-------
|
I put all of my source files in c:\borlandc\work. You
will need to edit makefile.mak to reflect this.
By putting the source files in their own directory like
this, you keep them separate from all your other files.
It makes it much easier to manage. Wayne uses a slightly
different method, which is discussed below.
Then, copy either makefile.tcc or makefile.bcc to
'makefile.mak'.
123
If you are using the makefile.tcc file, you'll find that
the first section looks like:
4.2.B First section of Make file
#########################################################
#
#
# Specify directories to use
#
!if $(__MAKE__) >= 0x0300
TC = d:\tcpp
!else
TC = c:\tc
!endif
OBJ = obj\\
EXE = exe\\
The first part up there attempts to determine if you are
using TC1.5/2.0 or TC++. You will need to edit the
appropriate "TC = " line to point to your Turbo C
directory. If you have Turbo C++ installed in c:\cpp,
then set the first TC line to be "TC = c:\cpp". If you
have Turbo C v2.0 installed in "d:\c", then set the
second TC line to "TC = d:\c".
The next statement is "OBJ = obj\\", which points to the
directory to put the object files (.obj) in. I prefer to
put them off in a separate directory, since you don't do
anything with them directly.
To use this setup, from your main WWIV directory, type
"md obj" and all the .obj files will go there. If you
want them to just stay in the same directory as the
source code, then change the line to "OBJ = .\\"
The final line you will have to worry about is "EXE =
exe\\".
This specifies where to put the executables (bbs.exe and
return.exe). You will most likely want to leave those in
the same directory as the source files, so change it to
"EXE = .\\"
If you are using the 'makefile.bcc' file, you will find a
section at the top listing paths. It sets SRC, OBJ, and
EXE. Set them the same as in the 'makefile.tcc', only
you don't need the "\\" on the end. You don't need to
124
tell it where the BC++ directory is.
Now, whenever you want to re-compile any changed files
and re-link the executables, go to the WWIV source
directory and type "make".
If everything is set up correctly, the source should
compile without any errors or warnings. If you have any
errors or warnings, you have done something wrong. Go
back and check to ensure that you have the directory
variables set up correctly.
If you should get an error message from the Linker saying
that the command lines are too long, this may be because
you have indicated your output directories as
subdirectories. Try moving them to simply C:\exe and
C:\obj respectively.
4.2.C FCNS.H
Under TC++ and BC++, I have an extra option in the
makefile - it creates the fcns.h file based upon your
source files. To re-create the fcns.h file just type
"make fcns". This is what I have used to create it in
the first place, so if you run it on an unmodified copy
of the source, it should end up being the same.
Additionally, if you add additional source files, this
will include the prototypes from those files also
(assuming, of course, that you use the same function
declaration style that I do - the technique of making the
function prototypes is pretty dumb, but it works).
BEFORE using the "make fcns" option, however, you must
compile the strip program. Just say "bcc strip.c" or
"tcc strip.c" (depending on which compiler you are
using).
/******************************************************/
4.3 General Comments about the source
The rest of this document is to describe some general
things about the source, and is not meant to describe how
to use Turbo C. If you need help with the TC integrated
environment, look through the manual, and play around
with it a bit. Unfortunately, I haven't updated this
section in a long time, and so most of the .c file
descriptions are out of date. The function and global
variable declarations should still be fairly close,
though. If you have problems, try contacting a WWIV
support system.
125
4.3.A Header files:
VARDEC.H - holds the type declarations and #define's for
the BBS.
FCNS.H - holds function declarations for all functions in
the BBS.
VARS.H - Holds declarations (and externs) for all global
variables.
NET.H - holds declarations for WWIVnet.
All the BBS files (except bbs.c) have, after the
copyright notice, #include "vars.h" #pragma hdrstop
Any additional source (.c) files you add should include
vars.h, and then have the #pragma hdrstop after that (the
#pragma is for the BC++ precompiled header files). Note
that vars.h includes several standard C header files, so
you won't have to manually include those yourself.
4.3.B Main source files:
BBS.C - Main BBS files - main menu, main DL menu, and
procedures to log on a caller. If you add new functions
to the main menu, you'll need to modify some procedure in
BBS.C to have a call to execute it.
COM.C - Contains all the com-port routines - input/output
to the com port. This also has all the combined
com/screen routines - like, to output to both the screen
and com port, the routine is in here. ANSI
interpretation is also in here, along with standard
"input a line" functions.
CONIO.C - Contains console I/O routines, to output a
character to the screen, and get a character from the
keyboard. You'll notice I do a lot of _AH=;
geninterrupt(), instead of using the console I/O
functions in TC 1.5. This is because most of those
functions weren't in 1.0, and I wrote these routines
under TC 1.0. Also, the code for top of screen data, and
chat, and validating a user are in here, along with sysop
key interpretation (f-keys).
XFER.C - Contains most of the DL functions, anything from
the transfer menu will be in here (but the actual
transfer main menu is in BBS.C).
126
SR.C - Send/Receive files. Generic processing here.
SRRCV.C - internal X/Ymodem receive files.
SRSEND.C - internal X/Ymodem send files.
UTILITY.C - Utility functions, not expressly relating to
the BBS. Such as free disk space, time & date, initial-
ization, reading & writing to the user list.
SYSOPF.C - Some generic sysop commands and utilities.
EXTRN.C - external program interface. Runs external
programs, but re-directs all I/O (through dos calls) to
go to BBS routines instead of just to the console.
MSGBASE.C/MSGBASE1.C - Message base, e-mail. Entering
message, scan prompt, sending e-mail, posting, reading
e-mail, multi-mail.
BBSUTL.C - Some generic BBS utility functions.
BBSUTL1.C - Some more generic BBS utility functions.
CONNECT1.C/NETSUP.C - handle networking utilities.
LILO.C - handles logging in and logging out.
MISCCMD.C - handles various miscellaneous functions.
XFEROVL.C - handles miscellaneous xfer commands.
XINIT.C - handles first-time only initialization of the
BBS.
A lot of other files are pretty self-explanatory -
MODEM.C, SHRINK.C, BATCH.C, CHNEDIT.C, DEFAULTS.C,
DIREDIT.C, GFILES.C, GFLEDIT.C, MULTMAIL.C, SUBEDIT.C,
TEDIT.C, UEDIT.C, VOTEEDIT.C, XFERTMP.C, NEWUSER.C
If you don't see anything listed here, find whatever
seems to be closest, and search that file. Or, if you
know the function name, check in 'fcns.h' to find which
.C file it is in.
4.3.C Common functions:
char getkey() - waits for, and returns one character of
input void input(char *s, int len) - inputs len
characters (uppercase only) to string s.
127
void inputl(char *s, int len) - same as input, but allows
lowercase.
int yn() - returns 1 for yes, 0 for no. C/R=no
int ny() - same as yn(), but C/R=yes
void ansic(int n) - selects a color (if user supports
ANSI). n is 0 to 7.
char onek(char *s) - pass it a string, and it allows the
user to hit one key in the string, which it returns. ie,
you want Delete, Ignore, Retry, so you do onek("DIR"),
and it will return D, I, or R. If the user hangs up, it
returns the first character, so if one option is Quit,
have the Q first.
void prt(int i, char *s) - selects color i, prints string
s, returns to color 0.
void nl() - does a carriage return/line feed - go to new
line.
void npr(char *, ...) - works the same as printf() does,
only puts the output to the com port, also.
void pl(char *s) - prints string s, with a cr/lf on end
void outstr(char *s) - prints s, no cr/lf on end
void pla(char *s, int *abort) - prints s, allowing abort.
Pass pointer to an integer, if user aborts, *abort will
be 1, and output is terminated. You MUST initialize
*abort to zero.
void outs(char *s) - outputs a string, to the screen only
(not to remote user).
void tleft(int x) - updates time left display at top of
screen. If x is non-zero, the user will be hung up on if
his time is expired. If x is zero, time display will be
updated, but user won't be hung up on.
void topscreen() - updates top of screen info.
char *mmkey(int n) - inputs data for the main menu. see
odc below.
4.3.D global variables:
int using_modem - is non-zero if there is a remote user
128
int hangup - is non-zero if the user has hung up. MUST
BE AN EXIT CONDITION FOR ALL LOOPS THAT DO I/O.
userrec thisuser - holds information about the current
user
int usernum - holds user number of current user
configrec syscfg - holds system configuration. SHOULD
NOT BE MODIFIED IN PROGRAM. The data in here should be
changed ONLY in init, the main BBS should use this as
READ-ONLY.
statusrec status - holds current stats information.
char odc[81] - If you want to have an input like the main
menu (ie, certain characters mean get a second character,
ie, you hit O at main menu, it goes right to that
function, hitting / will get another character), set odc
to a string containing the characters you wish a second
character for, then call mmkey(2) - will return a pointer
to a string for the data entered.
ie, if you want to enter a number 1-19, you have to get a
second character if the user hits one, so you'd say:
char *ss;
strcpy(odc,"1"); ss=mmkey(2);
Then ss can point to a string "1", "5","15","1X",
"G","19", etc.
char curspeed[80] - string holding current baud rate in
use, can be "KB","300","1200","2400","9600", or "19200".
char crttype - screen mode currently active (7 means
monochrome display).
4.4 Contacting the Author
OK, that's all I can think of for now. Any questions, or
comments, please f-back me on my system, 310-798-9993--
300/1200/2400/V.32bis/HST/24 hrs. Anything you think I
left out or could expand upon more, tell me, and I'll
have that in the next version of the source docs. If you
wish to write me via US mails, write to Wayne Bell care
of
WWIV Software Services
PO Box 720455
McAllen, TX 78504-0455
129
4.5 Defines in v4.23
v4.23 offers many different options to the registered
sysop. Many of these options are in the form of defines.
A define is ON when it is uncommented (ie not surrounded
by /* and */) and is OFF when it is commented. To
facilitate the registered sysop's locating these defines,
they have been gathered together at the end of VARS.H.
What follows is a brief explanation about what each of
the defines accomplishes so that you may determine which
ones you wish to include.
In v4.24, most of the items that were defines have
been moved into the WWIV.INI file as explained in section
of the documentation. The discussion below is left
in the documentation because it may provide help
regarding those functions still in 4.24 as defines and
because it may help you to better understand some of the
options in WWIV.INI.
In the discussion below, "Status" will be either
necessary or toggle. A Status of necessary indicates
that the define MUST exist and MUST be ON. You may
change the values that are used but you must be certain
that the function is not commented out else you will
definitely have problems. On the other hand, the status
of toggle refers to defines that may be either "on" or
"off." The board will function either way.
4.5.A #define TOPCOLOR 0x1f
Status: Necessary
This is the #define that determines the color of the top-
screen information. This is a hexadecimal number, where
the first digit is the background color, and the second
digit is the foreground color.
The colors are as follows:
0 = Black 8 = Dark Gray
1 = Blue 9 = Light Blue
2 = Green a = Light Green
3 = Cyan b = Light Cyan
4 = Red c = Light Red
5 = Magenta d = Light Magenta
6 = Brown e = Yellow
7 = LightGray f = White
The background color (the first digit) may be anything in
the left column, and the foreground color (the second
digit) may be anything in either column. Note that
130
making both the same will make the topscreen unreadable.
Depending on display adapter and monitor, there may be
other illegible combinations as well. The default is
white on blue.
4.5.B #define F1COLOR 0x1f
Status: Necessary
This #define governs the color attributes of the local
sysop F1 user editor window. The colors are selectable as
described for the TOPCOLOR #define.
4.5.C #define LINE_EDIT_COLOR 0x70
Status: Necessary
This #define determines the color attributes of editable
fields (for instance the current field in the F1 user
editor). The colors are selectable as described for the
TOPCOLOR #define.
4.5.D #define CHAT_SELECT_COLOR 0x5f
Status: Necessary
This #define determines the color attributes of the chat-
name selector window (what you see when you hit F10). The
colors are selectable as described for the TOPCOLOR
#define.
4.5.E #define MAIL_WHO_FIELD_LEN 35
Status: Necessary
When listing out email, the screen is broken in half. The
left half displays who the mail came from and the right
half shows all or part of the title of the mail. This
#define determines the width of the part that shows who
the mail is from. Increasing this number means that the
area reserved for the title is shortened.
4.5.F #define OPT_CALLBACK
Status: Toggle
This #define, if not commented out, enables callback
verifi- cation. Look in NEWUSER.C to see more #defines
associated with callback verification. This option can
be used with- out OPT_AUTOVAL, but OPT_AUTOVAL cannot be
used without this option. Please refer to discussion at
131
30.5.G and 30.6. You have the ability to define a
TRASHFON.TXT which is similar in function to the
TRASHCAN.TXT except that it is for phone numbers only.
The system will NOT try to call a number listed in the
TRASHFON.TXT. Numbers should be listed one per line and
must end with END.
4.5.G #define OPT_AUTOVAL
Status: Toggle
This #define, if not commented out, enables a
full-featured auto-sysop-validator in NEWUSER.C. Do not
leave this #define'd and >also< #define OPT_SIMPLE_ASV
(see below). Only one of the two autoval options should
be #define'd. Of course, you may comment out both and
have no ASV if that is desirable. This OPT_AUTOVAL
requires use of OPT_CALLBACK.
The OPT_AUTOVAL define checks to see if the person
seeking sysop autovalidation is listed in one of the
networks to which you belong. If he is not there, then
auto-validation is not available on this call. Please
see additional dis- cussion in this chapter at 30.6.
4.5.H #define OPT_SIMPLE_ASV
Status: Toggle
This #define, if not commented out, enables a very simple
ASV, where the settings for the Alt-F10 key (if not
standard) are used for visiting sysops. In addition, the
user gets an exemption of 9 (post and upload). Do not
enable this #define >and< enable OPT_AUTOVAL - only one
should be used, at most. The OPT_SIMPLE_ASV does not
check any of the network listings to determine if access
should be granted on the first call. The ALT F10 key, to
work for simple ASV must be set to SL greater than that
of newuser and less than 100. The OPT_SIMPLE_ASV also
will print ASV.MSG (ANS or B&W) from GFILES; however, you
must create the file yourself. Typically the file will
say something like, "You have been validated as a
visiting sysop. If you have lied about your sysop
status, your account will be deleted. If you entered
YES, by mistake, please tell the sysop.
132
4.5.I #define OPT_EXTRA_COLOR
Status: Toggle
Adds some extra color at the main prompts and so forth.
If the board looks a little bland, make sure this line is
not commented out.
4.5.J #define OPT_TWO_WAY_CHAT
Status: Toggle
This #define, if not commented out, enables two-way chat
if the caller supports ANSI.
4.5.K #define OPT_SHOW_HIERARCHY
Status: Toggle
If not commented out, this #define will show a "tree"
view of the conferences and subs/dirs when editing
conferences, conferences at the top level, and then all
the subs/dirs in that conference.
4.5.L #define OPT_POSTTIME_COMPENSATION
Status: Toggle
If not commented out, this #define will restore users'
time for posts. If you have a person that posts a LOT,
this can greatly extend their available time online.
4.5.M #define OPT_NEW_EXTRACT
Status: Toggle
If commented out, then when you extract posts/mail, they
will go to the GFILES dir, or to a path you specify. If
not commented out, then you get a menu with a few more
choices on extraction, and may extract posts directly to
a transfer area.
4.5.N #define OPT_IDZ_AS_DESCRIPTION
Status: Toggle
WWIV now supports FILE_ID.DIZ and DESC.SDI files as file
descriptions. If this #define is commented out, then the
description in the description file is put entirely into
the extended description, else the first line of the des-
cription file is used for the file description in WWIV
133
and the other lines go into the extended description.
4.5.O #define OPT_CHAIN_REG
Status: Toggle
If not commented out, this #define allows people to
"register" chains. In other words, a user might buy a
favorite chain (door) for a system, and then would be
listed as the person who registered it.
4.5.P #define OPT_SETLDATE
Status: Toggle
If not commented out, the user is asked for the date
specification when doing a file newscan after message
base newscan.
4.5.Q #define OPT_NEW_CHATSOUND
Status: Toggle
This #define, if enabled, gets rid of the old "screecher"
chat and replaces it with a somewhat more aesthetically
pleasing sound (which can be easily edited in the source
code).
4.5.R #define OPT_FAST_SEARCH
Status: Toggle
If not commented out, this #define enables a fast binary
search of a filename table when searching for dupefiles
on uploads. This can cut the time involved for such a
search from several minutes to about 1 second. The
ALLOW.DAT can be created originally by running WWSORT.EXE
which is supplied to registered users with v4.23.
//AE at mainmenu or dlmainmenu (or //ALLOWEDIT), enables
adding or deleting filenames from ALLOW.DAT (if
OPT_FAST_SEARCH #define'd).
4.5.S #define OPT_PACKSCAN_FREQ
Status: Toggle
If not commented out, this #define allows file requesting
via PackScan's FILEREQ.EXE program, when reading SSMs
that inform of uploads on other boards.
134
4.5.T #define OPT_MAIL_PROMPT
Status: Toggle
If this #define is enabled, the available options are
shown at the mail read prompt.
4.5.U #define OPT_CAN_SAVE_SSM
Status: Toggle
If enabled, this #define allows people to not auto-delete
their short messages. Be aware: if you get lots of short
messages, then you may want to disable this option, or
you will get a Y/N prompt for each short message.
4.5.V #define OPT_REGISTRATION
Status: Toggle
If enabled, this will allow the sysop to set registration
and expiration dates for individual users in UEDIT ('X'
being the key to edit those fields). Primarily of use to
systems that ask a registration fee for higher access for
an interval of time or other similar scenarios.
4.5.W #define OPT_FORCE_FEEDBACK
Status: Toggle
If enabled, then a new user who does not leave feedback
to the sysop is not validated and the software hangs up
on him after sending an optional file message (NOFBACK).
Thus, if the sysop wants to tell the user why he is being
logged off, the NOFBACK.MSG or NOFBACK.ANS or NOFBACK.B&W
will be shown as appropriately before the carrier is
dropped. When this option is enabled, the new user would
have to relog on again, re-entering his information
before he could use the BBS.
4.5.X OPT_MSG_TAG_ABILITY
Status: Toggle
This option permits the sysop to add BBS tags to posted
messages. This method ensure that Taglines begin with ^D
(CTRL D) characters to that the optional lines setup in
defaults and in BOARDEDIT will work correctly. This
should be extremely useful for those boards that are on
networks.
135
If tags are permitted on a subboard (as defined in
BOARDEDIT), then, if a tagfile is located, the tag will
be added to the message. The order that the software
looks for tags is:
a) net_data\<subtype>.tag
b) net_data\general.tag
c) data\<subtype>.tag
d) data\general.tag
e) gives up, couldn't find a usable tag file
4.5.Y OPT_SLASH_S_Z
Status: Toggle
This option allows the Sysop to turn on or off the
ability for user's to use /S and /Z. /S allows user to
obtain a file listing of all files available to him as a
download- able file. Since this took a lot of time for
sysop's having large hard disks and/or CD-ROMS, it was
necessary to have a way to turn off the option. /Z makes
a download- able file of all new, unread messages that
the user has access to; again, because this often took a
long time, it has been made into an option.
4.5.Z OPT_FSED_EXT_DESC
Status: Toggle
If enabled, allows use of fullscreen editors for extended
descriptions (if the user has a FSED enabled in
defaults).
4.6 OPT_AUTOVAL and OPT_CALLBACK
1. Feature calls back new users at a phone number they
specify.
2. Checks new users voice and data phone numbers against
existing users and advises sysop of duplicates. The
user is allowed; but the sysop is informed.
3. Checks new users voice and data phone numbers against
trasfon.txt. If the number is in there it hangs up
on him. Got a problem user, put his number in
trashfon and he'll never be able to register from
that number again.
4. As a fringe benefit the system can call the sysop
back at any number once he logs on to his system.
136
5. The sysop autovalidation is not a stand alone
feature. It requires the use of the callbak
verification to validate the data number.
6. Related defines:
#define CALLBAKSL 10 added to newusersl
#define CALLBAKDSL 10 added to newuserdsl
#define FORCE callbak is not optional
#define SYSOPSL 80 added to newusersl
#define SYSOPDSL 80 added to newuserdsl
#define AREACODE "319-" dash required
#define PASSWORD1 "kidding" bypass callbak Upper only
#define PASSWORD2 "kidding2" bypass callbak Upper only
#define PRELCL "" before dial local
#define POSTLCL "" after dial local
#define PRELONG "" before dial ld
#define POSTLONG "" after dial ld
7. This option also employs a callback.msg which belongs
in GFILES. The message should provide instructions
to the user regarding what to expect for the callback
option to work.
ZIP-CIT is a sub dir in data and gets all the files.
8. The CALLBACK option will work without OPT_AUTOVAL;
however, the OPT_AUTOVAL requires the CALLBACK option
to be enabled. OPT_SIMPLE_ASV does NOT require the
callback option.
The defines in 4.23 were moved to the WWIV.INI file
in v4.24 to make many of the options available to those
without compilers and those who used the shareware
version.
137
Where to go for help
=============================================
| The Official WWIV Support Bulletin Boards |
=============================================
Last Updated: 05/15/94 Latest For WWIV v4.24
5.1 --> CORE Support Systems <--
210-631-5841 The Dragon's Den [81006] Filo
BPS: 38400 !$ HD Storage: 512 (102) Wig De Moville
SDS, AutoVal August, 1988 McAllen, TX
WWIVnet: 2050 (GC4) WWIVLink: 2050 IceNET: 2050
704-525-1491 The Funny Farm (East) [90627] Benny Hill
BPS: 38400 <!$ HD Storage: 340 (67) Joseph Rybaczek
SDS, ASV October, 1989 Charlotte, NC
WWIVNet: 7400 (GC6) WWIVLink: 17400 Icenet: 7400
314-644-5777 The Fellowship [90209] Tolkien
BPS: 38400 <!$ HD Storage: 410 (17) Jon Rickher
Star, PCP-MOSLO March, 1990 St. Louis, MO
WWIVnet: 3456 (GC2) WWIVLink: IceNET:
716-684-7939 The BoardWalk BBS [10930] Pillsbury Dough Boy
BPS: 38400 <!$ HD Storage: 84 (35) Jason Bittle
Star, ASV September, 1991 Buffalo, NY
WWIVnet: 7652 WWIVLink: 17650 (AC) IceNET:
209-491-0782 Anything Goes BBS [20791] Chris
BPS: 38400 !$ HD Storage: 137 (27) Chris Yarnell
ASV, SDS March, 1992 Modesto, CA
WWIVNet: 2914 WWIVLink: 12914 IceNET: 2914
TERRANet: 2914 TARDISNet: 2914 ChaosNET: 2914
210-659-7267/3541/9157 Sam's BBS [21121] Sam
38400 <!$ HD Storage: 4.9 Gigs (25) Sam Morris
ASV/GSA November, 1993 Randolph AFB, TX
WWIVnet: 2077 WWIVLink: IceNET: 2077
602-942-9228 Moon Valley Triangle [11024] Lance Halle
38400 <!$ HD Storage: 280 (25) Lance Halle
SDS, ASV, PCP-ARPHO November, 1993 Phoenix, Arizona
WWIVnet: 6211 WWIVLink: IceNET: 6211
138
5.2 --- > NON-CORE Support Systems <---
310-470-6869 Black Dragon Enterprises [90109] Black Dragon
BPS: 38400 <!$ HD Storage: 60 (?) Dieter Stussy
PCP-CALAN March, 1990 Los Angelas, CA
WWIVnet: 3080 WWIVLink: 13080 IceNET:
716-433-7904 Nite Flight BBS [91117] Ghost Rider
BPS: 38400 <!$ HD Storage: 65 (21) Mike Rostas
Star, ASV March, 1990 Lockport, NY
WWIVnet: 7650 WWIVLink: IceNET:
309-452-2838 Adventurer's Corner [10419] ShadowSpawn
BPS: 16800 <!? HD Storage: 50 (2) Scott Kuntzelman
ASV September, 1990 Illinois
WWIVnet: 3900 WWIVLink: 13900 (ZC3) IceNET: 3900
510-521-9710 The 'Unsinkable" RMS Titanic BBS [10106]
Captain "EJ" BPS: 38400 <!$ HD Storage: 320 (?)
Eric William Joy ASV, Star, PCP March, 1992
Alameda, CA WWIVnet: 5057 WWIVLink: IceNET:
011-81-611-733-1079 Shinobi's Sword [21106] K. Shinobi
BPS: 38400 < HD Storage: 80 (20) Russell Jones
ASV, SDS March, 1992 Okinowa, Japan
WWIVnet: 856 (AC) WWIVLink: IceNET:
303-755-1884 Erana's Peace [ASV] [10407] Aldur
BPS: 57600 !$ HD Storage: 680 (58) John Pinar
ASV, PCP-CODEN August, 1992 Aurora, CO
WWIVnet (AC) WWIVLink: 13301 IceNET: 3314
801-774-5574 The Sandbox ][ [ASV] [11107] Sandman
BPS: 38400 <!$ HD Storage: 210 (31) Warren Reed
ASV, SDS, PCP-UTSLC August, 1992 Ogden, UT
WWIVnet: 8135 WWIVLink: IceNET: 8135
210-631-9417 The Dragon's Den II [30818] Filo
BPS: 38400 !$ HD Storage: 512 (102) Wig De Moville
SDS, AutoVal August, 1992 McAllen, TX
WWIVnet: 2051 WWIVLink: 2051 IceNET: 2051
301-498-1984 Eagle's Dare [20810] Frank Reid
BPS: 38400 !$ HD Storage: 465 (47) Frank Reid
ASV, January, 1993 Maryland
139
WWIVnet: 3113 FIDOnet: 2:345/411 IceNET:
508-795-7672 The Bears Cave [20778] (_)Rsan
38400 !$ HD Storage: 850 (40) Bill McArthur
ASV January, 1993
Worcester, MA WWIVnet: 5800 WWIVweb: 1 (NC) IceNET:5814
409-830-0719 Mental Meltdown [30590] Sparky
38400 !$ HD Storage: 680 (20) Bill Bowers
ASV November, 1993 Brenham, TX
WWIVnet: 4903 WWIVLink: IceNET: 4903
514-664-4503 Alternative Worlds [10556] Spotnick
38400 !$ HD Storage: 82 (25) Nicolas LeBlanc
ASV November, 1993 Laval, Quebec (CAN)
WWIVnet: 5497 WWIVLink: 5497 IceNET: 5497
604-5787634/7631 The BS BBS [GSA/ASV][81101] Computer King
38400 !$ HD Storage: 120 (32) Geoff Larsen
ASV November, 1993 Kamloops, BC (Canada)
WWIVnet: 6401 WWIVLink: IceNET: 6401
803-731-0690 The Trading Post [SOUTH] [30646] Morgul
38400 <!$ HD Storage: 470 (70) Craig Dooley
ASV November, 1993 Columbia, SC
WWIVnet: 8315 WWIVLink: 18315 IceNET: 8315 Solarnet: 8315
FILENet: 350
818-848-4101/4350 Blue Thunder BBS [21232] JAFO
38400 <!$ HD Storage: 1750 (40) Cris McRae
ASV November, 1993 Burbank, CA
WWIVNet: 8861 WWIVLink: 18857 IceNET: 8857
SOLARNet: 8857 TERRANet: 1
916-222-8911 Maestro BBS [30305] Music Man
38400 !$ HD Storage: 213 (55) Chris Nicholson
ASV November, 1993 Redding, CA
WWIVnet: 9680 WWIVLink: IceNET: 9680 USAnet: 1
909-923-8247 The South Ontario BBS [90010] John Scheuplein
38400 <!$ HD Storage: 120 (20) John Scheuplein
ASV November, 1993 Ontario, CA
WWIVnet: 9911 WWIVLink: 19911 IceNET: 9911
140
Legend:
BBS Phone Number BBS Name [REG #] SysOp Handle
BBS Rate HD Storage: MB (WWIV) SysOp Real Name
Special Features Member Since Location of BBS
WWIVnet Info WWIVLink Info IceNET Info OTHERnet Info
Special Features:
ASV - Auto Sysop Validation
GSA - Guest Sysop Account
Star - Starlinkable
SDS - Sourch Distribution Site PCP -PCPursuitable
Modem INFO Codes: / CompuCom CSP ! V32 $ V32bis
< USRobotics HST > Hayes V Series
Upgrading from a prior version of WWIV
5.3 Upgrading from earlier versions
The next seven pages will explain to you how to go about
upgrading from an earlier version of WWIV. By upgrading,
as opposed to simply starting over, you will be able to
salvage your userlist, and your callers will not have to
go through logging on as "NEW" again.
Safety suggests that you make a backup of your user.lst
and names.lst files before upgrading from one version to
another.
5.3.1 UPGRADING FROM VERSIONS OF WWIV v4 before v4.23:
1. Copy in the new strings file. From the distribution
archive, copy SYSOPLOG.STR into the GFILES directory. If
the primary operating language is to be English, copy the
ENGLISH.STR into GFILES and RENAME it to BBS.STR.
Otherwise, copy the primary operating language there and
rename it to BBS.STR. Create separate directories for
the other language *.STR files. For example, you might
have ENGLISH.STR in GFILES and .\FRENCH\BBS.STR as well
as .\SPANISH\BBS.STR if your BBS was to offer English,
French, and Spanish as language options. As more *.STR
files are translated, they will be made available on SDS
and Support Boards. Please REMEMBER to change the name
141
of the LANGUAGE.STR to BBS.STR before using it.
2. Copy the *.msg files into GFILES. These files
contain the menus, help files and so forth. Since 4.23
offers options not found on the menus of earlier versions
of WWIV, you will want to use these or at least use them
as the basis for making your own menus.
3. Copy the *.MDM file and the *.DAT file into your DATA
directory.
4. For information on using the multi-instance aspect of
WWIV, see the Chapter in the documentation dealing with
Fast Setups. The registered sysop may also want to
consult the chapter on WWIV source code, especially the
later parts of the chapter which deals with the #defines
available in v4.23.
5.3.2 UPGRADING FROM VERSIONS OF WWIV v4 before v4.22:
1. Convert your userlist. If you are using the standard
userrec structure (32 or 64 sub version), just run INIT,
and tell it to convert your userlist for you. Otherwise,
you'll have to modify the CONVERT.C file included with
the source, and compile and run it. See the 'readme.423'
file for details on converting your userlist.
2. Copy in the new strings file. From the distribution
archive, copy SYSOPLOG.STR into your GFILES directory.
From the distribution archive, copy ENGLISH.STR into your
GFILES directory, but name it 'BBS.STR'. That is, if you
unzipped the archive into the current directory, and your
gfiles directory is C:\WWIV\GFILES, then say:
COPY SYSOPLOG.STR C:\WWIV\GFILES COPY ENGLISH.STR
C:\WWIV\GFILES\BBS.STR
3. Copy in the new menus. Copy menus*.msg into your
GFILES directory, such as "COPY MENUS*.MSG
C:\WWIV\GFILES".
5.3.3 UPGRADING FROM VERSIONS OF WWIV 4.10-4.12:
To upgrade a previous version of WWIV that is already
installed, first copy the "MODEMS.MDM" file into your
DATA directory. Then run the v4.21 INIT program. This
will update certain data files with new formats. You
will also probably want to go into INIT section 5, and
select your modem type. Refer to WWIVINIT.DOC to more
142
information.
UPGRADING FROM VERSIONS OF WWIV v4 before v4.12:
To upgrade a previous version of WWIV that is already
installed, first run the v4.21 INIT program. This will
update certain data files with new formats. You will
also probably want to go into INIT section 5, and select
your modem type. Refer to WWIVINIT.DOC to more
information.
You will notice that this version of WWIV has an option
for "WWIV Registration Number". This is a number given
to all registered users of WWIV, indicating that they
have registered. If you have registered WWIV before, but
don't know your registration number, contact Wayne Bell
through one of the channels listed above and ask what
your registration number is. You must be sure to
indicate your full name and address, as well as the
approximate date (month and year) that you registered
WWIV.
143
Email && Message Base Commands
╔═════════════════╗
║ E-Mail Commands ║
╚═════════════════╝
7.0
The following commands are available for use in
e-mail. All but the last five of them are listed in the
e-mail menu that you get by entering ? at the e-mail
prompt. [pic05]
7.1 A
The A response is for answer and delete. It should be
used for responding to mail when you do not need to keep
the original message. If you should want to keep a copy
of the mail but NOT have it in your mailbox, you can use
the Extract command discussed elsewhere in this document.
The A response will delete the mail from your mailbox
after you have finished responding.
7.2 D
The D response will delete the mail that you have just
read. The D response does inform the sender that you
have read the message. You might compare this with the Z
response discussed later in this section.
7.3 F
The F response forwards the mail to another user.
This is particularly useful if you receive a question
which you think someone else is better qualified to
answer. You might compare this to the M response.
7.4 G
The G response causes you to receive a prompt "Go to
which?". You may go to another piece of mail that is
either before or after the mail that you are reading.
You respond with the number of the e-mail that you wish
to go to.
144
7.5 I
The I response is to ignore that piece of mail. This
allows you to skip a piece of mail for answering later.
7.6 Q
The Q response is to quit reading mail.
7.7 R
The R is to Re-read the mail you have just read.
7.8 S
The S response allows you to answer the message you
have just read, but it also retains the copy that is in
your mail box without deleting it.
7.9 -
The - moves you back to the previous piece of mail.
7.10 +
The + moves you forward to the next piece of waiting
mail.
7.11 V
The V response allows you to validate the user who
sent the mail. It is handy to use when you are reading
new user feedback letters. Of course, this option does
nothing if the mail was sent via the network from another
BBS.
7.12 U
The U response allows you to change certain fields in
the USER.LST for the user who sent you the mail. This
feature is very handy if someone asks that you change
their handle, password, phone number, etc. This loads
you into uedit and returns you to the messages when you
quit uedit.
7.13 C
The C response is the same as the U response; the only
difference is that U clears the screen when uedit is
loaded whereas the C response does not do a clear screen
first.
145
7.14 O
The O response allows you to send a form letter to the
person who sent the message. You are prompted for which
form letter to use. Under v4.23 and later, if you have
your form letters in GFILES with the file extension of
FRM, you will get a listing of these available form
letters when you enter the O.
7.15 Z
The Z or Zap response deletes the waiting piece of
mail but does not notify the sender that you read it.
7.16 P
The P or Pest response asks if all mail from that user
should be deleted. A Yes response will delete all mail
in your mailbox from that particular user. This might be
referred to as the "pest" command.
7.17 N
Add node to subscriber list for networked sub. This
command was introduced in v4.23 and should be useful to
those who host networked subs. The node is added to the
end of the subscription list.
7.18 M
This allows you to "forward" someone's mail to
someone else but to also add a message of your own. Any
reply made to this message will come to you rather than
to the original writer of the message. This differs from
regular forwarded mail where the answer goes to the
original author of the mail.
╔════════════════════════════╗
║ Message Base Read Commands ║
╚════════════════════════════╝
7.20
Most of the message base read commands (ie those usable
at read prompt on a message base) are explained in the
menu that is available when you hit a ?. [pic06]
146
7.21 Any number
Entering a number at the read prompt will cause the
software to move you to that message number if it exists.
If you enter a number greater than the number of messages
on the message base, nothing will happen.
7.22 - and +
The - moves you back one message on the message base
and the + moves you forward one message.
7.23 A
The A response allows you to make a private response
or email to the person who wrote the post that you are
reading. This private response is NOT kept in the message
base messages as it is on some softwares; instead, if it
is to a local user, it goes in that person's mailbox. If
it is a reply to a post on a networked sub, it will be
sent as private mail to that person.
7.24 B
The B response causes you to by-pass the remaining
messages on the message base and go to the next message
board in your q-scan. This option only works if you have
selected the /A or N option to scan more than one message
base.
7.25 C
The C reponse puts you in continuous read mode so that
you are not stopped at the end of each message.
7.26 D
The D response allows you to delete a post on a
message base.
7.27 E
The E response is for extraction. You will receive
(if you are using the extract option introduced in
v4.23), a prompt of "1-4, Q, ?" which permits you to
select the directory in which to store the extracted
file, to quit, or to get a small menu of options. The
directory choices are:
1) The transfer directory. If this option is
selected, you will be prompted to identify the
147
directory by number. A question mark instead of a
number will produce the directory listing for you
to select the number from. After this option is
selected, the file that is extracted is compressed
using the first archive method listed in INIT and
you are then asked if you wish to UPLOAD it. If
you chose to upload, the file is put into the
listing of files in that directory and you are
prompted for a file description.
2) This option prompts you for filename. If you enter
ONLY a filename, the file will be stored in GFILES
under the name you gave; however, if you give a
path and filename, the file will be stored in the
designated directory.
3) This option will store the file in the DATA
directory under the filename given.
4) This option will store the file in the TEMP
directory under the filename given. Since the TEMP
directory is automatically erased when you logoff,
you must remember to do something with the file
before logging off.
7.28 F
F is a new command introduced with v4.24. It allows
you to search for a keyword in the title of posts in the
message bases.
The reason for adding this is due to the new, higher
limitation on the number of posts permmitted to be saved
on each sub. If you have 1500 posts in a certain message
base, and want to read all the posts pertaining to OS/2,
for instance, you can use the F command to (F)ind all the
posts with "OS/2" in the title. The author of this mod,
Black Robe Mage, won the "mod contest" held for v4.24.
7.29 L
The L response is for Load and it allows you to LOAD a
file from disk to post as a message. Although you are
prompted for a filename, you may enter both a path and a
file name. The //upload command works the same way from
remote.
148
7.30 M
The M command allows you to move a message to a
different message base and/or conference.
7.31 P
The P response enables you to POST. The P response
does not make use of the RE: or anything else that
suggests that it is a response to a particular message.
Compare this to the W command.
7.32 Q
The Q response is to quit reading messages. This
returns you to the Main Menu prompt.
7.33 R
The R response is to re-read the message that you have
just read.
7.34 T
The T response shows you the titles of the next 15
messages. You are also shown the names and user account
numbers of the person who posted the messages.
7.35 U
Makes an anonymous post NOT anonymous.
7.36 W
The W response allows you to write a message where the
sub-title is RE: followed by the title of the message
that you are responding to. This helps to make clear to
others that you are responding to a particular message.
Compare this command to the P command.
7.37 X
The X response toggles the net validation status of
the message. If the status was not pending net
validation, it changes it to pending net validation.
149
Waiting for Call (WFC)
┌────────────────────────────────┐
│ Sysop and Co-Sysop Information │
└────────────────────────────────┘
This section contains information useful to the Sysop
and/or co-sysop commands that can be used to run and
maintain the BBS. Some of these commands you will use on
a daily basis whereas others will be used rarely. You
should learn these commands through using them rather
than by trying to memorize them.
WAITING FOR CALL (WFC) Commands
8.1 WFC Commands
8.11A ? - list WFC commands
The question mark brings up a WFC Screen of commands
available to the operator from the local keyboard. Al-
though it is not a good practice to leave this screen up
all of the time because it could "burn" or etch a pattern
on the screen, sysops who are new to WWIV will find this
a good source of information, and they are encouraged to
study it and experiment with the commands.
8.11B [Spacebar] - logon from the keyboard
Occassionally a sysop will find it necessary to log on
to the BBS. The purpose may be to upload files, make
posts on the message bases or perform other maintainance.
The spacebar informs the software that the sysop or other
user at the local keyboard wants to log on. If "Phone
off hook" has been set in INIT, the BBS will pick up the
phone for the time you are logged on, and callers will
get a busy signal. At the prompt after pressing the
space-bar, the sysop may press 'F' to logon quickly as
the sysop without entering logon information, or 'Y' to
logon as any account, with the need to enter password and
phone number. Note that the phone is not picked up until
you have entered "Y" or "F". If you do not actually wish
to log on, just hit the spacebar again.
Beginning with v4.23, any user having a user number of
10 or less and who has a 255 access level, may log on
fast from the key board by hitting the spacebar followed
by a number from 1 to 10 that is the same as his user
number.
150
Also, because v4.23 and future versions are multi-
instance, a sysop or co-sysop may logon to the board
while a remote user is also on the board. This may be
done by defining a second instance and logging into it.
If there is no modem on the second instance, then you
should use a batchfile for accomplishing this logon and
then use the batchfile over a LAN (localarea network) or
via a multi- tasking software such as Windows (tm),
Desqview (tm), or OS/2 (tm). If there is no modem
connected to the second instance, use the following
command:
bbs ix -m
x is a number that identifies the instance you are
calling. In the standard WWIV package, this will either
be a 1 or a 2. If you are only runniny one instance,
this parameter is not necessary.
The -m tells WWIV there is no modem connected to that
instance. Failing to add the -m will cause WWIV to not
initialize proerly, if at all, as it is trying to get a
response from the modem that isn't there. Normally, if
you forget to add the -m option, you will have to reboot
your computer to get back in control.
8.11C A - Answer phone
If you are talking to someone (voice) on the BBS phone
line, and want to allow that person to log on, hitting
"A" will cause the BBS to pick up the phone and send a
carrier, just as if the phone had rung.
8.11D B - Boardedit
This command allows the sysop to change/add/delete
message bases. This command is explained more fully in
the section dealing with the //BOARDEDIT command which
may be issued when the sysop is logged into the BBS.
8.11E C - Chainedit
Using this command allows the sysop to
change/add/delete on-line programs (games). A more
complete explanation of this command is found in the
section dealing with //CHAINEDIT which may be given by
the sysop when he is logged onto the board.
151
8.11F D - Diredit
With this command, the sysop can change/add/delete
file directories. The command when the sysop is logged
onto the board is //DIREDIT which may be given as either
the Main Menu Prompt or the Transfer Menu Prompt, and a
more complete explanation is provided when that command
is discussed below.
8.11G E - Email
Using this command, you can send email to another
person on your board, or a person in the network.
8.11H F - DOS functions
This command allows the sysop to temporarily drop to
DOS so the SysOp can do something. If you have the "Phone
off hook" set in INIT, the BBS will pick up the phone
during the time you are in DOS. Type "EXIT" to quit the
dos shell and return to the BBS. Do NOT attempt to run a
terminal program from this dos shell.
8.12I G - Gfileedit
This command allows the sysop to change/add/delete
gfile sections. The equivalent command when the sysop is
logged on to the board is //GFILEEDIT or simply //GE.
8.11J I - Init votes
This command permits the sysop to add/delete voting
questions for callers in the voting section.
8.11K L - Log of the day
This command provides a detailed account of what the
callers did while on-line today. If the "Use List
Utility" has been toggled on in INIT and if the List.com
program is available either in the main bbs directory or
the path, the sysop will be able to have complete control
of the cursor while reading this log; that is, the sysop
will be able to page up or page down, jump to the end of
the file, scan for a particular name, etc. Sysops are
strongly urged to obtain the excellent shareware program
called LIST and to utilize it in this fashion. One
drawback to this program is that you should not try to
use it remotely. It requires inputs directly from the
152
console, and your BBS will lock up if you try to run LIST
remotely.
8.11L M - Read all mail
This command allows the sysop to read any mail that
has been sent on the system, and to delete any of it as
well. NOTE: This should not be used for reading feedback;
use the R function for that.
8.11M N - Net log
If the BBS is a member of a WWIV network, this command
will show a list of the past 77 network connections,
including information such as connect times, data sent
and received, systems connected, etc. This listing will
also operate under the LIST utility if it has been
installed in INIT.
8.11N P - Pending Files
If your system is a part of a WWIV network, this
command presents a list of pending files to be sent,
along with various information such as system numbers,
bytes to send, and how many hours and minutes have
elapsed since the boards last connected.
8.11O Q - Quit and terminate the BBS program
This command stops the execution of the BBS program
and removes it from memory. This is the proper way to
terminate the execution of your BBS.
8.11P R - Read your mail
The sysop can read all mail sent to the number 1
account just as if he had logged onto the BBS. If "Phone
off hook" is set in INIT, the phone will be picked up
while the mail is read. The sysop is permitted to read
mail and perform any of the normal mail related functions
(answering, deleting, etc.) that are available when
logged onto the board.
8.11Q S - Status display
This command displays a quick listing of total system
usage, disk space remaining, total number of callers, and
several other items.
8.11R T - Terminal program
153
If a terminal program has been setup in INIT, hitting
"T" will run it, and then return execution back to the
BBS when it is completed.
8.11S U - Uedit
This command allows the sysop to delete/modify caller
accounts/information. When the sysop is logged into the
BBS the equivalent command is //UEDIT or simply //UE.
8.12T W - Edit text file
By using this command, the sysop can edit any text
file. This can be handy if, for example, you are using
LOGON.MSG as a type of news bulletin. You can edit the
file from WFC and enter new information or delete old
announcements.
8.11U Y - Yesterday's log
This command displays the Sysop log for the previous
day. This log will also operate under the LIST utility
if it was installed in INIT.
8.11V Z - Zlog
This displays a short listing of daily activity for
about the past 3 months, including posts sent, uploads,
downloads, time active, etc.
8.11W / - Force callout
If you are a part of a WWIV network, this command
forces the bulletin board to call another network board.
That board's node number must be listed in the
CALLOUT.NET file in the DATA directory for this to work.
For more information on this feature, refer to WWIVnet
Documentation.
8.11X . - Force "War Dialing" of net connection
IF you are a part of a WWIV network, this command will
allow you to force a callout to a board that you connect
to and allow you to specify the numbers of retries that
you wish to make in case that board is busy.
8.11Y = Run RESETF
This command is same as typing //RESETF at main menu.
154
8.11Z ` - Obtain network information
This command is the same as //NET at main menu.
8.11AA J - Conference Editing
This command is the same as //JE or //CONFEDIT at main
menu.
8.12A X - Check environment settings.
Same as issuing SET command at DOS level.
8.2 Dos Macros
Beginning with v4.22, the Dos Macros are now available
from WFC as well as from the board itself. DOS Macros are
explained more fully in the WWIVnet documentation. In
order to create a DOS macro, you must have a file in your
DATA directory named MACROS.TXT. This file should have
the following information, one line per macro, for each
macro that you wish to use.
Key command
Key should be any key that you can use ALT with and the
command should be the executable that you wish to run.
For example, if you wanted to access the docs with a DOS
MACRO using M, you would put:
M READER
The READER program should then be located in the
main BBS directory and would be accessible with CTRL M.
8.3 Diredit
The directory editor may be accessed as D at WFC, //DE
or //DIREDIT from the board. The first thing that is
seen when the directory editor is accessed is a listing
of the directories that exist: [pic07]
NN DAR Name FN DSL AGE FIL PATH
=== --- ============== -------- === --- === ---------
0 A Sysop UBSYSOP 100 18 50 DLOADS\SYSOP
1 Miscellaneous MISC 20 0 50 DLOADS\MISC
2 Test Directory TEST1 40 10 50 DLOADS\TEST1
Dirs: D:elete, I:nsert, M:odify, S:wapDirs, Q:uit, ? :
155
The commands are relatively straight forward and work
in a fashion similar to BOARDEDIT. Swap directories is a
new command that lets the sysop change the order in which
directories are listed.
When a particular directory is selected for
modification, the following is seen:
A. Name : Miscellaneous
B. Filename : MISC
C. Path : DLOADS\MISC\
D. DSL : 20
E. Min. Age : 0
F. Max Files : 50
G. DAR : None.
H. Require PD : No
I. Dir Type : 0
J. Uploads : Allowed
K. Arch. only : No
L. Drive Type : HARD DRIVE
8.3.A Name
The name would be the name that you want the users to
see. Sysops generally find it useful to create
categories that will have like type of files grouped
together in the directory.
8.3.B Filename
This should be a dos legal (ie 8 characters or less)
filename. The BBS software will append the DIR extension
to it, store it in the DATA directory and use it to keep
information in binary format for the board's use.
8.3.C Path
The path is the path to the directory. The path may
be specified complete or in relationship to the main bbs
directory. The example shows one where DLOADS would be a
subdirectory of the BBS. If you wanted to put the
directory on a different drive, you might have something
like:
C. Path : D:\DLOADS\MISC
8.3.D DSL
The DSL is the download security necessary to have
access to the directory. Anyone with that level of DSL
156
or higher will have access to the directory unless an
upper limit is placed on the DSL in the Conference editor
by the sysop.
8.3.E Minimum Age
This lets you restrict access to people of a certain
age.
8.3.F Maximum Files
This sets the maximum number of files that can be held
by this directory. The maximum nuber is 499. Note that
this can be surpassed by using the //UPLOADFILE command.
8.3.G DAR
This setting allows you to set an Access Requirement on
the directory so that the person must have that DAR in
order to see or access the files in that directory.
8.3.H Require PD
This setting asks the user if the file about to be
uploaded is Public Domain. If they answer No, it will
not permit them to upload the file.
8.3.I Directory Type
This setting allows you to set a directory type for
this directory. At the present time, WWIV does not make
use of this variable, but some of the utilities written
by third parties do make use of it.
8.3.J Uploads Allowed
This setting may be toggled to indicate that uploads
are not permitted. Many sysops will leave this as
allowed and require in INIT that uploads go to the sysop
directory.
8.3K Archive Only
Setting this will allow you to require a certain type
of file extension and no other type may be uploaded.
8.3L Drive Type
This permits the sysop to toggle between HARD DRIVE and
CD-ROM as permissable types. If a CD-ROM is used, its
157
use will be optimized (ie the board will work better and
faster) if it is identified as a CD-ROM.
Main Menu Commands
╔═════════════════════════════╗
║ COMMANDS FROM THE MAIN MENU ║
╚═════════════════════════════╝
9.0 Main Menu SysOp Commands
Normally, commands entered at the main prompt in the
BBS will be executed immediately after they are typed,
without the need of hitting the [Enter] key. Typing // at
the main menu, however, will allow you to enter a
complete line of input. So, if the command you want is
Uedit, you would type //UEDIT. After most of these
commands, you will be prompted "SY:" and you should enter
the Sysop password that you established in INIT. In
v4.23, you may enter the short form command which is
//UE. Commands which are available to sysops and users
alike are found in the READUSER.EXE reader program and/or
the WWIVUSER.DOC.
The following commands may be used by co-SysOps and
SysOps:
9.1A LOG - Displays today's SysOp log
Same command and function as L from WFC. This
provides a log of daily activities and will work in
conjunction with the LIST utility if that utility was
setup in INIT.
9.1B NLOG - Displays network activity log
This displays the network activity log and is the same
command as the N at WFC. This feature will also utilize
the LIST utility.
9.1C YLOG - Displays yesterday's SysOp log
At WFC, the command is Y; however, when the sysop is
logged on to the board, the command is YLOG. LIST can be
used in connection with this log.
9.1D ZLOG - Displays log of past system usage
Same command as the Z command entered at WFC.
158
9.1E UEDIT - Runs the Uedit procedure
This is the same command as U from WFC. It enables
the sysop to edit the user list. After the uedit command
has been entered, the information in the user list for
the individual who is logged on the board will be
displayed. Usually this information is for the #1 account
unless the sysop has logged on as another user. A
question mark entered at this time will provide a UEDIT
Menu of options.
9.1F IVOTES - Runs voting initialization program
This command, like the I from WFC, enables the sysop
to add/delete/change the voting questions.
9.1G STATUS - Displays current system status
The same information is presented after this command
is issued as would be displayed after the S from WFC.
Basic system status information is displayed.
9.1H VOTEPRINT - Creates VOTING.TXT in the GFILES
directory
This command does not have a counterpart at the WFC
screen. It causes a file, VOTING.TXT to be created in the
GFILES Directory. The file contains a summary of how
each caller voted in the voting section.
9.1I TEDIT - Edit a text file located in the GFILES
directory only
This command functions basically the same as W from
WFC.
9.1J /? - This command will provide an on-line menu of
Sysop and Co-Sysop commands.
9.2 Sysop Commands
The following are SysOp commands, which require an SL
of 255. Most require the system password to be entered.
Beginning with v4.23, these commands may also be accessed
by the short command indicated in parentheses after the
long form. These commands, when issued at the keyboard,
should have a leading double slash (ie //BE):
BOARDEDIT (BE) - Runs Boardedit procedure. Same as B
159
from WFC.
DIREDIT (DE) - Runs Diredit procedure. Same as D from
WFC.
CHAINEDIT (CE) - Runs Chainedit procedure. Same as C
from WFC.
GFILEEDIT (GE) - Runs Gfileedit procedure. Same as G
from WFC.
CONFEDIT (JE) - Permits Sysop to define and edit
conferences.
INSTEDIT (IE) - Permits Sysop to have limited editing
of Instances.
ALLOWEDIT (AE) - In Transfer area, allows editing of
ALLOW.DAT.
DOS - Drops to DOS. This will allow the SysOp, locally
or remotely, to temporarily drop to DOS for system
maintenance. Type "EXIT" to return to the BBS. Same
as F from WFC.
CHAT - Toggles the scroll-lock key, thereby toggling
the sysop- available switch. This is used when the
sysop is calling remotely and wants for some reason
to either turn sysop available on or off. If the
sysop is on the board on a different "instance",
this also makes him available for the internode
chat.
STAT - Stack and Heap Info. This tells the sysop how
memory is being managed by the BBS.
RELOAD - This reloads the bulletin board's menus into
memory, in the event that you find it necessary.
RESETF - Reset NAMES.LST. The NAMES.LST file contains
a short list of all user names. At times, when
accounts are changed or deleted, this file is not
changed accordingly. So, in a user listing, you
might see the same name appear more then once. In
that event, use RESETF. It re-creates NAMES.LST,
removing all names that have been deleted from the
main user list. The FIX program distributed with
v4.22 and later versions of WWIV does the same thing
for USER.LST and NAMES.LST as the RESETF command
along with also checking for and correcting other
160
types of problems.
REBOOT - Reboot the computer. This command will do
just what it says - reboot your computer - NOT the
BBS. Use with caution.
EDIT - Runs the SysOp editor (or full screen editor if
selected); allows the text files to be located any-
where on the hard disk, instead of just in the
GFILES directory as with TEDIT.
LOAD - Loads a file from anywhere on the system into a
workspace. Then, for the next post or e-mail the
SysOp does, that text file will be used as if the
SysOp had typed the entire file into the editor.
CHUSER - Allows the SysOp to temporarily change to
another account.
MAILR - Allows the SysOp to read all mail. Same as M
from WFC.
, - List Network Logs
If you are part of a WWIV network, this command causes
the netdatx.logs to be listed. With v4.22 and NET32, the
logs have been revised to reflect which network the
information relates to.
9.21 Boardedit
The BBS, when first initialized, creates a single
default message base called General. Sysops normally
will want to create additional message bases and/or
modify the names of those that may exist. WWIV can
handle up to 999 different message bases although it
starts with 32 message bases as a default. The number of
message bases and directories may be increased in the
INIT in blocks of 32.
Because the more message bases and directories that
you create, the more memory is required for pointers and
so forth, it is advisable to set the number of message
bases to the next highest multiple of 32 over the number
that you actually intend to use. This will conserve
memory.
A message base, sometimes called a sub or sub-board, is
a place where persons with the appropriate SL (security
level) can read and/or post messages. B from WFC, or
//BOARDEDIT from the main prompt, accesses the Boardedit
161
procedure. [pic08]
In the Boardedit procedure, you can delete, insert,
and modify subs. WWIV defaults with one sub-board,
General. Any topic you can imagine may be used for a sub.
Common examples include politics, science fiction,
entertainment, sports, trivia, etc.
For each sub-board, the following information is
necessary:
9.21A Name
Each sub-board needs a name, describing what type of
messages are expected on that sub-board. If your BBS is a
member of a WWIV network, the software will insert either
<Net> or [Net] preceeding the sub-board name when the sub
listing is obtained. The difference between these two
uses of NET is discussed below under the Network
Validation Option.
9.21B Filename
Each sub-board also needs a DISTINCT FILENAME. If two
subs have the same filename, BOTH SUBS WILL REFER TO THE
SAME MESSAGES. The filename can be whatever you want (up
to 8 letters in length), but it must not contain an
extension. For example, MODNET would be a legal name to
enter, but MODNET.SUB would be illegal because it uses an
extension. Many sysops find it extremely helpful and
useful to use the "subtype" as the filename.
9.21C Key
Normally, all sub-boards are assigned a number (in
ascending order, starting at one for your first
sub-board) which callers can press to immediately access
them. If you would prefer that a sub-board be referred to
by a key (such as %,&,#, etc) instead of a number,
setting the key to that character will do so. In most
cases, this option will not be used.
9.21D Read SL
This setting determines the minimum SL required to
allow a caller to read messages on the sub-board. If the
read SL for a sub is 40, and a caller's SL is 39, that
caller will never know that the sub-board exists.
162
9.21E Post SL
This setting determines the minimum SL required for a
caller to post on the sub. The post SL should be greater
or equal to the read SL. Having the post SL greater than
the read SL would allow callers to read messages on the
sub, but not post any. This type of setting is often
useful on some network subs where anyone may be permitted
to read the sub, but posting may be only by certain
persons (perhaps the sysop and/or the co-sysops.)
9.21F Anony
Setting the anony (no, yes, forced, dear abby)
determines whether or not messages posted on that sub can
be anonymous. No means no anonymous (unless the caller
has a security level which permits it); yes means the
caller has the option of posting anonymously, regardless
of security level; forced means the post is always
anonymous; dear abby means that the caller will be
presented a choice of "signatures" for his/her post:
their name (alias), Abby, or Problemed Person. In effect,
the "dear abby" option does the same thing as setting
anony to yes, but it gives the caller two options on
which name will represent the author of the post.
9.21G Min age
This will allow you to set the minimum age of callers
on that sub. If, for example, you set the minimum age to
18 (years), anyone under 18 would not know the sub
existed. Usually used for adult-oriented subjects.
9.21H Max msgs
This sets the maximum number of messages that can be
on the sub at one time. This is usually set to 50 or 100,
but can be up to 249. When the maximum number is
reached, the oldest post in the sub is rotated off
(deleted) as each new post is entered, unless a post has
been given permanent status.
A post with permanent status means that it will not be
erased. This is useful if you have posted the sub rules
or something as the first message on the sub. To give
permanent status to a post, you hit N after reading the
post. You will see the message, "This post will NOT be
auto-purged.
163
9.21I AR
This allows you to set the AR for that sub. AR is used
to allow specific people to access specific subs when
other sub limitations (age, post SL, etc) are not
sufficient for your needs. As an example, suppose you
have a group of Amiga callers on your BBS. You want to
give them their own area to talk about Amigas. Age and SL
restrictions would be cumbersome and inefficient. That's
where AR comes into play. There are 16 different AR flags
that can be used, A through P. To give the Amiga callers
their own sub, you would use BOARDEDIT to create a sub
for their use. Set the AR to whatever you wish, as long
as it isn't in conflict with another sub which doesn't
concern the Amiga people (you can use the same AR on
different subs, but realize that anybody with the same AR
flag set would be able to access all subs with the
identical AR). For this example, set the AR flag to A.
Then you would go into UEDIT and activate each Amiga
caller's A flag. Now, all Amiga callers would be able to
access the Amiga sub (as long as SL and age requirements,
if any, were met) and nobody else would know the sub
exists.
9.21J Net info
Used with WWIV network software on network subs to
properly allocate messages. If the sub you are editing is
not a WWIV network sub, leave this blank. Under v4.22
and beyond, if you select this option, you will get a
sub-menu asking for information regarding Network, Type,
Host, and Flags. As you enter the information, you will
receive helpful prompts. The Networks that are
recognized are those that you have setup in the INIT
program.
TYPE refers to the SubType. Under WWIV v4.21a and
NET31 or earlier, these subtypes had to be integer
values; under NET32 and WWIV v4.22, you may use 7 letter
character names for the subtype. This option is referred
to in WWIV literature as "sub-by-name". Note that with
and after NET34 is released, all subs should be a
"sub-by-name".
HOST refers to the network host of the sub; if you
host it, the information will display HERE; otherwise,
the host's network node number will be shown.
FLAGS refers to whether the sub is auto-requestable
and whether or not the information about the sub should
be reported in the SUBS.LST distributed on each network.
164
For more information on this, refer to the WWIVnet
Documentation that accompanies the NetWork Software.
9.21K Storage type
There are 2 main ways messages can be stored, either
with each message in its own file, or with all messages
in that message base in one large file. 0 means each
message will be in its own (text) file, 2 means all
messages in that sub will be in one large (non-text)
file.
9.21L Val Network
This option may be toggled on or off. If toggled on,
sub-boards that are networked subs, will have [NET] in
front of the name and the sysop will need to validate the
messages received there before the messages will be sent
over the network. If the option is toggled off, the sub
will have <Net> in front of the Sub-Board name. Because
many network subs have various restrictions (such as no
ansi posts, or ansi posts only, or post by #1 on the
board only, etc), network validation is a means of
ensuring that posts originating from this BBS are in
compliance with the sub-host's rules.
9.21M Req. ANSI
The sysop can require that the user have ansi enabled
in order to view this sub. This option is particularly
useful if the sub is one of ansi pictures drawn with
THEDRAW or some other ansi editor. An example of an all
ansi sub is the WWIVnet Sub known as The Ansi Art
Gallery.
9.21N Disable Tag
This option, if toggled on, will disable taglines in
the messages. This may be useful if a network sub host
does not permit posts which have taglines added to them.
9.21O Description
This option is to permit you to provide a description
of subs that you host so that the description will be
used in the SUBS.LST file. The addition of this field
makes it possible for your subs to be reported in the
SUBS.LST without your having to do anything special; the
only requirement is that the auto-info option in FLAGS be
set.
165
There will also be a place for category. If this is
chosen, a list of available categories (distributed by
the NC for the network) will be given. The purpose of
this is to allow the sysop to select the most appropriate
category (for that sub information) for listing in the
Subs List that is distributed by each network.
9.22 Conference Editing (JE)
Conferences and conference editing were added in v4.23
of WWIV. This enables sysops to set up conferences (up
to 26) and to define what boards or subs will appear in
each conference. As will be seen later in some of the
examples, a sub may appear in more than one conference.
To enter the conference editor, enter //CONFEDIT or //JE.
You will see the following:
Edit which conferences:
1) Subs
2) Dirs
Select [1,2,Q]:
Selecting 1 for editing subboards, you will then obtain
a listing with a header. The header below has been
shortened in order to fit the margins of these docs.
Subsequent examples omit the LSL, HSL, LDSL, HDSL columns
in order to make the example fit the margins.
For an actual look at the CONFEDIT screen, view [pic09]
Des Name LSL HSL LDSL HDSL LAge HAge LoBPS ARs DARs S A W
╔═══ ════ ═══ ═══ ════ ════ ════ ════ ═════ ═══ ════ ═ ═ =
Des is short for designator and it refers to the
letter used to designate the conference. Name, of
course, refers to the conference name. The next set of
information refers respectively to:
LSL = Low Security Level
HSL = High Security Level
LDSL = Low Download Security Level
HDSL = High Download Security Level
LAGE = Low Age
HAGE = High Age
LoBBS = Lowest Baud rate to permit access to conference
166
ARs = Access restrictions
DARs = Download Access Restrictions
S = Sex
A = Ansi Required
W = WWIV Registration Number required
The following is a short example of a few conferences
on the board that I operate.
Des Name LAge HAge LoBPS S A W
╔════ ══════════════════════ ════ ════ ═════ = ═ ═
╠═ D WWIV Mods & Technical 0 255 0 A N Y
║ ├─── Sub #9 : WWIV Modifications Net Sub
║ ├─── Sub #10 : Mod Talk & Requests
╠═ B WWIVnet Sysop Subs 10 255 0 A N N
║ ├─── Sub #0 : Messages from The Management
║ ├─── Sub #4 : S.A.L.T. (National Sysop Sub)
║ ├─── Sub #5 : National Sysops and Co-Sysops
║ ├─── Sub #6 : Alternative #1 Sysop Sub
╚═ A General 0 255 0 A N N
├─── Sub #0 : Messages from The Management
├─── Sub #1 : The Valley Connection
├─── Sub #39 : Trade Wars 2002 Discussion Board
├─── Sub #40 : Celebrating Diversity !
├─── Sub #42 : Deep Thought
├─── Sub #43 : WWIVnet World-Wide Link
├─── Sub #44 : International Politics
├─── Sub #48 : Person-to-Person (Chit chat)
├─── Sub #51 : Hi-Speed Modem Sub
├─── Sub #65 : FidoNet DoorWare Echo
├─── Sub #66 : FidoNet Quick Basic Echo
├─── Sub #67 : FidoNet--SmallWare
Note that Sub #0 appears in several lists as I want
everyone to read it when doing a New Scan. Also note
that setting the security levels for the conference does
NOT change any of the ARs, SLs, etc. that you may have
set in BoardEdit for the individual boards.
The positioning of your conferences is easy. That is,
you may insert a conference before any other conference,
or you can select to position it before $ which will
place it at the end of all conferences. However, the
sysop is urged to plan first, for the board will letter
conferences sequentially. That is, if you have existing
conferences-- ABC and you add a fourth conference, that
conference will be lettered D even though you can put it
anywhere.
Although it is easy to change conference identifiers,
you may be able to avoid having to frequently change
167
those identifiers if you plan your conferences in
advance.
Conference ARS, unlike those in SUBs may be stacked.
That is, you may have more than one AR associated with a
conference. For example, a conference having an AR of IJ
would require that a person have both of those enabled in
order to participate in the conference. If you indicate
DARs and/or DSLs then the user must all have all settings
indicated in order to participate in the conference.
If you decide that you do not want to have
conferences, you should still set up one conference and
put all of your subs into it. The user will never be
aware that there is a single conference; however, by
having the single con- ference you will easily be able to
change the order in which your subs are listed if you
should decide to do so.
The next thing that you see after selecting that you
want to edit subs (and getting a list such as the one
above) is the prompt:
I)nsert, D)elete, M)odify, Q)uit, ? :
If you select I or M, you will get a menu such as the
following once you have entered the conference
designator:
A) Designator : A
B) Conf Name : General
C) Min SL : 10
D) Max SL : 255
E) Min DSL : 30
F) Max DSL : 255
G) Min Age : 0
H) Max Age : 255
I) ARs Required : -
J) DARs Required : -
K) Min BPS Required : 0
L) Sex : A
M) ANSI Required : No
N) WWIV Regnum Required : No
S) Edit Subconferences
Q) Quit ConfEdit
X) Abort Changes
The numbers shown above are filled in because I
selected to modify the A conference; however, if you
selected to insert a new conference then you would have
to fill in the numbers yourself to suit your wishes. The
168
Sex option allows choices of M)ale F)emale and A)ll.
After you have set the items in A) through N), you
should select item S) in order to select what
subconferences (sub boards) to include within the
conference. When you do this, you will get a prompt such
as the following:
ConfEdit: S
A)dd R)emove C)lear F)ill Q)uit S)tatus : S
C would clear all * designators from this conference and
F would fill in *'s for all subs that you. These two
commands make it easy to ADD everything and then remove
what you wish, or to REMOVE all and then add only what
you want.
S)tatus provides a list such as the following:
NN Name Inc
--- ======================================= ---
0 Messages from The Management *
1 The Valley Connection *
2 South Texas Free Trade Zone *
3 Valley Sysop Association
4 S.A.L.T. (National Sysop Sub)
5 National Sysops and Co-Sysops
The list there is shortened for this example, but you
would see all the subs that you have. Note that if an *
is not in the Inc (include) column, then that sub would
not show up in that conference. To toggle a sub on for
the conference, you would select A)dd. To remove an *
merely select R)emove and indicate the number of the sub
when prompted to do so.
The user who hits J at the main menu will obtain a
prompt similar to the following:
Select Conference:
A) General
B) WWIVnet Sysop Subs
C) WWIVlink & IceNET Sysop Subs
D) WWIV Mods & Technical
Select [ABCD, <space> to quit] :
Those sysops having more than 20 or so subs may find it
convenient to use conferencing as it facilitates the
operation of the BBS and it makes it easier for users to
169
configure their Q-scans. The operation of the DIR part
of Confedit is discussed in a different section of the
documentation, but it operates in a similar fashion to
the Confedit for Subs.
9.23 ALLOWEDIT (AE)
This option applies to registered sysops only and is
associate with the OPT_FAST_SEARCH setup. A program is
provided called WWSORT.EXE which should be run first.
This program creates your original ALLOW.DAT file which
will permit a fast search for duplicate file names. The
ALLOWEDIT option gives the sysop the ability to add or
remove file names from the binary file. A sysop might
want to add the name of a non-existant file if he did not
care to have that file uploaded to him. For example,
sysops frequently get a "scam" uploaded to them called
FASTCASH. This "scam" is like a chain letter for BBSes.
Putting FASTCASH as a file name would prevent someone's
uploading a file by that name. By the same token, if the
sysop needs to remove a filename from the binary list, he
has the option to do so by using the ALLOWEDIT option.
9.24 INSTEDIT (IE)
This option give the sysop limited editor ability over
instances and permits the sysop to shut down all
instances immediately if necessary. This can be handy in
a LAN type operation where all instances may not be
visible. Since certain types of maintenance (such as
that affecting qscan pointers or new scan pointers)
should not be run if a user is on-line, this gives the
sysop the ability to give users a 10 second warning and
then shut down the system.
170
Transfer Area Commands
┌─────────────────────────────────┐
│ Transfer Section SysOp Commands │
└─────────────────────────────────┘
The following section has two parts. First, the
individual commands are discussed and then the confedit
as applied to Subs is discussed briefly. A more thorough
understanding and explanation of the confedit (JE)
command is found in the discussion of Main Menu Commands.
The following are all sysop commands that may be used in
the transfer area. You can get a list of these commands
while in the transfer section by entering /? at the
tranfer menu.
10.1 Sysop and/or Co-Sysop Commands
UPLOAD - For the current directory, the appropriate
DOS directory is searched to see if there are any files
in the DOS dir, but not in the BBS dir database. If there
are any, the sysop is prompted for the description. This
command is often used when sysop's are first starting the
BBS although it is useful at other times as well. Note
that the more files you upload into a directroy, the
longer this command will take to run.
UPLOADALL - Same as UPLOAD; acts on all BBS file
directories.
REN - Allows a filename, or its description, to be
changed, or an extended description to be entered.
MOVE - Allows a file (or files) to be moved from the
current directory to another one. Same as M from the
transfer system prompt.
SORT - Sorts the current directory (or all dirs) by
filename or date.
M - Move a file. Same as //MOVE.
R - Remove any file entry from the file listing, with
the option to actually delete the file from disk
and revoke upload credit from the person who
originally uploaded the file.
UPLOADFILE - Take file descriptions from a description
file created by another BBS software. Supported
description files are those from QBBS, RA, RBBS and
PcBoard. This command can be particularly useful if
you utilize CD-ROMS that provide file descriptions
171
in one of these formats. It will read extended
descrip- tions if they are available. Note that
sometimes you might need to edit the way the file
descriptions are written in order for UPLOADFILE to
read them in properly.
Assume you are uploading files into a directory
called "Windows Games". The files are physically
located on e:\wingames, and the file descriptions
are located in a file called c:\text\wingames.txt.
Assume the descriptions are in PCBoard format.
After typing //UPLOADFILE, you will select "PCBoard"
as the format, then when prompted for the filename,
enter c:\text\wingames.txt. WWIV will then match up
the filenames and descriptions and upload them into
the current directory.
RSORT - Sort files in order of oldest first.
ALLOWEDIT (AE) - edit the ALLOW.DAT file. That file
is maintained under the "fast search" option which
may be enabled by registered sysops in the
#defines. That file keeps a list of file names
which allows a rapid search for duplications. The
sysop and a co- sysop may edit the file to add or
remove a file name. Inserting a file name, even
though the file is not actually there, will prevent
someone's uploading an unwanted file.
10.2 Conference Editor
JE (Confedit) refers to the editing of conferences.
Conferences may be setup only for Subs, only for
Dirs, or for both. When you enter JE you will be
asked if you wish to edit subs or dirs. Select
dirs and you will see a listing such as the one
that follows. Note that part of the header has
been eliminated to fit the margin requirements.
For a more complete explanation of the header and
its meaning, check the Confedit discussion in the
Main Menu Commands section. [pic10] [pic11]
Des Name LSL HSL LDSL HDSL LAge HAge LoBPS S A W
╔════ ═══════════ ═══ ═══ ════ ════ ════ ════ ═════ = ═ ═
╚═ A General 10 255 30 255 0 255 0 A N N
├─── Dir #20: BBS Programs & Non-WWIV Utilities
├─── Dir #21: Front-End Mailers & Other Net Utilities
├─── Dir #22: Zippers & Other Compression Utilities
172
├─── Dir #23: Terminal Prgs. & Protocols
├─── Dir #24: Virus Protection
├─── Dir #25: Miscellaneous Files
├─── Dir #26: Text Files
├─── Dir #27: Graphics -- Files & Utilities
As with JE for subs, this permits you to include or
exclude a directory, or to use C)lear to remove all
directories listed in the conference or F)ill to include
all directories in the conference.
Information on Chains (On-Line Programs)
╔═══════════════════╗
║ Chain Information ║
╚═══════════════════╝
11.0 Chainedit
The Chainedit function is also quite similar to the
Boardedit function. The chainedit is a means of adding
/deleting/modifying on-line programs. The information
presented here should be sufficient to enable the sysop
to setup many on-line programs.
The designation of chains originated in Turbo Pascal
versions of WWIV when the BBS literally "chained" to the
program. Although WWIV no longer operates in that
fashion and is no longer written in Pascal, the CHAINEDIT
terminology has remained.
Not all files can be run as external programs from
WWIV. Only those files that do all I/O through DOS calls
can be run. This means that Wordstar, WordPerfect, the
Norton Utilities, and most other graphics programs can
NOT be run from WWIV.
When Chainedit is run, a summary of the chains
currently available, if any, is presented as a listing.
Available options are: Insert, Delete, Modify and Quit.
When a new chain is inserted or an old entry is modified,
the sysop is given a chance to change the following
data:
11.1.A Description
The description of the chain, printed out for callers.
For example, you might have something like Food Fite--The
Ultimate Challenge, or merely Food Fite. Many sysops put
173
the version number of the game after its title so that
users will know whether or not a "new" version that they
may have seen elsewhere is running on this bbs. Many
users will upload the "latest" version to the Sysop if
that version is not currently running.
11.1.B Filename
The filename actually executed. The program to be used
can have either an EXE, COM, or BAT extension. Programs
with a BAS or CHN extension cannot be run from WWIV. If
you put a "%1" anywhere in the filename, before the chain
is executed, the %1 will be replaced with a full path and
filename of a text file the bulletin board creates
holding data about that caller, such as the caller's
name, security level, time left, etc. For most programs
explicitly written for WWIV v4, the %1 should be placed
after the filename. If you do not, you will see a
"Parameter file not found" error message. If you see that
message when running a chain, add the %1, as in "tw2001
%1".
If the program is not specifically made for WWIV, it
may be necessary to run it from a batch file which you
create and the batch file may first need to run a
chain.txt converter. Chain.txt is the file that the BBS
creates with the user information in it. The converter
processes the information and creates a new file in the
format required by the game that you are running. For
example, a game designed for QBBS or RBBS would require a
DORINFO1.DEF file.
There are several popular converters which will make
such a file from the information in chain.txt. Beginning
with v4.23, the BBS software will make DOOR.SYS,
DORINFO1.DEF, and CALLINFO.BBS in addition to the
CHAIN.TXT.
11.1.C SL
The SL (security level) required in order to run the
chain. Most sysops will set this at the level of
validated users or higher.
11.1.D AR
The AR required in order to run the chain. The sysop
can allow only certain people to play the game by adjust-
ing the AR. This may be particularly useful if the game
is limited to a certain number of players. People can
sign up to play the game and those chosen for the first
174
round can be given the appropriate AR. When the game
ends, a different group of players can then be given the
AR.
11.1.E ANSI
If ANSI is required in order to run the chain.
Because some games or on-line programs make extensive use
of Ansi screens, those users who do not have ansi may
experience significant problems with the game. This
feature allows you to screen out the people who do not
have ansi capabilities.
11.1.F Intercept DOS calls
Many programs run remotely will not have built-in code
for accessing the modem. For these programs, the BBS
should be set to intercept the DOS calls, and "re-direct"
the output to go to the modem, as well as the screen. It
is possible, however, that you will have a program that
will do its own modem access, in which case it should be
set so that the BBS won't intercept DOS calls. In most
cases, you WILL want the BBS to intercept DOS calls. If
the game does not seem to operate properly, you may need
to experiment with this setting. As a general rule, you
should try having the BBS intercept DOS calls for those
games designed specifically for WWIV and try having the
BBS not intercept DOS calls for those games designed to
be run on other systems. These settings may still need
to be changed, but the general rule is sound advice for
what to try as the initial setting for this variable.
11.1.G 300 Baud
Some programs use ANSI graphics to such an extent that
the display rate with 300 baud connections would be
intolerable. With this setting, the sysop can prohibit
300 baud callers from using the chain.
11.1.H Shrink
The Shrink feature was introduced in WWIV v4.10. This
option handles memory very differently from the way it is
handled if this feature is not used. With Shrink set to
off, the BBS remains in memory when you run an external
program, thus restricting the maximum size of the program
you can use. With Shrink set to on, the BBS will
essentially unload from memory, allowing larger externals
to be run. Shrinking reduces the amount of memory the
BBS occupies to around 4k. Other than this different way
175
of handling memory, chains run with Shrink operate just
as they do without Shrink - except for a slight delay
when entering and exiting the program. If memory is a
problem on your system, use Shrink. Otherwise, it isn't
necessary to use it. Generally, the larger the program
to be run is, the more desireable it will be to use the
shrink feature.
11.1.I Disable Pause
This feature was added in v4.20. Some games, such as
the on-line program TETRIS, do not work well when the BBS
attempts to pause the screen. If the user has pause
toggled ON in the defaults, then the bbs will attempt to
pause after the number of lines of vertical height that
the user had specified. This option allows the sysop to
disable the user's pause option as he enters that
particular program. When the user exits, the pause
status will be reset as it was before the program was
run.
The information that follows was contained in a
separate document called CHAIN.DOC. Some of it may be
repetitive of information found earlier in the
documentation.
GFILES Information
╔════════════════════╗
║ Gfiles Information ║
╚════════════════════╝
12.0 Gfileedit
Gfiles in this instance are just text files that are
available to callers to read; in other words, they are
similar to bulletins. With Gfileedit, the file
directories for gfiles may be created and the particular
gfile areas which callers can access can be designated.
Most WWIV Sysop functions behave in similar ways.
This enables a sysop to learn how to use each of them
very quickly, without having to know many different
commands and parameters. As with the previous commands
already presented, Gfileedit displays a summary of gfile
directories currently in place, if any. The insert,
delete, modify and quit options are again available.
When inserting a new gfile section or changing an old
176
one, the following data can be modified: [pic14]
12.1.A Name
This is the name of the section shown to the user.
This name should describe the kind of files to be
displayed in that directory, such as humor,
communications, ANSI, etc.
12.1.B Filename
The filename for the section. In this instance,
however, the filename is ALSO the directory where the
gfiles for this section will be stored. The directory
chosen will be a sub-directory of the main GFILES
directory. After the filename is entered, you will be
asked if you want to create the directory. If you say
no, you will have to create it yourself (i.e. manually).
In either instance, once the directory exists, the files
or bulletins to be displayed must be moved to it.
12.1.C SL
The sysop can set the SL required for section access.
Callers cannot add their own gfiles to the section, so
there is no "post" SL involved.
12.1.D Min. Age
The sysop can set the minimum age necessary for
section access. This feature is sometimes used if the
gfiles section contains some "adult" material.
12.1.E Max Files
The maximum number of gfiles in the section (can be up
to 99) is set here. Once the maximum number is reached,
additional gfiles cannot be added unless this setting is
increased. The section cannot be increased beyond 99
files per separate directory unless the source code is
modified. Such modification is only available to
registered sysops.
12.1.F AR
AR required for section access is established by the
sysop with this parameter. This option works exactly the
way it does in Boardedit.
177
12.2 Gfile Commands in the Gfile Section
12.2.A A - Add Gfiles to All Sections
When the Sysop enters the gfiles section (command G at
the main menu), hitting A at the SECTION prompt (first
prompt given) will add gfiles to ALL sections.
Hitting A within a section will add files for that
section only. When the add files to a gfile section
option is selected, the BBS will search that section's
directory for files to add. For every file it finds, it
will prompt for a description. Once a description has
been entered, that file will be accessible to anyone who
is capable of using that gfile section.
12.2.B R - Remove Gfiles for a Section
Selecting R within a section will allow a co-sysop to
remove gfiles.
Modem Information
╔═════════════════════════════╗
║ WWIV v4 Modem Documentation ║
║ by Wayne Bell ║
╚═════════════════════════════╝
Because so many people have problems with their modems,
and having the BBS use them, I am writing a separate .DOC
file to attempt to better describe modems, and how they
need to be configured in order to run optimally with
WWIV. Additionally, this describes how WWIV v4.20 and
later handles the modem, and how to add support for
additional modem types.
13.1 Hayes Compatability
The first thing you need to be aware of is that just
about every modem manufactured for the IBM claims to be
"100% Hayes compatible." This doesn't actually mean that
it is 100% compatible, but only that it is relatively
close (would you buy a modem that is advertised as 99%
compatible?). With 9600 and faster modems, Hayes
compati- bility means very little. Each modem handles
high speed differently, and special support may be needed
for each brand of modem.
178
13.11 Modem Cables
For external modems, one important feature is your
modem cable. In order to work correctly with WWIV, the
following pins need to be connected from the modem to the
computer (all are pin numbers on the DB-25 connected to
the modem): 2,3,7,8,20. If any of these are not
connected, the modem probably won't work correctly, so
you'll need a new modem cable. Fortunately, just about
all straight serial cables manufactured correctly connect
these pins. If your modem cable has sealed connectors on
the ends, don't tear it apart; it is probably fine.
However, If you made up your own cable (or had someone
else make you up one), you might want to check it out.
13.12 Carrier Detect (CD)
For both external and internal modems, the first
important setting you need to have on your modem is the
carrier detect. Most modems have two settings for
carrier detect (or CD). Either CD is ALWAYS ON, or CD
tracks the state of the carrier. Using the second
setting, WWIV is correctly able to tell if a remote
caller is connected by checking the CD lead. But, for
some damned fool reason, most modem manufacturers set it
to default to the always on state.
13.13 Dip Switches
On some modems, there will be a physical switch that
you will need to check (and probably change). On some
modems (such as Hayes external), you'll need to pop off
the face-plate and use a pencil or something to flip the
DIP switch. Other external modems may have the DIP
switches located on the back panel. So, pull out your
modem manual, and check which switch affects the CD or
DCD lead, and have it set so that it ISN'T ALWAYS ON.
Internal modems that have DIP switches place the switches
on the modem card.
With some modems, there are "logical" (changed via the
keyboard) switches that determine the CD status. The
keyboard command for the Prometheus 2400G, for example,
is &&C1. The WWIV modem configurations default to &&C1
for all 2400 or faster modems.
13.14 Data Terminal Ready (DTR)
The second important setting is the data terminal
ready line (DTR), which is like the CD lead. The DTR
lead is what WWIV uses to send a 'hang up' command to the
179
modem. Usually, the DTR lead is ON until WWIV turns the
DTR lead OFF, at which time the modem should hang up.
Most modems can be set so that the modem will completely
ignore the DTR status. Also, by some quirk in the
Universe, it is also usually set by the manufacturer to
ignore DTR status instead of correctly looking at it.
So, if you have physical switches on your modem, whip
out your manual again, and find which switch you need to
check so that the modem will hang up when DTR is dropped.
For the modems without physical switches, you need to
find the command for that setting. For the 2400G, the
correct command is &&D2, which is described as, "Modem
goes on-hook, assumes command state and disable
auto-answer with ON-to-OFF transition." Fortunately,
(again), the WWIV modem configurations default to setting
&&D2 for all 2400 or faster modems.
13.15 Options Available if MODEMS.MDM does not work
Contained in the WWIV software ZIP file is a file
named MODEMS.MDM. This file contains setups (or
configurations) for most modems. The .MDM file is what
INIT reads to create a modem data file, which is what the
BBS uses. If none of the standard configurations in the
MODEMS.MDM seem to work for your speed/ make/type modem,
you have several options:
1. You can 'tweak' an existing configuration in the
MODEMS.MDM file
2. You can build your own configuration and add it to
the end of the MODEMS.MDM file
3. You can create your own .MDM file (file name can
be named any legal DOS file name, but MUST have
the .MDM extension
4. Write me for help
Modem configurations are placed in the BBS data
directory, and the data itself is stored in text format
(for easy editing with any ASCII editor). Only the file
MODEMS.MDM can contain more than one configuration. Any
other *.MDM file can contain only one configuration, and
does not require a "FILE:" line, as the file name (before
the .MDM) is the name. Don't worry, that will be
explained later. Also, the MODEMS.MDM file is the only
file that can contain auto-selection lines.
180
Described below are examples of the above options.
WWIV defaults to the optimal setup for most non-MNP
300, 1200 and 2400 baud modems. These are the "H0300",
"H1200" and "H2400" configurations, which are described
below. Some modems are a bit slow to respond after they
send the RING result code, and do not properly answer the
phone when it rings (despite WWIV saying that it has
answered the phone). If the BBS does not answer the
phone when it should, try one of the "S" configurations -
"H1200S" or "H2400S". This should take care of the
problem. The only difference between the "S"
configurations and the normal ones is that the "S"
configurations have a different ANSR: string, which as a
"~" (tilde) at the beginning. The tilde causes about an
0.5 second delay, giving the modem some time before the
"ATA" is sent. If this still doesn't work, try editing
the appropriate configuration file, and adding an
additional tilde on the beginning.
If one of the 300, 1200 or 2400 configurations does
not work for your modem, you have two choices: 1) read
about the WWIV modem configuration file, located below,
and modify (tweak) the appropriate section to get it to
work, or 2) contact me via one of the methods in the
'READ.ME' file, and see if I can get it to work for you
(or if I already have an updated configuration file that
supports your modem). If you have a good understanding
of how modems work, I'd suggest trying to figure it out
on your own first.
In any case, if you have to modify a part of the
default configuration file to get your modem to work,
please send the updated configuration section (be sure to
update the modem name and description also) to me, so
that I may include that configuration in future releases
of WWIV. This will help other sysops who purchase the
same model modem.
Some MNP and 9600+ modems require special
configuration. Fortunately, most of the high-speed modems
on BBS's (that I know of) are USRobotics modems, and WWIV
already knows how to handle the USRobotics high-speed
modems.
If WWIV does not currently support the type of high-
speed modem that you have, you can try building your own
configuration section for it. However, unless you are
VERY familiar with how the modem works, I'd suggest not
trying that. Even if you are able to use your high-speed
181
modem perfectly with your terminal program, the same
config- uration will NOT work for the BBS. The reason
is, in the terminal program, you (the user) are sitting
there, and are able to interpret the result codes and fix
things if problems occur. There is nobody around to help
a BBS if it gets confused. Also, the BBS needs very
specific information on the modem (including flow
control, buffering, baud rates, result codes, etc.) in
order to work properly for the variety of callers and
modems that connect with it.
If you are unable to get your own configuration to
work (or don't want to try), you'll pretty much have to
contact me directly. There is a good chance I will
already have the configuration file for your modem, and
can forward it (e-mail) it to you. When contacting me,
BE SURE to include as much information about your modem
as possible. Telling me only that it's supposed to be a
Hayes compatible modem just won't do it. I need
manufacturer, model number, maximum speed and what the
modem returns when you enter 'AT'<enter> and 'AT0'<enter>
when in a terminal program.
If I find I DON'T already have a configuration file
for it, then I will need a fair amount of information on
the modem to get it to work. In all likelyhood, if you
call up technical support for your modem manufacturer,
and ask them to send me (a developer) a copy of the
manual, they probably won't mind. With a manual, I can
probably work it out from there (at no cost to you). If
you send me YOUR copy of the manual, don't expect me to
mail it back. I just don't have the time to be running
to the post office every few days.
If your modem type is not currently supported, I
REALLY WOULD like to get a configuration setup for that
modem and support it in WWIV. Please do not think that I
am unwilling to support all types of modems. I do want
to support them, and will put in the time necessary to
get your modem working. But remember: I will need quite a
bit of info on your modem type.
13.20
╔═══════════════════╗
║ About MODEMS.MDM ║
╚═══════════════════╝
Creating a new section of the modem configuration file
does not require any programming knowledge; it only
requires in-depth, intimate knowledge of how the modem
182
works. I would not suggest that anyone try to set up
their own modem configuration section from scratch;
rather, take one of the existing configurations, and
tweak it as necessary.
Modem configurations are stored in text format (for
easy editing with any ASCII editor), in *.mdm files in
the data directory. The file 'modems.mdm' contains the
default configurations (multiple configurations). Any
other *.mdm file can contain only one configuration, and
does not require a "FILE:" line, as the file name (before
the .mdm) is the name. Don't worry, that'll be explained
later. Also, the 'modems.mdm' file is the only file that
can contain auto-selection lines.
13.21 Explanation of a sample 2400 baud modem file in
MODEMS.MDM
Let's start out with a sample configuration (for a
2400 baud modem), and explain the various parts of it
(this configuration is from the MODEMS.MDM file).
##########################################################
#
# Hayes compatible 2400 baud modems.
#
FILE: "H2400"
NAME: "Hayes compatible 2400"
NOTE: "If the BBS doesnt answer the phone, try H2400S"
NOTE: " configuration."
SETU: "AT&&C1&&D2Q0V1{"
INIT: "ATC1E0F1H0M0Q0V1X4S0=0S2=1{"
ANSR: "ATA{"
PICK: "ATH1{"
HANG: "ATH0{"
DIAL: "ATDT"
SEPR: ""
DEFL: MS=2400 CS=2400 EC=N DC=N AS=N FC=N
RESL: "OK" "Normal" NORM
RESL: "RING" "Ring" RING
RESL: "NO CARRIER" "No Carrier" DIS
RESL: "ERROR" "Error" ERR
RESL: "NO DIAL TONE" "No Dial Tone" NDT
RESL: "NO DIALTONE" "No Dial Tone" NDT
RESL: "BUSY" "Busy" DIS
RESL: "NO ANSWER" "No Answer" DIS
RESL: "RINGING" "Ringing" RINGING
RESL: "VOICE" "Voice" DIS
RESL: "CONNECT" "300" MS=300 CS=300 CON
RESL: "CONNECT 1200" "1200" MS=1200 CS=1200 CON
183
RESL: "CONNECT 2400" "2400" MS=2400 CS=2400 CON
[Editor's Note: The spacing of the last three lines was
altered to fit the margin requirements of this doc. The
original had three more spaces between the baud rate
designated in quotes and the MS= information.
13.22 Three Groups
As you can see, the modem configuration is made-up of
three groups: The STRING lines (FILE, NAME, NOTE, SETU,
INIT, ANSR, PICK, HANG, DIAL, SEPR), the DEFAULT SETTINGS
(DEFL), and the RESULT CODE lines (RESL).
The "FILE" line gives the "file name" of the
configuration. If you took the configuration above
(minus the FILE: line), copied it from the modems.mdm
file, and put it in a "H2400.MDM" file in the data
directory, every- thing would work exactly the same. The
"FILE" entry just allows you to put multiple
configurations into the 'modems.mdm' file, and not
clutter up your data directory with lots of *.mdm files
that you don't need.
Each of the strings allows control characters and
delays to be specified. A "{" is converted to a
carriage-return. A "~" is converted into an 0.5 second
delay. Any string such as "^J" is converted into the
specified control character (here, control-J, or a
linefeed). Any string such as "\^" or "\~" quotes the
character after it, allowing you to put a ^ or a ~ into
the string. Also, each string is terminated by either a
single or double quote. If you need to actually have a '
or " in the string, you will need to 'quote' the quote,
as in \' or \".
"NAME:" gives a textual name/description of the modem,
which is displayed in INIT section 5, along with the file
name, which is used to help select the correct config-
uration.
"NOTE:" A note that is printed out for the user when
the specific modem configuration is selected, giving any
caveats for the configuration.
Multiple NOTE: lines may be specified, however you
will need to end each line with "^M^J"
(carriage-return/line-feed), so it looks nice for the
user.
"SETU:" gives the setup string for the modem. This
184
string is sent out once each time the BBS is loaded and
run.
"INIT:" gives the initialization string for the modem.
This is sent out to the modem when the BBS is first run
(but after the SETUp string), and after each caller hangs
up.
"ANSR:" gives the string sent to the modem to tell it
to answer the phone (such as after the RING result code
is received).
"PICK:" gives the string to pick up the modem (take
the phone off-hook), to prevent users from calling and
getting a ring (thus thinking the BBS is down).
"HANG:" gives the string to hang up the phone (after
the PICK string is sent).
I believe every modem in the world will probably use
the same strings for ANSR, PICK, and HANG. (Except, some
modems (as noted earlier) are slow, and need the answer
string to be "~ATA{" (pause 1/2 second before sending the
answer string).
"DIAL:" gives the dial prefix. If your phone line
does not support tones, then changing it to "ATDP" will
use pulse dialing. Putting "ATB1DT" will cause a USR
Dual Standard to dial out with the HST protocol (instead
of V.32, since "B0" is in the init string).
"SEPR:" gives separation characters for the result
codes. This will be discussed later, under the
high-speed modem section.
"DEFL:" gives the default modem setup. It gives,
essentially, modem result configuration info.
"RESL:" gives modem result code info. There are two
strings, then the result configuration info.
The first string is the actual "result code" received
from the modem. Here, verbose result codes are used.
(All result codes are converted to uppercase).
The second string is the description of the result
code, presented to the user.
The result configuration info gives information
describing the modem result code. The possible strings
in this area are:
185
NORM normal state of modem
RING phone is ringing
RINGING remote phone is ringing
ERR error encountered
DIS disconnected (No connection)
NDT no dial tone (same as DIS)
CON connection established
MS= modem speed
CS= com port speed
AS= asymmetrical baud rates (Y/N)
EC= error correcting (Y/N)
DC= data compression (Y/N)
FC= flow control (Y/N)
For 2400 or slower modems, you'll pretty much just
have "MS=2400 CS=2400 CON" (or whatever the baud rate
is). The other flags are used for high-speed modems.
So, how do you modify this information? You pretty
much take it as-is, and modify it. Say your modem had a
result code indicating connection at 600 baud. You'd
then just add a line saying:
RESL: "CONNECT 600" "600" MS=600 CS=600 CON
And that would be it. If you needed additional
initialization strings sent to the modem, then you'd just
add that into either the setup or init strings (depending
on if you needed it sent only once, or for each caller).
Beware, though: Most modems only have a 40 character
buffer, so if you make the strings too long, it might not
work.
Thus, modifying a 2400 or lower modem configuration
should be fairly simple (if you know what you need it to
do). 9600's, however, are much more complicated.
If/when you need to modify a modem configuration, you
should first take the configuration you are starting
with, and copy it out of the 'modems.mdm' file into a
separate file. If, say, you need to tweak the H2400
configuration for your Prometheus modem, you'd copy the
H2400 config- uration (minus the FILE: "H2400") into a
file, say, "PROMETH.MDM" in your data directory. Then
you'd modify the NAME: and NOTE: lines for the new modem
type. Then, when you're done, you can easily distribute
the new configuration (as the file PROMETH.MDM) to other
people who might need it (and also send a copy back to
me, so I can include it in future versions of the
modems.mdm file).
186
13.30 Explanation of sample hi-speed modem in
MODEMS.MDM
The configuration for the latest USRobotics high-speed
modems is:
########################################################
#
# Newest version of USR HST/V.32bis/DS modems
#
# This really returns the optimal information.
# Editor's note: The SETU line in the actual MODEMS.MDM
# a single line; it has been broken into SETU1 and SETU2
# in this doc due to margin considerations.
FILE: "USRC31"
NAME: "USR Courier (Newest, With rectangular LEDs/V.32bis)"
CONF: "ATZ{~~~~~~~AT{~~AT&&W{"
SETU1: "ATC1E0F1H0M0Q0V1X6&&A3&&B2&&C1&&D2{~~AT&&H1&&I0&&K>
SETU2: "&&N0&&R2&&S0S0=0S2=1{" See Editor's comment above.
INIT: "ATB0H0M0{"
ANSR: "ATA{"
PICK: "ATH1{"
HANG: "ATH0{"
DIAL: "ATB1DT"
SEPR: "/"
DEFL: MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
RESL: "OK" "Normal" NORM
RESL: "RING" "Ring" RING
RESL: "NO CARRIER" "No Carrier" DIS
RESL: "ERROR" "Error" ERR
RESL: "NO DIAL TONE" "No Dial Tone" NDT
RESL: "BUSY" "Busy" DIS
RESL: "NO ANSWER" "No Answer" DIS
RESL: "RINGING" "Ringing" RINGING
RESL: "VOICE" "Voice" DIS
RESL: "CONNECT" "300" MS=300 CS=300 CON
RESL: "CONNECT 1200" "1200" MS=1200 CS=1200 CON
RESL: "CONNECT 2400" "2400" MS=2400 CS=2400 CON
RESL: "CONNECT 4800" "4800" MS=4800 CS=4800 CON
RESL: "CONNECT 7200" "7200" MS=7200 CS=7200 CON
RESL: "CONNECT 9600" "9600" MS=9600 CS=9600 CON
RESL: "CONNECT 12000" "12000" MS=12000 CS=12000 CON
RESL: "CONNECT 14400" "14400" MS=14400 CS=14400 CON
RESL: "ARQ" EC=Y CS=38400
RESL: "HST" '/HST' AS=Y
RESL: "V32" '/V.32' AS=N
RESL: "MNP" '/MNP' EC=Y
RESL: "LAPM" '/LAPM' EC=Y
RESL: "MNP5" '/MNP5' DC=Y
187
RESL: "V42BIS" '/V.42bis' DC=Y
RESL: "NONE" EC=N
RESL: "SYNC"
[Editor's Note: The CONNECT lines should have the MS
information and so forth lining up under the DIS of the
previous line.]
As you can see, much of it is the same.
One of the differences is that the setup string is
divided into two portions, to get around the (stupid) 40
character buffer in the modem.
Another major difference is the "CONF:" line. This
configuration line is sent out from the INIT program, when
the specific modem configuration is selected. It is sent
out at the maximum baud rate the modem runs at. For the
USRobotics here, it sets the baud rate in the NRAM to 38400
baud. This is important, as this stored baud rate is used
by the modem when an error-correcting connection is made.
Modems such as the Compucom (which does not have any NRAM)
will not need a CONF: line.
A subtle, but important, change is that the SEPR: is now
set to "/". The USRobotics result codes are sent out in
strings such as "CONNECT 9600/ARQ/V32/LAPM/V42BIS". The
SEPR: "/" tells the BBS to split up that big result code
into several "partial result codes", at the separator
character. Thus, the above result code will be split into
"CONNECT 9600", "ARQ", "V32", "LAPM, "V42BIS", which is
much easier for the BBS to handle. Each one of the partial
result codes is then processed independently, in order.
All of the partial result codes are processed before any
connected/disconnected decision is made by the BBS.
Now, the "DEFL:" line here says that, by default, the
state of the modem is (in order) running at 38400 bps, non-
error-correcting, no data compression, not
asymmetrical, and flow control IS needed. When a result
code is received, all the modem settings are assumed to be
at the DEFL state. The result configuration info for each
partial result code modifies each field independently,
starting from the DEFL state.
Each of the "CONNECT" partial result codes simply sets
both the modem speed (MS=) and the com port speed (CS=) to
the baud rate specified, same as for 2400 baud modems.
Suppose we got the result code
"CONNECT 14400/ARQ/HST/HST/V42BIS".
188
We start out at the default:
Partial result code modem settings after processing
At beginning, DEFL MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
"CONNECT 14400" MS=14400 CS=14400 EC=N DC=N AS=N FC=Y
"ARQ" MS=14400 CS=38400 EC=Y DC=N AS=N FC=Y
"HST" MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
"HST" MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
"V42BIS" MS=14400 CS=38400 EC=Y DC=Y AS=Y FC=Y
Which means:
MS=14400 The user's throughput is 14400 bps
CS=38400 The BBS should talk to the modem at 38400
bps. (Due to the &&B2 setting)
EC=Y Error correction is active (LAPM/MNP2-4)
DC=Y Data compression is active (V.42bis/MNP5)
AS=Y Asymmetrical baud rates. This is because,
with the HST connection, it is only 14400
bps in one direction. The other direction
is only 450 bps.
FC=Y Flow control is still active.
The "CON" at the end of each of the "CONNECT" lines means
that the user is connected. Even though the "CON" is
processed in the first partial result code, the remaining
partial result codes are still processed.
Note that, for the HST, V32, etc, partial result codes, the
description of the partial result code is in single-quotes
(vs double-quotes for the CONNECT descriptions). If the
description is in double-quotes, then any previous
descriptions is OVERWRITTEN. If the description is in
single-quotes, then the description is APPENDED to any
previous partial description. For the result code above,
the description would end up being "14400/HST/HST/V.42bis"
For the ARQ partial result code, there is no
description, and so the description (so far) is unmodified
by the "ARQ".
How do you make your own modem configuration file? A
lot of it will probably be the same as other configurations
(ANSR, PICK, HANG, DIAL, the first few RESL), however you
will certainly have to completely re-write the SETU and
INIT strings. You will also almost certainly have to
modify the DEFL line, and the RESL lines for the connecting
result codes.
There are also length limits on the strings:
189
file: 8 chars
name: 80 chars
note: 4096 chars TOTAL (for however many NOTE: lines you
have)
conf: 160 chars
setu: 160 chars
init: 160 chars
ansr: 80 chars
pick: 80 chars
hang: 80 chars
dial: 80 chars
sepr: 9 chars
result code from modem: 40 chars
result code description: 30 chars
Also: the sepr: string may contain multiple chars. It
is not really a "string" as a "list of chars". If you know
C, this string is passed to strtok().
Auto-selection:
WWIV maintains a database for automatic modem type
detection in the MODEMS.MDM file. The data comprise a sort
of "state machine". When trying to detect a certain type
of high-speed modem, it starts out in state 1. If/when it
gets to state 0, then it has detected the modem type. If
it passes through the entire list without passing any of
the rules, then it determines that it cannot determine the
modem type.
The first column is the "start" state. The second is
the "end" state. If the current state is equal to the
"start" state, then the string in the fourth column is
sent to the modem. If the response is equal to the string
in the fifth column, then the state transition is made,
and the current state is set to the "end" state, and the
currently detected modem type is set to the string in the
third column.
Note that the auto-selection data is used ONLY if the
modem responds at 9600 baud or higher.
Also note that it is not important for you to put in
auto-selection data to detect your modem type. The auto-
selection stuff is only a nicety, and you can always go
into init section 5 and pick whichever modem data you
want.
190
Managing Multi-Instances
14.0 The Instance Concept
Some BBS software's are strictly multi-line and some
are multi-node (meaning more that one keyboard accessing
the BBS); WWIV is capable of being both multi-line and
multi-node. Instead of using that terminology, we have
used "instance" to indicate more that one "instance" of
the BBS accessing the same user.lst. Some applications
of WWIV are "no line" in the sense that all users are on
a LAN with no outside phone lines; others are multi-line
with only the single computer with one keyboard being the
local "instance." The new multi-instance software
available in v4.23 will accomodate both of these
situations and many points in between. The purpose of
this section of the docs is to address some of the issues
involved in handling the multi-instance bbs from a
sysop's point of view.
14.1 INIT EACH INSTANCE
INIT must be run for each instance that you wish to
use. You are able to identify which instance you are
working with by the following command to INIT:
INIT ,x
where x represents the number of the instance you wish.
If the instance has a modem attached to it, you should
define the comport and select the modem type. If there
is no modem attached, you may ignore the comport and
other modem options.
You must define the path to a temp directory, and if
batch downloads are permitted for this instance, you must
define a batch directory. To avoid confusion, you might
use directories like TEMP2, TEMP3, etc.
INIT.EXE will permit you to run it with any number
following it; however, it will only create a viable setup
for you if you have upgraded your software (See
UPGRADE.FRM), to have that number of instances enabled.
Although an unregistered sysop may have two instances,
only one of them should have a phone line attached until
the sysop has registered the software.
14.2 CAUTION MUST BE USED
Caution must be used when a user is on the board and
the sysop is performing certain maintenance. The general
191
rule is that the sysop should not do anything which will
cause the user's qscan or newscan pointers to be updated
and should not do anything which would force the network
data to reanalyze. If something is done that forces
either of these two events to occur, the results may be
unpredictable and it is possible that harm will come to
your USER.LST or to other files. Thus the sysop should
insure that no one else is on the board when performing
this type of maintenance. The methods of shutting down
the other instances is discussed in the next section.
14.3 Shutting down Instances
There are several ways of shutting down the other
instances:
a) //INSTEDIT or //IE while the sysop is on the BBS
will permit limited manipulation of other instances
and will allow the sysop to view the status of the
other instances.
b) TAB at WFC will invoke the instance editor and
allow the sysop to use these functions:
1. View the status of all instances
2. Shut down one instance
3. Shut down all instances
The sysop may create OFFLINE.MSG which will be printed
out if the sysop has selected to shut down one instance
or all instances. If the file does not exist, the
instances will simply be shutdown the same as if someone
had used Q at WFC.
These methods of shutting down instances may seem un-
necessary to the sysop who may have 2 or 3 computers in
the same room and who could shut them down by hand rather
quickly; however, in an office situation where many
computers may be involved and where the computers may be
located in many different offices, it is handy to have a
means thru which the system can be shut down for
maintenance if necessary.
14.4 Multiple Simultaneous Logons
A person with 255 access is allowed to be logged into
more than one instance simultaneously. That is, the 255
access level allows the sysop to be on several instances
at once if necessary (ie for testing or whatever). How-
ever, a person who does not have 255 access and tries to
log onto more than one instance, a message (color 6) is
192
printed:
"You are already online on instance x!"
and the logon attempt would fail, counting as one of the
three tries at logging on. NOTE: If you, as sysop, use
//CHUSER or //CU to change to someone else's account,
they will not be able to logon until you have completed
"being them."
User On Line
16.0 Function Keys
There are many things that the sysop can do while a
user is on-line. The function keys have been specifically
designed to aid the sysop control the BBS while a user is
on line. These functions are discussed below and Fx
refers to the F(unction) Key #x.
16.1 Edit User Info - F1 Key
The sysop learns the use of the F1 key when first
setting up the BBS (see page 86). When a user is on-line,
the sysop can hit F1 and provide the user with the SL,
DSL, ARS and DARS that are appropriate. The user will
see the [WAIT] message while the sysop is accessing the
user data and the message will disappear once the sysop
exits the user editor function.
16.2 Toggle Top Screen - F2 Key
The F2 key allows the sysop to toggle the top of
screen information (see Chapter 35 for the meaning of
the information in the Top of Screen). The user is not
aware of what the sysop is seeing at the top of the screen
as the information is not echoed to him via the comport.
16.3 Toggle Remote Typing - F3 Key
The F3 key will disable/enable the remote user from
typing input. This can be handy if the user is doing
something that he should not be doing, or if the sysop is
about to do something and wants to insure that the remote
user cannot enter anything that would interfere with the
activities of the sysop.
16.4 Turn off Chat Call - F4 Key
The F4 key allows the sysop to turn the chat call off.
193
This may be useful if the sysop is otherwise occupied and
a user is being persistent about trying to chat.
16.5 Drop Carrier - F5 Key
This key will drop carrier on the user without any
warning being provided or any message being sent. For
other means of dropping carrier, see the Shift F5 and
Control F5 functions discussed later.
16.6 Toggle User Alert - F6 Key
The user alert lets the sysop know when the current
user has logged off of the BBS. This alert is handy when
they sysop wishes to log on the board but does not want
to drop carrier on the current user. The user alert lets
the sysop be sure to be the next person to log on the
BBS because no one else can log on until the sysop has
done so.
16.7 Decrease User Time by 5 minutes - F7 Key
This key decreases the user's time on line by 5
minutes each time that it is pressed. The decrease in
time is temporary (i.e. for this call only) and does not
affect the next log on by the user.
16.8 Increase User Time by 5 minutes - F8 Key
This key increases the user's time on line by 5
minutes each time that it is pressed. The increase in
time is temporary (i.e. for this call only) and does not
affect the next log on by the user unless the user
deposits the time in the Time Bank.
16.9 Temporary Sysop - F9 Key
At times, the sysop may wish to either grant the
user temporary sysop status or may wish to do something
by taking over from the user and granting temporary sysop
status to the user. For example, the //upload function in
the transfer section is a sysop function that is normally
not available to the user. If the sysop wished to copy a
file into a directory and then make it available to the
user by //uploading it, he would need to grant temporary
sysop status to the user in order to do so. Note that the
file would show that it was uploaded by the user in the
file information.
194
16.10 Toggle 2-way Chat - F10 Key
The F10 key allows the sysop to toggle between two-way
chat and non-2-way chat. This sometimes is necessary if
the user cannot see the two-way chat properly (i.e. the
user does not have ansi on).
16.11 Alt Function Keys
Accessing the function keys with the ALT key held down
will validate users according to the auto-validation
scheme enabled in INIT (see page 144).
16.12 Drop Carrier with line noise - Shift F5
By holding the Shift key down while pressing F5, you
cause carrier to be dropped on the user and the user will
see what looks like line noise printed on the screen.
16.13 Drop Carrier with time out - Control F5
When the BBS times out (i.e. drops carrier due to the
user's not hitting a key within the relevant time period),
it prints a message to the user - "Call back when you are
there." By holding the control key down and pressing F5,
you drop carrier and give the user the timeout message.
16.14 Drop to Dos - Shift F10
The sysop can drop to DOS while the user is on line
by holding the shift key down while pressing F10. The
user will see the [WAIT] message on the screen and will
not be aware of what the sysop is doing at the DOS level.
16.15 Toggle Regular Chat - Control F10
This key enables the sysop to toggle regular chat if
the BBS is set for two-way chat. It is very similar to
the F10 function.
The function keys provide a lot of power to the sysop
and allow the performance of many functions while re-
maining invisible to the user.
195
F.A.Q.s - I
╓─────────────────────────────╖
║ Frequently Asked Questions ║
╙─────────────────────────────╜
Q: I can only open one Instance of WWIV in Desqview 2.6X
at a time? What is the deal???
A: Do this:
Run Memory Status inside DV. Max out the system memory
on Instance 1. Give it every byte it will take and still
load. This will work out to all system memory available,
minus 9k or so. Then, copy that .DVP over for Instance
2. The key: Begin lowering the memory requirements for
Instance 2 1k at a time till it will load.
For additional Deskview information consult the "book"
that is part of this documentation.
Multi-Language Help
Q: How do I get Multi-Language support to function in
WWIV 4.24?
A: You have to go in and define the directories in INIT.
The directories defined should point to the location
of each language module, and each module should have
its own directory. Directly off the G-files directory
is a good place to put them.
Q: I have defined all my conferences, and everything
looks fine in //JE. But all I see is the 'same old
'thang' when I log onto the BBS. What is the deal???
A: Enable conferencing under the Defaults option on the
Main Menu. Conferencing will only default to being on
for new users obtaining accounts on your system after you
have defined all your conferences. What this means is
the SysOp, and all existing users on your BBS must enable
conferencing in the Defaults option in the Main Menu. An
Auto-Message telling all users this is a good way to get
the word out.
196
Q: All my prompts are screwed up! Such as the door
choice option when a user types the . option in Main?
HELP!!!
A: You need to re-name ENGLISH.STR to BBS.STR in your
Gfiles dir.
Q: What does the /A1 mean in the network callout string?
A: The /A1 is neat and I need to document it in the
docs; I just recently figured it out via experimentation.
What that says is that on Abnormal (read unsuccessful)
completion or exit, issue an errorlevel of 1. Thus, a
normal (successful) trial gives an errorlevel of 0.
Armed with this information, I have my external event
make some little files (that I think of as status flags)
that look like this:
copy do-text W7105.sta
copy do-text W7100.sta
etc....
do-text is a one sentence file saying "Make call". Thus
the 'status' is set for all of these boards at midnight
(the ones above are examples obviously).
My batch file (run when each user logs off) does the
following (this is simplified as my 'real' one is
actually a little more complex):
:STATUS
if exist w7105.sta call w7105.bat
if exist w7100.sta call w7100.bat
etc
goto START (start of batch file)
the W7105.bat and the others, look like this:
@echo off
echo Calling WWIVnet 7105
network /N7105 /A1 /Pxxx-xxx-xxxx /S38400 (I leave off
the /T)
197
if errorlevel 1 goto QUIT
del w7105.sta
:QUIT
So, if the call is successful, errorlevel is 0 and the
w7105.sta is deleted; if it is not successful (ie
errorlevel 1) it quits the W7105.BAT and returns to the
master batch file that checks the status flag on w7100
etc.....after that it returns to start of master batch
file to be ready for another caller. In this way, I am
sure (or relatively sure) to get a successful call to
each board sometime during the time period. In my 'real'
batch file, I also do some time checking to be sure it is
within the 'cheap' hours for LD calls.
The /Txxxxxxxxx is a Time parameter that indicates the
number of seconds since 1/1/80. It is part of Wayne's
time/date stamping but is not critical for use in the
call to the network.exe.
With all of that, I can do what CLOUT does for some
people without actually using CLOUT at all. Some of this
is explained in the MEVENT.ZIP that is available here at
Dragon's Den. The MEVENT is an example of a
multiple-event batch file setup for WWIV.
Q: What is an ANSI bomb?
A: What an ansibomb does is to remap your keyboard,
making each key do something different. If you use an
ansi driver other than ANSI.SYS (like ZANSI.SYS or
NANSI.SYS, or any one of many others), it will stop it
from happening.
Q: I am getting a lot of duplicate posts on a sub I
host. Why?
A:
There are a couple reasons that double posts may be
occurring. If a node that is a subscriber of, as opposed
to the host of a sub, has the sub set up wrong in his or
her data directory, that will cause it. For instance, in
pre- v4.22 if @7101 is subscribing to subtype 57106, and
has a file entitled N57106.NET, instead of NN57106.NET in
the data directory, his node will create double posts.
198
Another, and more frequent cause of double posts is
problems with zmodem and the network transfers. For any
one of a number of reasons, zmodem may return an exit
level of something other than 0, which will cause the
packet on the sender's end to not be deleted, and thus,
it will be sent again and again until zmodem returns an
exit code of 0.
With 4.23 and Net33, duplicate posts should not be a
problem any longer.
Q: Why am I getting message headers, but no posts with
them?
I'm having some serious trouble with your messages Sam. I
used to get them fine, but now all I get are empty slots
where the text file used to be, it says "File Not Found"
etc in place of where the message should be... Do you
think somebody is deleting them before they get to me? I
get my mail from 1040 in Texas and Filo is in charge of
that so I doubt that is the case, But I haven't received
a "whole" message in about a month. Any ideas?
A:
WWIVnet has 2 files associated with each message base.
One file contains the header information and is kept in
DATA directory; the other file is the actual messages and
they are in the MSGS directory. It sounds as if either
your files are not being written into the MSGS directory
or that they are corrupt.
Here are a few things to check out:
1) Be sure each message base has a unique file name
(BOARDEDIT) with NO extension added in BOARDEDIT.
The software creates its own extension for the file
2) Be sure that you have the correct subtype for the
subs you take
3) If you are running a relatively standard userrec (ie
not modified a lot), you might obtain and run Wayne's
FIXv5 which might sort out any corrupted files that
might exist.
4) If you are using a message base optimizer to pack
messages, try not running it for awhile.
199
Keep in touch regarding your progress. This has happened
to others and it is usually solvable. If it is only
happening on one message base, this is usually an
indication that something is either setup wrong or
corrupt. If all looks good, try removing that sub,
deleting all files associated with it and then adding it
back using a different FILENAME.
Q: I want to write a mod that changes the externalized
strings.
A:
The following are a few extracts from posts made about
this subject followed by a reasoned answer:
"... Yea well, I just hope that Wayne made it easy to add
additional strings into the external string file.. Since
I noticed some of the code..
'get_external(360)' was one of the new functions..
Well... I will assume that it was getting the external
string.. So.. If that means, get external string - line
360.. that'll work, but that would be a pain for
multiple lines of string..
So, however Wayne did it.. I hope that he made it
easy for us to add our own lines in... not just change
them..."
---------------------------
[Answer begins below.]
Because this subject is of extreme importance to mod
writers, I wanted to post some information that I got
from Tolkien which appeared in the v4.22 documentation
(in slightly edited form). PLEASE, all of you who write
mods, give some thought to this.
---------------------------
Tolkien #1 @3456
Wed Nov 18 07:34:04 1992
Also, Wayne asked me to mail you and make sure the ESM-
related stuff is going to work the way you think it is.
200
He did ask me to write some doc-addition for the 4.22
docs for how people should add strings/modifications with
4.22 and later, so that follows, but obviously, edit as
you wish:
--------------------------
With WWIV 4.22's string-externalization, some things are
possible that were not previously: changing a degree of
look-and-feel of the board can be done by simply editing
data files rather than recompiling; more memory is freed
up for more productive use; and multi-language support is
on the way.
However, with the strings external now, some things
become somewhat more complicated, especially
modifications. For instance, let's say you add a
modification that uses some strings. Where do you put
those strings? If you put them right after the "stock"
strings, what happens if a later version uses those same
string index numbers?
Because of this, it would be wise for modification
writers to take some precautions so as not to interfere
with expansion of stock WWIV. There are a couple of ways
to do this. If the modification is basically a
self-contained unit, the strings it uses can be put into
their own completely separate string datafile. This also
makes porting the modification from version to version a
very easy thing to do.
If you must add the strings into WWIV's string datafiles,
then I would highly suggest adding at least several
hundred blank "pad" strings first, and then work your way
backward, so that the index numbers do not later collide
with any in use (or potentially in use in the future).
For example, let's say WWIV uses strings 1-1200. You add
a modification that uses 100 strings and for some reason
you do not wish to put it in its own separate datafile.
You should >not< simply use strings 1201-1300 because
WWIV may itself use those numbers as it is improved and
expanded. Instead, pad the string datafile out to, say,
3000 strings and use strings 2901-3000, leaving 1700
"dead" strings in between for WWIV to allocate in later
versions. Obviously this method will be more wasteful on
disk space than simply allocating a separate datafile.
In addition to these concerns, modification writers will
also need to be aware that it won't be difficult to
royally screw up the multi-lingual support. If you don't
care about that, then you can go muck about willy-nilly
and no big deal. However, because some people >do< care
201
about such support, it would be best if those who write
modifications wrote them so as to minimize screwing up
multi-lingual support.
The language each user sees is stored as a field in the
userrec. A zero value means English, and this will be all
there is for 4.22. Later versions will have other options
available. Now let's say you add a modification. Unless
you know how to translate that modification to several
different languages, you should code your modification so
that it will simply "hide itself" from anyone not using
your default language (assuming that the modification
uses strings other than symbols).
The following is a sample hunk of code (that doesn't
really exist), to illustrate what a piece of code might
look like before and after a modification, insuring that
the multi- language support is not screwed up:
/* logon code */
..
..
..
/**/
You want to change it so that if their security level is
60 or higher then it welcomes them as a sysop:
/* logon code */
..
if ((thisuser.sl>=60) && (thisuser.language==0))
pl("Welcome Visiting Sysop!");
..
/**/
First it checks to see if their security level is 60 or
greater (that's what you wanted). But it also checks to
see if their language is 0 (English). The sentence would
be gibberish to anyone not speaking English anyway. The
string is still in the code this way (though it would not
need to be). However, if the string were externalized,
then unless you created multi-language versions of that
string in each datafile, the string wouldn't even >exist<
in anything other than the English datafile, which would
cause problems.
This may sound complicated but it's not; generally all
that is necessary is the addition of an "if" statement to
trap strings for a specific language (or the addition of
a trap to an existing "if" statement, as above). Follow
these guidelines and there will be no problems.
202
--------------------------
Oh, BTW, I think we should all agree that a change to the
wording of an external string is NOT a mod. That is, if
a line says, "Enter User Name or Number" and you make it
say "Pound in Name or Number ASAP", that is NOT a mod.
Mods are changes to the source code, not to the external
strings.
Q: What does [ASV], [GSA] and [ASV/GSA] mean?
A: These are symbols which a board may use to indicate
that it supports the Guest Sysop Account [GSA] and/or
Auto-Sysop- Validation [ASV]. It also indicates that
these boards have some amount of WWIV support that is
available for download. on the first call by people
logging on under either the GSA or ASV type account.
A list of these boards is maintained and posted
occasionally by Lance Halle (1 @6211 WWIVnet) who can
answer additional questions including exactly how to set
the GSA account up to be in conformance with the others
using the concept.
Q: How do I check for INSTANCE number in a batch file?
Q: In a batch file, how do I check for the instance
number, for executing different command lines and so
forth for different instances.
A: Do a check for %WWIV_INSTANCE% in the batch file. The
following is a simple example:
@echo off
if %WWIV_INSTANCE%==1 goto INST1STUFF
if %WWIV_INSTANCE%==2 goto INST2STUFF
if %WWIV_INSTANCE%==3 goto INST3STUFF
:INST1STUFF
INST 1 stuff goes here.
goto DONE
:INST2STUFF
INST 2 stuff here
goto DONE
:INST3STUFF
INST 3 stuff here
goto DONE
203
:DONE
Q: What is the difference in BITS, Baud Rate, and BPS?
(NOTE: This article is excerpted from THE MODEM
REFERENCE, a book written by Michael A. Banks, to be
published in August, 1988, by Brady Books/Simon &
Schuster. Permission is granted to post this article on
bulletin board systems and online services provided this
notice and the copyright notice are included.
If you want to know more about how computer
communications works, ask for the book (ISBN#
0-13-586646-4) at your local B. Dalton's or independent
bookstore. THE MODEM REFERENCE is recommended by a
number of reviewers, including Jerry Pournelle, who said
in his May, 1988, BYTE column, "If you're thinking of
getting into computer communications, get this book
first."
BITS, BAUD RATE, AND BPS
Taking the Mystery Out of Modem Speeds
by Michael A. Banks
(Copyright, 1988, Michael A. Banks)
Modem transmission speed is the source of a lot of
confusion, even among otherwise informed computer and
modem users. The root of the problem is the fact that
the terms "baud" and "bits per second" are used
interchangeably and indiscriminately. I strongly suspect
this is a result of the fact that it's easier to say
"baud" than "bits per second," though misinformation has
a hand in it, too.
If you've ever found yourself confused by the
relationship between bits and baud rate, or if you think
that a modem's baud rate is the same as the number of
bits or characters it transmits per second, please read
this article carefully; I guarantee to clear up the
confusion and disabuse you of any false concepts ...
Bits per second (bps)
Bits per second is a measure of the number of data
bits (digital 0's and 1's) transmitted each second in a
communications channel. This is sometimes referred to as
"bit rate."
204
Individual characters (letters, numbers, etc.), also
referred to as bytes, are composed of several bits.
While a modem's bit rate is tied to its baud rate,
the two are not the same, as explained below.
Baud rate
Baud rate is a measure of the number of times per
second a signal in a communications channel varies, or
makes a transition between states (states being
frequencies, voltage levels, or phase angles). One baud
is one such change. Thus, a 300-baud modem's signal
changes state 300 times each second, while a 600-baud
modem's signal changes state 600 times per second. This
does not necessarily mean that a 300-baud and a 600-baud
modem transmit 300 and 600 bits per second, as you'll
learn in a few lines.
Calculating bits per second
Depending on the modulation technique used, a modem
can transmit one bit--or more or less than one bit--with
each baud, or change in state. Or, to put it another
way, one change of state can transmit one bit--or more or
less than one bit.
As I mentioned earlier, the number of bits a modem
transmits per second is directly related to the number of
bauds that occur each second, but the numbers are not
necessarily the same.
To illustrate this, first consider a modem with a
baud rate of 300, using a transmission technique called
FSK (Frequency Shift Keying, in which four different
frequencies are turned on and off to represent digital 0
and 1 signals from both modems). When FSK is used, each
baud (which is, a gain, a change in state) transmits one
bit; only one change in state is required to send a bit.
Thus, the modem's bps rate is also 300:
300 bauds per second X 1 bit per baud = 300 bps
Similarly, if a modem operating at 1200 baud were to
use one change in state to send each bit, that modem's
bps rate would be 1200. (There are no 1200 baud modems,
by the way; remember that. This is only a demonstrative
and hypothetical example.)
205
Now, consider a hypothetical 300-baud modem using a
modulation technique that requires two changes in state
to send one bit, which can also be viewed as 1/2 bit per
baud. Such a modem's bps rate would be 150 bps:
300 bauds per second X 1/2 baud per bit = 150 bps
To look at it another way, bits per second can also
be obtained by dividing the modem's baud rate by the
number of changes in state, or bauds, required to send
one bit:
300 baud
--------------- = 150 bps
2 bauds per bit
Now let's move away from the hypothetical and into
reality, as it exists in the world of modulation.
First, lest you be misled into thinking that "any
1200 baud modem" should be able to operate at 2400 bps
with a two-bits-per-baud modulation technique, remember
that I said there are no 1200 baud modems. Medium- and
high-speed modems use baud rates that are lower than
their bps rates. Along with this, however, they use
multiple-state modulation to send more than one bit per
baud.
For example, many 300/1200 bps modems operate at 300
baud and use a modulation technique called phase
modulation that transmits four bits per baud. Such
modems are capable of 1200 bps operation, but not 2400
bps because they are not 1200 baud modems; they use a
baud rate of 300. So:
300 baud X 4 bits per baud = 1200 bps
or
300 baud
------------------ = 1200 bps
1/4 baud per bit
(Some 1200-bps modems use a modulation technique
that sends two bits per baud, in which case they operate
at 600 baud.)
Similarly, 2400 bps modems that conform to the CCITT
V.22 recommendation (virtually all of them) actually use
a baud rate of 600 when they operate at 2400 bps.
However, they also use a modulation technique that
transmits four bits per baud:
206
600 baud X 4 bits per baud = 2400 bps
or
600 baud
------------------ = 2400 bps
1/4 baud per bit
Thus, a 1200-bps modem is not a 1200-baud modem, nor
is a 2400-bps modem a 2400-baud modem.
Now let's take a look at 9600-bps modems. Most of
these operate at 2400 baud, but (again) use a modulation
technique that yields four bits per baud. Thus:
2400 baud X 4 bits per baud = 9600 bps
or
2400 baud
------------------ = 9600 bps
1/4 baud per bit
Characters per second (cps)
Characters per second is a measure of the number of
characters (letters, numbers, spaces, and symbols)
transmitted over a communications channel in one second.
Cps is often the bottom line in rating data transmission
speed, and a more convenient way of thinking about data
transfer than baud- or bit-rate.
Determining the number of characters transmitted per
second is easy: simply divide the bps rate by the number
of bits per character. You must of course take into
account the fact that more than just the bits that make
up the binary digit representing a character are
transmitted when a character is sent from one system to
another. In fact, up to 10 bits may be transmitted for
each character during ASCII transfer, whether 7 or 8 data
bits are used. This is because what are called start-
and stop-bits are added to characters by a sending system
to enable the receiving system to determine which groups
of bits make up a character. In addition, a system
usually adds a parity bit during 7-bit ASCII
transmission. (The computer's serial port handles the
addition of the extra bits, and all extra bits are
stripped out at the receiving end.)
207
So, in asynchronous data communication, the number
of bits per character is usually 10 (either 7 data bits,
plus a parity bit, plus a start bit and a stop bit, or 8
data bits plus a start bit and a stop bit). Thus:
300 bps
----------------------- = 30 characters per second
10 bits per character
1200 bps
----------------------- = 120 characters per second
10 bits per character
2400 bps
----------------------- = 240 characters per second
10 bits per character
Common speeds
The most commonly-used communications rates for
dial-up systems (BBSs and online services like DELPHI)
are 300 and 1200 bps. A few older systems--especially
Telex systems-- communicate at 110 bps, but these are
gradually going the way of the dinosaur. 2400, 4800 and
9600 bps modems are generally available, but few online
services or BBSs accommodate them. This will be changing
in the near future, however, with the cost of high-speed
modem technology decreasing as the demand for it
increases.
Modems with even higher bps rates are manufactured
(19,200 and up) but these are not used with dial-up
systems; the upper limit on asynchronous data
transmission via voice- grade telephone lines appears to
be 9600 bps. The use of higher transmission rates
requires special dedicated lines that are "conditioned"
(i.e., shielded from outside interference) as well as
expensive modulation and transmission equipment.
If nothing else, I hope the examples here have shown
you just why baud rate is not always equivalent to bps
rate. (And if anyone who tries to sell a modem to you
tells you otherwise, you'll do well to take your business
elsewhere.) When you're considering a particular modem
for purchase, look for its bps rate, rather than its baud
rate, and use the bps rate to determine how many
characters per second the modem can actually send.
208
Michael A. Banks (KZIN on DELPHI) has published some
700 magazine articles and short stories. He's also
written 17 books on topics ranging from
telecommunications (most recently, DELPHI: The Official
Guide, and The Modem Book, from Brady Books/Simon &
Schuster), to science fiction novels.
Q: How do I set up my CD Rom to run with WWIV?
A:
Using a CD-ROM drive (here after referred to as rom
drive) with WWIV is easy. There is no need to invest in
any of the rom drive "doors", (although if you do, please
register it/them), as WWIV will handle rom drives quite
nicely itself.
I have been running a rom drive on my board for over a
year now, and have recently moved up to running 6 rom
drives, and will shortly be adding 6 more. Here is how I
have mine set up:
Here is a snapshot of a chunk of my //diredit screen. I
had to truncate it to 60 columns for this doc, so it is a
little screwy.
[DIREDIT]
(My ROM drives are drives D: through I:) So as you can
see, all you need to do is install the rom drive
according to the directions that came with the drive,
then go into //DIREDIT, and (I)nsert the directories.
You will, of course, need to know the directory names on
your CD. For instance, in the above example, directory #
6 is located in D:\011. Dir 16 is located in H:\008A.
Hopefully for you, the disk you have has the file
descriptions in it already located somewhere on the
drive. I have seen a number of different formats for
this. Night Owl 09 for example has them set up in a dir
called \TEXT\DIRxx, where xx corresponds with a dir
number on the drive. Lets use the above example of dir
#16 for reference. Assume the file descriptions are in a
subdirectory on the rom disk called \TEXT\DIR08, and that
the disk is the H: drive.
You will first have to run //diredit and create a
directory called "C and ASM Languages". Next, you will
need to go into the files section and go to the directory
209
you created with //diredit. Type //UPLOADFILE. WWIV
will prompt you for a method. Which you choose will
depend upon how the text descriptions are set up on the
rom disk. If they do not correspond to any of the
formats WWIV offers you, you will need to use a word
processor and edit the descriptions. It will be a good
idea for you to use one that allows for "rectangular"
blocking, such as Professional Write (the one I use) and
edit the text descriptions to match one of the formats.
Of course, you will need to copy the text files to your
hard drive, as you will not be able to edit them on the
rom disk. :)
After you have your text file set up (in this case,
\TEXT\DIR08), you will need to tell //uploadfile where
the text dir for that directory is located. Assume for
now that the file and pathname to your text file is
C:\TEXT\DIR08. When //uploadfile asks you for the
filename, you would enter C:\TEXT\DIR08. WWIV will then
upload your files. It will upload them in reverse
alphabetical order, so you will want to be sure to //sort
the dir after you do this.
A trick I learned is that sometimes the text file that
comes with the rom disk will not have all the files that
are actually on the rom disk in the text file
description. I always go in and //upload the dir's after
I let //uploadfile do it's work.
Another trick I learned is that you CAN have more than
499 files in a directory (at least in 4.22), but only if
you use //uploadfile. Also, once you hit 499 (or more)
you will not be able to //upload anymore files, but it
WILL take them in the initial //uploadfile.
There is another blurb on the //uploadfile at the bottom
of this file. I had written it sometime back, and was
going to delete it, but thought maybe it might make more
sense to you then what I have written here....
If you have any trouble setting up your CD ROM drive with
WWIV, please feel free to email 1@4051 for help, and I
will do what I can. This text file was written July
25th, 1992, first updated on May 8th, 1993, with this
revision happening on June 5th, 1994. I am in the US Air
Force, and move around about every 3-4 years or so, so if
@4051 shows up as an unknown system, or if the current
sysop of @4051 acts like you just fell off the potato
wagon if you ask him about this, please send email to
Filo, 1@4050. He will know how to get in touch with me.
210
One last thing...
My first ROM disk came with absolutely NO file
descriptions whatsoever. I have since bought 4 disks
that did have file descriptions, but they were not
exactly set up for WWIV's //UPLOADFILE command. If this
happens to you, you might have to take the pre-written
file descriptions on your disk and load them into a text
editor and change the format around. I personally had to
delete an entire column, as they (the file descriptions)
were set up for Wildcat, and not PC-Board, or RBBS, as
are the only 2 choices (at the time of this writing) that
are given when executing //UPLOADFILE. Also, once you
have //UPLOADFILE'ed all of the files on your rom disk,
you should go back through each directory and perform an
//UPLOAD in each one, to make certain that all of the
files on your disk have been uploaded, as, due to no
fault of Wayne's or the WWIV software, sometimes
//UPLOADFILE misses files due to the file setup on the
disk itself.
If you are running pre-4.23 WWIV, and got a CD that has
extended file descriptions with it, you will also need to
install this mod. It is a block-copy replacement in
XFEROVL.C. Wayne made it stock code in 4.23 and beyond,
but in case you need it, here it is. This will import
the extended descriptions, such as those found on the
popular Night Owl CD Rom disks:
Search for, and replace the following function. MAKE
SURE THAT YOU DON'T GO TO FAR WHEN YOU ARE DELETING
THINGS!
void upload_files(char *fn, int dn, int type)
This assumes the file holds listings of files, one per
line, to be uploaded. The first word (delimited by
space/tab) must be the filename. after the filename
are optional tab/space separated words (such as file
size or date/time). After the optional words is the
description, which is from that position to the end
of the line. the "type" parameter gives the number
of optional words between the filename and
description. the optional words (size, date/time) are
ignored completely.
{
char s[255],*fn1,*desc,last_fn[81],*ext=NULL;
FILE *f;
int ok=1,abort=0,next=0,ok1,i;
uploadsrec u;
211
last_fn[0]=0;
dliscan1(udir[dn].subnum);
f=fopen(fn,"r");
if (!f) {
sprintf(s,"%s%s",directories[udir[dn].subnum].path,fn);
f=fopen(s,"r");
}
if (!f) {
outstr(fn);
pl(": not found.");
} else {
while (ok && fgets(s,250,f)) {
if (s[0]<32)
continue;
else if (s[0]==32) {
if (last_fn[0]) {
if (!ext) {
ext=malloca(4096L);
*ext=0;
}
for (desc=s; (*desc==' ') || (*desc=='\t'); desc++)
;
if (*desc=='|') {
do {
desc++;
} while ((*desc==' ') || (*desc=='\t'));
fn1=strchr(desc,'\n');
if (fn1)
*fn1=0;
strcat(ext, desc);
strcat(ext,"\r\n");
}
}
} else {
ok1=0;
fn1=strtok(s," \t\n");
if (fn1) {
ok1=1;
for (i=0; ok1 && (i<type); i++)
if (strtok(NULL," \t\n")==NULL)
ok1=0;
if (ok1) {
desc=strtok(NULL,"\n");
if (!desc)
ok1=0;
}
}
if (ok1) {
if (last_fn[0] &&& ext &&& *ext) {
212
SETREC(1);
read(dlf,(void *)&&u, sizeof(uploadsrec));
if (strcmp(last_fn,u.filename)==0) {
add_extended_description(last_fn, ext);
u.mask |= mask_extended;
SETREC(1);
write(dlf, (void *)&&u, sizeof(uploadsrec));
}
*ext=0;
}
while ((*desc==' ') || (*desc=='\t'))
++desc;
ok=maybe_upload(fn1,dn,desc);
checka(&&abort,&&next);
if (abort)
ok=0;
if (ok) {
strcpy(last_fn, fn1);
align(last_fn);
if (ext)
*ext=0;
}
}
}
}
fclose(f);
if (ok &&& last_fn[0] &&& ext && *ext) {
SETREC(1);
read(dlf,(void *)&&u, sizeof(uploadsrec));
if (strcmp(last_fn,u.filename)==0) {
add_extended_description(last_fn, ext);
u.mask |= mask_extended;
SETREC(1);
write(dlf, (void *)&&u, sizeof(uploadsrec));
}
}
}
closedl();
if (ext)
farfree(ext);
}
---------------
That should just about cover everything. Again, PLEASE
email me if you need ANY help with your ROM drive. I
have had tremendous success with all 6 of mine.
213
F.A.Q.s - II
Q: Can I give or sell my registration to someone else?
Q: Is there a way that I can assign or sell my
registration to someone else?
A: Yes, there is a policy which permits you to do this.
This is what is required:
1) Send a letter to WWIV Software Services, P.O. Box
720455, McAllen, TX 78504-0455 stating all of the
following:
a) Your name and address at time of registration
and your registration number.
b) that you wish to assign your ownership rights
to Person's Name; Person's address
c) That you will destroy all copies of WWIV
source code on your hard disk and floppies
2) Have the other person fill in a registration form
and also include a letter indicating that he is
obtaining your registered version.
3) One of you must send a check or money order for
$25 US to cover the costs of handling the change
of registration.
The check should be made payable to WWIV Software
Services and all correspondence regarding this should be
sent to the following address:
WWIV Software Services
P.O. Box 720455
McAllen, Tx 78504-0455
If you have questions about this, please write to Filo at
the address above or e-mail him 1 @4000 WWIVnet.
Q: Why is my EMAIL.DAT file growing?
My EMAIL.DAT file is growing and growing. I think I am
opening a file and not closing it properly.
How can I track this down?
A: If you have any Quarterdeck products, you probably
have Manifest (MFT). You can run MFT and tell it to
214
be TSR. Then at anytime you can pop it up with the
hot keys. It has a screen that tells what and how
many files are open at that moment. Now it's just
a matter of checking at the right time....
Q: How do I set up Ymodem-g in INIT?
A:
Description : Ymodem-g (Error-Correcting Modems)
Xfer OK code : 0
Require MNP/LAPM : Y
Receive command line:
dsz ha slow port %2 pR1 pB8192 estimate 0 %4 rb -g %3
Send command line:
dsz ha slow port %2 pB8192 estimate 0 %4 sb %3
Receive batch command line:
dsz port %2 speed %1 rb -g @%5
Send batch command line:
dsz port %2 speed %1 sb -k @%3
Bi-directional transfer command line:
%1 = com port baud rate
%2 = port number
%3 = filename to send/receive, filename list to send
for batch
%4 = modem speed
%5 = filename list to receive for batch UL and
bi-directional batch
NOTE: Batch protocols >MUST< correctly support DSZLOG.
Q: How do I set up Zmodem in INIT?
A:
Description : Zmodem W/Crash Recovery
Xfer OK code : 0
Require MNP/LAPM : N
Receive command line:
dsz port %2 speed %1 rz -rm %3
Send command line:
dsz port %2 speed %1 sz -rm %3
Receive batch command line:
dsz port %2 speed %1 est 0 %4 restrict rz
Send batch command line:
dsz port %2 speed %1 est 0 %4 sz -rm @%3
215
Bi-directional transfer command line:
%1 = com port baud rate
%2 = port number
%3 = filename to send/receive, filename list to send for
batch
%4 = modem speed
%5 = filename list to receive for batch UL and
bi-directional batch
NOTE: Batch protocols >MUST< correctly support DSZLOG.
Q: How are the colors bitmapped in WWIV?
A:
[Note that with v4.24 of WWIV, many of these can be
defined in the WWIV.INI file. See section .]
Hey.. here is a little thing on the shift left '<<" and
shift right '>>' thingees...
Say you have eight bytes...
┌────────────────┐
│0 0 1 0 0 0 1 0 │
└────────────────┘
Which equals to ummm
0 * 128 = 0
0 * 64 = 0
1 * 32 = 32
0 * 16 = 0
0 * 8 = 0
0 * 4 = 0
1 * 2 = 2 ─┼─
0 * 1 = 0
─────────────────
34
216
Did you notice how the binary digits lined up with the
powers of 2? The first binary digit is 2^0, next 2^1,
2^2, 2^3 etc...
Also, take note how each digit is worth exactly 2 times
the amount of the one before it, ie, the fourth one from
the right equals 8, while the fifth one equals 16, and
the next one equals 32, and so on...
What does this have to do with shift left and right you
may ask? Well... Shift left does exactly like is sounds,
it shifts the bits to the left as many times as you
specify.
┌────────────────┐
│0 0 1 0 0 0 1 0 │
└────────────────┘
Lets shift those bits to the left 2 times...
0 0 1 0 0 0 1 0
<< 2
─────────────────
1 0 0 0 1 0 0 0
Notice, everything moved to the left the amount of times
that we specified, and 0's are brought in to the empty
spaces.
Shift rights do the exact opposite.
Now, back to the original reason we brought up shifting
left.
Color attribs take up one byte, which equals 8 bits, and
the computer looks for the color in the following format.
7 6 5 4│3 2 1 0
┌─┬─┬─┬─┼─┬─┬─┬─┐
│B│b│b│b│f│f│f│f│
└─┴─┴─┴─┼─┴─┴─┴─┘
│
B = Blink It is set to 1 for true, 0 for false
b = Background This is 3 bytes for the background, our
math shows us that that makes 2^3 (8)
possible combinations
f = Foreground This is 4 bytes, 2^4 or 16 possible
combinations
217
Now... Borland has the following colors defined:
Black 0
Blue 1
Green 2
Cyan 3
Red 4
Magenta 5
Brown 6
Lightgray 7
Darkgray 8
Lightblue 9
Lightgreen 10
Lightcyan 11
LightRed 12
LightMagenta 13
Yellow 14
White 15
Blink 128
Ok, to make a quick tutor short, I will give a quick
example:
Say we want to make the color Blinking Light Red on Cyan
First we have to turn on the blinking
(Note, that blink is defined at 128, which is equal to 1
<< 7)
Blink +
Now lets set the foreground
Blink + LightRed +
Now is the tricky part, we want to set the background to
Cyan, but if we add Cyan to LightRed, Lightred+Cyan=15,
which is equal to White.
Lets look at Cyan in Binary Code
Cyan=3
Cyan=0 0 0 0 0 0 1 1
BUT WAIT! Our background color is byte 4-6, these bytes
are in pos 0 and 1.
So what we have to do is shift it over to bytes 4-6...
so...
Cyan=3
218
Cyan=0 0 0 0 0 0 1 1
<< 4
───────────────
0 0 1 1 0 0 0 0
Cyan now equals 48.
So to get our correct color, we need to add CYAN << 4
times.
I am sure you are familiar with the order of evaluation,
well, in C, to make sure our values are done correctly,
we need to make sure we put a parenthesis around it to
make sure it gets evaluated correctly.
So, now to get our correct color, lets add them all
together.
Color=BLINK+LIGHTRED+(CYAN<<4)
Again, I noted earlier that Blink is defined as 128, but
only show 1 byte for the Blink character, we could vary
well do the following: Color=(1<<7)+LightRed+(Cyan<<4)
Because 1 << 7 = the following
1 = 0 0 0 0 0 0 0 1
<< 7
───────────────
1 0 0 0 0 0 0 0 = Which now equals 128
Note: In Borland C++, those colors are all uppercase
(CYAN, not Cyan), and it does care (hehheh).
Q: How do I email into Internet and Compuserve from
WWIVNet?
A:
Exchanging Email Between Internet and WWIVnet
Sending To WWIVnet from the Internet
(written by Bitbanger, 1@500 WWIVnet, author of WWCP)
[Note: Some of this methodology has changed with the
introduction of WFIDO and with the change in net node
numbers. It is presented here because it still contains
some useful information.]
WWIVnet addresses are of the form
<usernumber>@<nodenumber>.
To send mail to someone on WWIVnet, send to:
219
wwiv!<usernumber>-<nodenumber>@tfsquad.mn.org
For instance, to send mail to my WWIVnet account on
Someplace Else BBS, 23@9702, you'd send mail to:
wwiv!23-9702@tfsquad.mn.org
You can also send mail to people on WWIVnet by name.
However, since WWIVnet usernames can be several words you
must replace any spaces in the user name with an
underscore character, because Internet mail doesn't allow
multiword usernames. Thus, to send mail to Dark Mistress
of Pain on node 9999, you'd send to:
wwiv!dark_mistress_of_pain-9999@tfsquad.mn.org
Case is not important, as WWIVnet mashes
everything to upper case anyway.
Internet users are automatically assigned WWIV user
numbers when their posts are gatewayed. This allows the
normal WWIV "autoreply" feature to work properly.
Sending to the Internet from WWIVnet
If the Internet address is user@site, a WWIV user can
send email to <user>#<site>@<nodenum> where nodenum is
the node number of a publicly available WWCP gateway. At
the present time, these are 500, 501, 502, and 506. You
simply substitute a # for the @ in the Internet address.
For example, a WWIVnet user could send mail to
joeblow@gnu.ai.mit.edu by sending to
joeblow#gnu.ai.mit.edu@506. Sending mail to
boris%foobox@kremvax.cis.gov would be done by sending to
boris%foobox#kremvax.cis.gov@506.
Special note for sending to Internet addresses beginning
with a number:
Sending to an Internet address beginning with a number
(in particular, Compuserve addresses, such as
72633.551@compuserve.com) from WWIVnet will not work
properly, because WWIV assumes the first part of the
address is a WWIV usernumber. To send to an Internet
address beginning with a number from WWIVnet, you must
begin the address with a quotation mark (e.g.,
"72633.551#compuserve.com@500). The address must begin
with a quotation mark, but a trailing quote is optional.
220
In this case, you must route through @500 as it is the
only site with the software capable to handle this
function. Other sites should be upgraded shortly.
-----------------------------------------------------
With the ability to use Internet's vast Email facilities,
there also must be some responsibility. Internet mail is
VERY powerful and can easily be abused; therefore,
administrators of gateway sites reserve the right to stop
mail from moving through the gates that is termed
excessive. Admins also reserve the right to deny gateway
access to abusers of any of the gateways.
It should be noted that Internet systems, for the most
part, do NOT support ANSI graphics or WWIV color escape
sequences. For this reason, any messages passing through
the gateways will be stripped of color sequences. Any
true-ANSI drawings will come out as a load of garbage -
thus making the admins of the gateway systems and the
recipient of the message Very Annoyed. Please keep this
in mind..
Site Specifics
--
At this time, most of the gateway sites are located in
Alaska. Following are specifics on functioning gateway
sites and how to use them. If your site is not listed
herein, mail zaphod@tfsquad.mn.org (or 1@6250 WWIVnet)
with the following information:
o Does your site gate news?
o What is the WWIVnet information address? (if not 1@xxx)
o Are you willing to carry mail traffic? If so, how
much?
WWIVnet @500 (moosevax.cojones.com)
-----------------------------------
Info: 1@500 or root#moosevax.uucp @500 (WWIVnet)
moosevax!root@uunet.uu.net
root@moosevax.cojones.com (Internet)
News: None.
Mail: Willing to gate "reasonable" amounts of traffic.
The definition of "reasonable" as left as an
exercise for the user; however, Bitbanger is NOT
willing to carry large mail file requests or
221
massive multiple mailings. He wishes it to be
known that steps will be taken - either
notification of the user's sysop, or if the user
happens to be a sysop, his/her AC or GC - if the
privileges are abused.
WWIVnet @501 (cojones.com)
--------------------------
Info: 1@501 or 5@501 (WWIVnet)
uunet!coldbox!system (UUCP)
system@cojones.com (Internet)
NOTE: PLEASE do not send information requests to
"root@uunet", "wwiv@uunet", or similar - Very
Interesting things can happen in cases such
as that.
News: None at this time.
Mail: Same as @500 - willing to carry "reasonable"
amounts of traffic.
Steps will be taken, as with @500, to deal with
abusers of the gateway. To pass mail from Internet
to WWIV, the proper addressing form is user-
site@wwiv.cojones.com
WWIVnet @502 (freds.cojones.com)
--------------------------------
Info: system#fredbox @502 (WWIVnet)
uunet!coldbox!fredbox!system (UUCP)
system@freds.cojones.com (Internet)
News: alt.cd-rom (WWIVnet type 30502)
comp.org.eff.talk (WWIVnet type 40502)
Mail: Will gate for local users only.
WWIVnet 2@506 (tfsquad.mn.org)
-----------------------------
Info: 1@6250 or 5@506 (WWIVnet)
..umn-cs!kksys!tfsquad!zaphod (UUCP)
zaphod@tfsquad.mn.org (Internet)
News: None.
Mail: Willing to carry any mail traffic with the
exception of large file requests. As with the
other sites, the administrator will take steps to
deal with abuse of the gateway at tfsquad.
Internet to WWIV mail gateway address format is
user-site@wwiv.tfsquad.mn.org
It should be noted that @500, @501, and @502 are on the
222
same Usenet feed as of this time. @506 is on it's own
independent feed. The speed with which traffic flows
depends MUCH on the exigencies of UUCP networking -- none
of the sites are directly connected to the Internet. How
do I email into FidoNet from WWIVNet?
Instructions for users who want to send Inter-Network
mail using NETSEX.
Sending mail From WWIVNET:
There are two ways of sending mail from a user on
WWIVNET to a user on Fidonet. The first way is to use
the full address:
<USER NAME> OF <FIDO ADDRESS> @<GATEWAY NODE NUMBER>
Example:
Matt Logan OF 1:105/9999 @600
The second way was provided so that names and addressed
that exceed the maximum length allowed by the WWIV
software can be used. The format for this type of
addressing is:
FIDONET @<GATEWAY NODE NUMBER>
Then, in the first line of the message type:
To: <USER NAME> OF <FIDO ADDRESS>
Example:
FIDONET @600
(first line of text)
To: Matt Logan OF 1:105/9999
Note that both of the examples given will attempt to send
mail to the same user at the same Fidonet address. The
capitalization of the "OF" and the "To:" must be copied
exactly. Remember, sending mail over Fidonet almost
always costs the system the message is being sent from
since FidoNet mail is sent directly to the destination
system. Please do not use Inter-Network mail unless you
know what you are doing. Experimentation can be costly!
If the gateway system had a USENET mail connection
you may also send mail over USENET. The method of
addressing may vary depending on what software if being
run to convert messages from Fidonet to USENET. The
method given assumes the Gateway system is running
UFGATE.
The format for sending mail over usenet is:
UUCP OF <FIDONET ADDRESS> @ <GATEWAY ADDRESS>
223
Then, on the first line you would type:
To: <SYSTEM>!<>!...!<USER ID>
Or:
To: <USER ID>@<FULL DOMAIN NAME>
Example:
UUCP OF 1:105/9999 @600
(First line)
To: matt@jove.cs.pdx.edu
Sending Mail from Fidonet to WWIVNET
There are three ways of sending mail from Fidonet to
WWIVNET. I will explain them here in order of most
preferred to least preferred.
Method 1:
On a fidonet system you could send the mail to:
n<WWIV NODE> u<USER NUMBER> OF <GATEWAY FIDONET
ADDRESS> Example:
n5317 u1 OF 1:105/9999
This method is most preferred because there is no chance
for error due to a mis-spelling of the name.
Method 2:
n<WWIV NODE> <USER NAME> OF <GATEWAY FIDONET ADDRESS>
Example:
n5317 Heavy 7 OF 1:105/9999
This method could cause problems if the spelling of the
name is different than the actual name.
Method 3:
<USER NAME> OF <GATEWAY FIDONET ADDRESS>
Example:
Heavy 7 OF 1:105/9999
Messages addressed in this way will only reach the
intended recipient if the recipient has an account on the
WWIV node that is set up as the "LOCAL" node. Since you
can't be sure what this "LOCAL" node will be without
prior knowledge don't use this method. There is one
exception to this rule: if the Gateway operator has set
up a mail alias then messages addressed in this way will
be routed to whatever is appropriate for the alias. To
224
get an alias ask a gateway operator for an alias.
Sending From USENET to WWIVNET:
The name scheme works the same way as that listed above
with one exception: all spaces in the name are to be
replaced with a "." Also, the Fidonet address will appear
as such: <SYSTEM>!...!z<ZONE>.f<NET>.n<NODE>
Example:
gatesys!z1.f105.n9999!n5317.u1
The above example will send the message through "gatesys"
to fidonet 1:105/9999 and then onto user 1 of WWIVNET
5317. This is assuming that "gatesys" is the USENET site
name of the USENET<=>FIDONET gateway node, and that
1:105/9999 is the address of the FIDONET<=>WWIVNET
Gateway node.
Please refer your questions first to your nearest NetSEX
gateway operator, or if that is impossible, to one of
the following addresses:
USENET: matt@jove.cs.pdx.edu
WWIVNET: 1@5317
I'll try to answer questions as quickly as possible but I
cannot guarantee a prompt response if too many people
send me mail.
Q: How do I make those fancy colored boxes around
things?
A:
"Box mods" are simple, so simple that they don't even
deserve to be called "mods". All you have to do is hunt
down the part of code that prints something onscreen, and
put it in sprintf() or npr() form. For example,
sprintf(s,"%d %s %s", num, s1, s2); pl(s);
is ready to be put in box form. If it's not already a
sprintf/npr, make it one!
itoa(s,num,10); strcat(s," "); strcat(s,s1);
strcat(s," "); strcat(s,s2);
This clumsy method still exists in some places, but can
be replaced with the sprintf above with the same results.
225
So now you have a sprintf! What you need to do next is
decide how many characters each field should occupy on
screen, and insert those numbers:
sprintf(s,"% 23 0d % 230 0s % 220 0s", etc...);
They will be right-justified within the field, if you
want them left-justified, put a - in front of the
numbers.
sprintf(s,"%3d %-30s %-20s", etc...);
Now you add borders...
sprintf(s," 7║ 0%3d 7│ 0 %-30s 7│ 0%-20s 7 ║ 0", etc.);
Next, total up how long the string will be, and determine
where the columns are. Above we have a double-vertical
in the first column, then skip five (2 spaces + %3d),
vertical, skip 32 (2 spaces + 30), vertical, skip 22,
double vertical. With this information, you can write the
top and bottom:
pl("╔═════╤═════════════════════╤═══════════════════╗");
^ ^
: :
:...>insert two<.....:
>spaces <
>in each <
>line here <
The top should be printed before entering the loop, and
the bottom after finishing the loop that contains the
printing of the actual data.
Finally, add "heart codes" to change the colors...
sprintf(s,"^C7║^C4 %3d etc...
ALSO, could someone give me a MAKEFILE that will work
with Borland C++ 3.1? I have heard from various sources
that it is in fact possible to compile with 3.1...
The old makefile works fine, just change 'bccx' to 'bcc',
as bccx.exe no longer exists.
Q: What technical stuff do you have about how WWIVNet
works?
226
A: WWIVnet Technical Documentation.
[Note: There is also a newer technical document included
as one of the files with this documentation. SEE
WWIVTECH Document.]
This documentation assumes that the reader:
a. knows a reasonable amount about C and the various C
data types and data structures.
b. has a working knowledge of how WWIVnet works, from
the sysop's point of view.
c. has a general knowledge about how file transfer
protocols work.
This documentation is written from the point of view of
designing a system compatible with WWIVnet. It will not
explain the inner workings of the current networking
programs, but will discuss what external interfaces would
be needed to link in to WWIVnet.
There are three parts to this documentation:
1. Transferring of files between systems.
2. The file format of the files sent between systems.
3. Routing of messages.
1. Transferring of files between systems.
Through some process, one system decides to call another.
Various techniques can be used for deciding when to call,
but that should not affect the network greatly. Any
WWIVnet system is able to receive a network connection at
any time, even though it might not decide to originate a
call at that specific time.
So, the caller calls up the destination system. If he
connects, the connection protocol is then begun.
After connection, the caller waits for the string "NN:".
In order to get to this prompt, the caller sends the
string "N " ('N', space), every half second. Every 7
seconds, the caller sends a carriage return (char 13
decimal). After 16.5 seconds, the caller gives up and
assumes he is at the NN: prompt. The reason for sending
"N " is twofold: First, the N is to answer any question
227
that there may be on connection with respect to ANSI, or
anything else. The space is to abort any message that is
printed out to callers.
After the NN: prompt is reached, the caller sends the
string "\030!-@NETWORK@-!\r" (Ctrl-x, "!-@NETWORK@-!",
return), to identify that this is the network calling.
The caller then waits for the net identification string.
The !-@NETWORK@-! string is sent every 6 seconds. After
20 seconds without receiving the network identification
string, the caller gives up and hangs up.
The network identification string is sent by the answerer
after getting the !-@NETWORK@-! string. The network
ident string is sent every 6 seconds, until the network
response is received. The answerer gives up and hangs up
after 20 seconds. The network ident string is:
"\x1b""[8mxX33211\x0c""31412718\x1b""[8DNETWORK!"
The network response string is:
"\x1b[8mxyzzy$.@83\x0c##"
After getting the network identification string, the
caller sends the network response string every 6 seconds,
giving up and hanging up after 20 seconds, unless a
ctrl-b ('\002') is received, in which case the two
systems are considered connected.
After getting the network response string, the answerer
sends three control-b characters ("\002\002\002"), and
considers the two systems connected.
After the two systems are connected, the caller sends an
identification block to the answerer. The block is 128
bytes long, and is sent in the same method as an xmodem
block of data is sent. The caller does not wait for a
NAK before beginning transmission, but begins
transmission of the block immediately after receiving one
control-b. The block is sent as block #0, with CRC, and
128 bytes of data. After receiving the block, the
answerer sends the usual ack/nak, etc. If after 6 tries
the block is not received correctly, both sides give up
and hang up.
The block of data contains six pieces of data, each
separated by a space character (char 32 decimal). All
bytes after the last piece of data are zero. The pieces
228
of data are:
system number - the system number
sendback - whether the answerer can send a net file back
to the caller ("0" or "1")
cost - the cost for the call, in cents per minute
features - a long integer, in ascii, telling the features
supported by that system. Currently only shows Zmodem
capability ("0"=no zmodem, "1"=zmodem supported)
bytes to send - the number of bytes in the file that is
to be sent
password - the password to be used between the two
systems. If no password has been set yet, this is set
to "NONE". Usual passwords are 15 characters long.
After the caller sends the block of data to the answerer,
the answerer checks the password with the password
expected from that system. If the password is wrong, or
calls from that system are not allowed, the answerer
disconnects.
If the password is OK, the answerer then sends a similar
block of data back to the caller, giving its system
number, features, and bytes to send. Also, if no
password had been set yet (the password received from the
caller is "NONE", then the answerer randomly picks a
password and puts it in the password field.
For example, system 1 calls system 2. System 1 has 100
bytes of data for system 2, and system 2 has 200 bytes of
data for system 1. System 1 supports zmodem, but system
2 does not. The call costs $0.10/min. No password has
been set yet. Sendback is allowed.
System #1 sends: "1 1 10 1 100 NONE"
System #2 sends: "2 1 10 0 200 ARANDOMPASSWORD"
As another example, system 10 calls system 20. System 10
has 1056 bytes to send, and system 20 has 678 bytes to
send. Sendback is not allowed, and the cost is $0.23/min.
Both support zmodem. The selected password is
"PASSWORDPASSWOR".
229
System #10 sends: "10 0 23 1 1056 PASSWORDPASSWOR"
System #20 sends: "20 0 23 1 0 PASSWORDPASSWOR"
Since sendback is not allowed (the caller determines
this), system 20 won't send any data to system 10, hence
the number of bytes to send is zero.
Sendback is allowed if and only if the caller says it is.
Zmodem is used only if both systems support it; otherwise
ymodem (including block #0, which IS critical) is used.
After both systems have sent and received the data
blocks, transfers begin.
If the caller has any data to send, it is sent first.
If the answerer has any data to send, it is sent second.
If the caller has no data to send, the answerer
immediately begins sending data. If neither have any
data to send, no data is sent. If a data file is
completely sent, the file is erased on the sending
system. If the file is not sent (due to excessive errors
or carrier loss), the file is not deleted, but is sent
again later.
After transfers (if any) are done, both systems wait
0.5-1.0 second, then hang up. The transfer of files is
then done.
2. File format of files sent between systems.
Each message sent through the network has a header. The
header tells which user/system originated the message,
where it is to be sent to, the type of message, and other
information. The structure of the header is:
typedef struct {
unsigned short tosys, /* destination system */
touser, /* destination user */
fromsys, /* originating system */
fromuser; /* originating user */
unsigned short main_type, /* main message type */
minor_type; /* minor message type */
unsigned short list_len; /* # of entries in system
* list */
unsigned long daten; /* date/time sent */
230
unsigned long length; /* # of bytes of msg after
* header */
unsigned short method; /* method of
compression */
} net_header_rec;
#define main_type_net_info 0x0001
Here, minor_type will tell what type of net info this
contains, such as a new list of nodes, mail to the
sysop, or whatever
#define main_type_email 0x0002
Here, minor_type will be zero
#define main_type_post 0x0003
Here, minor_type will contain the sub type of the
post. It will tell the BBS what subboard to post the
message on
#define main_type_file 0x0004
I don't know if this will be used, but if it is,
minor_type will contain the dir type of the dir the
file will go on
#define main_type_pre_post 0x0005
This is like a post, but for this type, the post needs
to be sent out to a few other systems when the
destination system receives it.
#define main_type_external 0x0006
This is reserved for use by programs external to WWIV
#define main_type_email_name 0x0007
used in sending email to a user's name on another
system
Each header is 24 bytes long. The fields are:
tosys, touser - the destination of this message. If the
message is not destined to a user, but to the system (eg,
a post), the touser field is zero.
fromsys, fromuser - the origin of the message. This
231
contains the user number/system number combination of who
actually WROTE the message.
main_type, minor_type - the type of message this is. The
main type stores the actual type (email, post), and the
minor_type is used to specify what sub-type it is. For
example, the main_type for a post is 3. The minor_type
is then used to specify what type of a post it is, what
subboard the post is to go on to.
daten - the time the message was sent, stored in unix
time, as the number of seconds since Jan 1, 1970.
length - the length of the message.
method - if the file is encrypted or compressed, this
will tell the type of compression or encryption used.
list_len - Sometimes, a message needs to go to more than
one system. For example, networked posts may go to over
20 different systems. It makes no sense to have a
separate copy of the message for each destination system,
so the same copy of the header and message are used. The
list_len specifies the number of destination systems
there are listed. If list_len is non-zero, then the
touser and tosys fields are ignored. The list_len is
ONLY used if the message is destined to a SYSTEM, and not
to a USER.
When a message has only one destination system, the
destination system is stored in tosys, and list_len is
zero. If there are two or more destinations, then tosys
is 0, and list_len holds the number of destination
systems.
When list_len is non-zero, the list of destination
systems is stored immediately after the header, but
before the actual message itself. The length of the list
is not counted in the length field in the header; the
length stored in the header is the length of the message
only.
Each entry in the destination system list is two bytes
long, and is stored in the standard byte-reversed format
of 80x8x chips.
For example, if a post is destined to system 1, the tosys
field will be 1, and list_len will be 0. If the post is
232
destined to systems 1 and 2, tosys will be 0, list_len
will be 2, and there will be 4 bytes between the header
and message. The bytes will be: 01 00 02 00 (remember,
byte- reversed format). The rest of the header will be
the same for both messages.
A packet is thus a net header, plus a destination list
(if any), followed by the text of the message. The
length of the packet is thus:
24 + 2*list_len + length.
A WWIVnet file is simply a number of packets appended
into one file.
Processing a file consists of:
a. opening the file, and setting the current pointer to
the beginning of the file.
b. reading in the net header (24 bytes).
c. if list_len is non-zero, read in the list (2 *
list_len bytes).
d. read in the message itself (length bytes).
e. process the message.
f. if not the end of file, go to step b.
Of course, extra processing is necessary, such as an
initial pass over the file to make sure that it is a
valid file, by stepping through each packet (by reading
in only the header), and making sure that the file ends
on an even packet division. If the file ends in what
should be the middle of a message, then the file is
obviously corrupted and should not be processed.
Also, each packet needs to be marked as processed, so
that if analysis is interrupted before completed, the
analysis program can skip over those packets already
analyzed. Setting the main_type to 65535 identifies the
packet as already processed (or deleted). Any packet
with a main_type of 65535 should not be processed.
When processing messages, the following steps should be
used:
a. if main_type is 65535, skip the message.
233
b. if list_len is non-zero, do steps c-f for each entry
in the list, substituting that entry for "tosys"
c. if tosys is this system, process the file locally.
d. if tosys is an unknown system or unreachable, put the
packet in the dead file.
e. if the next system to forward to is the system that
the message was last received from, put the packet in the
dead file.
f. put the packet in the file to be sent to the next
system the packet needs to be forwarded to.
Of course, it is more complicated than that. If list_len
is non-zero, all destination systems should be processed
before the message is stored anywhere. This way, if the
message has 10 destinations, each of which has the same
next system (to forward to), only one copy of the message
will be printed out, that packet with 10 systems in its
destination list.
If a new copy of the connections or bbslist has been
received, the dead file is re-processed.
3. Routing of messages.
Routing is done on a least-cost (per k of data) basis.
In the case of equal cost, the route with the least
number of hops is used.
The file "bbslist.net" holds a listing of what systems
are in the network. It holds, for each system: system
number (preceded by @), system phone number (preceded by
*), max baud rate of the system (preceded by #), and
system name (enclosed in ""). Additionally, there may be
flags for each system. These flags are:
< - the system has a USR-compatible 9600 baud modem.
| - the system has a Telebit-compatible 19200 baud modem.
> - the system has a Hayes-compatible 9600 baud modem.
^ - the system is an area code coordinator.
The file "connect.net" lists the connection costs between
systems. The cost listed is the cost per minute. In
determining the least cost route, the connection SPEED
234
between each pair of systems needs to be considered. For
example, if two 300 baud systems connect at $0.10/min,
and two 9600 baud systems connect at $0.20/min, the 9600
baud link is obviously 16 times cheaper than the 300 baud
link.
Each entry in the connect.net file specifies a one-way
connection between two systems. The entries in the
connect.net file do NOT need to be in any specific order.
If there are two systems, numbered 1 and 2, and each can
call each other for free, the connect.net file would look
like:
@1 2=0.00
@2 1=0.00
If there are three systems, each can call the others for
free, the connect.net file would look like:
@1 2=0.00 3=0.00
@2 1=0.00 3=0.00
@3 1=0.00 2=0.00
If system 3 called the other two for $0.10, the
connect.net file would look like:
@1 2=0.00 3=0.10
@2 1=0.00 3=0.10
@3 1=0.10 2=0.10
In both the bbslist.net and connect.net file, each
"entry" begins with identifying the system number
(preceded with @). Everything after the system number
identifier, but before the next '@' corresponds to that
system. Thus, the connect.net files above could also be
listed as:
@1 2=0.00 3=0.10 @2 1=0.00 3=0.10 @3 1=0.10 2=0.10
or
@1
2=0.00
3=0.10
@2
1=0.00
2=0.10
@3
235
1=0.10
2=0.10
Thus, the end-of-line indicator should be IGNORED.
Neither the bbslist.net or connect.net file need to be in
any specific order. There cannot, however, be multiple
entries per system. Each system should have one and only
one entry in bbslist.net, and one and only one entry in
connect.net (although each system can be referenced
throughout connect.net, there should be only one time the
system number is preceded with an at-sign).
It is possible for a system to have references in one or
both of the .net files, but not ever be reachable from
any other system. For example, two systems may be listed
in bbslist.net, and listed in connect.net, but each can
only call the other. No other system in the network can
connect with them, so they don't exist, essentially.
Also, a system can be listed in bbslist.net, but not have
any entries in connect.net. This usually happens for
systems just joining the network, and those systems
essentially don't exist either.
It is also possible for one system to call another, but
the second system can't call back the first. This is
unusual, but valid. Also, the cost of a connection can
be different in one direction than in the other. This is
also valid.
How to handle the .net files:
There are three ways you might handle routing:
1. Each time you need to route a message, find the least
cost path.
2. Each time one of the network programs is booted up
(that has to route messages), the least-cost route to
each system is decided.
3. Each time an update to the .net files is received, the
least cost route is decided to each system.
Options 1 and 2 are not good ideas; In my currently
(relatively optimized) least-cost routines, it takes
around 10-15 seconds to find the least cost route from my
system to all the other systems (on my 8 MHz AT).
Finding the least cost route to a specific system is the
same difficulty as finding the least cost route to all
236
systems, so option #1 is a waste. Option #2 holds no
advantages over option #3.
Therefore, the least-cost routes to all the systems
should be analyzed once each time a net update is
received. A data file should be written out, that has
one entry for each system in the network. When routing
needs to be done, the file (which was read into memory
into an array) is searched sequentially (since the
entries probably aren't sorted), until the desired system
is found. If it is not found, or is flagged as
unreachable, the system is unreachable. Otherwise, all
the necessary information for that system is known. The
data structure I use is:
typedef struct {
unsigned int sysnum; /* system number of the
* system */
char phone[13], /* phone number of
* system */
name[41]; /* name of system */
unsigned int speed, /* max baud rate of
system */
other, /* other info about sys
* (bit-mapped)*/
forsys; /* how to get there */
int numhops; /* how long to get there */
float cost; /* how much it costs to
* get there */
} net_system_list_rec;
sysnum, phone, name, speed should be self-explanatory.
other - what type of high-speed modem the system is
using, whether the system is a coordinator
system, and anything else that comes up in the
future.
forsys - what the next system messages will be forwarded
to. For example, if the connect.net file looks
like:
@1 2=0.00
@2 1=0.00 3=0.00
@3 2=0.00
I am system 1. The entry for system 3 would have
forsys=2, since in order to get to system #3, the message
first needs to be sent to system #2.
numhops - number of hops to get there. In example above,
237
would be 2.
cost - the cost (per k of message) to get to that system.
Would be 0.000 above.
Then, whenever a packet is received, that is not destined
for the local system, the data file (in memory) is
searched to find the system entry for the destination
system. If it is not found, then the system is unknown.
If the system is identified as unreachable (forsys=65535,
in my data structure), the system is also unknown.
Otherwise, the next system to forward the packet to is
forsys.
If you are having modem problems on net callouts....
While working on a related problem the other day, I came
across the solution to something that caused me to return
a high-speed modem last year. It seems that certain
modems REFUSE to dial out for Network calls under WWIV,
yet work perfectly with other software. I STILL have
people calling this MailServer system with their modems
in Answer Mode (they generate the negotiation tones upon
calling, rather than waiting for the answering modem),
and I FINALLY figured out the problem!
If you have a modem that doesn't always connect on
Network calls, and you haven't been able to figure out
why, READ THIS!!!
Certain chipsets (notably, some Hayes 2400 baud modems,
Zoom modems, LightCom modems, and more) have a function
which apparently is designed to save command
interpretation time. Once the modem is taken off hook,
the modem no longer checks the content of the commands
sent to it for codes to alter the mode it's operating in.
Therefore, if a call has been answered by the modem (it
is now in Answer Mode) and the line is taken "off hook",
the dialing string that is next sent (by the NETWORK
program) is interpreted as a simple command...send these
tones. The modem REMAINS in Answer Mode and will generate
the negotiation tones when a connect is established. If
the dialing string is sent to the modem while still ON
hook, the modem recognizes it as a DIAL command and
switches to Originate Mode automatically. Since there is
NO command on the dialing string to FORCE Originate Mode
(only to force Answer Mode, for some obscure reason),
there has been no way to correct the problem.
Well, I tried to figure out why the SAME EXACT modem
238
worked for a friend of mine, but I went through FOUR of
the suckers before demanding my money back. The whole
time he was using it on his BBS, he had the INIT setting
to NOT pick the phone up! While this may be a problem if
you want to keep the line BUSY while doing local things
(especially if you use PHONEV4), it will prove to you
that it IS the correct solution to dialing problems you
might have been having. If changing this setting allows
your modem to connect without fail, all you'll need to do
is go into the NETSUP.C program and remove the following
two lines located right before the call to execute the
NETWORK program (near the end of void (do_callout) ):
holdphone(1);
wait(2.5);
Simply comment these two lines out and re-compile, and
your Network callout problems might be resolved forever!
<grin>
239
F.A.Q.s - III
Q: How do I become a Source Distribution Site?
A: Well, due to the number of requests to become an SDS,
I've implemented some (hopefully) restrictive
requirements for people to become one.
ALL REQUIREMENTS ARE NON-NEGOTIABLE.
The information you need to send me to apply is listed
below. For questions which have requirements, the
requirement is listed below the question, in parenthesis.
1. List at least 20 registered users on your system who
would want to DL the source from there, by real name
& WWIV reg #.
2. Where is your system located (city, state)?
3. Which current SDS is closest to you? How close?
4. What is your WWIV reg #?
5. How long have you been registered? (at least 1 year)
6. How long have you been running a BBS consistently?
(at least 2 years)
7. How long have you been in WWIVnet? (at least 1 year)
8. What type of modem are you using on your BBS? (at
least 9600)
9. Are you running WWIV? Any other type of BBS's on the
same phone line? (yes, no)
10. Is your system open, and does it have a newuser
password? (open, no password)
11. How old are you? (at least 21)
12. Do you have any plans to take down your BBS in the
next year or so?
Are there any reasons that you might? (no, no)
13. What is the average usage (% active) of your BBS?
14. About how many callers/day?
15. How many users total?
Remember: just because you meet all the requirements
listed above does NOT automatically mean you will become
an SDS. I intend to try to keep down the number of
SDS's.
240
NOTE #1: If you are not in the US, then the requirements
are somewhat relaxed.
NOTE #2: Geographical area is very significant. If there
is another SDS close to you, then there is probably not a
need for another SDS there. There cannot be an SDS in
each state or area code.
Q: How much will it cost me to upgrade to new version of
WWIV?
Q: Can anyone answer this one: I have registered WWIV
4.22. I know I get source to 4.23 also. Is that the
last one I get source too, or am I good forever?
A: Registration is good for all 4.xx versions. If a
5.xx version should be released at some point in the
future, you would be entitled to "trade" up and get full
credit for your 4.xx registration. That is, if the 5.xx
version were to require (example only) a registration of
$150, then you would be given credit for what you paid on
your 4.xx registration so that a typical trade up might
be either:
$150 - 80 = $70 difference
or
$150 - 50 = $100 difference
depending upon when you registered the 4.xx version.
--------------------------------
One more thing: With 4.23 being multi-line, how
many lines come with the basic 80 buck registration?
-------------------------------
The pre-compiled shareware version will be capable of one
remote instance and one local instance.
The registered version based on the basic $80
registration will be capable of two instances (does not
care whether they are remote or local).
Registration for additional instances will require some
additional payment depending upon the number of instances
that you wish to have and as shown in the UPGRADE.FRM
which is shown below:
WWIV Software Services
P.O. Box 720455
McAllen, Tx 78504-0455
UPGRADE CAPACITY FORM
Beginning with v4.23 of WWIV BBS software, the BBS will
have "multi-instance." Multi-instance is defined to
allow more than one "instance" per user.lst. An instance
may be either a keyboard attached to a computer or a
comport attached to a remote modem. Sysops who are
already registered are entitled to have two instances
without making any additional payment. This form is for
those who wish to have more than two instances which
utilize the same user.lst.
241
NAME:__________________________________
Registration Number___________
CURRENT MAILING
ADDRESS (Street or P.O. Box)__________________________
CURRENT CITY,
STATE, ZIP ______________________________________________
Old Mailing Address
(time of registration)_____________________________
Old City,
State, Zip _____________________________________________
If you are on one or more of the following networks,
please indicate your node number.
WWIVnet_________ IceNET________ WWIVlink_______
Current Maximum Number of
Instances______________________________
Maximum Number of Instances on this
Order_________________________
P R I C I N G
UpGrade From \ 1 or 2 4 8 16 32
Upgrade To :
4 : $20
8 : $45 $25
16 : $80 $60 $35
32 : $120 $100 $75 $40
unlimited : $220 $200 $175 $140 $100
Amount from Above.....................$ _________
Sales Tax (Texas Residents only
.0775 * Amount) .......$ _________
Total Enclosed........................$ _________
No credit cards or purchase orders accepted. Payment
must be by personal check, cashier's check, or money
order. A $15.00 service charge is levied on all returned
checks. If you are not located in the USA, you should
send Money Orders payable in US dollars; International
Postal Money Orders are recommended.
242
Q: Who do I contact to join IceNet or WWIVLink?
A: For information on joining WWIVlink, contact 1 @2571
(WWIVnet). That is Linwood Davis who is WWIVlink's
Ombudsman. That is his WWIVnet node. When
renumbering takes place, look for The Blackboard.
For information on joining IceNET, the following
boards> be helpful:
*IceNET Message Base Coordinator is @6250
*IceNET [GSA] Support Coordinator is @14
Zone 1 Eastern Group Coordinator is @1
Zone 2 Central Group Coordinator is @14
Zone 3 Mountain Group Coordinator is @6250
Zone 4 Pacific Group Coordinator is @8850
Zone 5 Int'ntnl. Group Coordinator is @6450
Q: I have noted that sometimes my board will get in an
endless loop and try to anlyze the uddates over and
over and over until I intervene. What can be done to
prevent this?
A: Usually the problem is caused by the existence of a
P*.net or local.net file in the network data
directory of one of the networks that you are on.
You could solve this is several ways. One of the
simplest is to run WWIV out of a batch file. If you
do this, your batch file might look like the one
below. Note that if you run from a batch file and
you had been having autoexec automatically load your
board, you must now have autoexec load the batchfile
instead.
243
@echo off
:START
if exist .\DATA\P*.net goto NET0
if exist .\DATA\local.net goto NET0
if exist .\LDATA\P*.net goto NET1
if exist .\LDATA\local.net goto NET1
if exist .\IDATA\P*.net goto NET2
if exist .\IDATA\local.net goto NET2
bbs -o
goto START
:NET0
set wwiv_net=0
goto DO_STUFF
:NET1
set wwiv_net=1
goto DO_STUFF
:NET2
set WWIV_net=2
goto DO_STUFF
:DO_STUFF
network1
network2
network1
set wwiv_net=
goto START
Q: How can I customize the menus in WWIV?
A: There are two basic ways to do this. One way
involves using an editor like Qedit and making
extensive use of the heart codes. This approach is
what is used to create the menus for WWIV. If you do
things this way, you will want to maintain the
MENUSANS.MSG and MENUS.MSG approach to doing things.
A second (and perhaps easier) way to do this is to
first look at the MENUSANS.MSG and MENUS.MSG files to
note (a) what commands are on each menu and (b) what
number is used to identify that particular menu. The
identifying numbers are found on the left-hand side of
the "tear line" that separates each menu. For example,
the main menu is menu 0 and the tear line looks like
this:
244
'0---------------------------------------------------
whereas the menu3 is for the transfer section main menu
and the tear line looks like this:
'3---------------------------------------------------
So, use the LIST utility or an ascii editor to look
at those two files and obtain the ID numbers and the
commands that belong on each menu.
Your next step is to use THEDRAW or some other ANSI
editor to create the menu that you want. You can do
those one menu at a time. My recommendation (in THEDRAW)
is to save the menus using a BLOCK SAVE and to not let
the menu be longer than 21-22 lines. That will prevent
its scrolling off of the screen.
The menus should be names like this: MENU0.ANS,
MENU1.ANS, etc. The BBS software (if the user has ansi)
will pick up those menus BEFORE it looks to the MSG
files. If you wish to make Ansi menus for those without
color, you can do so and name them with a B&&W file
extension instead of the ANS extension.
In this way, you can make rather unique menus for
your system.
The Captain's Cookbook for High Speed Modem Users
CONCEPT A : There are things running on your computer
that are sabotaging your ability to do
clean, fast and error free transfers.
To understand telecommunications and how to achieve
the maximum rate of speed for uploading and downloading
files to a bulletin board you have to understand the
theory on how it all works.
I have deliberately tried to simplify this story to
the point where certain facts are not technically
correct. This has been done to allow you to understand
the theory without having to know the inner workings of
your computer. However, if you read this story and grab
the concept and apply it you will find that this
information will continue to hold true even as we
progress into the v.fast and other new modem protocols
that will push us far pass our current 14400, 16800 and
19200 limits. (Yes I know all about the high speed
Trailblazers and their higher rates of speed but who
245
really uses them other then universities and government)
Let us begin this lesson by pretending your main
CPU is a police man. For the purposes of this discussion
it does not matter whether it is 8086, 8088, 286, 386,
486, 68000, 68010, 68020, 68030 or a 68040.
Now imagine the serial port that your modem is
hooked onto is a super fast highway that must obey the
stop and go directions being given by the policeman (the
CPU).
Data being received by your computer ( such as a
file being downloaded from a bulletin board to your
computer ) is similar in nature to an ambulance that MUST
get to where it is going with as little slowdown as
possible. If for some reason your police man (the CPU)
tells the data to slowdown or stop, there is the chance
that the next packet of data will crash into the rear end
of the previous packet of data. In such an accident you
would end up with two crashed ambulances. The policeman
(the CPU) at this point would request that another new
pair of ambulances be sent to replace the two that got
smashed up. This is normally what you see when you get
tons of errors during the transfer of a file. Those
errors are usually the policeman requesting new packets
of data.
This type of crashing most commonly occurs when a
user has lied to his computer and set up his terminal
program at too high a speed for his computer. From my
observations over the years 99% of the people who have
tons of errors during a transfer usually have set their
rate of speed at 38400, 57600 or god forbid 115000.
Frankly, most computers can barely handle 19200
properly - no matter what the modem manufacturers or
serial card manufacturers may claim or advertise. Stay
with 19200 and you will get better performance then
someone who has blindly listened to some biased
advertising or heard conflicting information from some
pseudo intellectual.
I will not get into a repetition of the standard
information that you probably already SHOULD know about
setting up your modem for high speed. But it is amazing
how many folks do not set their terminal program up for
RTS/CTS. Just make sure that in your terminal program
you have XON/XOFF turned off and the RTS/CTS turned on!
I will not bother to get into a discussion about
16550 UARTS versus 16450 UARTS. The lamer 16450 is
246
transfers of data. However, as you will read later in
this text file, the buffers that are built into the 16550
UART do help you to take a tiny bit of urgency off the
shoulders of your policeman and helps to buy it some time
to clear the intersection before a collision occurs
between the ambulances. If you have a 16550 then great.
If you are running Windows or OS/2 then seriously
consider getting one. If you don't have one, then don't
lose any sleep over it. Just keep in mind what you are
learning in this document and you will understand what
you must do to ease up the work that the poor old
policeman is trying to deal with.
Now let us get something straight, we are
transmitting archived files on most bulletin boards.
That means that these files have already been compressed
greatly to reduce their size. So it is highly unlikely
that you will ever in your lifetime see a 14400 modem
transmit a .zip or .dms file at a speed greater then 2000
cps. In fact, speeds of 1650 cps to 1680 cps are the
more common norm. Wild eyed claims of 38400 and 57600
are only likely to ever occur when transmitting hellishly
large UNARCHIVED ascii files - something that is NOT like
to happen on any bulletin board that I have ever been on.
So the bottom line is to use 19200 as your setting for
making calls to bulletin boards cuz there really is not
much point cranking at 38400 or 57600 if all it is going
to do is hurt your rates of speed due to having to
constantly resend ambulances to replace the ones that got
smashed up...
Now some wieners out there will say " but Doh! how
come I can set it at 115000 baud to send a file to a
bulletin board and I never get any errors " Well the
answer to that is similar to our policeman CPU story.
When a computer is sending a file, the policeman has 100%
control over when he lets that ambulance (the data) race
through to the serial port and out to your modem. So
when the computer is sending a file to a BBS the CPU gets
to pick and choose when he will let the ambulance proceed
through the intersection. However, when a computer is
receiving a file the policeman MUST be ready to let that
incoming ambulance race through his intersection or it
will crash. That is the reason it is possible to send
error free and yet on receive you get tons of errors.
Now, carrying on with our policeman and ambulance
scenario, I would hope by this point that you have
grasped the easy to learn concept that when downloading a
file to your computer from a bulletin board you must make
247
every effort to ensure that ambulance is not stopped or
slowed down. So let us now take a look at some of the
things that you might be running that could be
contributing to the slowdowns or stoppages that are
causing ambulances to crash.
A software cache is a useful method to speed up the
reading and writing to a hard drive. However, for
telecommunication purposes you should look at a cache as
simply a detour for your ambulance to have to travel
through before it makes it to the proper destination -
your hard drive. If by some stroke of inheritance or
high paying job you have 16 or more megs of ram then by
all means run with an 8 meg cache and you will have no
interference problems with your transfers. However, if
you are like most normal poor humanoids out there with
only 4 megs of ram to your name, then do not mess around
with a cache during transfers - disable the cache from
the drive you are downloading to - let the data get there
without interference.
Now for a chuckle, let us look at that lamest of
things - the DoubleDisk, SuperStor, Stacker and all those
other 'smoke and mirror' things that try to trick you
into thinking that you have twice or three times the hard
drive space. First, think for a minute, how do you
think these wonderful products achieve these doubling of
your hard drive space? The answer is that they do a
compression on the data in a similar way to how PKZIP,
LHARC and all the other wonderful archivers compress the
files you find on the bulletin boards. Now here is the
funny part you must realize. If the .ZIP or .LZH file has
already been fully compressed do you really think that
DoubleDisk, Stacker etc can compress it even more ?
Obviously the answer is no. DD, Stacker and others only
work properly on UNCOMPRESSED data.... So if we don't
use a CACHE because it is an unnecessary detour for our
ambulance, then do you think you should permit
DoubleDisk, Stacker, SuperStor etc to waste valuable time
trying to compress the uncompressible ? Obviously no...
and yet you would be surprised how many people do
download to drives running these programs. Bottom line is
do not mess around with saving data to a drive that is
using these products. You are gaining nothing in the way
of storage and you are simply throwing yet another
bottleneck in the path of your ambulance that must make
it to its destination before it gets its ass smacked by
the ambulance that is rapidly approaching it from behind.
Ok, this is fun. I think you are starting to get
the drift now about things you might be running on your
computer that could be presenting potential roadblocks to
248
your ambulance.
Let us try the topic of multitasking. Ok, first of
all let me state that IBM's do not multitask. I do not
care what any expert may attempt to claim. The bottom
line is that the damn thing is only slicing up the
policeman's time ( the CPU ) among a number of
applications. If you are running a terminal program in
one 'window', whether on Desqview, OS/2, Windows, or
Windows NT, and in another window you are simultaneously
running some spreadsheet or game that CPU is sharing its
attention equally with both programs. So what you have
is a situation where the policeman (CPU) is 100% in
control and taking and equal amount of time to permit
each of the applications to coexist. Now, what do you
think happens when your receiving data from a bulletin
board and your policeman (CPU) politely tells it to wait
while it goes to give the other application its share of
its attention. Boom crash? You got it. The incoming
data is still ploughing into the ass of the previous data
when the policeman finally returns his attention to it.
The bottom line here is that if you are multi-tasking (
time splicing is a better description ) then you are
tossing up some potential roadblocks to the smooth flow
of data.
This returns us to a point earlier in this little
document about the 16550 UART and how it plays an
important role with Windows, OS/2 and even Desqview.
Because it has a built in buffer of a reasonable size, it
is able to absorb the incoming ambulances until the
policeman is able to turn his attention back to the
terminal program. The 16450 on the other hand does not
have this luxury and so it is more likely to simply have
an accident as the ambulances pile into each other at the
intersection waiting for the policeman to wave them
through.
So I think any logical person can quickly conclude
that even with the fastest computer sitting on your desk,
there are limits to how many applications you should
attempt to run while your trying to transfer compressed
files at high speeds without error.
Now, let us stretch our imaginations a little and
look at the lowly disk drive that is attached to your
computer. Those damn floppy drives are like a 900 pound
fat woman with blood dripping off her standing right next
to our policeman and screaming in his ear at the top of
her voice. Do not even bother to try to fart around on
your floppy disk drive while you are multi-tasking and
249
downloading to a hard drive. This screaming pig will get
90% of the policeman's attention and he will totally
ignore all his other traffic. If for some reason you are
downloading to a floppy disk then the fat bloody
screaming woman will help you in that she will command so
much of that policeman's attention that none of the
traffic other then your transfer will get its attention.
But seriously how many people will download a file from a
BBS to a floppy disk drive... how lame.
So let us cut this part of the story short by
simply stating that your job is to identify all possible
detours, slowdowns, or blockades that will affect the
speed that your ambulance is travelling to get to your
hard drive. With this concept firmly implanted in your
mind let us next proceed to another of my favorite topics
that often comes up in discussions about errors during
high speed transfers of files to and from a bulletin
board.
CONCEPT B : There are things around your computer that
are sabotaging your ability to do clean,
fast and error free transfers.
Modems are interesting devices. In one way you
might look at them is something as simple as a radio.
Have you ever been listening to your radio when a car or
truck with a bad ignition system drove by and you heard
snaps and crackle sounds coming in our your ZZ Top tunes
? Or have you ever placed your radio close to your
monitor or computer and heard the strange effects it
causes to the tunes?
During the cold war with Russia, both the
American's and Russians were busy working on 'devices'
that would 'jam' the other sides computers,
communications and even simple things like their
microwave ovens. They were attempting to do this by
unleashing hellishly high amounts of RF and
electromagnetic energy that would disrupt the electronic
circuits.
On a simpler level of things, have you ever noticed
when you drove your car under hydro lines you would
either lose your radio signal or find the sound garbled ?
Welcome to the world of RF (radio frequency) and ER
(electromagnetic radiation). Both of which have the
250
amazing ability to screw up the way your modem works.
If your modem is poorly shielded, or just poorly
manufactured it is highly susceptible to this form of
interference. Basically it displaces the valid data that
is travelling through your modem with erratic patterns
that force the modem to request new data be resent -
hence an error during the file transfer. Remember how
diskette manufacturers always told you to never leave
your disk near a magnet ? Or how about the famous disk
near a telephone warning ? The disruption that a magnet
or electromagnet can cause to the data stored on a
diskette is similar for the purposes of this part of the
document to explain the disruption that can be caused to
your modem by the computer or the monitor.
On a computer, you have RF energy being transmitted
by the CPU chip and its other buddies. You also have
electromagnetic energy caused by the power supply of the
computer. The monitor similarly has both.
If your modem or the serial cable come in close
proximity to either of these two devices there is a
possibility that your data is being interfered with.
The easy answer is to simply make sure that your modem is
AS FAR AWAY from both of these two sources as possible.
I know it looks cool to put your modem on top of your
computer, but is it worth all those download errors just
to park it above the power supply ? Or what about those
folks who park their modem next to their monitor ? And
how about those folks who wrap their six foot modem
serial cables in loops at the back of their system in
close proximity to both the computer and the monitor.
The short answer is that if you are having problems
and the first part of this document did not solve your
problems, then it is possible this may be the hidden
cause of your grief. This also happens to be the one
problem that 99% of the supposed experts never seem to
think of when trying to help people who are having
problems.
Now let us take this a little further. Would you
put your modem next to a large fan ? Nah... obviously
electromagnetic fields are coming off that fan. How
about sitting the modem next to your power supply bar
where the modems power transformer is plugged in ?
Nah... obviously electromagnetic fields are coming from
that power transformer. Ok, how about a trick question?
Would you put the modem in close proximity to a
fluorescent (tube) or neon light ( like some fancy
251
telephones have ) ? Nah.... cuz both of them usually
have a device inside their housing called a ballast
transformer that can throw quite an electromagnetic field
for some distance.
Let me prepare to close this section with a short
story just to show you how hidden the ballast
transformers of fluorescent lights can be. One user I
assisted once tracked the source of his problem down to
one of those 3 foot long tube type lights that was
located on his fathers work bench in the room next to
his. Whenever his dad left the light on his modem acted
up. Whenever the light was off he had no problems. His
solution was to buy his dad a new desk lamp and toss out
the tube light - its ballast was defective. Weird story
but if you were not aware of the problem of RF and ER
energy then he might have continued blaming Ma Bell or
the BBS for his problems with his modem.
So let us cut this part of the story short by
simply stating that your job is to make sure that all
possible sources of electromagnetic and radio frequency
interference are kept at a healthy distance from your
modem, its serial cable and the telephone line that leads
to the telephone jack on your wall.
CONCEPT C : There are things that happen to your
telephone lines signal between your house
and the BBS that your calling.
Ma Bell is not perfect. Her phone line system is
not perfect. Your signal over the phone lines has the
potential to encounter an unlimited number of 'chance'
screwups that might cause an error during a file
transfer. In the easiest type situation you simply hang
up and call again and pray you get a clean line the next
time - as it is unlikely your two calls will end up
taking absolutely identical paths through Ma Bells system
to get to where your calling.
There are some clever, witty and more informed
documents floating around on bulletin boards discussing
'line noise' and so I will not even bother to improve or
expand on this topic.
My short answer on this one is to slap a telephone
onto the phone line you usually use to call out on, and
call up some friend. Then listen really carefully for
snaps, crackles and pops on your phone.
252
If your buddy on the other end is not eating Rice
Crispies at the time of your call it is possible you have
a 'dirty' phone line.
Simply call Ma Bell and report that you are
encountering a lot of 'line noise' on your phone line and
that you would like them to check it out. This is a free
service provided by Ma Bell and should be used BEFORE
spending one red cent on 'line filters' and other such
crap available at Radio Shack.
Once upon a time I was experiencing hellishly bad
line noise problems and on three occasions they sent
their boyz over to my house to test the phone lines.
Each time they could not find anything. On the fourth
try they went and dug up my neighbors back yard to get at
the underground cable and found that the underground
cable had split open and that whenever the wiener next
door watered his lawn ( almost every second day ) the
water seeped into the ground, got into the cable and was
technically shorting it out. They spliced it, sealed it
and never again did I have any phone line noise - except
the bitching phone calls from the neighbor whose backyard
was destroyed by the boyz at Bell and their backhoe
tractor ahahahhahaha
This ends this document. I hope that the
information here will prove helpful to you if you are
encountering problems. If not, I hope my warped sense of
humor, spelling errors, grammatical errors provided you
with some amusement.
Q: How do I get randomized welcome screens?
A: Make sure you have a file called WELCOME.MSG, one
called WELCOME.ANS, and then as many sequentially
numbered WELCOME.<num> (WELCOME.0, WELCOME.1, etc)
files as you wish. These should all reside in your
GFILES dir. If you have put your primary language
directory in a directory other than GFILES, then you
should put these welcome messages in that directory.
Q: Why doesn't NCACHE v7.0 work right with WWIV?
A: Norton's version 7 NCACHE2 doesn't seem to get
along with WWIV very well, or with some other programs
written in C. Version 6's NCACHE seems to work just
fine.
If you are having strange lockups, getting
occasional garbage on the screen, QEMM Exception 13's, or
other intermittent behavior, try operating without
253
NCACHE2 for a couple of days.
I found that when I upgraded from NCACHE (ver 6) to
NCACHE2 (ver 7) with WWIV 4.22, it would lock up every
time I shelled to DOS, so I went back to NCACHE (ver 6),
and have been using that till a few days ago. I decided
to see if NCACHE2 was happy with 4.23, and at first it
seemed it was, but the following day brought several
instances of garbage at logon after certain chains had
been run, and there were QEMM Exception errors at other
times. Switching back to NCACHE (ver 6) cleared
everything up.
I mentioned this because the problems observed don't
seem to have any apparent relationship with cache use,
making it extremely difficult to determine what is
causing the problem. If you are having problems, and are
using NCACHE2, try removing it and see what happens.
I would appreciate hearing from anyone who has
similar findings. I am trying to compile enough info to
get Symantic's attention. At this point, they insist
their product is fine, and the problem is caused by the
other guy, even though they admitted they had similar
complaints involving other programs written in C..
Q: How do I send gated e-mail to someone on a different
net?
A: You must first identify a board that is on both the
network that you wish to mail to and the network that
you are on. Let us say that you are on WWIVlink and
you wish to send mail to someone (say 1@8414) on
WWIVnet, then you address the mail as follows on the
next page:
254
WWIVnet #1 AT 8414 @GateNode
^ ^ ^ ^ ^
: : : : :
: : : : :....the node number that is on both
: : : : networks such as @19943 or @2050
: : : :
: : : :..........the node number on WWIVnet that
: : : you wish the mail to go to :
: : :
: : :.............be sure to spell this out "AT" :
: :
: :................user number must be preceded by
: a # sign you can e-mail by name
: as well if you are sure of the
: handle or name.
:
:........................the network where 8414 is
located.
Q: Why do some subs have <NET> and others have [NET] ?
A: The <NET> subs are those which have net validation
turned off. The [NET] are those netted subs that
have it turned on. These options are accessible to
the Sysop in BOARDEDIT from the BBS or from WFC.
Q: I would like to start my own network. How do I do it?
A: Currently the policy of WWIV management is to
discourage people from starting their own networks
unless (1) they are going to have something unique on
their network that is not obtainable or not do-able
on the major established networks and (2) they have
studied the operation of the network software
sufficiently to understand how it works. For a small
network of 10-25 boards or so, you should be able to
figure out how to do this on your own; if you cannot
do so, you will not be equipped to handle the various
problems that you will certainly have from time to
time.
Therefore, if you pursue your goal of your own
network, let me suggest that you study the connect.x
files, the bbslist.x files and read the network
documentation thoroughly.
Q: I heard it is really easy to hack WWIV. Is this true?
A: (by Sam)
255
The only way to hack WWIV is sysop error.
If the sysop goes and runs programs that are uploaded
to him on the same computer he runs his BBS on, he is
making himself vulnerable.
If the sysop doesn't have all uploads go to the sysop
dir, he is possibly making himself vulnerable.
If the sysop hands out 255 SL accounts, he is
definitely making himself vulnerable.
There is no known way to hack WWIV. I have been
beating this point into a couple of VBBS sysops over on
my WWIV World-Wide Link sub for about two months now,
even going to the extent of daring them to call here and
hack my board, and offering them $100.00 if they are
successful (figured it would be worth that much to me to
find out if there *is* some way to do it, but none of
them have had the cajones to take me up on it).
There are a couple of extra security measures you can
take to *really* make your BBS secure.
This first modification will add a hardcoded password.
It will force anyone calling in that has 255 to enter it,
or they will not be able to log on. The ONLY way this
can be compromised is by sysop error.
This goes in LILO.C.
echo=0;
input(s4,20);
if (strcmp(s4,syscfg.systempw)!=0)
ok=0;
}
/* Start copy for hardcode mod */
if ((thisuser.sl==255) && (incom) && (ok)) {
/* Remvoed "&& (usernum==1)" after "(thisuser.sl==255)" */
// npr("Sam's Personal Password:");
outstr(get_stringx(7,55));
echo=0;
input(s5,20);
if (strcmp(s5,"PASSWORD")!=0)
/*Above is where you add your password*/
ok=0;
}
/* End hardcode mod */
256
echo=1;
if (ok) {
reset_act_sl();
changedsl();
} else {
++thisuser.illegal;
The only way anyone will be able to log on remotely is if
they know the password you put in this part of LILO.C.
Next, for added protection, put this in your source code
somewhere. You'll need to prototype it in FCNS.H.
int protect(void)
{
if (usernum==1)
return 1;
if (usernum==2)
return 1;
if (usernum==4)
return 1;
if (usernum==378)
return 1;
return 0;
}
Next, go into BBS.C, and make these changes to all
the functions you want to protect. What this is going to
do is check the function above, and if the user number is
not listed in it, they will not be able to execute any of
the // functions unless they are one of the numbers you
have hard coded in there. In the above example, account
numbers 1, 2, 4, and 378 would be able to run the //
commands. (ie, //DOS, //BOARDEDIT, etc). You can have as
many of the accounts or as few of the accounts as you
like.
Keep in mind that even if the account has 255, if they
are not listed in the above function, when they type
//DOS (or whatever), it will simply drop right back to
the main menu.
Now, this sort of protection is not automatic. you
have to go into BBS.C and tinker with the // commands you
want to protect. Here are a few of the ones I did.
You'll have to compare them to the original source to see
what I did to invoke it. It is really easy though.
257
/**************************************************/
if (so()) {
#ifdef OPT_FAST_SEARCH
if (((strcmp(s,"ALLOWEDIT")==0) ||
(strcmp(s,"AE")==0)) && protect()) edit_database();
#endif
if (((strcmp(s,"INSTEDIT")==0) ||
(strcmp(s,"IE")==0)) && protect()) instance_edit();
if (((strcmp(s,"CONFEDIT")==0) ||
(strcmp(s,"JE")==0)) && protect()) {
write_inst(INST_LOC_CONFEDIT,0,INST_FLAGS_ONLINE);
edit_confs();
}
if (((strcmp(s,"BOARDEDIT")==0) ||
(strcmp(s,"BE")==0)) && protect()) {
write_inst(INST_LOC_BOARDEDIT,0,INST_FLAGS_ONLINE);
sysoplog(get_stringx(1,2));
boardedit();
}
if (((strcmp(s,"CHAINEDIT")==0) ||
(strcmp(s,"CE")==0)) && protect()) {
write_inst(INST_LOC_CHAINEDIT,0,INST_FLAGS_ONLINE);
sysoplog(get_stringx(1,4));
chainedit();
}
Q: What is Planet Connect?
A: Planet Connect refers to the broadcast from a
Satellite (G3) which transmits data for several
networks. Currently the covered networks include
FidoNet (Backbone and Filebone), InterNet (some News
Groups), RoseNet, ILink, Rime, and some others. With
a satellite connection, you can receive all of that
information at a reasonable price (compared to what
it would cost to transfer it via phone lines).
Q: Will WWIV be on Planet Connect?
A: We do not know yet. We have talked to the people in
charge and are waiting for their reply. They are
determining if they have the capacity to handle
WWIVnet as well.
Q: What does it cost to connect to Planet Connect?
A: The fee is $40 a month if paid on a quarterly basis.
258
For this, you get all public BBS networks carried by
them except for InterNet. They intend to charge an
additional $30 per month for InterNet.
Q: How does information get to Planet Connect?
A: Each network has a centralized receiver that obtains
all packets to be sent to the satellite and then that
receiver sends it to the BBS run by Planet Connect.
Planet Connect then transmits it to the Satellite.
Q: Won't that (being on Planet Connect) cause some
problems for WWIV routing?
A: Yes, it will. Wayne Bell is currently investigating
the best way to accommodate the concept while still
retaining our basic method of routing.
Q: What is REMOTES.DAT and what is it for?
A: As you may be aware, Snarf (a popular file request
program for WWIV) made use of !-@REMOTE@-! in order
to get in and run a program called REMOTE.EXE. Since
other people had other programs that they wanted to
work in the same manner as SNARF, Wayne created some
code where if something came in a !-@whatever@-! that
it would check a file in DATA called REMOTES.DAT for
the "whatever"; if it existed, it would attempt to
run whatever commands followed it. However, there
has not been, to my knowledge, much experimentation
with this, so it remains a little used and little
understood feature.
Q: How do I get access to the WWIV Source Code?
A: You must e-mail 1 @1 (WWIVnet) from an authorized
Source Distribution Site and provide the following
information:
1) Your real name at time of registration
2) Your address at time of registration
3) Your WWIV Registration Number
4) Your username/usernumber on the SDS system.
Wayne verifies that information, adds you to the SDS
access list which he distributes about once a week, and
informs you that you have been approved.
259
Then, you must be patient for you will probably get
the email about your approval BEFORE Wayne has sent the
information to the SDS sysops. Thus, you will not
actually have the access until those sysops receive the
updated list from Wayne and grant you the access; most
SDS Sysops will write you at the time that you have been
granted access.
Q: What does it take to run a Server in WWIVnet?
A: Server systems are systems which are dedicated to the
sending and receiving of WWIVnet mail. As such, they
have no users or only the sysops who are being served
as users. The following characteristics are common
to servers and should be attributes of any Server
system.
1. 24 hours per day
2. Willing to pay the cost to connect to at least 3
other servers. [Note: Most server phone bills
will be between $100 and $300 per month. If you
cannot afford to pay the bill without financial
help, you are probably best advised not to start
a server.
3. Reliable -- Willing to commit to at least one
year of acting as a WWIVnet server.
4. No users or only connecting sysops as users.
5. Transfer area limited to Network Programs and
files
6. Using a Hi-Speed Modem (not a requirement but a
practical necessity to keep costs down.)
Q: Are there any "privileges" associated with being a
server?
A: A server system is not required to register to be on
WWIVnet. That is, you can run a completely separate
BBS (registered) and a server without having to
register the server. Most server sysops are
registered however.
Q: Do servers get special routing status?
A: Yes, in the event of "tied" routes, the network will
give priority to the server.
260
Q: What is Snarf and what is it for?
A: Snarf is a program which allows you to dial a
Snarfable bbs and transmit files (upload/download)
without having to log on to the BBS. It is similar
to FidoNet's FREQ (File Request). It will only work
on WWIV boards that have set it up.
Q: I get a large number of UNKNOWN SYSTEMS. What causes
them?
A: UNKNOWN SYSTEM can come about in several ways. If we
understand these ways, then perhaps we can facilitate
(sometimes) the node becoming a known system again.
Things that cause a system to be UNKNOWN:
1) Sysop is impatient and begins to send out e-mail
requesting subs etc before his node has made the
update.
Remedy: patience! If you receive such a message, you
might either (a) save it and reply when the node is
known (I do this but it certainly can fill the mail
box as those who call my board will testify). (b)
Delete it since you cannot reply to it. Hope the
person will subscribe again when he/she is a known
system.
2) A legitimate system is "isolated" in the network.
263
Remedy: Establish new connections to the board(s)
that is isolated.
This happens if, for example, boards 1-6 connect to
each other and rely upon board 6's connection to the
outside world for incoming and outgoing mail. If either
board 6 or board 6's LD connection should be removed from
the net or the connection broken, then all of those
boards would become UNKNOWN even though they are listed
in the BBSLIST.x file for the net would have no way to
reach them.
Sometimes this isolation happens due to GC error
(yep, we make typos too) or to a failure to get the
timing of a switch in connections correct. For example,
I recently had node 985x wish to change its connections
from 1040 (Group 4 server) to 1021 (Group 2 server). I
turned in the drop from 985x - 1040, but 1@3456 (Group 2
GC) did not get the ADD connection from 985x - 1021
turned in in time for the update. Thus that node was
UNKNOWN until the next update.
Under v4.24, these systems can be listed from WFC by
using the backgrave (`) character. This helps AC's and
GC's to identify unconnected systems.
There are other variations upon the two basic reasons
identified above. When in doubt regarding whether or not
a system is real, you can always call the board direct.
This often is the fastest way to establish the status of
that board. Other ways to find out are to write the AC
or GC for the board and inquire about it.
Probably the least helpful and least efficient way to
inquire is thru a post on a National Sub. I do not mean
to hurt your feelings here, but most people simply are
not interested or do not care to take the time to explain
the situation, even if they know the answer. There are
significant exceptions to this (such as when I had a hard
disk crash or when Sam Morris (@7106 at the time) moved
to Texas. Sysops were very helpful in explaining why
certain subs suddenly were not being received.
Q: How come my callers can log on with a number but not a
name?
Q: Sometimes my users can only log in with their User
Number. The BBS does not recognize their User Name.
What can be done about this?
264
A: This situation indicates that the USER.LST and
NAMES.LST have lost their correspondence. You should
first try running //RESETF from the BBS. Often that
will fix the problem. If it does not, then try using
FIX.EXE which has been distributed with the last
three versions (4.22, 4.23, and 4.24) of WWIV. Be
sure to use the FIX made for the version that you are
running.
Q: What is this UUencode/UUdecode stuff?
A: The UUencode and UUdecode programs were originally
developed in the UNIX environment (hence the UU for
Unix-to-Unix in the name).
These particular utilities were developed so that
files which were not in ASCII format could be sent
over the network as messages. UUencoding will make
an archived (compressed) file, COM or EXE program
capable of being transmitted via the network.
It is generally considered BAD FORM to send large
files via WWIVnet in this matter unless it is being
sent between two directly connected systems.
Q: What are my responsibilities since I'm a member of
WWIVNet?
A: Welcome to WWIVnet!
Your application has been processed and I am writing you
in a separate letter regarding confirmation of your node
assignment, connections and so forth. This letter is to
welcome you, to encourage you to read the WWIVNET.DOC
file, and to inform you of a few simple network policies
which, when followed, makes the network more enjoyable
for everyone.
1) WWIVnet requires that members register the software
if the member intends to stay on the network beyond
the "60 day" trial period. To register, if you are
not registered already, complete the REGISTER.FRM
included in the BBS software package and send it to
WWIV Software Services, P.O. Box 720455, McAllen, Tx
78504-0455. If you run a BBS software not based on
WWIV in any way, use NETREG.FRM found in the
NETxx.ZIP package.
265
2) Except for going down in the event of hardware
failure, you must give a two-week notice when asking
to be removed from the network. You should also
write each sub host and ask to be removed from their
subscriber lists and notify your connections of the
date when you plan to cease connecting. Such an
orderly withdrawal saves everyone money.
3) Sub-Hosts have the right to define the policy for
each networked sub. Please adhere to those policies
for the subs you subscribe to.
4) WWIVnet is NOT a file transfer net. NET33 and
greater has a POLICY.NET doc which you should read
and abide by.
If you have questions, please let me know. We want
everyone on WWIVnet to find it an enjoyable and useful
experience, so please do your part to make it a great
"place to be". Frequently Asked Questions (FAQ's) and
Other Neat Things
Q: How do you use form letters?
A: Form letters are letters which contain a response
that you use often. One example of a form letter that
you might use often is a letter to new users which you
can send when you read their validation letter.
Typically such a letter will introduce them to you and
the rules of your bbs.
Form letters should be placed in the G-FILES
directory and should have an extension of FRM. You can
use anything as the file name preceeding the extension,
but you will find it handy to use something that reminds
you of the purpose. For example, you might use NU or
NEWUSER to let you know the purpose. You will find form
letters to be very handy once you determine what subjects
you reply to frequently.
Q: How do you use the FILE_ID.DIZ feature?
A: When a Zip file (or primary archive) has a file within
it named FILE_ID.DIZ, then the BBS will pick up the
description of the archive from the FILE_ID.DIZ.
Persons who upload files to other BBSes are encouraged
to put such file descriptions in the FILE_ID.DIZ file.
266
RIPspeed Frequently Asked Questions (FAQ) List
----------------------------------------------
Copyright (C) 1995 by Zachary G. Ives
All Rights Reserved
3/3/95 Edition
RIPspeed Support Files
----------------------
It seems that there is a great deal of confusion relating
to which RIP files go where, so here is the *official*
word:
\WWIV\RIPMENUS
MENUS.TXT Displayed during menu download
*.MN? Downloadable RIP menu files
*.IC? RIPscrip 1.5 icons
*.BM? RIPscrip 2.0 icons
INTRO*.RIP \
HOME.RIP } These are optional sample screens for
/ the hypertext
IMAGE*.RIP / feature of RIPspeed; they can be
replaced at any time
\WWIV\GFILES (or default language)
MENUSLCL.MSG Non-downloadable menus
MENUSSOF.MSG Reduced-function menus for Softerm's
limited-RIP mode
WELCOME.RIP Log-on screen (should turn off RIP
status bar)
HELLO.RIP Frame/border screen for log-on process
GOODBYE.RIP Log-off frame/border screen
NEWUSER.RIP Frame/border screen for new users'
data entry
BBS.STR Includes many RIP strings
WWIVMAIL.RIP \
WWIVEDIT.RIP \ These screens are all for external
| doors/editors,
FSED.RIP / & should be renamed to DOOR*.RIP or
/ EDIT*.RIP, as
FEDIT.RIP / discussed below
267
Custom Door and Editor Menus
----------------------------
WWIV 4.24 includes a facility for assigning RIP menus
to programs which do not actually support RIP. Included in
the stock version are menus for WWIVmail/QWK 4.5x,
WWIVedit, FSED, and Fedit. It is fairly simple to adapt
one of these files to work with a different program.
In order to assign a menu to an individual door, find
out what number that particular door is assigned on your
WWIV Chains menu. Then simply rename the menu file to the
name DOOR#.RIP, where # is the number of the door. For
example, if WWIVmail is your Door #1, rename WWIVMAIL.RIP
to DOOR1.RIP. It will automatically be loaded every time a
user selects WWIVmail under RIP mode.
The external editors can also have their own menus. In
this case, get the editor number off the editors list; then
rename your file to EDIT#.RIP, where # is the number. If
WWIVedit is Editor #5 on your list, rename WWIVEDIT.RIP to
EDIT5.RIP.
This feature is easy to use, but it gives your doors
the ability to use RIP even if they do not recognize it.
Note that you will only briefly see the door or editor
menu if you log on locally with RIP. Many programs,
including WWIVedit, do not operate correctly in graphics
mode; so WWIV automatically switches back to text mode in
order to operate external programs.
Random RIP Screens
------------------
As with the ANSI WELCOME screens, you can randomly
choose a RIP logon or logoff screen. The files WELCOME,
GOODBYE, HELLO, and NEWUSER all may be randomly selected.
In order to have more than one RIP screen, give the
first one an extension of .R0; the second, .R1; and so
forth, up to .R99. You can have WELCOME.R0 - WELCOME.R99,
GOODBYE.R0 - GOODBYE.R99, etc.
Editing/Altering Individual Menus
---------------------------------
RIPspeed is designed to be very customizable, so you
can freely edit any of the menus or screens in the package.
268
All you need is a RIP drawing program (I recommend
DeadPaint 3.0+ or FlatLiner, or RIPpaint if you can afford
it). Assuming the editor does not "malfunction" and drop
certain codes from a menu file, you can update the screens
as much as you wish. Note that not all of the menus are in
.MN? files; certain menus which are not downloadable by the
user (including the menu selection screen) are stored
inside MENUSLCL.MSG. Each menu is separated by a line
which looks like:
`330==================================================
The number after the back-quote is the menu number; the
line following this header marks the beginning of the RIP
screen, and the next header like this delimits the
beginning of the *next* menu file. If you simply open up
MENUSLCL.MSG in the DOS editor, you can copy out one of
these menus and save it to a separate ASCII file. You can
then load this into your paint program, edit it to your
satisfaction, and use the editor to paste it back in place.
Adding/Removing Menu Sets
-------------------------
Stock WWIV 4.24 comes with six menu sets, but you can
easily change this number. The menu selection screen, #350
in MENUSLCL.MSG (see above for more info), is the only file
which requires editing. You need to either add or remove
one of the choices from this screen.
Each menu set has a button and text label assigned to
it, plus a single character. This character corresponds to
the last character in the .MN? file extension: *.MN1 has
the character 1, *.MN6 the character 6, and so forth. If
you wish to add another menu style, simply copy one of the
buttons to a new location on the screen and change its
title and extension. If you would prefer to remove one of
the menus, simply erase its button.
Hypertext
---------
One unique function supported by RIPspeed is hyperlinks
between RIP files. For security reasons, the files must
stored in one of two locations: on the user's machine, or
in the BBS system's RIPMENUS directory.
269
The means for supporting hypertext is fairly simple. A
RIP button is placed on the screen, and when it is pressed,
a special code is sent to WWIV. This code is an ASCII 5,
followed by the hyperlink filename, followed by a carriage
return.
When you create a RIP file in which you want to include
a link, you must create a button on the screen to activate
the link. Give the button a title which suggests where it
is headed; then assign a command string as follows:
^E{filename}^M
where {filename} is the name of the file to which you wish
to link. The ^E is an ASCII 5, and the ^M is a carriage
return.
WWIV comes with a simple demonstration of the hypertext
capabilities, including a sample image and a quick
text-based introduction to WWIV. By default, the Hypertext
command activates the HOME.RIP file, which includes links
to all other files. It is suggested that you use HOME.RIP
as your "home page", and use it to link in all other files.
Substitution Codes
------------------
Another new feature in WWIV 4.24 is not RIP-specific,
but can also be used in messages and ANSI/ASCII menu files.
This version introduces a number of "substitution codes,"
placemarkers in your file which are replaced with
system-related information. You may now embed the name of
the current user, time of day, or system name in nearly any
file which is displayed by the BBS. (Note that you cannot
use this feature in downloadable RIP menus, because RIPterm
does not support these codes.)
The code sequence is signified by two consecutive ASCII
15's, followed by a single letter. (Note that a single
ASCII 15, followed by a character other than an ASCII 15,
is reserved for font information in future versions of
WWIV.) Here are the codes supported:
~ = Total e-mails/fbks / = Today's Date
% = Time left # = User number
$ = File points * = WWIV reg num
- = A** points ! = Pause command
& = RIP/ANSI/ASCII @ = Dir name
: = Sub # ; = Dir #
270
A = User age a = User language
B = User Birthday b = Minutes in timebank
C = User city c = User country
D = Files downloaded d = User DSL
E = E-mails sent e = Net E-mails sent
F = Feedbacks sent f = First call
G = MessaGes read g = Gold
I = User callsIgn i = Illegal log-ons
J = Message conf name j = Dir conf name
K = Kb uploaded k = Kb downloaded
L = Last call l = Number of logons
M = Mail waiting m = Messages posted
N = User's name n = Sysop's note
O = Times on today o = Minutes on
P = BBS phone p = User's phone
R = User's real name r = Last baud rate
S = User's SL s = User's street addr.
T = User's sTate t = Current time
U = Files uploaded V = # messages in sub
X = User's seX
Y = Your BBS Name y = User Computer tYpe
Z = User's zip code
If you want your WWIV ANSI menu to print the BBS name,
user, and current time and date, you can include something
like the following in MENU0.ANS (note that all ñ's are
ASCII 15 (Ctrl-O)'s):
-- ññY Main Menu ----------------------- ññ/ ññt
-- Hello, ññN! You have ññ% remaining online.
Or you can include a quick summary of a caller's
statistics in the LOGON.MSG file:
ññY, ññP
Information for ññR, a.k.a. ññN ññ#:
Address: ññs
ññC, ññT ññZ
ññp
You are ññA years old, born on ññB.
You have downloaded ññkKB in ññD files
and uploaded ññKKB in ññU files.
You are in ññ& mode.
Q: What editors can be used to edit or create Rip Menus?
271
A: There are several Shareware editors out there. I
use DeadPaint 3.0, but FlatLiner also works well. The only
RIP draw program I *don't* recommend is TombStone Artist,
because it (at least in the version I used) supported only
a tiny subset of the RIP commands.
One suggestion: don't use the flood-fill capability
in any of your drawings. RIPscrip 2.0 does not support
flood-fills, and certain terminal programs don't properly
support it either.
F.A.Q.s - IV
Q: What do your setup screens look like in Desqview?
(Written by Sam)
I have seen several people talk about having trouble
setting up WWIV 4.23 under Desqview (DV). I have a 486
DX2/66 with 8 megs of RAM, and have successfully been
able to run four nodes without problem. [Ed. Note--by
Sam]
Below are snapshots of my DV setup screens. They are
chopped to 60 columns for the purposes of these docs:
Nodes two, three, and four are identical to this, except
of course they call BBS2.BAT, etc.
You may or may not be able to squeeze 590k out of each
window. If you cannot, keep trying until you get as much
memory as you can out of each window.
Here are my BBS.BAT files I call to run the program:
(BBS1.BAT)
SET WWIV_INSTANCE=1
BBS -I1
(BBS2.BAT)
SET WWIV_INSTANCE=2
BBS -I2
(BBS3.BAT)
SET WWIV_INSTANCE=3
BBS -I3
272
(BBS4.BAT)
SET WWIV_INSTANCE=2
BBS -M -I2
(In this example, node four is set to ignore the modem
(-M). To make it answer the phone, just remove the -M
parameter)
Here is a copy of my autoexec.bat and config.sys files:
Autoexec.Bat:
[Note: An indented line is part of the preceeding line.]
@echo off
PATH=C:\qemm;c:\;c:\dos;c:\norton;c:\scan;c:\util;c:\borla>
c\bin;c:\wwiv;c:\thedraw;%path%
SET COMSPEC=C:\DOS\COMMAND.COM
set DSZOPT=-m
c:\qemm\loadhi /r:3 mscdex.exe /D:MSCD000 /E
c:\qemm\loadhi /r:3 grabber \sam
c:\qemm\loadhi /r:3 doskey
c:\qemm\loadhi /r:1 phonev4 /p2 /r5
rem c:\util\bnu /L1:38400 /f+
mode con rate=30 delay=1
set pknofastchar=on
PROMPT=$P$G
set dszlog=c:\wwiv\wwivdsz.log
cd\wwiv
c:\qemm\loadhi /r:3 /lo ncache /ext=200
ncache optimize=M
bbs
And my Config.Sys:
[Note an indented line is part of the preceeding line.]
dos=high
DEVICE=c:\qemm\DOSDATA.SYS
device=c:\util\bnu.sys /L1:38400 /f
LASTDRIVE=K
DEVICE=c:\qemm\QEMM386.SYS ARAM=CB80-CBFF R:1 RAM
DEVICE=c:\qemm\DOS-UP.SYS @c:\qemm\DOS-UP.DAT
DEVICE=c:\qemm\loadhi.sys /r:1 c:\dev\drd600.sys
/d:mscd000 /N:6 /S:0 /B: /C:CDP
Stacks=0,0
fcbs=4,0
BREAK=ON
files=45
buffers=30
DEVICE=c:\qemm\loadhi.sys /r:1 c:\dos\ansi.sys
273
SHELL=c:\qemm\loadhi.com /r:2 /res=2736 /sqt=cb00-cbff
C:\command.com C:\ /P INSTALL=C:\QEMM\LOADHI.COM /TSR
/R:2 /RES=9504 /SQT=CB00-CBFF C:\DOS\SHARE.EXE /L:200
I hope this helps some of you out that are having
troubles. As you can see, I am still able to run quite a
few TSR's, and still have plenty of memory to run
WWIVEdit in all windows simultaneously.
I am not an expert with Desqview, but tinkered around
with it for quite a while, and stumbled upon this setup.
Like I say, it works great here.
Q: What is all this v.32bis/v.42bis stuff?
Also, EXACTLY what does this v.32 v.32bis, v.42, v.42bis
stuff mean? .42 is 14.4 baud, right? And v.42bis is even
higher, right? Under what conditions will it log on
higher than 14.4? And if it automatically drops back
because of the lines, will it go back up if possible?
What modems CAN'T connect with other modems?
A: Here is a listing of all that V.xx stuff. :)
V.21 - standard for 300 bps
V.22 - standard for 1200 bps
V.22bis - standard for 2400 bps
V.23 - standard for either 1200 bps or 600 bps with
75 bps back channel
V.25 - specifies an answer tone other than that
which is used in the US or Canada (ie, use
this if expecting callers from overseas)
V.32 - standard for 4800 bps and 9600 bps (fallback
and fall forward)
V.32bis - extender for 4800, 7200, 9600, 12000, 14400.
Standard for 14400 bps with the other speeds
being the fallback/fall forward increments.
V.32fast - PROPOSED standard for 19200 bps
V.42 - LAPM error control
V.42bis - 4x data compression scheme
MNP-5 - 2x data compression scheme
MNP 1-4 - MNP error control
Now. If you have a 14.4Kbps modem, you will *never*
connect faster than 14.4Kbps. It is possible, under
certain circumstances, to transfer files with an
EFFECTIVE throughput that is better than what you'd get
with 14.4Kbps alone.
What conditions, you may ask. Well, if you make a
V.32bis/V.42bis connection (which means a 14.4Kbps
274
connection with the 4x data compression active), *and*
you transfer an *UNCOMPRESSED* (meaning a file that has
not been ZIPped, ARJed, or whatever), you will achieve a
throughput that is 4 TIMES faster than if you tried to
transfer the same file with V.42bis OFF. Thus, your
effective throughput for the file transfer will be
57.6Kbps. You will still only have a 214.4Kbps
connection, however. The reason why this is only true
for compressed files is due to the modem's built in data
compression scheme. The way that works is this: Since
ZIP, ARJ, LHA, and the like a capable of compressing
files by more than 4x (and they all are that way), this
is the preferred way to transfer files over the modem.
Now, with MNP-5 turned on, you are activating the
modems 2x data compression scheme. This is also a "dumb"
compression scheme. Meaning that it will try to compress
a file that has already been compressed. The result of
this action is that the file will INCREASE in size,
thereby making the file transmission time increase
(effectively LOWERING CPS).
With V.42bis turn on, this activates the 4x data
compression scheme. This is the smart one. When the
file is being transmitted, V.42bis sees this, and turns
itself off, since it knows it cannot improve on modem
transmission times by trying to compress a file that has
already been compressed.
So the normal rule of thumb is to turn off MNP-5 and
turn on V.42bis. This way you get the best of both
worlds.
Most modems that can fall back, will fall forward to
max speed again when the phone line quality improves.
And, finally, no matter which modem you buy, you'll
find one, eventually, that you cannot connect to.
I have a Practical Peripheral 9600SA. So far, as a
SysOp, I've run across only two users that couldn't
connect. One 1200 and one 14.4. This is in over a year
of running a BBS with a high speed modem.
As a user, I haven't found any. This is because I'm
able to make small changes on MY end to smooth the
connection. Like lowering the COM speed. This is easier
than changing my BBS setup just to accommodate two users.
I hope this explains high speed modems to you. If you
have the means, you really are better off getting one for
a BBS. Even if it means using a FOSSIL driver and making
275
your 2400 bps callers wait 1/2 a second for a keypress to
take effect.
One last note on the FOSSIL. You can increase and
decrease the wait that your 2400 bps callers have to
endure. Increasing the COM ports speed, say, all the way
up to 57.6Kbps will increase their wait time. Decreasing
the COM speed to, say, 19.2Kbps, will usually decrease
their wait time to a bearable minimum while keeping your
high speed transfer time down as well. This is the
setting I use here. (Besides the games that usually
require a FOSSIL also do not handle anything above
19.2Kbps worth a damn.)
Q: What do the parameters in shrink_out mean?
I am not sure about the shrink_out() function. I do not
understand what ctc and ccc stand for, so I just put 0
there. Could someone email me with the parameters and
what they are for?
Here are the specifics on the shrink function
excerpted from VARIOUS3.ZIP:
NOTE: If you are interested in what the 0 parameters are
for the shrink_out() (RETURN.EXE) options. They
are true/false (Boolean, true=1, false=0)
options. This will come in handy if you decide
to change the code to have the bbs shrink in
other places. They work like this:
first option : Is a user online? If yes (1), return to
the mainmenu prompt. If no (0), return
to waiting for call (WFC).
second option: Have the bbs intercept DOS calls? If yes
(1), then the bbs will monitor carrier
and print WWIV text files with the
cntrl-p codes in them. If no (0), then
you're in a full shell with the bbs NOT
watching anything.
third option : Intercept CNTRL-C? If yes (1), the bbs
will interrupt the CNTRL-C code. If no
(0), the user can break out of batchfiles
and running programs (be careful!).
fourth option: Do a "COMMAND.COM /C " (program name)? If
276
yes (1), the program will be run as
"COMMAND.COM /C programname". If no (0),
then the child process will just be run.
WWIV- Wayne Bell Talks, Part 1
Note from Sam: This is an older letter of an interview
Wayne did sometime back. I included it here because I
thought you would enjoy it.
Personal Data
Name: Wayne Bell, Programmer
Alias: Laison Al'Gaib
Noted works: Turbo-Term, WWIV BBS
Age: 19, attends UCLA
Description: Shy, not to popular
TA: Can you tell me the history of the WWIV BBS system?
WB: About three years ago, is when I first started
writing BBS type stuff. I started out using a TRS-80
Color Computer and an operating system called "OS-9", and
compiled BASIC. I worked with that for some time until I
realized it wasn't going to use the com port as I had
planned, so I abandoned it. I started writing another
one in regular BASIC and it worked pretty well and it
would have been a reasonable BBS for two and half years
ago, but it had problems with the BASIC interpreter.
I was beginning to realize that I wasn't going to
get anywhere with my Co-Co, so I began writing the
program on an IBM PC. I was almost through and it was
doing pretty well.
In December of 1984 I put the board on-line. I
added a lot of things because of user requests, such as a
voting booth and a quickscan. As the program became
larger I decided to do it in Turbo Pascal which would
make it faster as well as allowing many things to be done
easier.
When I had finished and put it online it did pretty
well, there weren't to many bugs. This one was called
2.0 with the BASIC version being 1.0. Then I did a alot
of revisions and 3.0 came out in December of 85. Since
that time I've made some more changes and I've just
released version 3.20, for this version George Lehmann
wrote the documentation.
277
TA: How did you decide what, if at all you would charge
for WWIV?
WB: When I first started writing it in BASIC I never
considered the fact that someone else might want to run
it. People had been expressing interest and I had given
out some copies of it. In version 3.0 I put a copyright
not-ice in the program. Everybody kept telling me I
could make some money for this, so I finally put a P.O.
Box where you could send donations if you wanted too.
TA: Have you received anything?
WB: Yes, about a 150 to 200 dollars.
TA: WWIV is certainly good enough to have been sold
commercially, why did you choose to keep it Public Domain
after so many people were interested?
WB: Most of the people I know who run BBSs are under the
age of 18, they don't have alot of money to play around
with, since I'd already released it as Public Domain,
they probably wouldn't pay for a new version anyway.
TA: Do you feel that all programs should be public
domain?
WB: No, actually, I have had a program sold commercially
for the TRS-80. It was a program much like The Norton
Utilities for the IBM. It was used for direct disk
access, recovering erased files, and disks that crashed
(which happened alot on the old TRS-80's).
TA: How did the program do?
WB: Not to well. The company dropped it because it
wasn't selling very good.
TA: How much was your first royalty check?
WB: As near as I can remember, about $250.
TA: How old were you then?
WB: About 13 or 14.
TA: Where you excited?
WB: Not really, it was mainly my fathers idea to sell
it, I wrote it because I needed it.
TA: When Turbo Pascal 4.0 comes out are you going to
278
make another version of WWIV?
WB: I'm kind of annoyed working with Turbo Pascal's
limitation of 64k the new version will allow you to
compile to .EXE files, this way I can add alot of things
to the program. Although that would be great, I'm not
sure if I will be writing the next version in Turbo
though, I may write the whole thing in assembly or C.
TA: How hard is WWIV to set up and run?
WB: I tried to make it as easy as possible, it does have
Ctrl-Z anywhere for help files listing your options and
what they mean. The documentation is very good now also.
TA: Where did you get the name "WWIV" for your BBS?
WB: When I first put up my BASIC version of the BBS, I
was trying to think of some kind of theme. I decide I
would call it World War IV. The messages were called
"warheads" and the message bases were "silos" and that
type of thing. When I wrote the Pascal version I took
those out but kept the name.
TA: When did you first become involved in computers in
general?
WB: My father had a terminal which allowed me to connect
to a mainframe and do some programming in BASIC. Then we
got a TRS-80 with an entire 16k of memory! I did some
more BASIC programming on that after we got disk drives.
Then I got my own TRS-80 Color Computer. That was fun
for awhile, and then finally we got the IBM. .
TA: Are you held back by the IBM as you were with your
TRS- 80? Or is there still alot left to learn?
WB: The IBM PC came out a number of years ago, and it is
rumored that now they are going to replace it. Obviously
in 2 or 3 years there will be much bigger and better
machines. I'm not sure what one I'm going to get next,
I'm still doing things on the IBM though, so there's no
rush.
TA: What is your major at UCLA?
WB: Right now I'm a Physics major, but I'm going to be
transferring to Electrical Engineering as soon as the
administration decides I have filled the requirements.
TA: Are you going to go into computers for a career?
WB: Well, I've gotten alot of good experience from
279
writing the BBS, Turbo-Term, and other side-projects, I
think I could probably get a nice job in the computer
field, but I'm not sure what field I will finally end up
in. It will most likely have something to do with
computers.
TA: You obviously know alot to be able to write programs
as good as WWIV and Turbo-Term is there anything left to
learn?
WB: There's always more to learn. The past couple of
months I've been doing some neat things with DOS calls
and interrupts, it's amazing what you can do with them.
I haven't done a whole lot of programming in low-level
languages (on the IBM), so theres always new things to
learn. The only thing is, it never seems applicable when
you are learning it the first time so it doesn't really
seem like you are learning anything at all.
TA: What's the best way to learn for you?
WB: I like to read reference manuals myself. I have
been through the DOS technical reference manual pretty
much cover to cover and a few parts more than that. I
don't like books that assume you know nothing "This is a
floppy disk, this is how you put in the computer."
TA: What else do you enjoy besides computers?
WB: I do enjoy hiking, (I'm an eagle scout) although I
haven't had a chance to go in awhile. I also like to
read quite a bit of Science Fiction.
TA: How were you in High School?
WB: I did pretty well in High School, I thought it was
kind of boring though, not much challenge involved.
TA: What are your plans for the future?
WB: Right now, finding a place to live, changing my
major, and working on chemistry labs. I really don't
know what I'll be programming except for new versions of
WWIV and Turbo-Term.
WWIV- Wayne Bell Talks, Part 2
Note from Sam: This is another vintage article from
Wayne. I included it because I think a lot of you will
enjoy it.
280
WWIV started around December, 1984, when I first put up a
BBS. It was run on an IBM-PC with a 10 meg hard disk,
and a Hayes 1200. I was running (what is now called)
WWIV v1.0, which was in interpreted BASIC. Needless to
say, it crawled along quite slowly, and didn't have a
whole lot of features.
But, about the only other BBSs I was competing with at
the time were run on Apple II's, also running in
interpreted BASIC. Of course, there were RBBS's and the
like (I suppose), but I don't think I had ever called up
one. Soon, the 64k limitation of IBM interpreted BASIC
became apparent. I did some pretty strange stuff with
memory allocation and string storage, but I had pretty
much reached the cutoff point. When you try typing in 30
lines of a message, and the result is an "out of memory"
error, you know it's time to go on to something better.
The better thing was, of course, Turbo Pascal 2.0. Yes,
2.0. Turbo 2.0 didn't have ANY support directories (all
file IO was within your current directory only). I also
had quite some trouble getting com routines working, but,
Turbo 3.0 came along, and, about Easter in 1985, I put up
WWIV v2.0. Soon after that I got REAL interrupt-driven
com routines working, and things started moving along.
But, alas, I had to go off to UCLA, and had to take the
BBS down. But, around December in 1985, on Christmas
vacation, for some reason that eludes me now, I decided
to put the BBS back up. I did some major revamping at
some time around then, and called it WWIV v3.0. Still in
Turbo Pascal 3.0, though. Around this time (December), I
got around to putting in a file section. It took quite a
bit of work getting xmodem working, and I had to go back
and re-format my data files to allow for file
descriptions. Since I had never actually used (or been
on) any other IBM-type BBS, I had no clue as to how the
file section should work, so things turned out pretty
randomly.
So, on Jan 1, 1986, I finally released WWIV v3.0. It
ended up going through quite a few revisions, especially
in the first week or two after being released. And, to
make things even more fun, I had to resume classes at
UCLA, so I ended up pretty much writing WWIV without
running a BBS. As you may guess, this caused a few
unfortunate bugs to slip by me, but, hey, that's life.
Sometime around June 1986, I had decided to put in color
(wow!), and call that WWIV v3.2. This involved re-
formatting the user list (to store the user's color
selections), and a few other little fun things, so I
decided to put up a BBS again, but only for a week, as I
281
had to move back up to UCLA after that time for the
summer session. You might think that not many people
would end up calling a BBS that is pretty much stated as
only being up for a week (I know that's what I expected),
but it managed some pretty good activity.
To make this week even more fun, for about half of it I
wasn't there (off on some short vacation, I think), so I
had a friend (Stephen Davis) call up and remotely take
care of this (experimental) BBS. Astonishingly, it
managed to make it without crashing.
And, of course, after releasing that, it turned out that
I had a pretty bad problem with the ymodem procedure;
seemed it would read in a block of data, and THEN seek to
the right place in the file, instead of seeking first,
then reading. So, of course, I came out with 3.20a rather
quickly.
A few months later, in January 1987, I put up a BBS
again, running something around 3.21c or 3.21d; I forget
the exact timing there.
A few months after that, around June 1987, I started
writing WWIV v4.0. Since I had a summer job, naturally
things didn't go so fast. Also, the fact that I had
never written anything in my life in C before slowed
things down a bit. But, I eventually got the hang of
things, and got things going.
And, finally, on Dec 1, 1987, I put up 4.0 as my BBS,
finally testing it in real life. Among my voluminous
promises of how great it would be, I said it would
support networking among systems. I thought this sounded
like a great idea, only I had no clue as to how I would
go about implementing it at the time. So I relegated
that to "don't hold your breath" status, secretly
thinking I might never get around to it.
Surprisingly (to me), I did get around to it relatively
soon. Of course, by that time, everyone had already
installed the BBS on their computers, so I was stuck with
the format I had dreamed up way-back-when when I had no
clue how it would work -- a number 1-65535 indicating
which system was which. So, I ended up trying to design
a network around that, although it wasn't quite the
optimal solution (as if there might be such a thing).
One day, I was simply bored, and I had been talking with
someone-or-another about a network, so I decided to start
writing a program to send files between computers. No
planning at all, just pretty much sit down and type it in
282
sort of thing. That developed into the network.exe
program.
Of course, there was more to it than that. It was
actually after I had the network.exe program mostly
working that I started thinking about how the systems
would be connected together. I originally started out
with the idea of having it pretty much heirarchtical, but
with a local-system list for all systems to call directly
any systems that were local.
Well, after talking with Stephen about this for a while,
I decided to pretty much have it grid-like, with a pretty
much amorphous structure. One upshot of this structure
is that it is amorphous. That does not, however, prevent
some structure being applied to it. Without any software
changes, it can be completely changed over to a straight
heirarchtical structure. All I'd have to do is set up
the hierarchy, change one file (connect.net), and send
out an update of that.
Well, that pretty much brings me up to the present time.
Future expansion? Who knows. Not too much more can be
added to the network from a software point of view. I
have pretty much run out of ideas for additions to the
BBS, also.
One thing that keeps rearing its head is a multi-user
WWIV. That is not practical. WWIV depends upon many
external programs (chains, fsed, arc stuff), and you
simply can NOT have the BBS run external programs without
running under a multi-tasking operating system. I am NOT
going to convert over to OS/2. Sure, there are other
multitasking OS's, but none widespread, and even those
would require some pretty major revamping of the BBS to
get it working. To put it simply, PC-DOS was not
designed with multi-tasking in mind.
Q: I am receiving "error" messages in my net logs that
say:
A: "7 Disallowed system @xxxx posting on sub type
xxxxx"
where the xxx's are node numbers and/or subtypes (sub
names).
What causes this?
283
A: That error message originated in NET32. There are
two types of messages associated with "unknown" subs.
One type occurs when the network does not know about
the sub and the sysop has not set up properly to
receive the sub. That type will have a message
something like "Post received on Unknown Sub xxxxx."
This means that not only can the network not find
where to toss this particular sub, but it also cannot
find that sub in the subs.lst or subs.1, etc.
The second type of message is the one you refer to.
This type of message occurs when the network does know of
the existence of that subtype (ie it is found in
subs.lst, subs.1, etc) but the network cannot tell where
to put it based on your setup. This usually indicates
that the sysop has made a mistake in setting up for that
particular sub.
If the sysop receives the type 7 error message (the
second type discussed above), the first thing to do is to
search the subs listings for that subtype to ascertain
whether or not that is a sub that the board should be
subscribing to.
This is necessary because sysop's make mistakes
(grin) such as entering the wrong node number in their
distribution files for subscribers to a sub, etc.
If the sub is NOT one that the sysop wants to be
receiving, then a letter should be sent to the host node
asking that the sysop's node be removed from the
subscription list.
If the sub is one that the sysop wants to receive,
then the sysop should proceed to verify that it is setup
correctly. Check //BOARDEDIT and make sure that the sub
has been setup and that
(a) the filename is unique, (b) the subtype number
has been entered correctly, and (c) IF running v4.22
make sure the host number is shown correctly and in
the appropriate network.
If //BOARDEDIT looks okay, then those running v4.21a
or v4.20 should check NNall.NET or NNxxxx.NET to be sure
that the subtype and host node have been entered
correctly. If running v4.22 or later, the information
would be shown in //BOARDEDIT and there is no NNall.NET
file.
If the NNall.NET file looks okay, then see if
FILENAME (the name given to the file for that sub in
284
//BOARDEDIT is found in DATA as FILENAME.SUB. Also check
the MSGS directory to see if FILENAME.DAT exists there
and if it is zero bytes in size, it may be necessary for
the sysop to make a "test" post on the sub in order to
start receiving posts there.
If all of these things seem to check out alright,
then my advice would be to (a) remove the sub from
BOARDEDIT and have all DATA files regarding the sub
erased; (b) set the sub back up again using a different
filename and repeat the procedures above to double check
the validity of your setup. My friend wants some good
reasons to switch to WWIV...
Reasons to Run WWIV
I am the Cynic (#4 @2650) and I have been sysoping the
Freewheelin' BBS along with 5 others for a year now I can
say this is about the best BBS package there is on the
current market. Why? Well let me tell you..... (Isn't
redundancy great?)
1. The Cost. Simply put you get a better bargain than
any other BBS. What do you get for $80 in the BBS
world? Not too much except for WWIV. For your $80
dollars you get registered with Wayne Bell the
programmer of the BBS. You get the source code to
change as you want, or if you want, you can get a
compiled version. You also get access to an
international network of other WWIV and Fidonet
boards. You get all the support you could ever hope
for. If one sysop doesn't know what to do chances
are another one will.
2. The Support. There are several support boards
located around the country with megs of files
designed specifically for WWIV. There are people
programming for the system everyday adding source
code modifications and programs (games and the
like). These are free to you but you need the source
code for the modifications. And many of the sysops
know what they are doing and will generally lend a
hand.
3. The Network. Although it is not free WWIVNET is one
of the most extensive in the nation and is starting
to branch out internationally. Files and messages
are sent nightly at a cost much lower than the US
postal service. It is relatively easy to add to a
system also. unlike many of the current network
programs like Binkly and Fido. It is also simple to
use. Again if you need help you usually can find it
285
somewhere near you.
4. The Ease. WWIV is one of the easiest boards to set
up, unlike RBBS or QBBS or WILDCAT! for that matter.
I set one up in 5 minutes last night, and it is
running today perfectly. Menu-driven programs like
WWIV incorporates are so nice to use when setting up
a BBS. Those who have played with RBBS no how
tiresome and time consuming it is to type up all
those files for it. Not with WWIV you don't need to
the BBS does most of that itself.
5. The Flexibility. WWIV can change as you want it to,
especially if you get the source code registration.
You can change just about anything you want in it,
you can make it look like another system if you want
(I wouldn't know why though).
6. The Documentation. WWIV's documentation is about as
complete as any BBS's I have ever tried. Though it
is long, it is concise and explains problems which
may occur and how to either prevent them or fix them
once they have happened. They are written in a clear
concise manner and seem to be written for those who
have never run a BBS before.
I wrote this because no seems interested in my area
about this BBS system although my BBS has many callers
they still seem to be more interested in other BBS
Programs to set up on their own. This is totally
unofficial and just the views of one of the sysops of
this BBS system. I enjoy it and like working with it.
Maybe you will consider it and try it too.
Q: What are DOS MACROS and how are they used in WWIV?
A: DOS MACROS are a feature that was introduced in WWIV
v4.20. It allows the sysop to have a file in DATA
called macros.txt. In that file, he may place
command lines which are activated from the keyboard
by ALT followed by the letter at the beginning of the
line. Here are a few as I use them on The Dragon's
Den:
a g:\wwiv\subrem
b g:\wwiv\data\ned bbslist.260
c g:\wwiv\data\ned connect.260
l g:\wwiv\gfiles\list netdat0.log
m g:\wwiv\gfiles\list netdat1.log
n g:\wwiv\gfiles\list netdat2.log
286
o g:\wwiv\data\list subs.lst
p g:\wwiv\data\list subs.1
q g:\wwiv\data\list subs.2
z g:\wwiv\data\list macro.mnu
Notes:
SUBREM is the sublist editor that I wrote. NED is a nice
little editor that I use to maintain the data files for
Group 4 that are sent to Wayne as part of Network updates
List is the well-known list utility Macro.MNU is a menu
of all of these commands that I made in case I do not
recall just what each alt key does.
Q: Which modem should I buy? (Author unknown, captured
from a network sub)
Without getting too techy, the best way to decide which
one to get is to make a list of the BBS's you call and
then:
1. Note what kind of modem they use (v.32, HST, Hayes,
etc)
2. Take a look at your budget and see what you can
afford.
3. Check your hardware and make sure it will handle
9600 bps.
4. Buy the modem that is the most compatible with your
equipment, the greatest number of BBS's you call and
that fits in your budget.
5. If the budget will handle it and you've chosen a
proprietary modem, try and stretch the budget to get
a dual standard model for cross brand compatibility.
6. Live with your decision - but don't put down someone
else's choice if it was different than yours.
7. Enjoy! And encourage others to upgrade to 9600!
STANDARDS
~~~~~~~~~
Much has been said of "Standards".
"Is it Hayes compatible? They're the 'Standard'"
287
Not necessarily true when we talk of 9600 (and greater).
Hayes established a Standard for the AT command set.
Other modem manufacturers adopted this standard for the
commands their modems would recognize. But if you look
at your current modem specification sheet, you will see
a different set of standards for the method that your
modem communicates at 300 bps, 1200 bps and 2400 bps -no
mention of Hayes.
The current talk is, "HST is the standard for 9600!"
Untrue, it is the most widely used method in the BBS
community, but it is proprietary - not available to
other companies (more on this later). Much like IBM's
MCA bus, it might be good - but you have to buy IBM to
get it (but even IBM licenses MCA to other companies).
My personal opinion is that the CCITT v.32 and v.32bis
are THE Standards -maybe not the most widely used today,
but in the foreseeable future. This is because the CCITT
standards are a published guidelines available to all
modem manufacturers to implement. They may not be the
fastest, but they are a common method - promoting
maximum connectivity.
BAUD and BPS
~~~~~~~~~~~~
First, let's get this clear - although everyone seems to
use the terms "Baud" and "Bps" interchangably, there is
a difference. A baud is one cycle change during the
transmission of data over the modem. During that one
cycle change, a number of bits can be sent. The one
instance where BAUD=BPS is when a transfer is occurring
at 300 Baud. 300 Baud is defined as 300 cycle changes
per second with one data bit being sent during each
cycle change. Higher BPS rates are achieved by sending
multiple data bits at 300 Baud (cycle changes), 600 Baud
and 2400 Baud. 9600 bps speeds are achieved by using
2400 Baud (cycle changes) with 4 data bits per cycle
change. Technically, a 2400 Baud modem is most likely a
9600 bps modem and there is no such modem as a 9600 Baud
modem. I only bring this up to pick a nit and to let
you know that I am aware there is a difference. Also to
give you a sense of being in on a secret and giving you
the chance to win a bet at the office.
Q: What are MNP, v.32, v.42?
~~~~~~~~~~~~~~~~~~~~~~~~
You've probably seen those v.XX numbers and wondered what
288
they all meant.
These standards are dictated by the CCITT, an
international council composed of national agencies and
major manufacturers. The numbering can be confusing as
each standard is a separate one (except when it applies
to a second or third generation standard - designated
with a "bis" or "tres" suffix). A higher number does not
necessarily mean better and may not even apply to the
same function as a lower number.
As a general rule of thumb, the v.22 series refers to
CONNECT methods for speeds of 1200 bps to 2400 bps. The
v.32 series standards apply to 9600+ bps CONNECT
methods. Within each of these numbers series, you might
see "bis" suffixes. These designate the second
generation of that number series and means an
enhancement to the basic standard.
V.32
~~~~
V.32 is an international 9600 bps standard for
communicating at 9600 bps that can be implemented by
modem manufacturers without licensing fees. V.32 uses
full duplex modulation (9600 bps in both directions at
once). The full duplex method is advantageous when data
in equal amounts is being sent in both directions
simultaneously, such as in an interactive application or
when (and if) BiModem or another bidirectional protocol
gains favor. V.32 also incorporates fallback rates of
7200 bps and 4800 bps when line conditions prevent a
reliable 9600 bps CONNECT rate.
V.32bis
~~~~~~~
V.32bis is the second generation of v.32 and calls for a
CONNECT rate of 14,400 bps with a fallback rate of
12,000 bps. In order to be v.32bis compliant, the modem
must also be v.32 compliant. v.32bis is also full duplex
by specification. There are currently several v.32
modems that are v.32bis COMPATIBLE because they include
the v.32bis fallback 12,000 bps rate. These particular
modems are not v.32bis COMPLIANT since they do not
include the 14,400 bps rate.
V.42
~~~~
V.42 is an international CCITT standard for data
compression. V.42 incorporates downward compatibility
289
with Microcom (c) Network Protocol (aka MNP) Levels 1 to
4 error correction. It also includes LAPM (Link Access
Procedure for Modems) which uses Cyclic Redundancy
Checking (CRC) to ensure data reliability, as does MNP
level 4.
V.42bis
~~~~~~~
V.42bis is the second generation of v.42. Besides v.42,
it also incorporates intelligent data compression where
it can detect if the file has already been compressed
and would not benefit from further compression. If the
file would benefit from compression, v.42bis could
optimally deliver a 4:1 compression factor. This is the
often cited reason for claiming a 38,400 bps throughput
on an otherwise 9600 bps connection. There are 2400 bps
modems that have v.42bis as a feature and these
manufacturers and dealers have sometimes (erroneously)
advertised their modems as 9600 bps modems (with
"throughput" added as an afterthought and in small
print). If v.42bis detects the file would not benefit
from data compression, it will politely step aside and
send the file without wasting time trying to compress it
anyway.
NOTE: Although v.32 and v.42 share the v.# numbering and
are CCITT standards, they are independent of each
other. Having one does not mean you have the
other. Because a modem incorporates v.42 does not
mean it has v.32 or vice versa. Unless assured
otherwise, you should view each v.x as an
independent standard.
View the v.22 and v.32 categories as METHODS OF
CONNECTION and the v.42 category as an OPTIONAL
FEATURE available to the methods of connection.
It is entirely possible to have a v.22bis (2400
bps) modem [METHOD OF CONNECTION] and v.42bis
[OPTIONAL FEATURE] as well as a v.32bis modem
[METHOD OF CONNECTION] without v.42, MNP or
v.42bis [OPTIONAL FEATURE(S)].
MNP
~~~ MNP [Microcomm
(c) Network Protocol] levels 1 to 4 are methods of
error correction where the two connected modems
perform the verification of data sent & received.
There are software emulators of MNP, but I have not
tested them. Error correction is a requirement of
streaming protocols such as Ymodem-G where the
290
protocol just sends a constant stream of data and
lets the modems do the error correction. This also
requires a clean, noise free line as streaming
protocols will abort if line noise interferes too
much.
MNP Level 5 is for data compression. As most BBS's
archive their files or files are already in a compressed
format (demonstrate this by trying to ZIP a GIF file),
MNP5 can actually increase the overhead by attempting to
compress the file further. That is why you should ask if
throughput claims are arrived at by using data
compression techniques - you will usually not have MNP5
enabled when you are transferring compressed files on
most BBS's. When MNP Level 5 is of use on an
uncompressed file, it can achieve a 2:1 compression
factor; doubling the apparent throughput of the actual
CONNECT rate.
Q: What do the exemptions in UEDIT mean?
Note on exemptions:
Exemptions work on a bit level. You have 8 bits
to play with, so that leaves 8 different functions you
can exempt. Here is what they are (or aren't as teh case
may be)
1 1 1 1 1 1 1 1
unused ────┴─┴─┴─┘ │ │ │ │
post/call exempt bit ─┘ │ │ └─ upload/download bit
exempt all bit ─┘ └─ time exempt bit
To determine what you want a user to be exempt from, plug
in the proper bits, convert to decimal and put that # in
exemptions...
Examples:
1 - exempt from up/download ratio requirement
2 - exempt from time restriction
8 - exempt from post/call requirement
9 - exempt from post/call & up/download ratio
requiremnets
I don't know what Wayne's using the exempt all bit for,
if it's even used yet..
Q: How do I use a macro to call another network?
A: When calling a different network, the use of a macro
is usually necessary in order to distinguish your
board as a particular type of network call.
291
For example, here at The Dragon's Den, I use FRONT
DOOR to handle incoming network calls for WWIVnet,
WWIVLink, IceNET, and FidoNET. Since WWIV-based
networks send N N N by default, something must be
done so that a different code is sent for each
network. This is easily handled by macros. My Front
Door is configured to react to the network calls from
WWIV-based networks in the following way:
What is received Network Identified
N N N Any WWIV based network
Front Door reacts with errorlevels; however, it is
also easy to modify WWIV itself (see my FILO10 and
FILO11 mods) so that it will take the in-coming call
directly to a different network or board.
The macro itself is relatively simple and would look
something like this (note that FRONT DOOR sends out
"Press Escape Twice for xxxx" where xxxx can be
configured by the sysop).
DEBUG
SPEED "xxxx" NOTE: xxxx is the speed of the
call (baudrate)
DIAL "%1,%2" NOTE: Omit %1 if area code is not
necessary
WAITFOR "Press" NOTE: This should be a recognizable
word sent by the system you
are calling
SEND "Icenet{" NOTE: Be sure to include the {
which is carriage return
Note that the text following WAITFOR can be anything
as can the text following SEND. Thus you can configure
your macros to do whatever is needed. If you need a
pause for some reason, use a TIMEOUT "xx" command where
xx is the number of seconds that you want it to wait.
Always follow a TIMEOUT command with a WAITFOR so that
the software knows what follows the TIMEOUT. The
software will act again once either the TIMEOUT period
has elapsed or the text following WAITFOR is encountered.
Q: How does the payment plan for registering WWIV work?
Q: I cannot really afford to pay the $80.00 for WWIV
292
registration. Is there any sort of payment plan
available?
A: WWIV has a payment plan which is reflected in the
registration information distributed with v4.24. This
plan allows a person to make 3 payments of $20.00
each. Each payment extends the 'trial' period for
another 2 months. Thus, a person using the
installment plan could pay the registration fee over
a 6 month period. The last payment should be for
$25.00. Individuals using the installment plan are
not registered until the final payment has been
received; thus they cannot get source code access or
any of the other rights of WWIV registration until
the full amount has been paid. The payments are
NON-REFUNDABLE. Thus, if the individual makes one or
two payments and decides to not register, those
payments are not refunded. After making the third
payment, the individual will be mailed a registration
number and the disks containing the latest WWIV
version. Each payment should be accompanied by a
registration form on which INSTALLMENT PAYMENT is
clearly marked.
Check or Money Orders should be made out to WWIV
Software Services and mailed to:
WWIV Software Services
P.O. Box 720455
McAllen, Tx 78504-0455
Note: If not in the USA, Money Orders only should be
used. The money order should be in US dollars.
International Postal Money Orders are recommended.
Q: How do I get FidoNet to work with my WWIV?
A: Doing so is not real easy unless you are patient.
FidoNet requires that you have a Front End Mailer, a
Mail Tosser, a NodeDiff processor, and a fossil
driver. All of those programs must be interfaced with
each other and with WWIV.
To be capitalistic (grin), I have written a program
called FSPFDI which stands for Filo Software
Productions Front Door Installer. The program takes
most of the effort out of installing all of these
programs and should result in your having a working
FidoNet program very quickly. The program sells for
$25. There is a file on my board and many other
BBSes called FSPFDI.ZIP which explains in some detail
what the program does and how to purchase it. [Note:
This product has become WSSFDI and is distributed by
293
WWIV Software Services for $15.]
Q: What are the parameters in "shrink_out"?
A: The parameters in shrink_out are as follows:
shrink_out(*command,state,intercept,ctc,ccc)
command - the command to be run. Pretty self
explanatory
state - if 0, return is to WFC screen if 1, return is
to main menu prompt
intercept - if 0, bbs does not intercept DOS calls if 1,
bbs intercepts DOS calls for standard video
and keyboard calls
ctc - if 0, control-c (BREAK) is disabled if 1,
control-c can be used to break out of the
program
ccc - if 0, the program will be called directly
(i.e. if it is a COM or EXE file)
if 1, the program will be called as a
parameter to COMMAND.COM (i.e. batch
files)
Q: What is Filo's "Front Door Installer"?
Filo Software Productions
Front Door Install Program
(c) 1992
aka
WSSFDI
WWIV Software Services Front Door Installer
WSSPFDI -- What is it?
This program takes the frustration out of installing a
front end mailer, a mail tosser, a node processor, a
fossil driver, and Netsex for use with WWIV. There is no
magic to the program. When run, it asks the user for
information (about 40 questions) that is explained in the
accompanying documentation. Then, based on those
answers, the program creates the necessary directories,
puts things where they go, writes the batch files,
control files, and config files that make it work.
When I first started to install a front end mailer and
all accessories, it took me approximately 3 months. Part
of my problem was getting programs that were essentially
incompatible (like a mail tosser for a Hudson Message
Base format when I was not using one, etc), and part of
the problem was wading through almost 1200 pages of
294
documentation trying to figure out how all of these
things worked together. My program should remove the
frustration and trial and error from the process to get
you a working FidoNet node in the least amount of time.
WSSPFDI -- Is it for You?
This program is NOT for everyone. If you are a 'techie'
type that simply loves to read docs and find out things
by trial and error, then using this program would knock
out some of your fun. On the other hand, if you are a
busy person who does not have time to read documents and
experiment, or if you do not tolerate frustration well,
then this program is for you. If such a program had been
available, I would have considered it a deal at several
hundred dollars because my time is worth more than $0.25
per hour (grin).
WSSPFDI -- Is it everything I will ever need?
No! This program is meant to give you a working Fidonet
in short order. You will want to study the
documentation, get help from the knowledgeable folks on
Fido and make changes to your basic setup. In short,
once you can get help from FidoNet, you will be better
positioned to get things working better.
Because of the complexity associated with all of this
installation, people tend to ignore the sysop who asks
such naive questions as, "How do I set up FidoNet?" The
answer would just take too long. However, once a person
has a working FidoNet site and asks a question such as,
"How do I schedule multiple events in Front Door?", then
many folks are willing to help because the question is
more specific and the answer is much shorter. Thus,
having a working FidoNet node will help you to get more
help.
WSSPFDI -- How do I get it and what does it cost?
The program may be ordered by completing the purchase.frm
that was included in this zip file and mailing it to the
address shown at the top of the form along with a check
or money order for $25.00. Texas residents should
include an additional 7.75% for state sales tax. If your
bank is not a U.S. bank, then send a cashier's check
instead of a check or money order. If you have questions
about this, you can write me at the following network
addresses:
1:397/5252 My FidoNet address
4000 My WWIVnet address
295
2050 My WWIVLink address
2050 My IceNet address
I do support the program and host a sub called FSP forum
on WWIVnet which provides help to anyone using any of my
programs. I also guarantee the FSPFDI program to work
for you or I will refund $20 of your money. The
remainder is for postage and handling. Before refunding
your money, I will attempt to work with you via net
messages and/or voice calls to get your setup working.
WSSPFDI -- What is required?
Your equipment must use either 1.2 meg 5.25' floppies or
1.44 meg 3.5' disks. Send your purchase.frm and money to
Filo Software Productions, 4712 N. Broadway Circle,
McAllen, Tx 78504. Orders are batch processed once per
week so allow at least 3 weeks for delivery.
F.A.Q.s - V
Q: Is there any support for a FAX in v4.24, and if so,
what is necessary to access it?
A: There is some code in there for it. It is hard-coded
to "WWIVFAX". If there is a WWIVFAX.BAT (or .COM/.EXE),
then it'll run that, shrinking for it. The code in bbs.c
is:
if (modem_mode==mode_fax) {
if (exist("WWIVFAX.*")) {
stuff_in(s1, "WWIVFAX %S %P", "", "", "", "", "");
extern_prog(s1, EFLAG_SHRINK | EFLAG_FILES);
}
goto hanging_up;
}
Q: I have heard that an environmental variable should be
set having to do with time zone variables. Can you explain
this?
A: Is everyone aware that they should have an environment
variable "TZ"? It should be set as follows:
TZ=PST8PDT - For the Pacific Time Zone
TZ=MST7MDT - For the Mountain Time Zone
TZ=CST6CDT - For the Central Time Zone
TZ=EST5EDT - For the Eastern Time Zone
TZ=AST4 - For the Atlantic Time Zone (Canada)
296
This will cause networked messages to have the correct time
on all systems that receive the message.
Q: Do you have any advice regarding the configuration of
OS/2 to reduce problems with DSZ?
A: I have heard many people talk about OS/2 and how slow it
can be durring transfers (mainly Zmodem uploads) so I am
posting my CONFIG.SYS file that I use to run my OS/2
system. I have a 486-66/DX2 and I use to have the same
problem with Zmodem. Now I can have someone upload in
Zmodem on my system and it takes only 25% CPU load in
Zmodem (newest version). You'll notice below that I have
a 2048k CACHE which is suggested by IBM for maximum
performance. I have also included a 4096k RAMDISK of
which I have the following dirs \DLOADS \TEMP1-8 \BATCH1-8
for performance reasons they are best in the RAMDISK. I
use to have a 16MB SWAPFILE that would increment in 4MB
intervals but now have it set to a 20MB SWAPFILE that will
increment in 2MB intervals and feel that works best. Keep
in mind that if your SWAPFILE is below 14MB you will suffer
performance wise because OS/2 itself uses 14MB (IBM told
me 16MB is suggested) but like I said the 20MB works best
for me and it is kept on the hard drive and is not RAM so
if you have the drive space USE IT.
You'll also notice below that I have broken the file down
into the 5 categories of an OS/2 CONFIG.SYS to make for
easy modifications. Be aware that I load all devices with
the DEVICEHIGH command and highly suggest it.
I am registered for 8 WWIV INSTANCES and have had them all
up and running with no problems. I use to get a memory
error, some of you may have seen the DosRaiseHigh error,
but since my modifications to the CONFIG.SYS it has
stopped and that problem is no more.
The reason for all the modifications to the CONFIG.SYS file
is due to me getting ready to move into my new house and I
will be installing multiple lines for the BBS. As it
were, when someone would log onto my BBS and upload in
Zmodem it would register as a CPU Load of 100% which is not
good for just one session because when logging onto
another session it would not perform well at all. Now,
with my CONFIG.SYS file modifications I am ready to add
several lines to the BBS. When someone now is downloading
in Zmodem (in my opinion the most processor intensive
function a user can do) it registers as only using a CPU
Load of 25% and I never get transfer errors anymore. Hell,
and this is all on a dinky 486-66/DX2... if only I had a
P-100 I could run 8 sessions all downloading in Zmodem
with no system slow-down.
297
OS/2 WARP & WWIV both RULE! Of course if you do not know
what you are doing I can see that you may not like OS/2
WARP and think it is slow, but as long as you read the
books that come with the software (Duh!) it is simple to
get your system to run multiple instances FAST with no
slow down.
I am very confident of the below CONFIG.SYS and feel that
it is the best you could possibly use on your OS/2 system.
Be sure to make the necessary modifcations to the CACHE
and RAMDISK to ensure you do not eat all your memory
because this CONFIG.SYS is from my system, not yours.
Note, in the configuration below, long lines have been
broken to fit this screen size. Lines beginning with a
^^ are continued from the preceeding line.
REM *******************************************************
REM * OS/2 SYSTEM VARIABLES *
REM *******************************************************
PROTSHELL=C:\OS2\PMSHELL.EXE
PRIORITY_DISK_IO=NO
FILES=255
BUFFERS=100
IOPL=NO
DISKCACHE=2048,LW,32,AC:C
MAXWAIT=1
MEMMAN=SWAP,PROTECT
SWAPPATH=C:\OS2\SYSTEM 2048 20480
BREAK=OFF
THREADS=256
PRINTMONBUFSIZE=134,134,134
COUNTRY=001,C:\OS2\SYSTEM\COUNTRY.SYS
REM IFS=C:\OS2\HPFS.IFS /CACHE:64 /CRECL:4
REM ******************************************************
REM * ENVIRONMENT VARIABLES *
REM *******************************************************
SET USER_INI=C:\OS2\OS2.INI
SET SYSTEM_INI=C:\OS2\OS2SYS.INI
SET OS2_SHELL=C:\OS2\CMD.EXE
SET AUTOSTART=TASKLIST,FOLDERS
SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE
SET COMSPEC=C:\OS2\CMD.EXE
LIBPATH=.;C:\OS2\DLL;C:\OS2\MDOS;C:\;C:\OS2\APPS\DLL;C:\MM
^^OS2\DLL;
SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\INSTALL;C:\;C:\OS2\MD
^^OS;C:\OS2\APPS;C:\MMO
S2;C:\SIO;C:\WINDOWS
SET DPATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\INSTALL;C:\;C:\OS2\BI
298
^^TMAP;C:\OS2\MDOS;C:\
OS2\APPS;C:\MMOS2;C:\MMOS2\INSTALL;C:\WINDOWS
SET PROMPT=$i[$p]
SET HELP=C:\OS2\HELP;C:\OS2\HELP\TUTORIAL;C:\MMOS2\HELP;
SET GLOSSARY=C:\OS2\HELP\GLOSS;
SET IPF_KEYS=SBCS
SET BOOKSHELF=C:\OS2\BOOK;C:\MMOS2;
SET EPMPATH=C:\OS2\APPS;
SET KEYS=ON
REM SET DELDIR=C:\DELETE,512;D:\DELETE,512;
SET SOMIR=C:\OS2\ETC\SOM.IR;C:\OS2\ETC\WPSH.IR;C:\OS2\ET
^^C\WPDSERV.IR
SET SOMDDIR=C:\OS2\ETC\DSOM
REM *******************************************************
REM * DOS PARAMETERS *
REM *******************************************************
PROTECTONLY=NO
SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /P
FCBS=16,8
RMSIZE=640
DOS=HIGH,UMB
DEVICEHIGH=C:\OS2\MDOS\HIMEM.SYS
DEVICEHIGH=C:\OS2\MDOS\VEMM.SYS
DEVICEHIGH=C:\OS2\MDOS\VXMS.SYS /UMB
DEVICEHIGH=C:\OS2\MDOS\VDPMI.SYS
DEVICEHIGH=C:\OS2\MDOS\VDPX.SYS
DEVICEHIGH=C:\OS2\MDOS\VWIN.SYS
DEVICEHIGH=C:\OS2\MDOS\VW32S.SYS
DEVICEHIGH=C:\OS2\MDOS\VSVGA.SYS
DEVICEHIGH=C:\MMOS2\SSMDD.SYS
DEVICEHIGH=C:\MMOS2\R0STUB.SYS
SET MMBASE=C:\MMOS2;
SET DSPPATH=C:\MMOS2\DSP;
SET NCDEBUG=4000
REM *******************************************************
REM * OS/2 DEVICE DRIVERS *
REM *******************************************************
BASEDEV=PRINT01.SYS
BASEDEV=IBM1FLPY.ADD
BASEDEV=IBM2FLPY.ADD
BASEDEV=XDFLOPPY.FLT
BASEDEV=OS2DASD.DMD
BASEDEV=IBMKBD.SYS
BASEDEV=OS2SCSI.DMD
BASEDEV=AHA154X.ADD
DEVICEHIGH=C:\OS2\BOOT\DOS.SYS
DEVICEHIGH=C:\OS2\BOOT\MOUSE.SYS
299
DEVICEHIGH=C:\OS2\BOOT\PMDD.SYS
DEVICEHIGH=C:\OS2\BOOT\POINTDD.SYS
DEVICEHIGH=C:\OS2\BOOT\TESTCFG.SYS
DEVICEHIGH=C:\OS2\BOOT\VDISK.SYS 4096
DEVICEHIGH=C:\OS2\MDOS\ANSI.SYS
DEVICEHIGH=C:\OS2\MDOS\VMOUSE.SYS
DEVICEHIGH=C:\SIO\SIO.SYS (COM1,03F8,IRQ4)
DEVICEHIGH=C:\SIO\VSIO.SYS
DEVICEHIGH=C:\SIO\VX00.SYS
REM *******************************************************
REM * VIDEO PARAMETERS *
REM *******************************************************
CODEPAGE=437,850
DEVINFO=KBD,US,C:\OS2\KEYBOARD.DCP
SET VIDEO_DEVICES=VIO_VGA
DEVINFO=SCR,VGA,C:\OS2\BOOT\VIOTBL.DCP
SET VIO_VGA=DEVICE(BVHVGA)
Q: I have problems with the BBS running out of memory.
What are some techniques that I might use to deal with this
problem?
A: There are many ways to deal with memory problems.
Although these problems should not be as acute with v4.24
as they were with earlier versions of WWIV, the following
suggestions may be helpful.
From you main prompt type //STAT. It'll tell you how much
memory is left for WWIV progs.
If you need more memory, you have 1 option. Get the
overlay mod that gives you a list of modules that you can
switch to overlay & then turn on t #DEFINE XMS_EMS (I think
that is it) in XINIT.C.
Well, there are quite a number of other options besides
that, although that is one of the better solutions.
Others are:
Reduce the number of user slots to just what you need in
INIT. If you have 300 callers, make it 500 and not 5000.
Of course, an automatic user weed, based on last call
date, helps considerably here! Reduce the number of
subs/dirs in INIT to the bare minimum. If you have 31
subs, then set it to 32 in INIT. If you have 33, set it to
64 -- its set in 32 sub/dir increments. Only install the
file transfer protocols in INIT that you'll actually use.
Free up as much DOS conventional memory as possible.
Either use a good memory manager (like QEMM), or simply do
300
not load those drivers you don't need to run the BBS (like
the mouse). Only install the modifications that you'll
really use. Even then, install them in files that are
already overlaid in memory like BBSOVL1.C instead of
BBSUTL.C Remove all literal string from the source that you
can. Literal strings are normall those pieces of text
that appear within double quotes, like this: "hi!" You can
easily replace them with a get_string(xxx) statement and
place the text itself in BBS.STR. (Or, if you're more
industrious, place them into custom STR files.)
Q: Do you have any hints for modem users?
A: Here are some hints for Modem Users.
YOUR MODEM HAS THE ABILITY TO ADJUST ITS IMPEDANCE TO MATCH
YOUR LOCAL PHONE LINE.
From terminal mode. Type AT\E1 and press the [enter]
key. This tells your modem to adjust to your phone line
when you make your next V.32bis call. Make the V.32bis
call immediately after entering AT\E1. You may not
connect on the first try, as the modem will be making
this adjustment. However your modem will now be adjusted to
the phone line, and this step will not have to be repeated
unless you change phone lines.
USING PREFIXES TO FORCE 2400 OR 9600 CONNECTIONS.
Some newer software like Qmodem and Pcplus have a
screen in the dialing directory where you can enter
dialing prefixes. In Qmodem press E and in Pcplus press P
to get that screen. Then to use those prefixes you just
put the letter of the prefix before the telephone number
in the directory. (You may have to go to the Setup and
erase the original ATDT).
V.32 / V.42bis Dialing Prefixes
The normal dial Prefix is ATDT. If the number is
423-1563 then it sends ATDT4231563 to the modem, which
then dials, and connects. This is using auto-speed
(baud) negotiation as well as negotiating Protocol
(V.42bis, MNP etc.). Some modems/software you will call
do NOT like this. Listed are alternate dial Prefixes
you may use.
AT&Q5N1DT :negotiates SPEED and Protocol (default) 1
AT&Q6N1DT :negotiates SPEED only 1
AT&Q5S37=11N0DT :*Connect 14400, negotiate Protocol 1 2
AT&Q6S37=11N0DT :*Connect 14400 only 2
AT&Q5S37=9N0DT :*Connect 9600, negotiate Protocol 1
301
AT&Q6S37=9N0DT :*Connect 9600 only 1
AT&Q5S37=6N0DT :Connect 2400, negotiate Protocol 1
AT&Q6S37=6N0DT :Connect 2400 only 1
AT&Q6S37=5N0DT :Connect 1200 only 1
AT&Q6S37=1N0DT :Connect 300 only 1
* for all V.32 modems
1-for error correcting modems
2-for V.32bis modems
Q: I realize that the network software is capable of many
different parameters. What are the parameters that can be
used?
A: The following explanation was provided by Wayne Bell.
/B = baud rate already connected at - answer mode
(modem_speed)
/F = connection flags - answer mode
(modem_flag)
/T = time in unix format - both
(defaults if not set)
/# = com port to use (optional) - both
/N = system number to dial out to - originate mode
/P = phone number to dial out to - originate mode
/C = cost/minute of call - originate mode
/S = max baud rate of other system - obsolete
/A = allow sendback (0 or 1) - originate mode
/M = macro number to use (0=none) - originate mode
/X = alternate connect string - auxiliary
(need /P also)
- vs !-@NETWORK@-!,
exits immed.
/R = # retries - originate mode,
default=1
! = Specify alternate config.dat fn- both
Q: Is it possible to use foreign languages in RIP?
A:
Non-English Languages and RIP
-----------------------------
WWIV's RIP code will support languages other than
English, if the required files are all in place. As with
previous versions of WWIV, you need to put new BBS.STR,
MENUSANS.MSG, MENUS.MSG, and HELP.MSG files into your
foreign-language directory. Then you need (preferably
translated) copies of each RIP file in WWIV\GFILES. This
includes MENUSSOF.MSG, MENUSLCL.MSG, GOODBYE.RIP, and so
302
forth.
All of these screens and non-downloadable menus go
into your foreign-language directory; and the text strings
contained within these files should be translated to your
new language. However, all of the downloadable menus --
which make up the majority of the RIP interface -- are
stored in RIPMENUS.
To create a foreign language RIP menu set, simply
copy one of the existing menu sets to a new file extension,
using a command such as COPY *.??4 *.??7 or COPY *.??4
icon files (.ICx and .BMx) with the same third character in
their extension. If your menu set *does* have icons, you
will need to open up each of the menu files and do a
search-and-replace, changing the .IC extensions to match
the new menu set's icons. For example, if you copied *.??4
to *.??7, you need to replace every reference of .IC4 to
.IC7.
You can now edit each of the .MNx files and
translate their English strings to your target language.
This can be done with a RIP drawing program such as
RIPpaint, DeadPaint, or FlatLine; or with a standard text
editor. If you have a RIP icon editor (e.g. MAKEICN), you
may also want to change some of the icons.
Adding Menu Styles to the Selection Screen
------------------------------------------
Your new menu set should be in RIPMENUS, ready for
use. In order to make it available to your users, go to
your language directory and open up MENUSLCL.MSG with your
text editor. The easiest way to make modifications to this
file is to copy out menu #350 to a separate file, use a RIP
drawing program to alter the screen, and then fire up your
editor and paste the new screen back into MENUSLCL.MSG.
However, you can do the entire process with a text
editor. Find menu 350, which is the screen listing your
different menu types. You should see a series of RIP codes
which look like the following: [Note...these lines are
longer than this format, so ^^ indicates a continuation
from the preceeding line]
!|1U5C3E5Q3O2B00<>Simplified<>1|1U5C425Q4C1Y00<>Full-Scre
^^en<>2
303
!|1U5C4Q5Q501W00<>Drop-Down<>3|1U5C5E5Q5O2F00<>Windows 95
^^(TM)-style*<>4
!|1U5C625Q6C2500<>Macintosh(TM)-style*<>5|1U9R3EA53O2700<
^^>OS/2(TM)<>6
!|1U9R63A56D2600<>None<>0
Each of the first three lines corresponds to two
labeled buttons in the dialog box. The first button,
labeled Simplified, will return a 1 when pressed; this will
select menu extension .MN1. The second button,
Full-Screen, is set to .MN2. Similarly, Drop-Down is .MN3,
and so forth.
The layout for each button is fairly simple. RIP
uses base-36 arithmetic (0-9, A-Z), and the basic format is
as follows:
!|1U 5C 3E 5Q 3O 1Y 00<> Simplified<> 1
| | | | | | | |
button x1 y1 x2 y2 hot title key
code key returned
Here are the hotkey codes, translated to base-36 for you:
A = 1T B = 1U C = 1V D = 1W E = 1X
F = 1Y G = 1Z H = 20 I = 21 J = 22
K = 23 L = 24 M = 25 N = 26 O = 27
P = 28 Q = 29 R = 2A S = 2B T = 2C
U = 2D V = 2E W = 2F X = 2G Y = 2H
Z = 2I
If you are using a language other than English, and
only have one menu set, you will probably want to remove
all of the menu sets other than the first one. I would
keep the None selection, so a user has the option of *not*
downloading anything. If you have French menus as .MN7,
your new dialog may look something like the following:
!|1U5C3E5Q3O1Y00<>Francais<>7
!|1U9R63A56D2900<>Quitter<>0
Note that the hotkeys have been set to "F" and "Q".
It is recommended that you give all of your buttons
hotkeys, so users can use the keyboard to answer prompts.
If you have any problems or questions, feel free to
e-mail me at Zack Ives #3 @11729 or
zack@pacific.pacific.net. Several RIP editors are
available at The Griffon's Lair at (707) 526-2184.
304
REFERENCES
╔════════════╗
║ References ║
╚════════════╝
Products created by other authors have been mentioned
throughout this documentation. These authors or companies
may be contacted as follows:
PRODUCT: DSZ, GSZ, Zmodem
Author: Chuck Forsberg
Omen Technologies, Inc.
P.O. Box 4681
Portland, OR 97208
PRODUCT: HS-LINK
Author: Samuel H. Smith
The Tool Shop
P.O. Box 4808
Panorama City, CA 91412-4808
PRODUCT: MpT Protocal
Author: Matthew Thomas
P.O. ox 4694
Racine, WI 53404
PRODUCT: ARJ Archiver
Author: Robert K. Jung
2606 Village Road West
Norwood, MA 02062
PRODUCT: TheDraw
Author: TheSoft Programming Services
1929 Whitecliff Court
Walnut Creek, CA 94596
PRODUCT: Book Reader
Author: Chuck Walden
United Computer Services
P.O. Box 720964
Mc Allen, Texas 78504
Phone (210)-631-1700 BBS-(210)-631-0899
PRODUCT: QEDIT
Author: SemWare
4343 Shallowford Rd.
305
Suite C-3
Marietta, GA 50062-5003
PRODUCT: LIST utility
Author: Vernon D. Buerg
139 White Oak Circle
Petaluma, CA 94952
PRODUCT: Pkzip, Pkunzip
Author: PKWARE, INC.
7545 N. Port Washington Rd.
Glendale, WI 53217-3422
What's New in WWIV 4.24
1) Swapping spawn implemented. (Code courtesy of
TurboPower Software, distributed in .OBJ/.LIB format,
with permission.)
2) Sound Definition Files supported. (Uses local PC
speaker to read/play alterable tunes.
3) Various bug fixes as usual.
4) Conferencing improved (confedit).
5) N-Scanning dirs is now done automatically (if set in
xfer defaults) only after the first n-scan - no more
redundant file n-scans after msgbase n-scan.
6) WWIV.INI file support added. See docs for available
settings and details.
7) The internal editor will now allow you to backspace
to the previous line.
8) You can now have up to 16,000 posts on a sub (net34+
required for netted subs).
9) Max files per dir can be 999 now, vs 499 previously.
10) [ and ] will scroll through dirs/subs/chains while
editing them.
11) The instance number now shows in the sysoplog.
12) Newuser user number assignment much more robust.
13) 115200 baud rate supported everywhere.
14) 'F' at the scan prompt will search for text in a post
(or title).
306
15) 'M' from the mail read prompt will send email to
someone else, but allow you to quote from the current
email.
16) Notification of user of mail if he is on line at time
mail is sent.
17) Caller_id support
18) Min/Max age support in chains.
19) RIP Support
20) QWK Support
21) Unread E-mail marked with an *
22) More FidoNet Support
23) //PACK will pack the current message base (won't do
e-mail)
Special Thanks...
Thanks to:
Craig Arnush (1@6950) - bugged me enough so that I compiled
WWIV with all the crazy optimizations on. Conceived of &
wrote the "extended log". Went through some of the older
source code in WWIV & optimized it a bit for speed & size
(and yes, the BBS IS shorter now, due both to his
optimizations and the compiler optimizations).
Dash -Riprock - Wrote the quicksort routine which is now
used to sort the file section. A bit faster. Also wrote
the two-way chat routine.
Doug Fields - various miscellaneous things, like supporting
logon.ans, the menu????.ANS. Also for finally figuring out
how to type-cast functions so that there is no more warning
when compiling utility.c.
Eric Golden - wrote the new topscreen, set up the WWIV
support BBS network, and bugged me about thousands of little
things I needed to change.
Joseph Rybaczek (Benny Hill) - Kept the WWIV Support Network
going.
Wig De Moville (Filo) - Not only came up with new versions
of the BBS documentation, but also re-wrote the network
docs, in addition to doing quite a bit of work in helping to
307
manage the network. Also, is now handling registrations,
too.
Chuck Walden - permitted WWIV Software Services to
distribute the WWIV documentation using the "reader" format.
Dino and The Analog Kid for developing prior versions of the
conferencing mod. Hopefully v4.23 has the best of all
features available in their mods.
The Bishop -- permitted some of his mods to be used in
v4.23, especially the routines for moving subs and
directories.
8 Ball -- provided impetus for the H)op Command ala his jump
mod.
Arc Angel -- led the way in developing multi-line for WWIV.
Hackmaster 'J' for providing PcBoard v14.5 info for drop
files.
Starship Trooper for the OS/2 information in the docs.
Morgul and Sam for the Desqview information.
Spotnick, Stratocaster, Simon Borduas, and RejeanF for
French translations and menus. Wizord for the Spanish
translations.
Jim Wire for participation on the development team and
especially for the multi-instance and file tagging.
Zach Ives for the RipSpeed support. Zach provides
continuing support in the form of modifications, and the
lastest version will be incorporated into each release of
WWIV BBS Software.
Black Robe Mage for entering the contest to select best
modification for inclusion in 4.24. This contest produced
the Find text feature.
Zu Digital (Mike Deweese) and Sam for contribution of QWK
code for use in 4.24. Michael Leib for developing the first
WWIV compatible QWK program.
The SDS and Support Boards for being such a great group of
BETA testers. Additional thanks to their wives and girl
friends for being so patient and understanding during this
process.
308
Listing of some Utilites for WWIV
collected by Joe Barbara
How to Read the list:
FILENAME.EXT ID MM/YR Description of file goes here.
by: Author Name More description.
Registration fee if any.
ID = PD, SW, CM for Public Domain, Shareware, Commercial
respectively.
MM/YR is Month/Year added or updated
Most all these programs should be available at any
support BBS. Refer to the support BBS list for one
closest to you.
DFRAG2xx.ZIP SW 1/94 Message base/EMAIL.DAT
defragging program. Also
by: Spackle repairs files/messages.
$15 registration.
PAGEME2A.ZIP PD 1/94 Small but GOOD Super Chat Pager
for WWIV. Can set high and low
by: Jason Johnson times, custom registration
available.
WCHT3xxx.ZIP SW 5/94 Replacement Chatroom for inter
-instance chat. Lots of new
by: Joe Barbara features. TRY IT!
$20 registration.
NETL285 .ZIP SW 1/94 WWIV Network Analysis Program
(single/multinet)
by: Aldur
Unknown Fee.
ALIASxxx.ZIP PD 1/94 Alias - Converts the real name
to handle in CHAIN.TXT.
by: Cris McRae
AUTOSxxx.ZIP SW 3/94 AutoSend - A Full-Featured
Network Sub Host Utility.
by: Cris McRae Too many features to list.
$15 registration
BDAYxxx .ZIP SW 2/94 Birthday - A Birthday List
Generator and Logon Event
by: Cris McRae Viewer.
$5 registration
ECLWxxxx.ZIP SW 2/94 Eclipse is a full featured
309
offline mail reader designed
by: Will Hobday specfically for WWIV/WOMR.
$20 registration
WLxx .ZIP SW 2/94 WWIVList is a viewer for text
files with embedded WWIV color
by: Will Hobday codes.
Free!
WOMRxxxx.ZIP SW 2/94 WOMR is an easy to install, easy
to use mail door for WWIV.
by: Will Hobday
$30 for WOMR and WOMR-QWK!
WQWKxxxx.ZIP SW 2/94 WOMR-QWK is an easy to install,
easy to use QWK mail door for
By: Will Hobday WWIV.
$30 for WOMR-QWK and WOMR!
WWIVESEx.ZIP SW 1/94 External String Editor For WWIV
v4.22 and Higher. Very Easy to
by: Martin Bourdages use, import/export.
Unknown Fee.
NETCOM21.ZIP PD 1/94 Network Utility - Updating over
networks.
by: Perry Navarro Current version v2.1
ELN2x.ZIP SW 4/94 Network packet editor - like
LNET with GUI+mouse, header
by: Starship Trooper edit, extract, reroute, delete.
$15 registration.
PMELLNET.ZIP SW 4/94 ELLNET net packet editor for
OS/2 Pres. Manager Slick GUI,
by: Starship Trooper internal multitasking.
$15 registration.
NSTATxx.ZIP SW 4/94 Automatically log all net
traffic thru your system.
by: Starship Trooper Create reports of how much
$10 registration systems send/recv.
STRIPIT2.ZIP SW 4/94 Net preprocessor to remove ansi
and taglines, and delete
by: Starship Trooper delete incoming msgs from
$5 registration. "fools".
STRCOM11.ZIP PD 4/94 Small and fast WWIV stringfile
compiler/decompiler. Edit
by: Starship Trooper string files as text with any
ASCII editor.
310
WNETD.ZIP PD 4/94 Front end for network mail
handling programs.
by: Starship Trooper
Free.
KLINTxx.ZIP PD 4/94 Klintonov, displays random
Clinton bashing tags, supports
by: Bull Ship WWIV color, used normally as a
logon event
LINKUPVx.ZIP SW 4/94 LinkUp - Network Update
Software, nice interface, with
by: Jason Whelan mouse support.
$15 registration
NETPROVx.ZIP SW 4/94 NetPro - NETWORK2 preproc. Has
many NICE features,
by: Jason Whelan E-mail 1@5213(4205)WWIVnet!
$10 registration
WHELNETx.ZIP SW 4/94 WhelNet - LNET replacement,
NICE interface, new LNET
by: Jason Whelan options E-Mail 1@5213(4205)!
WWIVVGAx.ZIP SW 4/94 WWIVVGA - Allows VGA Planets
games to be played in WWIV
by: Jason Whelan networks,
E-Mail 1@5213(4205)WWIVnet!
Attention Writers of WWIV Utilities
Please send any sumbmissions in the above format to
1@4230 to be added to the list. When a new version of
WWIV is released all info must be updated as this list
will only contain utilities that are are compatable with
the current version.
FILENAME.EXT ID Description
by: Author Description line 2
One Email Address
Registration Fee
Please send this information to 1@4230 WWIVnet.
Note, 1@4230 is in the process of moving and his node will
not be on WWIVnet for a few months. In the interim, send
submissions to Filo (1@4000 WWIVnet).
311