Wildcat! v3.x
Multi-Node DESQview Concepts Explained
v1.5C 5/22/94
By: Allen Woolley,
Sysop, Moonlit Knight: (408)-244-3459 v.32bis
(408)-244-1096 HST DS
------- All files and text are Copyright
1992, 1993 by Allen Woolley -------
Permission is granted to copy,
exchange and distribute all
files in this document provided
proper credit is given to
the author.
What is this
document?
======================
This document contains
a straight forward description of the specialized
techniques and
methods I have used for running Wildcat under DESQview. I
have taught other
Sysops these methods with great success.
Hopefully some
of the information
presented here will help you too.
Wildcat and
DESQview are a very powerful solution for running a multi-node
BBS. The number of people with extensive DOS,
DESQview and Wildcat ex-
perience is however
very limited. As a result I have been asked by many
members of my
Sysops Association over the last few years to help them get
multi-node Wildcat
BBS's up and running.
A lot of what is
covered in this document is already available in the
Wildcat
documentation. In all cases, the Wildcat and DESQview manuals are
your #1 source for
accurate, current information. This document is intended
as a supplement to
the MSI and DESQview-386 books.
What is covered?
----------------
This discussion is
restricted to running Wildcat v3.xM ( the 10 node
version) or v3.xP
(the 250 node version) under the DESQview-386 operating
environment. I am running Wildcat v3.90M at the time of
this writing.
The system is
running 3 nodes, one of which is a Local node (no modem) only
node.
What isn't covered?
-------------------
Wildcat is
purrfectly happy in a Novel or Lantastic network environment.
Many of the
concepts presented here are applicable to Netware operation,
but I will not
cover any network specific concepts or procedures.
Who I am:
---------
I have been running
a Wildcat BBS since 1989. I have been
multi-node
since 1991. For new sysops, some of the things I've
learned will help
make your first
attempt at running a multi-node BBS successful. For the
experienced single
line sysop, I hope this will make the transition from
v3.xS to 3.xM or
3.xP as painless and satisfying as possible.
I am NOT
perfect! If you find mistakes or have a
better way of doing
things, please feel
free to drop me a line either via WildNet Chat or by
calling either my
BBS or Ring of Fire. Be sure to spell
my last name
correctly, as the
spelling is a bit unusual.
What you need to
know:
----------------------
You CAN
successfully run a multi-node BBS without knowing much of the
stuff below, BUT
your far better off if you take the time to learn the
concepts specified
in the following paragraphs.
You MUST be
reasonably DOS knowledgeable. I am not
going to be
explaining how to
use the COPY command here. You need to
have an
understanding of
the following concepts:
System Boot
files.....: CONFIG.SYS and AUTOEXEC.BAT
Batch
files...........: CAT.BAT etc...
General DOS
commands..: COPY, DEL, MD, CD etc...
Using the SET
command.: Setting DOS Environment variables
Additionally, the
more of the concepts listed below you can put a "check
mark" next to,
the easier your Sysop-ing will be. If
you haven't done
it yet READ the
Wildcat Docs! You need to understand
the following
Wildcat! concepts:
1)MAKEWILD
2)WCMODEM
3)CAT.BAT
DESQview-386 Concepts:
======================
QEMM memory
manager:
--------------------
TSR management.......: Using LOADHI to load memory eating TSR's
like
ANSI.SYS into high
memory.
DESQview Concepts:
------------------
Script Files.........:
Using DESQVIEW.DVS and the !STARTUP script to
auto-start programs
when DESQview is booted up.
The DESQview
Menu....: How to use the "Add a Program" menu in DESQview.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
First Things First:
===================
Multi-node BBS's
require you to do a number of things that you don't
normally need to do
with a single line system. I am going
to cover
exactly what you
need to do to run multi-node, but first:
Get your BBS up and
running as a Single Node, non-DESQview system first!
I cannot emphasize
this point enough: You MUST de-bug and
smooth out your
system in Single
Node operation FIRST. It is Very hard
to debug a
system running
under DESQview that has not been proven to be bug free
running as a single
node system under DOS.
Hardware notes:
---------------
You must have at
least a 386-SX system to run DESQview 386.
A 16Mhz PC
should be able to
handle two online nodes just fine.
Follow the Wildcat
manual's
recommendations regarding 16550AFN UARTs for your serial board.
I highly recommend
you use them as well. They are commonly
available
from vendors such
as Arrow, JDR, Jameco etc..
You can run two
nodes successfully in just 2MB of memory, but I highly
recommend at least
four. You can assume each additional
node will require
about 1MB more
memory. Most PC's only allow you to
have 1,2,4,8 or 16MB
of memory on the
motherboard. By setting your system up
with 4MB, you
should be able to
run 4 online nodes and one local node cleanly,
assuming no RAM
disk or large disk cache is installed.
A disk cache is a
wonderful thing. It will greatly speed
up your BBS and
is well worth the
memory cost. I personally have 8MB of
memory in my
486-33. I run a 2MB disk cache and a 2MB ram
disk. I have enough
memory left over
for 3 nodes of the BBS plus 2 DOS windows.
Multi Node Boot
concepts:
-------------------------
One of the most
important concepts you should have a firm handle on is
how your PC will
boot itself into a multi-tasking DESQview environment.
I will be covering
each block of Figure 1 in great detail below.
Please take a
moment to actually read all of Figure 1 and have your DOS,
DESQview-386 and
Wildcat! manuals handy to cross reference what I am
writing to what the
manuals tell you. Between this document
and the
manuals, you should
be able to gain a clear understanding about how your
multi-node system
will run without ever having to touch a keyboard.
BIOS:
=====
On system power up,
the PC will automatically read a small area of
battery powered
memory. This memory holds information
like the type of
disk drives
installed, how much memory is installed as well as the time
and date clock.
Be sure the time
and date are correct in your system!
BBS's require
that the system
clock be accurate for user time on line accounting,
event .BAT file
execution etc...
If your PC clock
runs fast or slow, you must make a point of resetting
it every few
days. Weak batteries are a prime cause
of PC clocks
running
erratically. If your clock is doing
weird things, change out
the battery. Be sure to write down your hard disk BIOS
configuration
(number of heads,
sectors etc...) before changing your system battery.
See your owners
manual for more info on how to do this.
CONFIG.SYS:
===========
This file is where
you need to pay close attention to your QEMM manual.
Included below is
the CONFIG.SYS I use on Moonlit Knight.
Note that I
have an Adaptec
SCSI host adapter and 8MB of memory in the system. I
create a 2MB RAM
drive for menus, bulletins and the like, as well as
loading a 2MB disk
cache.
CONFIG.SYS
Considerations:
--------------------------
You will need to
specify a minimum of 30 file handles for the DOS
FILES=xx
command. In general, set the number of
FILES equal to the
number of nodes
your going to be running * 10 + 30. I
have a 3 node
system, so the
number of files I need is: 3 nodes * 10
= 30 files, + 30
more = 60 FILES
total.
Figure 1: PC to
DESQview Boot Sequence:
****************************************
-----
(START)
-----
|
|---------|
| PC BIOS |
|---------|
|
|
|------------|
| CONFIG.SYS |
|------------|
|
| CALL KILLTAGS.BAT
|--------------|>>>---------->>>-|---------------|
| AUTOEXEC.BAT
| | KILLTAGS.BAT* |
|--------------|<<<----------<<<-|---------------|
| * Used as part of this
|
demonstration only!
|----------| Not a normal DOS start-
| DESQview | up file!
|----------|
|
|
|--------------|
| DESQVIEW.DVS |
| +
|
| !STARTUP
|
|--------------|
|
|
--------------------------0------------------------------------>>>
| | |
| | |
|-----------| |-----------| |-----------|
| NODE1.BAT | | NODE2.BAT | | NODEx.BAT |
|-----------| |-----------| |-----------|
|
| |
| | |
|---------| |---------| |---------|
| CAT.BAT | | CAT.BAT | | CAT.BAT |
|---------| |---------| |---------|
Please pull this sheet out and use it to
follow the "flow" of this
document.
The narrative follows the work flow shown above quite
closely.
When all three
nodes are running, my system will have anywhere from 11
to 40 files open,
depending on who is doing what.
The DOS environment
size is critical! You will be making
extensive use
of the DOS
environment and require a far larger environment size than the
DOS default. Each node will require approximately 75
bytes of space
beyond what is used
in the CONFIG.SYS and AUTOEXEC.BAT.
QEMM
Considerations:
--------------------
I recommend you Not
use "Stealth" mode. This mode
is touchy on most
machines. On those PC's that can run it, I have
observed a marked
decrease in the
execution speed of the software (the machine runs
slower).
Use the parameter
X=FE00-FEFF to exclude the floppy disk I/O area of your
BIOS. Be sure to use Manifest to find other
INCLUDE and EXCLUDE address
ranges as
required. This procedure is well
documented in the Manifest
and QEMM manuals.
I have found that
running OPTIMIZE twice in a row will sometimes LOADHI
more TSR's than a
single pass will. Strange, but true!
I recommend not
loading DOS into the UMB (Upper Memory Block).
Instead, use the
DOS=HIGH,NOUMB command and use Quarter Deck's LOADHI
program to load all
your TSR's into high memory instead of the DOS 5.0
DEVICEHIGH and
LOADHIGH commands. This will also
greatly help OPTIMIZE
figure out the best
place to put your TSR's in upper memory.
Basically:
Stick with the
Quarterdeck memory tools, they are a lot better than
Microsoft's at this
point.
(This file is on
disk as CONFIG.TMP)
REM C:\CONFIG.SYS
11/10/92 with SCSI support
REM
----------------------------------------
REM SET UP FOR THE
DESQview ENVIRONMENT
REM
-----------------------------------
REM INSTALL
QUARTERDECK EXTENDED MEMORY MANAGER v6.02
REM Note: Use MANIFEST to find other INCLUDE and EXCLUDE
regions.
REM The DISKBUF=2 is required for SCSI
disks only!
DEVICE=C:\QEMM\QEMM386.SYS
RAM ROM X=FE00-FEFF DISKBUF=2
REM
-----------------------------------
REM SCSI DISK
DEVICE DRIVERS
DEVICE=C:\QEMM\LOADHI.SYS
C:\SCSI\ASPI4DOS.SYS /D
REM
-----------------------------------
REM CREATE A 2MB
DISK CACHE
REM The
DOUBLE_BUFFER is required only for SCSI disks!
DEVICE=C:\DOS\SMARTDRV.EXE
2048 1024 /b:2048/DOUBLE_BUFFER
REM
-----------------------------------
REM DO NOT PUT THE
MS DOS KERNAL IN HIGH MEMORY
DOS=HIGH,NOUMB
REM
-----------------------------------
REM CREATE D:\ RAM
DISK
DEVICE=C:\QEMM\LOADHI.SYS
C:\DOS\RAMDRIVE.SYS 2000 128 128 /e
REM
-----------------------------------
REM MOUSE DRIVER
DEVICE=C:\qemm\loadhi.sys
C:\mouse\mouse.sys
REM
-----------------------------------
REM LOAD THE ANSI
SCREEN DRIVER
DEVICE=C:\QEMM\LOADHI.SYS C:\DOS\ANSI.SYS
REM
-----------------------------------
REM MISC. DOS
PARAMETERS:
STACKS=0,0
FILES=60
BUFFERS=1
REM -----------------------------------
REM CREATE A LARGER
DOS ENVIRONMENT
SHELL=C:\COMMAND.COM
/e:512 /p
REM
-----------------------------------
REM --- END CONFIG.SYS ---
AUTOEXEC.BAT
Considerations:
----------------------------
The order in which you
load your TSR's here may very well effect how
successful OPTIMIZE
is in loading all the TSR's high. You
should play
around with
different TSR loading orders if OPTIMIZE can't get
everything loaded
high.
Please read the
AUTOEXEC.BAT below carefully. I have
removed most of
the non-BBS related
items from it. The remaining items give
you an idea
how my system is
set up. This one AUTOEXEC.BAT services
Both DESQview
and Windows. No separate system configuration is
required!
The Wildcat specific
areas are offset with "******".
(This file is on
disk as AUTOEXEC.TMP)
@ECHO OFF
ECHO ----
C:\AUTOEXEC.BAT 11/10/92 Wildcat Multinode under DESQview ----
ECHO Configuring
System parameters
SET
COMSPEC=C:\COMMAND.COM
REM ---------------
REM SETUP DOS
SEARCH PATH
PATH
C:\UTILS;C:\QEMM;C:\WC30;C:\DV;C:\ZIP;C:\DOS;C:\NDW;C:\WINDOWS;C:\;
REM ---------------
REM TURN ON VERIFY
VERIFY ON
REM ---------------
REM SET UP THE
SYSTEM PROMPT
PROMPT $P$G
REM ---------------
BREAK ON
REM ***************
REM LOAD TSR's
REM ***************
ECHO Loading TSR's
REM ---------------
REM SHARE UP TO 40
FILES
C:\QEMM\LOADHI
C:\DOS\SHARE /L:40
REM ***************
REM Setup the
Default (DOS Only) Node Wildcat Environment variables.
REM This is the
node that you want to run automatically OUTSIDE of
REM Desqview under
plain DOS.
SET WCNODEID=1
SET WCPORTID=1
SET WCMDM=HST
SET WCHOME=C:\WC30
REM ******* TEST
ENABLE ********
rem Short circuit
BBS setup for testing purposes only.
Un-remark the
rem GOTO ABORT
command below to avoid building the BBS RAM work disk
rem and starting
DESQview. Use for de-bugging purposes.
rem goto abort
REM ***************
REM ******* KILL
TAGS ********
rem Delete any
existing BBS tag files prior to starting DESQview.
call
C:\WC30\KILLTAGS.BAT
REM ***************
REM ***************
rem Build the
Moonlit Knight BBS working disk on RAM disk D:\
call
C:\WC30\BUILDBBS.BAT
REM ***************
REM ***************
ECHO BOOTING UP
DESQVIEW. BBS NODE1 WILL START VIA !STARTUP SCRIPT
DV
REM ***************
REM ***************
rem Short circuit
BBS set up to here for testing only.
:abort
echo BBS D:\ disk
not built!
REM ***************
REM
--------------- END AUTOEXEC.BAT ---------------
For now, ignore the
TEST ENABLE and the KILL TAGS areas.
Instead
concentrate on the
Wildcat environment variables.
As stated in the
Wildcat manual, the use of any of the WCxxxx
environment
variables OVER-RIDES the corresponding MAKEWILD settings.
This means that you
can specify Node numbers, serial port numbers and
Modem .MDM files,
as well as a number of other Wildcat specific things
useing the the DOS
SET command from within a .BAT file.
I have defined the
settings for my default Single node (no DESQview)
node using the SET
WCnnn= commands here, so I can run the BBS under
plain DOS for test
purposes.
I copy all my
display files (menus, bulletins, etc...) to a RAM disk
(D:\) to speed up
the operation of the BBS and save wear and tear on the
hard drive. This takes a bit of time to accomplish
however, so I have
created the TEST
ENABLE section to not only allow me to skip "building"
the RAM disk up,
but also to skip booting up DESQview (which would start
up 3 nodes of the
BBS) so I can test new system configurations without
running the BBS
under DESQview.
HINT:
=====
If you can give up
bit mapped graphics, use the VIDRAM program to turn
your VGA card's
graphics memory into DOS usable memory!
Add this command
into the
QEMM386.SYS command in your CONFIG.SYS:
VIDRAMEMS
Then add this bit
to your AUTOEXEC.BAT just before you startup DESQview:
Echo Converting
graphics memory to DOS usable memory:
VIDRAM ON
REM **********
You will NOT be
able to run any VGA bit mapped applications with VIDRAMEMS
and VIDRAM loaded
into QEMM. You must have alternate
CONFIG and AUTOEXEC
files for your
system if you desire to use the VIDRAM parameters to increase
your memory size
AND be able to run bit mapped graphics.
If your system is
used primarily for BBS use only, I highly recommend you
use VIDRAM. I get 603K DOS windows using this technique.
The BUILDBBS.BAT
file simply creates the display file directories and
then copies the
files to the D:\ drive for the BBS to use (as specified
in MAKEWILD).
(This file is on
disk as BUILDBBS.TMP)
@echo off
rem
C:\WC30\BUILDBBS.BAT 11/10/92
cls
Echo Building D:
drive for Moonlit Knight Display Files...
rem ----
rem Log into the D:
drive
D:
rem ----
echo Making a
directory for the SCAN virus detector
MD D:\BUGCHECK
rem ----
echo Making a
directory for TNET and SLMR
MD D:\QWK
rem ----
echo Making
directories for the Wildcat work files
MD D:\HELP
CD D:\HELP
echo Copying the
HELP files....
COPY
C:\WC30\HELP\*.* D:\help\*.*>NUL:
REM ----
MD D:\DISP
CD D:\DISP
echo Copying the
Display files....
COPY
C:\WC30\DISP\*.* D:\disp\*.*>NUL:
REM ----
MD D:\BULL
CD D:\BULL
echo Copying the
Bulletins....
COPY
C:\WC30\BULL\*.* D:\bull\*.*>NUL:
REM ----
Echo
C:\WC30\BUILDBBS.BAT complete.
C:
CD\
Once the D:\ RAM
disk is setup, the BBS is ready for startup by a
DESQview script.
DESQview:
=========
Before starting
DESQview up, CD C:\DV and run the DESQview SETUP program.
You want to select
the Performance option.
You will then be
presented with new menu that allows you to set the
Foreground and
Background "Ticks". Set these
both to 2. Very slow
machines may
require a setting of "3", so keep this in mind if your BBS
drops characters or
has problems when files are Uploaded (not
Downloaded!) to it.
On this same menu,
set the Optimize Communications? to Yes.
Save your
changes and quit
SETUP. Now start up Desqview.
Here are the
settings I use on my 486-33. Your
system may require a
different setup,
but these settings are a good place to start:
Task Processing Time (in Clock Ticks)
Foreground: 2
Background: 2
Memory Usage (in K)
Common Memory: 25
DOS Buffer for EMS: 12
Optimize communications? (Y/N): Y
Allow swapping of programs? (Y/N): Y
Manage printer contention? (Y/N): Y
Before getting into
DESQview scripts, you need to install the BBS into the
DESQview "Open
Window" menu. Refer to your DESQview
manual on how to "Add
a Program" to
the DESQview Open Window menu. You are
going to start
with a simple 2
node setup that DESQview will auto start for you.
You can always add
more nodes later, but for now, lets stick with a 2
node configuration. You need to install two new menu items
called:
BBS Node 1 N1
BBS Node 2 N2
Use the settings
below for Each node. Be sure you use N1
and N2 for the
"Keys to Use
on Open Menu:" as the script file you'll be using to
auto-start both nodes
later will be expecting them.
Change a
Program
Program Name............: MLK NODE 1 HST
Keys to Use on Open Menu: N1 Memory Size (in K):
480
Program...: NODE1.BAT
Parameters:
Directory.: C:\WC30\WCWORK\NODE1
Options:
Writes text directly to
screen.......: [N]
Displays graphics
information........: [N]
Virtualize text/graphics (Y,N,T).....: [T]
Uses serial ports
(Y,N,1,2)..........: [1] (* See Below!!!)
Requires floppy
diskette.............: [N]
Change a Program
Advanced Options
System Memory (in K).......: 0
Maximum Program Memory Size (in K)..: 800
Script Buffer Size.......: 200
Maximum Expanded Memory Size (in K):
800
Text Pages: 1 Graphics Pages: 0
Initial Mode: 1 Interrupts: 00 to FF
Window Position:
Maximum Height: 25 Starting
Height: 25 Starting Row...: 1
Maximum Width.: 80 Starting
Width.: 80 Starting Column: 1
Shared Program
Pathname..:
Data......:
Close on exit (Y,N,blank)......: [N] Uses its own colors..............: [Y]
Allow Close Window command.....: [Y] Runs in background (Y,N,blank)...: [Y]
Uses math coprocessor..........: [N] Keyboard conflict (0-F)..........: [0]
Share CPU when foreground......: [Y] Share EGA when foreground/zoomed.: [Y]
Can be swapped out (Y,N,blank).: [N] Protection level (0-3)...........: [0]
----------
* Set Node 1 so
that it uses COM1: and Node 2 so that it uses COM2:. If
your using any
other COM ports, set this to Y.
----------
This configuration
tells DESQview that the MINIMUM amount of memory you
want for Wildcat is
480K. Setting the MAXIMIM Program
Memory on the
Advanced Options
screen to 800K tells DESQview to give the program as much
memory as it can.
Note:
=====
If your using
VIDRAM to increase your DOS window memory size, you should
probably set
MAXIMIM Program Memory to a much lower number, like 500 or so.
Wildcat! does NOT
need huge 600K blocks of memory to run in.
Anything much
over 500K or so is
a waste of memory that other DESQview windows could use.
Some high powered
DOOR programs may want as much memory as possible (certain
DBase door programs
for example, or perhaps DOORWAY). In
that case, set
each node
individually to the amount of memory required.
DESQview Scripts:
-----------------
A DESQview script
file (FILENAME.DVS) contains a library of macros that
are associated with
a DESQview "Open Window" menu selection. For
example, a script
file name BD.DVS holds all the macros for the Big Dos
program selection.
There is one script
file that is not associated with any Open Window
program called
DESQVIEW.DVS. This script is associated
with the DV.EXE
program itself and
is automatically read when DV.EXE is run.
There is
more on this in the
DESQview manual.
Normally you would
use the DESQview LEARN function to record this script
file, but the
procedure for getting it to work right is a pain.
Instead, I have
included DESQVIEW.TMP, an ASCII file that you can use
the "Convert a
Script" program to compile into DESQVIEW.DVS.
Auto starting a
program using DESQVIEW.DVS
-----------------------------------------
There is one other
slick trick that you need to know about:
Any macro
you record into a
.DVS file using the LEARN function has to be given a
macro name. If the first letter of that name is an
exclamation point
"!" the
macro is AUTOMATICALLY executed on opening the program window.
This is critical to
understand:
On startup,
DESQview will look for a script file called DESQVIEW.DVS. If
DESQview finds this
script file, it will read in the contents of the
file. Now, if one
of the macros in DESQVIEW.DVS starts with the !
character, DESQview
will EXECUTE that macro before it does anything
else.
This is the
equivelant of having an AUTOEXEC.BAT file inside the
DESQVIEW.DVS
script. Here is the DESQVIEW.TMP file
that you will use
the Convert a
Script program on to turn into DESQVIEW.DVS:
(This file is on
disk as DESQVIEW.TMP)
{Learn {Shift-F11}
"!Startup"}
ON1{DESQ}ON2
{Finish}
This macro tells
DESQview that you want it to Open a Window (the "O"), then
start the program
"N1". You then want it to
open the DESQview menu
(the {DESQ} ),then
Open a Window (the "O" again) and then boot up the
"N2"
program.
You can edit this
sequence to add more nodes. Just add
another {DESQ}Ox,
where the x= the
node number of node you want to run.
Remember: You
must first ADD the
new node(s) to the DESQview menu using Add a Program!
Compiling
DESQVIEW.TMP
======================
Once you have added
all the nodes that you wish to have started
automatically by
DESQview, you need to "compile" it into something
DESQview can read
on startup by using the Convert a Script program.
Convert a Script:
S) Script to Text File
T) Text to Script File
X) Exit
Selection:
You of course
desire to convert the DESQVIEW.TMP file into DESQVIEW.DVS,
so select
"T" from the menu and enter the correct file names. Once the
script is
converted, Exit this program.
NODEx.BAT:
==========
Note: The "x" in the file name is to be
replaced by the corresponding
Node ID number.
You no doubt
noticed that you will be executing a file called NODE1.BAT in
the Program...:
NODE1.BAT section of the DESQview Change a Program menu.
The reason for this
is as follows:
Once DESQview has
started, it will open up as many nodes as you specify
in the !STARTUP
script. All the nodes are running at
the SAME time.
The one major Rule
of running Wildcat (or any other multi node BBS)
under DESQview is
that you Must Not duplicate node numbers.
Duplicating
node numbers causes
really nasty things to happen to your BBS's data
bases and internal
record keeping data structures. Don't
Do It.
Using NODEx.BAT
allow you to accomplish the following:
1) Avoid duplicate
node numbers.
2) Detect node
crashes.
3) Change Modem
types, node numbers etc... with extraordinary ease.
4) Use the EXACT
same NODEx.BAT file on all nodes, specifying only the
NODE ID, modem .MDM file and COM port to
use. This makes changing
modems from node to node, adding new nodes,
deleting old nodes and
general house keeping a breeze.
NODEx.BAT needs to
be copied to the C:\WC30\WCWORK\NODEx directory for
EACH node. You then need to rename NODEx.BAT to
NODE1.BAT or NODE2.BAT,
etc... as required
by the node number you are creating.
NODEx.BAT
Internals:
--------------------
(If the text below
gets too thick, simply jump down to the NODEx.BAT
listing below and read that instead. You will probably understand what
the .BAT is doing simply by reading the
comments and the commands)
NODEx.BAT uses a
"tag file" to determine whether another node with the same
node number is
currently running. A tag file has no
other purpose than to
exist on the drive
in a specific directory. Other programs
and .BAT files
can then look to
see if the tag file exists. If it does,
the program will
take one action; if
the tag file doesn't exist, the program can take a
different action.
In the case of
NODEx.BAT, the batch file first sets the environment
variables to the
correct node number, modem .MDM file and comm port to
use. It then checks for a tag file called
NODE%WCNODEID%.UP.
While the NODEx.BAT
file is executing, the %WCNODEID% is replaced with
the value assigned
to it by the SET WCNODEID= command above it.
For
example:
If the DOS command
is SET WCNODEID=1,
Then the file name:
NODE%WCNODEID%.UP, translates into:
NODE1.UP.
The %WCNODEID% is
simply a name to which the value of "1" has been
assigned by the SET
command.
If another copy of
Wildcat with a node number of 1 is already running,
a file called
NODE1.UP will already exist in the \WC30 directory. Using
the DOS command IF
EXIST <filename>, we can tell the .BAT file to branch
to an :ABORT
routine.
If NODE1.UP is Not
found in the specified directory, we can safely assume
that node 1 of the
bbs is not running, and safely continue to boot node
1 up without
crashing the system.
Assuming all is
well, and NODE1.UP does Not exist, the next thing
NODEx.BAT does is
to "lock out" the node by Creating the tag file
(NODE1.UP) it just
looked for. It does this by copying
C:\WC30\NODE.TAG
to
C:\WC30\NODEx.UP, where the x is the node number SET by %WCNODEID%.
Any other attempts
to start up another node 1 (We are running DESQview
here, and it is
entirely possible that the operator may accidentally boot
up two nodes with
the same node number. I KNOW this is
possible as I
have done it!) will
result in the second copy of the NODEx.BAT file
detecting NODE1.UP
already exists. When this happens, the
second copy
of NODEx.BAT will
ABORT with an error message.
This bit of DOS
obscurity allows us to use the exact same generic batch
program to start
all the nodes in the system. All the Sysop has to do is
change the values of
the SET environment variables, instead of writing a
custom .BAT file
for every node.
Read through
NODEx.BAT and follow the program flow.
I think it will all
make sense quite
easily (perhaps far more easily than the babble above!)
(This file is on
disk as NODEX.TMP)
@echo off
rem
C:\WC30\WCWORK\NODEx\NODEx.BAT
rem Generic BBS
NODE startup template .BAT
ren Be sure to
RENAME this .BAT file to the proper node number
rem IE: NODE1.BAT,
NODE2.BAT etc...
rem -----
rem Set This node's
specific configuration by
rem editing the
next 3 SET commands:
rem
---------------------------------------
set WCNODEID=1
set WCPORTID=1
set WCMDM=HST
rem No other node
information is required to be entered
rem by the Sysop
other than the 3 lines above!
rem -----
rem Begin Generic
.BAT file routines:
Echo Executing
NODE%WCNODEID%.BAT
Echo ====
Echo Testing for
C:\WC30\NODE%WCNODEID%.UP
if exist
C:\WC30\NODE%WCNODEID%.UP goto NODE_CONFLICT
Echo ====
Echo NODE
%WCNODEID% is not running, bringing up NODE %WCNODEID% normally.
echo ====
Echo Locking out
NODE %WCNODEID% via NODE%WCNODEID%.UP tag file.
copy
C:\wc30\node.tag C:\wc30\NODE%WCNODEID%.UP>NUL:
echo ====
Echo Installing
NODE%WCNODEID% TSR's and environment variables.
prompt NODE
%WCNODEID% $p$g
rem Load Desqview
ANSI support (mainly used by DOORS to display ANSI
rem screens
properly on the local consol.
dvansi
Echo ====
Echo
NODE%WCNODEID%.BAT complete. Starting
up the BBS via C:\WC30\CAT.BAT.
cd C:\wc30
cat.bat
goto EXIT
REM
----------------------------
:NODE_CONFLICT
CLS
Echo Node
%WCNODEID% Conflict detected!
Echo -----
Echo -
Echo
NODE%WCNODEID%.UP tag file found in C:\WC30.
One of two things
Echo has occured:
Echo -
Echo 1) You are
attempting to start up a 2nd copy of NODE %WCNODEID%
Echo under Desqview.
Echo -
Echo 2) The BBS did
not terminate normally (there was a crash or reboot)
Echo via CAT.BAT.
Echo -
Echo Please verify
that you are not attempting to start up a 2nd copy of
Echo NODE
%WCNODEID%. If there was a crash,
please run FIXNODE.BAT.
cd
C:\wc30\wcwork\node%WCNODEID%
:EXIT
Echo -
Echo
NODE%WCNODEID%.BAT Done!
Echo -
CAT.BAT Internals:
==================
Hooray! We finally actually get to start up a node
of the BBS now!
Sorry it took so
long, but...
In any case, the
CAT.BAT file is very simple to understand:
(This file is on
disk as CAT.TMP)
@ECHO OFF
REM CAT.BAT 2-Oct-92
REM -----
echo Running
CAT.BAT for Node %wcnodeid% on COM:%wcportid%
REM -----
:RELOAD
C:\WC30\WILDCAT
REM -----
IF ERRORLEVEL 1
GOTO RELOAD
REM -----
REM This is the
Normal F10 BBS shutdown segment of CAT.BAT.
REM Delete the
NODEx.UP tag file for this node:
IF EXIST
NODE%WCNODEID%.UP DEL C:\WC30\NODE%WCNODEID%.UP
REM END OF CAT.BAT
CAT.BAT will
automatically delete the node tag file when you shut down
the node using the
F-10 key or the DOS NEXT option while a caller is on
line.
Be SURE not to
restart the BBS using CAT.BAT!!!!
Doing so will
circumvent the tag file protection against node number
conflicts! Always
use the DESQview EXIT command, then the Open Windows
command to re-start
the node using NODEx.BAT.
You may also run
NODEx.BAT manually, but it's generally safer to use
DESQview to open
all nodes for you.
CRASH Recovery:
===============
There are 2
potential type of crashes:
1) A Single node
crashes, requiring you to use the DESQview Close Window
command.
In this case, CAT.BAT doesn't have a chance
to delete the NODEx.UP tag
file.
Any further attempt to re-start the node via NODEx.BAT will
fail because of this.
Single Node Crash Recovery:
--------------------------
If NODEx.BAT calls out a node conflict,
first VERIFY that another
copy of the node is Not running.
Once you have verified this is indeed the
case, use FIXNODE.BAT to
automatically delete the correct NODEx.UP
tag file immediatly after
NODEx.BAT detects the error.
You may now restart the node using either
the DESQview Open Window
menu (be sure to EXIT the current window
first) or by manually
re-running NODEx.BAT.
2) A full system
crash where Everything comes to a halt.
You never know when the dog's tail will hit
the power plug, or when your
two year old might discover that PC's BEEP
whenever the reset button
is pushed (true story!>.
In this case, ALL the currently running
NODEx.UP tag files will exist.
Earlier I told you to ignore the CALL
KILLTAGS.BAT command in the
AUTOEXEC.BAT file. Now is the time to un-ignore it.
Review the AUTOEXEC.BAT file again, and
then read the KILLTAGS.BAT
file below. Everything should make sense now!
@echo off
rem C:\WC30\KILLTAGS.BAT
echo
echo Deleting ALL BBS NODEx.UP tag files...
if exist c:\wc30\*.up del c:\wc30\*.up
echo
echo BBS tag file cleanup completed.
echo
MAKEWILD
Considerations:
========================
You need to set
item #14 in the MAKEWILD General Definition screen to:
14. Auto determine
node ID : N
and item 16 to
16. Network
type : DOS
Share
WCMODEM
Considerations:
=======================
You need to create
a UNIQUE .MDM for each node, even if you have all the
same brand of
modem. The reason for this is that the
.MDM comm port
assignment
OVER-RIDES the WCPORTID variable.
If you have 3
HST/DS modems running on COM1-COM3 suggested file names
would be DS1.MDM,
DS2.MDM, DS3.MDM etc... Be sure to
specify any
special IRQ and
address information etc...
Only YOU can
prevent two nodes from fighting over 1 modem.
If you do
get two nodes
trying to use the same modem, the LAST node that "talked"
to the modem will
"own" the device. All other
nodes will be unaware
that the modem is
no longer theirs to use and will merrily Wait for
Calls until
doomsday.
The Short List to
MultiNode Operation:
======================================
0) Set up QEMM and LOADHI properly using
OPTIMIZE and MANIFEST.
1) Copy all the *.TMP files to their proper
directories. Each file has
the proper location included in the
file. Rename these files as
required.
See the PLZ-READ.1ST file for the
directory specifications for each
.TMP file.
2) Edit all the NODEx.BAT files to indicate the
proper node numbers,
COM: ports and .MDM files.
3) Rename the NODEx.BAT file to reflect it's
proper node number.
4) Install N1, N2, Nx... into the DESQview Open
a Window menu.
5) Add a {DESQ}N3{DESQ}N4 etc... to the
DESQVIEW.TMP file if you want
to autostart more than N1 and N2.
6) Use Convert a Script to compile DESQVIEW.TMP
into DESQVIEW.DVS.
7) Restart DESQview, and all the nodes will
auto-magically start!
Conclusion:
===========
It wasn't exactly
easy, but your now well on your way to a robust multi-
tasking BBS
system. Hopefully all this information
will help you more
than it will
confuse you. Feel free to drop me a
note on any of the
BBS's listed in the
introduction.
Enjoy!
Allen Woolley, Sysop, Moonlit Knight (408)-244-3459
ADDENDUM
========
I have been
receiving messages like the one below requesting more help.
Most of the
problems folks are having can be solved by using OPTIMIZE and
MANIFEST together. Please read through the exchange of the two
messages
below for an
example of the potential problems and solutions you may run
into.
A.W.
----------------------------------------
From : DAVID ROSE Number : 568 of
572
To : ALLEN WOOLLEY Date : 11/15/92 11:06am
Subject : Comment
11/15/92 10:52am Reference
: NONE
Read : 11/17/92 8:41am (REPLIES) Private : NO
Conf : 000 - General Mail
Hello Allen,
I run a Wildcat BBS
in Mass. and am trying to setup Wc 3.55M with
DesqView. I'm having a hell of a time with it. Pulled out half of my
hair, and am
working on the rest this weekend! I
d/l'd your file -
MNODE10.ZIP from
the support board, and worked through it, without
success. It helped fix a few problems I was having,
but still can't get
this thing to work
properly. One question I had for you
was which
version of DesqView
you are using? I am running DesqView 2.42...
am
thinking of buying
DV/X but not sure if it's worth it or not at this
point. But would like to at least see this work
before I invest DV/X.
The problems that
I'm having:
1: After setting N1.Bat with a memory
size of 480k and answering
N to Can be swapped
out, the program won't load because I don't have
enough memory
available. I have 8 meg of ram on
board, I run a 1 meg
Ram Disk & 3
meg Cache (hyperdisk), but I still should have plenty of
memory, however it
seems to be trying to address the first 640k that I
have. I had to adjust it down to 438 to make it
run. That was the
largest memory I
could give it. However, when I set up
N2.BAT and then
try to swap from N1
to N2, DV says there is a non-swappable window in
the way. So I had to set it to Y and then it works
(kind of).
2nd problem, when I
try to switch from N1.BAT to N2.BAT it seems to take
a long time to load
and there seems to be a long of disk writes going
on. Any clue what might be causing that?
3. Once I have both
N1 and N2 up and running, if I have N2 in the
foreground, N1
refuses to answer the phone. It just
seems to stop
working. If I switch back it seems to work. I have both set up as you
suggest with 2
Ticks... My machine is a 386sx 16 mhz.
Not fast, but
should be able to
handle 2 nodes. All I really want to do
is run the
modem on Node1 and
be able to log on locally on Node2.
Just can't seem
to get it
done. If you have any hints about some
of these problems, I'd
appreciate you
letting me know.
I understand you're
probably out of town for the weekend, so I'll try
logging onto your
board sometime next week for an answer or, if you want
to send me E-Mail,
I have a FidoNet address
1:322/582. Thanks in
advance.
David Rose
----------------------------------------
From : ALLEN WOOLLEY Number
: 572 of 572
To : DAVID ROSE Date : 11/18/92 12:36am
Subject : Desqview
+ Wildcat Reference
: 568
Read : NO Private : NO
Conf : 000 - General Mail
David,
-> I run a
Wildcat BBS in Mass. and am trying to setup Wc 3.55M with
->
DesqView. I'm having a hell of a time
with it. Pulled out half of m
This WILL Work, we
just have to figure out what the heck is going on...
After reading this
ENTIRE reply:
Run the
C:\QEMM\TECHSUP.BAT file. This BAT file
uses Manifest to
basically dump
everything about your PC into a file called TECHSUP.MFT.
Upload this file to
me.
-> success. It helped fix a few problems I was having,
but still can't
At least your
making progress...
-> version of
DesqView you are using? I am running
DesqView 2.42... am
DESQview v2.42 is
running here very successfully.
-> thinking of
buying DV/X but not sure if it's worth it or not at this
Don't bother. I don't think the scalable DOS windows are
worth the
$$$, plus you take
a definate performance hit as well do to the bit
mapped
graphics. The extras (Like X-Windows
emulation etc...) co$t a
lot of $ to buy.
-> 1: After setting N1.Bat with a memory
size of 480k and answeri
-> N to Can be
swapped out, the program won't load because I don't have
-> enough memory
available. I have 8 meg of ram on
board, I run a 1 meg
Ok, this will be
easy to fix. Be sure to run OPTIMIZE at
least TWICE in
a row. Once you have done this, boot up Desqview
and see if Wildcat
starts running.
Regardless of
whether WC! runs or not, perform the following procedure
to determine what
QEMM memory INCLUDE statements your machine may
require to produce
large blocks of memory for TSR's to load into:
0) You need to
exercise EVERYTHING your machine is going to be doing
so QEMM can log
what memory areas are not being used between 640K and
1 meg. To do this:
1) Exit DV! back to
DOS.
2) Turn on your
Printer. Place a disk in all floppy
drives.
3) DIR A:
4) DIR B: (if
installed)
5) DIR/W>PRN
6) Start up Any
terminal program and issue an AT Z command to ALL
installed
modems. Quit the terminal program.
7) Boot up Windows
if you have it on the BBS PC.
8) Exit Windows.
9) If you have a
tape drive installed, access the tape (a DIR of the
tape is all that is
needed to exercise the tape drive) and then quit the
program.
10) Run Manifest:
A) Select QEMM-386
i) Select Analysis
a) Select List Mode (F3)
b) Print this screen out.
Take the Include
memory ranges called out by QEMM and add them to your
QEMM386.SYS command
like:
DEVICE=C:\QEMM\QEMM386.SYS
RAM ROM X=FE00-FEFF I=0400-0FFF I=DD00-DFFF
^^^^^^^^^^^ ^^^^^^^^^^^
Do NOT use the
values above! They are for demo
purposes Only!
QEMM can only take
one command line, so be sure to use an editor (like
MS-DOS EDIT) that
can write a line wider than 80 columns.
Add the I=
statements one or two at a time and then re-boot and test the
system for
stability. Some of the recommendations
QEMM calls out may
cause weirdness to
occur, so take your time and add those I= statements
in small batches.
Omit any I=
statements that cause the PC to flake out.
When you have
it all right,
you'll get a Manifest report similar to:
Memory Area
Size Status
0000 - FFFF
1024K OK
Once you have
figured out which I= commands will work on your PC, run
OPTIMIZE one more
time. I'll bet you that just about
everything will
now LOADHI
successfully, and you'll have 0 problems getting 500K+
Wildcat windows.
-> Ram Disk
& 3 meg Cache (hyperdisk), but I still should have plenty of
All that should run
fine, assuming you can get the BIG TSR's to LOADHI.
All your problems
are directly traceable to one or two BIG TSR's failing
to LOADHI.
If for some reason
you can't get everything to LOADHI, you can try
several strategies
to maximize your TSR's memory space:
1) Change the order
you load your TSR's in. Load the
biggest (as
determined by MFT)
first, then the smaller ones. After
changing the
load order, re-run
OPTIMIZE.
2) Simply don't
LOADHI the smaller TSR's (SHARE, ANSI) or any of the
FILES or
BUFFERS). Leave room for the BIG TSR's
first!
3) Give up all but
the TSR's your system really needs to run.
4) Use Manifest's
"First Meg- Programs" to see what RAM pig(s) is/are
failing to LOADHI
and take appropriate actions.
-> try to swap
from N1 to N2, DV says there is a non-swappable window in
-> the way. So I had to set it to Y and then it works
(kind of).
But the other node
gets off loaded to disk, and is no longer running in
the
background. That window is effectively
"frozen" and will no longer
talk to the modem.
-> 2nd problem,
when I try to switch from N1.BAT to N2.BAT it seems to t
-> a long time
to load and there seems to be a long of disk writes going
-> on. Any clue what might be causing that?
Yep, as mentioned
above, DV is swapping out the other node to disk, and
not multitasking.
-> 3. Once I
have both N1 and N2 up and running, if I have N2 in the
-> foreground,
N1 refuses to answer the phone. It just
seems to stop
-> working. If I switch back it seems to work. I have both set up as y
Yep, and now you
know why!
Try all this good
stuff out and let me know what happens!
Allen Woolley
Sysop, Moonlit Knight (408)-244-3459 TechNET