Back to home page







				JetBBS Version 5.0
			     System Operator's Manual
				 Documentation by
		Troy Beckstrom, Jason Haskins, and Dan Sanderson.
           Copyright (c) 1993-1996 Troy Beckstrom. All Rights Reserved.


	      %%%%%%%		   %%%%%%%%%   %%%%%%%%%%      %%%%%  %
		%%%	       %    %%%%  %%%	 %%%%  %%%    %%%  %%%%
	       %%%	      %%    %%%	  %%%	 %%%   %%%   %%%    %%%
	       %%%	     %%%    %%%	  %%%	 %%%   %%%   %%%     %
	       %%%    %%%% %%%%%%   %%%	 %%%	 %%%  %%%    %%%%    %
	      %%%    % %%%  %%%	   %%%	%%%	%%%  %%%      %%%%
	      %%%   %% %%%  %%%	   %%%%%%	%%%%%%	       %%%%
	      %%%  %%  %%   %%%	   %%%	%%%	%%%  %%%	%%%%
	      %%%  %% %%%  %%%	   %%%	 %%%	%%%   %%%	 %%%%
	     %%%  %%%%%	   %%%	  %%%	 %%%   %%%    %%%  %	  %%%
	 %%  %%%  %%%	   %%% ___%%%	 %%%   %%%    %%%  %	  %%%
	%%%  %%	  %%%	%  %% /\  \%%	%%%%   %%%   %%%%  %%	  %%%
	%%  %%%	  %%%  %  %%%/	\  \   %%%%   %%%   %%%%  %%%%	 %%%
	 %%%%	   %%%%	   %/	 \  \%%%%    %%%%%%%%%	  %   %%%%%
			   /\	 /  /
			  /  \	/  /
			 /    \/  /
			 \    /\  \
			  \  /	\  \
			   \/	 \  \
			    \	 /  /
			     \	/  /
		      ___     \/  /	___
		     /\	 \	       /\  \
		    /  \  \	      /	 \  \
		   /	\  \	     /	  \  \	    ___
		   \	/  /	    /\	  /  /	   /\  \
		    \  /  /	   /  \	 /  /	  /  \	\
		     \/	 /	  /    \/  /	 /    \	 \
				  \    /  /	 \    /	 /
				   \  /	 /	  \  /	/
				    \/	/	   \/  /


			      Table of Contents
	Chapter 1 - Introduction.....................................4
	   System Requirements ......................................4
	   How To Contact Me ........................................4
	Chapter 2 - Installation.....................................6
	Chapter 3 - Customizing Text Files...........................7
	Chapter 4 - Configuration....................................8
	   BBS.INI Configuration File ...............................8
	   Introduction to MNU Files ................................9
	Chapter 5 - Advanced Features...............................11
	   Door Programs ...........................................11
	   Daily Events ............................................12
	   Multi-Line ..............................................12
	   Windows .................................................14
	   Running A Pay System ....................................15
	   CD-ROM Support ..........................................16
	Chapter 6 - Utilities.......................................17
	   IMPORT Utility ..........................................17
	   MSGFIX Utility ..........................................17
	Chapter 7 - Fixing Modem Problems...........................19
	   Common Problems and Suggested Solutions .................20
	   Modem Init Parameters ...................................23
	Chapter 8 - Using the BBS...................................24
	   Using the Message Base ..................................24
	   Sub-Boards ..............................................26
	   E-Mail ..................................................26
	   Auto-Message, Board-News, and Logon Messages ............27
	   Borderlines .............................................27
	   File Transfers ..........................................27
	   BBS Phone List ..........................................27
	   Userlog Menu ............................................28
	   Message Base and Userlog Scrolling ......................28
	   Access Level ............................................29
	   Sysop Function Keys .....................................29
	Chapter 9 - MNU Tutorial....................................31
	   MNU File [menu] Block ...................................31
	   MNU File [do] Block .....................................34
	Chapter 10 - MNU %variable% Replacement Keywords............35
	Chapter 11 - MNU Command Reference..........................39
	   Auto-Message ............................................39
	   Bank ....................................................39
	   Borderlines .............................................41
	   Doors ...................................................41
	   Goto ....................................................43
	   Logoff ..................................................44
	   Mail ....................................................44
	   Message Base ............................................45
	   Miscellaneous ...........................................46
	   Multi-Line ..............................................48
	   Phone List ..............................................49
	   Print ...................................................49
	   Sub-Boards ..............................................50
	   Sysop ...................................................51
	   Transfers ...............................................53
	   Userlog .................................................54
	   Voting Poll .............................................55


        Chapter 12 - Software License ..............................56
        Registration Form ..........................................57
        Index ......................................................58



















































				    - 3 -


			     Chapter 1 - Introduction
	JetBBS is a fully featured, yet easy to use shareware bulletin
	board system.  Its strong points include:
	    - Highly configurable.  Like a BBS construction kit that is
		already put together for you.  You can change almost
		anything to the way you want it.
	    - Quick to install and easy to run.  JetBBS is designed to be
		able to run on its own without requiring sysop attention.
	    - Multi-line capability, including multi-user chat.  Even if
		you only have one line, you can use this feature to log
		on locally while the BBS continues to take calls.
	    - A conversion utility that can import the message base from
		almost any other BBS software.
	    - Sub-Boards, so users can run their own mini-BBSes.
	    - File transfers, with tagged batch downloads.
	    - Support for four door protocols: DORINFO1.DEF,
		CALLINFO.BBS, CHAIN.TXT, and DOOR.SYS.
	    - Optional credit system with 8 built in casino games.
	    - Voting polls.
	    - QWK mail and message packets for offline reading, and
		upload of REP packets for responding.
            - Easy to use full screen message editor.
	SYSTEM REQUIREMENTS
	    An IBM compatible computer
	    A hard drive
	    At least 640k of RAM
	    A modem
	You'll need to be running MS-DOS, or an operating system that can
	emulate DOS, such as OS/2.  To run multiple lines, or to log on
	locally while the BBS is running, you need a multitasking
	operating system.  JetBBS has been tested thoroughly on Windows,
	and a JETBBS.PIF file is included for that purpose.  It has also
	been running BBSes on DESQview and OS/2 Warp.
	HOW TO CONTACT ME
	I will be happy to answer your questions and help fix any problems
	you are having.  Please include your BBS's name and phone number
	if you have one, and your mailing address or internet e-mail
	address so I can respond if you are long distance.  For the
				      - 4 -


	quickest response, call the support BBS and post a message in the
	JetBBS Support room, where other sysops may be able to help.
	I can be reached by e-mail at:
	     [email protected]
	     account #2 at Dimension Nine Support BBS,
		206-LAB-TEAM (206-522-8326) or 206-522-3980
	Or by paper mail:
	     Troy Beckstrom
	     2318 Second Avenue #492
	     Seattle, WA 98121







































				      - 5 -


			     Chapter 2 - Installation
	To install JetBBS, you need to have the files JETSETUP.EXE and
	JETBBS.DAT.  Type "JETSETUP" to begin the installation program.
	After you have completed the setup process, you need to create an
	account for yourself on the BBS.  You should be the first person
	to log on after running the setup program because the first
	account will already be set at a Sysop level and feedback will be
	directed there.  To create an account for yourself, run "JETBBS
	LOCAL" and log in as "NEW".  After entering all the information,
	you will be placed at the main menu.










































				      - 6 -


			Chapter 3 - Customizing Text Files
	This section will explain what help files are and guide you
	through the process of customizing them to modify the appearance
	of your BBS.  Help files usually contain a list of options that a
	user may select from at a menu.  Besides editing the help files,
	you can also edit and personalize the text files that will be
	displayed upon logon and logoff as well as the new user
	information file that will be displayed to new users when they
	type "NEW" upon connecting with your board.  You may either use
	the editor included with the BBS program, or any other text editor
	you prefer.  The text and help files are contained in the TEXT
	directory.  The following are the text and help files that you may
	edit.  NEWUSER.TXT, LOGON.TXT, and LOGOFF.TXT should be edited,
	but all others are optional.
	\BBS\TEXT\NEWUSER.TXT (Text file displayed to new users)
	\BBS\TEXT\LOGON.TXT   (Logon message displayed upon connect)
	\BBS\TEXT\LOGOFF.TXT  (Logoff message displayed when logging off)
	\BBS\TEXT\MAIN.HLP    (Main Menu help file)
	\BBS\TEXT\MSG.HLP     (Message Base help file)
	\BBS\TEXT\SUB.HLP     (Sub-Board help file)
	\BBS\TEXT\BANK.HLP    (Bank/Casino help file)
	\BBS\TEXT\POLL.HLP    (Voting Poll Help file)
	\BBS\TEXT\USERLOG.HLP (Userlog help file)
	If you choose to use the editor included with the BBS, press [*]
	to go to the Sysop menu, and then [+] to receive a menu of edit
	options.  Press [T] to edit the help files.  All files that are
	displayed to users will be included in the listing of available
	choices.  You might want to go into each one and change "JetBBS"
	to your BBS's name to make things more personalized.  You may
	alter the physical appearance of any of the ".HLP" or ".TXT" files
	in any way you wish.  It will have no repercussions on what
	commands you may access from that menu.
	You should be especially sure to edit NEWUSER.TXT which is
	displayed to a new user after they log on and type "NEW" as well
	as the LOGON.TXT and LOGOFF.TXT which are displayed to the users
	upon logging on and off your board.  The NEWUSER.TXT should
	contain information about what you expect out of the users, and
	what your policies and requirements are on the BBS.  While in the
	editor, you may use escape at any time to return to a listing of
	files you may edit, or to the BBS.
	You can also use the BBS's built in message editor to edit text
	files.  Its advantage is that it can also be used from remote (if
	RemoteSysopPassword has been set, more on this later), but since
	it can't use direct screen writes, it's not as easy to use as the
	non-modemable editors.  To use it, press [E] in the sysop menu and
	give it a filename, such as "TEXT\NEWUSER.TXT".



				      - 7 -


			    Chapter 4 - Configuration
	BBS.INI CONFIGURATION FILE
	The BBS.INI file contains many useful and easy to change
	configuration options.  This is one of the first files you should
	view and change to suit your needs after entering the BBS for the
	first time.  There are complete descriptions under each command in
	the BBS.INI file which list the possible configurations for each
	setting, so modifying this file is extremely easy.  To aid you in
	editing this file and determining which configurations you may
	want to modify, we will include several examples and elaborate on
	some of the available settings.  To view or edit the BBS.INI file,
	enter the sysop menu, press [+] and then select [I] from the list
	of options.
	The BBS.INI file is broken up into two parts.  All lines with a
	semicolon (";") in front of them are comments inserted in the file
	to aid you in the configuration of the file.  Everything else in
	the file is an actual command.  If you wish to prevent a line in
	the file from being read, you may place a semicolon before it, and
	the line will ignored.  This may useful if you wish to disable a
	command or interject a note somewhere in the file.
	There are several lines in the BBS.INI file which you may wish to
	change.  Regardless of whether you are interested in changing any
	of the things that we mention, you should at least browse through
	the BBS.INI file to see all the options that are available.
	JetBBS can filter out the escape character, which is the first of
	several characters in a series which produce cursor movements and
	colors on the screen.  These are generally called ANSI characters.
	The current setting in the INI file is to allow escape characters.
	If you would like to disallow them, change "AllowEscChar: 1" to
	"AllowEscChar: 0".
	Also included in JetBBS is the ability to limit the number of
	calls per day allowed at each access level and the amount of time
	allowed on-line at each access level per day.  These are
	particularly useful if you are running a popular file board or pay
	board and need to place restrictions on the amount of time or
	number of calls a user has on-line each day.  However, if you are
	running a message oriented board, you may not be as concerned
	about how long a user is on-line, or how many calls they make to
	your board each day.  In this case you may wish to raise the
	amount of time they have on-line as well as the number of calls
	allowed per day to a non-restrictive amount or even abolish all
	limitations.  The calls allowed per day at each access level as
	well as the time limit allowed at each access level per day may be
	modified in the BBS.INI file.  If you would like to disable them,
	you may place a semicolon before each line which will turn them
	off.  You may also disable time limits or calls per day for
	specific access levels and leave them intact for others.

				      - 8 -


	The Sysop menu can be accessed by any level 8 or 9 user, however
	JetBBS places a restriction on certain commands.  There are some
	commands in the sysop menu marked by an "(*)" that can access the
	file system directly, inside and outside of the BBS's directory.
	They are: Shell to DOS, Enter DOS Command, View Text File, Edit
	Text File, Edit Doors, and Edit Transfer Areas.  There are others
	that could be quickly and widely destructive to the BBS's data
	files.  To defend against remote access to these commands, there
	is a "RemoteSysopPassword:" field in the BBS.INI file.  If the
	password is left blank, as it is when the BBS is first set up, the
	commands cannot be accessed from remote at all.  Once you set a
	password, they can be used from remote by using the password.  In
	addition to protecting data, the password is also required in the
	Edit User and Delete User commands if the user being changed is
	level 8 or 9, or if a level 8 or 9 account is to be created.
	The remote sysop password serves as an added barrier of security
	beyond the level 9 access level required to access sysop commands.
	For most sysops, there is no need to make the whole computer
	potentially accessible through the modem.  You may want to have
	level 9 co-sysops who have full sysop control over the BBS, but
	not over the rest of your computer.
	The remote sysop password is not required for sysops logged in
	locally because the user at the local console could press [ALT+X],
	[CTRL+C], or [CTRL+BREAK] and instantly get a DOS prompt to do
	whatever they want.  Commands listed as access level -2 in the MNU
	files can only be used by the local sysop regardless of the remote
	sysop password.  Level -2 is mainly used for calling external
	programs that could not be used over the modem anyway.
	INTRODUCTION TO MNU FILES
	This section will explain how to alter MNU files which are located
	in the MNU  directory.  We will give an overview of MNU files so
	that you can get a feel of just how configurable JetBBS really is.
	If you would like an in depth look at the MNU files, you may refer
	to the reference section of this manual.
	The MNU files are divided into two sections; the "[do]" block and
	the "[menu]" block.  The "[do]" block contains commands that are
	executed when someone enters the menu.  The commands in the
	"[menu]" block execute when you press the proper key or enter a
	"/" command.  The syntax for commands placed in the "[menu]" block
	of a MNU file is:
	<key or "/" entry>,<command and arguments>,<level>,<print when key
	pressed>;
	One feature you may be interested in changing is the volume of the
	chat bell.  If the default chat bell is not loud enough, there is
	an alternate chat routine that you may use.  To implement it, you
	will need to load MAIN.MNU into a text editor.  You should either
	use [+] in the sysop menu or DOS's "EDIT".
				      - 9 -


	The line is normally:
	c,	chat,				    1,	Chat;
	Change it to:
	c,	chatloud,			    1,	Chat;
	Another menu you may wish to modify is FIRST.MNU.  After entering
	their usernumber and password correctly, this is the menu that
	users will automatically be sent to.  Any of the "print"
	statements may be altered in any way you wish.  You may change the
	order in which these commands are carried out and even change the
	menu that they are placed in to begin with.
	After a user goes through the process of logging on, they are
	normally placed in the main menu.  This can be altered so that
	users are placed into a different menu, such as the message base
	menu.  This may be ideal if you are running a message base board.
	To make this change, edit FIRST.MNU and change the line "GOTO
	MAIN.MNU" to "GOTO MSG.MNU."
	In FIRST.MNU and several of the other MNU files, you will notice
	%variable% keyword replacements.  When you place these "%"
	variables in your MNU files, they instruct JetBBS to retrieve
	information such as what access level a user has, what comport
	they are calling on, what baud they are connected at, as well as
	specific information about the user on-line.  There is a complete
	listing of all %variable% replacements in the reference section of
	this manual.
	STATS.MNU is displayed to users when they press [Y] in the userlog
	to view general information about themselves.  You may alter what
	will be displayed to them by editing the file and deciding what
	%variable%s you would like them to see when they access this
	command.
	For more on MNU files, please refer to Chapter 9.
















				      - 10 -


			  Chapter 5 - Advanced Features
	DOOR PROGRAMS
	JetBBS provides four door drop file (a.k.a. chain file) formats
	which allows it to use a wide variety of door games you may choose
	to put on-line.  It includes support for DORINFO1.DEF,
	CALLINFO.BBS, CHAIN.TXT, and DOOR.SYS.  Please refer to the chart
	below, which lists which drop file formats are compatible with
	which BBS programs.  Door games often request the name of a BBS
	program instead of the name of the drop file.
	    Drop file	   Other BBSes that use it
	    ----------	   -----------------------
	    DORINFO1.DEF   RBBS, QBBS, FoReM, TPB, T.A.G.
	    CALLINFO.BBS   Wildcat!
	    CHAIN.TXT	   WWIV, Telegard
	    DOOR.SYS	   Generic drop file used by many BBSes
	PLEASE NOTE: The drop files are not static files that you keep a
	copy of.  They are created in the BBS directory with current
	information about the user at the time the door program is run,
	and deleted when the door is finished.  You will not normally see
	these files.
	This section will explain how to set up a door program to run with
	JetBBS.  Included in the sysop menu, by pressing [6], is a utility
	which allows you to enter all the pertinent information such as
	the command line to execute, the key the user presses, and what to
	put in the help file.  After you give JetBBS the information, it
	will automatically place it into the DOOR.MNU file as well as the
	help file for you.
	Before setting up a door game to run with JetBBS, you must first
	unpack the door you wish to run.  It is best to unpack it into a
	subdirectory within the BBS directory.  For example, you would
	type "MKDIR \BBS\<dir>", where <dir> is the name of the directory
	you wish to create.  After unpacking the game, you need to read
	the documentation included with the game for instructions on how
	to set up the game.
	Each door game will vary in the way it has to be set up.  Some
	require you to run an installation program, and others will not.
	You will need to follow the instructions to create a batch file or
	edit an existing one that was included in the door game's archive.
	Some games automatically produce a batch file in any directory you
	specify.  If this is the case, tell the program to produce a batch
	file in the \BBS directory.  They may also ask which directory
	your BBS produces door files in.  Instruct them to look in \BBS.
	The batch file will need to "cd" to the proper directory, execute
	the door along with any additional parameters, and "cd" back
	afterward.  Make sure you create the batch file in the \BBS
	directory.  See the registration form if you would like to buy a
	disk full of door games, as well as batch files already set up to
	run them from JetBBS.
				      - 11 -



	You will need the following information to give to the door
	installer which may be accessed by pressing [6] in the sysop menu.
	    - The key you would like users to press to access the game
	    - What you want the BBS to print when they press the key
	    - Description of the game, or the line you would like to
		appear in the help file
	    - The DOS command to execute the game (This should be the
		name of the batch file)
	    - The access level required to play the game
	For additional information on setting up door programs, refer to
	the "door" section in Chapter 10.
	DAILY EVENTS
	Some door games require an event or maintenance program to be run
	each day to update statistics and reset the player files in the
	game.  If any games you have on-line require an event file to be
	run at midnight each day, then you need to create a batch file to
	run them.  The first thing to do is make a batch file to run the
	door game event file.  To do this, have the batch file "cd" to the
	directory, run the event file, and "cd" back.  You do not have to
	worry about drop formats, as it will be run in local mode when
	nobody is on-line.
	After you have created a batch file for each of the door game
	event files, make another batch file called EVENT.BAT.  Tell this
	file to run all the other event batch files using the syntax "call
	DAILY.BAT" where "DAILY.BAT" is the name of the event batch file.
	As you add more door games that require event files, you may
	create batch files for them and add them to the list in EVENT.BAT.
	You now need to edit your BBS.INI file and change the line
	"MidnightEvent:" to "MidnightEvent: EVENT.BAT".  EVENT.BAT will be
	run each day at midnight.  The following example is a standard
	maintenance batch file as well as a model of what EVENT.BAT should
	look like.
	Event batch file (EVENT.BAT):
	     CALL DAILY1.BAT
	     CALL DAILY2.BAT
	     CALL DAILY3.BAT
	Door game daily maintenance batch file (DAILY1.BAT):
	     CD GAMEDIR
	     DORMAINT.EXE
	     CD ..
	MULTI-LINE
	One of the impressive features that JetBBS boasts is the ability
	to run a multi-line board.  By using a multitasking operating
				      - 12 -


	system, you may run multiple JetBBS sessions at any given time.
	JetBBS has been tested extensively under Microsoft Windows 3.1,
	and Windows 95.
	Running under Windows, DESQview, or OS/2, JetBBS will detect the
	multitasker and yield unused CPU time back to it.  By doing this,
	the BBS only slows the rest of the system down when it's working
	hard, which is infrequent.  When it's waiting for a call, posting
	a message, or pausing for a key to be pressed, it's taking almost
	no CPU time.  With this feature, the BBS multitasks on Windows
	almost as well as the multitasking of a native-mode application on
	a fully multitasked operating system such as OS/2 or Windows NT.
	Even if you do not plan to run a multi-line board, it is
	convenient to be able to log on locally while another user is on-
	line.  This way you will not have to take the BBS down every time
	you want to log on from console.  Simply start a separate session
	and run "JETBBS LOCAL".
	If you plan on running a multi-line system, you need to first edit
	your AUTOEXEC.BAT file which is in your root directory and add the
	line "SHARE" to the end if it isn't there already.  It will take
	effect the next time you reboot.
	To take full advantage of the multi-line features, you need to
	have a ramdrive.  To create a ramdrive, place the line:
	"DEVICE=C:\DOS\RAMDRIVE.SYS 32 /E" in your CONFIG.SYS file which
	is also located in your root directory.  If this is not the path
	of your DOS directory, then substitute it in for "C:\DOS".  This
	will instruct DOS to create a 32k ramdrive using extended memory
	the next time you re-boot.  If you do not have more than 640k or
	memory, then do not use the "/E" switch.  The ramdrive will appear
	as the next unused drive letter, which is usually D: on most
	systems with one unpartitioned hard drive.
	After creating a ramdrive, edit BBS.INI and locate the line
	"RamDriveDir:".  Change it to "RamDriveDir: D:\" or whatever
	letter it turns out to be on your system.
	After specifying RamDriveDir, you will be able to use multi-line
	commands on JetBBS.  JetBBS will create a "lock" file on the
	ramdrive that will prevent a user from logging in on more than one
	line at a time.  Messages sent between users while they are on-
	line will be routed through the ramdrive.  The multi-line commands
	are:
	    /broadcast or /bc  Sends a message to all users currently on-
				 line.
	    /touch <user>      Sends a message to a specific user on-
				 line.
	    /who	       Displays all users that are currently on-
				 line, what comport they are connected
				 on,  what speed they are calling at, and
				 what menu they are in.
				      - 13 -


	    /talk [channel]    Goes into the multi-user chat area.  If
				 [channel] isn't specified, the default
				 is channel 0.  To have a private
				 conference with someone, pick a random
				 number from 1-9999 and use the /touch
				 command to tell the user you want to
				 talk with to enter that channel.
	When you create a ramdrive and set the BBS up to run as a multi-
	line system, a "lock" file will be created on your ramdrive every
	time a user logs on.  It will then be deleted when they log off.
	The file will be saved in the format "LOCK#.TXT", where the "#" is
	the caller's user number.  Sometimes if the BBS crashes, a
	LOCK#.TXT file gets left over and the system will say the user's
	account is still online when they're not.  Simply delete the
	LOCK#.TXT file to unlock it.  The lock file is also used by the
	"/who" command to see what accounts are logged in.
	Many new modems these days allow you to set the IRQ number,
	(Interrupt ReQuest, the control line the modem uses to get the
	computer's attention when it has incoming data) which can be handy
	for setting up a 3 or 4 line BBS.  It's best if each line has its
	own IRQ, but the way the IBM PC is designed, COM1 and COM3
	traditionally share IRQ 4, and COM2 and COM4 share IRQ 3.  You
	don't have to use these combinations if you have a modem that
	allows you to set the IRQ separately.  IRQ 5 and IRQ 7 are often
	used for modems.  IRQ 5 is for the 2nd printer port, which can be
	used if you don't have a second printer, and IRQ 7 is for the 1st
	printer port, which is ok to re-use for a modem while you're not
	printing something out.  Don't worry, experimenting with the IRQs
	can't break anything.  Use the command line switch "/i:#" to set
	the IRQ that JetBBS uses.  For example, to run on COM3 with IRQ 5,
	you would use the command line "JETBBS COM3 /i:5".
	There are a couple of common CPU hogs that you should watch out
	for.  One is screen savers, especially ones that draw things on
	the screen.  Screen savers are designed with the assumption that
	if there isn't someone sitting in front of the computer, the
	computer isn't busy so it's OK to waste all the CPU time.  This
	isn't true with a BBS because users can be using it remotely and
	have to compete for CPU time with a greedy screen saver.  Another
	CPU hog is windowed DOS sessions in graphics mode.  If you run the
	BBS in a window on the same screen as the graphical user
	interface, the operating system has to spend a lot of time to
	scroll the windowed screen, and these pauses will be noticable by
	users.
	MICROSOFT WINDOWS
	If you are multitasking under Windows, you will need to create a
	PIF file for each additional session of JetBBS you wish to run.
	To create another PIF file, enter the PIF editor and open the file
	JETBBS.PIF which is in the \BBS directory.  If you would like to
	create a PIF for an additional modem, click on "Optional
	Parameters" and enter "COM# baud", for example "COM2 14400".  Save
				      - 14 -


	the file as some other filename, such as JETBBS2.PIF, and  create
	a new icon in Windows to run it.  Two pre-made PIF files are
	provided: JETBBS.PIF, which uses the default COM port and baud
	speed, and JETLOCAL.PIF for you to log on locally.
	You can set the foreground and background priority of the BBS
	fairly high because the BBS has a special feature to detect
	Windows and yield back unused CPU time.  Since it gives back what
	it doesn't need, increasing the BBS's priority doesn't increase
	the amount of the computer's time that the BBS takes, just the
	upper limit on it.
	See the file WINDOWS.DOC for more important information on running
	JetBBS under Windows.
	RUNNING A PAY SYSTEM
	JetBBS is designed to be configurable as a pay system by allowing
	the sysop to sell usage time or credits for real money.  You don't
	have to give out both, however, because you can set up commands in
	the bank to exchange one for the other at some exchange rate.  The
	exchange rate does not have to be the same both ways.  View or
	edit BANK.MNU, which is located in \BBS\MNU, for more details.
	(press [*], then [+], then [M], then move the highlight bar down
	to BANK.MNU and press enter)
	To use time as the commodity on a pay board, first set the
	MinutesPerDay lines in BBS.INI to the daily freebie handout that
	will be given to non-paying users and to users who have run out of
	paid time.  This should be relatively low; just enough to allow
	them to get oriented with your board and see all the features
	available.  For paying users, use the [A] Add Time command in the
	sysop menu to give out usage time.  As long as their Time Left
	stays above the MinutesPerDay setting, it will not be reset by
	MinutesPerDay.  The MinutesPerDay setting only pulls people up
	when they are below it; those above it are left alone.
	To give free trial time to new users, set "NewUserBonusTime:" in
	BBS.INI.  Or, a more reliable method is to use the callback
	verifier that comes with the registered version to give free trial
	time to users when their phone number is verified, so they can
	only use their phone number once to get free trial time, and there
	will be more accountability because you'll have their real phone
	number on record.  You can also use the callback verifier to raise
	their level and give credits (registered version only).
	Some other settings in BBS.INI that might be of interest are
	RefundPostingTime, which controls whether posting messages costs
	time like everything else.  If posting time is refunded, it
	encourages users to post messages without the worry of using up
	their on-line time.  This is a good idea if you want to stimulate
	long quality posts.  Users will be willing to spend more time
	posting if they don't have to worry about paying for it in lost
	time.  The default is that posts don't cost time.
				      - 15 -


	PayCreditsForPosting controls whether posts are rewarded 25
	credits per line.  You might want to turn off PayCreditsForPosting
	if you'll be selling credits, so that real money will be the only
	way to get credits.  If you're worried that paying credits for
	posts will encourage garbage posts, you don't need to be.  There
	is an anti-instant-gratification feature built in that delays the
	payment by about 2 days, by which time you will have seen the
	posts and used "/sysop/u" to take away the delayed credits before
	they arrive.  But, if you'd still rather not give credits for
	posts, set PayCreditsForPosting to 0.
	CD-ROM SUPPORT
	The file transfer area can have a transfer section in any
	directory you give it, either by using the [7] command in the
	sysop menu or by editing XFERAREA.MNU and XFERAREA.HLP directly.
	The directory can be a directory on a CD-ROM drive if it has a
	FILES.BBS file in it, which the BBS can read and use for finding
	files to download.
	If you have a CD-ROM of files that doesn't have FILES.BBS or
	FILES.TXT index files in the directories, you can still create a
	transfer area in JetBBS for downloading from the CD.  Create a new
	transfer area on the hard drive like "CDDIR", then execute the
	following command:
	     DIR /S /B /A-D E:\ > C:\BBS\CDDIR\FILES.TXT
	Where "E:\" is the drive of the CD-ROM drive.  This DIR command
	only works on MS-DOS 6.0 (maybe 5.0) or higher, and creates a list
	of files not including directories, and including files in sub-
	directories.  You can add descriptions to the FILES.TXT if you
	want, as long as the filename is the first thing on the line
	followed by at least one space and then whatever descriptions you
	want.



















				      - 16 -


			      Chapter 6 - Utilities
	IMPORT UTILITY
	The IMPORT utility converts messages from another BBS and brings
	them into JetBBS's message base.  The messages to be converted
	should be in one big text file captured from the other BBS.  If
	the BBS you're converting from has a capture key for the sysop,
	you can turn it on, read all the messages on the message base,
	turn off the capture, and then use the capture file as the input
	to IMPORT.  If the BBS doesn't have a sysop's capture key, have a
	user call it up and use the capture buffer on his terminal
	program.  While you're capturing the messages, make note of a text
	keyword that is always present in the first line of every message
	header.  You need to get the case exactly the same.  The longer
	and more unique the keyword, the better.  Include the spaces if
	you can.  For example, "Msg #: ", with the trailing space, is
	good.  When you run the program, it will give you a list of good
	keywords to use for some of the more popular BBSes.
	When you run IMPORT, it will ask you four questions: The path and
	filename of the message text you just captured, the header
	keyword, the room to add the messages to, and the location of your
	message directory.  The imported messages will be posted in the
	room like new messages.  It should be OK to dump all the messages
	into one room, but in some cases the message accessing can get
	slow when there are too many messages in a single room, especially
	on a floppy drive or slow hard drive.  A disk cache such as
	SMARTDRV should fix the problem.  Another solution is to break up
	your capture files and put the messages in different rooms.
	If you started IMPORT from the same directory where you start
	JETBBS, and you haven't changed the default MSG directory in
	BBS.INI, and you're using a hard drive or a single floppy, type
	"MSG" for the location of your message directory.  In other cases,
	you should give the full path of your MSG directory.  On a two
	floppy setup, it's probably "B:\MSG".
	While the program is running, it should print the first line of
	all the headers that it is finding.  If it's not doing this, the
	keyword is probably wrong.  You'll need to go into your MSG
	directory, "cd" into the R# directory of the room you chose, and
	delete the giant message that got the whole input file dumped into
	it.  Then "cd" back up to where you were and try again with a
	different keyword.
	MSGFIX UTILITY
	The MSGFIX utility can usually recover your message base if it is
	lost.  Although the message base shouldn't ever get lost, we don't
	live in a perfect world.  There are two parts of the message base
	that must both be present for JetBBS to be able to read it.  There
	are the actual message files themselves that contain the message
	text, and the MSGLIST.DAT file that tells where each message is
	stored, who posted it, how long it is, what number it is, and what
				      - 17 -


	room it's in.  If either or both are lost, the message base is
	lost.  MSGFIX works in the case where the message text files still
	exist, but MSGLIST.DAT is lost or corrupted, by rebuilding the
	MSGLIST.DAT file.  It can't recover all the information that was
	in MSGLIST.DAT, but it can recover enough to make the messages
	readable again.  When you run the program it will tell you what
	the differences are between a reconstructed MSGLIST.DAT and the
	real thing.
	To run MSGFIX, first "cd" into your MSG directory.  Then, run
	MSGFIX.  If it doesn't find it, try ..\MSGFIX or give the whole
	pathname like C:\BBS\MSGFIX.  Read the warnings and then press
	space to continue.  It will show you the rooms and messages it's
	finding, so you can check that it's finding what you expect it to
	find, and then stop before it actually writes MSGLIST.DAT.  If it
	didn't show any room numbers, or didn't show the right ones, press
	[CTRL+C] to get out without writing MSGLIST.DAT, otherwise press a
	key to go ahead.




































				      - 18 -


			Chapter 7 - Fixing Modem Problems
	Before we begin, it is important for you to realize that modems
	are not all identical and standard.  They all say they are 100%
	Hayes Compatible, but this is wishful thinking.  The fact is that
	the majority of modems are used only for terminal programs to call
	out to BBSes, so as long as the subset of modem functions that are
	required for that is standard enough, most buyers are happy.  Even
	if the modem occasionally gets confused in some circumstances, the
	user is right there and can fix the problem.  Using a modem to run
	a BBS exercises many more of the modem's functions that are part
	of the Hayes standard, but not typically needed by terminal
	programs, so it is more likely to find bugs in the modem.  What's
	more, it has to work right every time and in every situation,
	because the sysop is not present all the time to give it a kick if
	something goes wrong.
	CHANGING MODEMS
	If you change modems after installing the BBS, you need to change
	the settings in BBS.INI to support the new modem.  One way to find
	out the correct settings is to install JetBBS to another directory
	and see what settings the setup program uses in the new BBS.INI.
	You can also change the settings by hand.  Here's how to choose
	the modem-related settings in BBS.INI:
	For 2400 baud and slower modems:
	     BaudRate: <the speed of the modem>
	     LockBaudRate: 0
	     ModemInitString1: AT Z
	     ModemInitString2: AT &D2 &C1
	     ModemInitString3: AT E1 Q0 X3 V1 S2=1 S0=1
	For 9600 baud and faster modems:
	     BaudRate: 57600
	     LockBaudRate: 1
	     ModemInitString1: AT Z
	     ModemInitString2: <depends on brand of modem>
	     ModemInitString3: AT E1 Q0 X3 V1 S2=1 S0=1
	Here's how to choose ModemInitString2 for high speed modems:
	   Genuine U.S. Robotics Sportster or Courier:
	       AT&F &H1&R2&B1&A3
	   Compaq, Intel, NEC, and various other miscelaneous re-branded
	   modems that used a standards-disregarding chipset:
	       AT&F \Q3 S95=1
	   Hayes and all others, U.S. Robotics Sportster Si, Vi:
	       AT&F &K3 S95=1
	You can always try one of the above init strings and if you
	guessed right, your modem will say "OK" after it, or "ERROR" if
	you guessed wrong.

				      - 19 -


	COMMON PROBLEMS AND SUGGESTED SOLUTIONS
	- The BBS only works at one speed, at other speeds the caller gets
	pure garbage.
	    This has to do with locked baud rates and the speed of the
	    serial communication between the computer and the modem.
	    There are two conventions for controlling the speed of the
	    serial link between the computer and the modem: step-down,
	    and locked baud rate.
	    With step-down, which is what 2400 baud and slower modems
	    use, the modem can only communicate with the computer at the
	    same speed that it communicates with the caller's modem.  The
	    BBS originally talks to the modem at its highest speed, and
	    then when a caller connects, the modem prints "CONNECT
	    <speed>" right before changing to the caller's speed.  The
	    BBS sees the connect message and drops down to the same
	    speed.  When the caller hangs up, both the modem and BBS
	    return to the highest speed.
	    With locked baud rate, which is used by 14.4k and faster
	    modems, the communication speed between the computer and
	    modem is constant and can be faster than the calling modem's
	    speed.  Since the modem receives data from the computer
	    faster it can transmit, it buffers the data and uses hardware
	    flow control to tell the computer when the buffer is full.
	    For example, you might use a locked baud rate of 57.6k baud
	    with a 14.4k modem.  The advantage is, because of the
	    buffering, the computer can send the modem a block of data at
	    57.6k baud, and then be free to do other things for a while
	    until the 14.4k modem finishes sending the data.  If the
	    modem has hardware compression, it may be able to compress
	    the data in its buffer and send it at a faster speed.
	    Now, here's where the complications arise.  High speed modems
	    are designed to be compatible with older terminal programs
	    and BBSes that don't know about locked baud rate and still
	    think that when they see a "CONNECT <speed>" message, they're
	    supposed to step-down to <speed>.  So, unless the terminal
	    program or BBS uses some special modem commands in its AT
	    init string to let the modem know it's expecting locked baud
	    rate and hardware flow control, the modem will disable
	    hardware flow control and might or might not use step-down,
	    depending on what brand of modem it is.
	    The trick is to make sure both the BBS and the modem are
	    using locked baud rate and hardware flow control.  On the BBS
	    side, locked baud rate is controlled by the "LockedBaudRate:"
	    switch in BBS.INI, and the BBS always uses hardware flow
	    control.
	    On the modem side, it's a little harder because modem makers
	    did not agree on a single AT init string for controlling it,
	    so it depends on the brand of the modem.  U.S. Robotics has
				      - 20 -


	    made this particularly difficult by having two different
	    standards and labeling both models "Sportster".
	     Genuine U.S. Robotics Sportster or Courier:
		 AT&F &H1&R2&B1&A3
	     Compaq, Intel, NEC, and various other miscelaneous
	     re-branded modems that used a standards-disregarding
	     chipset:
		 AT&F \Q3 S95=1
	     Hayes and all others, U.S. Robotics Sportster Si, Vi:
		 AT&F &K3 S95=1
	- The caller log and /who command don't show the speed that the
	caller called at, they show the higher locked baud rate speed.
	    First, please see the previous question for background on
	    locked baud rates.  The reason this is happening is, the
	    modem is trying to be compatible with older terminal programs
	    and BBSes that don't know about locked baud rate.  It's
	    afraid that if it prints "CONNECT <speed>" with the actual
	    speed of the connection, the program will switch to <speed>,
	    which would be wrong because the modem is using locked baud
	    rate.  To prevent this, the modem lies to the computer by
	    telling the locked baud rate speed in the "CONNECT <speed>"
	    message, so if the BBS switches to that speed, it'll be
	    switching to the same speed it's already at and everything
	    will be fine.
	    This scheme works, but it has the drawback that the modem
	    never tells the BBS the actual speed of the connection, so
	    the BBS has no way of knowing.  Basically, if you have one of
	    these modems, there is no practical solution besides getting
	    a different modem.  If you put the BBS and modem into
	    step-down mode, you'll solve this problem, but you'll have
	    all kinds of other performance and configuration problems
	    because high speed modems don't work very well if they're not
	    at a locked baud rate.  It's not worth the headache.  My
	    advice is to live with it.
	- The phone rings but the modem doesn't answer it.
	    Do you see the word "RING" on the screen when they call?
	      No ---> When the BBS inited the modem, did it print "OK"?
			No ---> The modem may be on a different COM port,
				 or Windows may have denied the BBS
				 access to the COM port.  The BBS is not
				 communicating with the modem.
			Yes --> The BBS was able to communicate with the
				 modem, but the modem doesn't seem to
				 notice the phone is ringing.  Make sure
				 the modem is plugged into the right
				 phone jack.
	      Yes --> The modem isn't in auto-answer mode.  You can try
		       to get the modem to auto-answer by making sure
		       there is an S0=1 in the init string.  If you still
				      - 21 -


		       can't get the modem to auto-answer, then take S0=1
		       out of the init string, put in S0=0, and set
		       "AnswerOnRing: 1" in BBS.INI.  This will make the
		       BBS take over the job of telling the modem when to
		       answer the phone.
	- The modem answers but then immediately hangs up.
	    This can happen if "AnswerOnRing:" in BBS.INI is set to 1 and
	    the modem is also set to auto-answer.  Normally, you should
	    have the modem auto-answer, and AnswerOnRing set to 0.
	    AnswerOnRing is provided so if the modem's auto-answer
	    doesn't work, or you're trying to do some other special trick
	    like answering only custom ringing, you can set AnswerOnRing
	    to 1 instead of having the modem auto-answer.  You must not
	    have both AnswerOnRing and auto-answer.  "AnswerOnRing: 1"
	    causes the BBS to try to answer the modem when it sees the
	    "RING" message, and if the modem is also set to auto-answer,
	    they will both go to answer it at once and the result is that
	    they step on each other and cause it to hang up.  If you use
	    AnswerOnRing: 1, you must make sure there is no SO=1 in the
	    init string, and use S0=0 to turn off auto-answer mode.
	- The BBS doesn't logoff when the user drops carrier.
	    The modem must set carrier detect to depend on reality, not
	    always on.  One of the ModemInitStrings should have &C1 in it
	    to configure the modem to tell the BBS whether carrier is
	    detected.  Some older modems have to be configured by dip
	    switches, so see your modem manual.  If you have an external
	    modem, some serial cables do not have the carrier detect (CD)
	    line.  When you buy a cable for an external modem, you have
	    to get a modem cable, not a serial printer cable.
	- The Modem doesn't hang up at logoff unless user drops carrier.
	    The modem is ignoring DTR.  The ModemInitStrings should have
	    &D2 and S2=1 in them as two ways of configuring the modem to
	    be able to hang up, but some modems have to be configured by
	    dip switches.  Also, if you have an external modem, some
	    serial cables do not carry the DTR line.  A serial cable for
	    a printer won't do, it must be a modem cable.
	- BBS prints ERROR instead of OK after the init line with &D2 &C1
	  on it.
	    Unless it is having one of the previous two problems, don't
	    worry about it.  If you are having either of the two
	    problems, then the reason is that one of the configuration
	    switches &D2 or &C1 is being ignored.  See &D2 and &C1 in the
	    list later in this chapter to see what they're supposed to
	    do, then check your modem manual to figure out what you're
	    supposed to do to get the same effect.  On some older modems,
	    you have to use dip-switches to set the configuration.
	    Briefly, the &D2 configures the modem to allow the BBS to
				      - 22 -


	    tell it when to hang up.  The &C1 configures the modem to
	    tell the BBS when carrier is lost.
	MODEM INIT PARAMETERS
	Z = Reset state.  This is to get the modem in the same state each
	time.
	Modems are often fussy about hanging up, so the BBS uses two
	methods with the hope that the modem will respond to at least one
	of them:
	&D2 = On DTR, hang up, goto command mode, auto-answer off.  This
	is tried first.  If you have an external modem, the cable must
	have the DTR line.  Modems default to ignore DTR, but most for
	most, &D2 makes them respond to it.
	S2 = Set escape character, must be set to 1 (happy face).  If DTR
	doesn't work, the three happy faces are printed.  S2=1 is
	necessary because the default is +++, which could be typed by the
	user.
	&C1 = Carrier detect line depends on presence of carrier.  If the
	BBS doesn't notice when users drop carrier without logging off,
	then your modem is keeping the CD (carrier detect) line on all the
	time.  &C1 for some modems will make the CD line depend on the
	presence of carrier, but others must have a dip switch changed.
	See your modem manual if the BBS isn't detecting drop of carrier.
	X1 = Don't act like an ancient 300 baud modem.  Without this, the
	modem will just print CONNECT no matter what speed the modem
	connects at, and the BBS will have no way of knowing what speed to
	change to and will have to assume 300 baud because CONNECT without
	a speed means 300 baud.
	V1 = Word responses (recommended).  This means that the modem
	prints, for example, "CONNECT 2400" instead of "10".  The BBS can
	understand the number codes too, but words are easier for the
	humans to see if it's working.  For modem speeds above 2400 baud,
	V1 is important because I'm not sure what the number codes are for
	every modem, but the BBS will respond to "CONNECT <baud>".
	Q0 = Print result responses.  Without this, the modem won't say
	what's happening, and the BBS would have no way of knowing what's
	going on.
	S0 = Auto-answer on or off.
	S7 = Time to wait for carrier on answer, in seconds.
	S10 = Time to wait before dropping line, in tenths of seconds.



				      - 23 -


			    Chapter 8 - Using the BBS
	USING THE MESSAGE BASE
	[M] from the main prompt or "/msg" from any prompt gets you to the
	main message base.  The prompt displays the room number, room
	name, and the current message number range:
	     01-Lobby [1-56] Msg:
	This example shows room 01, named "Lobby", has 56 messages in it,
	numbered 1-56.
	     04-Restaraunt Reviews [33-272] Msg:
	This example shows room 04, names "Restaurant Reviews", has 239
	messages in it, numbered 33-272.  Messages 1-32 in this room were
	"scrolled", or deleted when the amount of space for messages ran
	out.  When allocated space runs out, the oldest messages are
	deleted to make room for new ones.
	[R] Read Messages lets you read messages in order starting from
	any available message in the message range (given in the message
	base prompt).  JetBBS will ask you for a starting message number,
	and will display the messages in that room in order.  If you have
	specified a pause between each message, at the end of each message
	there will be a prompt with the available message range:
	     [1-56] ?=help, Read:
	From this prompt you can [Q] Quit reading messages, [E] Enter a
	message in the middle of reading (good for if you don't want to
	forget what you're going to say.  Note: The entered message will
	go at the end of the message list, as if you entered it from the
	message prompt), type a message number to jump to that message
	(and continue reading forward from there), or just press [ENTER]
	to go to the next message.  After the last message, the message
	base prompt will appear instead of the pause prompt.
	[N] Newscan is like [R] Read Messages except it will start with
	messages posted since your last call.  If you have specified to
	see the last old message on new, it will start one message before
	it.  If on your last call you terminated the session while keeping
	newscan pointers, [N] Newscan will start with the messages since
	the last time you terminated without keeping newscan pointers.  If
	you set your newscan pointers to something different with [V] Set
	newscan (see below), then it will start with whatever you set.
	While a message scrolls by on the screen (mostly applicable to
	remote calls; the local terminal might be too fast for these keys
	to be of any use), you can press [SPACE] to automatically jump to
	the next message (or quit if there are no more messages), [A]
	Abort to quit reading messages, or [P] Pause or [CTRL+S] to pause
	the display.
				      - 24 -


	There is also a global newscan that allows you to page through all
	the new messages in every area in the message base.  Type [Z]
	Zipscan/read all new to use it, or type "/gl" or "/global".
	To enter a message in the current message area displayed by the
	prompt, press [E] Enter message.  The message editor will pop up:
	     Enter message / 300 lines max / .?=help
	The cursor will be on the next line.  You can type your message.
	The words will word-wrap at the end of the line.  Once you are
	finished, you can type ".s" or "/s" on the beginning of a blank
	line to save the message and exit from the editor.  You can edit
	what you have with the other editor commands, which are listed
	when you type ".?".  If you reach the maximum number of lines, the
	message is automatically saved.
	The full screen editor, which you can switch to by hitting [#] in
	the message base, is much nicer because it lets you move around
	with the arrow keys to edit.  The line editor shown above is kept
	for users who are used to the old way, or if they don't have ANSI
	or they need to post something with ANSI codes in it, since the
	full screen editor would try to interpret the ANSI codes itself
	instead of posting them.
	Type [K] Known rooms to get a list of all the rooms you have
	access to.  (Rooms a user doesn't have access to will not show up
	in the list, and the user will not be able to move to them.)
	You can move around the message areas in the message base with [-]
	or [<] Previous room, [+] or [>] Next room, [J] Jump to room, [G]
	Goto new, or [U] Ungoto.  [-] or [<] Previous room will go one
	room number back if the room exists.  [+] or [>] will go one room
	number forward if the room exists.  [J] Jump to room will let you
	enter a room number to jump directly to.  If you are the sysop,
	you can jump to any room, otherwise you are limited to only the
	ones on the known rooms list.  [G] Goto new will go to the next
	room with new messages in it; if there are none left, it will go
	to the first room.  [U] Ungoto is like the Goto new messages
	command, but it goes in the other direction.
	It is possible for any user to delete his own messages.  Type [D]
	Delete message and it will prompt for a message number.  This
	command only lets the user delete messages that that specific user
	entered; it will not allow the user to delete a message written by
	another person.
	Note:  The sysop, co-sysops, sub-ops, or room-ops can delete other
	user's messages with the "/delete" command, or the [D] command in
	the sysop menu.  (The sysop and co-sysops can delete all messages,
	sub-ops can delete messages only on their sub-board, and room-ops
	can delete messages in their room.)
	[V] Set newscan will allow you to change the number of messages
	considered new by the commands that scan for new messages.  Note:
				      - 25 -


	The number that this command changes is the number of new messages
	for the entire board, including sub-boards, based on date.  This
	command is useful in case you only want to read some of the latest
	messages but a large number of messages are considered new (if you
	went on vacation, for example, and the new messages piled up since
	over a month ago and you don't want to read a month's worth of
	messages).
	[Y] Post anonymous will let you post a message without your name
	or the date and time showing up in the message header.
	Note: Because the anonymous function can be abused, in the default
	MNU files, the anonymous posting function is set at level 2
	instead of the normal level 1.  This can be changed by the sysop
	by editing MSG.MNU.
	SUB-BOARDS
	To get to the sub-boards from either the message prompt or the
	main menu, press [S].  You will see a list of the sub-boards you
	have access to with their one-line advertisements.  If you do not
	have access to any sub-boards (or all the sub-boards are closed),
	you are told so and are returned to the message prompt.
	Otherwise, you'll see a welcome screen (if available--optional,
	sub-op's prerogative).
	It is important to note the sub-boards have a separate access
	system from the rest of the BBS (with the exception that the sysop
	of the BBS has complete power over everything).  It can have a
	sub-op, which has complete control over the sub (besides the
	sysop, of course), it can be made private with only select members
	of the userlog allowed, and it can have different access levels
	for each room (and room-ops) that deal with the sub-board's access
	userlog.
	Sub-boards act just like the main message base.  All the commands
	for the main message base apply.  The sub-board prompt is
	different; it doesn't have the room number.  (This is a good way
	to tell if you're in a sub-board or not.)
	E-MAIL
	From the main menu, [E] Send E-mail, or "/mail" from anywhere,
	will let you send electronic mail to another user.  Simply enter
	the name, number, or part of the name of the user you want to send
	it to, and enter the message.
	When you log on, if you have mail waiting, it is automatically
	displayed.  After each message, you will be given a chance to re-
	read it, delete the individual message, or send e-mail (to the
	person who sent it or to anyone else).  Mail that you don't delete
	will appear again on your next call.
	If you want to read waiting mail while on-line, type "/readmail"
	at a prompt.  In the default menus there is no one-key command for
				      - 26 -


	this, but you, the sysop, can edit an MNU file and add it to one
	of the menus.  You can use this command to review mail, or read
	new mail that just came in if it was a multi-line system and a
	user on another line just sent you mail.
	AUTO-MESSAGE, BOARD NEWS, AND LOGON MESSAGES
	You can access the Auto-Message menu with [A] from the main menu
	or "/auto-msg" from any command prompt.  The Logon Messages, if
	they exist, are always displayed after someone logs on.  The
	Auto-Message and Board News are displayed only when the user
	hasn't seen them yet.  The Logon Messages and Board News are
	posted by the sysop only, and the Auto-Message can be posted by
	level 3 users and up.
	[N] Read the Board News displays the current Board News.  [R] Read
	the Auto-Message displays the current Auto-Message.  [P] Post the
	Auto-Message wipes out the old Auto-Message and lets you enter a
	new one (level 3 only).  [L] Edit Logon Messages lets you edit one
	of the three available Logon Messages to be displayed between the
	user stats and the Board News after the logon sequence.
	BORDERLINES
	Borderlines are one line messages that appear before every
	occurrence of the main menu prompt.  They can be read as a list or
	posted by anyone.  [B] or "/border" gets to the borderline menu.
	You can [R] Read the borderlines, [P] Post a borderline, [A] Post
	an anonymous borderline, or [S] See border authors.  There are 10
	borderlines, numbered 0 to 9.  You can read the list, post your
	own (wiping out the old one to put a new one in its place), or see
	the authors of the borderlines (who posted them).  Seeing the
	borderline authors takes a small number of credits to do; you can
	purchase a peek for 200 credits.  If you don't want people to see
	your name when they look at the authors, you can post one
	anonymously like you can a message.
	FILE TRANSFERS
	The main file transfer section is accessible from the main menu
	with [X] File Transfer Menu or "/xfer".  You will see a menu of
	file areas, plus an option to [S] Upload to Sysop (any user can
	upload a file to the sysop's private directory, where no one can
	download it until the sysop moves it to another file area).  The
	file areas themselves are customizable by the sysop.
	BBS PHONE LIST
	[P] Phone list of other BBSes or "/phone" gets you to a BBS
	phonebook.  This list of BBSes can be added to by anyone with [P]
	Post/add a BBS to the list, and can be read by anyone with [R]
	Read the BBS list.  This is a good way to promote other BBSes in
	the area, and can build a good small database for other BBSes.

				      - 27 -


	USERLOG MENU
	To get to the userlog menu, type [U] from the main menu or
	"/userlog".  From the userlog menu, you can examine or change your
	own stats and password, change your BBS preferences, examine other
	accounts, see the caller log, examine and search the database of
	users, or see an automatically generated call-times chart.
	[Y] Your user stats "/stats" displays what is currently on record
	as your age, access level, the number of credits you have, the
	number of times you called the BBS, the number of posts you've
	made with the total number of lines posted, the date and time of
	your last call, and how much time you spent on the current call
	and how much you have left.  You can modify this command by
	editing STATS.MNU.
	[I] Change your user info "/userinfo" lets you change your name,
	password, computer type, city and state, phone number and first
	name, age, ANSI mode, screen height, and other preferences.  These
	questions are the ones asked of newusers, plus some additional
	settings.
	[P] Change your password "/password" lets you change your password
	only.
	[A] List the entire userlog "/allusers" shows a summary list of
	every account on the BBS.
	[C] Calling times chart "/calltimes" displays a chart of the
	number of calls during the periods in the day.  This is a good way
	to see when the least busy time of day is to call.
	[W] Weekly calling trends chart "/calltrends" displays a chart of
	the number of calls over the past several weeks.
	[D] Days-of-the-week calling chart "/calldays" tells you how much
	the BBS is being used on each day of the week.
	[L] Caller Log "/callers" shows a list of a few recent callers
	with their names and the times they logged off.  The number of
	lines can be adjusted by editing the file SYS\CALLERS.TXT and
	deleting lines or adding extra blank lines.
	MESSAGE BASE AND USERLOG SCROLLING
	When a new message is posted and the message base has already
	expanded to its size limit, the oldest message or messages are
	deleted to make space for the new one.  The old messages can be
	anywhere on the main message base or in the Sub-Boards.  So,
	messages exist for a certain length of time and then scroll,
	regardless of where they are.  The number of messages in a room
	increases in the popular rooms and decreases in slower ones.
	The JetBBS userlog recycles ("scrolls") accounts in a way similar
	to how it scrolls messages.  When a new user logs on, it searches
				      - 28 -


	for the account that has been inactive for the longest time and
	re-uses it, with some exceptions depending on access level and
	number of calls.  The majority of accounts are new users who
	called once and never called back, and they scroll the fastest.
	Accounts with 2-9 calls take twice as long to scroll, and accounts
	with 10 or more calls take 4 times as long to scroll.  On top of
	that, an access level of 2 multiplies the time to scroll by 4
	again, so a level 2 user who has called more than 10 times will
	take 16 times as long to scroll as an account that was only used
	once and then abandoned.  Accounts with level 3 and above never
	scroll.  My experience has been that with 200 accounts, abandoned
	accounts with 1 call last about 1 1/2 months, 2-9 calls last 3
	months, and 10+ calls last 6 months.
	ACCESS LEVELS
	    Level 1 - New user, can't post auto-message, post 1 border
			per day, no anonymous messages
	    Level 2 - Scrolls 4 times slower than level 1
	    Level 3 - Non-scrolling, a typical level for regular callers
	    Level 4 - Can make voting polls
	    Level 5 - Has /rename, /delete, and /move commands, typically
			used for trusted users
	    Level 8 - Semi-sysop, can do msg base stuff but not userlog
	    Level 9 - Sysop
	SYSOP FUNCTION KEYS
	[F1] Help Screen - Brief version of this list.
	[F2] Chat - Go into chat mode.  You can press this anytime the BBS
	is waiting for the user to enter something.  To leave chat, press
	the [F2] key again.  As you leave, it will reprint the line that
	the user was on so he can be reminded of what he was supposed to
	enter and pick up where he left off.  If you use chat in the
	editor on a blank line, it may be a bit confusing when you leave
	chat.  Type ".l" to re-list the message so he can see what he was
	doing.
	[F3] Temp Sysop - Toggles temporary sysop access on and off.  At
	the end of the call, the level will go back to normal.
	[F4] Print Password - Print user's info, including password.  If
	you see someone logging on who has forgotten his password, and you
	want to give him a hint, you could have him enter his account
	number and then you can press [F4] to see his password.  The
	password and info are printed locally only.
	[F5] Forced Logoff - Prints the ForceLogoffPrint string from
	BBS.INI and then hangs up.  The default message printed is "Have a
	nice day :)".
	[F7] Edit This User - Edit the user who is currently on-line.
	[F9] Status Bar on/off - So you'll have more room on the screen.
				      - 29 -



	[F10] Capture on/off - Copy all text printed to the screen to
	CAPTURE.TXT.  If the file already exists, it is replaced by the
	new text.
	[SCROLL LOCK] Sysop Not Available - The chat call is disabled when
	scroll lock is turned on.
	[ALT+X] Exit - Works anytime the BBS is ready for input.  Logs off
	and hangs up if necessary.
	[CTRL+C] or [CTRL+BREAK] Brute Force Exit - Works like [ALT+X] but
	doesn't hang up if on-line.  You could run a terminal program next
	and the user will still be connected.
	[RIGHT ARROW] Increase Credits by 100cr.
	[LEFT ARROW] Decrease Credits by 100cr.
	[UP ARROW] Increase Time Left by 10 minutes.
	[DOWN ARROW] Decrease Time Left by 10 minutes.
































				      - 30 -


			     Chapter 9 - MNU Tutorial
	MNU FILE "[MENU]" BLOCK
	This section will take an in-depth look at the BBS's menus.  They
	have the file extension MNU and are located in the \BBS\MNU
	directory.  We will also go step by step through the process of
	adding, modifying, or removing commands from menus.  The following
	is an example of some standard lines in an MNU file.  They were
	taken from the main menu (MAIN.MNU):
	[menu]
	;key	command				 level	print
	u,	goto userlog.mnu,		    1,	Userlog;
	c,	chat,				    1,	Chat;
	o,	logoff,				    0,	Off/hang up;
	e,	sendmail,			    1,	Send e-mail;
	f,	feedback,			    0,	Feedback;
	As you can see, the "[menu]" portion of the menu consists of the
	"key" which is the letter or number that the user must press in
	order to execute the command; the "command" which tells JetBBS
	what to execute when the key is pressed; the level that the user
	must have in order to execute the command; and the message to
	display when the key is pressed.  Commas are used to separate each
	portion of the line, and a semicolon is the last character of the
	line to which signifies the end.
	The second way of accessing a command in JetBBS is to type "/"
	followed by a command as displayed in the following excerpt from
	GLOBAL.MNU.  GLOBAL.MNU is special because it contains commands
	that can be accessed ANYWHERE on the BBS simply by typing "/" and
	then the command.  For this reason, they are extremely useful
	commands.  After learning them, you don't have to pay attention to
	what menu you are in, and try to examine the help file to figure
	out how to get to where you want to go.  An example would be
	"/msg" which would take you directly to the message base.  The
	following are commands currently in your GLOBAL.MNU and do the
	exact same things that those you see above.  These, however, are
	ways of accessing the command with the "/" key from anywhere on
	the BBS.
	[menu]
	;entry		command				 level	print
	userlog,	goto userlog.mnu,		    1,	;
	chat,		chat,				    1,	;
	off,		logoff,				    0,	;
	mail,		sendmail,			    1,	;
	feedback,	feedback,			    0,	;

				      - 31 -


	You can see how useful it would be to be able to access these
	commands anywhere.  If you were reading messages in the message
	base and wanted to go to the userlog to see how much time you had
	left on-line, you could either quit to the main menu, locate the
	key to hit to go to the userlog, and then hit it; or you could
	just type "/userlog" and be there in an instant.
	You can also combine a menu and the command you want to execute in
	that menu all into a "/" command.  Let's use the previous example
	of wanting to know how much time you had left on-line.  Instead of
	typing "/userlog" to get to the userlog and then [Y] to see your
	stats, you could simply type "/userlog/y" which would tell Jet to
	execute the [Y] command in the userlog with you not even having to
	move from your present location on the board.
	A "/" command can also act as a password.  Let's say that you only
	wanted a certain person to be able to chat with you and didn't
	want to ever be disturbed by anyone else.  You could change the
	"/chat" command to something that only that person would know.
	;entry		command				 level	print
	abcdefg,	chatloud,			 1,  ;
	By entering "/abcdefg" the person would then be able to execute
	the chat command.  This is a good example of how flexible the MNU
	files are.  Anything you wish may be put in the "entry" part of
	the MNU files.
	The next portion of the MNU files that we will look at will be the
	commands.  As previously described, the "command" is the portion
	of the MNU file that tells JetBBS what to do when a specific key
	is hit, or a "/" command is typed in.  Commands are fairly
	configurable, and can easily be modified.  There is a complete
	listing of MNU commands included later on in this documentation.
	For now, we will use several examples to convey the versatility of
	the MNU files.
	One of the most common and important MNU commands is the "goto"
	command.  It can be used to tell the BBS to go to another MNU
	file.  This is how you move from one place to the next in Jet.
	The following are some examples of where the "goto" command is
	used on the BBS.  The following are all commands that are used in
	your main menu.
	;key	command				 level	print
	a,	goto auto-msg.mnu,		    1,	Auto-Message;
	b,	goto border.mnu,		    1,	Borderlines;
	u,	goto userlog.mnu,		    1,	Userlog;
	p,	goto phone.mnu,			    1,	Phone list;
	Included with the reference section is a complete listing of all
	commands that may be used in the MNU files.  You can create your
	own menus by locating the commands you would like to have in the
				      - 32 -


	menu, and then creating a text file.  This text file should be
	named whatever you would like the menu to be called, with a ".MNU"
	file extension.  Make sure you create it in the \BBS\MNU
	directory.
	If your menu is going to contain a "[do]" block, then create that
	first followed by the "[menu]" block.  One of the most common
	mistakes is forgetting to include an option which will allow the
	user quit to the previous menu.  In most circumstances, the
	"gotoprev" command should be used.  The only thing left to do is
	create a command elsewhere on the BBS which will access this MNU
	file.  The command should use the "goto" command to tell the BBS
	to go to your menu.
	If you want to make a menu where the user types a command and then
	presses enter, rather than the BBS immediately executing the
	command after one key, change [menu] to [multikeymenu].  For
	example, if you have a menu like the menu I made for the CD-ROM of
	shareware mentioned on the registration form:
		   The Best of JCSM CD-ROM -- Select a file section
	 [ 1] Accounting/Financial  [20] Game-Board	     [41] Music
	 [ 2] BBS Systems	    [21] Game-Card	     [42] Productivity
	 [ 3] Business		    [22] Game-Casino	     [43] Progmer's Tools/Li
	 [ 4] Calculators	    [24] Game-Hints/Unprots  [44] Religious
	 [ 5] Cataloging	    [25] Game-Simulator	     [45] Science/Math
	 [ 6] Communications	    [26] Game-Super VGA	     [46] Sports
	 [ 7] Databases-Applicatns  [27] Game-Other	     [47] Speech
	 [ 8] DataBases-Full Feat.  [28] Geneology	     [48] Utilities
	 [ 9] Databases-Other	    [29] Graphics-CAD	     [49] Virus Protection
	 [10] DeskTop Publishing    [30] Graphics-Images     [50] Word Processors
	 [11] Editors		    [31] Graphics-Programs   [51] Writing Aids
	 [12] Educational	    [32] Hobbies	     [52] Other
	 [13] Electronic Books	    [33] Home/Personal
	 [14] Financial		    [34] Humor		     [A] All Files
	 [15] Fonts		    [35] Icons		     [Q] Quit
	 [16] MVP Software	    [36] Marketing Aids
	 [17] Apogee Software	    [37] Legal
	 [18] Game-Action	    [38] Lotto Programs
	 [19] Game-Arcade	    [39] Medical/Health
	For this menu, I wanted users to be able to type two digit numbers
	without having to enter "/" first, so I used [multikeymenu] in the
	menu.  If you prefer pressing enter after commands, you can change
	all the [menu] lines in all the MNU files to [multikeymenu].








				      - 33 -


	MNU FILE "[DO]" BLOCK
	The "[do]" block of a menu file contains a list of commands to be
	executed as soon as a user enters the menu.  Earlier, we discussed
	FIRST.MNU which is made up entirely of a "[do]" block.  The user
	has no choice about whether the commands in the "[do]" block are
	executed, they are automatic.  A common command you may want to
	place in the "[do]" block of a menu would be "help", which
	instructs JetBBS to display the menu.  This way, the menu would
	display automatically every time a user enters it, instead of
	waiting for them to press "?".  That is only one of the numerous
	commands you can place in the "[do]" block.  You can place any MNU
	command in the "[do]" block if you want them to be automatically
	executed.
	You should note that if you add a "[do]" block to a menu, you will
	no longer be able to preload that menu.  You should then remove
	that menu from the "Preload:" sequence in the BBS.INI file.  This
	should not cause a considerable slow down unless you are running
	JetBBS on a floppy drive.  You may then want to consider only
	adding a "[do]" block to menus that are not preloaded.

































				      - 34 -


		 Chapter 10 - MNU %variable% Replacement Keywords
	Many of variables can be changed with the `let` and `eval`
	commands.
	USER INFO
	    %name%	      - Name
	    %usernumber%      - Account number
	    %level%	      - Access level
	    %calls%	      - Total calls
	    %callsleft%	      - Calls left today
	    %callstoday%      - Calls used today
	    %minutesonline%   - Time used so far on this call
	    %minutesleft%     - Time left
	    %posts%	      - Total messages posted by user
	    %linesposted%     - Lines posted, calculated by characters posted
				  divided by 80
	    %callswhileaway%  - Number of calls since user's last call
	    %lastcalldate%    - Example: "Monday, May 15, 8:32pm"
	    %credits%	      - Credits
	    %userinfo1%	      - User info fields
	       ...
	    %userinfo9%
	    %userinfo1desc%   - Descriptions of user info fields
	       ...
	    %userinfo9desc%
	    %ansi%	      - 1=ANSI mode on, 0=no ANSI
	    %delayedcredits%  - Credits to be payed in a few days
	    %mailcount%	      - Number of e-mail messages user has
	    %mailnew%	      - Number of new e-mail messages
	    %rows%	      - Height of screen
	    %fsedit%	      - 1=Full Screen Editor, 0=Line Editor
	    %stopaftermessage%- 1=Stop after each message, 0=Continuous
	    %readoneold%      - 1=Yes, 0=No
	    %title%	      - Printed before user's name in square brackets
	    %surname%	      - Printed after user's name in square brackets
	    %noletterbomb%    - 1=Account owns letterbomb defusal kit, 0=No
	    %firstnewmail%    - E-mail message number of first e-mail message
	    %callernumber%    - # of calls the BBS has had, displayed on
				  logoff
	    %screenpauseline% - How many lines to print before pausing
	    %realname%	      - User's real name
	    %address1%	      - Street address part of address
	    %address2%	      - City, State, Zip, this is used by door games
	    %clearscreenbeforehelp% - 1=Clear screen before each menu
	    %firstcalldate%   - Date that the account was created
	    %continuous%      - 1=Don't pause after screenfull
	    %expert%	      - 1=Expert mode, 0=Novice mode
	    %internetmail%    - 1=Can send internet mail (registered ver)
	    %netname1%	      - Network mail name (registered ver)
	    %netname2%	      - Alternate network mail name (registered ver)
	    %netname3%	      - Alternate network mail name (registered ver)
	    %networkallowed%  - 1=Account enabled for netting (regd ver)
				      - 35 -


	MESSAGE BASE
	    %room%	      - Current room number
	    %roomname%	      - Current room name
	    %firstmsg%	      - First message number in room
	    %lastmsg%	      - Last message number in room
	    %sub%	      - Sub-Board number, 0 is Main Message Base
	    %totalmsgs%	      - Total messages on the message base
	    %newmsgs%	      - New messages posted since last call
	    %unreadmsgs%      - Number of unread messages
	    %firstnewmsginroom%- Message number of first new message in room
	    %totalnewmsgs%    - Number of new messages in the message base
	    %newmsgsinroom%   - Number of new messages in current room
	    %roomdirnumber%   - Absolute room number, where sub-board rooms
				  are in the 100+ range.
	DIRECTORIES AND FILES
								default:
	    %sysdir%	      - BBS data files			SYS\
	    %textdir%	      - Text files that you can edit	TEXT\
	    %menudir%	      - MNU files, configurable menus	MNU\
	    %msgdir%	      - Messages, stored in text format MSG\
	    %bbsmaildir%      - Private mail			BBSMAIL\
	    %ramdrivedir%     - Small temporary files
	    %logfile%	      - Path and filename of log file	LOG.TXT
	    %mnufile%	      - MNU file of the current menu
	    %roomop%	      - User number of the room subop, 0 if none
	TRANSFERS
	    %transname%	      - Name of xfer area, e.g. "Upload To Sysop"
	    %dldir%	      - Directory for downloads, set by gototrans
	    %uldir%	      - Directory for uploads, set by gototrans
	    %xferfilename%    - File to transfer, set by gotoupload or
				  gotodownload
	    %uploadcreditsperk%- The credit reward for uploading files.
	    %downloadcreditspermin% - Credits charged for downloading time.
	MODEM
	    %com%	      - COM port number
	    %baseaddr%	      - Base address of COM port; 3F8 for COM1, 2F8
				  for COM2, 3E8 for COM3, 2E8 for COM4.
				  Useful for door programs.
	    %irq%	      - Interrupt number. Typically 2, 3, 4, 5, or 7.
	    %baud%	      - Baud speed between the BBS computer and the
				  BBS modem.  If the baud speed needs to be
				  passed to another program such as a door
				  program, use this value.
	    %modembaud%	      - Baud speed between the BBS modem and the
				  caller's modem.  This can be different from
				  %baud% with a high speed modem and
				  LockedBaudRate on.  This value cannot be
				  determined with some high speed modems, and
				      - 36 -


				  should only be used for displaying to the
				  user.
	SPECIAL CHARACTERS
	    %cr%	      - "<newline>"
	    %bs%	      - "<backspace>"
	    %comma% or %c%    - ","
	    %esc%	      - "<escape>
	ANSI COLORS
	    %reset%	      - Reset to default colors and turn off bold
	    %bold%	      - Bold, this affects the foreground color
	    %blackfg%	      - Black foreground
	    %redfg%	      - Red foreground
	    %greenfg%	      - Green foreground
	    %yellowfg%	      - Yellow foreground if bold, brown if not
	    %bluefg%	      - Blue foreground
	    %purplefg%	      - Purple foreground
	    %cyanfg%	      - Cyan foreground
	    %whitefg%	      - White foreground
	    %blackbg%	      - Black background
	    %redbg%	      - Red background
	    %greenbg%	      - Green background
	    %yellowbg%	      - Yellowish brown background
	    %bluebg%	      - Blue background
	    %purplebg%	      - Purple background
	    %cyanbg%	      - Cyan background
	    %whitebg%	      - White background
	DATE AND TIME
	    %date%	      - Example: 4/6/96
	    %datetime%	      - Example: Saturday, Apr 6, 1996	 3:13pm
	    %datetimeshort%   - Example: 4/6/96, 3:13pm
	    %datetimelong%    - Example: Sat, 6 Apr 1996 15:13:13 -0700 (PDT)
	    %time%	      - Example: 3:13pm
	    %second%	      - 0 to 59
	    %minute%	      - 0 to 59
	    %hour%	      - Hour in military time, 0 to 23
	    %day%	      - Day of the month, 1 to 31
	    %weekday%	      - Example: Monday
	    %month%	      - Example: May
	    %monthnumber%     - Month number, 1 to 12
	    %year%	      - Example: 1996
	GENERAL
	    %prefix%	      - The current menu name
	    %newuserstring%   - The string that new users have to type to log
				  on as new
	    %firstmenu%	      - The MNU file to start with, normally
				  FIRST.MNU
	    %1%		      - Parameter passed on goto command
				      - 37 -


	    %linesinuse%      - How many non-local lines are logged in
	    %inputret%	      - Text entered to the input command
	    %printfileret%    - Result of printfile command.  Possible values
				  are ABORT, SKIP, FILENOTFOUND, or NORMAL if
				  there is no error.
	    %yesnoret%	      - Result of yesno command.  Possible values are
				  YES and NO.
	    %rand%	      - Random number in the range 0-999.  Useful
				  with comparisons like "if %rand% < 500 goto
				  true".  To get a smaller range, use the
				  `eval` command, for example: "eval var =
				  %rand% % 6 + 1" for 1 to 6.
	    %scrolllock%      - 1=Scroll lock is on, 0=It's off.









































				      - 38 -


			Chapter 11 - MNU Command Reference
	  `command` = An MNU command.
	<parameter> = Required parameter.
	[parameter] = Optional parameter.  Usually the user is prompted
			for this information if it is omitted.
	AUTO-MESSAGE
	    postautomessage
		Posts the Auto-Message and marks it as new.  It will be
		read to the next 30 callers and then only to users who
		haven't seen it once.
	    checkboardnews
		Prints the Board News message if it is new.  See also
		`postboardnews` in the "sysop" section.
	    checkautomessage
		Prints the Auto-Message if it is new.
	BANK
	    sendcheck [user]
		Sends e-mail with credits attached to it.  The credits
		are actually on the e-mail letter, so if the recipient
		never calls again and his account eventually scrolls, the
		credits are lost.
	    sendletterbomb [user]
		Sends e-mail with a letterbomb attached to it.  The
		letterbomb causes the recipient to get hung up the first
		time he reads the message.  The e-mail message is
		anonymous, and there is no other way to send anonymous
		e-mail.  The price is a very steep 5000cr.
	    buyletterbombkit
		Buys immunity to letterbombs for 25000cr.
	    buylevel <level> <price>
		<level> is the level available for purchase, and <price>
		is the price in credits.  The user has to be one level
		below the level being purchased, so there's no jumping
		over multiple levels at once.  There is a sample of this
		command in BANK.MNU that you can uncomment if you want to
		use it.
	    borderauthors
		For 200cr, the authors of non-anonymous borders can be
		viewed.  The `readborders` command is modified for the
		remainder of the call to also show authors.  See also
		`readborders` and `postborderanon`.
	    buytime <price_per_minute> [minutes]
		Buy time with credits.
				      - 39 -



	    selltime <credits_per_minute_sold> [minutes]
		Sell back time for credits.  See BANK.MNU for more
		information.
	    buycasinogame
		Buy a casino game at the price set by the owner with
		`casinogamesetsellingprice`.  Any credits in the game
		will be mailed back to the previous owner, along with the
		payment for the game.
	    slot
	    double
	    greed
	    craps
	    roulette
	    six
	    virushunter
	    bignum
		Play casino games.
	    slotcredit
	    doublecredit
	    greedcredit
	    crapscredit
	    roulettecredit
	    sixcredit
	    virushuntercredit
	    bignumcredit
		Each game has its own credit reserve.  This command dumps
		the credits into your account and then asks how much you
		want to put back.  This command can be used by game
		owners and sysops.
	    slotowner
	    doubleowner
	    greedowner
	    crapsowner
	    rouletteowner
	    sixowner
	    virushunterowner
	    bignumowner
		Set the owner of the casino game.  This command can be
		used by game owners and sysops.  It allows the game owner
		to transfer ownership to another user.
	    casinogamesetsellingprice
		Lets the owner of a casino game set the selling price.
	    gotoifchargecredits <credits> <menu.mnu>
		Checks that the user has enough credits, and tells how
		much it'll cost and confirms that the user wants to spend
		the credits.  If they do, it'll go to <menu.mnu> and
		subtract the amount from their account.
				      - 40 -


	BORDERLINES
	    postborder [number]
		Posts one of the one line messages that are printed
		between commands in the main menu.  Level 1 users may
		only post one per call.
	    postborderanon [number]
		Same as `postborder` but does not record the name of the
		person posting the border.  It costs 700cr to use this
		feature.  See also `borderauthors`.
	    readborders
		Lists the borders.  If `borderauthors` has been used,
		this command also lists the authors of the borders.  See
		also `borderauthors`.
	    borderauthors
		For 200cr, the authors of non-anonymous borders can be
		viewed.  The `readborders` command is modified for the
		remainder of the call to also show authors.  See also
		`readborders` and `postborderanon`.
	DOORS
	    calldoor <command_line>
		This is the main interface for calling door programs.
		JetBBS writes four formats of door drop files:
		       Drop file      Other BBSes that use it
		       ----------     -----------------------
		       DORINFO1.DEF   RBBS, QBBS, FoReM, TPB, T.A.G.
		       CALLINFO.BBS   Wildcat!
		       CHAIN.TXT      WWIV, Telegard
		       DOOR.SYS	      Generic
		Door programs must read one of these files to find out
		necessary information such as the COM port, baud speed,
		the user's name, etc.  Ways of telling the door program
		where to find the drop file vary from program to program.
		In most cases you will need to write a short batch file
		to set up a door, if one is not already supplied with the
		door.  If the door takes a command line parameter naming
		the directory and filename of the drop file, the batch
		file is usually like this:  (supposing the name of the
		program is "SPACEWAR" and it is in the directory
		C:\BBS\SW)
		     CD SW
		     SPACEWAR ..\DORINFO1.DEF
		     ..\SCROLLDN
		     CD ..
		The reason I added ..\SCROLLDN is to scroll the screen
		down 4 lines on exit so the BBS's status bar doesn't
				      - 41 -


		cover up important error information at the top of the
		screen if something goes wrong.  ..\SCROLLDN is not
		essential.  Other door programs assume the drop file is
		in the same directory, so the batch file should copy it
		into the directory.  For example:
		     COPY DORINFO1.DEF SW
		     CD SW
		     SPACEWAR
		     ..\SCROLLDN
		     CD ..
		Those are the two most typical ways, but door programs
		vary widely.  TradeWars looks through the directories
		listed in your PATH environment variable, so you have to
		make sure the BBS's directory is in your path.  There are
		others that have to convert the door file to their own
		special format first, so they supply their own batch file
		for you to run.  Some require you to put the path of the
		drop file in a .CFG file.  You can use the [6] command in
		the sysop menu to add a calldoor command to your DOOR.MNU
		file.  The command line you give it is just the name of
		the batch file.
	    calldoor2 <command_line>
		Similar to `calldoor`, but uses a less aggressive swapper
		mechanism that may prevent conflicts with the door game
		if there are problems with crashing on the way out of a
		particular door game.  The tradeoff is that the less
		aggressive swapper does not leave as much memory for the
		door game.
	    calldoornoswap <command_line>
		Similar to `calldoor`, but does not attempt to swap the
		BBS out to EMS memory or disk to make more room for the
		door program.  A few door programs mess up the system so
		that the BBS can't swap itself back in when the door
		exits.
	    setdoordir <directory>
		For calling door programs on a multi-line board, it is
		necessary to get the door drop files in a different
		directory for each line, so that the lines don't
		interfere with each other's drop files.  The recommended
		way that is given in DOOR.MNU is `setdoordir` DOOR%com%.
		MKDIR the directories DOOR0 through DOOR4 and then call
		your door programs with a parameter to set the path of
		the door file.  For example, `calldoor` DOORPROG.BAT
		C:\BBS\DOOR%com%\DORINFO1.TXT.  DOORPROG.BAT should then
		pass the parameter to the program by using the batch file
		%1 variable.  For example:
		     CD SW
		     SPACEWAR %1
		     ..\SCROLLDN
				      - 42 -


		     CD ..
		If the door program does not allow you to specify the
		path of the drop file, setting it up for multi-line can
		be more difficult.
	    setdoornum <number>
		For calling door programs with the DORINFO1.DEF drop file
		on a multi-line BBS, this command changes the "1" in the
		filename to a number from 0 to 9.
	GOTO
	    goto <menu.mnu or label> [parameter]
		Goes to <menu.mnu> if it ends in ".MNU", otherwise goes
		to <label> within the same file.  Labels in a .MNU file
		look like ":label", but in the `goto` command you leave
		out the colon.  The ":label" is not found, it looks for
		":default".  If the target is a .MNU file and has a
		"[do]" block, that is executed, then if the "[do]" block
		does not send it somewhere else, the "[menu]" block
		defines the current menu.  If [parameter] is specified,
		%1% is set.
	    gotoh <menu.mnu or label> [parameter]
		Does a `goto` and then does `help`.
	    gotomsg <menu.mnu> [sub-board_number]
		This is a special `goto` command for going to the main
		message base or a sub-board.  It sets up the room number
		and other information.  For [sub-board_number], give 0
		for the main message base or a number to go directly to a
		sub-board, or leave it blank to get the list of sub-board
		ads and be prompted for a sub-board number.
	    gotoprev
		Does a `goto` to the previous menu.  The sysop menu uses
		this to return to where-ever the sysop menu command was
		pressed.  `gotoprev` is handy for the quit command in any
		menu.  Since you don't have to specify what the previous
		menu is, it will be flexible if there are changes later.
	    gotoifaccess <access_options> <menu.mnu or label> [text]
		Does a `goto` to <menu.mnu> or to <label> if the user has
		any of the <access_options>, or prints [text], if it is
		given, if the user does not have any of the access
		options.  For example:
		     gotoifaccess ABC DOOR.MNU Sorry%comma% not allowed
		If the user has access option A, B, or C, it will go to
		the door menu, otherwise it will print the "Sorry, not
		allowed" message.

				      - 43 -


	    gotoifnotaccess <access_options> <menu.mnu or label> [text]
		Opposite of `gotoifaccess`.
	    if <arg1> <operator> <arg2> goto <menu.mnu or label>
	    if <arg1> <operator> <arg2> then <command>
		Conditional `goto` or conditional command.  Important:
		There must be spaces between <operator> and <arg1> and
		<arg2>.  <operator> can be "==", "<", ">", or "@".  The
		"<" and ">" can only be used on numbers, but the "==" can
		be used for either text or numbers.  The "@" is a special
		pattern match operator which matches a match string with
		*'s and ?'s on the left with a string on the right.  The
		`if` command is generally used with %replacement%
		keywords, like in the commented out line in FIRST.MNU
		that you can enable to disallow 300 baud callers:
		     if %baud% == 300 GOTO NO300.MNU
		You can also use the "IF-THEN" version of this command to
		conditionally execute any command.  For example, if you
		have a menu where you want the help screen to display
		even if the user has expert mode turned on, you can put
		this in the [do] block:
		    if %expert% then help
	    ifnot <arg1> <operator> <arg2> goto <menu.mnu or label>
	    ifnot <arg1> <operator> <arg2> then <menu.mnu or label>
		Similar to `if`, but performs the `goto` or `then` when
		the condition is not true.
	    gotoifchargecredits <credits> <menu.mnu>
		Checks that the user has enough credits, and tells how
		much it'll cost and confirms that the user wants to spend
		the credits.  If they do, it'll go to <menu.mnu> and
		subtract the amount from their account.
	LOGOFF
	    fastlogoff
		Hangs up without confirming logoff, updating newscan
		pointers, or printing LOGOFF.TXT.  There is no
		opportunity for the user to cancel the logoff.  See
		LOGOFF.MNU for an example of using this function.
	MAIL
	    checkmail
		Read mail.  By default, this command is used in
		FIRST.MNU, and is also available by the /rereadmail
		command.



				      - 44 -


	    sendmail [user]
		Send e-mail.  [user] can be a name, number, or keyword to
		search for.  If [user] is omitted, the user is prompted
		for the recipient.
	    feedback
		Similar to `sendmail` except that account 1 is
		automatically the recipient.  If CarbonCopyFeedbackTo in
		BBS.INI is set to a user number, a copy of the feedback
		will be sent to that user.  This is useful if there is a
		co-sysop.
	MESSAGE BASE
	    post
		Post a message.  If PayCreditsForPosting in BBS.INI has
		not been set to 0, the user gets 25 credits per line for
		his post, unless the message is anonymous.  For reasons
		not explained here, the message will be anonymous if the
		key used to invoke the command is [Y].
	    readmsg [number]
		Start reading at specified message number.
	    newscan
		Read new messages in this room if any.
	    gotonew
		Go to the next room that has new messages.  Citadel users
		will find this command familiar.
	    ungotonew
		Go backwards to the previous room with new messages.
	    global
		Also known as "zipscan".  Goes to every room with new
		messages and does a `newscan`.
	    setnewscan
		Set newscan pointer by telling how many messages should
		be new.
	    roomdown
		Go down one room.
	    roomup
		Go up one room.
	    roomjump [number]
		Go directly to a room number.  Sysops can use this
		command to get to any room, regardless of the access
		level.


				      - 45 -


	    knownrooms
		Lists rooms that the user has access to, and notes which
		ones have access level above 1 or have a subop.  Vertical
		spacing is inserted between 9 and 10, 19 and 20, and 29
		and 30 to make it easier to read.
	    delmsgbyuser [number]
		Allows a user to delete his own messages.
	MISCELLANEOUS
	    chat
		Chat call.  Produces a short, low pitch tone.  If
		ChatCommand in BBS.INI is set to a DOS command, the DOS
		command will be executed instead.  Neither action is
		taken if SCROLL LOCK is turned on.  Instead, the user is
		told that the sysop is unavailable.
	    chatloud
		A variation of the `chat` command, but louder.  The use
		of ChatCommand and SCROLL LOCK are the same as for
		`chat`.
	    version
		Display version and copyright notice.
	    rem [ignored]
		No action.
	    cls
		Clear screen.
	    jetbbs
		The Self-Download feature.
	    dochat
		Chat mode.  To exit, press [@].  By default, the key for
		this command is [@] and is global.
	    calldos <command_line>
		Executes a DOS command.  This command requires more
		memory than usual, typically about 60k more plus any
		additional memory used by whatever is executed.  Remember
		that whatever is printed on the screen while executing
		another program through this command is not sent through
		the modem unless the program is specifically designed to
		do so.  What's worse, if the program asks a question and
		waits for a key to be pressed, it will go to the local
		keyboard and there will be no way for a remote user to
		make it continue until someone presses the key locally.
		See also `sysopcalldos`.



				      - 46 -


	    callexe <command_line>
		Similar to `calldos`, but does not use COMMAND.COM, so it
		cannot call batch files, but it is a slightly faster and
		uses less memory than `calldos`.
	    editfile <filename> [headernumber]
		Uses the message editor to write the specified file.
		<filename> must be set in the MNU file; it is not
		intended for users to specify a file to write.  See the
		`sysopeditfile` command if you want to read in, edit, and
		save a file that is specified at the time the command is
		used.
		    The [headernumber] codes are:
		     0 = No header
		     1 = Message
		     2 = E-mail
		     3 = Check
		     4 = Letterbomb
		     5 = Anonymous
		     6 = Touch
	    setprompt <text>
		Sets the command prompt.  A ": " is added to the end, so
		leave the colon off in <text>.  You can use %var%
		replacement keywords in the prompt.  `setprompt` should
		be used in the "[do]" block of MNU files.  An example for
		SUB.MNU:
		     [do]
		     setprompt %sub%/%room%-%roomname%
		     [menu]
		     ...
	    setpromptquote <text>
		Similar to `setprompt` but doesn't add ": ", and requires
		quotes around <text> so the spaces before and after can
		be exactly as you entered them.
	    input <character_limit> [print]
		Inputs up to <character_limit> characters and sets
		%inputret% with what was typed.  If <character_limit> is
		1, it will return after a single keystroke, without
		waiting for enter to be pressed.
	    inputnoecho <character_limit> <time_limit_seconds>
		Inputs up to <character_limit> characters at half duplex
		and sets %inputret% with what was typed.  If
		<character_limit> is 1, it will return after a single
		character, without waiting for enter.  If
		<time_limit_seconds> is 0, there is no time limit.  This
		function is intended for reading from the modem in
		command mode.

				      - 47 -


	    yesno [print]
		Inputs a "y" or "n" and sets %yesnoret% to YES or NO.
	    appendfile <filename> <print>
		Adds a line to the end of a file.  You can use this to
		make your own log files.  Example:
		     appendfile doors.log User %name% entering door menu.
	    waitseconds <seconds>
		Do nothing for <seconds> seconds.
	    let <var> = <value>
		Sets %var% to <value>.  Do NOT include the %'s around
		<var> in the `let` command.  <var> can be a pre-defined
		variable, for example %level%, or a name that you choose.
		An example of a `let` command:
		     let level = 3
	    eval <var> = <mathematical expression>
		`eval` evaluates the expression and then assigns it to
		<var>, like `let` does.  Valid operators are +, -, *, /,
		%, (, ).  Some examples:
			eval level = %level% + 1
			eval onetosix = %rand% % 6 + 1
		The numbers are integers in the range of +/- 2.14
		billion.  Divide operations round down immediately, so
		for example:
			eval x = 2 / 3 * 100
		would set x to 0, since 2 / 3 rounded down = 0.  To get
		the desired result of 6 do the division last:
			eval x = 100 * 2 / 3
	    qwkexportqwkfile <pathname>
		Creates a QWK file named <pathname>.  If <pathname> is
		just a filename, it will be placed in the BBS directory,
		or you can give a full pathname.  Example,
		C:\BBS\JET.QWK.
	    qwkimportrepfile <pathname>
		Takes a REP file and adds its messages and e-mail to the
		system.  The REP file is not deleted after it is
		imported.  E-mail can be addressed to an account number
		or give a full name or partial name to search for, but if
		the search is ambiguous, the e-mail will be returned to
		the sender.
	MULTI-LINE
				      - 48 -


	    who
		Lists users on-line and the ports they're on.  If
		RamDriveDir is set, it also tells their location.
	    location <text>
		Sets the location field shown in the `who` command.  The
		command has no effect if RamDriveDir (in BBS.INI) is not
		set.
	    touch [user] [message]
		Sends a message to a user on-line, which is received the
		next time he gets to a command prompt, or immediately if
		he is already sitting at one.  If [message] or both
		[user] and [message] are omitted, the sender is prompted
		for the information.  The command is rejected if the
		recipient is not on-line.
	    broadcast [message]
		Sends a message to all users on-line except the sender.
		If [message] is omitted, the user is prompted for it.
		Although the command line can only take 80 characters,
		the message prompt will accept up to 4 lines, so larger
		messages can be sent by letting it prompt.
	    talk [channel]
		Enters the multi-user chat area.  If [channel] is not
		specified, general area 0 is the default.
	    setdoordir <directory>
		See door section.
	    setdoornum <number>
		See door section.
	PHONE LIST
	    readphonelist
		Print the phone list.
	    phonelist
		Add a new BBS to the end of the phone list.
	PRINT
	    print [text]
		Prints a line of text.  If [text] is omitted, a blank
		line is printed.
	    printtolog [text]
		Prints like the `print` command but prints to LOG.TXT.
	    pause [text]
		Prints [text] like the `print` command, then waits for a
		keypress.  Unlike `print`, nothing is printed if [text]
		is omitted.
				      - 49 -



	    printfile <filename> [text]
		Prints a file.  If [text] is given, it is printed before
		the first line, but only if the file is found.  If the
		file is not found, nothing is printed.  %printfilere% is
		set to ABORT, SKIP, FILENOTFOUND, or NORMAL if there was
		no error.
	    help
		Prints the .HLP file in TextDir corresponding to the menu
		name.  If a key is pressed, the printing is aborted and
		the key is sent through to the menu, so you don't have to
		wait for the menu to finish before pressing the key
		command.  The exception is for the [P] key, which pauses.
		If the user has ANSI turned on and a .ANS file exists
		with the same name, the .ANS file is displayed instead of
		the .HLP file.
	SUB-BOARDS
	    subknown
		Lists the rooms accessible at the user's Sub-Board access
		level, in a slightly different format from the regular
		knownrooms.
	    postsubad
		Posts the one-line advertisement that is listed before
		choosing a Sub-Board.  It only shows up to users who have
		access.
	    writetitlepage
		Posts the title page printed as users enter the Sub-
		Board.  If one exists already, it is read into the editor
		buffer to be edited.  To start over from scratch, enter
		".c".
	    subuser [user]
		Set a user's Sub-Board access level.  Each Sub-Board has
		its own set of access levels.  All users start out at
		level 0.  Level 9 gives access to the subop menu, and 99
		is the highest allowable level.  A negative levels can be
		used to shut a user out of a public Sub-Board.  Subops
		can change the level of users below their own access
		level, but not equal or above, so they can make sub-
		subops without risking being demoted by them.  The
		restrictions are waived when a sysop is using the
		command.
	    listsubusers
		This lists everyone who has a Sub-Board access level
		other than 0.
	    subopsetsubop
		Subop access can be given out on a room by room basis.
				      - 50 -


	SYSOP
	    sysopcalldos [command_line]
		This is like `calldos` but designed for the sysop to
		enter the command line.  The command has
		RemoteSysopPassword protection and also warns of some of
		the possible ways that the system could get locked up if
		the wrong program is executed.
	    sysopshell
		This starts a simulated DOS command prompt and
		retransmits any stdout printing to the modem.  This
		command has RemoteSysopPassword protection and also warns
		of some of the possible ways that the system could get
		locked up if the wrong program is executed.  Since this
		command only retransmits output to stdout, you won't see
		error messages printed to stderr, or anything written
		directly to the screen.  Be careful not to run anything
		that will wait for a keypress, because it would be
		waiting for a keypress on the BBS computer.
	    sysopviewuser [user]
		Shows information about a user, including information
		that is only for sysops to see.
	    sysopedituser [user]
		Edits a user's account.  To improve access level
		security, there is a RemoteSysopPassword restriction on
		creating a level 8 or above account, and on lowering a
		level 8 or above account.  In other words, you have to
		have the RemoteSysopPassword to cross the boundary
		between lv7 and lv8, in either direction.  Passwords are
		not displayed from remote and cannot be set remotely.
	    sysopsettimeleft
		Sets the time left for all users or all users of a
		certain level.  Admittedly, this command is not very
		useful.  RemoteSysopPassword protected.
	    sysopaddtime [user]
		Add time to an account.  This is a quicker, easier way to
		add time than using sysopedituser, doing the addition in
		your head, and re-entering the total time.  If a user's
		time left exceeds MinutesPerDay set in BBS.INI, it will
		not be affected until it falls below MinutesPerDay.
		MinutesPerDay never pulls it down.  On a pay system, you
		can give out time to paying users and set MinutesPerDay
		to the freebie daily time that users get if they haven't
		paid or if they've run out of paid time.
	    sysopdeleteuser [user]
		Sets a user's access level to -1 so when he tries to log
		on he will see the file DELETED.TXT and be logged off.
		This is the same as using sysopedituser to set level -1.
		RemoteSysopPassword protected.
				      - 51 -



	    sysopdelmsg [number]
		Delete a message and copy it into LOG.TXT.  If you want
		to revoke credits, you have to do it yourself.  Usually
		the posting credits will still be in "Delayed posting
		credits" so you can revoke them before the offender has
		even received them.
	    sysopmovemessage [number] [roomdest]
		Moves a message to another room or sub-board.  Can be
		accessed by level 5 users with "/move".  The moved
		message is reposted as new.
	    sysopreadlog
		First flushes out any log entries still stored in memory,
		then prints LOG.TXT.
	    sysopdellog
		Delete LOG.TXT.
	    sysopreadfile [filename]
		Views a text file.  RemoteSysopPassword protected.
	    sysopeditfile [filename]
		Uses the message editor to edit a text file.  If the file
		already exists, it is read into the editor buffer.  To
		stop the listing, press space.  If you would rather start
		from scratch, type ".c" to clear out the old file.
		Usually, [filename] is not specified in MNU file, so the
		sysop can specify it at the time the command is used.
		RemoteSysopPassword protected.
	    sysoppostnews
		Posts the Board News message and marks it as new.  It
		will be read to the next 30 callers and then only to
		users who haven't seen it once.
	    sysopsetroomname
		Sets a room's name and access level.  Press enter on a
		blank line if you don't want to change something.
	    sysopsetroomaccess
		Sets room access options.  If any access options are set,
		users must have one of the access options as well as the
		required access level to access the room.
	    sysopsetsubop
		This sets the subop of an individual room.  The specified
		user can press & in the room to access the subop menu to
		name the room, set the access level, and delete messages.
	    sysopopenclosesub
		Toggles a Sub-Board open or closed.  This is the same as
		setting the access level of the first room to 0 or 100.
				      - 52 -


	    sysopeditxferareamnu
		Uses a special editor to edit XFERAREA.MNU.
	    sysopeditdoormnu
		Uses a special editor to edit DOOR.MNU.
	TRANSFERS
	    gototrans <download_dir> <upload_dir> <x-fer_section_name>
		Sets the transfer area and performs a `goto` to the menu
		X-FER.MNU.  To make a download-only transfer section, set
		<upload_dir> to NOUPLOADDIR.  For an upload-only transfer
		section, set <download_dir> to NODOWNLOADDIR.  This
		command sets the replaceable keywords %dldir%, %uldir%,
		and %transname%.
	    gotodownload
		This command lets the user search FILES.TXT for a file to
		download.  If one is found, it performs a `goto` to
		DL.MNU.  The filename is stored in %xferfilename%.
	    gotoupload
		Asks for the filename of the upload and then does a
		`goto` to UL.MNU.  The filename is stored in
		%xferfilename%.
	    xmodemsend <filename>
		Download a file using built-in Xmodem.  This command is
		used in DL.MNU like this:
		     xmodemsend %xferfilename%
	    xmodemreceive <filename>
		Upload a file using built-in Xmodem.  This command is
		used in UL.MNU like this:
		     xmodemreceive %xferfilename%
	    asciidl [filename]
		Download a file as ASCII.  The user is prompted for the
		filename if [filename] is omitted, but usually the
		filename is given by %xferfilename%.
	    asciiul [filename]
		Upload a file as ASCII.  The user is prompted for the
		filename if [filename] is omitted, but usually the
		filename is given by %xferfilename%.
	    transdl <command_line>
		Calls an external transfer protocol by using `calldos`.
	    transul <command_line>
		Calls an external transfer protocol by using `calldos`.
		If the return code from the transfer indicates success,
				      - 53 -


		it prompts for a file description and adds a line to
		FILES.TXT.  See also `calldos`.
	    addunlistedfiles
		This command searches the download directory for files
		not listed in FILES.TXT.
	USERLOG
	    listusers
		Lists the entire userlog.  At the end, it prints the
		richest user that it found, based on how many credits the
		user had in the bank.  Credit in the mail or in a casino
		game is not counted, and sysops are not included in the
		search.
	    callingtimeschart
		Displays a spiffy looking 3D bar chart of the frequency
		of calls at each hour of the day.
	    callingtrendweeks
		Displays a chart of the number of calls over the past
		several weeks.
	    callingtimesdayofweek
		Days-of-the-week calling chart.
	    viewcallerlog
		Lists the last few callers and when they called.  The
		length of the list is controlled by the length of the
		file SYS\CALLERS.TXT.  To make the list shorter, delete
		lines from the file; to make it longer, add lines.
	    viewuser [user]
		Prints information about another user that is considered
		OK to give out to non-sysops.  The sysop version of this
		is `sysopviewuser`.
	    userlogbystring [keyword]
		Searches the userlog by a text keyword.  The following
		fields are searched:
		     Name
		     UserInfo1
		     UserInfo2
		     Last call date
		     Level
		     Calls
	    userlogbynumber
		Searches the userlog by one of 6 numeric user info
		fields, listing all that are greater or less than a
		certain value.

				      - 54 -


	    viewyourself
		This command was replaced by STATS.MNU, and does about
		the same thing.
	    zapstats
		Edit your user information, everything except password.
	    changepassword
		Change password.
	VOTING POLL
	    pollvote
		Vote.  Voting is allowed once per call.
	    viewpoll
		View the results of the voting polls.
	    makepoll [number]
		Make a new voting poll.  Enter the question, then enter
		up to eight choices.  If you don't need all eight
		choices, press enter on a blank line to finish.  To
		delete a poll, press enter on a blank line for the
		question and for the first choice.






























				      - 55 -


			  Chapter 12 - Software License
	SOFTWARE LICENSE
	You are free to copy and distribute the files of the shareware
	version of JetBBS so long as they are not modified in any way and
	they are distributed together.  You may use JetBBS for an
	evaluation period of 30 days, but after that you must register if
	you are going to continue to use it.  See the registration form at
	the end of this document or the file REGISTER.FRM for registration
	instructions.
	VENDINFO
	The attached VENDINFO data record is hereby incorporated by
	reference.  Any distribution satisfying all the distribution
	requirements expressed in that data record is hereby authorized.
	DISCLAIMER
	This software is provided on an "as is" basis without warranty of
	any kind, expressed or implied, including but not limited to the
	implied warranties of merchantability and fitness for a particular
	purpose.  The author will not be liable for any special,
	incidental, consequential, indirect or similar damages due to loss
	of data or any other reason, even if the author or an agent of the
	author has been advised of the possibility of such damages.  In no
	event shall the author's liability for any damages ever exceed the
	price paid for the license to use the software, regardless of the
	form of the claim.  The person using the software bears all risk
	as to the quality and performance of the software.
	ACKNOWLEDGEMENTS
	This product uses the SPAWNO routines by Ralf Brown to minimize
	memory use while shelling to DOS and running other programs.


















				      - 56 -


				Registration Form
   Name___________________________________________________________
   Address________________________________________________________
   City___________________________State_________Zip_______________
   Country___________________________
   Your Internet address, if you have one: _______________________________
   (Optional) Name and phone# of your BBS: _______________________________
   (Optional) OK to publish BBS number?  [ ] Yes  [ ] No
   Disk format:	 [ ] 3.5" 1.44MB   [ ] 5.25" 1.2MB
		    [ ] 3.5" 720K     [ ] 5.25" 360K
   JetBBS Registration.....................................$59.95 _______
     Printed manual.
     Latest registered version and utilities.
     Free upgrade to next major version sent when it is released.
     Low priced upgrades for all future versions after that.
     Access to the registered files area on the support BBS.
     An assortment of shareware door programs.
     Newland, a door game by me, installed by the installer.
     Animouse, animated mouse cursors for Windows, also by me.
     Map for the Adventure door game.
     Blackjack casino game.
     Callback verifier.
   CD-ROM of Shareware with Auto-Installer for JetBBS......$19.95 _______
     Just run the SETUP.EXE program, enter your
     JetBBS directory and the drive letter of your
     CD-ROM drive, and it installs a download menu
     in your transfer area. The menu breaks it down
     by areas of interest, or choose the All Files
     section to search the entire disk.
   WA State residents add 8.2% sales tax			  _______
   Shipping and Handling, $3 in U.S. & Canada, $8 foreign	  _______
   Shareware Distrib
   ID: 0123456789#				 Total U.S. Funds _______
   Send CHECK or MONEY ORDER to:     Troy Beckstrom
				 2318 Second Avenue #492
				    Seattle, WA 98121




				      - 57 -



				      Index
	%variable%, 10, 34		   Calltrends, 27
					   Capture, 29
	&C1, 20				   CAPTURE.TXT, 29
	&D2, 20				   CarbonCopyFeedbackTo, 43
					   Carrier detect, 20
	Access levels, 25, 28, 49, 51	   Casino, 39
	Access options, 42, 51		   casinogamesetsellingprice, 39
	Add time, 50			   CD-ROM, 16
	addunlistedfiles, 52		   CHAIN.TXT, 11, 40
	AllowEscChar, 8			   changepassword, 53
	Anonymous post, 25		   chat, 10, 28, 45
	AnswerOnRing, 20		   Chat call, 10, 29, 45
	appendfile, 46			   ChatCommand, 45
	ASCII, 52			   chatloud, 10, 31, 45
	asciidl, 52			   checkautomessage, 38
	asciiul, 52			   checkboardnews, 38
	Auto-answer, 19, 22		   checkmail, 43
	AUTOEXEC.BAT, 13		   Checks, 38
	Auto-message, 26, 38		   cls, 45
					   Command prompt, 46
	Bank, 38			   CONFIG.SYS, 13
	BANK.MNU, 15, 38, 39		   craps, 39
	BBS list, 26, 48		   crapscredit, 39
	BBS.INI, 8, 9, 12, 13, 15, 17,	   crapsowner, 39
	 20, 21, 28, 33, 43, 44, 45,	   CTRL+BREAK, 29
	 47, 50				   CTRL+C, 29
	bignum, 39			   Customization, 7
	bignumcredit, 39
	bignumowner, 39			   Daily events, 12
	Board news, 26, 38, 51		   Delete message, 24
	borderauthors, 38, 40		   DELETED.TXT, 50
	Borderlines, 26, 40		   delmsgbyuser, 44
	broadcast, 13, 48		   DESQview, 4
	Buy time, 38			   Dimension Nine BBS, 5
	buycasinogame, 39		   DL.MNU, 52
	buyletterbombkit, 38		   dochat, 45
	buylevel, 38			   Door drop files, 11, 40
	buytime, 38			   Door programs, 11
					   DOOR.MNU, 11, 41, 51
	Calldays, 27			   DOOR.SYS, 11, 40
	calldoor, 40			   Doors, 40
	calldoor2, 41			   DORINFO1.DEF, 11, 40, 42
	calldoornoswap, 41		   double, 39
	calldos, 45			   doublecredit, 39
	Caller log, 27, 53		   doubleowner, 39
	CALLERS.TXT, 27, 53		   Drop files, 11, 40
	callexe, 45			   DTR, 20
	CALLINFO.BBS, 11, 40
	callingtimeschart, 53		   Edit user, 28
	callingtimesdayofweek, 53	   editfile, 45
	callingtrendweeks, 53		   E-mail, 25, 43
	Calltimes, 27			   Escape character, 8
				      - 58 -


	eval, 47			   LOG.TXT, 50
	EVENT.BAT, 12			   Logoff, 43
	Events, 12			   LOGOFF.TXT, 7
					   Logon messages, 26
	fastlogoff, 43			   LOGON.TXT, 7
	Features, 4
	feedback, 43			   Mail, 43
	File transfers, 26		   MAIN.MNU, 9, 10, 30
	FILES.TXT, 52			   makepoll, 54
	FIRST.MNU, 10, 33, 36, 43	   Message base, 23, 44
	Forced logoff, 28		   Message base scrolling, 27
	Function keys, 28		   Message editor, 24, 45, 51
					   Microsoft Windows, 4, 13, 14
	Gameop, 39			   MidnightEvent, 12
	global, 44			   MinutesPerDay, 15, 50
	GLOBAL.MNU, 30			   Miscellaneous, 44
	goto, 31, 42			   MNU, 9, 10, 30, 31
	Goto new messages, 24		   MNU files, [do] block, 33
	gotodownload, 52		   MNU files, [menu] block, 30
	gotoh, 42			   ModemInitStrings, 20
	gotoifaccess, 42		   Modems, 19, 20, 21, 22
	gotoifchargecredits, 39, 43	   MSG.MNU, 10, 25
	gotoifnotaccess, 43		   MSGFIX utility, 17, 18
	gotomsg, 42			   MSGLIST.DAT, 18
	gotonew, 44			   Multi-line, 12, 13, 14, 41, 47
	gotoprev, 42			   Multitasking, 14
	gototrans, 51
	gotoupload, 52			   Newscan, 23, 44
	greed, 39			   Newscan pointers, 24, 44
	greedcredit, 39			   NEWUSER.TXT, 7
	greedowner, 39			   NO300.MNU, 43
	Hayes compatible, 19		   Options, 42
	help, 48			   OS/2, 4
	if, 43				   Password, 27, 28
	ifnot, 43			   pause, 48
	IMPORT utility, 17		   Pause between messages, 23
	input, 46			   Pay system, 15
	inputnoecho, 46			   PayCreditsForPosting, 16, 44
	Installation, 6			   Phone list, 26, 48
					   phonelist, 48
	jetbbs, 45			   PIF, 15
	JETBBS.DAT, 6			   pollvote, 53
	JETBBS.PIF, 4, 14		   post, 44
	JETLOCAL.PIF, 15		   postautomessage, 38
	JETSETUP.EXE, 6			   postborder, 40
					   postborderanon, 40
	knownrooms, 44			   postsubad, 49
					   Preload, 33
	let, 46				   Print, 48
	Letterbomb, 38			   printfile, 48
	listsubusers, 49		   printtolog, 48
	listusers, 52
	location, 47			   qwkexportqwkfile, 47
	Lock file, 14			   qwkimportrepfile, 47
	LOCK#.TXT, 14


	RAMDRIVE, 13			   sysopeditxferareamnu, 51
	RamDriveDir, 13, 47		   sysopmovemessage, 50
	Read messages, 23		   sysopopenclosesub, 51
	readborders, 40			   sysoppostnews, 51
	readmsg, 44			   sysopreadfile, 51
	readphonelist, 48		   sysopreadlog, 51
	RefundPostingTime, 15		   sysopsetroomaccess, 51
	rem, 45				   sysopsetroomname, 51
	RemoteSysopPassword, 9, 49,	   sysopsetsubop, 51
	 50, 51				   sysopsettimeleft, 50
	Replacement keywords, 34	   sysopshell, 49
	roomdown, 44			   sysopviewuser, 50
	roomjump, 44			   System requirements, 4
	Rooms, 23, 24
	roomup, 44			   talk, 14, 48
	roulette, 39			   Temporary sysop, 28
	roulettecredit, 39		   TextDir, 48
	rouletteowner, 39		   touch, 13, 47
					   transdl, 52
	S0=, 20				   Transfers, 26, 51
	SCROLLDN.COM, 41		   transul, 52
	Scrolling, 27
	See border authors, 26		   UL.MNU, 52
	selltime, 39			   Ungoto new messages, 24
	sendcheck, 38			   ungotonew, 44
	sendletterbomb, 38		   User info, 27
	sendmail, 43			   UserInfo1, 53
	Set newscan pointers, 24, 44	   UserInfo2, 53
	setdoordir, 41, 48		   Userlog, 27, 52
	setdoornum, 42, 48		   Userlog scrolling, 27
	setnewscan, 44			   userlogbynumber, 53
	setprompt, 46			   userlogbystring, 53
	setpromptquote, 46
	SHARE, 13			   version, 45
	six, 39				   viewcallerlog, 53
	sixcredit, 39			   viewpoll, 54
	sixowner, 39			   viewuser, 53
	slot, 39			   viewyourself, 53
	slotcredit, 39			   virushunter, 39
	slotowner, 39			   virushuntercredit, 39
	STATS.MNU, 10, 27, 53		   virushunterowner, 39
	Status bar, 28			   Voting polls, 53
	SUB.MNU, 46
	Sub-boards, 25, 49		   waitseconds, 46
	subknown, 49			   who, 13, 47
	subopsetsubop, 49		   Windows, 4, 13, 14
	subuser, 49			   Wish list, 56
	SYS\CALLERS.TXT, 53		   writetitlepage, 49
	Sysop, 49
	sysopaddtime, 50		   X-FER.MNU, 51
	sysopcalldos, 49		   XFERAREA.MNU, 51
	sysopdeleteuser, 50		   Xmodem, 52
	sysopdellog, 51			   xmodemreceive, 52
	sysopdelmsg, 50			   xmodemsend, 52
	sysopeditdoormnu, 51
	sysopeditfile, 51		   yesno, 46
	sysopedituser, 50		   Your user stats, 27
					   Zipscan, 24