BBS.DOC    881220  AMIGA AMATEUR RADIO PACKET TERMINAL/BBS PROGRAM

* The program will be referred to as BBS, but you will find it as
* P1103.ASM (source) or P1103 (runable). P1103 means November 3, 1988.

   This is a program written in Assembly Language for the Amiga computer
to run PACKET radio as a backround task.  It uses the Amiga Serial port
to interface to a Terminal Node Controller (TNC).  The TNC is connected
to the Amiga thru a RS-232 serial cable, and to a VHF or HF radio thru
Receive audio, Microphone audio, and PTT lines.

   The terminal part should run on any TNC, but the BBS part will only
run on a KANTRONICS KPC-1, KPC-2, KAM, or KPC-4.  DUAL PORTING works with
the KAM or KPC-4.  See DISP files for parameters.

   NOTE: Stack must be set to 8000 or more. Suggest setting Stack 8000
and CD RAM:.  TNC ECHO must be turned on. This program will do its own
SERIAL port initialization and runs with HARDWARE RTS/CTS HANDSHAKING.

   SERIAL PORT:  (This for A1000.  A500 or A2000 may be different !!!)
DO NOT CONNECT ALL 25 WIRES !!!  Some have supply voltages.

AMIGA > TNC
    1 - 1  GND    AMIGA 6 (DSR) tied to AMIGA 20 (DTR)
    2 < 2  TD     AMIGA 8 (DCD) tied to AMIGA 21 (+5V) thru 1k resistor
    3 > 3  RD
    4 > 4  RTS    No other wires are connected.
    5 < 5  CTS
    7 - 7  GND

NOTE: Amiga pin 8 probably can be left blank.  I installed the pull up
resistor years ago and don't remember why(?).

   "RUN PBBS" will will bring up a full, borderless, window in non-
interlaced or interlaced mode.  Works well with overscan WB screen.
This window can be re-sized under AmigaDos 1.2 or made smaller and
moved to any part of screen.

   Function Keys: (As appear in window title line)

HELP Displays current status. ^=BBS active M=monitor mode on, B=BBS
     enabled, Capture filename, I/O baud rate, number of characters
     and lines in capture buffer.

F1 - Prompts for a file name that will CAPTURE communications to/from
     TNC to the named file. Default is to the current directory, but
     regular file names and paths may be entered, either to disk, RAM,
     or printer.  Note that PACKET has an internal 4k buffer that fills
     up first before dumping to capture file.
   - Hit F1 again to toggle closed CAPTURE file.

F2 - Prompts for a filename for a text file that you want to SEND to
     another station. File SEND will start immediately. TNC ECHO must
     be turned on for this to work.
   - Hit F2 again during SEND to cancel.

F3 - Sets BAUD to next lower rate. 9600, 2400, 1200, 300 bauds are
     available. Program defaults to 9600 baud. TNC ABAUD parameter
     must be the same as PACKET baud on Amiga.

F5 - Toggles MON mode. With M=OFF, Amiga looks almost like a dumb
     terminal and does character I/O.  M=ON causes line I/O and
     trashes much of the duplicate CALL>CALL,DIGI1,DIGI2 lines, and
     will only display full lines from TNC - TNC must echo a full
     line that you type before it will be displayed. This mode is
     used with Kantronics KPC with HEADERLN=ON in TNC.
     N3ET>KB3UD,K3WGV-1:                  CALL>CALL,DIGI:
     Hello fron Allentown, Pa.            Packet text

F6 - Opens a NEWCLI window. Remember this command when you GURU on
     another task.  Click in new window and save files, then re-boot.

F7 - After connecting to a station, BBS is forced on and forwards msgs
     that are for that BBS.  Then a F> is sent for reverse forwards.

F8 - Supposed to break into BBS connection to talk to user.  Code not
     completed yet, so DO NOT USE!!

F9 - Toggles BBS enable/disable, indicated by 'B' status with HELP key.
     With BBS disabled, you remain in terminal mode when someone connects.

F10- Same as WINDOWCLOSE gadget in upper left of window. Closes all
     open capture or send files, then quits.  NOTE: When BBS is active,
     F10 key will disconnect station (may wait for 4 minute timeout).


   NOTES: This is a borderless window to get the most on a screen.
You may at times get confused as to where the window starts and stops.
Suggest a full screen PACKET window, with other tasks running on top.
The WINDOWCLOSE, FRONT, BACK, RESIZE, and DRAG gadgets are all there,
but typically invisable - click on BACK gadgets in upper right to make
things visable again.  Note function key help in title line.

   When program is first run, CHARS/LINES will display starting and
ending addresses of the program in DECIMAL.  It will do this until a
CAPTURE file is opened.

   When SENDing a file, characters are sent to the TNC and program will
not send more characters until it sees them ECHOed back. This
program is set up for HARDWARE RTS/CTS handshaking ONLY.


------
SOURCE CODE
------

   Hey people!  The Assembly source code is included.  It was written by
me for me.  You will have a hard time with it, but play anyway.  Please
give it away or change it, or anything, but DON'T SELL IT OR THE PROGRAM.

   The source is complete. Nothing else is needed except ASMB and ALINK.
It assembles fast, but is somewhat inflexible.

   Put a copy of BBS.ASM in RAM: and do following:

ASMB RAM:BBS.ASM -o RAM:BBS.o
ALINK RAM:BBS.o to RAM:BBS
STACK 8000
RUN RAM:BBS ... then type F3 until baud is correct.

------
BBS operation
------

  BBS expects to find 7 files on a disk named B: and these files are
addressed:

 B:DIR  Maintains directory of messages that are sent.
 B:USR  Maintains user information.
 B:FWD  Used when forwarding messages.
 B:BID  Maintains list of $BIDs for bulletin dupe rejection.
 B:0    This is MY plug (N3ET) for AmigaBBS
 B:1    This is a list of BBS commands.  Give the user a break and keep
        it short - he needs help, not 20k of bullshit!
 B:2    This is your plug.  Tell the user about YOUR system.  This will
        eventually be the response to the future 'I' command for INFO.


 SYSOP entry of messages is quite poor at this time, but goes like this:

   Use ED to build a message.  Then save as say, B:4.  Type "L B:4" and
   note message length.  "ED B:DIR" and add new first line, mimic line
   below it:

   "   4 BN  12345 ALL    WB3KTW        8712312359 Hello all"
    ---- -- ------ ------ ------ ------ ---------- ---------
   "msg# PS LENGTH TO     FROM   @BBS   YYMMDDHHMM Title    "

  I know, you aint got ED, so your gonna have to wing it with your own
editor.  May I suggest that you have someone connect and send a message
or 2 and then have him KILL them.  Then take a look at B:DIR and the
messages.  You, as SYSOP, will have to duplicate what the BBS does if
you want to put a message in your system.


  In the B:USR file, clean it up every now and then by deleting the older
lines (one line must remain as a `seed'.  Format is:

WA3MNT  8712312359  0025     3  Randy
------  ----------  ----  ----  --------
CALL    YYMMDDHHMM  CONS  Nmsg  Name


  Never delete top entry in DIR or new messages will overwrite previous
messages.  If you want to force a BBS message to whoever you are connected
to, then change B:DIR line to "   4/PN  " etc.  The slash '/' tells the
BBS to forward this message when it receives F> (as in reverse forward) or
when you connect to someone and hit F7 key.

  NEVER CONNECT TO YOURSELF with BBS enabled !!  I never did this, but
expect to re-boot for this act of insanity.  The program aint that smart
to figure out whether you are typing or the TNC is sending something.

  Five WHATS and he is disconnected.  If the BBS doesn't understand a
user's command, it says  *** "R 1"   so the user should read message 1.
He is allowed 5 *** ERRORS and the BBS disconnects.


   Drop me a note on Amateur radio packet.  N3ET @ N3ET

   Randy Lilly  N3ET   (215) 791-3774
   752 S. Carldon St
   Allentown, PA 18103