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