home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Share Gallery 1
/
share_gal_1.zip
/
share_gal_1
/
HR
/
HR007.ZIP
/
NOTES.DOC
< prev
next >
Wrap
Text File
|
1986-01-18
|
29KB
|
776 lines
WA7MBL MailBox - Version 2.04 - 01/17/86
[These notes have not been updated to fully describe all of the latest
commands - Better documentation is coming!]
This is an adaptation of the W0RLI MailBox and GateWay for the IBM PC
series of computers and compatibles. The W0RLI system is written in
Z-80 assembly language for use on the Xerox 820 computer under CP/M.
Version 2.04 is released for the purpose of BETA testing to selected sites.
It is not intended for general distribution at this time.
Source code is NOT available at this time.
Jeff Jacobsen, WA7MBL
1400 E 900 N
Logan, UT 84321
I may also be contacted by the following methods:
BITNET - BOBW @ USU
Compuserve - 72446,2557
Phone - 801-753-0099
-------------------------------------------------------------------
Distribution is now being handled by:
Arizona Packet Radio Association (AzPRA)
PO Box 8642
Scottsdale, AZ 85252-8642
Phone: 602-947-0362 (Wes Morris, K7PYK)
602-946-8356 (Answering Machine)
UPS address: Wes Morris
7422 E McKinley St.
Scottsdale, AZ 85257
ACKNOWLEDGEMENTS
I used the following as a starting point for this translation:
W0RLI MailBox/GateWay - Version 10.2 - W0RLI
The W0RLI Mailbox Sysop Documentation - Revision 10.2.0 - WB2MNF
Log File Analyzer - WB7DCH
..........
The W0RLI system for the Xerox 820 was written by:
Hank Oredson, W0RLI
19 North Hill Road
Westford, MA 01886
..........
The SYSOP Manual was written by:
Jon Pearce, WB2MNF
109 Pine Cone Trail
Medford, NJ 08055
..........
The log file analyzer was written by:
Tom Hogan, WB7DCH
26911 S E 456 St.
Enumclaw, WA 98022
...........
The Tucson Amateur Packet Radio Corporation (TAPR) has helped support this
effort. If you are not already a member, I suggest that you join. (TAPR, Box
22888, Tucson, AZ 85734.)
I would like to thank Robert Wood, WA7MXZ for help in local testing
and for the use of his BITNET account.
I would also like to thank all Beta testers. A list of current beta
test sites will be included on the distribution diskette as SITE.DOC
Many of them made financial contributions which helped make this possible.
Finally, I would like to thank Randy Forgaard, a regular on the CompuServe
Borland SIG, for offering routines to solve problems associated with the
Turbo Database Access Tools.
RELEASE NOTES:
For the present time, I assume that all Users are familiar with the W0RLI
system. This documentation will therefore be quite skimpy and will mainly
detail the differences between this verision and the original W0RLI version.
To speed development of this system, I used the TURBO Access B-tree
routines available in TURBO DATABASE TOOLBOX from Borland International.
These routines are used to keep both the User records and the Mail
header records.
The mail messages themselves are kept as seperate files rather than
as one big file. This was also done in the interest of getting a
system up and running rapidly. It may prove to be a problem with a
large number of messages (it certainly would be a limitation if an
attempt was made to modify this code to run under CP/M.) The files
are stored under the names MSG00001.MAI etc. I have not yet written
anything to renumber the messages & files, so if you approach message
# 32000 too soon, you may find yourself in a bit of a bind.
To keep the mail and download/upload files seperate from everything
else, I recommend that each be placed in seperate subdirectories. The
path names for both may be specified in the BBSxxx.CNF file. The
sub-directories must exist, BBS will not create them.
I use the following setup (with the main program in a subdirectory
called \BBS) on my hard disk:
\BBS\
BBS.COM
BBSxxx.CNF
FWD.TNC
LOG.TNC
MESSAGES.DAT
MESSAGES.IDX
USERS.DAT
(etc)
\BBS\MAIL\
MSG00001.MAI
MSG00002.MAI
(etc)
\BBS\FILES\
BBS.DOC
GT851112.TXT
TNC2.MOD
(other user uploaded/downloadable files)
If you want the users to be able to download LOG.TNC, FWD.TNC, etc, place them
in the FILES\ subdirectory and set the files names in BBSxxx.CNF accordingly.
For the present, BBSxxx.CNF must reside in the current directory. If you want
users to be able to download it, you will have to place a copy into FILES\.
The recommended setup parameters for the TNCs are in .SET files,
TNC1.SET for a tnc1, TNC2.SET for a tnc2.
RELEASE NOTES (Cont):
The file BBSxxx.CNF is a text file that contains all site-specific
parameters. Edit it to have the proper parameters for your site.
'F' qualifier (applies to commands D, F, M, U and W)
When a remote user uses any of the file commands (D, U or W) the
"file" path from CONFIG.TNC will be added to the file name entered,
thus D BBS.DOC will refer to \BBS\FILES\BBS.DOC.
The path name is not added in sysop mode unless the qualifier 'F'
is specified, thus W will do a directory listing of the current
subdirectory (in my case \BBS) while WF will do a directory list of
\BBS\FILES (the same listing a remote user will get by typing just W).
The 'F' qualifier may be a 2nd qualifier in the case of the F or M
commands (ie FAF <msg#> <filname> or MPF W1XX <filname>).
Killed traffic does not generate a Service Message at this time.
Flags in User record for Local User, Mail Drop, and Call Back are
not used or set at this time.
Configuration file name may be specified on command line
BBS may be started with the command line BBS /a which will bypass the hit
any key prompt and go immediately into answer mode (use for batch file
start ups)
The W command has been modified to allow WN (Whats New) which lists only the
files that are new since the last log on. Perhaps it should be changed in
the future so the W command (like the L command) only lists what is new and
perhaps a WA (all) command is required to list all files (comments...??)
The W command also now lists free space.
The 'Is BBS' flag has been added to the user record. Users who have the Is
BBS flag set (Use the EU <call> command and enter a Y at the appropriate
question to set it) can do the following:
1 - Use the *** LINKED to <call> to change users
2 - Use the < FROM with the S command (ignored from non BBS stations)
3 - Max # of digipeaters is ignored for BBS stations
Also, allow connect from BBS only on TNCA or TNCB may be set in the Config
file (thus keeping non BBS stations off of one or both ports)
RELEASE NOTES (Cont):
CTS/RTS handshaking is used to/from the TNC.
Early versions of the TAPR TNC contain a 6551 chip which has a
problem with hardware handshaking: one character may get trashed
when it is told to stop sending.
If using only one TNC, it may be used on either COM1 or COM2.
The cable should have pins 1-8 and 20 connected. The same
cable (straight through) should work on both the TNC1 & TNC2.
Configure the TNCs as shown in the appropriate .SET file,
TNC1.SET for a tnc1, TNC2.SET for a tnc2. Note that several of
the parameters differ depending on which type of tnc you have
on the port. You can send the parameters to the tnc using
the BA or BB commands, for example BA TNC2.SET.
I have tried both the TNC1 and TNC2 v1 and both seem to work ok.
In one instance when downloading a file using a TNC2 on the BBS,
the TNC2 decided to stop handshaking correctly halfway through
the file transfer and hung the system. I could not duplicate
the problem later. I was using 9600 baud to communicate with
the TNC at the time.
System development was done on an IBM PC/AT under PC DOS 3.1
using TURBO PASCAL version 3.01A from Borland International.
The software uses interrupts for input from the TNC's. It also
uses timer tick interrupts from the PC. Thus interrupt vectors $0B,
$0C, and $1C are modified when the program starts. On most errors
the interrupt vectors are restored before the program is exited, but
it is possible that they will not be reset. If not restored, the
vectors will still be pointing to where the program used to reside and
if you try to run another program you may hang the system.
LOCAL COMMANDS
The following commands are on the local menu only. The local menu
also allows the same set of message commands as the remote menu.
See BBS.DOC for a list of remote menu commands.
B - Send a file to the TNC.
Qualifier: TNC to send file to (A or B).
Argument: Name of file to send.
C <call> - Connect to user.
D - Display a file.
Qualifier: P - Page mode. (local mode only)
U - List the user file.
2nd Qualifier: F - Use File path.
Argument: File name.
(Legal commands are D, DF, DP, DPF, and DU)
E - Edit a message header, or user record.
Qualifier: U - Edit a user record.
Argument: Message number or user call.
F - Make a file from a message.
Qualifier: A - Append to existing file.
2nd Qualifier: F - Use File path.
Arguments - <message number> <file name>
(Note: the 2nd qualifier may appear in place of the
qualifier or in addition, thus the following
commands are legal:
F 6 TEST.TXT create TEST.TXT in current subdir
FA 6 TEST.TXT append to TEST.TXT in current subdir
FF 6 TEST.TXT create FILES\TEST.TXT
FAF 6 TEST.TXT append to FILES\TEST.TXT )
G - Enable / Disable GateWay.
Qualifier: Y - Enable, N - Disable.
H - Toggle short / long local menu.
M - Make a message from a file.
See 'S' command.
Arguments: <call> <file name> [@ call]
(This also allows a 2nd qualifier of 'F' to specify
that the file is in the upload/download area.
Note: The case of MF will create a message with
a blank message type (normal) from the file area
rather than a message type of 'F'. MFF will create
a message type F from the file area. If you really
need to create a message type F from outside the file
area, you can always use something like MA to create
message type A, then edit the message header.
LOCAL COMMANDS - Cont
P - Enable Sysop Paging
Qualifier Y-Allow it N-Sysop not Available
P <call> - Display last connect path.
Q - Quit (return to DOS).
T - Go to terminal mode.
Qualifier selects TNC (A or B).
U - Upload a file from the console.
Qualifier: A - Append to existing file.
F - Use File path.
(UAF is an allowed form of this command)
X - Trigger an auto-forward.
Qualifier: I - Ignore times in FWD.TNC
Argument: If present, call of station to forward to.
Other entries in FWD.TNC ignored.
Y - Set file name - Allows switch of forwarding file.
Qualifier: F - FWD.TNC
Argument: <file name>
Z - Delete a file.
Argument: <file name>
Qualifier: F - Use File path.
REMOTE SYSOP
The commands D,E,F,G,M,Y,Z are available to the remote sysop.
@ - Switch remote user between the standard remote menu
and the remote sysop commands. Must have S privilege.
FILE LAYOUTS
The Configuration File - BBSxxx.CNF (xxx = current version #)
The file BBSxxx.CNF is a text file that contains all site-specific
parameters. Edit it to have the proper parameters for your site.
The form $x is a variable text field. The "$x" is replaced by
the current value for that text.
$A - @ BBS of the current message.
$B - Bell - insert an ASCII BEL (CTL-G).
$C - Next available message number.
$D - The current date.
$E - Version number.
$F - Clear Screen.
$G - TO of the current message.
$H - Hang at end of line (suppress carriage return).
Use at end of line only. DO NOT USE on lines that go to tnc.
$I - Users name, from user file.
$J - Date from current msg header
$K - Time from current msg header.
$L - Number of the last message.
$M - Message number from current msg header.
$N - Number of active messages.
$O - Call of system owner.
$P - FROM from current msg header.
$Q - (Unused)
$R - Call in a "connect request:" from either TNC.
$S - Call of the end node station connected via the slave TNC.
Seen initially in "*** CONNECTED to:" when the adjacent node
connects, may be seen in "*** LINKED to:" from the adjacent node.
$T - The current time.
$U - Call of the end node station connected via the master TNC.
Seen initially in "*** CONNECTED to:" when the adjacent node
connects, may be seen in "*** LINKED to:" from the adjacent node.
$V - Owners name.
$W - Wait to send - adds a SYN before CR so packet not sent.
Use at end of line only.
$X - Date user last logged in.
$Y - Time user last logged in.
$Z - Last message number when user last logged in.
FILE LAYOUTS
The Configuration File - Cont
If the following documentation varies from the version of BBSxxx.CNF
included on the distribution diskette, use BBSxxx.CNF as a starting
point. I may make last minute changes and forget to change this
documentation.
[Items marked UNUSED are included for use in future versions]
The first section (to the first *** EOF) is the short message of the day.
The next section (to the next *** EOF) is the Newuser message of the day.
The next section (to the next *** EOF) is the info text.
The next section (to the next *** EOF) is the short MailBox menu.
The next section (to the next *** EOF) is the long MailBox menu.
The next section (to the next *** EOF) is the short GateWay menu.
The next section (to the next *** EOF) is the long GateWay menu.
The next section (to the next *** EOF) is the short local menu.
The next section (to the next *** EOF) is the long local menu.
The next section (to the next *** EOF) is the remote Sysop menu.
The next line is your call.
The next line is your name.
The next line is the file name to use for the list of all calls heard
The next line is the file name to use for the auto-forwarding file.
The next line is the file name to use for the log file.
The next line is the file name to use for the "J" list save file
The next line is the path for files
The next line is the path for mail
The next line is the file name to use for mail headers.
The next line is the file name to use for the mail header index.
The next line is the file name to use for the user file.
The next line is the file name to use for the user file index.
The next line is YES to exclude users with illegal calls.
The next line is YES to exclude non BBS stations on TNCA.
The next line is YES to exclude non BBS stations on TNCB.
The next line is max # digipeats user can use on TNCA.
The next line is max # digipeats user can use on TNCB.
The next line is baud rate on COM1
The next line is baud rate on COM2
The next line is YES if TNCA is on COM1, NO if TNCA on COM2
The next line is YES if both ports have TNCs, "NO" if only TNCA
The next line is the "no activity" timeout in minutes.
The next line is the "waiting for disconnect" timeout in seconds.
The next line is the USER routine calling period. [UNUSED]
The next line is the maximum number of calls allowed in the monitor mode
calls heard list (CALLS.TNC) [decrease this if you have limited memory]
The next line is the number of calls on the recently heard 'J' lists.
The next line is YES to monitor beacons, NO to ignore them.
The next line is YES to recognize bells, NO to filter them.
The next line is YES is Sysop is available, NO to ignore chat requests.
The next line is YES to activate the GateWay code, NO to inactivate it.
The next five lines control logging. (what goes into LOG.TNC).
YES to turn on logging. Connects/disconnects logged.
YES to turn on GateWay event logging.
YES to turn on file transfer logging.
YES to turn on message event logging.
YES to turn on logging of local commands.
The next line is the "bye bye" message.
The next line is the header for the list of calls recently heard.
The next lines appear locally only:
The control character to use to kick user off system.
The control character to use to return from talk.
The control character to use to interrupt and go to talk.
The control character to use to take the MailBox off-line.
Message to send to console on entry to terminal mode.
Prompt if file exists. Erase and start new, or not.
Prompt before continue at end of page of output.
Prompt when enter terminal mode and user is connected.
Message when going into auto answer mode.
Message to send user when get *** LINKED to
The next group of lines (to *** EOF) is what to send the tnc to
turn it "off".
The next group of lines (to *** EOF) is what to send the tnc to
turn it "on".
The next group of lines (to *** EOF) is what to send the tnc to
put it in "remote sysop" mode.
The next group of lines (to *** EOF) is what to send the tnc to
remove it from "remote sysop" mode.
The next group of lines (to *** EOF) are the commands that will be
sent to TNCA at startup.
The next group of lines (to *** EOF) are the commands that will be
sent to TNCB at startup.
The next line is the beacon rate for the TNCA.
The next line is the beacon rate for the TNCB.
The next line is the beacon rate while the MailBox is in use.
The next line is the beacon to send when the MailBox is inactive,
or B E 0 for no beacon when inactive.
The next line is the beacon to send when the MailBox is active,
but contains no messages.
The next line is the beacon to send when the MailBox is active
and has messages. It will be followed by a list of calls of stations
who have unread messages.
The next line is sent to the console each time a menu is sent
to the user.
The next line is sent to the user when a connect request occurs.
The next line is the message to send when
you break into a MailBox session to talk to the user.
The next line is the response to the user when he wants to talk to you.
The next line is the message to send when
you do not respond to the request to talk.
The next line is the message to the console when the user wants
to talk to you.
The next line is the message to send when you are not available
to talk to the user.
The next section, one line per message, is the GateWay messages:
Message when GateWay not available.
Message going into unproto mode.
Message when user does not specify call for connect.
Message when attempting a connect.
Message when connect fails.
Message to master tnc when connect succeeds.
Message when connect attempt aborted by user.
Message to send to console at gateway menu.
Message to send to slave tnc on connect.
Message to send to master tnc on connect.
Message to send to local console while link in progress.
(Displayed about every 10 lines)
Message to send on incorrect # of paramaters.
The next section, one line per message, is the message and file prompts.
Prompt for call of addressee.
Prompt for title of message.
Prompt for message text.
Prompt for message number.
Message to send at login if user has new mail.
Message list header. Observe columns if change.
Line to pre-pend to a forwarded message.
Prompt to edit TO.
Prompt to edit FROM.
Prompt to edit AT BBS.
Prompt to edit TITLE.
Prompt to edit message status.
Prompt to edit TYPE.
Status message to send to console on startup.
Prompt for first name.
Minute of the hour to attempt forwarding.
Max # of calls in "unread mail" list.
YES to keep partial message (interrupted due to timeout or disconnect)
YES to enable auto-kill of messages auto-forwarded (NO leaves
the message with status set to 'F').
YES to generate a service message on KT. [NOT YET IMPLEMENTED]
Prompt for file name.
Prompt for file text.
Header for list of user records.
Prompt to delete user record.
Prompt to change user call in user record.
Prompt to change user SSID.
Prompt to change user privilege level.
Prompt to change user name in user record.
Prompt to specify this users tnc port (A or B).
Prompt to change user path.
Prompt to change "local user" flag.
Prompt to change "mail drop" flag.
Prompt to change "call back" flag.
Prompt to change "is BBS" flag.
Error message if trying to change callsign to another existing one.
The next section, one line per message, is the error/status messages:
Message for error in file name.
Message for I/O error.
Message for "can't find it".
Message for protection violation (tried to read private msg etc.).
Message for "file exists, and you can't erase it".
Message for timout.
Message for "I didn't understand the command you gave".
Message for done (command completed).
The final section (to the *** EOF) is the text for the help command.
FILE LAYOUTS
The Forwarding File (unchanged from W0RLI 10.2)
Automatic forwarding of messages to other MailBox systems.
The file FWD.TNC contains information that drives the
automatic forwarding of messages. If the file does not exist,
no forwarding is done. The file contains four kinds of information:
"F" or "G" lists are lists of stations for whom you should forward mail.
They are grouped by the call of the MailBox to which their mail
should be forwarded. The header of each list looks like:
Columns Data
1 "F" or "G"
2 TNC identifier. "A" = TNC on COMM port, "B" = PRINTER port.
3-4 Hour to activate forwarding to this station.
5-6 Hour to de-activate forwading to this station.
7-end The text to send to the TNC to do the connet.
A "G" list is the same as an "F" list, except the MailBox will
add "< FROM" when it sends the message. This is only compatible with
target MailBoxes running version 10.0 and above.
Forwarding will occur at the minute given in CONFIG.TNC, on those
hours given in FWD.TNC.
The "U" list is a list of your local users. These are the stations
that wish to receive mail at your MailBox.
"I" lists contain only the header line. These items trigger the
inquiry of adjacent MailBoxes for their local user list.
"P" lists are commands to be sent to the TNC. The character after
the P is which TNC (PA or PB). The list is terminated with
"*** EOF". One of these lists might preceed each "F" list to
set the TNC parameters to be used for the forward attempt.
There should be a "P" list at the end of the FWD.TNC file to
reset TNC parameters back to default.
In this release the "I" and "U" lists are not used. They are here
for future enhancement: the automatic construction of "F" lists
by downloading the FWD.TNC files from the remote MailBoxes.
The following is an example of FWD.TNC for W0RLI:
(Forward to K1BC every hour)
FA0023C K1BC VIA KD2S-1 <Function, TNC ID, Time, MailBox and path>
W1XR <Call of station whose mail should be forwarded>
N1AWX
K1BC
*** EOF <Marks the end of list>
PB <Set TNC params for K7PYK connection>
FRACK 6
MAXFRAME 2
*** EOF
(Forward to K7PYK only from 1200 to 0259 GMT)
GB1202C K7PYK <The next MailBox to forward to>
K7PYK
W7KB
*** EOF
(Inquire K1BC's FWD.TNC only between 0300 and 0359 GMT)
IA0303C K1BC VIA KD2S-1 <MailBox to inquire users from>
IB1200C K7PYK <Another MailBox to inquire users from>
PB <Set TNC params back to normal>
FRACK 4
MAXFRAME 4
*** EOF
U <Start of list of local users>
W0RLI
WB2OSZ
K1OJH
*** EOF
There is no limit to the number of lists or the number of
calls in each list. Your MailBox will do the connect and send the
messge onward. It will either delete it or mark it with 'F' status
depending on the setting of the YES/NO (Kill on forward) flag in
CONFIG.TNC. Auto forwarding is attempted each hour at the minute
specified in CONFIG.TNC, or when you use the "X" menu item.
The special call "*" (a single *) can be used to force the
forwarding of all mail not addressed to the system owner. This
could be used by someone who would like to run this software, but
would not like to maintain an active MailBox. They would get all
their own mail locally, but any mail deposited onto their system
would be automatically forwarded.
The forwarding of messages counts on the remote MailBox
behaving correctly. It must have a menu with '>' at the end
of the last line. The command for sending messages must have the
form "Sx call". It must prompt for message title, and then prompt
for message text. Message text is terminated by ^Z.
FILE LAYOUTS
Files used by the MailBox.
- Source Code (Not distributed at this time)
BBS.PAS - Main program.
CLKIBM.INC - Clock/Date routines (IBM specific)
BBSUSER.INC - Routines dealing with the user file
CNFIGVAR.INC - Declarations for variables loaded from Configuration file
IOIBM.INC - Character I/O routines (IBM specific)
BBSIO.INC - General Character I/O routines.
PARSE.INC - Command line parser
BBSMAIL.INC - Mailbox routines
CNFIG.INC - Routine to read Configuration file
DIR.INC - Disk directory code
LOG.INC - Logging routine
MISC.INC - Odds & Ends
FILEIO.INC - File I/O
FWD.INC - Auto-forwarding
GATE.INC - Gateway code
DIR.INC - Disk directory code
ERRHAN.INC - Run Time error handler
- Object Code
BBS.COM - The Mailbox
BBS.000 - The Mailbox (overlay file)
- Documentation
BBS.DOC - Description of how to use the MailBox (W0RLI called this
file DOC.TNC)
NOTES.DOC - Release notes, tech notes, installation notes, etc.
- Data files
BBSxxx.CNF - Text file. Configuration data, message of the day,
help command text, error message text, etc.
FWD.TNC - The routing tables for forwarding messages.
LOG.TNC - The station log.
MON.TNC - The saved "J" lists.
CALLS.TNC - List of all calls seen in monitor mode.
- The disk that is running the MailBox requires only:
PC/DOS 2.x or 3.x (or equivalent).
BBS.COM - The MailBox.
BBS.000 - The MailBox overlay.
BBSxxx.CNF - Configuration data used by TNC.COM
FWD.TNC - Routing tables, required ONLY if automatic forwarding
is to be used.
You must create a subdirectory if specified for the File area and
the Mail area.
The following files are created and used by the MailBox:
MESSAGES.DAT - The mail headers.
MESSAGES.IDX - The mail header index.
Mail messages are stored as individual files using the Mail path
specified in BBSxxx.CNF as MSG00001.MAI, etc.
USERS.DAT - The user database.
USERS.IDX - The user database index.
CALLS.TNC - Text file. List of all calls seen in monitor mode.
MON.TNC - The saved "J" lists.
LOG.TNC - The log file. A text file that contains the user log.
(events to be logged are specified in CONFIG.TNC)
Each line in the log file contains an event code, the date and time,
followed by further information about the event.
'C' - User connected to system.
'A' - User connected on TNC on COMM port.
'B' - User connected on TNC on PRINTER port.
'E' - Local user took MailBox off line.
'I' - Local user initial login.
'L' - User was linked via the station that just connected.
'G' - GateWay event.
'A' - Connection attempted and failed. Path shown.
'C' - Connection attempted and obtained. Path shown.
'E' - End of GateWay event, or use.
'S' - Start of GateWay use.
'U' - Entry to unprotocol mode.
'X' - Exit.
'A' - Local user put MailBox on line.
'B' - User said good bye.
'D' - User disconnected.
'E' - Excluded user attempted connect.
'F' - User forced off by system owner.
'Q' - Local user exited to DOS.
'T' - Timeout, forced disconnect.
'F' - File event. Command line shown as user entered it.
'M' - Message event. Message number always shown.
'F' - Message has been forwarded. Connect path shown.
'K' - Message has been killed.
'L' - Message headers listed.
'R' - Message has been read.
'S' - Message has been sent.
'E' - Run time error.