
From:  W6GO
To:    SYSOPS
Date:  10-Apr-92
Subj:  EXPERIMENTS WITH G8BPQ CODE

INTRODUCTION:
I have been experimenting with the G8BPQ code whenever I have had
some spare time.  To familiarize myself with the code, I decided
to first attempt to run a "NetRom" replacement using a PK-232.
This was a real eye-opener.  Then I progressed to a PacketCluster
node using the PK-232.  I've actually had four users on the node
and a node-to-node connect all on the PK-232 with zero problems.

As you may learn from reviewing the documentation, it is very
fragmented and different fragments are based on different
versions of the code.  If this were a commercial piece of
software, it would cost lots of money, and we would have the
right to complain about the documentation!  However, it is free
software (as long as we use it on Amateur Radio) so we are
obliged to try to help the situation rather than complain.
Here's my start on doing my part.  My information is also
fragmented, in keeping with the rest.

I've thrown this file together so as to share my experiences, and
I hope that you will find something here of use to you.  I've run
out of time (just before the Visalia convention) and won't even
properly proof-read this before posting it, so in keeping with
the spirit of this code, if you find something wrong here don't
complain, just issue your own document for everybody else to
read!

Good luck.....




RUN BPQCFG.EXE OFTEN:
One of the first things I learned is that you must reboot your
computer each time you make a change to the BPQCFG.TXT file.  One
of the suggested batch files I have seen actually runs the
BPQCFG.EXE program each time the BPQCODE is loaded.  This is an
excellent idea.  It only takes a moment for the BPQCFG.EXE file
to run, and you are always assured that the BPQCODE you are
running is configured to the latest iteration of your BPQCFG.TXT
file.   (BPQCFG.TXT is the text file you prepare which sets all
of the parameters, etc, in the BPQCODE... However, BPQCFG.EXE
must be run first, making an intermediate file that BPQCODE can
read)



SAMPLE BPOQCFG.TXT:
I've included my BPQCFG.TXT file.  It is for running a PK-232 in
KISS mode on COM1 of my computer.  The TNCPORT entries are NOT
required and may be deleted.  It is at the end of this file.



PK-232 KISS MODE:
To put the PK-232 into KISS mode, you first bring it up at 9600
baud using a communications program (I use Procomm+) at 9600
baud.  RESTART the PK-232 so that you know it is running factory
parameters.  The PK-232 tech manual says that you enter KISS mode
by giving the following commands to the PK-232:

XFLOW OFF
AWLEN 8
PARITY 0
RESTART
CONMODE TRANS
TRACE OFF
HID OFF
BEACON EVERY 0
PACKET
RAWHDLC ON
HPOLL OFF
PPERSIST ON
KISS ON
HOST ON

You will find that most of these are not needed, and that the
HOST ON command does nothing as you are in KISS mode at the time
you type it.  I found that for my PK-232 I only had to put in the
CONMODE, RAWHDLC and HPOLL commands before turning KISS on.

Once the PK-232 is in KISS mode, the TNC "smarts" come from the
BPQ code, not from the PK-232 firmware.



NEED MORE THAN 31 CONNECTIONS?  NEED TWO DEDHOSTS?:
If you are running two TNCTSRs for two or more DRSI cards, you
will want to load two DEDHOST programs to replace the TNCTSRs.
In the README.1ST file with BPQ405, John says that you should not
use the first BPQ port with PacketCluster.  This reduces
PacketCluster's TNC/1 to 31 connections.  To keep things simple,
I opted to also make the second TNC 31 connections.  Yes, they
all work through the one PK-232!  (Of course, you can replace the
PK-232 with any other TNCs as you specify in your PORT
information in BPQCFG.TXT).

If you load two DEDHOST TSRs, you may make outgoing connections
on either one, usually starting with port 31 and working down.
Incoming connections will start with the first BPQ port and go up
until it is full, then will start on the lowest stream of the
next TNC as seen by PacketCluster.


DEDHOST PROBLEMS:

There are three problems here.  One is that if you have outgoing
connect scripts, if you use the same TNC as the incoming connects
you won't be able to get a stream to call out on if they are all
busy!  The second problem is that there is a problem making
outgoing connects on the second TNC!  If I try to make an
outgoing connect on streams 17-31 of TNC/2  It crashes the
computer.  Example: ATTACH/2 32 W6GO <ENTER> F1 and the computer
locks up.  The third problem, reported by K4CEF, is that the high
streams in TNC/1 seem to drop incoming connects in a random
fashion, sometimes leaving the user connected but not sending any
data.  I have concluded that this is a contention problem, with
incoming and outgoing connects contending for the same stream.

Here's how you get around these problems.  Your batch file that
runs BPQ and PacketCluster should look like this:



BATCH FILE TO RUN PACKETCLUSTER:

BPQCFG.EXE
BPQCODE.EXE
SYSOPH.COM 1 RESIDENT
DEDHOST.COM 31 2 1 35 254 N
DEDHOST.COM 31 33 1 35 255 N
PACKCLUS.EXE C

Load SYSOPH.COM on BPQ port 1, as you don't want to use port 1
for PacketCluster anyway.

The first DEDHOST is placed on software interrupt 254 which is FE
hex.  This makes it TNC/2 in PacketCluster.  It uses BPQ ports 2-
32, so the first 31 incoming connects will come in here and
PacketCluster will see them on TNC/2.  As there is no known
problem with incoming connects on TNC/2, this is an ideal
situation.  You make all outgoing connects on TNC/1 which is the
second (255) DEDHOST.  As outgoing connects will start with
stream 32 and work down, you won't run into contention problems
with incoming connects until you have 62 total connections.



SYSOP.DAT FILE FOR PACKETCLUSTER:

The SYSOP.DAT for this example system is as follows:

disable/screen
SET/TNC1 DRSI 31
SET/TNC2 DRSI 31
enable/screen

Thats it!  The disable and enable screen statements fix the
SYSOPs screen so that it doesn't get blown away when
PacketCluster is trying to initialize the DRSI TNCTSR that isn't
there.  They only have cosmetic value and are only needed to fool
the SYSOP into thinking that the junk on the screen is not a
problem.


BPQ FUNCTIONS:

There are several displays that you will want to access in the
BPQ code.  These are the MH (heard listing), LINKS, STATS and
USERS displays, to name a few.  You can assign these to function
keys in PacketCluster, and here's how to do it:

For example, to use F7 to see the MH display, first assign the F7
key to run a MH command file.  The file is called MH and is
placed in the \PACKCLUS\CMD subdirectory.  It is three lines, as
follows:

disable/monitor
disable/screen
connect mh

This file turns off monitor and screen, then runs a connect
script called MH.  This is a file called MH.CON which is placed
in the \PACKCLUS\CONNECTS directory.  It is as follows:

port 1
getstream
input attach %stream
input %ESCc switch
input mh 1
waitfor-1-abort xyz
abort
input %ESCd
input %ESCd
input release/abort
exit

This file establishes a connection to the BPQ switch, sends the
MH command, waits a second, and aborts the connection.  It leaves
the MH display on your screen.  Of course you have to turn
monitor and screen back on when you are through looking at the
display, but you can always do that with another function key.

I've asked AK1A to build in this sort of functionality which
would dump the display into a window so you could scroll it if it
is too big for your screen, but one thing at a time!



OUTGOING CONNECTS:

When PacketCluster is running, to make an outgoing connect to
user W6GO, type the following:

ATTACH/1 30 W6GO  (assumes stream 30 is not in use)
ESCcSWITCH        (actually you can type ESC c and a space)
C W6GO            (once you are in the switch it is like a NetRom
F1                (after the connect is established)



INCOMING CONNECTS:

If a user connects to the "BBS" call or alias as shown in the
BPQCFG file, he won't even know that there has been a change.  If
you also define the NODE call, a user may connect instead to the
BPQ switch, but that's another story!


MY TEST BPQCFG.TXT FILE for WA6RGA PACKETCLUSTER NODE:

HOSTINTERRUPT=127
EMS=0
DESQVIEW=0
NODECALL=W6GO-7
NODEALIAS=DXY
BBSCALL=WA6RGA
BBSALIAS=RL
IDMSG:
Network Node (DXRL)
***
UNPROTO=
INFOMSG:
DXPSN - InfoMsg text
***
CTEXT:
DXPSN - Ctext
***
OBSINIT=24
OBSMIN=0
NODESINTERVAL=0
IDINTERVAL=0
BTINTERVAL=0
L3TIMETOLIVE=18
L4RETRIES=3
L4TIMEOUT=240
L4DELAY=10
L4WINDOW=4
MAXLINKS=64
MAXNODES=5
MAXROUTES=5
MAXCIRCUITS=128
minqual=50
BBSQUAL=254
BUFFERS=255
PACLEN=236
TRANSDELAY=1
T3=180
IDLETIME=0
BBS=1
NODE=1
HIDENODES=0              
ENABLE_LINKED=N
TNCPORT
     COM=1
ENDPORT
TNCPORT
     COM=2
ENDPORT

PORT
        ID=PX-232 1200 baud
     TYPE=ASYNC
     PROTOCOL=KISS
     IOADDR=3F8H
     INTLEVEL=4
     SPEED=9600
     CHANNEL=A
     QUALITY=0
     MAXFRAME=4
     TXDELAY=350
     SLOTTIME=100
     PERSIST=30
     FULLDUP=0
     FRACK=6000
     RESPTIME=2000
     RETRIES=10
     PACLEN=254
        VALIDCALLS=W6GO,WA6FZL

ENDPORT


ROUTES:
***
APPLICATIONS=DXZ,,*SYS

