ـغغغغغـ  ـغغغغغـ  ـغغغغغـ   ـغغغغـ  ـغغغغغـ  ـغغغغغـ	ـغغغغـ
	 ـــ كغغغ ـــ كغغغ ـــ كغغغ ـــ كغغغ ـــ  غغك ـــ  غغك ـــ  ككك
	 غغغ  غغغ غغغ  غغغ غغغ	غغغ غغغ  غغغ غغغغغغـ  غغغغغغـ	كغغغغـ
	 غغغ  غغغ غغغغغغغغ غغغ	غغغ غغغـ غغغ غغغ  غغغ غغغ  غغغ ـــ  غغغ
	 غغغ  غغغ غغغ  غغغ غغغ	غغغ  كغغغغك  غغغغغغك  غغغغغغك	كغغغغك

                                NanoBBS 1.01
                   Copyright 1994,1995 Whirlwind Software
			     All Rights Reserved

			 Programs and Documentation
				     by
			      Gerald T. Albion

			   - Additional Code by -
			  Mark Dignam and Mark May

			      - Beta Testers -
                       Don St. Germain  John Richards
                        B.J. Verruyt  Jerry Driscoll

		     - Numerous Suggestions Supplied by -
                         Allen Walker  Patrick Wilson
                        Ryan Clifford  Brent Boudreau

			    - This product uses -
     JAM(mbp) - Copyright 1993 Joaquim Homrighausen, Andrew Milner,
			       Mats Birch, Mats Wallin.
			       ALL RIGHTS RESERVED.

			    - Special thanks to -
	      The users of THC Freedom Online BBS, Victoria, BC
	  for their endless patience and priceless assistance in the
		       development of UFO and NanoBBS.

             This document contains references to many trademarks.
             Whirlwind Software acknowledges ownership of all such
                     trademarks by their respective owners.














        NanoBBS Documentation                                   Page 1 




	CONTENTS

        Introduction  ........................................   3
        Version Numbering  ...................................   6
        System Requirements  .................................   7
        Setting Up NanoBBS  ..................................   8
          - 10 Step Installation  ............................   9
          - Command Line Switches  ...........................  11
        The Configuration File  ..............................  13
        Message Areas  .......................................  29
          - Examples  ........................................  29
          - Keyword Reference  ...............................  31
        File Areas  ..........................................  34
          - Examples  ........................................  34
          - Keyword Reference  ...............................  36
        Doors  ...............................................  38
        The Black Art of Batch File Writing  .................  41
        NanoBBS Utility Programs  ............................  53
        External Files  ......................................  54
          - Various Configuration Files  .....................  54
          - FILES.BBS  .......................................  57
          - Semaphores  ......................................  60
          - ASCII/ANSI/RIP files in /BBS/MISC  ...............  61
          - NanoCHAT external files  .........................  64
        Keys While The User Is Online  .......................  65
        A Tour of NanoBBS's canned main menu interface .......  67
        Language Files - Customizing almost Everything!  .....  72
        Embedded Colour Commands  ............................  75
        NanoCHAT - Setting up NanoBBS as a chat system  ......  77
        Glossary  ............................................  90
        Contact Information  .................................  96
























        NanoBBS Documentation                                   Page 2 

        ةحثحححححححححححححححححححححححححححححححححححثح»
	؛ ؛ Introduction:  What -is- NanoBBS? ؛ ؛
	بحتحححححححححححححححححححححححححححححححححححتح¼


	NanoBBS is a highly configurable BBS package.  Its features
	include:

	- User-visible output is configurable via language files
	- UFO, a powerful scripting language with access to virtually
	    all system and user variables
	- Built-in NanoCHAT, a teleconferencer based on Whirlwind's
	  TommCHAT teleconference door.  You don't pay extra for
	  multiuser chat with NanoBBS!
	- Your choice of *.MSG, Squish, or JAM message bases
	- Up to 65535 message areas and 65535 file areas
	- Full internal support for CD-ROMs including a fast
	    copy-to-temporary-file function and alternate FILES.BBS
	    directories
	- Users can embed colours in messages
	- An internal full screen message editor
	- High speed file searching and new-file scans
	- Works up to 115200 bps with or without a FOSSIL
	- Convenient internal user editor
	- Sysop-definable time limits by access level
	- Account expiry can be set for any date
	- Doors can be age-restricted, no worries about minors playing
	    adult doors!
	- File areas and message bases can be restricted by age - give
	    users adult access on their 21st birthday automatically!
	- Message bases can be restricted by gender, for "ladies only"
	    echoes etc.
	- Users may logon with real name, pseudonym or user number,
	    whichever is easiest!
	- New User Password and System Password features add virtually
	    impenetrable extra security to private systems!
	- SysOp can select between a canned hardcoded BBS or build a
	    completely new one using UFO scripting
	- Lists (file areas, message areas, users, etc) can be
	    automatically displayed in one, two or three columns
	- Multi-node aware and Desqview friendly!  Node numbers can even
	    be passed to doors!


	APPEARANCE: IF UNIQUENESS IS IMPORTANT TO YOU!

	Although NanoBBS excels in many areas, it is designed first to
	give its sysop the maximum flexibility in configuring the
	function and appearance of the BBS.  The UFO scripting language
	allows you to build entire menus and call upon virtually all
	functions of the BBS from within a text file!  And, the messages
	that would normally be hardcoded in other BBSes are located in a
	RAM-based language file which can be modified or totally
	rewritten as the SysOp sees fit!  What's more, NanoBBS does not
	require an ANSI driver like so many other lesser BBSes, in fact



        NanoBBS Documentation                                   Page 3 

	it doesn't even need separate ANSI and ASCII files for system
	text files, although it does allow the separate files.	If a
	user has ANSI turned off, the BBS can strip ANSI codes on the
	fly, and even expand horizontal ANSI cursor movements into
	spaces or backspaces as needed!  Of course, automatic ANSI
	detection is standard and can be turned off if desired!  Random
	welcome screens are also a supported standard feature!	And a
	comprehensive RIPScrip suite is built into the UFO script
	language and in the system language files, so that you can make
	RIPScrip screens in plain English without buying an expensive "Rip
	Draw" type of program.  And, there are forty sysop-definable
	sysop keys for ultimate convenience!

	SECURITY: TAKE CONTROL OF YOUR BBS!

	NanoBBS is also designed with security in mind, with NUPs and
	system passwords, and the ability to restrict message areas
	based on age and sex, and file areas based on age.  These
	features alone make NanoBBS ideal for an adult BBS or an
	exclusive private system, but once you've moulded NanoBBS's form
	and performance to your ideal image you'll want to put it online
	for everyone to use!  The BBS also supports "expiring" accounts
	which allow a time-limited access level, which takes all the
	work out of keeping track of accounts on pay systems!  You can
	set accounts to expire anywhere from a day to 50 years in the
	future, or you can have no expiry date at all! You can also
	select which questions in the new-user questionnaire are
	required and which ones are optional, and even which ones will
	be asked at all!  All file areas can have a different directory
	set for uploads than for downloads, allowing the sysop to screen
	uploads in private before making them available to users!  This
	prevents pirated programs from being distributed on your BBS
	without your knowledge!  There are also "barricades" which let
	you unobtrusively and judiciously remove certain individuals
	from certain message areas without otherwise lowering anyone's
	access.  A programmable "trashcan" and "message censor" round out
	the list of features designed to protect you and your BBS from
	abuse!

	HIGH SPEED FILE SECTIONS!

	NanoBBS is also designed with very large file sections in mind!

	With the author's own BBS totalling almost 2 gigs online, the
	problems of quickly finding and accessing files on a large
	system are all too apparent.  So, a number of special caching
	routines and high-speed file indices have been implemented to
	give the maximum search and retrieval speed possible!  If you
	run a small or average BBS, searches will be nearly
	instantaneous.	The author's BBS has some 20,000 files and any
	one can be located in seconds!

	In addition, you can set any file area to be a CD-ROM area!  You
	can set a directory for FILES.BBS that is separate from the CD
	so that you will be able to remove files that you don't want



        NanoBBS Documentation                                   Page 4 

	users to access, or change the descriptions!  Downloads from
	CD-ROM areas are accomplished by first copying the file(s) from
	the CD to a temporary directory, to minimise the problems of
	speed and system resource usage that arise from directly
	downloading from a CD.	SysOps who want to preview a CD without
	taking the BBS down can hit a "CD OUT" key at the wait-for-call
	screen, and immediately all CD file areas are shut off, allowing
	you to change the CD and examine another one without worrying
	about a user trying to access a file on the one you just took
	out...

	Of course, file upload/download ratios by kilobyte are also
	supported, giving you complete control over file leeches!













































        NanoBBS Documentation                                   Page 5 

        ةحثحححححححححححححححححححثح»
	؛ ؛ Version Numbering ؛ ؛
	بحتحححححححححححححححححححتح¼

	NanoBBS version numbers can be used to distunguish one version
	from another in the following ways:

				     1.00a
				     | |||
				     | |||
	     Major Revision ---------' |||
	     Minor Revision -----------'||
	     Maintenance Release -------'|
	     Bug Fix --------------------'

	So, for example, 2.00a differs from 1.00a in that 2.00a is a
	Major Revision, for example the structure of one or more data
	files has changed, or some new feature or set of features has
	been added that drastically improves or changes NanoBBS's
	appearance and function.

	Likewise, 1.10a is different from 1.00a in that 1.10a has new
	features, for example a new file searching mode or a new message
	base format.

	1.01a is different from 1.00a in that 1.01a is a maintenance
	release.  This means some improvement to the existing function
	of the BBS, for example the reduction of memory usage for a
	particular function or the improvement in the speed of some part
	of the BBS.

	1.00b is different from 1.00a in that 1.00b contains fixes for
	bugs that existed in 1.00a.

	All these are just examples.  As NanoBBS evolves, there will no
	doubt be many different version numbers.






















        NanoBBS Documentation                                   Page 6 

        ةحثحححححححححححححححححححححثح»
	؛ ؛ System Requirements ؛ ؛
	بحتحححححححححححححححححححححتح¼

	- An 80286 or better IBM compatible computer with at least 512k RAM
	- At least 20 megabytes of hard disk space (recommended)
	- A modem, any speed (at least 14400 recommended)
	- A standard serial port, or a multi-serial board with a special
	    FOSSIL driver
	- A FOSSIL is required
	- A flat-ASCII text editor such as QEdit or the DOS full screen
	    editor is a must for editing configuration files
	- An external Message Editor such as MsgEd or GoldEd is
	    recommended
	- An external File Area Manager such as FEBBS or Fido-Fam is
	    recommended
	- A RAM Disk of at least 400k for each node is highly
	    recommended for swapping.

	NanoBBS uses 16-bit 80286 code.  It will not run on an 8088 or
	other 8-bit machine.





































        NanoBBS Documentation                                   Page 7 

        ةحثححححححححححححححححححححثح»
	؛ ؛ Setting up NanoBBS ؛ ؛
	بحتححححححححححححححححححححتح¼

	NanoBBS can be run "out of the box" by taking a few very simple
	steps.	OK, if you're totally new at this, the steps won't seem
	all that simple, so I will try and make this as painless as
	possible.  Because it is impossible for me to predict the
	numerous configurations of computers, software, and paths that
	NanoBBS will be installed on, I can only give general
	installation instructions.

	If you find you just can't get NanoBBS going no matter what you
	do, first re-read these instructions and make sure you haven't
	missed something, then if that doesn't succeed ask someone else
	who is running NanoBBS if they have had a similar problem and
	how they solved it.  If that doesn't work (or if you can't find
	someone else who runs the software) then feel free to drop me a
	line by netmail or on my BBS.  Be specific about what's
	happening with your system.  To contact me, see the netmail
	address and BBS phone number at the end of this file.

	If this is the first time you have installed NanoBBS, be warned
	that NanoBBS will try to install itself in the C:\BBS directory.
	You can move it to another directory after it is installed, but
	you'll need to change the paths in all of your configuration
	files if you do this.

	Before you install NanoBBS, make sure your system meets the
	following minimum requirements:

		- You need a hard disk with at least several megs free.
		- You need about 380 kilobytes of RAM free.  This is
		  inconsequential for most installations, but it might
		  be an issue if you are using a multitasker such as
		  DesqView.
		- You need a FOSSIL driver, revision 5 or later.
		  Several common FOSSILs are X00, BNU, and OpusComm.
		  The FOSSIL must be installed and available before
		  NanoBBS is able to run.  Check your FOSSIL
		  documentation for installation instructions.

















        NanoBBS Documentation                                   Page 8 

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ 10 Step Installation ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	 عؤؤؤ؟
	 ³ 1 ³ To install NanoBBS, just run INSTALL.BAT.  The batch file
	 ہؤؤؤظ will unpack the program files, and will then determine
	       whether it needs to also install the ASCII and ANSI and
	       RIP files, and whether it should install default
	       configuration files.  It will also install and compile
	       the laguage files.

	       Once INSTALL is complete, you need to take the following
	       general steps, which will be explained in much greater
	       detail later in this manual...

	 عؤؤؤ؟
	 ³ 2 ³ Edit NODE1.CTL (using an ASCII text editor or word
	 ہؤؤؤظ processor in ASCII mode) to your specifications.  Set the
	       proper paths, com ports, baud rates, modem control and
	       response strings, default access levels, events, and
	       everything else that needs to be adjusted to your
	       requirements.  NODE1.CTL is the main configuration file
	       containing most of the general setup of the BBS.  See the
	       chapter titled "The Configuration File" for a complete
	       explanation of the use of this file.

	 عؤؤؤ؟
	 ³ 3 ³ Edit MSGAREA.CTL to your specifications.  MSGAREA.CTL is
	 ہؤؤؤظ the file which defines your message areas.  Make sure to
	       specify correct paths, access levels, and to use the
	       message base type (Squish, JAM or *.MSG/Fido) which best
	       suits your needs.  And of course feel free to add or
	       remove as many message areas as you like; there can be up
	       to 65,536 of them!  See the chapter titled "Setting Up
	       Message Areas" for a complete explanation of this file.

	 عؤؤؤ؟
	 ³ 4 ³ Edit FILEAREA.CTL to your specifications.  FILEAREA.CTL
	 ہؤؤؤظ is the file which defines your file transfer areas.  As
	       in the message area file, make sure you specify all the
	       right paths and access levels.  Make sure all those paths
	       exist and that there is a FILES.BBS file in each one
	       containing a list of all the files in the area and their
	       descriptions.  As with the message areas, there can be up
	       to 65,536 file areas!  See the chapter titled "Setting Up
	       File Areas" for a complete explanation of this file.

	 عؤؤؤ؟
	 ³ 5 ³ Edit DOORS.CTL to your specifications.  DOORS.CTL is the
	 ہؤؤؤظ file which defines your "Doors" or external programs
	       which are accessible by the users.  Doors are usually
	       games but they can also be interfaces to special
	       databases, "expert" advisory systems, call-back
	       verifiers, or have any number of other functions.



        NanoBBS Documentation                                   Page 9 

         عؤؤؤ؟
	 ³ 6 ³ Type CONFIG NODE1 at the DOS prompt and hit Enter.  This
	 ہؤؤؤظ will convert the four files I just described into a form
	       that is more readily usable by NanoBBS.	This process is
	       called "compiling configuration".

	 عؤؤؤ؟
	 ³ 7 ³ Once this is complete, if all the paths are correct (and
	 ہؤؤؤظ they all exist) you should be ready to go.  Note that the
	       paths do not HAVE to all be defined; NanoBBS will warn
	       you wherever it cannot find a specified path.  Now, just
	       type BBS at the prompt and go through the new-user login
	       procedure.  Make an account for yourself.  Most sysops
	       traditionally make the first account in the system
	       theirs; that makes you user 0 (zero).

	 عؤؤؤ؟
	 ³ 8 ³ Try logging in; you should be able to navigate the system
	 ہؤؤؤظ as a new user right away.  Hit Alt-E to enter the user
	       editor and give yourself SysOp access (the access and
	       keys you have defined in NODE1.CTL for SysOp access) or
	       better!

	       Don't be surprised if NanoBBS says it can't find your
	       message areas and that it's trying to create them.  This
	       is normal the first time out, or whenever the message
	       areas don't actually  exist.

	 عؤؤؤ؟
	 ³ 9 ³ If you're only going to run one node, you can skip this
	 ہؤؤؤظ step. If you run more than one node, you can run multiple
	       copies in the same system directory (the directory
	       specified by the SYSPATH statement in NODE1.CTL) but each
	       copy has to have its own config file.  So, for example,
	       if you are running two nodes, you should make a copy of
	       NODE1.CTL and call it NODE2.CTL.  Edit NODE2.CTL so that
	       its node number, com port and modem settings match those
	       of your second node, and compile it by typing:

			CONFIG NODE2 /Q

	       at the DOS prompt.  The /Q tells CONFIG to ignore the
	       MSGAREA.CTL, FILEAREA.CTL and DOORS.CTL files as these
	       can be shared between the two nodes.  If you've just
	       compiled all these area files, you don't need to do it
	       again until you edit them.

	       Repeat this procedure for as many nodes as you have.  If
	       your nodes are spread out across a LAN, make sure each
	       one specifies a local com port and that all the system
	       and similar paths point to the system directory on one
	       machine.  Otherwise NanoBBS will start creating user log
	       files all over the LAN and the nodes won't be able to
	       communicate with each other.




        NanoBBS Documentation                                   Page 10

        عؤؤؤؤ؟
	³ 10 ³ Now create the batch file(s) necessary to run the BBS.
	ہؤؤؤؤظ If you are running under DesqView or another multitasking
	       environment like OS/2, you should predefine special task
	       configurations for each node.  To run each node, you
	       should have a batch file for each one, and each node must
	       be called with a /C command line parameter specifying the
	       compiled configuration file that the node should use.

	       This is all covered exhaustively in "The Black Art of
	       Batch Files", elsewhere in this manual.

	Once all of this is done, you should be able to run your BBS
	reliably from your main BBS/Mailer batch file or by running your
	multitasker (if its default macro calls the batchfiles for each
	node).	You will, of course, want to customize the ASCII, ANSI
	and RIP files in the MISC directory so that they reflect the
	character and style of your BBS!

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ COMMAND LINE SWITCHES ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	/F{filename.dat} builds the index files necessary for the speed
	   performance of NanoBBS's high-speed file finding functions.
	   Without running BBS /F, NanoBBS will still be able to find
	   files the old-fashioned way (by actually reading through
	   every line of the FILES.BBS files) but this process is much
	   slower. Once the index files are in place, NanoBBS will only
	   be able to find files which are listed in the indices.  This
	   means that newly-uploaded files won't be available until
	   BBS/F is run again. If you don't have a huge file section you
	   may be able to get away with running BBS /F each time NanoBBS
	   exits after each call, but on many systems this will take too
	   long and is better left to a nightly event.	The filename.dat
	   is the file name of the compiled file area file, usually
	   FILEAREA.DAT.

	  If the filename is left off, the program assumes FILEAREA.DAT.

	 عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	 ³ If your users report mysterious bogus files in a FILES.BBS  ³
	 ³ listing, especially at the beginning, this is an indication ³
	 ³ that the File Indices have fallen out of sync with the      ³
	 ³ FILES.BBS.  The solution is to run BBS /F.		       ³
	 ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	/E Invokes the user editor.

	/T{time} indicates to NanoBBS that the mailer needs to be back
	  online in {time} minutes - this is used to force mail events.
	  If necessary, NanoBBS will adjust the user's time online and
	  advise him/her accordingly.





        NanoBBS Documentation                                   Page 11

        /C{config.ext} will cause NanoBBS to load the compiled config file
	  specified.  If this is omitted, NODE1.DAT is assumed.

	/W causes NanoBBS to wait for a caller.

	/B specifies a baud rate.  This is used when passing off from a
	   mailer or other front end.  You should have a SPAWN.BAT or
	   similar batch file generated by your mailer which specifies,
	   among other things, this baud rate.	When this switch is
	   used, the connection is assumed already made and the BBS goes
	   directly to the logon procedure.

	If neither the /B nor /W switches are used, NanoBBS assumes this
	means it is a local session.












































        NanoBBS Documentation                                   Page 12

        ةحثححححححححححححححححححححححححثح»
	؛ ؛ The Configuration File ؛ ؛
	بحتححححححححححححححححححححححححتح¼

	COMPILING THE CONFIGURATION FILE

	NanoBBS uses a flat ASCII text file for system configuration, as
	this approach provides the greatest flexibility and the ability
	to add comments, so that you can rationalise your choices later.

	By default, NanoBBS uses the file NODE1.DAT - referring to the
	fact that by default NanoBBS is node 1 of a multi-user system,
	even if your BBS is only one line.

	In order to create NODE1.DAT, you must first compile NODE1.CTL
	with the CONFIG.EXE program.  CONFIG reads the configuration
	file, line by line, and compiles the text file into a fast
	machine-readable file format and writes it out to a .DAT file.

	To make multiple nodes you need a config file for EACH node.
	So, for example, if you have two nodes, you would first edit
	NODE1.CTL to your specifications for Node 1, including the com
	ports and the external events you want that node to process.
	Then, make a copy of NODE1.CTL, and name the copy NODE2.CTL.
	Now edit NODE2.CTL to the parameters required for Node 2,
	including the com port, baud rate and so forth.

        Once this is complete, you must then run the CONFIG program once
	for each config file.  It is worth noting that you can save some
	time by only doing a "full" config on one node.  Allow me to
	illustrate:

		C:\>config node1

		C:\>config node2 /q

	If you type these two commands at the dos prompt, CONFIG.EXE
	will first compile NODE1.CTL into NODE1.DAT, and will also
	configure the message area files, file area files and door
	configuration files by calling the MMB.EXE, MFB.EXE and
	MAKEDOOR.EXE programs for you.	The second command just compiles
	NODE2.CTL into NODE2.DAT.  The /q parameter tells CONFIG.EXE not
	to bother compiling the file areas and other files a second
	time, which is unnecessary when these files are to be shared
	between nodes - the normal multi-node operating mode.


	SYNTAX OF THE CONFIGURATION FILE

	The configuration file itself is a plain ASCII text file with
	one command per line.  "Commented" lines are ignored, as are
	blank lines and lines which start with unrecognised words.  The
	best way to comment out a line is to start the line with a
	semicolon ";".  Several options (like WIDEOPEN) come commented
	out by default; to activate such options you have to "uncomment"
	them by deleting the leading semicolon.  The commands are not


        NanoBBS Documentation                                   Page 13

	case sensitive, but take care to type the text parameters (such
	as the BBS name in the SYSTEMNAME line) exactly as you want
	users to see them.

	Examples:

	;This line is commented out.
	This line is not.

	The sample configuration file is commented with explanations of
	those commands which I do not consider self-evident, but I will
	explain each one in depth here.  I'll include at least one
	example for each one.

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		    General System Options		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	The NODE parameter specifies which node number the BBS will use
	for multi-user functions such as NanoCHAT.  If you are running a
	one-line BBS this should be set to 1.

	Node		1


	The SYSTEMNAME parameter is the name of your BBS as you want it
	passed to doors in the DORINFO1.DEF file, and in other places
	yet to be supported...

	SystemName	Whirlwind BBS


	The SYSTEMCITY parameter is the location of your BBS; this
	should be the city and state or country it is located in, e.g.
	"Victoria, B.C." or "Peoria, Illinois" or "Paris, France".

	SystemCity	Victoria, B.C.


	The SYSTEMPHONE parameter is your BBS's phone number.  If you're
	running a multi-line BBS with more than one phone number, I see
	no reason why you can't have a different number for each node.

	SystemPhone	604-361-4549


	The SYSOP parameter is your name (or pseudonym).  This is the
	name to which Feedback or and private message to "SYSOP" will be
	addressed.  It is also used by the DORINFO1.DEF door file.

	Sysop		Tommy







        NanoBBS Documentation                                   Page 14

        This is the definition of the "Spinny Cursor" used in long
	message searches.  This example gives a classic "twirling stick"
	spinning cursor which rotates counter-clockwise.  This can be up
	to 16 characters long.

	Spin		\-/|


	This determines whether you want to enable multi-user chat
	features.  This should be commented out if you are running a
	1-line system or if you do NOT want to use multi-node chat!

	MultiNode

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		      Paths and Filenames		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	The SYSPATH is the path to the BBS executables, language files,
	user log, and all miscellaneous system files.  Note; if this is
	missing the BBS will try to read everything from the directory
	where the executable lives.  I have not tested this eventuality
	extensively but it does seem to work for me, however I wouldn't
	recommend relying on it.  Use this parameter!

	SysPath 	C:\BBS\


	This is the path to the .ASC, .ANS, .RIP and compiled UFO (.BBS)
	files.	It is also the path to the NanoCHAT help files and the
	NanoCHAT /m and /i info files and messages.

	TextPath	C:\BBS\MISC\


	The SWAPPATH is the path to a directory where you want Swapping
	files to go.  Each time NanoBBS runs a door or other external
	program such as an archiver, it tries to swap itself out to EMS
	(if the SwapEMS parameter is active) or to disk.  This sets the
	path for disk swaps.  If you have enough memory but not EMS, use
	a RAM disk - it is still much faster than swapping to disk!

	SwapPath	F:\


	This is the path to the IPC files.  If you don't use multi-user
	chat you needn't concern yourself with this, however if you do,
	then this should DEFINITELY be a RAM disk or a directory
	thereof!

	IPCPath 	F:\







        NanoBBS Documentation                                   Page 15

	The TEMPPATH is a directory where files from a CD-ROM are copied
	to before downloading.	Most CD-ROMs are very slow compared to
	hard drives, so the user will find downloads faster and you will
	run less risk of file sharing problems if CD-ROM downloads are
	copied to a temporary disk directory and downloaded from there
	instead.  If you're running a multi-node BBS, you should have a
	separate TEMPPATH for each node on your system.  This is because
	the BBS deletes the entire contents of the temporary directory
	after each logoff, to avoid filling your hard disk with files
	from the CD.

	TempPath	C:\TEMP1\

        The SCANPATH is the path to the individual user scan files.
	NanoBBS lets users select which message areas to include in QWK
	packets and global new-scans, and stores the list of included
	areas in a file for each user.	Since a great many users could
	end up using this feature, a separate directory is necessary for
	these Scan files.

	ScanPath	C:\BBS\MSGSCAN\


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		      Modem Configuration		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	You can embed special functions in all the modem commands.  In
	the modem strings below, "|" (pipe) means carriage return, "~"
	(tilde) means delay 1 second, "'" (apostrophe) means delay 1/20
	second, "^" (caret) means DTR up and "v" means DTR down...


	The COMPORT parameter specifies the com port, e.g. 1 for COM1:.
	It goes without saying that this should be different for each
	node.  If this is set to 0 only local logons will be possible.

	ComPort 	1


	SLOWBAUD is the slowest baud rate allowed.  I run a pretty
	easygoing system so I allow all baud rates, but you may not want
	slower modems tying up your shiny new V.34, so you can set a
	minimum (say, 2400 or 9600) using this command.  If this command
	is commented out, all baud rates are allowed.  This example
	allows baud rates as low as 300.

	SlowBaud	300


	INITBAUD is the "default" baud rate; it is the baud rate to
	initialise the modem and wait for a call.

	InitBaud	38400




        NanoBBS Documentation                                   Page 16

        INIT is simply the string to initialise the modem.  If your
	modem has an NV-RAM feature and is properly configured you
	should only need to use "ATZ|".  This example does just that
	but also forces the speaker off.  Consult your modem manual for
	an explanation of its commands!

	Init		ATZ|~ATM0|

          Here's a modem init string which you might find suitable if
	  your modem doesn't have an NV-RAM.  In order of appearance,
	  its function is to: Turn the speaker off, turn on "echoing" of
	  modem commands, set verbose result code reporting, turn on
	  normal carrier detection (many modems default to "carrier
	  detect ON all the time no matter what the real carrier state
	  is"), and set the modem to hang up if DTR is dropped.

	  Init		  ATM0E1X4&C1&D2|

	INITRETRY is the number of times to attempt initialisation
	before returning a "Can't initialise the modem" error.

	InitRetry	5

	RING is the string returned by the modem when the line rings.
	When NanoBBS detects this string from the modem while it's
	waiting for a call, it gets ready to answer the phone...

	Ring		RING|

	RINGS is the number of rings to wait before answering - 1 will
	answer on the first ring etc.  If you have Caller ID this MUST
	be set to 2 or more, so that the CID data stream can come
	through.  Otherwise 1 is the best choice for most direct dial-in
	lines.

	Rings		2

	ANSWER is the command to send to the modem to cause it to answer
	the phone.

	Answer		ATA|

	This is the string returned by modem when the modem has
	initialised OK.  When NanoBBS tries to initialise the modem it
	expects to get this string back; if it doesn't then there may be
	something wrong.

	OK		OK|

	NOCARRIER is the string returned by modem when an incoming
	call's connection fails before NanoBBS gets out of waiting-for
	caller mode.  If it receives this it will immediately go back to
	waiting for a call.

	NoCarrier	NO CARRIER|



        NanoBBS Documentation                                   Page 17

        INITTIME is the number of minutes between each re-initialisation
	of the modem.  This should be done periodically just to make
	sure all is well with the modem.  Every 10 or 20 minutes is
	fine.

	inittime	10


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		     Baud Rate Definitions		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ


	In the baud rate definitions, the SET parameter selects the baud
	rate to reset the modem port to upon connection (this should be
	set to your locked baud rate for all bauds if your port is
	locked).  The RATE parameter determines the rate used for
	calculating transfer times etc., the DISPLAY parameter is the
	rate as shown to the user, and the CONNECT parameter is the
	modem response string by which NanoBBS can recognise the baud
	rate.

	There should be one baud rate defined for each one that your
	modem supports.  For example, a 2400 baud modem should be set up
	to recognize 300, 1200 and 2400 baud callers, even if you won't
	be allowing 300 baud.  In fact, especially if you won't be
	allowing 300 baud; after all you want the BBS to be able to tell
	the prohibited baud rates when it sees them!

	Each baud rate is defined with a BAUD parameter followed by
	several subparameters and then terminated with an END.	The
	following examples illustrate:

	Baud 0
		Set	300
		Rate	300
		Display 300
		Connect CONNECT|
	end

	Baud 1
		Set	1200
		Rate	1200
		Display 1200
		Connect CONNECT 1200|
	end

	Baud 2
		Set	2400
		Rate	2400
		Display 2400
		Connect CONNECT 2400|
	end





        NanoBBS Documentation                                   Page 18

        Baud 3
		Set	9600
		Rate	4800
		Display 2400
		Connect CONNECT 2400/MNP5
	end

	; and so on until...

	Baud 11
		Set	115200
		Rate	28800
		Display 28800
		Connect CONNECT 28800
	end

	; The sample NODE1.CTL has all the baud rate definitions needed
	; by a system served by a 28800 V.FC modem.


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			 Time Limits			      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ


	USRSTART is the starting time of the period when NanoBBS will
	answer the phone.  This and USREND are useful for part-time
	BBSes.	USREND is the ending time; after this NanoBBS will
	indicate that the phone has rung but will not answer.  If these
	times are the same, then users are always allowed.

	UsrStart	00:00
	UsrEnd		00:00


	PAGESTART and PAGEEND define the starting and ending times when
	users will be allowed to make noise on your speaker by paging
	you.  Outside these hours, the user will still be allowed to
	page, will still be asked for a reason, will still be logged,
	and the blinking "Paged" will still appear on the SysOp bar, but
	no sound will be made!	Very useful for sysops who have to sleep
	in the same room with the computer!

	PageStart	08:00
	PageEnd 	23:00


	LOGONTIME is the amount of time given to users to complete a
	logon after connection.  This is in minutes.

	LogonTime	10







        NanoBBS Documentation                                   Page 19

        TIMEOUT is the number of minutes NanoBBS should wait at a prompt
	without any keyboard input from the user before it "times out"
	and terminates the session.

	Timeout 	3


	These are the maximum numbers of minutes which can be deposited
	and withdrawn from the time bank.

	max withdraw 60
	max deposit 60


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			   Security			      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	With all the competition out there on the BBS software market to
	have the most iron-fisted security, I thought it would be a nice
	complement to the security features to include an optional
	"UnSecurity" feature.  By default it is commented out.

	The WIDEOPEN token will cause NanoBBS to skip the user logon
	process in the canned startup.	You must use a logon UFO token
	to log users on or else all posts and log entries will be for
	user #0 "???".  In the default file this is commented out, as in
	this example.

	;WideOpen


	The NUP is the New User Password.  If it is uncommented this
	password will be required for all new callers to be able to
	register as a new user.  This is useful for invitation-only
	private systems.  Since most BBSes are public, this option is
	"commented out" by default.

	;NUP		 PASS


	This is the system password.  It can be used as a security
	adjunct to the regular user passwords but its usefulness is more
	important in applications where there is no actual user logon,
	such as in an AE or other anonymous environment or a
	fast-turnover information providing system such as would be used
	on a 1-800 line.  Used in conjunction with the WIDEOPEN
	parameter it can be used to create a very faithful emulation of
	AE.  If commented out it is not used.

	;SysPass	 CHANGEME







        NanoBBS Documentation                                   Page 20

        The ECHOCHAR is the character echoed to the user when asking for
	a password.  This applies to passwords at logon as well as to
	passwords asked when changing passords.

	EchoChar	$


	PASSWORDTRIES is how many tries a user gets at entering a
	password before being logged off and hung up on.  To be fair to
	users, it should be at least 3 tries.

	PasswordTries	3


	This is the access level needed to use the ! prompt:

	Access Bang	20


	This is the access level given to new users:

	Access New	10


	This is the key set given to new users.  If commented out or if
	no keys are specified, then no keys are set for new users.  In
	this example, keys 1, 2, 5, A, and C are set.

	NewKeys 	125AC


	This is the access level needed to use various sysop functions.

	Access SysOp	5000


	And the SYSOPKEYS parameter is the key set needed to use SysOp
	functions.

	SysOpKeys	DEF


	This is the access level needed to get into the canned file
	section.

	Access Files	10


	This is the access level needed to get into the canned email
	menu.

	Access Email	10






        NanoBBS Documentation                                   Page 21

        This is the access level needed to use the canned "read
	messages" menu option

	Access Read	10


	This is the access level needed to use the canned doors menu.

	Access Doors	10


	This is the access level needed to list today's calls.

	Access Todaylist 10


	This is the access level needed to list users.

	Access Userlist 10


	This is the access needed to use the batch files menu.

	Access Batch	10


	This is the access needed to access NanoCHAT.

	Access Chat	10


	This is the string used instead of the user's name when s/he
	posts anonymously. This can be up to 36 characters and may
	include embedded colours.

	anonymous	~E<~M<~O< ~PAnonymous ~O>~M>~E>


	The NEW keywords define which new-user questions will be asked,
	and which ones will be "optional".  Note that there is no real
	privacy justification for making the technical questions (lines,
	columns, ANSI, editor, language) optional so the option setting
	for those will be ignored by NanoBBS: either they're asked or
	they're not.














        NanoBBS Documentation                                   Page 22

        Valid options are DONTASK and OPTION.  If a question is not
	present or commented out, it is both asked and required.  By
	default, all of these are commented out, so that NanoBBS asks
	all of the questions and requires answers to all of them.  This
	is the behavior of most other BBS programs.

	; new realname option
	; new location option
	; new phone option
	; new birthdate option
	; new sex option
	; new screen dontask
	; new editor dontask
	; new chknew dontask
	; new language dontask

	This is the message area number of the default private message
	area.  This is the message area to which Feedback is saved, where
	the BBS checks for new mail (if the user is set to check for mew
	mail at logon), and where the E-Mail area operates.  By default
	it is 0 (zero) but there is no reason why it couldn't be set to
	some other area number.  Make sure this area exists in your
	MSGAREA.CTL.

	Private 	0


	Uncomment this if you want credits to be deducted for time
	online If this is uncommented NanoBBS will behave like online
	services that charge by time online... The actual credit
	consumption rate is defined in LIMITS.CTL.  Most BBSes do not
	need to uncomment this!

	; Credit


	This is the "ratio threshold", or how much a user can download
	without uploading, before NanoBBS starts to enforce
	download:upload ratio limits.  It is in kilobytes, so in this
	example a new user could download a total of up to 500 kilobytes
	before his or her file ratios are even checked.

	Threshold	500


	This sets the amount of time, in percent, to give back to a user
	who has just successfully completed an upload.	It is a
	percentage of the actual time spent uploading.	A ULReward of
	100 gives back 100% of the time spent uploading, or in other
	words the user will have as much time left after an upload as
	before the upload.  In this default example we give a somewhat
	generous 300% time reward for uploading.

	ULReward	300




        NanoBBS Documentation                                   Page 23

        This is the amount of time (in milliseconds_ to wait for ANSI
	auto-detection.  If your system is very slow you may want to
	extend this. Otherwise, set it as low as you can get away with
	without causing NanoBBS to fail to detect ANSi.  A good default
	is about 500 milliseconds.

	AutoANSi	500


	This is the number of seconds the user should have left when
	NanoBBS issues its first warning that the user is running out of
	time.  It is entered in seconds, and in this example we have set
	it to 300 seconds, for a 5 minute first warning.

	Warn First	300

	This is the number of seconds the user should have left when
	NanoBBS issues its second and final warning that the user is
	nearly out of time.  It is also in seconds, and this example of
	60 seconds provides a 1 minute final warning.

	Warn Final	60

	If this is uncommented (default) Nano will ask the user to hit
	Enter upon connection.	This is useful for when ANSi detection
	chronically fails due to slow modem responses.

	HitEnter

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			   Languages			      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	You can have up to 32 languages.  Each language is identified by
	its base filename.  For example, the language ENGLISH would
	refer to a pair of files called ENGLISH.LNG and ENGLISH.LDX,
	which are the message text and index files for the ENGLISH
	language.  If the user has RIPScrip enabled, ENGLISH will refer
	to a different pair of files: ENGLISH.RNG and ENGLISH.RDX.

	NanoBBS needs to have a default language, so that it can display
	information before a user logs on.  This is set to ENGLISH by
	default.  ENGLISH is the only language file included with this
	version of NanoBBS, but third-party language files for other
	languages are encouraged.

	defaultlang	english
	language 1	english
	;language 2	 hoser
	;language 3	 abusive
	;language 4	 r0dent
	;language 5	 francais
	;language 6	 deutsch





        NanoBBS Documentation                                   Page 24

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		   Main Menu Command Overrides		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	You can add or redefine up to 100 keys in the canned main menu
	to activate UFO script files.  The UFO script files listed here
	must be found in the text file directory as specified above, and
	will have the .BBS extension appended automatically.  Do not
	include the extension or path here.

	There are a couple of examples in the default NODE1.CTL file,
	and they are included here:

	;
	; Example:
	;
	; OVRKEY	!  MODBANG
	;
	; This example replaces the canned bang prompt with
	; MODBANG.UFO.
	;
	; You can also deactivate a main menu option by setting its
	; filename to NIL, like this:
	;
	; OVRKEY	D  NIL
	;
	; This deactivates the canned doors menu off the canned
	; main menu.
	;


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			 QWK Parameters 		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is the path where QWK packets are assembled, disassembled,
	uploaded and downloaded.  NOTE: This path should be unique to
	each node if you are running a multi-node system, or else some
	really weird crosslinks could occur if two users try to build
	QWK packets simultaneously...

	qwk path	c:\bbs\qwk\node1


	This is the base filename of QWK packets.  This can be up to 8
	characters.

	qwk bbsid	NANOBBS


	Here are the compression program definitions.  Although the
	external compression is mainly used by QWK, these same
	definitions are also used by the FILE_ID.DIZ extraction
	sub-system.




        NanoBBS Documentation                                   Page 25

        The NAME is the archiver name as you want the user to see it,
	the Extension is the normal file extension by which files of
	that type are known.

	The ADD and EXTRACT commands must include the full path and .EXE
	or .COM extension in order to work.  Since the compression is
	(in this version) only used for QWK processing, the ADD command
	should (ideally) specify "move"ing files into the archive rather
	than simply adding them, and the EXTRACT command should
	(definitely!) specify overwriting existing files.

	The ID bytes are as follows: the fist numeric parameter is the
	number of bytes from the first one where we are to find a string
	of bytes equal to the remaining specified bytes.  0 means the
	first byte. -1 means the last byte in the file, -2 means the
	second to last and so on.  The remaining bytes are what the BBS
	searches for to identify the file type. A number of known
	archiver IDs are included in this sample file. You can specify
	up to 8 bytes to search for the ID.  Byte values are in vanilla
	decimal, no hex here!  There can be up to 16 compression
	programs defined, from 1 to 16.

	The syntax of the compression definitions is as in these
	examples.  Start the definition with the COMPRESS command and
	the "slot" number for the compression definition.  After
	you've specified the name, extension, ID bytes and the add and
	extract commands, end the definition with END.

	compress 1
		name		PKWare's PKZip
		extension	ZIP
		add		c:\bin\pkzip.exe -m %a %f
		extract 	c:\bin\pkunzip.exe -oe %a %f
		id		0 80 75 03 04
	end

	compress 2
		name		PKWare's PKZip - Maximum Compression!
		extension	ZIP
		add		c:\bin\pkzip.exe -ex -m %a %f
		extract 	c:\bin\pkunzip.exe -oe %a %f
		id		0 80 75 03 04
	end

	{Several examples from the default NODE1.CTL are deleted here
	for brevity}

	compress 7
		name		Rahul Dhesi's ZOO
		extension	ZOO
		add		c:\bin\zoo.exe -m %a %f
		extract 	c:\bin\zoo.exe -e:O %a %f
		id		0 90 79 79
	end




        NanoBBS Documentation                                   Page 26

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			Internet Arcana 		      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	If your BBS is not in the Internet, you need not concern
	yourself with any of this.  Most of this is included for future
	expansion only.  While NanoBBS will write a valid RFC-1036
	header to messages where required, there is no other direct
	support for the Internet or for Usenet.  If you can get Internet
	running with these parameters using external programs, terrific!
	Otherwise, true internet support -is- forthcoming in a future
	version.

	If you use the RFC-1036 message header in any of your message
	areas, you should set all of these parameters to values which
	are valid for your system.


	This is the internet address of the system.  There should be no
	@ in this IF YOU HAVE NO DOMAIN ADDRESS COMMENT THIS OUT!

	; internet address horse.hockey.bull.roar.com

	This is used to build Usenet RFC1036 path header info.

	; internet machine thc

	This is the time zone definition.  The first parameter is
	timezone code as you want it displayed in RFC-1036 headers.  The
	second parameter is the offset in hours from UTC in standard
	time, and the third is the offset from UTC in daylight time.
	These latter two parameters are not yet used by NanoBBS.

	timezone PST -8 -7

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³		 Hooks to MFB, MMB and MAKEDOOR 	      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	These commands, if present, will call MMB.EXE, MFB.EXE or
	MAKEDOOR.EXE and conveniently compile those as well.  It also
	lets you specify the use of non-standard filenames for these
	files, allowing you to associate a different set of file and
	message areas to different config files.

	uses files	filearea.ctl
	uses message	msgarea.ctl
	uses doors	doors.ctl










        NanoBBS Documentation                                   Page 27

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³			     EVENTS			      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	Here are the "event" definitions.  The first parameter is the
	absolute event record; it can be from 1 to 32.	The second
	parameter is the day of the week the event is scheduled to take
	place (or "all" if the event should take place every day) and
	the third is the time, it 24-hour format. The fourth parameter
	is the errorlevel NanoBBS should exit with, and the remainder of
	the line (up to 60 characters) is the name of the event.

	You can signal that an event is "forced" - a user's time online
	may be adjusted to ensure the event occurs on time - by placing
	a $ (dollar sign) as the first character of the name.  The
	CONFIG.EXE compiler will automatically strip this character for
	you.

	NanoBBS events have a unique feature: you can have up to 32
	unique times at which each event can execute.  Unlike most other
	BBSes, you can specify more than one time of day for each event
	to occur, and you can even have the same event occur several
	times in the same day if you desire!

	These are just examples; you should adjust the times, days,
	names and errorlevels to suit your system best.  See the chapter
	titled "The Black Art of Batch File Writing" for examples of how
	to use the errorlevels.

	Here are two nice normal events which occur once per night at
	the same time.	The first event is forced; a user online will
	have his or her time limit adjusted if the call is close enough
	to midnight!

	event 1 All 00:00 100 $Midnight Door Updates
	event 2 All 04:00 110 Nightly Maintenance

	Here is an event which occurs at 4:30am Thursday and 5:00am
	Sunday.  Note that on the second line the errorlevel and name are
	not needed.

	event 3 Thu 04:30 120 Semi-Weekly Maintenance
	event 3 Sun 05:00

	This event runs three times a day at 2:00am, 10:00am and 6:00pm.

	event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
	event 4 All 10:00
	event 4 All 18:00









        NanoBBS Documentation                                   Page 28

	ةحثححححححححححححححححححححححححححثح»
	؛ ؛ Setting Up Message Areas ؛ ؛
	بحتححححححححححححححححححححححححححتح¼

	Message areas are defined in the MSGAREA.CTL file.  Like the
	system configuration file in the previous chapter, this is a
	flat ASCII file which can be edited with any ASCII text
	processor.

	Once you have edited MSGAREA.CTL to your needs, you must then
	compile the message base configuration file into the MSGAREA.DAT
	file which NanoBBS can more easily read.  This can be done in
	two ways.  The simplest is to run the CONFIG program as you did
	for the NODE1.CTL general config file.	Tbis will also compile
	the MSGAREA.CTL file.  The other way is to run the MMB.EXE
	program like so:

		MMB MSGAREA

	This compiles your MSGAREA.CTL into MSGAREA.DAT the same way
	that CONFIG.EXE did, because CONFIG actually calls MMB.EXE in
	the process of configuring everything.	However this way will
	only compile the message areas; file areas, doors and general
	configuration remain unaffected when you use MMB.

	Each message area is defined by a set of lines in the
	MSGAREA.CTL file.  The first line of each area's definition
	starts with MSGAREA and the area's number, and ends with END.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A basic example ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	msgarea 		1
		name		Ye Public Roaste
		type		squish
		public
		access		10
		path		c:\bbs\msg\public
	end

	In the above example, we are defining Message Area 1 (hence the
	first line).

	Its name is "Ye Public Roaste", as defined by the NAME command.

	It is a Squish type message base, as defined by the TYPE
	command.

	It is a public message area, as defined by the existence of the
	PUBLIC command.  This means that private messages are not
	possible in the area.

	The minimum access needed to use this area is 10, as defined by
	the ACCESS command.



        NanoBBS Documentation                                   Page 29

        The messages themselves are stored in the directory C:\BBS\MSG\,
	and the base filename of the Squish files for this base is
	PUBLIC.  This is defined by the PATH command. It is worth noting
	that in a Squish or JAM base, the base filename is included in
	the path.  That means that if the PATH is C:\BBS\MSG\PUBLIC and
	this is a Squish area, NanoBBS will use the following files:

		C:\BBS\MSG\PUBLIC.SQI
		C:\BBS\MSG\PUBLIC.SQD
		C:\BBS\MSG\PUBLIC.SQL
	    and C:\BBS\MSG\PUBLIC.SQB

	A similar mechanism is used to define the base filename for JAM
	message areas.	However, for *.MSG areas this defines the full
	directory name where all of the message files live.  In *.MSG
	there is one file for every message, plus several auxiliary
	files (most notably the LASTREAD file) so each *.MSG area must
	be in its own directory to avoid a serious and acute
	crosslinking problem!

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A real-world Echomail example ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	msgarea 		5
		name		Chatter Echo
		type		JAM
		path		c:\bbs\msg\chatter
		access		10
		postaccess	15
		realname
		echomail
		address 	1:340/26
		Origin		NanoBBS in '95!  604-361-4549
		public
		qwkname 	Chatter
		barricade
		censor
	end

	This is message area 5, named "Chatter Echo".  It is a JAM type
	area which lives in C:\BBS\MSG\ and its files start with the
	base filename CHATTER.	Users need access level 10 to use the
	message area but only users with access level 15 can post
	messages there.  This area will use the user's "Real Name"
	instead of the "User Name".  It is an echomail area - perhaps
	this is why you would want to force the use of a real name.  The
	Fidonet address used in the Origin line and elsewhere in the
	message is 1:340/26.  The origin line itself will read:

		* Origin: NanoBBS in '95!  604-361-4549 (1:340/26)

	This is a "Public" area, and it is subject to the Barricade file
	(see the section on miscellaneous external files).  When the




        NanoBBS Documentation                                   Page 30

        user downloads messages from this area into a QWK packet, the
	BBS will associate the name "Chatter" with the area in the QWK
	packet.  And, the Message Censor will be applied to all messages
	posted by your users in this area.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ An example of a	 ³
	³ specialty message area ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	msgarea 		49
		name		Adult Network Ladies Only Base
		path		c:\bbs\msg\ladies
		access		20
		postaccess	20
		age		21
		type		Squish
		public
		femaleonly
		qwkname 	LadiesOnly
	end

	This is Message Area 49, which as you can see is open only to
	women over 21 - and the BBS will enforce this for you!	Most
	BBSes do not have this possibility.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³							   ³
	³ There are several more examples in the MESSAGES.CTL file ³
	³		   that comes with NanoBBS.		   ³
	³							   ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A complete listing of all of the   ³
	³ available keywords for MSGAREA.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	MSGAREA {number} - Starts a message area definition.  Every
			   message area starts with this.

	NAME {Area Name} - Defines the message area's name as the user
			   sees it.  This can be up to 60 characters
			   long, and it may contain embedded colours!

	QWKNAME {Name}	 - Defines the area name as it is seen in the
			   user's QWK reader.  Due to a limitation of
			   the .QWK standard, the QWKNAME must be 12
			   characters or less.	This in fact is the main
			   reason why NanoBBS lets you define this name
			   separately,





        NanoBBS Documentation                                   Page 31

        NEWSGROUP {news.group} - Defines the Usenet Newsgroup (if any)
			   associated with this message area.  This is
			   just a usenet newsgroup name in a format
			   like: comp.bbs.nanobbs This can be up to 80
			   characters in size.

	TYPE {type}	 - Defines the message base type, either SQUISH,
			   JAM or *.MSG.  Squish and JAM are the
			   recommended types, with *.MSG included for
			   completeness and backward compatibility.

	PATH {path}	 - Defines what directory the area lives in. For
			   Squish and JAM areas this also includes the
			   base filename.  If this is a *.MSG area, the
			   .MSG and other files are in this directory.

	ATTACH PATH {path} - This defines the path where file attaches
			   in this area will be stored.  If this path is
			   not defined, file attaches will not be
			   allowed.  File attaches are an advanced
			   feature that lets users send each other files
			   via your system.


	ATTACH ACCESS {ac} - This defines the access level needed to
			   post file attaches to this area.  If the user
			   doesn't have this access level or higher,
			   s/he is never even asked if a file attach is
			   wanted.  This option has no effect unless the
			   ATTACH PATH is also defined.

	ACCESS {access}  - Defines the access needed to read messages.

	POSTACCESS {ac.} - Defines the access needed to post messages.

	PRIVATE 	 - Only private messages are allowed.

	PUBLIC		 - Only public messages are allowed.  If neither
			   this nor PRIVATE is used, the user is asked
			   if the message should be private.

	RFC1036 	 - This causes an RFC-1036 Usenet message header
			   to be prepended to the message text.  This is
			   used in conjunction with external Usenet
			   processors.

	AGE {age}	 - Minimum age required for access to the area

	FEMALEONLY	 - Only females may read or post to the area.

	MALEONLY	 - Only males may read or post to the area.







        NanoBBS Documentation                                   Page 32

        READONLY         - This is a read-only area - only the sysop can
			   post!  This may be somewhat redundant as it
			   has the same effect as setting POSTACCESS to
			   the sysop access level. This is useful for
			   setting up an announcements area or a
			   file-distribution area (using file attaches).

	ECHOMAIL	 - This command simply indicates that this is a
			   Fidonet echomail area, so that NanoBBS will
			   attach the necessary Echomail information to
			   the message when it is saved.

	NETMAIL 	 - This command simply indicates that this is a
			   Fidonet netmail area, so that NanoBBS will
			   attach the necessary Netmail information to
			   the message when it is saved.

	ADDRESS {z:n/n.p}- The originating Fidonet type address for this
			   area.  This is needed for all Echomail and
			   Netmail areas. This is in the standard 4D
			   format, examples: 1:340/26 69:3601/1
			   89:688/13.2	64:819/17.12

	ORIGIN {OrgLine} - The text of the Origin Line for this area

	KLUDGE REALNAME  - The user's real name will be hidden in a ^A
			   kludge line prepended to the message text.

	INTERNET EMAIL	 - The area is intended for Internet email.

	KEYS {keys}	 - The user key(s) required for access

	POSTKEYS {keys}  - The user key(s) required to post messages

	REALNAME	 - Always post with the user's real name

	ANONYMOUS	 - Allow anonymous posting

	CENSOR		 - Use the built-in message censor in this area.

	BARRICADE	 - This will enable a check of the barricade
			   file MESSAGES.BAR before changing to this
			   area.  If the user is barricaded from this
			   area, this must be active in order for the
			   barricade to work!

	END		 - End the area's definition.











        NanoBBS Documentation                                   Page 33

	ةحثحححححححححححححححححححححححثح»
	؛ ؛ Setting Up File Areas ؛ ؛
	بحتحححححححححححححححححححححححتح¼

	File areas are defined in the FILEAREA.CTL file.  Like the
	system configuration file and message area configuration file in
	the previous chapters, this is a flat ASCII file which can be
	edited with any ASCII text processor.

	Once you have edited FILEAREA.CTL to your needs, you must then
	compile the file area configuration file into the FILEAREA.DAT
	file which NanoBBS can more easily read.  This can be done in
	two ways.  The simplest is to run the CONFIG program as you did
	for the NODE1.CTL general config file.	Tbis will also compile
	the FILEAREA.CTL file.	The other way is to run the MFB.EXE
	program like so:

		MFB FILEAREA

	This compiles your FILEAREA.CTL into FILEAREA.DAT the same way
	that CONFIG.EXE did, because CONFIG actually calls MFB.EXE in
	the process of configuring everything.	However this way will
	only compile the file areas; message areas, doors and general
	configuration remain unaffected when you use MFB.

	Each file area is defined by a set of lines in the FILEAREA.CTL
	file.  The first line of each area's definition starts with
	FILEAREA and the area's number, and ends with END.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A basic example ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	FileArea		1
		access		10
		name		General Upload Files
		Download	c:\file\upload\
		Upload		c:\file\upload\
	end

	In this example, we are defining file area 1.  Its name is
	"General Upload Files" and the user must have access level 10 or
	above to use the area.	The FILES.BBS file and the actual files
	are in the C:\FILE\UPLOAD\ directory, and that is also where
	uploads are saved.  There is otherwise nothing special about
	this area.












        NanoBBS Documentation                                   Page 34

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A slightly more involved example ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	FileArea		3
		access		20
		name		Naughty Adult Pictures
		download	c:\bbs\files\adult\
		upload		c:\bbs\files\screen\
		age		21
	end

	Note that in this example the DOWNLOAD and UPLOAD directories
	are different.	The files and the FILES.BBS file are in
	C:\BBS\FILES\ADULT\, but uploaded files are saved in
	C:\BBS\FILES\SCREEN\.  When a user uploads a file to this area,
	not only does the file end up in the UPLOAD directory, but any
	description the user enters for the file goes in a FILES.BBS
	located in the UPLOAD directory.  Also in this example, a lower
	age limit of 21 years is specified, and an access level of 20 is
	required.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Defining CD-ROM areas ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	filearea 2001
		name	Alt Operating Sys.
		upload c:\file\upload\
		download g:\001a\
		access	10
		cdrom
		filesbbspath	c:\cdrom\001a\
	end

	In this example, area 2001 is on a CD.	Note that there are
	three different paths.	The DOWNLOAD path is the actual
	directory on the CD where the files reside.  The UPLOAD path is
	where uploads go.  Of course, CD-ROMs are not writeable, so it
	is very important that you specify an upload path that is on a
	writeable disk!  The third path, FILESBBSPATH, is the location
	of the FILES.BBS file.	This is where the file names and
	descriptions are kept.	This feature is useful for allowing you
	to "remove" files from CD directories that you don't want users
	to access, or to allow you to change the description of a file
	on a CD.

	An alternative for CD-ROM areas is to use the NOUPLOADS keyword.
	Instead of shuttling uploads to some other directory, NOUPLOADS
	will actually refuse to accept an upload if the user is in a
	file area that has this keyword.  I think that it is much more
	user-friendly to allow users to upload regardless of the area
	they're logged to, using the UPLOADPATH keyword.





        NanoBBS Documentation                                   Page 35

        Note the use of the CDROM keyword.  This instructs NanoBBS to
	first copy the requested file or files from the CD to a
	temporary directory (the one specified in your general config
	file) before downloading.  The files are then downloaded from
	the hard disk - or RAMdisk if you're fortunate enough to have one
	large enough to practically handle this job.  This greatly
	reduces the overhead caused by CD-ROM accesses.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Note to LAN users: If you are using a slow LAN (2 MBPS or  ³
	³ less) you may want to consider using the CDROM keyword for ³
	³ any areas that live across the LAN from the machine the    ³
	³ user logs onto, even if they're on a hard disk.  This can  ³
	³ cut down on LAN overhead quite a bit. 		     ³				      ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	The best way to deal with a CD that already has FILES.BBS files
	is to simply make a mirror of the CD's directory tree on your
	hard disk.  Then copy all the FILES.BBS files to the hard disk
	mirror and set the FILESBBSPATH for each area on the CD to the
	relevant mirror directory.

	Making a mirror directory is easy.  ALl you need to do is
	(something like) this:

		C:\> xcopy g:\files.bbs c:\cdrom\ /s /e

	... in this simple DOS example, we're asking XCOPY to make
	copies on the hard disk of all the FILES.BBS files on the CD,
	creating the directories as needed, and in fact building an
	empty copy of the whole directory tree.  For most CDs the hard
	disk usage by this technique should be negligible.


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A complete listing of all of the    ³
	³ available keywords for FILEAREA.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	FILEAREA {number} - Starts a file area definition.

	NAME {Area Name } - Defines the file area's name

	DOWNLOAD {path}   - Defines where the files themselves exist

	UPLOAD {path}	  - Defines where files should be uploaded

	FILESBBS {path}   - Defines where the FILES.BBS file lives.
			    This is optional; if it is not used
			    FILES.BBS will be expected in the same
			    directory as DOWNLOAD.

        AGE {age}         - The minimum age needed to access the area





        NanoBBS Documentation                                   Page 36

        CDROM             - This means the area is on a CD.  Files are
			    copied to a temporary directory prior to
			    downloading.

	ACCESS {access}   - Defines the access needed to use the area.

	ULACCESS {access} - Defines the access needed to upload in the
			    area.

	DLACCESS {access} - Defines the access needed to download in the
			    area.

	KEYS {keys}	  - Defines the key(s) needed to use the area.

	ULKEYS {keys}	  - Defines the key(s) needed to upload in the
			    area.

	DLKEYS {keys}	  - Defines the key(s) needed to download in the
			    area.

	NOUPLOADS	  - Uploading is not allowed in the area.

	END		  - End the area's definition.



































        NanoBBS Documentation                                   Page 37

        ةحثححححححححححححححححححححححححححثح»
	؛ ؛	Setting Up Doors     ؛ ؛
	بحتححححححححححححححححححححححححححتح¼

	"Doors" are external programs, usually games, that can be called
	up by the BBS for users to use while they are online.  Whirlwind
	Software's Rancho Nevada, Galactic Empire, The Streets,
	S.T.U.P.I.D., and others, are examples of popular door programs
	compatible with NanoBBS and many other BBSes.

	Having only been sysoping for the last seven years or so, I
	can't claim to be an authority on this, but I believe the term
	"Door" originated on BBSes that were arranged to be like
	buildings in a text adventure game.  The "Door" was a doorway
	out of the BBS and into another game altogether.  Please don't
	flame me if I'm out to lunch on this.

	Doors are defined in the DOORS.CTL file. Like the system
	configuration file and message area/file area configuration
	files in the previous chapters, this is a flat ASCII file which
	can be edited with any ASCII text processor.

	Once you have edited DOORS.CTL to your needs, you must then
	compile the doors configuration file into the DOORS.DAT file
	which NanoBBS can more easily read.  This can be done in two
	ways.  The simplest is to run the CONFIG program as you did for
	the NODE1.CTL general config file.  Tbis will also compile the
	DOORS.CTL file.  The other way is to run the MAKEDOOR.EXE
	program like so:

		MAKEDOOR

	This compiles your DOORS.CTL into DOORS.DAT the same way that
	CONFIG.EXE did, because CONFIG actually calls MAKEDOOR.EXE in
	the process of configuring everything.	However this way will
	only compile the doors configuration; file areas, message areas
	and general configuration remain unaffected when you use
	MAKEDOOR.

	Each door is defined by a set of lines in the DOORS.CTL file.
	The first line of each door's definition starts with DOOR and
	the door's number, and ends with END.
















        NanoBBS Documentation                                   Page 38

	Here is a basic example:

	  door 1
		  path c:\doors\rancho\
		  command rancho.exe -l -a
		  flavour dorinfo1.def
		  access 50
		  realname
	  end

	This example calls Rancho Nevada.  It logs to the directory
	C:\DOORS\RANCHO\, and calls RANCHO.EXE with the -l -a command
	line parameters.  It requires an access level of 50 to access,
	uses a DORINFO1.DEF door info drop file, and will substitute the
	user's real name for the username.

	  door 2
		  path c:\doors\hiq\
		  command %C /C hiq.bat
		  flavour dorinfo1.def
		  access 10
		  lastname NLN
	  end

	This example calls Hi-Q.  It logs to the C:\DOORS\HIQ\ directory
	and calls up COMMAND.COM, which in turn calls up HIQ.BAT.  We
	assume in this example that there is already a HIQ.BAT in place
	which takes the appropriate steps to run Hi-Q.	Access level 10
	is needed, and if the user is using a one-word pseudo, the last
	name NLN will be forced.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ A Complete Listing of      ³
	³ All the Keywords Available ³
	³ for DOORS.CTL 	     ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	PATH specifies the path where NanoBBS should change to before
	     running the door.

	COMMAND specifies the executable filename and command line
		parameters needed to run the door.  Use %c /c to specify
		a fully pathed COMMAND.COM for running batch files.

		In the COMMAND parameter, you can substitute %n for the
		node number, %c for the COMMAND.COM comspec (which you
		need to execute batch files).  These will be translated
		into their full form when the door is run, e.g. if the
		user is on node 10, %n is translated automatically into
		10.  If you're running 4DOS, %c might translate into
		C:\4DOS\4DOS.COM.  Under plain vanilla DOS, %c would
		likely translate into C:\COMMAND.COM or perhaps
		C:\DOS\COMMAND.COM.  Note that to run a batch file, you
		MUST include the /C command line switch after the
		COMMAND.COM (or %c) and before the batch file name.



        NanoBBS Documentation                                   Page 39

        FLAVOUR can be either DORINFO1.DEF, DORINFOX.DEF or DOOR.SYS.
		DORINFOX.DEF is a special "flavour" where the node
		number is built into the filename, e.g. DORINFO2.DEF,
		DORINF25.DEF, DORIN132.DEF etc.

	AGE is the minimum age a user has to be to use the door

	ACCESS is the minimum access level a user must have to use the
	       door

	REALNAME tells NanoBBS to use the real name instead of the user
		name

	LASTNAME tells NanoBBS what to put in for a last name if the
		 user has a one-word handle.  If this statement is
		 missing, the last name is left blank.










































        NanoBBS Documentation                                   Page 40

        عؤآؤآؤآؤآؤآؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤآؤآؤآؤآؤآؤ؟
	³ ³ ³ ³ ³ ³ THE BLACK ART of BATCH FILE WRITING ³ ³ ³ ³ ³ ³
	ہؤءؤءؤءؤءؤءؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤءؤءؤءؤءؤءؤظ

	The Basics - Why Batch files?

	Batch files are an important part of any true DOS BBS, whether
	it be NanoBBS, Maximus, RemoteAccess, Opus, or any one of dozens
	of others on the market today.	Once you're inside the BBS,
	NanoBBS takes care of itself for you, but how you enter the BBS
	is under the control of your DOS batch files.

	There are several ways in which you can enter NanoBBS.

	- You can just type BBS at the prompt.	Assuming everything's OK
	  configuration-wise, NanoBBS will assume you're in local mode
	  and will present you with the logon prompt.  You may have to
	  hit [Enter] first depending on your choice for that option.
	  You can then log on, do your thing and log off, all the time
	  never even looking at the modem.  And once you're done, you're
	  back at the DOS prompt where you started.

	- You can put NanoBBS into its Wait-For-a-Call (WFC) mode.  This
	  is achieved simply by typing BBS /W at the DOS prompt.
	  NanoBBS will enter its WFC mode and will wait for one of the
	  following:

		o An incoming modem call
		o An event
		o A local logon (using Alt-L)
		o An ESC key from the keyboard, indicating that it's
		  time to exit.

	  After any of the above are completed, NanoBBS exits back to
	  DOS.

	- You can start up NanoBBS "Hot" from a mailer or as a sort of
	  door.  This is done by specifying a baud rate with the /B
	  command line switch.	When this switch is used, NanoBBS
	  assumes that the modem is active and that a connection has
	  already been made, and it begins an online session at the
	  specified baud rate.	Once the session is finished, NanoBBS
	  exits back to DOS.

	All of these methods basically call up NanoBBS once, run through
	a single online (or local) session, and then exit back to DOS.
	Of course, you want to be able to handle many calls in a row, so
	just using these methods by themselves isn't practical.

	This is where the batch files come in.	In an unattended BBS you
	need the BBS to go back to a Fidonet mailer or go back to
	waiting for a call after an online session is complete.

	This is done with batch files.




        NanoBBS Documentation                                   Page 41

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ The Simplest Batch File ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	Here is the simplest possible example of an unattended BBS batch
	file.  It makes some assumptions.

		BBS /W
		RUNBBS.BAT

	Firstly, it assumes that its own name is RUNBBS.BAT.  The second
	line re-cycles the batch file by non-recursively calling itself.
	It also assumes that your BBS.EXE is on the DOS path (see your
	PATH statement in AUTOEXEC.BAT).

	The problem with this batch file is that there's no way to get
	out of it unless you're REALLY quick with the Ctrl-Break key!
	It doesn't check to see if you had hit [Esc] to exit WFC
	(Waiting For Caller), nor does it try to process events.  All it
	can do is keep fielding calls.

	This problem is overcome with...

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ NanoBBS Errorlevels ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	DOS provides a way for programs to communicate with DOS after
	the program has finished.  This is called an ERRORLEVEL.  What
	this is, is a number that the program passes back to DOS on
	completion, which is supposed to be a "what went wrong" code.

	NanoBBS doesn't use errorlevels the way the DOS programmers had
	in mind.  Instead, it uses the errorlevel to tell your batch
	file how the program finished: Did it exit normally?  Did the
	SysOp hit the Escape key?  Is an event being run?

	NanoBBS has two hardcoded errorlevels, and lets you define
	errorlevels for your events.  They are:

	  SysOp hit ESCAPE at the WFC screen	: Errorlevel 1

	  BBS Exited normally after an
	  online or local session		: Errorlevel 0

	  An Event is being run 		: Errorlevel 2 thru 255












        NanoBBS Documentation                                   Page 42

        Let's translate this into another example, this one of a much
        more practical (but still very simple) batch file:

		@ECHO OFF
		:TOP
		C:
		CD\BBS
		BBS /W
		IF ERRORLEVEL 2 GOTO TOP
		IF ERRORLEVEL 1 GOTO FINISH
		GOTO TOP
		:FINISH
		@ECHO BBS OFFLINE!

	This example uses two of DOS's batch file commands.  They are
	the GOTO command and the IF ERRORLEVEL command.

	Let's look at this example line by line.

		@ECHO OFF
	This just turns off DOS echoing, so that the appearance is
	neater when the batch file runs.

		:TOP
	This is a "label" declaration.  Later in the batch file there is a
	GOTO TOP command.  It will cause the batch file to go to this
	line and continue running from here.

		C:
		CD\BBS
	These lines just make sure that DOS is logged to the right
	directory.  It is possible for doors and external programs to
	change the current directory while the online BBS session is
	running, so we include these two lines to set right any such
	discrepancy.  Of course this is only an example; if you run your
	BBS in a directory other than C:\BBS\, you must change these
	lines to suit your paths.

		BBS /W
	This calls NanoBBS in WFC (Waiting For Call) mode.  When NanoBBS
	is finished it will present a DOS errorlevel which can be
	checked by the following two lines:

		IF ERRORLEVEL 2 GOTO TOP
	This checks the DOS errorlevel.  The errorlevel might be
        anywhere from 0 to 255.  However, all the errorlevels above 1
	are reserved for the events, so in this batch file we need only
	be concerned with errorlevels 0 and 1.	What this line does is
	check to see if any errorlevel ABOVE 1 (meaning from 2 to 255
	inclusively) is there.	If so, it uses the GOTO TOP part to
	"go" to the :TOP label above.  In this batch file, that means it
	will "loop" and call the BBS again.  If the errorlevel is below
	2, the batch file simply goes to the next line...





        NanoBBS Documentation                                   Page 43

                IF ERRORLEVEL 1 GOTO FINISH
	This is similar to the above line.  Technically, this checks to
	see if the errorlevel is 1 or higher, but since the above line
	would've transferred control to the :TOP label, this line can
	really only do the GOTO FINISH if the errorlevel is exactly 1.
	Note that Errorlevel 1 is returned when you escape from WFC
	modem by hitting escape.  This line, then, breaks out of the
	"loop" formed by the batch file.  If you hit Escape at WFC,
	you'll get the DOS prompt back.  If NanoBBS exits for any other
	reason, it re-cycles - and calls itself again.

		GOTO TOP
	This "goes" back to the :TOP label.  Because the above IF
	ERRORLEVEL lines have checked all other errorlevels, this line
	can only be reached if the errorlevel is zero.	Errorlevel 0 is
	returned after an online session, so we want to "loop" back to
	the :TOP label.

		:FINISH
	This label indicates where the batch file should "GOTO" when
	you exit NanoBBS by hitting Escape at the WFC (Wait for Call)
	screen.  See the IF ERRORLEVEL 1 GOTO FINISH line a couple of
	lines up.

		@ECHO BBS OFFLINE!
	This is just a cosmetic line to indicate that the batch file has
	terminated normally.  If this example is run as shown, you
	should only see this if you actually hit Escape at the WFC
	screen.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ IMPORTANT NOTE ABOUT ERRORLEVELS:				 ³
	³								 ³
	³ Many DOS commands will change or clear the value of DOS's      ³
	³ errorlevel variable.	For this reason, you MUST place your IF  ³
	³ ERRORLEVEL checks immediately after the BBS call in the batch  ³
	³ file.  If any DOS commands or other programs are used after	 ³
	³ the BBS, they may change the errorlevel and the result is that ³
	³ the series of IF ERRORLEVEL statements will be invalid, and	 ³
	³ your batch file will not work properly.			 ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

















        NanoBBS Documentation                                   Page 44

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Using The Errorlevels Passed By Events ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	Now that we have established the basic use of errorlevels, let
	us examine a more advanced example, which processes events.

	Here are the event examples in NODE1.CTL:

	  event 1 All 00:00 100 $Midnight Door Updates
	  event 2 All 04:00 110 Nightly Maintenance
	  event 3 Thu 04:30 120 Semi-Weekly Maintenance
	  event 3 Sun 05:00
	  event 4 All 02:00 130 Galactic Empire Update (Thrice Daily!)
	  event 4 All 10:00
	  event 4 All 18:00

	So we have four events, and therefore four event errorlevels.
	Let's have a look at a batch file that would process these
	errorlevels.  I have included line numbers in {curly brackets}.
	You wouldn't actually use these line numbers in a real batch
	file...

	    @ECHO OFF					    {1}
							    {2}
	    :TOP					    {3}
	    C:						    {4}
	    CD\BBS					    {5}
	    BBS /W					    {6}
	    IF ERRORLEVEL 131 GOTO TOP			    {7}
	    IF ERRORLEVEL 130 GOTO GALACTIC		    {8}
	    IF ERRORLEVEL 120 GOTO SEMIWEEKLY		    {9}
	    IF ERRORLEVEL 110 GOTO NIGHTLY		    {10}
	    IF ERRORLEVEL 100 GOTO MIDNIGHT		    {11}
	    IF ERRORLEVEL 1 GOTO FINISH 		    {12}
	    GOTO TOP					    {13}
							    {14}
	    :GALACTIC					    {15}
	    C:						    {16}
	    CD\DOORS\GALACTIC				    {17}
	    G.EXE /M					    {18}
	    GOTO TOP					    {19}
							    {20}
	    :SEMIWEEKLY 				    {21}
	    C:						    {22}
	    CD \ECHOMAIL				    {23}
	    SQPACK *.SQD				    {24}
	    CD \					    {25}
	    VOPT					    {26}
	    GOTO TOP					    {27}
							    {28}
	    :NIGHTLY					    {29}
	    C:						    {30}
	    CD \					    {31}
	    SCAN C: D: E: F:				    {32}

                                                        (cont. next page)

        NanoBBS Documentation                                   Page 45

            GOTO TOP                                        {33}
							    {34}
	    :MIDNIGHT					    {35}
	    C:						    {36}
	    CD \BBS					    {37}
	    BBS /F					    {38}
	    GOTO TOP					    {39}
							    {40}
	    :FINISH					    {41}
	    @ECHO BBS OFFLINE!				    {42}

	If you're new at this, this example may seem a bit complex and
	overwhelming!  But in reality, many BBS batch files are even
	more complicated than this.  And really, if you break it down,
	it's not so difficult.

        This batch file is basically similar to the previous example.
	The first six lines are the same, establishing the :TOP label
	and calling the BBS in WFC mode.

	Lines 7 through 13 handle the errorlevels.

	In line 7, any errorlevel above 130 (the highest errorlevel
	defined in the EVENT statements) causes the batch file to loop
	back to :TOP.

	In line 8, the batch file checks for errorlevel 130.  If the
	errorlevel is exactly 130, the batch file transfers to the
	:GALACTIC label.

	In line 9, if the errorlevel is 120, the batch file goes to the
	:SEMIWEEKLY label.

	In line 10, if the errorlevel is 110, the batch file goes to the
	:NIGHTLY label.

	In line 11, if the errorlevel is 100, the batch file goes to the
	:MIDNIGHT label.

	Line 12 should loo familiar.  It checks for errorlevel 1, which
	is returned when you hit Escape in the WFC screen.  If the
	errorlevel is 1, the batch file exits.

	Line 13 simply loops back to the :TOP label.

	Lines 15 through 19 make up what happens when the errorlevel
	from BBS.EXE is 130.  In line 8, if the errorlevel is 130 the
	batch file branches to the :GALACTIC label, on line 15.  Here,
	several DOS commands change the directory to C:\DOORS\GALACTIC
	and run G.EXE.	After this is done, the GOTO TOP returns to the
	:TOP label, to await another call.

	Similar groups of lines, starting with a label and ending with
	GOTO TOP, make up the commands that are called for each
	errorlevel.

	Finally, at line 41, we have the :FINISH label, and the way out.

        NanoBBS Documentation                                   Page 46

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Using batch files with Fido mailers ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	One important thing that the above examples have in common is
	that they are all meant for stand-alone BBSes - BBSes which
	answer the phone themselves and don't have to use a mailer
	program like Binkleyterm or Frontdoor.	However, when you use a
	mailer, the batch mechanism is usually quite different.
	Different mailers have different ways of passing off information
	such as baud rate, time remaining, etc. to the BBS.

	Generally, your batch file calls up the mailer instead of the
	BBS, and looks for the mailer's errorlevels instead of your
	BBS's errorlevels.

	Here is an example batch file called RUN.BAT which works with
        BinkleyTerm.

		@echo off
		:top
		c:
		cd\bink
		bt
		if errorlevel 144 bbsbatch.bat
		if errorlevel 120 bbsbatch.bat
		if errorlevel 100 goto mail
		if errorlevel 96 bbsbatch.bat
		if errorlevel 79 goto domaint
		if errorlevel 72 bbsbatch.bat
		if errorlevel 48 bbsbatch.bat
		if errorlevel 24 bbsbatch.bat
		if errorlevel 12 bbsbatch.bat
		if errorlevel 3 bbsbatch.bat
		if errorlevel 1 goto done
		goto top

		:domaint

		@echo *** Now Doing Daily Maintenance
		call c:\flit\filelist.bat
		call c:\batch\msgmaint.bat
		goto top

		:mail
		c:
		cd\squish
		squish in out squash
		goto top

		:done







        NanoBBS Documentation                                   Page 47

        In the example on the previous page, we check for errorlevels
        passed by BinkleyTerm. One of BinkleyTerm's features is that
        when there is a BBS connect (that is, when the user hits Escape
        upon connection to BinkleyTerm) Binkley exits with an errorlevel
        which is based on the connect baud rate.  This errorlevel is the
        baud rate divided by 100, e.g. errorlevel 24 for 2400 baud,
        errorlevel 96 for 9600 baud, etc.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Aside:							³
	³								³
	³ Remember I mentioned that errorlevels can be from 0 to 255?	³
	³ This is true, but it's not a problem to pass, or check for,   ³
	³ an errorlevel above 255.  What happens is that the errorlevel ³
	³ is "rolled over" so that it is less than 255.  In technical   ³
	³ terms, the errorlevel is handled by DOS as if it were modulo	³
	³ 256, or the remainder of the actual errorlevel divided by 256.³
	³								³
	³ So, if you have a V.34 modem, Binkley may try to pass 	³
	³ errorlevel 288 - for 28800 baud.  This is fine, and you can	³
	³ legally use a statement like IF ERRORLEVEL 288 with no	³
	³ problems but be cautioned that errorlevel 288 is the same as	³
	³ errorlevel 32 as far as DOS is concerned!  288 modulo 256 is	³
	³ 32.  So if you wanted to use errorlevel 32 for something else,³
	³ you would run into a conflict here.				³
	³								³
	³ As long as you are aware of this potential conflict, you can	³
	³ write your batch file so as to avoid it.			³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	In the above example, we start off by changing to the
	BinkleyTerm directory and running BT.EXE.

	After that, the IF ERRORLEVEL statements check for numerous
	errorlevels.  Binkley generates a different errorlevel for each
	baud rate and this batch file checks for errorlevels 144, 120,
	96, 72, 48, 24, 12 and 3.  Since all of these errorlevels
	indicate a BBS session rather than a BinkleyTerm event, they all
	cause the same thing to occur: a batch file called BBSBATCH.BAT
	is called.  We'll look at BBSBATCH.BAT momentarily; it is a very
	important part of this method.

	The other errorlevels have various functions.  Errorlevel 100
	causes a jump to the :MAIL label, where several DOS commands
	pack and unpack echomail using Lanius' SquishMail system.
	Errorlevel 79 jumps to the :DOMAINT label, which in turn calls a
	couple of other batch files (using the dos CALL command) which
	might in turn call numerous daily maintenance routines.  In both
	cases, the batch file returns to :TOP to call up Binkley again.

        BinkleyTerm generates a one line batch file called BBSBATCH.BAT.
        This is called by the batch file above, and it looks something
        like this:

                SPAWNBBS 14400 14400 1 46 /Arq



        NanoBBS Documentation                                   Page 48

        But what is SPAWNBBS, you may ask?  If you guessed it's another
	batch file, you're right!  You may be thinking that this is
	getting unnecessarily complicated, but this actually gives the
	mailer incredible flexibility in dealing with different BBSes.

	Before we look at SPAWNBBS.BAT, let's examine the above
        one-liner.  The first 14400 is the baud rate.  We can pass this
        on to NanoBBS using the /B switch, and in fact we must in order
        for it to work from a mailer.  We can ignore the second 14400
        for now.  The third parameter, 1, is the com port. NanoBBS gets
        its com port information from its config file so this is not
        needed either.  After that is the time left until the next
        mailer event, in minutes.  This can be passed to NanoBBS using
        the /T command line switch, so that NanoBBS enforces your
        mailer's events for you.  The last parameter is the connect
        information passed back by the modem, e.g. CONNECT 14400/ARQ
        would produce the /Arq shown above.

        Unfortunately, Binkley is fixed in the format of this batch
        file, so we need a third batch file to translate it into
        something NanoBBS can be called from.  This is where
        SPAWNBBS.BAT comes in.  Here is an example SPAWNBBS.BAT:

                c:
                cd\bbs
                bbs -cnode2 -b%1 -t%4
                c:
                cd\bink
                run

        See the parameters in line 3?  -cnode2 tells NanoBBS to use
        NODE2.DAT (which means you have to CONFIG NODE2), and -b%1 means
        that NanoBBS is to use the %1 DOS variable with the -b
        (baudrate) switch.  And, -t%4 means that NanoBBS is to use the
        %4 DOS variable with the -t (time left) switch.

        What does that mean?  Well, DOS lets you pass parameters to
        batch files.  Up to 9 of them.  So, let's look at BBSBATCH.BAT
        again and its parameters:

                          %1    %2  %3 %4  %5
                         ----- ----- - -- ----
                SPAWNBBS 14400 14400 1 46 /Arq

        When we call SPAWNBBS.BAT like this, as this BBSBATCH.BAT does,
        %1 contains the value 14400.  %4 contains the value 46.












        NanoBBS Documentation                                   Page 49

        This means that the line

                bbs -cnode2 -b%1 -t%4

        really means

                bbs -cnode2 -b14400 -t46

        and NanoBBS will run at 14400 bps, on whatever com port is
        defined in NODE2.CTL, and will impose a 46 minute maximum limit
        so that the mailer's event can run on time.

        Note that after the BBS runs, no errorlevel checking is done.
        This is because NanoBBS events are really only relevant to WFC
        mode, which is nonexistent when you run NanoBBS this way.

        Once the BBS has finished running, the SPAWNBBS.BAT logs back to
        the mailer directory and calls up the original RUN.BAT again.


        Let's break this whole complicated mess down into steps.

                 عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
                 ³ RUN.BAT - Runs the mailer, and checks ³
                 ³ errorlevels for mailer events or BBS  أ<ؤؤؤ؟
                 ³ callers.                              ³    ³
                 ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤآؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ    ³
                                    \³/                      /³\
                 عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤءؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟   ³
                 ³ Mailer generates one-line BBSBATCH.BAT ³   ³
                 ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤآؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ   ³
                                    \³/                       ³
                    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤءؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟       ³
                    ³ BBSBATCH.BAT calls SPAWNBBS.BAT ³      /³\
                    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤآؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ       ³
                                    \³/                       ³
                  عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤءؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟  ³
                  ³ SPAWNBBS.BAT takes the %1 and %4 batch ³  ³
                  ³  variables and passes them to NanoBBS. ³  ³
                  ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤآؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ  ³
                                    \³/                      /³\
                  عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤءؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟  ³
                  ³ Once NanoBBS is finished, SPAWNBBS.BAT ³  ³
                  ³   returns to the RUN.BAT batch file.   أؤؤظ
                  ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ













        NanoBBS Documentation                                   Page 50

        Here is another example of a batch file that works with
        Binkleyterm, but it can do the whole thing in one batch file,
        without needing the SPAWNBBS.BAT file or Binkley's BBSBATCH.BAT
        file.  It is slightly less sophisticated in that it is oblivious
        to Binkley's events and will not try to force them.  If you must
        force BinkleyTerm events, don't write your batch file this
        way...

                        @echo off
                        :top
                        c:
                        cd\bink
                        bt
                        if errorlevel 144 goto bbs14400
                        if errorlevel 120 goto bbs12000
                        if errorlevel 100 goto mail
                        if errorlevel 96 goto bbs9600
                        if errorlevel 79 goto domaint
                        if errorlevel 72 goto bbs7200
                        if errorlevel 48 goto bbs4800
                        if errorlevel 24 goto bbs2400
                        if errorlevel 12 goto bbs1200
                        if errorlevel 3 goto bbs300
                        if errorlevel 1 goto done
                        goto top

                        :bbs14400
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b14400
                        goto top
                        :bbs12000
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b12000
                        goto top
                        :bbs9600
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b9600
                        goto top
                        :bbs7200
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b7200
                        goto top
                        :bbs4800
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b4800
                        goto top
                        :bbs2400
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b2400
                        goto top


        NanoBBS Documentation                                   Page 51

                        :bbs1200
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b1200
                        goto top
                        :bbs300
                        c:
                        cd\bbs
                        bbs.exe -cnode1 -b300
                        goto top

                        :domaint

                        @echo *** Now Doing Daily Maintenance
                        call c:\flit\filelist.bat
                        call c:\batch\msgmaint.bat
                        goto top

                        :mail
                        c:
                        cd\squish
                        squish in out squash
                        goto top

                        :done


        See what this batch file does?  It actually goes to a different
        part of the batch file for each baud rate.  Thus the BBS is
        called with the right baud rate based on the errorlevel Binkley
        passes.

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
        ³ Similar batch files are possible with virtually any DOS      ³
        ³ mailer you can imagine.  In particular, Front Door will work ³
        ³ with the first set of example batch files with only minor    ³
        ³ modifications to the batch files.  Remember, READ YOUR       ³
        ³ MAILER INSTRUCTIONS, particularly the part dealing with      ³
        ³ errorlevels and BBS Batch Files, before you write a batch    ³
        ³ file you will be relying on!                                 ³
        ³                                                              ³
        ³ And very importantly, TEST your batch files.  If you have    ³
        ³ more than one line, call your BBS on the other line, at      ³
        ³ various baud rates, and just make sure everything's OK. Get  ³
        ³ a friend with a mailer to send you netmail.  Watch it come   ³
        ³ in and make sure it unpacks.  You should comment out the     ³
        ³ @echo off statements while you're debugging your batch files ³
        ³ so that you can see what's going on.                         ³
        ³                                                              ³
        ³ Don't be afraid to ask for help from your fellow SysOps!     ³
        ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ







        NanoBBS Documentation                                   Page 52

        ةحثححححححححححححححححححححححححححثح»
	؛ ؛ NanoBBS Utility Programs ؛ ؛
	بحتححححححححححححححححححححححححححتح¼

	CONFIG.EXE	- The NanoBBS General Configuration Compiler.
			  See the chapter entitled "The Configuration
			  File" for complete details on the use of this
			  program.

	MMB.EXE 	- The NanoBBS Message Base Configuration Compiler

	MFB.EXE 	- The NanoBBS File Base Configuration Compiler

	MAKEDOOR.EXE	- The NanoBBS Doors Configuration Compiler

	عؤؤؤؤؤؤؤؤؤ؟
	³ UFO.EXE ³
	ہؤؤؤؤؤؤؤؤؤظ

	UFO.EXE compiles the text source files for UFO scripts into .BBS
	files which are readable by NanoBBS.  Please see the section on
	UFO commands for more information on the structure and syntax of
	the source files.

	UFO.EXE has only one parameter, that is the filename to be
	compiled.  There are no command line switches or other options.
	If the filename has no path, the current path is assumed.  If it
	has no extension, .UFO is assumed.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ VIEWUFO.EXE ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	VIEWUFO.EXE emulates the BBS's UFO syntax parser (in fact it
	contains a copy of the UFO kernal).  It is used for previewing
	your UFO scripts without having to fire up the BBS and log in,
	possibly having to wade through many menus to get to the one
	piece of UFO code you want to test.  With VIEWUFO that is not
	necessary; you can supply the name of any .BBS file on the
	command line.  If no path is given, VIEWUFO first looks in the
	current directory and then in the "textpath" directory defined
	in the config control file NODE1.CTL (or whatever you've chosen
	to name it).  The file name is, of course, mandatory but you
	have another optional parameter: You can emulate the session
	with any user in your user file by supplying the /U parameter
	after the filename.  The /u should be immediately followed by
	either the user's number or name if it's a one word pseudo.

	Examples: VIEWUFO MENU will view a file called MENU.BBS.

		  VIEWUFO MENU /U0 will load the first user record
				   (should be the sysop!!!) and treat
				   all functions with that user's access
				   level, flags and other variables.

		  VIEWUFO MENU /UTommy will load "Tommy" (if present).


        NanoBBS Documentation                                   Page 53

		  VIEWUFO MENU /UJohn Smith is invalid and will attempt
					    to find a user whose whole
					    name is just "John".  I
					    might do something about
					    this in the next version.

	عؤؤؤؤؤؤؤؤؤؤؤ؟
	³ NCOMP.EXE ³
	ہؤؤؤؤؤؤؤؤؤؤؤظ

	NCOMP.EXE is the NanoBBS language compiler.  It is NOT the same
	as UFO.EXE and its function should not be confused with UFO.EXE.
	Where UFO compiles scripts which are used to alter and augment
	NanoBBS's function, NCOMP is used to configure the low-level
	system messages, such as the prompts, headers, footers, list
	formats, menus, and so forth.  NCOMP compiles flat text files
	which are named filename.TXL.  It will generate filename.LNG and
	filename.LDX files which are used by NanoBBS directly.	Embedded
	colours and a number of other embedded commands are allowed in
	language files, but UFO syntax is not and will be simply written
	in an ugly manner as though it were text.


	ةحثححححححححححححححححححححححححثح»
	؛ ؛ External Control Files ؛ ؛
	بحتححححححححححححححححححححححححتح¼
	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ CONFIGURATION FILES ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ
	عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ LIMITS.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	This file defines the time limits and download limits for each
	access level.  Make sure that all access levels which are in use
	on your system are included in this file or else you will find
	some users not getting the access they deserve.  The exact
	syntax of this file is laid out in the example file which comes
	with NanoBBS.

	عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ EXPIRY.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	This file defines what happens when a user's account expires.
	The syntax of this file is explained in the example file.

	عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ CENSOR.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is a list of words which will be censored out of messages
	posted to areas with the CENSOR option turned on.  The example
	file lists just a few words that I think most sysops will not
	want to have posted in most areas.  You can add or delete any
	words you like.


        NanoBBS Documentation                                   Page 54

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ TRASHCAN.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is a list of unacceptable user names.  If a new user's name
	is the same as any line in this file the account will not be
	created and the user will be hung up on.  If a line starts with
	@ (the at sign) then the rest of the list is taken as a
	substring instead of doing an exact search.

	Examples:

	Say your TRASHCAN.CTL file contains:

	@CRAP
	@FRUG
	ALL

	It will disallow someone named "Joe Crapola" or "Motherfrugger"
	or "All" but will allow "Allen Smith".  For historical reasons,
	it is a good idea to make "ALL" an unacceptable name.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ FIDOCOST.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This nifty little file is how NanoBBS can do Fidonet netmail
	costing without a nodelist!  Of course, it is left to your
	mailer to determine whether any of the nodes provided by your
	users really exist.  The syntax is quite simple and is described
	in full in the FIDOCOST.CTL example included with NanoBBS.

	عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ COOKIE.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is an example input file for the [cookie] UFO keyword.  It
	has a few dozen memorable quotes and song lyrics, and is the one
	I use personally on THC Freedom Online BBS.

	عؤؤؤؤؤؤؤؤؤؤؤ؟
	³ NODE1.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤظ

	This is the general configuration file for the BBS.  See the
	included NODE1.CTL file for a full explanation of all the
	options in this file.  It must be compiled with the CONFIG.EXE
	program in order for NanoBBS to be able to use it.  This file
	can have any name, but to use any name other than NODE1, you
	must use the /C command line option.








        NanoBBS Documentation                                   Page 55

        عؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ MSGAREA.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is the message area configuration file for the BBS.  See
	the included MSGAREA.CTL file for examples and a syntax
	explanation.  It must be compiled with the MMB.EXE program
	(which is called by the CONFIG.EXE program for your convenience)
	in order for NanoBBS to be able to use it.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ FILEAREA.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is the file area configuration file for the BBS.  See the
	included FILEAREA.CTL file for examples and a syntax
	explanation.  It must be compiled with the MFB.EXE program (also
	called by CONFIG.EXE) in order for NanoBBS to be able to use it.

	عؤؤؤؤؤؤؤؤؤؤؤ؟
	³ DOORS.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤظ

	This is the configuration file for doors (external games,
	utilities, etc) for the BBS.  See the included DOORS.CTL file
	for examples and a syntax explanation.	It mist be compiled with
	the MAKEDOOR.EXE program (also called by CONFIG.EXE) in order
	for NanoBBS to be able to use it.

	عؤؤؤؤؤؤؤؤؤؤ؟
	³ CHAT.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤظ

	This is the NanoCHAT configuration file.  Unlike the other
	configuration files, it does not need to be "compiled", and so
	no compiler is included with it.  Please see the NanoCHAT
	chapter for full details on the syntax and usage of this file.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ MESSAGES.BAR ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	This is the "Barricade File."

	Why barricades?

	Picture this situation: You have a user who's been well-behaved
	for the most part, perhaps he's uploaded a lot of stuff and sent
	you a donation.  But he happens to get on the wrong side of the
	moderator of a local echo conference and before he knows it he's
	barred from posting to that conference.  The moderator "directs"
	you to remove the user's access to the conference, but you don't
	want to delete the user from your system or reduce his access
	level; after all he's been a good and valued member of your
	board.

	What do you do?

        NanoBBS Documentation                                   Page 56

        Well, in many other BBS programs you'd be between the rock and a
	hard place; you'd either have to swallow a big lump and reduce
	the user's access or you'd face the wrath of the moderator and
	the echomail hub.  But NanoBBS has a much less obnoxious
	solution.  It is the "barricade file."

	The barricade file is a a flat text file containing a list of
	message areas and the users who are NOT allowed to access them.
	It takes the following syntax (this is an example):

		Area  1
		The Hacker
		Joe Schmoe
		Dave Rhodes
		Area  15
		Tom Vu
		William J. Clinton
		Area  16
		Dave Rhodes
		Charlie Manson

	In this example, "The Hacker", "Joe Schmoe" and "Dave Rhodes"
	are not allowed to post in message area #1.  "Tom Vu" and
	"William J. Clinton" are not allowed to post in area 15.  Note
	that "Dave Rhodes" is not allowed to post in either area 1 or 16.

	There is one more step required to activate a barricade for an
	area.  In addition to including the area number and the names of
	the barred users in MESSAGES.BAR, you also must include the
	BARRICADE parameter in the area's definition in the MSGAREA.CTL
	file.  Don't forget to run MMB or CONFIG when you make this
	change.  The reason for requiring this keyword is that we don't
	want to check the barricade file _every_ time we change area,
	only when we are changing to a barricaded area.  By imposing
	this small extra requirement the system can eliminate some
	unnecessary overhead and will run faster.

	عؤؤؤؤؤؤؤؤؤؤؤ؟
	³ FILES.BBS ³
	ہؤؤؤؤؤؤؤؤؤؤؤظ

	This is the file used in the file sections to keep track of the
	files availabel for downloading, and their descriptions.  It
	follows the basic format used in many BBS software packages,
	with some extensions.

	Each line in the FILES.BBS is either a file entry or a
	"comment."  To make a line a comment, just make the first
	character of the line a space.

	A file entry line starts with the filename and extension (e.g.
	FILENAME.ASC) followed by a general description of the file.  In
	the classic FILES.BBS scheme, the description must fit on one
	line, but NanoBBS offers two methods to get around this limit,
	which we will get to briefly.



        NanoBBS Documentation                                   Page 57

        Here is an example of the FILES.BBS format.

	 This is a comment line.
	FILENAME.ZIP A generic file listing entry
	NANOBBS.ZIP  NanoBBS, The Ultimate BBS Software Achievement!
	 This is another comment line.	Here are some more files.
	CATCLOCK.ANS An ANSI animated cat clock.
	MODEMSET.TXT How to set up your high speed modem.
	NEWGAME.ZIP  The latest VGA Shootemup from Violence Games, Inc.

	Notice how the comment lines are indented?  As long as the
	first character is a space, NanoBBS will display the comment
	line without trying to find a file.  If you inadvertently put in
	a comment line without the leading space, what will happen is
	that NanoBBS will attempt to find a file with a filename equal
	to the first word in your comment.  In the above examples, if
	the comment lines were not indented, NanoBBS would in each case
	try to find a file called THIS.  It would very likely report
	this file missing.

	EXTENDED FILE DESCRIPTIONS IN FILES.BBS

	Tilde-style:

	In FILES.BBS you can have descriptions on the same line up to
	240 characters (and they will be automatically word-wrapped),
	but that's not all!  By appending a tilde '~' character to a
	description, you can indicate that the following line, in its
	entirety, is also part of the description of the same file!  It
	too will be auto-wrapped and will appear to the user to be one
	long description.

	Here is an example, suppose this is a segment from a FILES.BBS:

	NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the market!~
	Loaded with features! Internal X-Y-Zmodem and SEAlink transfers,~
	high speed file searching, internal QWK, an internal full screen~
	editor, and the legendary UFO scripting language only begin to~
	list the multitude of features in this amazing package! Shareware,~
	$69 for one or two nodes. From Whirlwind Software!

	Notice that the last line does not end in a tilde.  This is very
	important, because if it did, the next line would be counted as
	part of the description for NANOBBS.ZIP, even if it's really the
	FILES.BBS entry for the next file in the list!	Always remember
	never to put a tilde on the last line of an extended
	description!











        NanoBBS Documentation                                   Page 58

        Now, this will come out looking something like this when the user
	lists the area:

	NANOBBS.ZIP  760348 94-12-01 NanoBBS: Simply the most flexible
				     BBS on the market! Loaded with
				     features! Internal X-Y-Zmodem and
				     SEAlink transfers, high speed file
				     searching, internal QWK, an
				     internal full screen editor, and
				     the legendary UFO scripting
				     language only begin to list the
				     multitude of features in this
				     amazing package! Shareware, $69 for
				     two nodes. From Whirlwind Software!

	Pretty neat, eh?  You can have descriptions of virtually
	limitless length using this technique, which is fortunate since
	so many FILE_ID.DIZ's seem to be just that: endless!

	Pipe-style extended descriptions:

	There is another format supported by NanoBBS for extended
	descriptions.  This is sometimes used on CD's, particularly on
	the Night Owl series.  After a FILES.BBS filename and
	description, the description can be continued by prepending a
	pipe symbol "|" to the following line.  As a matter of practice
	this should be further prepended with a space but NanoBBS does
	not require this.

	Here is an example of a valid pipe-style extended description:

	NANOBBS.ZIP  NanoBBS: Simply the most flexible BBS on the
	 | market! Loaded with features! Internal X-Y-Zmodem and SEAlink
	 | transfers, high speed file searching, internal QWK, an
	 | internal full screen editor, and the legendary UFO scripting
	 | language only begin to list the multitude of features in this
	 | amazing package! Shareware, $69 for one or two nodes. From
	 | Whirlwind Software!

	This example produces a description that looks identical to that
	of the tilde-style example shown previously.

	Tilde and Pipe style continuations can be used interchangeably
	within the same FILES.BBS file but not within the same extended
	description of an individual file.  Although the pipe style is
	more standard, the tilde style is considerably faster, due to
	the internal structure of the BBS.

	When NanoBBS extracts a FILE_ID.DIZ to its FILES.BBS file, a
	pipe-style extended description is generated with a pipe
	starting each line from FILE_ID.DIZ except the first.







        NanoBBS Documentation                                   Page 59

        عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ SEMAPHORES ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	When the user does certain things which are likely to require
	the services of an external program after s/he logs off (e.g.
	uploading a file, posting echomail etc.) there has to be a way
	for the BBS to pass this fact off to the batch file which called
	it, so that the batch file can in turn call the appropriate
	upload processor, echomail processor, news mangler, etc.

	The traditional way that most BBSes accomplish this is through
	errorlevels.  Unfortunately there are only 256 errorlevels, and
	with five special exit conditions and the possibility of more
	errorlevels being used by UFO scripts, it quickly becomes
	apparent that the errorlevel method is inadequate.  Therefore,
	NanoBBS uses semaphores to communicate with the batch file.

	A semaphore is simply a zero-length file that the batch file
	checks with an IF EXIST ... line.  If the file exists, NanoBBS
	is indicating a condition.  There can be a virtually unlimited
	number of semaphores versus 256 errorlevels.

	All of the semaphores are written to the system directory. Here
	are the possible semaphores implemented so far, where xxx is the
	node number of the node which generated the file:

	UFILExxx.SEM - when a user has uploaded any files during the
	call.  You can then run BBS /F to reindex the file section
	between calls - this is important if reindexing takes a while
	due to a large file count.

	EECHOxxx.SEM - when a user has entered Fidonet echomail.  You
	can use this to signal to the batch file that it should call
	Squish, Fastecho, Confmail, TosScan, or whatever you use to pack
	up your echomail.

	ENETMxxx.SEM - when a user has entered Fidonet netmail.

	EMAILxxx.SEM - when a user has entered Internet email.

	ENEWSxxx.SEM - when a user has entered Usenet news.
















        NanoBBS Documentation                                   Page 60

        ةحححححححححححححححححححح»
        ؛ Files in /BBS/MISC ؛
        بحححححححححححححححححححح¼

        Please note that in this early release of NanoBBS, most of the
        .RIP files do not yet exist.  NanoBBS will automatically
        substitute a .ANS or a .ASC file where a .RIP is expected and
        not found.


        FSEDHELP.ANS

        This is only available as a .ANS file, as it is the help screen
        for the NEd (NanoBBS EDitor) full-screen message editor, which
        requires ANSI.

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
        ³ Where the following files are concerned, NanoBBS is VERY      ³
        ³ flexible and VERY forgiving.  First, NanoBBS looks for a      ³
        ³ compiled UFO file, with an extension of .BBS.  Note that      ³
        ³ NanoBBS doesn't come with .BBS files for these files; if you  ³
        ³ want this option, you must create your own .UFO files and     ³
        ³ compile them. Anyhow, if NanoBBS does not find the .BBS file, ³
        ³ it then looks for a .RIP, .ANS, or a .ASC file, as is         ³
        ³ appropriate for the graphics standard the user is using, and  ³
        ³ it will fall back within these three, e.g. if a .RIP file is  ³
        ³ called for and not found, NanoBBS will look for a .ANS and    ³
        ³ then a .ASC.  Failing these, it tries .TXT, then no extension,³
        ³ and only after all these have been exhausted does it finally  ³
        ³ give up and log an error.                                     ³
        ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

        BADNAME.BBS
        BADNAME.RIP
        BADNAME.ANS
        BADNAME.ASC

        This file is displayed when a user applying for a new account
        enters a name that has been locked out in TRASHCAN.CTL.  You can
        transplant compiled UFO code into this file.


        BYE.BBS
        BYE.RIP
        BYE.ANS
        BYE.ASC

        This is the file that is displayed when a normal logoff occurs;
        it is a sort of "Goodbye, see you soon!" message.  You can
        transplant compiled UFO code into this file.








        NanoBBS Documentation                                   Page 61

        DOORS.BBS
        DOORS.RIP
        DOORS.ANS
        DOORS.ASC

        This is the file that is displayed when the user goes into the
        Doors menu.


        FILEHELP.BBS
        FILEHELP.RIP
        FILEHELP.ANS
        FILEHELP.ASC

        This provides detailed help for the file section.  It can
        contain UFO syntax.  Only FILEHELP.BBS is included.


        MAINHELP.BBS
        MAINHELP.RIP
        MAINHELP.ANS
        MAINHELP.ASC

        This provides detailed help for the main menu.  It can contain
        UFO syntax.  Only MAINHELP.BBS is included.


        LOGO.BBS
        LOGO.RIP
        LOGO.ANS
        LOGO.ASC

        This is the file which is displayed when the user first
        connects.  It is commonly called the "logo screen."


        WELCOME.BBS
        WELCOME.RIP
        WELCOME.ANS
        WELCOME.ASC

        This is the file which is displayed after the user has
        successfully logged on.  It is commonly called the "welcome
        screen."


        ULPOLICY.BBS     DLPOLICY.BBS
        ULPOLICY.RIP     DLPOLICY.RIP
        ULPOLICY.ANS     DLPOLICY.ANS
        ULPOLICY.ASC     DLPOLICY.ASC

        These are the files displayed immediately prior to uploading
        and downloading, respectively.  Normally they would contain
        advice pertaining to acceptable uploads, ratio enforcement, etc.




        NanoBBS Documentation                                   Page 62

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
        ³ Random Logo/Welcome Screens!                                   ³
        ³                                                                ³
        ³ Random welcome/logo screens are a popular feature of many      ³
        ³ BBSes, but few seem to support it internally as NanoBBS does.  ³
        ³                                                                ³
        ³ You can randomize the "logo" files by using the LOGO-RIP.LST,  ³
        ³ LOGO-ANS.LST and LOGO-ASC.LST files.  You can also randomize   ³
        ³ the "welcome" files by using the WELC-RIP.LST, WELC-ANS.LST    ³
        ³ and WELC-ASC.LST files.  These are plain text files which      ³
        ³ contain a list of the files to be randomly chosen from. If you ³
        ³ want to use random welcome files, the LOGO-*.LST files should  ³
        ³ be present in your system directory (your "syspath").  If      ³
        ³ present, NanoBBS will, instead of displaying a LOGO.* file,    ³
        ³ will instead randomly choose a filename from the list.         ³
        ³ Otherwise it just uses the appropriate LOGO.* file.  The       ³
        ³ "welcome" files work in just the same way! Here is an          ³
        ³ example of LOGO-ANS.LST, as used on THC Freedom Online BBS.    ³
        ³                                                                ³
        ³       THCLOGO1.ANS                                             ³
        ³       THCLOGO2.ANS                                             ³
        ³       THCLOGO5.ANS                                             ³
        ³       THCLOGO6.ANS                                             ³
        ³       THCLOGO7.ANS                                             ³
        ³       THCLOGO8.ANS                                             ³
        ³       THCLOGO9.ANS                                             ³
        ³       THCLOGOA.ANS                                             ³
        ³                                                                ³
        ³ If the filenames in the list have no extension, NanoBBS        ³
        ³ assumes that they are located in the same directory with the   ³
        ³ other system text files documented in this section (your       ³
        ³ "textpath").                                                   ³
        ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ


        EXPIRED.BBS
        EXPIRED.RIP
        EXPIRED.ANS
        EXPIRED.ASC

        This file is displayed when a user logs on whose account has
        just expired.  This file is not required as SYSMSG 50 in the
        language file is used for the same purpose (sysmsg 50 is
        displayed first).


        NEWUSER1.BBS
        NEWUSER1.RIP
        NEWUSER1.ANS
        NEWUSER1.ASC

        This is the file displayed prior to the user entering the "new
        user registration" procedure.





        NanoBBS Documentation                                   Page 63

        NEWUSER2.BBS
        NEWUSER2.RIP
        NEWUSER2.ANS
        NEWUSER2.ASC

        This is the file displayed after the user completes the "new
        user registration" procedure.

        NEWS.BBS
        NEWS.RIP
        NEWS.ANS
        NEWS.ASC

        This is a "what's new" file displayed right after the "welcome"
        file has been displayed (see pg. 62)


        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
        ³ NanoCHAT Files ³
        ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

        $I0.BBS $I1.BBS $I2.BBS $I3.BBS $I4.BBS $I5.BBS $IZ.BBS

        These are the files displayed when a user types /I in NanoCHAT.
        For example, if the user types /I0, the file $I0.BBS is
        displayed.  Similarly, /I3 would invoke $I3.BBS.  /I can be used
        to invoke files up to six distinct characters long, e.g. /IRULES
        would invoke a file called $IRULES.BBS, and /ISYSOPS would
        invoke $ISYSOPS.BBS.  Note that these files can be UFO scripts
        (hence the .BBS extension).  You can create as many /I files as
        you want.


        $MA.BBS $MB.BBS $MC.BBS $MY.BBS $MZ.BBS

        These are the files displayed when a user types /M in NanoCHAT.
        Their operation is identical to the /I files above, except of
        course that /M files are periodically displayed to the user
        automatically.  Again, full UFO syntax is A-OK, names up to six
        characters long are fine, and you can have as many as you want.


        ACTION.HLP

        This is the help file for actions in NanoCHAT.  It isn't a UFO
        script but it can contain embedded colour codes.


        ACTION.LST

        This is a short list of actions for NanoCHAT.


        TOMMCHAT.HLP

        This is the help file for NanoCHAT.  It is a direct copy of the
        one from TommCHAT, hence its name.

        NanoBBS Documentation                                   Page 64

        ةحثحححححححححححححححححححححححححححححححثح»
	؛ ؛ KEYS WHILE THE USER IS ONLINE ؛ ؛
	بحتحححححححححححححححححححححححححححححححتح¼

	عؤؤؤؤؤؤؤ؟
	³ Alt-C ³ Chat with the user.  ESC exits from Chat.  In chat,
	ہؤؤؤؤؤؤؤظ you can activate a capture buffer (for recording those
		  "memorable" chat sessions) with the Alt-L (Chat
		  Logging) key.

	عؤؤؤؤؤؤؤ؟
	³ Alt-H ³ Hangs up on the user.
	ہؤؤؤؤؤؤؤظ

	عؤؤؤؤؤؤؤ؟
	³ Alt-S ³ Change the SysOp bar.  The sysop bar has several
	ہؤؤؤؤؤؤؤظ modes which display different information.  This key
		  cycles through them.

	عؤؤؤؤؤؤؤ؟
	³ Alt-E ³ Invoke the user editor.  The user record of the user
	ہؤؤؤؤؤؤؤظ currently online will be presented but you can change
		  to another user and you have access to all the
		  functions of the BBS/E user editor.

	عؤؤؤؤؤؤؤ؟
	³ Alt-F ³ "Freeze" or "Unfreeze" time.  This key toggles between
	ہؤؤؤؤؤؤؤظ frozen and unfrozen time.  When time is frozen, time
		  limits are not checked and the clock does not tick...
		  however dead-man keyboard timeouts are still in full
		  force.

	عؤؤؤؤؤؤؤ؟
	³ Alt-J ³ "J"ump to DOS.  This gets the path and filename for your
	ہؤؤؤؤؤؤؤظ command.com file straight from the COMPSPEC environment
		  variable so it's automatic.  It swaps the program and
		  all its variables out to a swap file (which can take a
		  second or so) giving you the biggest DOS memory window
		  possible.

	عؤؤؤؤؤؤ؟
	³ PgDn ³ Takes 5 minutes off the user's time remaining.
	ہؤؤؤؤؤؤظ

	عؤؤؤؤؤؤ؟
	³ PgUp ³ Adds 5 minutes to the user's time remaining.
	ہؤؤؤؤؤؤظ

	عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Down-arrow ³ Takes 1 minute off the user's time remaining.
	ہؤؤؤؤؤؤؤؤؤؤؤؤظ

	عؤؤؤؤؤؤؤؤؤؤ؟
	³ Up-arrow ³ Adds 1 minute to the user's time remaining.
	ہؤؤؤؤؤؤؤؤؤؤظ



        NanoBBS Documentation                                   Page 65

        عؤؤؤؤؤ؟
	³ ESC ³ Aborts any file transfer in progress when the current
	ہؤؤؤؤؤظ block finishes.  In streaming protocols the BBS will
		wait for the block to be acknowledged by the other
		end before aborting the transfer, so this may not
		occur instantly - one end may be several blocks ahead
		of the other, depending on your FOSSIL buffer size.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ F1 ... F10		 ³
	³ Shift-F1 ... Shift-F10 ³
	³ Ctrl-F1 ... Ctrl-F10	 ³
	³ Alt-F1 ... Alt-F10	 ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	These are 40 sysop-definable keys each of which causes a
	compiled UFO file (ending in .BBS) to be run.  If the file for a
	particular key is not found an error message will be displayed
	to the sysop console only.  Here are the keys and the filenames
	they invoke (all the files must be in the BBS System directory):

	 ةحححححححححححححححححححححثححححححححححححححححححححححح»
	 ؛   Key      Filename ؛   Key	     Filename  ؛
	 جححححححححححرححححححححححخحححححححححححرححححححححححح¹
	 ؛   F1     ³ F1.BBS   ؛ Shift-F1  ³ SF1.BBS   ؛
	 ؛   F2     ³ F2.BBS   ؛ Shift-F2  ³ SF2.BBS   ؛
	 ؛   F3     ³ F3.BBS   ؛ Shift-F3  ³ SF3.BBS   ؛
	 ؛   F4     ³ F4.BBS   ؛ Shift-F4  ³ SF4.BBS   ؛
	 ؛   F5     ³ F5.BBS   ؛ Shift-F5  ³ SF5.BBS   ؛
	 ؛   F6     ³ F6.BBS   ؛ Shift-F6  ³ SF6.BBS   ؛
	 ؛   F7     ³ F7.BBS   ؛ Shift-F7  ³ SF7.BBS   ؛
	 ؛   F8     ³ F8.BBS   ؛ Shift-F8  ³ SF8.BBS   ؛
	 ؛   F9     ³ F9.BBS   ؛ Shift-F9  ³ SF9.BBS   ؛
	 ؛   F10    ³ F10.BBS  ؛ Shift-F10 ³ SF10.BBS  ؛
	 بححححححححححدححححححححححتحححححححححححدححححححححححح¼
	 ةحححححححححححححححححححححثححححححححححححححححححححححح»
	 ؛   Key      Filename ؛   Key	     Filename  ؛
	 جححححححححححرححححححححححخحححححححححححرححححححححححح¹
	 ؛  Alt-F1  ³ AF1.BBS  ؛  Ctrl-F1  ³ CF1.BBS   ؛
	 ؛  Alt-F2  ³ AF2.BBS  ؛  Ctrl-F2  ³ CF2.BBS   ؛
	 ؛  Alt-F3  ³ AF3.BBS  ؛  Ctrl-F3  ³ CF3.BBS   ؛
	 ؛  Alt-F4  ³ AF4.BBS  ؛  Ctrl-F4  ³ CF4.BBS   ؛
	 ؛  Alt-F5  ³ AF5.BBS  ؛  Ctrl-F5  ³ CF5.BBS   ؛
	 ؛  Alt-F6  ³ AF6.BBS  ؛  Ctrl-F6  ³ CF6.BBS   ؛
	 ؛  Alt-F7  ³ AF7.BBS  ؛  Ctrl-F7  ³ CF7.BBS   ؛
	 ؛  Alt-F8  ³ AF8.BBS  ؛  Ctrl-F8  ³ CF8.BBS   ؛
	 ؛  Alt-F9  ³ AF9.BBS  ؛  Ctrl-F9  ³ CF9.BBS   ؛
	 ؛  Alt-F10 ³ AF10.BBS ؛  Ctrl-F10 ³ CF10.BBS  ؛
	 بححححححححححدححححححححححتحححححححححححدححححححححححح¼









        NanoBBS Documentation                                   Page 66

        ةحثححححححححححححححححححححححححححححححححححححححححححححححححثح»
        ؛ ؛ A Tour of NanoBBS's canned main menu interface ؛ ؛
        بحتححححححححححححححححححححححححححححححححححححححححححححححححتح¼

	Here is an explanation of each of the main menu commands. This
	is taken directly from the MAINHELP.TXT file which is displayed
	to users who select the "H" (detailed help) option.  Because of
	this, the help is written in a to-the-user perspective.

	"A" - Jump to a message area.

	This changes the message area, and is directly synonymous with
	the "J" command.  It is included for the benefit of callers who
	are used to using "A" to change areas on other BBSes.  See
	the "J" command help (coming up) for more information.

	"C" - Page SysOp to Chat

	This option will, during reasonable hours, cause NanoBBS to
	play a little tune to get the sysop's attention.  It is only
	necessary to page once as a flashing yellow "Paged" will appear
	on the sysop's console until you log off.  The sysop can set
	the hours during which this option will make noise, so it's
	probably not a good idea to page late at night.

	If the Sysop notices that you have paged, and feels like
	chatting, s/he'll activate "chat mode" which will allow you to
	communicate directly with the sysop in real time by typing back
	and forth at one another.

	"D" - DOORS - Games and other external programs

	This option will present you with a menu of "doors."

	Doors are external programs which the BBS can call up for you to
	use.  Most doors are multi-player games.  Some of the most
	popular door games are Barren Realms Elite, Tradewars, Galactic
	Empire and Rancho Nevada.  Each game has its own set of rules
	and features, and help is (hopefully) available in each one.
	Detailed help with doors is beyond the scope of this document;
	ask your sysop or, if there is a message base dedicated to the
	doors, post a public message there and someone will likely have
	an answer to your question.

	"E" - EMAIL - Non-public "electronic mail"

	This option allows you to send and check for "electronic mail"
	to other users.  NanoBBS's e-mail technology is such that true
	privacy cannot be guaranteed - the sysop can and probably does
	read any email on the BBS!  However other users cannot read
	email that is not addressed to them.  If privacy is a concern,
	you should use a program like PGP to encrypt your private mail
	before sending it to the BBS.  Make sure your sysop allows
	encrypted messages before you try this!




        NanoBBS Documentation                                   Page 67

        "F" - FILES - File Transfers

	On most BBSes this is the most popular place!  This is where you
	can "download" programs, pictures and textfiles (and much more)
	from the BBS to your computer!	You can also "upload" files from
	your computer to the BBS, which will improve your
	"download:upload ratio" which the sysop can use to limit
	excessive downloading.	NanoBBS has seven widely-used transfer
	protocols, and supports advanced features like batch transfers
	(many files downloaded or uploaded at once) and new-file scans!
	More help is available at the file transfer menu.

	"G" - GOODBYE - Log off the BBS

	Use this command when you are finished using the BBS and want to
	log off.  NanoBBS is robust software; you could just hang up and
	nothing would be damaged, but it is considered impolite to log
	off that way, so please use "G"oodbye to log off!  This command
	is available at most menu prompts in the system for your
	convenience.

	"H" - HELP - Advanced Help.

	Advanced Help is what you are reading now.

	"I" - INFORMATION - Information on various topics

	This option presents you with a menu of information files for
	your enlightenment and entertainment.  Since this section of the
	BBS is entirely defined by the Sysop it could contain nearly
	anything, but normally this will have information about the BBS,
	its rules, how to subscribe, perhaps a list of other BBSes, etc.

	"A",
	"J" - JUMP - "Jump" to another message area

	This option lets you select which message area you are reading.
	Most BBSes separate messages into "areas" by subject matter, so
	if you wish to read messages on a particular subject, use this
	command to select that subject.  These groupings of message
	topics are called "message areas".

	"K" - KILL - "Kill" or erase a message

	This option lets you erase messages written by you.  It may
	occur that you write a message which you later want to erase
	(for example, you posted a message with hockey scores or other
	information which you later find out to be incorrect).	This
	command can be a real life-saver in some situations!

	"L" - LIST CALLS - Display a list of all today's calls to the BBS

	This option lets you see a list of everyone who's called the BBS
	since midnight.  This is simply for your information.




        NanoBBS Documentation                                   Page 68

        "N" - NEW SCAN - Globally scan for new messages

	This is an extremely powerful messaging command!  It displays
	every new message entered since your last call, in every message
	area.  You can re-read or reply to any of the messages
	displayed.

	"O" - OPTIONS - User config options

	This option gives you a menu of options you can set.  It lets
	you configure the way the BBS looks and behaves when you call.
	For example, you can change screen size, turn colour on or off,
	or even change your password!

	"P" - POST - Post or enter a message in the current message area

	This command lets you enter a new message in the current file
	area.  You will be prompted for a subject (for example, if you
	are posting in the fishing echo, you might enter a subject
	something like "question about bait".  The subject is a very
	brief summary of the message to make it easy for other users to
	quickly find messages they are interested in.

	You will also be prompted for an intended recipient.  You can
	put any person's name or handle here, or if the person is a
	member of the BBS, you can enter their user number.  You can
	also just enter "All" if the message is public and you aren't
	sending it to any particular person.

	After that, you will be able to type in your message.  The
	message editors have advanced help screens of their own.  Once
	you are done entering your message, you can save it, edit it, or
	drop it ("abort").

	"Q" - QWK OPTIONS - Interface with the message base via a QWK
			    reader

	If you have a QWK message reader, you can save a lot of time by
	downloading messages and reading them off-line in your message
	reader.  You can also reply to these messages in the reader and
	upload your replies.  This has the advantage of letting you use
	your favourite message editor to enter messages instead of the
	BBS's line and full-screen editors.  It also saves more online
	time for downloading, playing games, and even for letting other
	users into the BBS!  If you don't have a QWK message reader, you
	will need one for this menu to be of use to you.  Your sysop may
	have one or more reader software packages available for you to
	download; if not, try another BBS, such software is widely
	available!

	"R" - READ MESSAGES - Read messages in the current area

	This lets you read and reply to messages in the current message
	area.




        NanoBBS Documentation                                   Page 69

        "S" - SETUP SCANS - Set up the areas you want included in
			    message scans.

	This lets you define which areas should be included when you do
	a global [N]ew scan or download messages from the [Q]wk menu. By
	default ALL messages that you have access to are turned on.

	"U" - USER LIST - Display a list of users

	This command lets you look up users on the BBS.  It will tell
	you the user number of a particular user, when s/he last called,
	and where they are from.  You can enter a partial username to do
	a search for one or more users, or you can just hit Enter and
	get a list of every user on the system!

	"W" - WHO'S ONLINE

	If the BBS has more than one line and the sysop has enabled
	Multi-user operation, this will let you know who is also using
	the BBS on the other nodes.  It will also let you know roughly
	what they are doing and how long they've been online.

	"Y" - YOUR STATISTICS

	This command displays practically everything the BBS knows about
	you.  It will tell you how much you have uploaded, downloaded,
	and posted, how much time you have banked and how much netmail
	credit you have left, how many days are left in your
	subscription, your access level, and much more!  If you have a
	question about your account, check this command before you ask
	your sysop.

	"/" - NanoCHAT - Enter the multi-user chat system!

	If the BBS has more than one line and if the SysOp has enabled
	multi-line operation, this command will take you into the
	NanoCHAT multi-user chat system!  There is ample help available
	on the particulars of multi-user chat once you get into that
	section.

	"?" - COMMAND SUMMARY - Get a quick list of commands

	This command is the quick way to remind yourself of the
	command key for a particular function.

	"!" - BANG PROMPT - Change the "Bang" prompt

	This lets you change the one-line message displayed at the main
	menu command prompt.  It is called the "bang" prompt because the
	exclamation point key used to invoke it is sometimes called a
	"bang" by seasoned users...







        NanoBBS Documentation                                   Page 70

        "[", "]", "0"..."65535" - QUICK AREA CHANGE

	In addition to the formal [J] command (change area) mentioned
	previously, NanoBBS also has two ways to quickly change message
	areas right from the main menu.  The open and close square
	brackets move you down and up one area respectively.  Or, you
	can type in the area number directly.  NanoBBS will let you type
	in up to 5 digits for the area number when it detects that a
	number key has been pressed!

















































        NanoBBS Documentation                                   Page 71

        ةحثحححححححححححححححححححححححححححححححححححححححححححححثح»
        ؛ ؛                Language Files               ؛ ؛
        ؛ ؛ Customize (almost) all of NanoBBS's Output! ؛ ؛
        بحتحححححححححححححححححححححححححححححححححححححححححححححتح¼

        NanoBBS has the capacity to be a fully multi-lingual BBS.  It
        offers the additional flexibility of having separate ANSI/ASCII
        and RIP versions of each language.  There can be up to 32
        languages.  See the section titled "The Configuration File" for
        information on configuring your language files.

        NanoBBS comes with two language files, but they are not "ready"
        when you unpack the BBS.  These two language files are the
        ANSI/ASCII and RIPscrip versions of the standard English text
        for NanoBBS.  All language files come in pairs, an ANSI/ASCII
        version and a RIPscrip version.  If the user has RIP but NanoBBS
        can't find the RIP version of the language file, it'll try to
        fall back on the ANSI/ASCII version instead.

        The NanoBBS distribution archive stores the default language as
        "Update" files, called ENGLISH.UPD for the ASCII/ANSI version
        and ENGLISH.RPD for the RIPscrip version.  When you run
        INSTALL.BAT, these files are copied into the ENGLISH.TXL and
        ENGLISH.RXL files, which are the raw language source files.  The
        UPDLNG.EXE program is used to update the language files, so that
        new versions of the BBS with additional language strings can be
        integrated with your existing custom language files.

        All language files end in either .TXL for the "Text" version
        (the ANSI/ASCII version) and .RXL for the "Rip" version.  These
        files are like the system configuration files in that NanoBBS
        cannot use them by themselves.  They must be "compiled."  The
        program which does this is the NCOMP.EXE program.

        To compile the English language files, just type

                NCOMP ENGLISH

        at the DOS prompt.   It will compile both the ANSI/ASCII and the
        RIP versions of the ENGLISH languagefile.  It creates a pair of
        files for each version.  ENGLISH.LNG and ENGLISH.RNG are the
        actual compiled text for each version of the language files, and
        ENGLISH.LDX and ENGLISH.RDX contain the index pointers NanoBBS
        needs to find the language strings within the .LNG and .RNG
        files.

        The .LNG and .RNG files are loaded whole into memory for maximum
        speed.  Because of this, there is a maximum size of 65520 bytes.
        If NCOMP compiles a .LNG or .RNG and the resulting file is
        bigger than 65520 bytes, it'll be unceremoniously truncated, and
        calls to chopped-off strings will have unpredictable results.
        Caveat SysOp!






        NanoBBS Documentation                                   Page 72

        Like the configuration files, the .TXL and .RXL files are just
        plain ASCII text files.  Colour and RIP graphics are achieved by
        means of embedded colour codes and RIP UFO keywords.  See the
        next chapter, "Embedded Colour and Effect Codes", for much more
        information about these codes and how to use them.

        Of the UFO keywords, only those dealing with RIPscrip are
        supported in the language files.  You cannot use UFO system
        variables in the language file with RIPscrip tokens but you can
        use numeric constants.  RIPscrip tokens should not be used in
        the ANSI/ASCII .TXL file.

        If you need to be able to access the resources of a UFO script
        from within a language file string, an embedded command exists
        that will let you "link" to a UFO script.  See the Embedded
        Colour and Effect Codes chapter, and UFO.DOC, for more
        information.

        Here are the first few strings from ENGLISH.TXL, with brief
        explanations:
        

        [languagefile english]

        [comment the language file must begin with a "languagefile"
         statement as above, which indicates the language this file
         represents.  Other languages might have a "languagefile
         francais" or "languagefile deutsch" line instead.]

        [comment comments appear in a comment statement like this.  All
         comments must begin and end with square brackets as this one
         does.]

        [comment this is the first system message in the file.  Although
         other strings can be physically located in random order, this
         must be physically the first string.  It indicates an error
         condition, that a system string was not found.  The ~. (tilde
         period) embedded command indicates the system string number in
         question. ]

        [sysmsg 1]
        ~PSysMsg Error!  Message ~. does not appear in the language file!
        Please report to sysop!
        [end]


        [comment this is used at logon to ask the user for a password.
         Note the use of embedded commands.  The ~@ (tilde at-sign)
         forces non-stop mode on for the duration of the string, the ~M
         (tilde M) sets the colour to a nice light blue colour, and the
         ~‏ (tilde, followed by ASCII 254) is a special effect which
         makes a nice prompt.]

        [sysmsg 2]~@
        ~MPassword ~‏[end]



        NanoBBS Documentation                                   Page 73

        [comment This is displayed when the user gets the wrong password
         at logon.  Note the use of a ~V1 embedded command.  This is a
         variable parameter which is context sensitive.  In this string,
         it contains the number of tries the user has made at guessing
         the password.  It might have some totally different value or
         might not even be a number in other strings.  But in this case
         it's a retry counter provided for your convenience.]

        [sysmsg 3]
        ~JPassword incorrect. ~G(Try #~L~V1~G)[end]

        [comment This asks the user for a username, pseudonym, real
         name, user number, NEW or BYE.  In the case of NEW NanoBBS will
         take the caller through the new-user signup procedure.  In the
         case of BYE, NanoBBS will immediately hang up.  If the user is
         not found, NanoBBS will ask if the spelling is correct - if it
         is, NanoBBS goes through the new-user signup.  Otherwise it
         goes back to this string and asks the user again.]

        [sysmsg 4]~@
        ~MNew Users: Just type your name or pseudonym to log on!
        ~OPlease enter your Name, User Number or Handle ~‏[end]

        [comment Here's the string that asks the user if she or he is a
         new user.  This is displayed when the user's name or number is
         not found.

         Note the use of ~V1.  In this case it contains the username
         that was entered at the sysmsg 4 prompt.  Totally different
         from its value in the "Password Incorrect" string!  That's what
         I mean by "context sensitive."]

        [sysmsg 9]~@

        ~L~V1 ~Gnot found.  Do you want to register as a new member? [end]























        NanoBBS Documentation                                   Page 74

        ةحثححححححححححححححححححححححححححححححححححثح»
	؛ ؛ Embedded Colour and Effect Codes ؛ ؛
	بحتححححححححححححححححححححححححححححححححححتح¼

	These are available in both the UFO script language and as
	embedded commands in the language files!  Just type in the
	command as shown below - they all start with the ~ tilde
	character.  On most enhanced AT keyboards, the tilde is the key
	to the left of the 1 key, a shifted back-quote.  The following
	diagram illustrates where the Tilde key is located...

	LOCATION OF THE TILDE KEY ON (MOST) AT KEYBOARDS: ؤ؟
	(Remember this is a SHIFTed key!)		   ³
	 عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ
	 ³
	 ³     ___ ___ ___ ___ ___ ___ ___ ___
	 ہؤ>  | ~ | ! | @ | # | $ | % | ^ |
	      |_`_|_1_|_2_|_3_|_4_|_5_|_6_|_
	      |     |Q	|W  |E	|R  |T	|
	      |_Tab_|___|___|___|___|___|_
	      | Caps |A  |S  |D  |
	      |_Lock_|___|___|___|__
	      |        |
	      |_Shift__|  <ؤؤؤؤؤ Remember to use the Shift key!


	  COLOURS:

	  background	  foreground

	  ~a Black	   ~A Black	   ~I DkGray
	  ~b Red	   ~B Red	   ~J LtRed
	  ~c Green	   ~C Green	   ~K LtGreen
	  ~d Brown	   ~D Brown	   ~L Yellow
	  ~e Blue	   ~E Blue	   ~M LtBlue
	  ~f Magenta	   ~F Magenta	   ~N LtMagenta
	  ~g Cyan	   ~G Cyan	   ~O LtCyan
	  ~h Lt.Gray	   ~H LtGray	   ~P White

	  Special ANSi functions and effects:

	  ~1	      Clear to End of Line
	  ~6	      Blink On
	  ~7	      Clear Attributes

	  Fade-in:     ~< Start    ~> End
	  3D	 :     ~( Start    ~) End
          Prompt :     ~‏ (on PCs, hold Alt and hit 254 on your numeric
                           keypad to get the ‏ character, which is ASCII
                           254)

	  Embedded CR/LF:			~/
	  Nondestructive clear to beginning:	~\
	  Destructive clear to beginning:	~|

	  Do a CR/LF only if the cursor is
	  not already at the leftmost column:	~,

        NanoBBS Documentation                                   Page 75

	The following embedded commands are ONLY available in the
	language file, and may be interpreted literally or give strange
	results if used in a .UFO script:

	  "Hit Any Key" prompt                  ~R
	  Send a random cookie: 		~&
	  Send the bang Prompt: 		~!
	  Make output non-abortable:		~@
	  Send a beep (^G) to REMOTE user:	~#
	  Embedded CR only (no LF)		~<

	  Automatic two-column alignment:	~>
	  Automatic three-column alignment:	~; {semicolon}
	  Automatic five-column alignment:	~` (backward apostrophe)


	  Tab: ~tnn where nn is column,  e.g.	~t45
	    This example moves the cursor to
	    column 45.

	  Name of current message area: 	~i
	  Number of current message area:	~j
	  Name of current file area:		~n
	  Number of current file area:		~o

	  Go to to another SysMsg:		~k###

		Example: ~k123	goes to SysMsg #123.  The SysMsg number
		must be terminated with a non-numeric character.

	  Call a UFO script (a .BBS file):	~lfilename.bbs

		Example: ~lextrahlp.bbs   runs a compiled UFO script
		called EXTRAHLP.BBS.  The filename must be terminated
		with a space.  This extremely powerful command
		effectively gives you the full power of UFO from within
		language files!

	  Languagefile Parameter (can be 1 to 9): ~Vx

		Example: ~V9 shows parameter 9.
			 ~V1 shows parameter 1.

	    These parameters are sensitive to context and have specific
	    values for each SysMsg, or may be undefined if the SysMsg
	    does not use parameters.  See the language files to get an
	    idea of the context for each SysMsg's parameters.











        NanoBBS Documentation                                   Page 76

        ةحثحححححححححححححححححححححححححححححححححححححححححححححححححححححححححححثح»
	؛ ؛ NanoCHAT - Setting up NanoBBS as a multi-user chat system ؛ ؛
	بحتحححححححححححححححححححححححححححححححححححححححححححححححححححححححححححتح¼

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ The IPC Disk ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	IPCs are "Inter Process Communications", which are files shared
	between nodes in a multi-user system.  IPCs are the key to
	NanoCHAT's operation.

	NanoCHAT uses IPC files instead of shared memory schemes (which
	require special device drivers and are NOT always reliable) in
	order to make NanoCHAT runnable on nearly any system.  However,
	since communications are handled by passing files, DOS can
	impose quite a burden unless you take steps to speed the files
	up as much as possible.  The best way to do this is to use a
	RAM Disk.  This has the added advantage of not imposing a lot of
	wear on your hard disk.  A NanoCHAT system with several users
	online can easily created, write, read and then delete dozens of
	files per second.  The wear this would cause an uncached hard
	disk is extreme.  Therefore a RAM disk is essential.  The
	largest possible RAM Disk you can manage should bs used, and
	your RAMDRIVE.SYS line in CONFIG.SYS should stipulate a large
	number of files, perhaps 512 or 1024.

	If you're using a LAN and some of your BBS nodes are on a
	different machine from the RAM disk, make sure your RAM disk is
	set up as a network drive so that it is accessible.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ To enable NanoCHAT and define the path to your RAM disk (or	³
	³ whatever other kind of disk you may choose to place your IPCs ³
	³ on) you need to include the following lines in your NanoBBS	³
	³ config file (NODE1.CTL):					³
	³								³
	³ multiuser							³
	³ ipcpath   f:\ 						³
	³								³
	³ The MULTIUSER command instructs NanoBBS to allow the use of	³
	³ multi-user chat and IPC related functions.			³
	³								³
	³ The IPCPATH command specifies the drive and directory where	³
	³ the IPC files can be found.  It goes without saying that your ³
	³ config files for each node must specify the same IPC path or	³
	³ else the nodes will not be able to communicate with one	³
	³ another.							³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ









        NanoBBS Documentation                                   Page 77

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ NanoCHAT configuration - CHAT.CTL ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	 There are three options to the PROMPT option.	ON will display
	 a colourful prompt to remind the user that s/he can type here.
	 OFF will more faithfully emulate Diversi-Dial and leave the
	 user's cursor at the leftmost position with no prompt at all.
	 TIME gives the user a unique prompt which displays the current
	 time.

	 prompt off

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 The timeout is the amount of time, in minutes, that the user
	 can leave his/her keyboard idle before TommCHAT will cut
	 him/her off.

	 timeout 10

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 This is the interval, in minutes, between automatic postings of
	 the /M messages.

	 msginterval 5

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 The SPEED command sets the interval between checks of the stack
	 files. Generally speaking, this is the "heartbeat" of the
	 program. The interval is in 100'ths of a second, so a speed of
	 100 would mean that the stacks are checked once every second.
	 A speed of 50 is twice a second and so forth.	If NanoBBS Chat
	 places a big drag on your system's overall speed with a low
	 "speed" setting, try slowing it.  I have found 15 works fine on
	 my BBS.

	 speed 15

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 This is the number of "votes" required to eject a user in a
	 TeleTrial.

	 teletrial	 3











        NanoBBS Documentation                                   Page 78

         ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 These are the access levels passed by the BBS and how they
	 relate to TommCHAT's six access classes.  Any level below that
	 defined for NORMAL is deemed to be m0e access (undesirable or
	 unvalidated users).

	 access  normal    40
	 access  vip	   98
	 access  moderator 200
	 access  c0	   400
	 access  sysop	   1000

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 As in other chat systems, NanoBBS Chat allows you to quickly
	 indicate a user's "rank" by the brackets around the node number
	 in the /s and other displays

	 brackets	 m0e		 ~E: ~E:
	 brackets	 normal 	 ~G( ~G)
	 brackets	 vip		 ~O{ ~O}
	 brackets	 moderator	 ~L< ~L>
	 brackets	 c0		 ~P[ ~P]
	 brackets	 sysop		 ~Jغ~b ~7~Jغ

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 The following are the maximum time limits for each access
	 class. All time limits are in minutes.

	 time	 m0e		 5
	 time	 normal 	 60
	 time	 vip		 120
	 time	 moderator	 180
	 time	 c0		 1440
	 time	 sysop		 1440

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

	 Access restrictions - any channels not defined here will be
	 assumed open to everyone!

	 Syntax: Channel {channelnumber} {accessrequired}

	 Example:

	 channel 69 50

	 This sets a minimum access level of 50 to access channel 69...

	 ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ






        NanoBBS Documentation                                   Page 79

        عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ Actions and COMPACT ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	Actions are one of the most popular features of advanced chat
	systems.  Basically, actions let you (virtually) -do- things
	with other users.  NanoCHAT's SmartActions contain a library of
	actions which can be publicly or secretly, adjusting
	grammatically for the person you're sending to (this is why
	NanoCHAT needs to know each user's sex).  Generic Actions are
	nowhere near as advanced as SmartActions but they can be made to
	"do" just about anything.  In this section we will concentrate
	on configuring SmartActions.

	SmartActions are defined in the file ACTIONS.CTL.

	In order for actions to be used, they must first be compiled
	with the COMPACT (COMPile ACTions) program.  Just type COMPACT
	when you've finished making your changes to ACTIONS.CTL.

	There can be up to 256 actions from 0 to 255.

	Let's have a look at an example from the default ACTIONS.CTL:

	action	1
		command 	wink
		access		10
		see me		You wink.
		see me2 	You wink at ~r.
		see all 	~s winks seductively!
		see all2	~s winks seductively at ~r!
		see all3	~s winks knowingly at everyone!
		see you 	~s winks seductively at you~t!
		see noaccess	Your eyelids seem to be stuck!
	end

	As you can see, each action is started with the keyword ACTION
	followed by the action number (0 to 255).

	The COMMAND keyword specifies the /a command necessary to invoke
	the action.  In this case the command is "wink" so the user
	would type:

		/a wink

	...to activate the command and wink at everyone.

	The "See" fields can be up to 80 characters including embedded ~
	codes.

	SEE ME pertains to what you see when you perform your action for
	no recipient or for ALL.

	SEE ME2 pertains to what you see when you perform your action
	for a specific user.



        NanoBBS Documentation                                   Page 80

        SEE ALL pertains to what everyone sees when the user types the
	command with no recipient.  This may mean the action is done to
	all users, to nobody, or to the user himself.

	SEE ALL2 pertains to what everyone sees when the user types the
	command with a specific person as the recipient.  For example:

		/a wink tommy

	...would cause everyone to see:

		Joanie winks seductively at Tommy!

	...except Tommy who would see:

		Joanie winks seductively at you!

	(see SEE YOU below).

	SEE ALL3 pertains to what everyone sees when ALL is the
	recipient.  This means that the action is performed for everyone
	present.

	SEE YOU pertains to what the recipient of an action sees.  See
	the SEE ALL2 example above.

	SEE NOACCESS is what the user sees if s/he tries to use an
	action they don't have access for.


	There are several ~ codes peculiar to intelligent actions (these
	only work within actions):

	       ~r - Recipient's handle
	       ~s - Sender's handle
	       ~t - " secretly" if secret, nothing otherwise
	       ~u - selected sender pronoun/noun
	       ~U - selected recipient pronoun/noun

       Pronouns by number:

       If user is male/female:

	       1: he/she
	       2: his/her
	       3: his/hers
	       4: him/her
	       5: boy/girl
	       6: girl/boy
	       7: man/woman
	       8: woman/man
	       9: dude/babe






        NanoBBS Documentation                                   Page 81

        These pronouns can also be specified by name if typed exactly as
	shown above.  See ACTIONS.CTL for several live examples of the
	use of selected pronouns.  Grammaticists:  Yes, I know most of
	these are nouns - we hackers like to suppose things to save
	time...


	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ User and VIP Functions In Detail ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

	 The most important key for users, VIPs and co-sysops is the
	 forward slash key "/".  All commands are preceded by the slash,
	 and all are illustrated in this manual with the slash and
	 command as they should be typed.

	    عؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Public Chat ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		Public "Chat" is the most basic function offered by
		NanoCHAT.  Anything you type that is not preceded by the
		slash ("/") character is presumed by NanoCHAT to be a
		public statement.

		For example, if you were to simply type:

		     Hello There.

		Everyone on your channel would see "Hello There." along
		with your handle and node number.

	    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Private Messages ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		Often it is desirable for users to carry on private
		conversations without leaving public channels.	This can
		be accomplished by using the /p command.  For example,
		if there is a user on line 12, and you wanted to
		privately say "Hi, Chuck!" to that user, you would type:

		     /p12 Hi, Chuck!

		That user would see your message, along with your
		handle and node number, and would be informed that it is
		a private message.

		If there is no-one on the node you specify, NanoCHAT
		will inform you of this fact.








        NanoBBS Documentation                                   Page 82

            عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Changing Channels ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		/t - Change "Channel" - NanoCHAT supports 256 "channels"
		     so that separate discussions can be carried out
		     without interference or confusion with other
		     conversations.  Include the channel number you want
		     to change to, example:

			/t42

		     ... this will take you to channel 42.  Only other
		     users on channel 42 will be able to see what you
		     publicly type.  By default, you start out on
		     Channel 1.


	    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Generic Actions ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		/ga- "Generic Action" - crudely mimics a popular feature
		     of other chat systems.  This command causes the
		     system to make a third-party statement about you.

		     Here is an example:

			/a is laughing his fool head off!

		     This might cause the following to be
		     displayed to everyone on your channel:

			Waffle is laughing his fool head off!

	    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Smart Actions ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		Here is a list of default available actions:

		agree  back  bearhug   beer  beg  belch  bite  blush
		bonk  bow  brb	cheer  chill  chuckle  claw  comfort
		cough  crotchkick  cry	 curtsy  dance	demand	duck
		duh   embrace	evilgrin   faint   fallinlove	fart
		finger	 flash	 flirt	french	 frown	gasp   glare
		grin  groan  gross  handshake  hi5  impure  innocent
		kick   kickass	kill   kiss  laugh  lick  lie  loogy
		look   love   lust  moan  moo  moon   naked  niceass
		nod   puke   punch   purr   re	 rip   rose   scream
		secret	shrug  sing   smack   smirk   smoke   smooch
		snicker   spank  streak   strip   thank  think	toke
		tongue	trudeau  ttyl  wave  wink  yawn





        NanoBBS Documentation                                   Page 83

                /a    Invoke an action.  You can invoke actions with no
		      parameters, or you can specify a user (by name or
		      node) you wish to perform the action on, or you
		      can specify ALL to do it to everyone on your
		      channel!	You can also do an action to a user
		      secretly!

		Exemplia:

		/a hug Tommy

		This might produce the following output for all users:

		Cuddlez hugs Tommy close!

		...except for the recipient who sees...

		Cuddlez hugs you close!

		/a tickle Cuddlez secretly

		This would not produce a message for anyone except the
		recipient and the sender.  The recipient would see
		something like this:

		Tommy is secretly tickling you silly!


		/a bonk all

		...this might produce something like...

		Tommy is bonking everyone over the head!

		SmartActions might use personal pronouns like He or She
		- these are automatically inserted correctly for the
		sending and receiving party's gender!

		If you would like to experiment with SmartActions, try
		performing them on yourself or in public on an empty
		channel, so as not to clutter busy channels...

		Type /al for a list of actions.















        NanoBBS Documentation                                   Page 84

            عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Squelching ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤظ

		/x - "Squelch" - Disallows /p messages from a user.  To
		     sqelch someone type /x followed by their node
		     number, e.g.

			/x2

		     This will stop whomever is on node 2 from sending
		     you /p messages.  To allow a user to /p again, or
		     "unsquelch", simply repeat the command, e.g. /x2
		     a second time will unsquelch node 2.

		/xa- "Squelch All" - Disallows /p messages from all
		     users!  This will actually squelch everyone who is
		     on at the time, however if someone logs off and
		     comes back, they will be able to /p you again.  You
		     can unsquelch everyone by typing /xa again, and you
		     can selectively unsquelch certain users using the
		     above /x command.

	    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ System Messages ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		/mxxx

		This displays one of the system messages which are
		automatically displayed from time to time.  xxx can be
		any combination of 1 to 7 alphanumeric characters.  This
		is called the "slot name" of the message.  It
		corresponds to a textfile on disk.  If a message is
		displayed as /ma, its filename is MA.TCH.

		Example:

		     /ma

		will display the /ma message (if present).

		Users can be assigned message slots online using the
		co-sys0p command /ka (see the "Sysop and Co-Sys0p
		Functions" section of this manual).  A user who has been
		assigned a slot may edit its contents by typing

		     /m+ xxx

		... where xxx is the slot name.  If the user specifies the
		wrong slot name an error is reported.







        NanoBBS Documentation                                   Page 85

		Once this command is accepted, the user then sends up to
		16k of ASCII or ANSI text terminated by ^Z (ASCII 26).
		When the system receives the ^Z the message is saved.
		It can then be seen by typing /mxxx (xxx being the
		name) and will appear automatically during the random
		/m messages.

		There is a special kind of system message called an
		information file.  This is exactly the same as a /m
		message except that it cannot be assigned to a user.  It
		is accessed by typing

		     /ixxx

		...where xxx is the name, similar to /m messages.  /i
		messages are used for static information about the chat
		system, e.g. its rules, its technical information, etc.

		/m messages are normally displayed at random during
		regular intervals, defined by the SysOp.  Users can turn
		these automatic messages off by typing:

					/m-

	    عؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Tele-Trial ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤظ

		/tt nnn

		A TeleTrial is a quick-and-dirty vote taken by ordinary
		users to have an annoying user ejected from the system,
		where nnn is the node number of the user to be booted.
		Once enough votes are cast, the user is history.  Only
		one vote per user.


	    عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	    ³ Miscellaneous Functions ³
	    ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		/? - This command displays the user help file,
		     with a concise explanation of each command.

		/q - "Quit": This command exits NanoCHAT and returns
		     the caller to the BBS.

		/s - "Status": This command displays a brief summary
		     of all users who are using NanoCHAT.  It displays
		     the channel number, node number, and handle of each
		     user as well as indicating which nodes are squelched
		     or muted, and which ones have the caller squelched.

		/sm - "Show Members": This command displays a list of all
		     users in NanoCHAT's user database.



        NanoBBS Documentation                                   Page 86

                /h - "Handle": This allows the caller to change his/her
		     handle.  It can be changed for the current call only,
		     or saved permanently in the user database, if the
		     caller chooses.  Users may include embedded colour
		     codes in handles.

		/u1 - "Hello Message": This allows the caller to change
		      the message displayed by the system when s/he logs
		      on.  It may contain embedded characters and can be
		      up to 96 characters in length.  If no string
		      follows, the message is replaced with the default
		      message defined by the sysop.

		/u2 - "Goodbye Message": This allows the caller to
		      change the message displayed by the system when
		      s/he logs off.  Like the "Hello" message it can
		      contain up to 96 characters.

	عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	³ SysOp and "c0" (Co-SysOp) Functions ³
	ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		There are 6 access classes in NanoCHAT:

			Sys0p	(highest)
			Co-Sys0p
			Moderator
			VIP
			Normal
			m0e	(lowest)

	      عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	      ³ Moderator commands ³
	      ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

			/k?	  Display a command list for moderators,
				  c0-sys0ps, and sys0ps.

			/kx nnn   Eject user on node nnn - This will
				  inform the user in question that
				  s/he's being tossed, and will then
				  exit the chat door.

			/kj nnn   Jail user on node nnn - This will
				  prevent the user from changing to
				  another channel

			/km nnn   Mute user on node nnn - This will
				  cause the user's task to ignore any
				  public messages, private messages, or
				  actions s/he may attempt.







        NanoBBS Documentation                                   Page 87

              عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	      ³ Co-Sys0p commands ³
	      ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ

		(Note: Co-Sys0ps also have access to moderator commands)

			/k+ nnn   Promote user on node nnn -
				  This temporarily increases the user's
				  access level to the next class.  M0es
				  are made normal, normals VIP, and VIPs
				  moderators.  The maximum level allowed
				  by this command is Moderator.

			/k- nnn   Demote user on node nnn -
				  This has the opposite effect of /k+.
				  Other c0-sys0ps (and sys0ps) are
				  unaffected by this command.

			/ky nnn   Rudely eject user on node nnn -
				  This is very similar to /kx, but it
				  will simply hang up on the user
				  without an explanatory message of any
				  sort.

			/ka nnn yyy  Set /m slot for user on node nnn -
				  This will assign a message slot to the
				  user on nnn, where yyy is the message
				  name.  yyy can be from 1 to 7
				  alphanumeric characters in length.
				  This assignment is saved in the user's
				  userbase record and is the only field
				  editable by non-Sys0p c0's.

			/ka nnn   Revoke /m slot for user on node nnn
				  /ka with no slot name will render the
				  user unable to modify any /m slot!

			/kd nnn   De-stat user on node nnn
				  This is a somewhat technical command
				  which should be used when, for
				  whatever reason, a user leaves chat
				  but still shows up in the /s list.
				  That non-user could continue receiving
				  messages from other nodes until the
				  IPC drive fills, which would cause
				  problems for the whole system,
				  therefore c0's may forestall such
				  problems with this command.  It will
				  also delete any dead IPCs which have
				  accumulated for the user.

			/kh nnn <handle>  Temporarily change handle of
				  user on node nnn to <handle>. This is
				  useful when a user chooses an
				  unacceptable handle.



        NanoBBS Documentation                                   Page 88

                        /kt nnn ttt  Temporarily change user's channel
				  to channel ttt (where ttt is a valid
				  channel from 1 to 255).  You can keep
				  the user there by "Jailing" him/her.

	      عؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ؟
	      ³ Sys0p commands ³
	      ہؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤظ (Note: Sys0ps have access to ALL system
			functions including moderator and co-sys0p functions)

			/k* nnn   Temporarily grant/revoke Co-sys0p
				  access for node nnn.	When access is
				  revoked the user's access returns to
				  the access level the user logged in
				  with.

			/kb nnn   "Bar" a user on node nnn and eject.
				  This is identical to /ky except that
				  prior to hanging up on the user, the
				  system will add the user's BBS name to
				  a "barred" file or blacklist will then
				  prevent the user from using the door
				  again until the name is removed from
				  the blacklist.  The blacklist is a
				  simple textfile which can be edited in
				  any text editor (you may add, remove,
				  or modify names this way) with the
				  filename NanoCHAT.BAR.

			/ke uuu   Edit user record for user number uuu
				  uuu is a user record number, not a
				  node number!	You can edit any user
				  this way, regardless of whether s/he
				  is online at the time.  If the user is
				  online, the changes you make will
				  apply to them immediately!  To find a
				  user's user number, the user command
				  /sm will display the user number of
				  each user.

			/ks	  System Status.  This will display the
				  number of callers online, the number
				  of bytes free on the IPC and system
				  drives, the size of available memory,
				  the number of /m messages available,
				  and the total number of users in the
				  userbase.











        NanoBBS Documentation                                   Page 89

        ةحثحححححححححححححححححححححححححححححححححححححححححححححححححححححححححححثح»
        ؛ ؛                         GLOSSARY                          ؛ ؛
	بحتحححححححححححححححححححححححححححححححححححححححححححححححححححححححححححتح¼

        Here is a list of some of the technical terms used in the
        NanoBBS documentation, along with some terms you're likely to
        encounter as a sysop.

        ARC - An older archiving program by SEA (System Enhancement
              Associates).  This program is no longer widely used to
              archive software on BBSes but is still the only recognized
              archiver for FidoNet echomail transfers.

        ARJ - An archiving program by Robert K. Jung.  Not as widely
              used as ZIP, its compression and speed are competetive and
              its registration price is a little cheaper.

        ANSI - This term is a sort of misnomer.  In sysop usage, it
               refers to IBM's colour version of the DEC VT-100 terminal
               command language.  This protocol is what gives most BBSes
               their colour menus and screens.  Virtually all terminal
               programs written for the IBM PC support this standard and
               default to it.

        Baud - A term which refers to a change in the signal state in a
               modem's modulation.  Baud and BPS (modem speed) used to
               be the same quantity when 300 baud was standard, but
               today's advanced modulation schemes are able to attach
               many bits to each baud to increase real speed (BPS).
               Baud and BPS are still used interchangeably in common
               conversation, but they are no longer the same and you'll
               likely be indignantly corrected by certain smug gurus if
               you should accidentally post something which suggests
               that they are...

        BBS - Bulletin Board System.  An online service, usually run on
              a single PC or a local area network of PCs.  NanoBBS is a
              software program which can turn your system into a BBS.

        Bimodem - This is a really neat file transfer protocol which
                  lets users upload and download files at the same time!
                  It takes advantage of the fact that most modems can
                  transmit and receive simultaneously.  It also allows
                  the user to "chat" with the SysOp while the files are
                  being transfered.  Users who upload will really
                  appreciate being able to download at the same time!
                  I know of no BBS software that directly includes
                  Bimodem, but it is available as an "external" protocol
                  on many CDs or BBSes.









        NanoBBS Documentation                                   Page 90

        BPS - Bits per Second.  The speed of your modem.  This is not to
              be confused with Baud, which is an inaccurate name for
              modem speed.  Nevertheless, Baud is more commonly used so
              it's generally acceptable to talk about a "14400 baud"
              modem even though there's no such thing.  It's 14400 BPS,
              but only 2400 baud (it moves 6 bits per baud)

        Chat - There are two types of Chat.  The kind most sysops are
               familiar with is "sysop chat" where the sysop hits Alt-C
               and "breaks in" to type in real time to the user, who can
               type back.  NanoBBS also supports "teleconference chat"
               via NanoCHAT.  The best BBS software packages support
               teleconference chat, and most BBSes with two or more
               lines have it implemented in one form or another.  NOTE:
               There are so many technical and not-so-technical terms
               dealing with teleconference chat that I could devote a
               whole glossary to just them.  However, they are well
               covered in the chaper on NanoCHAT.

        Doors - Doors are external programs, usually games, that the
                user can run from the BBS.  The attraction to doors is
                that they allow many people to play the same game and
                compete with each other, while most video games are
                limited to one or two players. Although most doors are
                games, many have other functions such as taking surveys,
                match-making, and providing a .QWK mail interface, to
                name but a few.

        Download - Downloading is what happens when the BBS sends the
                   user one or more files at his request.

        Echomail - A type of shared message area.  Through the use of a
                   Fidonet Technology Mailer and an Echomail Packer, you
                   can "share" message areas with other BBS, so that
                   your users and users of other BBSes can converse on
                   the same subject without all the parties having to
                   call all the BBSes.  A message posted on one BBS in
                   the echo network is automatically posted to the same
                   area on all the other participating systems. Some
                   echoes are very popular and are shared by hundreds of
                   systems, and have hundreds of messages posted to them
                   every day!

        Fidonet - The first FTN.  This network comprises over 20,000
                  BBSes and has hundreds of different message echoes.

        Flame - A generic term used to describe a nasty or generally
                unpleasant message.  Most flames are ad hominem attacks.
                Sysops should be prepared to deal with flames in order
                to keep the tone of the BBS civil and upbeat.








        NanoBBS Documentation                                   Page 91

        FSE - Full Screen Editor.  This is a part of NanoBBS that lets
              you enter messages in a convenient full-screen environment
              similar to a word processor.  The alternative is an
              old-fashioned line-by-line editor, similar to DOS's Edlin
              program.  Some other BBSes need an external program to
              support an FSE, but NanoBBS has one called NEd
              (NanoEditor) built in!

        FTN - Fidonet Technology Network.  This is a network of BBSes
              which uses the protocols and software developed originally
              for Fidonet.  There are many FTNs including, of course,
              Fidonet.  These networks cover the spectrum from general
              interest chat type networks to very specialized subject
              matter.  Joining an FTN requires, at minimum, a mailer
              such as BinkleyTerm or Intermail, an echomail processor
              such as Squish or FMail, and a Fidonet compatible BBS such
              as Maximus-CBCS.

        .GZ - GZip is a portable compression method used mainly on Unix
              systems.  An MS-DOS version is available on many FTP sites.

        Hacker - A hacker is NOT someone who tries to "break in" to your
                 BBS.  Sysops use the word "twit" or "cyberpuke" to
                 describe would-be BBS crackers.  The true definition of
                 a Hacker is someone who is intimately familiar with
                 computers and derives pleasure from exploring their
                 limitless capabilities... If you are constantly
                 tweaking and refining your BBS, even programming
                 utilities for it, then you're likely a hacker yourself!

        Internet - A worldwide network of computers connected with
                   leased lines, satellites, microwave links, etc.  It
                   has been described as a global LAN.  It was
                   originally set up for the U.S. military as a
                   decentralized network that would survive a nuclear
                   attack, but now reaches to virtually every corner of
                   the globe and includes commercial, institutional, and
                   private sites in great numbers.  Over 14 million
                   people are connected to the Internet.

        Leech - A derogatory term used by sysops to describe users who
                only download and never post messages or upload.  This
                term is used mainly by sysops who run free BBSes.  If
                you're running a BBS for profit, you need to take a
                whole different attitude.

        LZH - An archiving method by Haruyasu Yoshizaki (the program is
              called LHA, even though the file extensions are LZH).
              Competitive compression and speed, and freely
              distributable and usable by noncommercial users!

        Modem - The device which converts digital data into audible
                sounds which can be transmitted over the phone lines,
                and then back into data again.  One of the most basic
                hardware requirements for a BBS.



        NanoBBS Documentation                                   Page 92

        Offline Reader - This is a program which lets a user read his
                         messages after he has logged off of the BBS
                         where the messages came from.  The user logs on
                         to the BBS, downloads all the new messages at
                         once, then logs off and uses the offline reader
                         to read them at his leisure.  This cuts down on
                         connect time, and is more convenient for the
                         user.

        PD - Public Domain.  Such files can be freely distributed,
             modified, even sold with no copyright worries.  Most
             software found on BBSes and networks is NOT public domain,
             and never should be assumed to be such!

        Pirate Software - Programs which are copyrighted and NOT
                          intended to be distributed freely on BBSes.
                          Free distribution is what separates commercial
                          software from shareware.  Generally speaking,
                          shareware comes with instructions and ordering
                          information, while pirated software doesn't
                          have instructions and usually includes a slick
                          pirate-group ANSI file or VGA demo.

        QWK - A message format developed for PC-Board systems.  This
              format is mainly used for offline readers (see above).
              NanoBBS supports this, of course.

        RIP - Remote Imaging Protocol.  This is a graphics display
              protocol used in some of the more recent BBS and terminal
              programs - including NanoBBS.  RIP allows you to build
              highly complex graphical menus and screens, and lets your
              user point-and-click their way around your BBS.  If you
              want your BBS to appeal to the "all thumbs" type user, you
              definitely should seriously consider setting up NanoBBS
              for RIP support!

        Shareware - A try-before-you-buy software marketing concept.
                    Software is distributed publicly with little or no
                    documentation and usually with several important
                    features disabled.  If users like the program they
                    are expected to pay for the full version, which is
                    normally shipped by mail with the full packaging,
                    documentation, technical support and other goodies.
                    NanoBBS is distributed as shareware.

        SysOp - The guy (or gal) who runs the BBS.  In short, YOU.  This
                word is a contraction of SYStem OPerator.  You may elect
                to appoint co-sysops, who have equal control over the
                BBS, assistant sysops who are able to carry out basic
                housekeeping functions, and moderators, which are really
                just regular users who can delete messages from other
                users and are politically empowered by you to maintain
                decorum.





        NanoBBS Documentation                                   Page 93

        Terminal - That's the program a user uses to call your BBS.
                   Some of the best are QmodemPro from Mustang Software,
                   and Telix from DeltaComm.  Both are promoted heavily
                   on BBSes by their publishers.  Special-purpose
                   terminals like RipTerm should always be made easily
                   accessible to users if your BBS supports their
                   special protocols.  Make sure you have the shareware
                   test-drive versions of major terminal programs easily
                   available to new users, so that they can upgrade
                   right away from the second-rate terminal programs
                   that usually come with modems at the time of
                   purchase.

        Trashcan - A control file used by your BBS to detect problem
                   users and reject them.  When you have to remove a
                   problem user, you put his name and known aliases in
                   this file and the BBS will reject any logon with
                   those names.  It is considered a measure of a sysop's
                   success as a diplomat if his trashcan is empty...

        Twit - A term used by sysops to describe a problem user.

        Upload - Uploading is when a user sends the BBS one or more
                 files.

        Usenet - A set of "newsgroups" which are actually not unlike FTN
                 echoes, but are usually moderated.  These are
                 propagated through the internet rather than through
                 phone lines as FTN echoes are.  Usenet newsgroups exist
                 for virtually every conceivable field of interest.  If
                 you have a full Usenet feed, your users will never have
                 a shortage of messages to read, but you may develop a
                 shortage of disk space!

        V.32bis - This is a type of modem modulation.  V.32bis modems
                  communicate at 14,400 BPS before compression, and can
                  theoretically reach throughputs of 57,600 bps when
                  V.42bis compression is enabled.  V.32 is a subset of
                  V.32bis, and preceded it by several years.

        V.42bis - This is a type of modem compression.  V.42bis modems
                  can theoretically increase modem throughput up to four
                  times!  That means 2400 modems can have throughput to
                  9600 bps, 9600 modems to 38400, etc.  V.42 is an
                  error-control protocol which is included in modems
                  which have V.42bis.












        NanoBBS Documentation                                   Page 94

        V.Fast
        V.FC
        V.34    - These are a new type of modem modulation.  At this
                  writing, V.Fast is the commonly used name of V.34
                  which is not yet finalized by ITU-T (formerly the
                  CCITT).  V.FC is a protocol supported by Hayes, Zoom
                  and several other manufacturers, which was released
                  prior to V.34 with the expectation that it would be
                  upward compatible with the final form of V.34.  All
                  three transfer at up to 28,800 bps before compression
                  and have several "fallback" speeds in case line
                  conditions are not perfect.

        WFC - Waiting For Call.  This is what the screen displayed by
              the BBS while waiting for a call is called.  If your BBS
              is successful, you'll see very little of the WFC screen.

        Xmodem - A very old file-transfer protocol, Xmodem is nearly
                 extinct.  It is a block transfer protocol which sends
                 files in blocks of 128 bytes, waiting for
                 acknowledgement (and a checksum) before sending the
                 next block.  In the real world, the best efficiency you
                 can hope for is about 75%, but it's usually worse than
                 that.  Users should be discouraged from using Xmodem -
                 point them to a terminal program that supports Zmodem,
                 and ask that they download (and use) it.  Once the user
                 has tried Zmodem, he'll never want to go back - mention
                 something to that effect while you're trying to talk
                 the user into changing terminals!

        .Z - Files compressed by Unix systems often have a .Z extension.
             There are Unix uncompressors for most platforms including
             MS-DOS.

        ZIP - A file compression method developed by Phil Katz.  This is
              probably the most common method used by PC users.
              Compression ratios in the latest versions are excellent;
              this format is well worth standardizing your BBS to.  Some
              BBSes will not accept uploads with any other archiver!

        Zmodem - A very popular file-transfer protocol.  Zmodem
                 automatically transfers files from one computer to the
                 other with full filename and date preservation, and
                 includes a "resume" feature in case the transfer is cut
                 off.  It is also very efficient, because it is a
                 "streaming" protocol - it doesn't wait for
                 acknowledgement of each block before sending another.
                 This allows efficiencies very close to 100%.

        Zoo - A very portable compression method.  You might see files
              created on Macintosh, Amiga or Unix-based computers but
              intended for multiple platforms, compressed in this
              format.  It's slow and not as efficient as other archivers
              but it's available for nearly every platform I've seen.




        NanoBBS Documentation                                   Page 95
        



         ـغغغغغـ  ـغغغغغـ  ـغغغغغـ   ـغغغغـ  ـغغغغغـ  ـغغغغغـ   ـغغغغـ
         ـــ كغغغ ـــ كغغغ ـــ كغغغ ـــ كغغغ ـــ  غغك ـــ  غغك ـــ  ككك
         غغغ  غغغ غغغ  غغغ غغغ  غغغ غغغ  غغغ غغغغغغـ  غغغغغغـ   كغغغغـ
         غغغ  غغغ غغغغغغغغ غغغ  غغغ غغغـ غغغ غغغ  غغغ غغغ  غغغ ـــ  غغغ
         غغغ  غغغ غغغ  غغغ غغغ  غغغ  كغغغغك  غغغغغغك  غغغغغغك   كغغغغك

                                NanoBBS 1.01
                   Copyright 1994,1995 Whirlwind Software
                             All Rights Reserved

        ؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤؤ

        Contact Information:

        Mail:

        Whirlwind Software
        480 South Joffre St.
        Victoria, British Columbia
        Canada    V9A 6C8

        email: ue075@freenet.victoria.bc.ca

        Fidonet: 1:340/26

        BBS: +1 604 361 4549 (300-28800 bps, 24 hours)

        Voice support is not available for unregistered copies of
        NanoBBS.  Sorry.  Try netmail instead.


























        NanoBBS Documentation                                   Page 96