ARS Security

KEYWORD		SYMBOL	DESCRIPTION
-------		------	--------------------------------------------------------
AND		&	More than one requirement (optional)
NOT		!	Logical negation (e.g. NOT EQUAL)
EQUAL		=	Equality required
OR		|	Either of two or more parameters is required
AGE		$A	User's age (years since birthdate, 0-255)
ANSI		$[	User has ANSI terminal (no value argument)
BPS		$B	User's current connect rate (bps)
CREDIT		$C	User's number of credits in Kilobytes (0-65535)
DAY		$W	Day of the week (Sun, Mon, Tue, etc. or 0-6)
DIR		$J	Current file directory (Internal code or 1-65535)
DOS			Current node is running SBBS4DOS (no value argument)
EXEMPT		$X	Exemption flag (A-Z)
EXPERT			User is in expert menu mode (no value argument)
EXPIRE		$E	Days till user account expires (0-65535)
FILE_CMDS		Number of executed file menu commands (0-65535)
FLAG		$F	User's flag (1-4) and (A-Z)
GROUP		$M	Current message group (1-65535)
LASTON		$Y	Days since last logon (0-65535)
LEVEL		$L	User's level (0-99)
LIB		$I	Current file library (1-65535)
LOCAL		$G	Logged on locally (no value argument)
MAIN_CMDS		Number of executed main menu commands (0-65535)
NODE		$N	Current node (1-250)
OS2			Current node is running SBBS4OS2 (no value argument)
PCR		$P	User's post/call ratio (0-100)
QUIET			User is in quiet mode
RANDOM		$Q	Random number between 0 and value argument (0-65535)
REST		$Z	Restriction flag (A-Z)
RIP		$*	User has RIP terminal (no value argument)
SEX		$S	User's sex/gender (M or F)
SUB		$H	Current message sub-board (Internal code or 1-65535)
SYSOP			User has level 90 or temp sysop (no value argument)
TIME		$T	Time of day (HH:MM, 0-23:59)
TLEFT		$R	User's time left online (minutes, 0-255)
TUSED		$O	User's time online this call (minutes, 0-255)
UDR		$K	User's upload/download ratio (0-100)
UDFR		$D	User's upload/download file ratio (0-100)
USER		$U	User's number (1-xxxx)
WIP			User has WIP compatible terminal (no value argument)

Menus and Optional Menus

MENU FILES	DESCRIPTION
---------------	----------------------------------------------------------------
ALLMAIL         Sysop's reading all mail on system menus
ATTR            Ctrl-A code menu for use within the Synchronet internal editor
BATCHXFR        Batch transfer menu
BATDPROT        Batch download transfer protocols
BATFLAG 	Batch flag command key menu
BATUPROT        Batch upload transfer protocols
BIPROT          Bidirectional transfer protocols
CHAT            Chat section menu
DLPROT          Download transfer protocols
E-MAIL          E-mail section menu
EDITOR          Synchronet internal editor commands and line editing keys
EXEMPT          Exemption flag descriptions for use within User Edit
FLAGS1		Flag set #1 descriptions for use within User Edit
FLAGS2		Flag set #2 descriptions for use within User Edit
FLAGS3		Flag set #3 descriptions for use within User Edit
FLAGS4		Flag set #4 descriptions for use within User Edit
LOGOFF          Logoff ('O' command) screen
LOGON		Logon screen (LOGON2, LOGON3, ... LOGON9 also supported)
MAILREAD        Reading mail menu
MAIN            Main section menu
MAINCFG         Main configuration menu
MAININFO        Main information menu
MSGSCAN         Message reading/scanning menu
MULTCHAT        Multinode chat menu
PRIVCHAT        Private node-to-node chat menu
QWK             QWK Packet menu
RESTRICT        Restriction flag descriptions for use within User Edit
SENTMAIL        Reading sent mail menu
SYSMAILR        Sysop additional commands while reading mail
SYSMAIN         Sysop additional commands for main section
SYSMSCAN        Sysop additional commands while message reading/scanning
SYSSMAIL        Sysop additional commands while reading sent mail
SYSXFER         Sysop additional commands for transfer section
TEMPXFER        Temporary directory commands menu
TRANSFER        Transfer section menu
UEDIT           User Edit menu
ULPROT          Upload transfer protocols
WFC             Waiting for call menu
XFERCFG         Transfer section configuration menu
XFERINFO        Transfer section information menu



[OPTIONAL MENUS]----------------------------------------------------------------

The following files must be created in the TEXT\MENU directory if you wish to
use them.

GRPS            Message Group listing
SUBSx           Message Sub-board listing, 'x' is the group number
LIBS            File Library listing
DIRSx		File Directory listing, 'x' is the library number
XTRN_SEC	External Program Sections
XTRNx		External Program listing, 'x' is the section number
TEXT_SEC        Text File Section listing
TEXTx           Text File listing, 'x' is the text file section number
CHAN		Multinode Chat Channels
TMESSAGE        Displays when the user enters the transfer section
TPOLICY         Transfer policy (&T transfer section command)



[OPTIONAL MESSAGE FILES]--------------------------------------------------------

If you want to have an information file displayed for sub-boards when using
the 'I' scanning command and 'IS' main menu command, create a file for the
sub-board in the DATA\SUBS directory using the internal code for that sub-board
as the name and .MSG as the extension. Example:

DATA\SUBS\GENERAL.MSG

If you want to create in information file for file directories to be displayed
with the 'ID' transfer section command, create a file for the directory in
the DATA\DIRS directory using the internal code as the name and .MSG as the
extension. Example:

DATA\DIRS\GAMES.MSG

If you want to create a custom file listing header for a file directory, create
a file in the DATA\DIRS directory using the internal code as the name and .HDR
as the extension. Example:

DATA\DIRS\GAMES.HDR

Text Files

There are some text files that are displayed to users at different points
in the system. The locations and descriptions follow (* indicates optional):

TEXT\ANSWER.ANS 	Answer message for ANSI users
TEXT\ANSWER.ASC 	Answer message for non-ANSI users
TEXT\ANSWER.RIP 	Answer message for RIP users
TEXT\SYSTEM.MSG 	Description of the system and its configuration
TEXT\NEWUSER.MSG	Displayed to new users (usually system rules)
TEXT\FEEDBACK.MSG	Displayed before new users write validation feedback
TEXT\NUPGUESS.MSG      *Displayed to callers attempting to guess the NUP (after
			failing to guess correctly)
TEXT\TOOSLOW.MSG       *Displayed to users logging onto a node at less than the
			minumum configured connect rate for that node
TEXT\BADCID.MSG        *Displayed to users calling from a number contained in
			CID.CAN
TEXT\BADNAME.MSG       *Displayed to new users trying to use a name contained
			in NAME.CAN
TEXT\BADPHONE.MSG      *Displayed to new users using a number contained in
			PHONE.CAN
TEXT\BADFILE.MSG       *Displayed to user trying to upload filename contained
			in FILE.CAN
TEXT\QWK\HELLO	       *Included in QWK packets
TEXT\QWK\BBSNEWS       *Included in QWK packets
TEXT\QWK\BLT-0.?       *Included in QWK packets (? must be number)

Colors

Synchronet supports six different Color Code formats.  When Synchronet
encounters one of these Color Codes in a message, it changes the text following
the Color Code to the specified color.	Support of the formats which are not
native to Synchronet (WWIV, Celerity, Renegade, PCBoard, and Wildcat) can be
toggled on and off from the Synchronet Configuration utility (System->Message
Options->Extra Attribute Codes). The non-Synchronet color codes (Extra
Attribute Codes) only affect the text that is displayed on the SAME LINE.  When
using Synchronet color codes, the new color is retained from line to line until
another color code is processed or the end of the text is reached.

Synchronet Format

The native Synchronet Color Code format (preferred) consists of a Control-A
followed by a singe character.	The following is a list of valid Control-A
Color Codes:

	Foreground	Background
	----------	----------
Black	    K		    0
Red	    R		    1
Green	    G		    2
Yellow	    Y		    3
Blue	    B		    4
Magenta     M		    5
Cyan	    C		    6
White	    W		    7

	Attribute	Description
	---------	-----------
High	    H		High Intensity
Blink	    I		Blinking
Normal	    N		No Special Attributes (Normal)
Pause	    P		Insert a Pause Prompt into message
Pause Reset Q		Reset the line counter for the auto screen-pause
Delay	    ,		Insert a Tenth Second Delay into message
Delay	    ;		Insert a Half Second Delay into message
Delay	    .		Insert a Two Second Delay into message
Date	    D		Display the system date
Time	    T		Display the system time
Cls	    L		Insert a Form Feed (Ctrl-L, Clear Screen) into message
Clreol	    >		Clear to End of Line (leave cursor in current position)
Bckspc	    <		Non-destructive backspace (Ctrl-H)
CR	    [		Carriage return (Ctrl-M)
LF	    ]		Line feed (Ctrl-J)
Ctrl-A	    A		Send an actual Ctrl-A character
Sync	    S		Synchronize output with remote system
EOF	    Z		End of displayable text in this file

Normal	    -		Same as 'N' but only sends ANSI codes if the
			High Intensity, Blinking, or Background attribute is
			set.

Normal	    _		Same as 'N' but only sends ANSI codes if the
			Blinking or Background attribute is set.

Synchronet also supports Special Control-A codes used to hide text from users
not meeting certain criteria (i.e.: Security Level or Flags from Flag Set #1).
The following is a list of Special Control-A codes, and a brief description
of each code's usage:

Code		Description
-------------------------------------------------------------------------------
^A thru ^Z	Only display the following text to users with the corresponding
		flag A through Z turned on (from Flag Set #1).

 !		Toggle the text display off/on for users of less than level 10.
 @		"                                                         " 20.
 #		"                                                         " 30.
 $		"                                                         " 40.
 %		"                                                         " 50.
 ^		"                                                         " 60.
 &		"                                                         " 70.
 *		"                                                         " 80.
 (		"                                                         " 90.
 )		Restore the displaying of text to ALL users.

 "    Display contents of  (from your TEXT directory)

High Bit	(greater than ASCII 127) Used for cursor right positioning.


WWIV Format

Synchronet also supports Color Codes which are native to WWIV BBS software.
These codes consist of a Control-C followed by a number (0 through 7):

Code		Color
----		-----
 0		Normal
 1		High Intensity Cyan
 2		High Intensity Yellow
 3		Normal Magenta
 4		High Intensity White with Blue Background
 5		Normal Green
 6		High Intensity Blinking Red
 7		High Intensity Blue
 8		Low Intensity Blue
 9		Low Intensity Cyan

Celerity Format

Synchronet also supports Color Codes which are native to Celerity BBS software.
These codes consist of a pipe symbol '|' followed by a letter (case sensitive):

Code		Color (foreground)
----		------------------
 k		Normal Black
 b		Normal Blue
 g		Normal Green
 c		Normal Cyan
 r		Normal Red
 m		Normal Magenta
 y		Brown
 w		Normal White
 d		High Intensity Black
 B		High Intensity Blue
 G		High Intensity Green
 C		High Intensity Cyan
 R		High Intensity Red
 M		High Intensity Magenta
 Y		Yellow
 W		High Intensity White
 S	      * Swap foreground and background

Example: "|b|S|W" would set the current color to high intensity white on a
	 blue background.

Note:	 Due to conflicting escape sequences (namely, the pipe character),
	 Celerity color codes are not supported when using RIP terminal mode.

Renegade Format

Synchronet also supports Color Codes which are native to Renegade BBS software.
These codes consist of a pipe symbol '|' followed by a number (0-23):

Code		Color
----		-----
 0		Normal Black
 1		Normal Blue
 2		Normal Green
 3		Normal Cyan
 4		Normal Red
 5		Normal Magenta
 6		Brown
 7		Normal White
 8		High Intensity Black
 9		High Intensity Blue
 10		High Intensity Green
 11		High Intensity Cyan
 12		High Intensity Red
 13		High Intensity Magenta
 14		Yellow
 15		High Intensity White
 16		Background Black
 17		Background Blue
 18		Background Green
 19		Background Cyan
 20		Background Red
 21		Background Magenta
 22		Background Brown
 23		Background White

Example: "|15|17" would set the current color to high intensity white on a
	 blue background.

Note:	 Due to conflicting escape sequences (namely, the pipe character),
	 Renegade color codes are not supported when using RIP terminal mode.

PCBoard/Wildcat Format

Two of the Color Code formats which Synchronet supports (PCBoard and Wildcat)
use similar, yet cryptic, methods of displaying colors.  The PCBoard method
uses the format "@X", and Wildcat uses the format
"@@".  The following is a list of the Background and
Foreground choices available:

	Color	Attribute		Color	Attribute
------------	-----	---------	------------	-----	---------
      0 	Black	Normal		      0 	Black	Normal
      1 	Blue	  "                   1         Blue      "
      2 	Green	  "                   2         Green     "
      3 	Cyan	  "                   3         Cyan      "
      4 	Red	  "                   4         Red       "
      5 	Magenta   "                   5         Magenta   "
      6 	Brown	  "                   6         Brown     "
      7 	White	  "                   7         White     "
      8 	Black	Blinks Foreground     8 	Black	High Intensity
      9 	Blue	  "                   9         Blue      "
      A 	Green	  "                   A         Green     "
      B 	Cyan	  "                   B         Cyan      "
      C 	Red	  "                   C         Red       "
      D 	Magenta   "                   D         Magenta   "
      E 	Brown	  "                   E         Yellow    "
      F 	White	  "                   F         White     "

Example: "@1F@" in Wildcat format and "@X1F" in PCBoard format would set the
	 current color to high intensity white on a blue background.



[NOTES]-------------------------------------------------------------------------

To modify some of colors of the BBS you can edit the ATTR.CFG file which is
located in the CTRL directory. The file contains one color per line and is
commented as to the use of the color. The colors are represented with ctrl-a
code attribute letters/numbers. The number of colors you can change with this
method is very small.

Virtually all the text and color that the BBS displays is stored in the file
TEXT.DAT in the CTRL directory. The syntax of this file is VERY specific and
extreme caution should be taken when editing it. Knowledge of the C language
would be very helpful in producing the desired results. If all you want to
do is change colors of a certain text line, take care not to disturb the
arrangement of the other characters on the line. Ctrl-a codes can be preceded
by an embedded ctrl-a character (usually a black happy face) or by a '\1'
(the printf() equivalent of ctrl-a).

The syntax of the characters between the double quotations is identical to
the C language printf() format string with one exception: \xxx where x are
digits (0-9) represents a decimal number, not an octal number. The range is
0 to 255. If you wish to set a background color using \1 for the ctrl-a code,
you may need to pad the attribute number with zeros. For example; to set the
background to blue, you might try to use the sequence "\14" which won't work.
You could either embed the actual ctrl-a character (which is preferred) or
use "\0014".

Some of the strings have characters preceded by a tilde ('~'). These strings
are referred to as mnemonics. The tilde precedes a character that is to be
highlighted for users supporting ANSI and enclosed in parenthesis for non-ANSI
users. Usually used for prompt strings that contain the valid key commands.
The colors to use for the highlighted characters, normal characters, and the
command character are specified in the CTRL\ATTR.CFG file.

The order of the % specifiers (if they exist) in a TEXT.DAT line cannot be
altered. The display of %s specifiers can be suppressed by changing the '%s' to
'%.0s'. Another way to suppress the display of specifiers is to enclose them
between Ctrl-A( and Ctrl-A). Any text between Ctrl-A( and Ctrl-A) would only
be displayed to users of level 90 or higher. To suppress the display to all
users, put the text/specifiers between Ctrl-ACtrl-Z and Ctrl-A) (assuming
that the Z flag from flag set #1 is not set on any user accounts).

** WARNING **
Make a backup of the TEXT.DAT file before you edit it. If you damage the file
syntax when editing it, Synchronet may execute erroneously or even fail to
initialize.

Variables

Message Variables (also called @-Codes) are a way to customize text files in
Synchronet to display information about the user online or the BBS.
If Synchronet encounters an @-Code in a text file (i.e.: TEXT.DAT, menus, etc.),
it will replace the @-Code in the file with the information that it corresponds
with. @-Codes in e-mail messages and posts will only be expanded if they were
posted locally (not networked) by user #1. TEXT.DAT lines that have %
specifiers will not expand @-Codes unless the % specifiers are removed.

For example, placing the following line in a text file displayed to a user
named Fred Jones living on 100 Maple Street:

	Hi @ALIAS@, you live at @ADDR1@ don't you?

Would result in the user seeing:

	Hi Fred Jones, you live at 100 Maple Street don't you?

It's that simple.  The following is a list of the @-Codes that Synchronet will
recognize. Remember that the Code NAME must begin and end with an @ symbol.
The two columns after the description of the @-Code show which other BBS
programs also support that @-Code (either PCBoard or Wildcat).

The @-Codes with "[...]" following the name indicate that you can have the
variable displayed with padding. If the @-Code name ends in "-L" the variable
will be left justified and "-R" indicates it will be right justified. If for
example, the user's name is Bob, the text string "___@NAME-L@___" would display
to the user as "___Bob     ___" and the text string "___@NAME-R@___" would
display to as "___     Bob___". If you want the string to be padded longer, you
can add extra characters to the end of the @-Code name and before the
terminating '@' sign. So for example, "___@NAME-L#####@___" would display as
"___Bob          ___" (the "___" segments of the above text examples are only
to demonstrate where the padding begins and ends).

*** Synchronet Supported @-Codes ***
( * Indicates Synchronet specific )

Note: All codes must be uppercase and sandwiched between @ symbols
      (e.g. @USER@).
System Information
Code		Description						Ver
---------------------------------------------------------------------------
BBS		Name of BBS
BOARDNAME	Name of BBS
CONF		Name of current Group and Sub-board
CONFNUM 	Number of current Group and Sub-board
CONN		Connection description (modem type, "Telnet", "Local")	2.3c
DATE		Current system date
DIR	        Current file directory short description
DIR-L[...]      " " padded and left justified
DIR-R[...]      " " padded and right justified
DIRL	        Current file directory long description
DIRL-L[...]     " " padded and left justified
DIRL-R[...]     " " padded and right justified
DN	        Number of current file directory
DL	        " " padded and left justified (4 chars wide)
DR	        " " padded and right justified (4 chars wide)
FIDOADDR	System's primary FidoNet address			2.3c
FREESPACE	Free disk space available for uploads
GRP	        Current message group short description
GRP-L[...]      " " padded and left justified
GRP-R[...]      " " padded and right justified
GRPL	        Current message group long description
GRPL-L[...]     " " padded and left justified
GRPL-R[...]     " " padded and right justified
GN	        Number of current message group
GL	        " " padded and left justified (4 chars wide)
GR	        " " padded and right justified (4 chars wide)
INETADDR	System's Internet Address (as configured in SCFG)	2.3c
LASTCALLERNODE	Name of user last on this node
LASTCALLERSYSTEM 
LIB	        Current file library short description
LIB-L[...]      " " padded and left justified
LIB-R[...]      " " padded and right justified
LIBL	        Current file library long description
LIBL-L[...]     " " padded and left justified
LIBL-R[...]     " " padded and right justified
LN	        Number of current file library
LL	        " " padded and left justified (4 chars wide)
LR	        " " padded and right justified (4 chars wide)
LOCAL-IP	System's IP address					3.0b
LOCATION	System location (city, state)				2.3c
NOACCESS        Why user was denied access (last false ARS)
NODE		Number of current node
NODE### 	Status of node number ###
NUMCALLS	
NUMDIR		Number of current library and directory
PREVON		
QUESTION        Current Yes/No question (for TEXT\MENU\YESNO.*)
QWKID		System's QWK BBS-ID					2.3c
REV		Software revision (single letter)
STATS.LOGONS	Total logons during history of system			3.0b
STATS.LTODAY	Total logons today					3.0b
STATS.TIMEON	Total time used during history of system (in minutes)	3.0b
STATS.TTODAY	Total time used today (in minutes)			3.0b
STATS.ULS	Total uploads today					3.0b
STATS.ULB	Total bytes uploaded today				3.0b
STATS.DLS	Total download today					3.0b
STATS.DLB	Total bytes downloaded today				3.0b
STATS.PTODAY	Total posts today					3.0b
STATS.ETODAY	Total e-mails sent today				3.0b
STATS.FTODAY	Total feedbacks sent today				3.0b
STATS.NUSERS	Total number of new users today				3.0b
SUB	        Current message sub-board short description
SUB-L[...]      " " padded and left justified
SUB-R[...]      " " padded and right justified
SUBL	        Current message sub-board long description
SUBL-L[...]     " " padded and left justified
SUBL-R[...]     " " padded and right justified
SN	        Number of current message sub-board
SL	        " " padded and left justified (4 chars wide)
SR	        " " padded and right justified (4 chars wide)
SYSDATE 	Current system date
SYSOP		Name of System Operator
SYSTIME 	Current system time
TCALLS		Total number of logons for system
TFILE		Total number of files on system
TIME		Current system time
TMSG		Total number of messages on system
TNODE		Total number of nodes on system
TUSER		Total number of user slots on system
VER		BBS version number
WHO		Display status of all active nodes
User Information

Code		Description						Ver
---------------------------------------------------------------------------
ADDR1		User's street address
ALIAS		User's name or alias
BAUD		User's connect rate (DCE) in bps
BDATE		User's birthdate (MM/DD/YY)
BPS		
BYTELIMIT	User's free credits per day
BYTESLEFT	User's total credits
CALLS		Total number of logons for user
CID		Caller's Caller-ID info or IP address			2.3c
CITY		User's city
COMPANY 	User's company name or real name
CPU		User's computer type (v2.x) or hostname (v3.x)
DATA		
DATAPHONE	
DAYBYTES	Number of free credits used today by user
DLBYTES 	Total bytes downloaded by user
DLFILES 	Total files downloaded by user
DLKLIMIT	User's total credits (in kilobytes)
DOWNK		Total kilobytes downloaded by user
DOWNS		
EXDATE		User's expiration date (MM/DD/YY)
EXPDATE 	
EXPDAYS 	Days left before user expires
FIRST		User's first name/alias
FIRSTREAL       User's first real/company name
FROM		User's location (City, State)
HANDLE	        User's chat handle
HOMEPHONE	
HOST								2.3c
IP								2.3c
KBLEFT		User's total credits (in kilobytes)
KBLIMIT 	User's free credits per day (in kilobytes)
LAST	        User's last name (alias)
LASTDATEON	Date of user's last logon (MM/DD/YY)
LASTNEW 	Date of user's last new file scan (MM/DD/YY)
LASTON		Date and time of user's last logon
LASTTIMEON	Time of user's last logon (HH:MM am)
LASTREAL        User's last real/company name
LEFT		
MAILW	        Number of mail messages waiting for current user
MAILW:x	        Number of mail messages waiting for current user #x
MAILP	        Number of pending mail messages sent by current user
MAILP:x	        Number of pending mail messages sent by current user #x
MAXDK		
MEMO		Date of user's last password modification
MEMO1		User's note
MEMO2		
MINLEFT 	User's time left in minutes
MSGLEFT 	Total number of messages posted by user
MSGREAD 	Number of messages read by user this call
MSGSLEFT	
NAME	        User's name or alias
NAME-L[...]     User's name (padded and left justified)
NAME-R[...]     User's name (padded and right justified)
NEWFILETIME 	Date and time of user's last new file scan
NUMTIMESON	
PHONE		User's phone number (###-###-####)
REAL	        User's real first name
SEC		User's security level
SECURITY	
SINCE		Date of user's first call (MM/DD/YY)
STATE		User's state (from location)
TIMELEFT	
TIMELIMIT	Maximum time per call in minutes
TIMEON		Time used this call in minutes
TIMEUSED	
TLEFT	        Time left (H:MM:SS)
TPERC	        Time allowed per call (H:MM:SS)
TPERD	        Time allowed per day (H:MM:SS)
TUSED	        Time used this call (H:MM:SS)
UPBYTES 	Total bytes uploaded by user
UPFILES 	Total files uploaded by user
UPK		Total kilobytes uploaded by user
UPS		
USER		User's name or alias (same as ALIAS)
ZIP             User's zip/postal code
Display

Code		Description						Ver
---------------------------------------------------------------------------
AUTOMORE	Toggle automatic pausing
BEEP		Generate a beep
BELL		
CLS		Clear screen
CRLF		carriage return/line-feed pair				3.0b
MENU:filename	Display a menu file (from TEXT\MENU directory)
MSGREPLY	Command key to reply to last message			3.0b
MSGREREAD	Command key used to re-read last message		3.0b
NOPAUSE		
MORE		
PAUSE		Immediately produces a [Hit a key] prompt
PON		Toggles automatic screen pause for everyone
POFF		Toggles automatic screen pause for everyone
TYPE:filename	Display a specific filename
UP		Move cursor up one row			(ANSI)		3.0b
UP:n		Move cursor up n rows			(ANSI)		3.0b
DOWN		Move cursor down one row		(ANSI)		3.0b
DOWN:n		Move cursor down n rows			(ANSI)		3.0b
RIGHT		Move cursor right one column		(ANSI)		3.0b
RIGHT:n		Move cursor right n columns		(ANSI)		3.0b
LEFT		Move cursor left one column 		(ANSI)		3.0b
LEFT:n		Move cursor left n columns		(ANSI)		3.0b
GOTOXY:x,y	Move cursor to x/y (1-based)		(ANSI)		3.0b
PUSHXY		Save current cursor position		(ANSI)		3.0b
POPXY		Restore saved cursor position		(ANSI)		3.0b
Miscellaneous
There a few special Synchronet specific @-Codes which require a parameter
(following the colon and before the terminating @ symbol):
Code		Description						Ver
---------------------------------------------------------------------------
HANGUP		Immediately disconnect user
SETSTR:STR	Sets the current Baja command string to STR
EXEC:MODNAME	Execute a loadable (Baja) module, EXEC\MODNAME.BIN
TYPE:FILENAME	Display a specific filename (must specify path and file ext.)
MENU:FILENAME	Display a menu file (from TEXT\MENU with automatic file ext.)

Synchronet command line specifiers may be used in the FILENAME parameter to
the TYPE: @-Code allowing symbolic replacment for specific Synchronet
directories (%!, %z, %k, %j, etc).

Examples:

@EXEC:MYMOD@
@TYPE:%zSYSTEM.MSG@
@MENU:YESNO@

SIF Questionare Files

An automatic new user SIF questionnaire can be specified in SCFG->System.
If a newuser SIF is specified, all users who logon and don't have a copy of
the answered questionnaire data in their user file will be given the
questionnaire upon logon. The sysop can view the answered questionnaire from
User Edit with the '#' command. For convenience, the sysop can create a second
(abbreviated) SIF file for his own use in viewing user's answers. The two SIF
files (input and output) should be identical with the exception of what is
in the 'text' portion.

format:

textmode[mod][l][r][x][.n]["str"]

element descriptions:

STX     is the ASCII code for start of text (ASCII 2 / Ctrl-B)
ETX     is the ASCII code for end of text   (ASCII 3 / Ctrl-C)

text    is any number of ASCII characters - Synchronet Ctrl-A codes supported

mode    text input mode desired for this field. Possible mode values are:
                c       single character
                s       string of characters

mod     optional mode modifier. Possible mode modifiers are:
                n       numeric characters only
                u       input converted to uppercase
                f       forced word capitalization ('s' mode only)

l       input line will be displayed (inverse bar of maximum input length)

r       a carriage return / line feed pair will be appended to this field
        in the data buffer. Only use this field if you want the data buffer
        or file to be more readable. All data is on one line otherwise.

x       maximum string length allowed (required for non-template 's' mode)

n       minimum string length allowed (only applicable with 's' input mode)


str  1: in 's' modes, a template string that defines what will be displayed
        at the prompt and what type of characters the user can input. All
        characters other than 'N', 'A' or '!' are printed at the prompt.
        Occurances of 'N', 'A' or '!' define which type of character the user
        can input for each character position. 'N' allows the user only to
        enter a numeric character, 'A' allows only alphabetic, and '!' allows
        any character. Popular templates are "NNN-NNN-NNNN" for phone number
        input or "NN/NN/NN" for date input.

     2: in 'c' modes, a string that defines which characters the user will
        be allowed to input (not case sensitive), usually used for multiple
        choice answers. Most common allowed characters are "ABCD..." or
        "1234...". If this string is specified in 'c' input mode, 'u' and 'n'
        have no effect and input will be converted to uppercase automatically.

Example 1:

Enter string: sulr8.3


Prints the prompt, "Enter string: ", then a line of 8 blue spaces
(an input bar, if you like), would convert all of user's input to uppercase,
allow the user to input a maximum of eight characters, a minimum of three and
append a CRLF onto the end of the data field.

Example 2:

A> First Answer
B> Second Answer
C> Third Answer
Which: c"ABC"


Prints "A> First Answer" "B> Second Answer" etc... then allows the
user to input one character, either A,B, or C. No other characters will be
accepted as input.

Example 3:

Enter phone number: s"NNN-NNN-NNNN"


Prints "Enter phone number: ", then allows the user to input only
numbers in the 'N' character positions, and automatically skips over the
'-' characters.


See EXAMPLE.SIF in the SBBS\TEXT directory for more information.

GURU Cutomization

The Synchronet Guru is an artificial intelligence engine that users can chat
with for entertainment or educational purposes. You may wish to fool the users
into believing the guru is a live human, or tell them up-front that it's just
a program.

You may have up to 500 different guru available to chat with on your BBS,
each with its own "personality" and "intelligence". You add additional gurus
in SCFG->Chat Options->Artificial Gurus. You can specify access requirements
(see the ARS chapter for details) for each guru, allowing you to have specific
gurus for different groups of users or allow users to choose which guru they
want to chat with.

The gurus of your BBS can be "taught" to respond to keywords and phrasing that
your users use when chatting with him. The default guru's "brain" is a file
named GURU.DAT that is kept in the CTRL directory. It is a special data file
that contains logic expressions and lists of responses. Before you edit the
GURU.DAT file, be sure you understand exactly what you are doing, as the neuro
system that interprets the GURU.DAT file does not handle syntax errors very
well. The basic structure of the GURU.DAT is as follows:

(expression)
response
response
(expression)
response
response
()
response
response
response

You may include as many Expression/Response sets as you like, as long as
the file size does not exceed 64k or the amount of available memory.
Each expression contains one or more string of characters that The Guru may
respond to and logic operators. The string must be in all uppercase and may
not contain the following characters: ~^|&()

If the expression just contains one string (e.g. (HELLO)) and that string is
used in the users input, The Guru will pick a random response from the list
that follows that expression. The Guru will only use one response for each
line input by the user, so as soon as a "true" expression is encountered, a
response is made and the evaluation of the user's line is complete.

All expressions are evaluated from the top of the file down, so if a true
expression is encountered toward the top of the file, all of the remaining
expressions are ignored until the next evaluation. Notice that the last set of
responses is preceded by a pair of empty parenthesis. This is an "always true"
expression and should always be the last expression in the file. Omitting this
fall-through expression is a syntax error. If all the previous expressions are
evaluated as false, then a response will be picked from the set following the
fall-through expression.

The simplest form of an expression is just a string of uppercase letters (with
or without spaces). If the string is followed by a tilde '~', the string will
be evaluated as true even if the string is embedded in another string (e.g. if
the user types "XhelloX", an expression of (HELLO) would evaluate as false, but
an expression of (HELLO~) would evaluate as true).

You can also specify that the string must be the beginning of the users input
line by following the string with a caret '^'symbol (e.g. if the user types
"I said, Hello!", an expression of (HELLO) would evaluate to true, but an
expression of (HELLO^) would be false).

An expression can contain multiple strings connected with logic symbols. The
valid logic symbols are & (and) and | (or) (e.g. if you have the expression
(HELLO&GURU) the user must type both "hello" and "guru" in the input line in
order for the expression to be true. If you have the expression (HELLO|HI), it
will be evaluated as true if the users includes either "hello" or "hi" in his
input string). Nested evaluations are supported (e.g. the expression,
(GURU&(HELLO|HI)) will evaluate as true if the user inputs either "guru" and
"hello", or "guru" and "hi").

Expressions may also contain AR strings within square brackets ([ and ]). The
expression (HELLO&GURU&[LEVEL 20]) would evaluate as TRUE only if the user
typed the words "HELLO" and "GURU" and had a level of 20 or higher. See the
ARS chapter for details on the AR string syntax and possible keywords.

RESPONSES:

Each expression can be followed by up to 100 responses and each response can
be up to 512 bytes long. Responses can not contain the characters ( or ) and
may only span several lines if the last character of each continued line is a
back-slash '\'. Responses are picked at random from the group below the first
expression that is evaluated as true. The more responses you have to each
expression, the less likely The Guru is to repeat himself. The Guru can also
respond with information about the current user or perform an action. To
initiate these special responses, you must precede a valid response variable
with a back-quote (`) character. The valid response variables and their
definitions are as follows:

A       User's alias (name, if Aliases not allowed)
B       User's birth date
C       User's computer type
D       User's download bytes
G	Guru's name
H	Hang up on the user (immediately)
I	System's QWK ID
J	Current day of the month
L	User's security level
M	Current month
N       User's note (location, if Aliases not allowed)
O	Sysop's name
P       User's phone number
Q       Quit chat
R       User's real name (address, if Aliases not allowed)
S	System name
T	Current time
U       User's upload bytes
W	Current day of the week
Y	Current year
Z	User's zip/postal code
$       User's credits
#       User's age
!	Toggle The Guru's typing mistakes Off/On
_       Pause in response

Three of the above response variables only have effect when the user is
chatting with The Guru in the "Local" mode and not from multinode chat. These
are the 'Q'uit chat (which is the only means of the exiting without hitting
Alt-G locally), '!' Toggle typing mistakes, and '_' pause in response.

e.g. The expression/response pair:

(HELLO)
Hello there, `a...

would display "Hello there, Joey..." if Joey were to say "hello" to The Guru.

See CTRL\GURU.DAT for more detailed examples of GURU.DAT programming.

Trash(*.CAN) Files

Trash can files are used to be able to reject text during certain sequences on
the BBS.  For example, if you don't want a user to be able to log on with a
certain name or use a certain phone number, you would place the information you
don't want them to use into the appropriate trash can file.  Synchronet looks
for trash can files in the \SBBS\TEXT directory, certain ones may already
exist, others will need to be created if you wish to use them.	The names of
the various trash can files and their function are as follows:

TEXT\CID.CAN	You MUST have caller ID capabilities in your area (as well as a
		modem which can support those capabilities) in order to use
		this file.  When a call comes in to the BBS who's caller ID
		phone number matches a phone number in this file, the call will
		be rejected.

TEXT\NAME.CAN	When a user attempts to use a name contained in this file as
		the name for their user account, they will be told that s/he
		cannot use that name.
		If the file TEXT\BADNAME.MSG exists, this will be displayed to
		the user.

TEXT\FILE.CAN	When a user uploads a file to the transfer section who's
		filename matches one of the names contained in this file, the
		user will be told that s/he cannot upload the file.
		If the file TEXT\BADFILE.MSG exists, this will be displayed to
		the user.

TEXT\PHONE.CAN	When a user attempts to use a phone number contained in this
		file as a phone number for their user account, they will be
		told that s/he cannot use that phone number.  This file can
		also be used by the Synchronet Callback Verifier program.
		If the file TEXT\BADPHONE.MSG exists, this will be displayed to
		the user.

The trash can files also allow special key characters to be used within them,
the tilde '~' character means "contained within" and the carrot '^' character
means "beginning with".  For example:

sysop	in the name.can would mean users could not use the name "sysop".

sysop^	would mean users could not use names beginning with the word "sysop",
	like "sysopa" or "sysops" etc.

sysop~	would mean users could not use names that have the word "sysop"
	anywhere in them, like "imthesysop" or "mesysophere".

These key characters can be used in any of the trash can files.

Node Action Customizations

The node action text can be over-ridden by editing the NodeAction lines in
the TEXT.DAT file (see previous section for details on TEXT.DAT). The node
action text is what is displayed on the node status line when a node is in
use. (i.e. instead of "Node  1: So-and-so uploading at 14400bps", you could
make it say whatever you like).

You can also include the following optional specifiers (in this order):

%s	User's name or alias
%u	User's security level
%u	User's age
%c	User's sex (gender, M or F)
%s	User's computer type
%s	User's note
%s	Date user was first online
%u	Auxiliary value (chat channel, door number, paged node, etc)
%u	Connection rate (in bps)

If you include any of the above specifiers, you must also include any of the
specifiers above it. The order of the specifiers cannot be changed. If you
wish to suppress the display of a %s specifier, use "%.0s" instead of "%s".
To suppress other specifiers, see the previous section for details.

SysOp Commands

Most sysop functions will be performed locally, while some sysop functions can
only be performed locally. The following special key combination are only
available while online locally (not from the Waiting for Call screen).

[MACROS]------------------------------------------------------------------------

        All the function keys (F1-F12) and combinations with Shift, Ctrl, and
        Alt (48 macros total) are available for the sysop. A macro is a short
        way to enter many keystrokes. Each macro is stored in a separate file
        in the TEXT directory with a MAC extension. The name reflects which
        key combination will initiate the macro. For regular F1 through F12,
        the name is F1.MAC through F12.MAC respectively. For Alt-F1 through
        Alt-F12 the name is ALT-F1.MAC through ALT-F12, Ctrl-F1 through
        Ctrl-F12 are named CTRL-F1.MAC through CTRL-F12, and Shift-F1 through
        Shift-F12 are named SHFT-F1.MAC through SHFT-F12. Each file is a basic
        ASCII text file with one exception; an extended key combination (such
        as Alt-D) can be entered by placing a Ctrl-@ (ASCII 0, NULL) in the
        file followed by the scan code of the key you wish to use.



[ALT-KEY COMBINATIONS]----------------------------------------------------------

        Alt-U           (User Edit)

        At any place within Synchronet, pressing Alt-U at the local keyboard
        will pop the local console into User Edit while the remote side (if
        there is a remote user) will see [WAIT]. Alt-U is available while using
        the terminal mode as well. See User Edit for more information.
        See UEDIT command below.



        Alt-#           (Quick Validation)

        Pressing Alt and then any of the numbers 0-9 will change the current
        users level/flags/exemptions/restrictions/credits and extend their
        expiration date to the settings for that quick-validation slot set in
	the system configuration. SCFG->System->Toggle Options->Quick
	Validation Hot Keys must be set to 'Yes' for this feature to work.



        Alt-S           (Crazy Cursor Toggle)

        Pressing Alt-S will toggle the state of the crazy (spinning) cursor,
        but doesn't change the current user's default settings regarding it.



        Alt-E           (Local I/O Only)

        If a user is on remotely, this allows the local console to use the BBS
        while the remote user just sees [WAIT]. Pressing Alt-E again re-enables
        the remote console.



        Alt-L           (Capture)

        This starts and stops the local capture of text to a file. If capture
        is active the status line will reflect this state with a blinking 'C'
        as the far left character. The file the BBS opens to capture to will be
        appended if the file already exists. The filename to capture to is
        prompted for when capture is started. The filename defaults to
        CAPTURE.TXT in the current node's directory. To direct output to the
        printer, change the filename to PRN.
        See ANSCAP command below.



        Alt-Q           (Quiet Remote User)

        If a user is connected remotely, hitting this key will disable him from
        being able to enter any keystrokes into the BBS . The user will see all
        the BBSs output, but any characters sent from his side will not be
        accepted as input. Hitting Alt-Q again enables remote input again.



        Alt-P           (Sysop Page Off)

        If someone is currently paging the local sysop (annoying sounds at the
        local console), hitting Alt-P will turn them off. Scroll-lock toggles
        local sysop availability.



        Alt-H           (Disconnect)

        Hangs up on the current user immediately.



        Alt-I           (Interrupt)

        Hangs up on the current user after displaying a message the node has
        been closed for maintenance.
        See INTR command below.



        Alt-A           (Sysop Alert)

        When the current user logs off the BBS, the local sysop will be alerted
	by a message and a continuous alarm.



        Alt-R           (Rerun Node)

        When the current user logs off the BBS, this node will automatically
        rerun itself.
        See RERUN command below.



        Alt-X           (Down Node After User Logs Off)

	Hitting this key combination while the user is in the BBS will toggle
        the down status of this node. When a node is to be downed, it will
        be automatically shutdown when the current user logs off.
        See DOWN command below.



        Alt--           (Subtracts 5 Minutes)

        Subtracts 5 minutes from the users time allowed online this logon.



        Alt-+           (Add 5 Minutes)

        Add 5 minutes to the user's time allowed online this logon.



        Alt-N           (Lock Node)

        Pressing this key will disallow any non-sysops or users without the
        'N' exemption from logging on after the current user logs off.
        See LOCK command below.



        Alt-T           (Temp Sysop)

        Gives the current user sysop status temporarily for this logon. Hitting
        Alt-T again removes the temp sysop status. This doesn't actually raise
        the security level of the user to 90, but gives him access to all sysop
        functions. The status line reflects Temp Sysop state with a blinking
        asterisk to the far left of the status line.



        Alt-G           (Guru Chat)

        Pops the user in and out of apparent local chat with the system's guru.



        Alt-C           (Local Chat)

        Pops the user into chat with the local console.



        Alt-D           (DOS Shell)

        Pops the local console into DOS. If a user is on remotely, he sees
        [WAIT] till the local console exits the shell. The sysop can use the
        'D' command to shell to DOS from the wait for call screen.
        See DOS command below.



        Alt-Z           (Local Key Menu)

        Displays the local key menu.




[STATUS LINE]-------------------------------------------------------------------

        The status line displays one line of user information at any given
        time. To change the current line, use CTRL and the UP and DOWN arrow
        keys to scroll through different information lines, or CTRL-HOME to go
        to the  default (1st) or CTRL-END to go to the last.

        The available status lines are:

         0: UserName SecLevel Password ModemType Birthday Age Sex Phone
         1: UserName SecLevel RealName/CompanyName "Alt-Z for help"
         2: UserName SecLevel RealName/CompanyName Age Sex Phone
         3: UserName SecLevel Location Phone
	 4: UserName SecLevel Note/Caller-ID Phone
         5: UserName SecLevel Flags1 Age Sex Phone
         6: UserName SecLevel Flags1 Expiration
         7: UserName SecLevel DateFirstOn DateLastOn Expiration
         8: UserName SecLevel Credits Minutes Expiration
         9: SecLevel Flags1 Flags2
        10: Exemptions Restrictions
        11: ComputerType ModemType ChatHandle
        12: Address Location ZipCode
        13: UploadBytes UploadFiles DownloadBytes DownloadFiles LeechCount
        14: Posts EmailSent FeedbackSent EmailWaiting TotalLogons TotalTimeOn
        15: NetMailForwardingAddress
        16: SysopComment

        You can set the default status line number in SCFG->System->Advanced
        options. This will be the default status line that appears until
        manually scrolled.

        There are status flags on the status line that indicate specific status
        items. They appear blinking on the left or right edges of the status
        line. They are defined as:

        C       Local text/ANSI capture is on
        *       Temporary sysop status
        A       Alert sysop when user logs off
        R       Rerun this node when user logs off
        D       Down this node when user logs off
        E       Run node daily event when user logs off
        L       This node is locked for sysop logons only



[EXTRA ONLINE SYSOP COMMANDS]---------------------------------------------------

Most of the additional commands available to sysops online (local or remote)
are initiated from the main or transfer sections. A menu of the available
commands can be viewed with the '!' command from the main or transfer sections
with the Synchronet Classic command shell. Additional sysop commands are
available in many other sections of the BBS and are displayed after the normal
menu with the '?' command. All sysop commands from the main or transfer
sections of the Synchronet Classic command shell begin with a semicolon (';')
character, end with CR (ENTER), and some have optional parameters (shown in
square brackets). Users with certain exemptions can use some of these commands
and have access to the menus via the '!' command using the Synchronet Classic
command shell.


        UEDIT [x]       (User Edit)

        This command initiates the User Edit function. If 'x' is specified
        and is a valid user number, that user will be the current user when
        User Edit starts, otherwise the user online will be the current user.
        This command is also available from the transfer menu. Locally, Alt-U
        is the preferred method of initiating User Edit.

        See the chapter on User Edit for more information.



        SPY [n]        	(Spy on Another User) (v3.00c+ Only)

        This command allows the sysop to remotely monitor or control another node
	running in the same instance as the node the sysop is logged into.



        CHUSER          (Change into Another User)

        This command allows the sysop to temporarily change to another user
        account. If changing to an account with a higher level, the password
        of that user must be given. Changing to an account of non-sysop status
        automatically enables Temp Sysop mode so that the sysop can change back
        to his/her own account before logging off (a suggested action).



        ANSCAP          (Toggle ANSI Capture Mode) (v2 Only)

        Normal ANSI escape sequences are not written to the capture file. The
        sysop can use this command to enable all characters (including ANSI
        escape sequences) to be written.



        LOCK [x]        (Lock Node)

        The sysop can use this command to prevent users logging onto a node
        until the lock is removed. If 'x' is specified, that node's lock
        status will be toggled, otherwise a list of all nodes is given and
        the sysop is prompted for the node to lock or unlock. Sysops and
        users with the 'L' exemption can use this command and log onto locked
        nodes. A locked node will have an 'L' in parenthesis after the node
        information in the node listings.



        INTR [x]        (Interrupt Node)

	This command allows a sysop (or user with the 'I' exemption) to hang up
        on a user on another node. If the user is currently executing an
        external program (editors and transfer protocols included), he will
        not be disconnected until control returns to Synchronet. A message will
        be displayed telling the user that the node has been temporarily closed
        for maintenance before carrier is dropped. If 'x' is specified that
        node's interrupt status will be toggled, otherwise a list of all nodes
        is displayed and the sysop is prompted for the node who's interrupt
        state he wishes to toggle. The current interrupt status of a node is
        reflected by an 'I' in square brackets following the node information
        line in the node listings.



        DOWN [x]        (Down Node)

        A sysop can toggle the down status of a node with this command. When
        a node has the down status (noted by the [D] flag on the node status
        line) it will be shutdown immediately after the user logs off. If a
        user is not online, it will shutdown immediately.



        ANON            (Anonymous)

        This command makes the current node anonymous. Sysops and users with
        the 'Q' exemption have access to this command. To a sysop, an anonymous
        node appears normal with the addition of an 'A' in square brackets
        following the node information line.



        QUIET           (Quiet Mode)

        Using this command, a sysop (or user with the 'Q' exemption) can make
        his node appear to be "Waiting for call" to other users of the system.
        Users with this ability can also make this state their default state
        upon logon in the user defaults section. Local users can logon in
        this state with the WFC command SPACE, then 'Z' or user number 1 can
        logon fast and quiet with the WFC command SPACE, then 'Q'.
        To a sysop, a node in this state appears normal with the addition of
        a 'Q' in square brackets following the node information line.



        RERUN [x]       (Rerun Node)

        This command allows a sysop to rerun any node on the system by
        specifying the node number on the command line. If there is a user
        on the node that is to be rerun, the node will not rerun until that
	user logs off. A node that is going to be rerun is noted with an
        'R' in square brackets following the node information in node listings.



        DOS             (Shell to DOS)

        Using this command, a sysop can go straight to the DOS command line
        locally or remotely. If the sysop is on locally, ALT-D is the
        preferred method of shelling to DOS. If a local sysop wishes to shell
        to DOS from the wait for call screen, he can use the 'D' command.



        EDIT [s]        (Edit Text/MSG File)

        A sysop can edit any ASCII text (and MSG format) files on the system
        with this command. If 's' is given, it will be used as the filename to
        be opened or created if it doesn't exist. If 's' is not specified, the
        filename will be prompted for.



        LOG             (Today's Detail Log)

        A sysop can view today's detailed log file with this command. This
        command views the same file as the 'L' wait for call screen command.



        YLOG            (Yesterday's Detail Log)

        A sysop can view yesterday's detailed log file with this command. This
        command views the same file as the 'Y' wait for call screen command.



        NS [x]          (Node Statistics)

        This command will give today's statistics for node 'x' if specified,
        or the current node.



        SS              (System Statistics)

        This command will give today's statistics for all nodes combined.



        NLOG [x]        (Node Statistics Log)

        A sysop can view the history of statistics information for any node on
        the system. If 'x' is specified, that will be the node who's statistics
        are viewed, otherwise the current node. Same as 'N' from the wait for
        call screen.



        SLOG            (System Statistics Log)

        Using this command, a sysop can view the history of statistics
        information for the system. Same as 'S' from the wait for call screen.



        MEM             (Available Memory) (v2 for DOS Only)

        This command displays the amount of memory available to Synchronet and
        any external programs it executes (without swapping).



        LIST [s]        (View Text/MSG File)

        A sysop can use this command to view any ASCII text (or MSG format)
        file on the system. If the filename 's' is not specified, it is
        prompted for.



	GURU		(View Guru Log)

        A sysop can use this command to view the GURU.LOG file which contains
        discussions that users have had with the system guru (GURU.DAT).
        See GURU.DAT for more information.



        MAIL            (Read All Mail)

        Using this command (or 'M' from the WFC screen) a sysop can read all
        the e-mail on the system.



	BULKMAIL	(Send Mass Mailing)

	Use this command to send a single e-mail message to multiple users.



	CALL [Hub-ID]	(Force QWKnet Call-out)

	Forces a QWKnet call-out to the hub "Hub-ID" the next time the call-out
	node is at the WFC screen. Example: CALL VERT



	EXEC [Command]	(Execute a DOS program or Baja module)

	Execute internal DOS commands (DIR, TYPE, etc.) by prepending
	"command /c" to your command line. Execute Baja modules by prepending
	"*" to  the command line. Baja modules must be located in your EXEC
	directory. Command line specifiers (see appendix A) may be used.



	CHAT

	Users with the 'C' exemption can use this command to page the sysop.



        OLD             (Search for Files not Downloaded Since New-Scan Date)

        A sysop can use this command to remove, edit, or move files that were
        uploaded before the new-scan date (set with the '&P' transfer section
        command) and have not been downloaded since.



        OLDUL           (Search for Files Uploaded Before New-Scan Date)

        A sysop can use this command to remove, edit, or move files that were
        uploaded before the new-scan date (set with the '&P' transfer section
        command).



        CLOSE           (Search for Files Currently Open)

        If there are no users online and all nodes are running, there should
        be no file records open. A sysop can check for open file records with
	this command. Any file records that are left open erroneously, can be
        closed with this command. This circumstance should not happen.



        ALTUL [x]       (Alternate File Path Uploads)

        If there are alternate file paths configured, a sysop can use this
        command to set the current upload path to one of the alternate file
        paths. All subsequent upload commands will use the alternate upload
        path as the storage directory regardless of the storage path specified
        for the directory being uploaded to. This is a useful command for
        those who wish to have one directory with files listed from multiple
        CD-ROMs.

        See CD-ROM for more information on creating alternate file paths.



        UPLOAD          (Bulk Local Upload)

        This command searches for files that are on disk, but not in the
        database of the directory. If any are found, a description is prompted
        for and the file is then added to the database.



        RESORT          (Re-Sort and/or Compress)

        A sysop can use this command to re-sort a directory if he has changed
        the sort order in the directory configuration or can use this command
        to remove deleted file records from the database to conserve memory and
        disk space. If there are many deleted files in the database of a
        directory, performance will also be affected. Deleted file records
        are used by new uploaded files, but if a substantial amount of files
        have been removed from a directory, a sysop may wish to use this
        command.



        OFFLINE         (Search for Offline Files)

        This command will search the disk for files that are in the database
        of a directory but not actually on the disk. The sysop can then remove,
        edit, or move these files to another directory. Offline directories
        are ignored in this search.



	DIR [s] 	(Directory of Files)

	This command displays a DOS directory of the path specified. If no
	path is specified, a directory of the current file transfer directory
	is displayed.



	GET [s] 	(Download File From Anywhere)

        A sysop can download a file from any drive or directory on the system
        by using this command. The file does not have to be in the file
        database.



	PUT [s] 	(Upload File to Anywhere)

        A sysop can use this command to upload a file to a local disk without
        having to add it to the file database.



Note: The Baja source code file for these commands is: exec/str_cmds.src