Output of file : SOCRATES.DOC contained in archive :
SOCV100.ZIP
_______
/ /
/ ____/_____ ____ ____ _____ ______ _____ ______
/ /___ / _ //___/ /__ / /___ //__ __//____//_____/
/___ // // /// //_// //__// // //___ //____
____/ // // /// /___/ /___ / // /____//___ /
/ // // ///___ // || // // // //___ ____/ /
/______//____//____/// // // // // /____//_____/
SOCRATES (tm) v1.00
(C) Copyright 1990 Mikronetics
All Rights Reserved
Documentation by Robert D. Swift
Socrates BBS (v1.00) License and Distribution
COPYRIGHT
The SOCRATES program and all support programs described in
this document and included in the SOCRATES system
distribution files are copyrighted and all rights are
reserved by Mikronetics and Michael A. Jacobs.
THIS IS NOT FREE SOFTWARE! If you paid a "public domain"
vendor for this program, you paid for the service of copying
the program, and not for the program itself. Rest assured
that nothing ever gets to the originators of this product
from such a sale. You may evaluate this product, but if you
make use of it, you must register your copy.
We offer several inducements to you for registering. First
of all, you receive the most up-to-date copy of the program
that we have -- and we do update the product on a regular
basis. You also receive support for SOCRATES -- which can
be quite valuable at times. And finally, we have a few
utilities not included in the evaluation package. Make no
mistake, however - this is a fully functional version of
SOCRATES and not "crippled" in any way.
TRADEMARKS
SOCRATES is a trademark of Mikronetics.
Many product names found throughout this manual are
trademarks of various companies. These include:
BinkleyTerm Bit Bucket Software
DSZ Omen Technologies
Fido & FidoNet Tom Jennings and Fido Software
IBM International Business Machines
MS-DOS Microsoft Corp.
Plato Nippon Electric Company (NEC)
X.00 Raymond L. Gwinn
WARRANTY AND DISCLAIMER
The author makes no warranties, expressed or implied, as to
the quality or performance of these programs. The author
will not be held liable for any direct, indirect, incidental
or consequential damages resulting from the use of these
programs. Your use of these programs constitute your
agreement to this disclaimer and your release of the author
from any form of liability or litigation.
- i -
Socrates BBS (v1.00) License and Distribution
DISTRIBUTION
This is "user-supported" software. You are hereby granted a
license to distribute this copy of SOCRATES and its
documentation, subject to the following conditions:
1. SOCRATES may be distributed freely without charge
in evaluation form only.
2. SOCRATES may not be sold, licensed, or a fee
charged for its use. If a fee is charged in
connection with SOCRATES, it must cover the cost
of copying or dissemination only. Such charges
must be clearly identified as such by the
originating party. Under no circumstances may the
purchaser be given the impression that they are
buying SOCRATES itself.
3. SOCRATES must be presented as a complete unit,
including this documentation. Neither SOCRATES
nor its documentation may be amended or altered in
any way.
4. By granting you the right to distribute the
evaluation form of SOCRATES, you do not become the
owner of SOCRATES in any form.
Any other use, distribution or representation of SOCRATES is
expressly forbidden without the written consent of Michael
A. Jacobs.
REGISTRATION
Registering SOCRATES allows you to use the product after the
trial period. Registered SOCRATES users get the current
copy of SOCRATES on disk and priority when calling the
SOCRATES Software support BBS (we guarantee no support to
unregistered users). Most importantly, registered users
know they are helping to make sure that high-quality
software like SOCRATES continues to be sold in this low-cost
way.
SOCRATES registration costs $40 US. Payment may be in the
form of check or money order in US currency. Payment should
be made out to:
Mikronetics
2114 Weatherton Dr.
Wilmington, DE 19810
United States of America
- ii -
Socrates BBS (v1.00) Contents
TABLE OF CONTENTS
COPYRIGHT i
TRADEMARKS i
WARRANTY AND DISCLAIMER i
DISTRIBUTION ii
REGISTRATION ii
TABLE OF CONTENTS iii
1. INTRODUCTION 1
1.1 Program Description 1
1.2 Why Socrates? 2
1.3 Acknowledgements 3
1.4 System Requirements 4
1.5 SOCRATES Files 4
2. INSTALLING SOCRATES 6
2.1 The SOCRATES Directory 6
2.2 Conditions, Signals and States 6
2.3 The Initialization File 7
2.4 Message Areas and Directories 9
2.5 File Areas and Directories 10
2.6 SOCRATES Program File 12
2.7 Bulletins And Display Files 13
3. SOCRATES PROGRAM FILE 14
3.1 Overview 14
3.2 Menus 14
3.3 Responses 16
3.4 Commands 18
3.5 File Lists 22
3.6 Shells and Parameters 23
3.7 Putting It All Together 24
4. RUNNING SOCRATES 26
4.1 Command Line Parameters 26
4.2 User's Special Keys 26
4.3 Running Stand-Alone 27
4.4 Running With A Front End 28
4.5 Re-Entering SOCRATES 30
- iii -
Socrates BBS (v1.00) Contents
5. THE SYSTEM OPERATOR'S ROLE 31
5.1 SysOp Commands 31
5.2 User File Maintenance 32
5.3 Message Area Maintenance 33
5.4 Socrates Type Message Linking 35
APPENDIX 1 - Use of Delimiters 36
APPENDIX 2 - Evaluating Conditions 37
APPENDIX 3 - Initialization File Settings 40
APPENDIX 4 - BBS Program Commands 61
APPENDIX 5 - Shell Parameters
APPENDIX 6 - TimeBanks & Multipliers 119
APPENDIX 7 - FidoNet 121
APPENDIX 8 - Registration Form 122
INDEX 123
- iv -
Socrates BBS (v1.00) Introduction
1. INTRODUCTION
1.1 Program Description
The SOCRATES BBS package has been designed to provide the
ultimate in flexibility. It can be better described as a
BBS "construction set" because all of the menus, user
responses and system activities are defined by the SysOp.
In a sense, the SysOp is actually a "system programmer" and
SOCRATES executes the "programmed" configuration.
In addition to the usual programmable menu choices found in
other systems, SOCRATES even allows you to choose the format
of the message bases used. These can be either sequential
message bases such as used in most FidoNet style BBS
programs, or you can choose to use SOCRATES' own message
base format. The SOCRATES message base groups messages in
an area by subject, thus allowing you to quickly access all
messages related to a particular topic.
SOCRATES is fully FidoNet compatible when used with a front-
end mailer such as BinkleyTerm. In addition, the message
areas can be set up Fido style so that existing message
utilities can be used.
Ease of operation, flexibility and compatibility are the
major strengths of SOCRATES. If this is what you are
looking for in a BBS, look no further... SOCRATES is here!
- 1 -
Socrates BBS (v1.00) Introduction
1.2 Why Socrates?
I have never been one to easily fit into molds. Although
many BBS systems out there are 'configurable', one could
never make any real changes. Change the text in the menus,
alter the messages, sure, but it was still the same thing.
So, being a habitual programmer, I started work on my own
BBS program. As all good programmers should do, I broke the
problem down into its components. At first, I was just
going be yet-another-custom-BBS, but it occurred to me,
there must be many other malcontents out there as well, but
who don't have the time to write their own BBS program. And
thus became my vision of a meta-BBS system, where all the
BBS functions would be there, and it could be up to the
Sysop to decided how he/she/it wants to put it together.
Individuality, what a concept!
So now you're saying, 'Ok, that answers "Why Socrates?," but
why "Socrates?"'.
At the University of Delaware, (where I learn the underlying
principal of this arcane art) there was this obscure
mainframe system called 'Plato' (ah ha! a clue...). On it,
there was a message system called 'notesfiles' which worked
in a subject based system: each subject had a base note and
a list of associated responses. I liked this system much
better then the way Fido and the gang dealt with it. Even
when using links, after reading a subject, you still had to
wade through the notes again when you move on. But on
Plato, if you weren't interested in a subject, just go on to
the next one.
So, I borrowed this idea and wrote myself a message reader.
At the time, though, I wasn't very well studied up on
Ancient Greece, and chose to called it Socrates, thinking it
was Plato who taught Socrates. As it happened, I was wrong;
Socrates taught Plato who taught Aristotle (who taught
Alexander the Great who conquered Greece, Asia Minor, and
Persia and was eventually declared ZC of Zone 2.) But
Aristotle was 9-letters long, and Socrates was the magical
8-letters long, and .SOC made a good extension for my system
files, so Socrates it was.
- 2 -
Socrates BBS (v1.00) Introduction
1.3 Acknowledgements
I'd like to thank the academy, my family, the director, the
producer, my good friend Jack Nicholson...
The most thanks to goes to Bob Swift, the man who took the
crap I wrote as documentation and turned it into this lovely
work of art.
I also appreciate the efforts of my beta-testers who, I'm
assuming from their lack of responsiveness, found absolutely
no bugs...
... and Mike Epler who told me what he wanted for files
functions when I had no concept.
And of course, Thomas Jefferson.
Michael A. Jacobs
aka
Mike J (FidoNet 1:150/199)
- 3 -
Socrates BBS (v1.00) Introduction
1.4 System Requirements
SOCRATES will run on an IBM PCjr, PC, XT, AT, PS/2, or true
compatible with one hard drive and one floppy drive, or two
floppy drives, and with at least 200k of free memory. For a
few functions, such as the DOS Shell, more memory may be
required. SOCRATES will also require that a FOSSIL program
be loaded and, of course, a modem.
To get full use of SOCRATES your modem must meet certain
standards as well. The Carrier Detect signal should not be
forced high (on) by the modem, so that SOCRATES can tell
when you are on-line. This is usually controlled by the
setting of a dip switch on the modem, or a modem command.
The DTR (Data Terminal Ready) signal should not be ignored
by the modem.
1.5 SOCRATES Files
SOCRATES requires that the following files be located within
the system PATH:
RELOGIN.EXE - Re-enter Socrates after exit
SOC-MSG.EXE - Maintains message areas
SOC-SCAN.EXE - Maintains Socrates message areas
SOC-USER.EXE - Maintains user file
SOCRATES.EXE - The SOCRATES program itself
In addition, the following files are used when setting up or
modifying the BBS configuration and must be in the system
PATH:
CR-AREAS.EXE - Compile message area index
CR-FILES.EXE - Compile file area index
CR-INITS.EXE - Compile initialization file
CR-SOC.EXE - Compile configuration file
- 4 -
Socrates BBS (v1.00) Introduction
SOCRATES requires the following files to be in the current
directory when the program is started. These files are
created using the compile programs listed above:
AREAS.SOC - Message area index
COMM.SOC - Command list
COMMINDX.SOC - Command list index
FILES.SOC - File area index
FLST.SOC - Files list
FLSTINDX.SOC - Files list index
FMULT.SOC - Download limits
INITS.SOC - Initialization data
MENU.SOC - BBS menus
MENUINDX.SOC - BBS menus index
QUOTETRK.SOC - Quotes file pointer (if req'd)
RESP.SOC - User responses
RESPINDX.SOC - User responses index
TLIMS.SOC - Time limits
The following files contain the user data for the BBS and
must be in the current directory when SOCRATES is started.
If these files are missing, they will be created when a user
logs onto the system or when SOC-USER is run:
USERS1.SOC - User data
USERS2.SOC - User data
The SOCRATES archive contains the following files:
CR-AREAS.EXE - Compile message area index
CR-FILES.EXE - Compile file area index
CR-INITS.EXE - Compile initialization file
CR-SOC.EXE - Compile configuration file
READ_ME.1ST - Last minute release notes
RELOGIN.EXE - Re-enter Socrates after exit
SOC-AREA.TXT - Sample message area file
SOC-FILE.TXT - Sample files area file
SOC-INIT.TXT - Sample initialization file
SOC-MSG.EXE - Maintains message areas
SOC-PROG.TXT - Sample program definition file
SOC-SCAN.EXE - Maintains Socrates message areas
SOC-USER.EXE - Maintains user file
SOCRATES.DOC - This documentation file
SOCRATES.EXE - The SOCRATES program itself
SOCRATES.REG - Registration form
SOCRATES.REV - Revisions list
SAMPLE.ZIP - Various example files
- 5 -
Socrates BBS (v1.00) Installing Socrates
2. INSTALLING SOCRATES
2.1 The SOCRATES Directory
As with installing any new program on your system you have
to start at the beginning. That is, "Where do I put it?"
Although the Socrates programs can be placed anywhere in
your path, it is strongly recommended that you create a
separate sub-directory for the BBS. Throughout this
document, we will use the example of the files installed in
the C:\SOCRATES sub-directory.
Okay, you have a directory. Now, what goes into this
directory? First, copy all the files from the distribution
disk (or archive) into the directory. This will provide you
with much of what you need but there are still a few things
that have to be done before you have a fully functional,
working system. You will have to create sub-directories for
the file and message areas that you want to keep, as well as
customizing and compiling the configuration and program
files. Sound complicated? It really isn't if you take your
time and work through it one step at a time.
2.2 Conditions, Signals and States
You're probably thinking to yourself, "what do they mean by
conditions, signals and states?" Simply put, these provide
the flexibility and programming power of the SOCRATES
bulletin board system.
Signals are like "keys" assigned to a user. The command
files can check if a user has a certain signal enabled and
perform differently depending on whether they do or don't.
This is useful for setting conditions independent of a
user's privilege level. There are 256 signals available,
numbered from 0 to 255.
States are similar to signals except that they are set by
the system while a caller is on-line and are reset when the
caller logs off. These are useful for setting conditions
depending on what has happened while the user is on line,
such as only allowing one time through a bulletin or only
paging the SysOp once. There are 256 states available,
numbered from 0 to 255.
Conditions are constants, variables or formulae that
evaluate to either a logical true or false state. These can
then be applied to some of the lines in the initialization
file and most of the lines in the program file to alter the
way the SOCRATES engine deals with these command lines.
See APPENDIX 2 for a complete list of the constants and
variables used in defining conditions.
- 6 -
Socrates BBS (v1.00) Installing Socrates
2.3 The Initialization File
This is the file that tells the SOCRATES engine a little
about your system and how to communicate with your modem.
This file is a straight text file and can have any valid
file name. There is no default name but a commonly used
name is SOC-INIT.TXT (pronounced sock-in-it).
The initialization file commands include the following
groups:
Modem Settings
PORT comm port
BAUD default baud rate
MODEMINIT initialization string
MODEMHANGUP hang-up string
Logon Settings
NAMEPROMPT user name prompt string
DATAPROMPT user data prompt string
PASSWORDATTEMPTS maximum password attempts
LOGONTIME maximum time to log on
PRIVATESYSTEM no new users allowed
FORGOTPASSWORDCOMM wrong password commands
FORGOTPASSWORDMENU wrong password menu
New User Settings
NEWUSERPRIV privilege level
NEWUSERHELP help level
NEWUSERCOMM1 commands before password
NEWUSERCOMM2 commands after password
NEWUSERSCREENWIDTH screen width
NEWUSERSCREENLENGTH screen length
NEWUSERSIGNALS initial signals
NEWUSERMENU first menu displayed
Menu and Display Screen Settings
WELCOMEFLST welcome file displayed
INTROCOMM commands after logon
FIRSTMENU first menu displayed
- 7 -
Socrates BBS (v1.00) Installing Socrates
Time Limit Settings
TIMELIMIT time limits multiplier
SESSIONTIMELIMIT default time limit for
session
DAILYTIMELIMIT default time limit for
day
EXCEEDEDDAILYTLIMCOMM commands after max time
ONLINEUPLOADREFUND on-line refund multiplier
ACTIVETIMEBANKUPLOADREFUND active time bank
refund multiplier
PENDINGTIMEBANKUPLOADREFUND pending time bank
refund multiplier
DAILYTIMEBANKROLLOVER daily pending to active
timebank transfer
FidoNet Settings
ZONE zone number
NET net number
NODE node number
POINT point number
Message Area Settings
CLEARBEFOREMESSAGE clear screen before msg
CUTATSEENBY don't show SEEN-BY lines
READPRIVATE allow reading private msg
WRITEPRIVATE allow writing private msg
FORCEPRIVATE force msg to be private
FIDONET identify netmail area
ALLOWQUOTING allow user to quote
APPENDORIGIN add ORIGIN: line
ORIGINLINE ORIGIN: line string
File Area Settings
FILESLISTFILE name of file list file
FILESMULT files limits multiplier
SESSIONBYTESTHRESHOLD max session d/l bytes
DAILYBYTESTHRESHOLD max daily d/l bytes
TOTALBYTESTHRESHOLD max total d/l bytes
SESSIONFILESTHRESHOLD max session d/l files
DAILYFILESTHRESHOLD max daily d/l files
TOTALFILESTHRESHOLD max total d/l files
SESSIONBYTESRATIO max session d/l:u/l ratio
DAILYBYTESRATIO max daily d/l:u/l ratio
TOTALBYTESRATIO max total d/l:u/l ratio
SESSIONFILESRATIO max session d/l:u/l ratio
DAILYFILESRATIO max daily d/l:u/l ratio
TOTALFILESRATIO max total d/l:u/l ratio
Miscellaneous Settings
LOGFILE system log filename
INACTIVITYTIMELIMIT inactivity before logoff
STARTCHATMSG string at start of chat
ENDCHATMSG string at end of chat
- 8 -
Socrates BBS (v1.00) Installing Socrates
See APPENDIX 3 for a complete description of the command
settings and their use.
Note that all blank lines are ignored as well as anything
following a semi-colon (;) in a non-blank line. This will
allow you to insert comments in your control files.
Once the initialization file is complete, it will have to be
compiled before SOCRATES can use it. This is done by
executing the CR-INITS.EXE program which will read the
initialization file and produce the compiled files
FMULT.SOC, TLIMS.SOC and INITS.SOC which SOCRATES will use.
The CR-INITS.EXE program is executed as follows:
CR-INITS
Note that you will have to re-compile the initialization
file each time after a change is made before the change will
take effect.
2.4 Message Areas and Directories
Now that you have the initialization file completed, the
next step is to set up your message areas. First, you
should decide what areas you wish to have on your system and
whether these areas will be used as Fido areas or SOCRATES
areas. You will then need to create a sub-directory for
each area.
For our example, we will set up a general message area for
all users, a private message area for higher priority users,
and a Fido NetMail area. We would create the sub-
directories:
C:\SOCRATES\MSGAREAS\GENERAL
C:\SOCRATES\MSGAREAS\PRIVATE
C:\SOCRATES\MSGAREAS\NETMAIL
Now that we have our directories, we have to tell SOCRATES
about them. This is done in the areas definition file which
is an ordinary text file. There is no default file name for
this file but a commonly used name is SOC-AREA.TXT.
This file is quite straightforward because each line defines
a message area and only contains two entries, path to
message area and message area type, separated by spaces.
The path to the message area need not end in a trailing
backslash.
- 9 -
Socrates BBS (v1.00) Installing Socrates
The message area type entry must be either Fido or Socrates.
Remember that the Socrates areas differ from the Fido areas
in that they are subject-oriented and special index files
are maintained in the sub-directory. If the area type entry
is missing, SOCRATES will assume that the area is a Fido
area.
Each message area listed in the definition file is assigned
a number by SOCRATES, sequentially beginning with 1. This
message area number is the number used for the "a="
comparisons when setting conditions.
Note that all blank lines are ignored as well as anything
following a semi-colon (;) in a non-blank line. This will
allow you to insert comments in your control files.
Once the message area definition file is complete, it will
have to be compiled before SOCRATES can use it. This is
done by executing the CR-AREAS.EXE program which will read
the definition file and produce the compiled file AREAS.SOC
which SOCRATES will use. The CR-AREAS.EXE program is
executed as follows:
CR-AREAS
Note that you will have to re-compile the message area
definition file each time after a change is made before the
change will take effect.
2.5 File Areas and Directories
If you plan to have any areas for uploading or downloading
on your system, you will have to set these up as file areas.
First, you should decide what areas you wish to have on your
system and then you will then need to create a sub-directory
for each area.
For our example, we will set up a public file area for all
users, a private file area for higher priority users, and a
Fido Network files area. We would create the sub-
directories:
C:\SOCRATES\FILEAREA\PUBLIC
C:\SOCRATES\FILEAREA\PRIVATE
C:\SOCRATES\FILEAREA\NETFILES
Now that we have our directories, we have to tell SOCRATES
about them. This is done in the areas definition file which
is an ordinary text file. There is no default file name for
this file but a commonly used name is SOC-FILE.TXT.
- 10 -
Socrates BBS (v1.00) Installing Socrates
This file is quite straightforward because each line defines
a file area and only contains two entries, path to download
area and path to upload area, separated by spaces.
The paths to the areas need not end in trailing backslashes.
If the upload path entry is missing, SOCRATES will assume
that the upload path is the same as the download path.
Each file area listed in the definition file is assigned a
number by SOCRATES, sequentially beginning with 1. This
message area number is the number used for the "FA="
comparisons when setting conditions.
Note that all blank lines are ignored as well as anything
following a semi-colon (;) in a non-blank line. This will
allow you to insert comments in your control files.
Once the file area definition file is complete, it will have
to be compiled before SOCRATES can use it. This is done by
executing the CR-FILES.EXE program which will read the
definition file and produce the compiled file FILES.SOC
which SOCRATES will use. The CR-FILES.EXE program is
executed as follows:
CR-FILES
Note that you will have to re-compile the file area
definition file each time after a change is made before the
change will take effect.
Now that you have your file area control file compiled, you
have one more thing to do before your system's file areas
are ready. That is to build a files list file in each of
the specified download areas. The name of this file list
file is defined by the FILESLISTFILE entry in your
initialization file.
The files list file is a text file listing the files
available for download in that area. Each file is listed on
a separate line, followed by a description which will be
displayed to the user when they ask for a list of the files.
If the first character on a line is a space or an asterisk,
then the line is displayed as is. If the first character is
an at-sign (@), then the remainder of the file is not
displayed. Otherwise, all characters up to the first space
are considered a filename and the download directory is
searched for that file. If the file is found, SOCRATES will
display the filename, the file size and the remainder of the
line. If the file is not found, SOCRATES will display the
filename, a brief message that the file is unavailable and
the remainder of the line.
- 11 -
Socrates BBS (v1.00) Installing Socrates
2.6 SOCRATES Program File
This is the file where you get to let SOCRATES know the
design of your BBS and how it should operate. The program
file contains the code for all of the BBS menus, the valid
user responses and the actions that SOCRATES should take as
a result of the various responses.
In short, this is where you get to program your BBS.
The SOCRATES program file is an ordinary text file. There
is no default file name for this file but a commonly used
name is SOC-PROG.TXT.
There are four types of modules in the SOCRATES program
file. These modules are menu, response, command and
filelist. Some of the modules have "special codes"
associated with them as well as a set of commands.
See APPENDIX 4 for a complete description of the program
commands and their use. In addition, a sample program file
is included to demonstrate some of the features of the
system.
Note that all blank lines are ignored as well as anything
following a semi-colon (;) in a non-blank line. This will
allow you to insert comments in your control files.
Once the program file is complete, it will have to be
compiled before SOCRATES can use it. This is done by
executing the CR-SOC.EXE program which will read the program
file and produce the compiled files MENUINDX.SOC, MENU.SOC,
RESPINDX.SOC, RESP.SOC, COMMINDX.SOC, COMM.SOC, FLSTINDX.SOC
and FLST.SOC which SOCRATES will use. The CR-SOC.EXE
program is executed as follows:
CR-SOC
Note that you will have to re-compile the program file each
time after a change is made before the change will take
effect.
- 12 -
Socrates BBS (v1.00) Installing Socrates
2.7 Bulletins And Display Files
The other files used by SOCRATES are files which are
displayed to the user. These files can be either ASCII or
ANSI (or just about anything else) and SOCRATES can be
programmed to send the appropriate type of file depending on
the terminal type defined by the user (or by screen width,
et cetera).
These files can be defined by the initialization, such as
welcome files, or they can be defined in the program file.
Some examples of display files defined in the program file
are help screens or bulletins.
These files need not be compiled for SOCRATES to use them.
- 13 -
Socrates BBS (v1.00) Socrates Program File
3. SOCRATES PROGRAM FILE
3.1 Overview
As stated earlier, the SOCRATES program file is where you
can design the way that the SOCRATES engine will execute
your BBS. This file is comprised of a number of modules,
each module defining part of the system. Each module may be
a menu, response list, command list or file list, and is
identified by the type and an assigned name. The lines that
follow a module label form the module itself until the end
of the file or the occurrence of the next module label.
Each of the module types is described below. A complete
list of the program commands can be found in APPENDIX 4.
3.2 Menus
The menu module begins with a line like:
MENU
to indicate that the following lines define a menu. The
lines that follow make up the actual menu and are in the
format:
[/] [condition]
If the condition on the line evaluates to TRUE, the string
is displayed (without the delimiters), followed by a
carriage return and linefeed if the delimited string is
followed by a slash. If there is no slash present, the
carriage return and linefeed are suppressed. If the
condition is missing, it is assumed to be TRUE.
- 14 -
Socrates BBS (v1.00) Socrates Program File
For example, the menu:
Menu Main
'Main Menu'/ h=0
'---------'/ h=0
'A)rea Change'/ h=0
'G)oodbye'/ h=0
'Command:' h=0 + h>=2
'Command (A,G):' h=1
will display as follows if the help level, h, is set to 0:
Main Menu
---------
A)rea Change
G)oodbye
Command:
Note that the cursor will be left following the colon on the
"Command:" line.
There are two type of special codes allowed for use in
menus. These are display codes and control codes. Display
codes cause special information to be displayed while
control codes influence what is displayed further on in the
menu. If a display code is followed by a slash, the
displayed information will be followed by a carriage return
and linefeed.
Special codes are always delimited by asterisks. The
special codes supported are:
*CLEAR*
*MSGNUM*
*HIGHEST*
*SUBJECT*
*SKIP*
*FORCE*
*UNFORCE*
- 15 -
Socrates BBS (v1.00) Socrates Program File
For example, consider our original menu with some special
codes added:
Menu Main
*SKIP*
'Main Menu'/ h=0
'---------'/ h=0
'A)rea Change'/ h=0
'G)oodbye'/ h=0
*FORCE*
'Command:' h=0 + h>=2
'Command (A,G):' h=1
So, what would happen now? If commands were stacked up and
the help level was set to zero when this menu is run, it
would hit the *SKIP* statement and would not display the
menu until it reached the *FORCE* statement. It would then
display the "Command:" line, but not the "Command (A,G):"
line because its condition evaluated to FALSE.
For another example, consider that your user is in a long
menu (perhaps listing message areas) and they hit Control-C.
Okay, the rest of the displayed text is skipped, but you
want the prompt to come up no matter what, otherwise your
user would just be sitting there with the computer staring
back at him. Before the prompt, put in the *FORCE* command
and, after skipping for a bit, it will display the prompt
line anyway. Clever, huh?
3.3 Responses
The next module type is the response module which begins
with a line like:
RESP
to indicate that the following lines define a list of valid
user responses. The lines that follow make up the actual
response list and are in the format:
[mod] [*] [label] [condition]
Looks pretty complicated, huh? Again, not really if you
take it one piece at a time.
The is a valid user response enclosed
within delimiters. This must match the user input EXACTLY
unless there are modifiers present. Note that the responses
are continuous strings of characters and if you put any
spaces in the string, the response CANNOT be matched.
- 16 -
Socrates BBS (v1.00) Socrates Program File
The [mod] are optional modifiers to the user's response.
These modifiers must be enclosed in square brackets and
separated by commas. At present, there are only two
modifiers available to you, these being:
O - ONE, user's input trimmed to one character
C - CAPS, user's input converted to all caps
If there is an (optional) asterisk immediately prior to the
command, then the command is not executed if there are user
inputs stacked up.
If the user's input, after the (optional) modifiers are
applied, exactly matches the response string then the
is executed. Many of the commands require a
parameter. When a parameter is required, it must be
delimited by any of the following delimiter pairs:
() [] {} <>
See APPENDIX 4 for a complete description of the available
commands.
If the command is executed successfully, the menu [label] is
the next menu executed. If the command fails, SOCRATES will
re-execute the current menu.
The final entry on the response line is the [condition].
The response line is only processed if the condition
evaluates to TRUE.
When a response list is executed, it starts at the first
line, and works its way down, evaluating the condition on
each line. If the condition is FALSE, SOCRATES proceeds to
the next line. If the condition is TRUE, then SOCRATES
takes the user's input, changes it according to the
modifiers, then compares it to the response string. If
these are different, SOCRATES skips to the next line. If
there is a match, then the command is executed (unless
skipped with the [*] option). If the command is executed
successfully, then the next-menu [label] is executed.
Should the command fail, then the current menu is executed
again. If the entire RESP list fails to turn up a match and
no RESP line is run, then SOCRATES displays an error message
to the user and re-executes the current menu.
- 17 -
Socrates BBS (v1.00) Socrates Program File
For example, a response module may look like:
'A' [o,c] null Areas
'G' [o,c] logoff
'SECRETS' [c] file(secrets.txt) p>=100
'oop' commlist(orangutan) s25
In the above example, anything starting with an "a" or a "g"
in either upper or lower case will match; "SECRETS" in any
combination of upper and lower case will match; and "oop" in
lower case only will match.
Note that order in a response file is very important because
SOCRATES will execute the first response line that matches.
For example, in the response module:
'BEEP' [c] page
'B' [o,c] null bulletins
'BEEP' MUST come first. If the 'B' line was first, then
when the user typed BEEP, SOCRATES would match the 'B'
because "beep" would be capitalized and trimmed to one
character, thus becoming 'B'.
There are two special codes which are available to this
module. These both allow user input which is applied to
other commands. These codes, which are delimited with
asterisks, are:
*@* accept any text as user input
*#* accept a number as user input
See APPENDIX 4 for complete information and examples of the
proper use of the response module special codes.
3.4 Commands
The command module is simply a collection of valid commands
with execution conditions (similar to the way commands are
processed in the response module) which can be referenced by
a single "COMMLIST" command. This allows you to develop
your own command subroutine functions. The command module
begins with the line:
COMM
to indicate that the following lines define a list of
commands. The lines that follow make up the actual response
list and are in the format:
[(parameter)] [condition]
- 18 -
Socrates BBS (v1.00) Socrates Program File
There are three special codes which are available to this
module. These all allow you to end further execution of the
command list under certain conditions. These codes, which
are delimited with asterisks, are:
*FAILBREAK* end as failed command if previous
command failed.
*FAILSUCCEED* end as successful command if previous
command failed.
*SUCCESSBREAK* end as successful command if previous
command was successful.
The commands available for use in both the response module
and the command module are grouped as follows:
General Commands
NULL does nothing
LOGOFF display filelist and exit
FILE display file
FILELIST execute a file list
COMMLIST execute command list
VERSION display Socrates version
PAGE call for SysOp
USERLIST display user list
INFO display user stats
SHELL shell specified command
EXIT exit with errorlevel
WRITE display string
WRITELN display string with CRLF
LASTTIMECALLED display last time called
TIMESCALLED display # times called
NUMOFCALLERS display # of callers
QUOTE display from quote file
LINETOFILE write user data to file
NAMETOFILE write user name to file
TIMETOFILE write timestamp to file
- 19 -
Socrates BBS (v1.00) Socrates Program File
Change Commands
SHOWCHG display user's data
SHOWNAME display user name
SHOWDATA display user data
SHOWPSWD display user password
SHOWWIDTH display user scrn width
SHOWLENGTH display user scrn length
SHOWMORE display user MORE status
SHOWHELP display user help level
SHOWTERM display user term type
CHGNAME change user name
CHGDATA change user data
CHGPSWD change user password
CHGWIDTH change user scrn width
CHGLENGTH change user scrn length
CHGMORE change user MORE status
CHGHELP change user help level
CHGTERM change user term type
Generic Message Commands
AREA change message area
ABORT quit (don't save pointer)
SAVE quit (save pointer)
TOGLPRIV toggle private flag
KILL delete message
Fido Type Message Commands
NEXT go to next message
PREV go to previous message
MSGNUM go to specified message
LINKUP go to SEE-ALSO message
LINKDOWN go to REPLY-TO message
SHOW re-show current message
HEADERS display message headers
ENTER write a message
RESPOND reply to current message
SHOWTOFILE write message to file
SHOWTOUSERFILE write message to file
(Note that Fido-type message area commands will do
nothing in a Socrates-type message area.)
- 20 -
Socrates BBS (v1.00) Socrates Program File
Message Edit Commands
EDITFIDONET edit FidoNet TO: address
EDITPRIVATE toggle Private flag
EDITATTACH toggle FileAttach flag
EDITKILLSENT toggle KillSent flag
EDITCRASH toggle Crash flag
EDITSAVE save message
EDITABORT abort message
EDITLIST list message so far
EDITINSERT insert text after line
EDITCONT add text to end of msg
EDITDELETEFROM mark first line to delete
EDITDELETETO mark last line and delete
EDITEDIT edit specified line
EDITCHGTO change the TO field
EDITCHGSUBJ change the SUBJECT field
EDITOUTSIDE invoke outside editor
(Note that Edit functions will do nothing unless
an ENTER, RESPOND, START, or ADD has been
executed. The Edit functions will quit working
after an EDITSAVE or EDITABORT has been executed.)
Socrates Type Message Commands
NEW go to next reply (new)
MAIN go to next subject (new)
AHEAD1 go to next reply
REVERSE1 go to previous reply
AHEAD advance replies
REVERSE back up replies
STAY display current message
FORWARD1 go to next subject
BACK1 go to previous subject
FORWARD advance subjects
BACK back up subjects
GOSUBJ go to specified subject
SUBJLIST display list of subjects
START start a new subject
ADD reply to current subject
STAYTOFILE write message to file
STAYTOUSERFILE write message to file
(Note that Socrates-type message area commands
will do nothing in a Fido-type message area.)
File Area Commands
FILEAREA change file area
LISTFILES list files in FILELIST
DOWNLOAD shell with d/l command
UPLOAD shell with u/l command
- 21 -
Socrates BBS (v1.00) Socrates Program File
Time Bank Commands
UNBANK use bank time on-line
UNBANKALL use all bank time on-line
SHOWACTIVETIMEBANK display time in active
time bank
SHOWPENDINGTIMEBANK display time in pending
time bank
Signal Commands
SIGNALOFF turn off signal
SIGNALON turn on signal
State Commands
STATEOFF turn off state
STATEON turn on state
See APPENDIX 4 for a complete description and examples of
the proper use of the commands available for use in the
response and command modules.
3.5 File Lists
The final module type is the file list module. This module
begins with the line:
FLST
to indicate that the following lines define a list of files
to be displayed. The lines that follow make up the actual
files list and are in the format:
[condition]
The file is a file to be displayed. As much path as
necessary may be included.
When a File List is executed, each line is evaluated in
turn. If the condition evaluates to be TRUE, then the file
is displayed and processing goes on to the next line. If
the condition evaluates to FALSE, then processing just skips
to the next line.
There are no special codes which are available to this
module.
- 22 -
Socrates BBS (v1.00) Socrates Program File
The concept is really pretty simple when illustrated with an
example like:
RESP bulletins
'B' [o,c] filelist(bulletins) main
FLST bulletins
lowpriv.bul p<10
highpriv.bul p>9
3.6 Shells and Parameters
When using the SHELL, EDITOUTSIDE, DOWNLOAD, and UPLOAD
commands, you are essentially executing another program.
When executing another program, you will often need to send
it command line parameters. Some things can be hard-coded,
but many of the parameters are situational. For instance,
in the DOWNLOAD, you shell out to an external file-transfer
driver, and you will probably need to specify the Download
path and possibly the user input (the filename). To pass
data into the SHELL, you include parameters in the command
data.
A parameter is a percent sign (%) followed by a key letter.
When SOCRATES executes the command, it converts the
parameter into the actual data it represents.
The parameters are:
%1 - user's input
%A - Port number (COMx:)
%B - Baud rate
%D - Download path (no trailing backslash)
%U - Upload path (no trailing backslash)
%% - a percent sign (%)
- 23 -
Socrates BBS (v1.00) Socrates Program File
3.7 Putting It All Together
Having gotten this far, you should now have at least a
"bare-bones" system, ready to run. Your directory structure
(following our example) should look something like this:
C:\SOCRATES\
|
|
|--MSGAREAS\
| |
| |--GENERAL\
| |
| |--PRIVATE\
| |
| |--NETMAIL\
|
|
|--FILEAREA\
|
|--PUBLIC\
|
|--PRIVATE\
|
|--NETFILES\
The files contained in the sub-directories are as follows:
---------------------------------------------
| C:\SOCRATES\ |
| |
| RELOGIN.EXE SOC-MSG.EXE SOC-SCAN.EXE |
| SOC-USER.EXE SOCRATES.EXE CR-AREAS.EXE |
| CR-FILES.EXE CR-INITS.EXE CR-SOC.EXE |
| AREAS.SOC COMM.SOC COMMINDX.SOC |
| FILES.SOC FLST.SOC FLSTINDX.SOC |
| FMULT.SOC INITS.SOC MENU.SOC |
| MENUINDX.SOC QUOTETRK.SOC RESP.SOC |
| RESPINDX.SOC TLIMS.SOC USERS1.SOC |
| USERS2.SOC |
---------------------------------------------
---------------------------------------------
| C:\SOCRATES\MSGAREAS\PUBLIC\ |
| |
| LINK.SOC SUBJ.SOC 1.MSG |
| 2.MSG 3.MSG 4.MSG |
| 5.MSG 6.MSG 7.MSG |
| . |
| . |
| . |
---------------------------------------------
- 24 -
Socrates BBS (v1.00) Socrates Program File
---------------------------------------------
| C:\SOCRATES\MSGAREAS\PRIVATE\ |
| |
| LINK.SOC SUBJ.SOC 1.MSG |
| 2.MSG 3.MSG 4.MSG |
| 5.MSG 6.MSG 7.MSG |
| . |
| . |
| . |
---------------------------------------------
---------------------------------------------
| C:\SOCRATES\MSGAREAS\NETMAIL\ |
| |
| 1.MSG 2.MSG 3.MSG |
| 4.MSG 5.MSG 6.MSG |
| . |
| . |
| . |
---------------------------------------------
---------------------------------------------
| C:\SOCRATES\FILEAREA\PUBLIC\ |
| |
| FILES.LST and all files for download |
---------------------------------------------
---------------------------------------------
| C:\SOCRATES\FILEAREA\PRIVATE\ |
| |
| FILES.LST and all files for download |
---------------------------------------------
---------------------------------------------
| C:\SOCRATES\FILEAREA\NETFILES\ |
| |
| FILES.LST and all files for download |
---------------------------------------------
An example of an initialization file and a working program
file are included in the SOCRATES archive.
- 25 -
Socrates BBS (v1.00) Running Socrates
4. RUNNING SOCRATES
4.1 Command Line Parameters
There are four command line switches / parameters that can
be used with the SOCRATES program. These are:
/L local mode
####/B run with #### baud
/1 run once then exit
#/O set time limit override. if number is
less then the user's normal time limit,
use it.
These switches will enable you to run SOCRATES locally (for
testing or messaging), as a stand-alone BBS or under a
"front end" program (like BinkleyTerm). With the exception
of operating in "local" mode, you will likely want to
operate SOCRATES from within a batch file.
In all modes except the local mode, SOCRATES will require
that a FOSSIL (Fido-Opus-Seadog Standard Interface Layer)
program be loaded. This will handle all communications
between SOCRATES and the communications port and modem.
Although SOCRATES has been tested with a number of FOSSIL
programs, one of the most commonly used is X.00 by Ray
Gwinn. Please refer to the documentation that come with
whichever FOSSIL that you choose to use for instructions on
loading and proper use.
4.2 User's Special Keys
While SOCRATES is running, the user can interrupt almost any
display by entering either a Control-C or a Control-K. When
the user enters a Control-S, the output is paused until the
user types another key.
When at any menu prompt, the user can stack future commands
simply by separating them with spaces. For example, if the
user is at the Main Menu, and they want to go into message
area 1 and read message #10, all they have to do is type 'M
A 1 10'.
- 26 -
Socrates BBS (v1.00) Running Socrates
4.3 Running Stand-Alone
This is the operating mode where SOCRATES is the only
program running. As such, it must handle all the duties of
the BBS including answering the phone. In this mode, it is
very important that the modem initialization and hang-up
strings are set up properly.
Although this method of operation can be started by simply
changing to the SOCRATES sub-directory and entering the
command:
SOCRATES
most people will opt to run the program from within a batch
file so as to use the exit capabilities to perform other
functions. This can be done by trapping the errorlevel that
SOCRATES exits with and branching accordingly. An example
of a batch file to execute the SOCRATES program follows:
echo off
cls
c:
cd\socrates
:top
socrates
if errorlevel 2 goto games
goto end
:games
[do whatever external games things you want]
c:
cd\socrates
relogin
goto top
:end
- 27 -
Socrates BBS (v1.00) Running Socrates
4.4 Running With A Front End
The other way of running SOCRATES is to have the program
called by another program, such as a mailer like
BinkleyTerm. The calling program looks after answering the
phone and establishing the connection with the caller. It
then transfers control to SOCRATES (usually by exiting with
an errorlevel).
When SOCRATES is run this way, it is started with the ####/B
command line switch to indicate that there is a caller
already on-line at #### baud, and the /1 switch to exit
SOCRATES after the caller logs off and return control back
to the calling program. You can also add the optional #/O
switch to override the user's available time, because most
mailers will provide the time to the next scheduled event
when exiting to a BBS.
This "front end" operating method will be necessary if you
intend to exchange electronic mail through FidoNet.
- 28 -
Socrates BBS (v1.00) Running Socrates
An example of a batch file to operate this style of BBS is
as follows:
echo off
cls
:bink-top
c:
cd\binkley
bt
if errorlevel 102 goto soc-mail
if errorlevel 101 goto fidomail
if errorlevel 100 goto maint
if errorlevel 24 goto b2400
if errorlevel 12 goto b1200
if errorlevel 3 goto b300
goto end
:b2400
set baud=2400
goto soc-top
:b1200
set baud=1200
goto soc-top
:b300
set baud=300
:soc-top
c:
cd\socrates
socrates %baud%/B /1
if errorlevel 2 goto games
soc-scan
goto bink-top
:games
[do whatever external games things you want]
c:
cd\socrates
relogin
goto soc-top
:soc-mail
cd\socrates
soc-msg
soc-scan
goto bink-top
:fidomail
[fidonet message packing]
goto bink-top
:maint
[do all your regular maintenance]
goto bink-top
:end
- 29 -
Socrates BBS (v1.00) Running Socrates
4.5 Re-Entering SOCRATES
By now, you will already have the idea that SOCRATES can be
re-entered by the user without having to go through the
whole log on sequence again. This will allow your callers
to exit to external programs (games and such) and return to
the BBS almost transparently.
When the EXIT command is used, SOCRATES will create a file
called EXITUSER.SOC. This file contains information about
the current caller including name, baud rate and time
remaining.
When the RELOGIN program is executed, the EXITUSER.SOC file
is renamed to RELOGIN.SOC, which is used to get the user's
name, baud rate and time remaining the next time SOCRATES is
run. The user is taken directly to the main menu, by-
passing all of the log-in steps.
Do not use the RELOGIN.EXE program unless Relogin to the BBS
is actually intended.
- 30 -
Socrates BBS (v1.00) The System Operator's Role
5. THE SYSTEM OPERATOR'S ROLE
5.1 SysOp Commands
The SysOp has certain commands available to them while
SOCRATES is in operation. The commands that are available
while a user is on-line are:
/ or ? Display the name of the current user and the
time that they have left. This will also
display a list of Sysop keys.
C Enter chat mode. The SysOp can exit this
mode by entering a Ctrl-Z.
Ctrl-A Enter simultaneous keyboard mode. Any
keystrokes entered by the SysOp will be
interpreted as input by the user. The SysOp
can exit this mode by entering a Ctrl-Z.
This mode is useful for leading a new user
through the system.
Z Reset the user's time limit.
Alt-X Log the current user off of the system
immediately.
When SOCRATES is waiting for a caller, the commands
available to the SysOp are:
/ or ? Display the list of Sysop keys.
L Enter local session mode.
Alt-X Exit the program and return to DOS.
Ctrl-C Exit the program and return to DOS.
- 31 -
Socrates BBS (v1.00) The System Operator's Role
5.2 User File Maintenance
The heart of any good BBS is it's users and most SysOps
consider their user files to be among the most important
files on their systems (even to the point of backing this
list up to a floppy disk EVERY day).
SOCRATES does much of the user file maintenance itself, such
as adding new entries as required. Even so, there are still
times that the SysOp must manipulate the data in this list
(whether to correct spelling, adjust a user's privilege, or
delete a user entirely).
Included in the SOCRATES package is a program called
SOC-USER.EXE which allows the SysOp to modify the user
database at will. The program is extremely easy to operate.
You simply change to the directory where your USERS1.SOC and
USERS2.SOC files reside and enter "SOC-USER".
When activated, the program will display the data for the
first user in your user list. From this screen, you will be
able to modify any of the data for this user, or select a
different user record to work on.
If you enter a question mark, a help screen will be
displayed as follows:
SOC-USERS - Socrates User File Editor
Socrates BBS System v1.00 -- Copyright 1990, Mikronetics
Commands:
Movement Editing Deleting Adding
> Next N Name K Kill + New Entry
< Prev D Data U Unkill
F First P Password A Kill by Age
E End V Privilege ! Purge
/ Search H Help
M More ------------
T Terminal
W Width 1 Active TimeBank
L Length 2 Pending TimeBank
S Signals B Approve TimeBank time
Q Quit
The majority of the commands are straightforward and need no
explanation. The commands that may require some
clarification are the Deleting commands.
- 32 -
Socrates BBS (v1.00) The System Operator's Role
The main thing to remember is that when a record is killed,
either using the "Kill" or the "Kill by Age" command, the
record is only marked for deletion and not actually removed.
Because of this, you have the option of changing your mind
and retrieving the record by using the "Unkill" command.
Once your mind is made up and you want to remove the marked
records from the database, you will use the "Purge" command.
This will perform the actual record removal and deletion.
5.3 Message Area Maintenance
The program SOC-MSG.EXE is included in the SOCRATES package
and is used to maintain the message areas. Obviously, you
don't want to let the messages just continue to pile up
endlessly, so they will need to be trimmed down occasionally
(unless you have a LOT more drive space than the rest of
us).
To use the program, simply enter the following:
SOC-MSG
The control file is a straight text file containing the
commands for maintaining the message areas. There are 3
commands which are used to identify which areas are to be
maintained and how the maintenance should be done. The
commands are:
Area # Select a message area as active. All
operations will be performed on this
area until another AREA command is
executed or until the end of file is
reached.
Delete m n Messages are deleted in such a way that
the first "m" messages are ignored, then
the following messages are deleted until
there are "m+n" messages remaining.
(one often may want to keep the first
few messages to retain echomail high-
water-marks or message area rules.)
Renum Messages are renumbered so that their
numbers are contiguous.
- 33 -
Socrates BBS (v1.00) The System Operator's Role
An example of a SOC-MSG control file is as follows:
;
; Sample SOC-MSG.CTL Control File
;
Area 1
Delete 1 49
Renum
;
Area 84
Delete 0 200
Renum
;
; End of File
;
It should also be noted that the SOC-MSG program will update
the message read pointers. These pointers are stored in
files in each message area. The files are named
LMRxxxx.SOC, where the xxxx is a four character hexadecimal
number keyed to a user through the USERSx.SOC files. There
is one LMRxxxx.SOC file for each user that accesses the
message area and these files should not be deleted.
- 34 -
Socrates BBS (v1.00) The System Operator's Role
5.4 Socrates Type Message Linking
The final utility program included in the SOCRATES package
is a program called SOC-SCAN.EXE. This program is used to
prepare a SOCRATES Type message area for reading by creating
all of the subject and link information files.
If all messages entered the system through the BBS, then the
Socrates Message area files would maintain themselves after
being initialized. Fortunately or not, the truth is that
most of us are also using echomail. This mail comes from an
external source which is completely unaware of the Socrates
environment. So how does SOCRATES know how these message
fit into the scheme of things? It won't unless you run
SOC-SCAN.
After importing messages from an external source, SOC-SCAN
should be executed. It will go through all SOCRATES message
areas and either append new information onto the old subject
and link files, or completely re-scan the area if necessary.
SOC-SCAN should also be executed after making any kind of
modifications to a message area. Specifically, after a
SOCRATES message area is processed with SOC-MSG, you must
run SOC-SCAN.
NOTE: Whenever you start a new Socrates message area or
convert a Fido-type to a Socrates-type, you must
run SOC-SCAN to initialize the Subject and Link
files.
- 35 -
Socrates BBS (v1.00) APPENDIX 1 - Use of Delimiters
APPENDIX 1 - Use of Delimiters
Some areas of this manual refer to "delimited strings" and
it may not be clear to everyone just what is meant by that.
Delimited strings are nothing more than strings of
characters that are surrounded by delimiters, or characters
which indicate the beginning and end of the string.
Delimiters within SOCRATES can be any non-space character.
The delimited string then begins with any character, and all
characters between this first character and the next
occurrence of that same character comprise the text of the
string. Most commonly used delimiters are the double quotes
("), such as:
"this is the string enclosed in double quotes."
This can pose a problem if the string that you want contains
a double quote within it. In the case of the string entry:
"Demonstrates the problem with using "double" quotes."
The actual string used would be:
Demonstrates the problem with using
and the remainder of the line would be ignored as garbage.
However, if the delimiter used were a single quote, the
delimited string would look like:
'This demonstrates how "double quotes" can be used.'
and the string used by the program would look like:
This demonstrates how "double quotes" can be used.
Remember, the use of different delimiters can overcome a
number of problems that may otherwise occur if only a single
delimiter is allowed. Here are some further examples of
valid delimited strings:
'this is the text inside a single quote'
"inside double quotes"
"the hamster said, 'No thank you, sir.'"
-the delimiter can be anything-
Heven letters and stuffH
%completely arbitrary%
/got it?/
Note that the asterisk is used as a delimiter to indicate a
"special code" in the SOCRATES program file and should not
be used as a regular string delimiter.
- 36 -
Socrates BBS (v1.00) APPENDIX 2 - Evaluating Conditions
APPENDIX 2 - Evaluating Conditions
Conditions are constants, variables or formulae that
evaluate to either a logical true or false state. These can
then be applied to some of the lines in the initialization
file and most of the lines in the menus file to alter the
way the SOCRATES engine deals with these command lines.
Logical constants are defined as follows:
F False
T True
Logical variables used by SOCRATES are:
S Returns the True or False status of the
specified signal.
Z Returns the True or False status of the
specified state.
L True if SOCRATES is running in "local"
mode.
SBT True if the user has exceeded their
download session byte threshold. This
is the maximum number of bytes that a
user may download in a single session.
DBT True if the user has exceeded their
download daily byte threshold. This is
the maximum number of bytes that a user
may download in a single day.
TBT True if the user has exceeded their
download all-time total byte threshold.
This is the maximum number of bytes that
a user may download from the BBS.
SFT True if the user has exceeded their
download session file threshold. This
is the maximum number of files that a
user may download in a single session.
DFT True if the user has exceeded their
download daily file threshold. This is
the maximum number of files that a user
may download in a single day.
TFT True if the user has exceeded their
download all-time total file threshold.
This is the maximum number of files that
a user may download from the BBS.
- 37 -
Socrates BBS (v1.00) APPENDIX 2 - Evaluating Conditions
SBR True if the user's current session ratio
of downloaded / uploaded bytes exceeds
the limit set in the initialization
file.
DBR True if the user's current daily ratio
of downloaded / uploaded bytes exceeds
the limit set in the initialization
file.
TBR True if the user's current all-time
total ratio of session downloaded /
uploaded bytes exceeds the limit set in
the initialization file.
SFR True if the user's current session ratio
of downloaded / uploaded files exceeds
the limit set in the initialization
file.
DFR True if the user's current daily ratio
of downloaded / uploaded files exceeds
the limit set in the initialization
file.
TFR True if the user's current all-time
total ratio of session downloaded /
uploaded files exceeds the limit set in
the initialization file.
Other variables that return a numerical value which can be
used in a comparison are:
A Current message area.
FA Current file area.
D Current day of the week (0=Sun, 1=Mon,
et cetera)
H Current help level.
M Minutes portion of the current time of
day.
HR Hours portion of the current time of day
(in 24 hour clock format).
P Current user's privilege level.
TM Current user's terminal type. At
present only types 0 (dumb terminal) and
1 (ANSI terminal) have been defined.
Other types can be added as required.
- 38 -
Socrates BBS (v1.00) APPENDIX 2 - Evaluating Conditions
Operators which are used for evaluating conditional
expressions are as follows:
& Logical AND
+ Logical OR
- or ~ Logical NOT
< "less than" comparitor
> "greater than" comparitor
<= or =< "less than or equal to" comparitor
>= or => "greater than or equal to" comparitor
= "equal to" comparitor
() Parentheses are used to set precedence
for evaluating expressions
Here are some examples of valid conditions:
a=2 True for message area number 2.
SBT & p<20 True if session byte download limit has
been exceeded and the user's privilege
is less than 20.
a<3 + p=255 Message area number is less than 3 or
the user's privilege is equal to 255.
- p=255 User's privilege is not equal to 255
- 39 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
APPENDIX 3 - Initialization File Settings
Following are the settings available for use in the
initialization file. The settings are listed in
alphabetical order and give a description of the setting,
show the default values, proper syntax and an example line.
-----------------------------------------------------------
ACTIVETIMEBANKUPLOADREFUND
Multiplier to apply to the time spent uploading which is
then refunded to the user's active timebank. Note that the
number used must be divided by 20 to yield the true
multiplier (ie. number 20 is actually a multiplier of 1).
Default: 20
Valid inputs: 0 to 65535
Example:
ACTIVETIMEBANKUPLOADREFUND 60
-----------------------------------------------------------
ALLOWQUOTING
Setting to determine whether message quoting is supported
when replying to a message.
Default: T
Valid inputs: any condition
Example:
ALLOWQUOTING (a=2 + a>7) & p=>15
-----------------------------------------------------------
- 40 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
APPENDORIGIN
Setting to determine whether a FidoNet EchoMail type
"Origin:" line is appended to messages entered.
Default: F
Valid inputs: any condition
Example:
APPENDORIGIN (a>3 & a<=6) + a=14
-----------------------------------------------------------
BAUD
The baud rate that your modem will be initialized at.
Default: 2400
Valid inputs: powers of 2 x 300 (ie. 300, 600, 1200, etc.)
Example:
BAUD 9600
-----------------------------------------------------------
CLEARBEFOREMESSAGE
Setting to determine whether the user's screen is cleared
before displaying a message. This entry takes no argument
and is disabled unless the entry appears in the
initialization file.
Default: none
Valid inputs: n/a
Example:
CLEARBEFOREMESSAGE
-----------------------------------------------------------
- 41 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
CUTATSEENBY
Setting to determine whether SEEN-BY lines (from FidoNet
EchoMail) are displayed. This entry takes no argument and
is disabled unless the entry appears in the initialization
file.
Default: none
Valid inputs: n/a
Example:
CUTATSEENBY
-----------------------------------------------------------
DAILYBYTESRATIO
Ratio of daily downloaded / uploaded bytes that users should
not exceed.
Default: 1024
Valid inputs: positive integer
Example:
DAILYBYTESRATIO 15
-----------------------------------------------------------
DAILYBYTESTHRESHOLD
Default daily limit of bytes downloaded which may be
modified by multipliers.
Default: 524288
Valid inputs: positive integer
Example:
DAILYBYTESTHRESHOLD 2000000
-----------------------------------------------------------
- 42 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
DAILYFILESRATIO
Default daily ratio of downloaded / uploaded files that
users should not exceed.
Default: 1024
Valid inputs: positive integer
Example:
DAILYFILESRATIO 10
-----------------------------------------------------------
DAILYFILESTHRESHOLD
Default daily limit of files downloaded which may be
modified by multipliers.
Default: 32
Valid inputs: positive integer
Example:
DAILYFILESTHRESHOLD 20
-----------------------------------------------------------
DAILYTIMEBANKROLLOVER
Setting to determine whether the user's time in the pending
timebank is rolled over into the active timebank at the end
of the day. This entry takes no argument and is disabled
unless the entry appears in the initialization file.
Default: none
Valid inputs: n/a
Example:
DAILYTIMEBANKROLLOVER
-----------------------------------------------------------
- 43 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
DAILYTIMELIMIT
Default daily time limit in minutes. This may be modified
by multipliers.
Default: 240
Valid inputs: 0 to 65535
Example:
DAILYTIMELIMIT 90
-----------------------------------------------------------
DATAPROMPT
String sent to the caller asking for additional user data.
This data need not be the typical City and State
information, but can be anything at all.
Default: "Where are you calling from?"
Valid inputs: delimited string less than 128 characters
Example:
DATAPROMPT: "What's yer favorite color, kid?"
-----------------------------------------------------------
ENDCHATMSG
String sent to the user when leaving chat mode.
Default: "--------- End Chat with Sysop ----------"
Valid inputs: delimited string less than 128 characters
Example:
ENDCHATMSG "Done chatting. Returning you to SOCRATES."
-----------------------------------------------------------
- 44 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
EXCEEDEDDAILYTLIMCOMM
Command list executed when a user has exceeded their daily
time limit.
Default: DAILYTIMEOUT
Valid inputs: any command list label
Example:
EXCEEDEDDAILYTLIMCOMM overtime
-----------------------------------------------------------
FIDONET
Setting to determine whether FidoNet address information
should be included when entering a message. See APPENDIX 7
for more information on the FidoNet electronic mail network.
Default: F
Valid inputs: any condition
Example:
FIDONET a=6
-----------------------------------------------------------
FILESLISTFILE
File used for listing the files in a "files"area.
Default: "FILES.LST"
Valid inputs: any delimited valid file name
Example:
FILESLISTFILE "files.bbs"
-----------------------------------------------------------
- 45 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
FILESMULT []
Multiplier to apply to the default download file and byte
limits. There can be more than one FILESMULT entry with
different conditions attached. These are evaluated in order
and the last one that applies is the multiplier that is
used. Note that the number used must be divided by 20 to
yield the true multiplier (ie. number 20 is actually a
multiplier of 1).
Default: 20
Valid inputs: positive integer
Example:
FILESMULT 80
-----------------------------------------------------------
FIRSTMENU
First menu presented to a caller after a "normal" log on.
Default: MAIN
Valid inputs: any menu label
Example:
FIRSTMENU top
-----------------------------------------------------------
FORCEPRIVATE
Setting to determine whether all messages entered by the
users are marked as "private".
Default: F
Valid inputs: any condition
Example:
FORCEPRIVATE a=18 & p<199
-----------------------------------------------------------
- 46 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
FORGOTPASSWORDCOMM
Command list executed after a caller has failed the
specified number of times to enter the correct password and
before they are presented with a menu.
Default: FORGOT_PASSWORD
Valid inputs: any command list label
Example:
FORGOTPASSWORDCOMM areyouahacker
-----------------------------------------------------------
FORGOTPASSWORDMENU
The menu presented to a caller after they have failed the
specified number of times to enter the correct password.
Default: FORGOT_PASSWORD
Valid inputs: any command list label
Example:
FORGOTPASSWORDCOMM cantrememberit
-----------------------------------------------------------
INACTIVITYTIMELIMIT
Number of minutes of inactivity before a user gets logged
off.
Default: 5
Valid inputs: 0 to 65535
Example:
INACTIVITYTIMELIMIT 2
-----------------------------------------------------------
- 47 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
INTROCOMM
Command list executed after a successful log on.
Default: INTRO
Valid inputs: any command list label
Example:
INTROCOMM hitherebuddy
-----------------------------------------------------------
LOGFILE
Name of the file used to store the user activity log.
Default: "SOCRATES.LOG"
Valid inputs: any delimited valid file name
Example:
LOGFILE "c:\socrates\logfiles\my-bbs.log"
-----------------------------------------------------------
LOGONTIME
Number of minutes a caller has to successfully log on.
Default: 4
Valid inputs: 0 to 65535
Example:
LOGONTIME 22
-----------------------------------------------------------
- 48 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
MODEMHANGUP
String sent to the modem to hang up after a caller has
disconnected.
Default: "~~+++~~ATH|"
Valid inputs: delimited string less than 128 characters
Example:
MODEMHANGUP "|~~ATH0|~~"
Note that the following character translation is done:
| becomes a chr(13) [ENTER]
^ translates the NEXT character into a control
character (^A sends a Control-A)
~ pauses for one second
' pauses for one tenth of a second
-----------------------------------------------------------
MODEMINIT
Initialization string sent to the modem when it is being
reset.
Default: "|ATZ|~~ATE0M0V1X4S0=1|"
Valid inputs: delimited string less than 128 characters
Example:
MODEMINIT "ATE1H0M0V1X7&M4&K1&B1&S1&H3S15=89S0=0~|"
Note that the following character translation is done:
| becomes a chr(13) [ENTER]
^ translates the NEXT character into a control
character (^A sends a Control-A)
~ pauses for one second
' pauses for one tenth of a second
-----------------------------------------------------------
- 49 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
NAMEPROMPT
String sent to the caller asking for their name.
Default: "Your Full Name:"
Valid inputs: delimited string less than 128 characters
Example:
NAMEPROMPT "Y'all better gimme yer real name now!"
-----------------------------------------------------------
NET
The FidoNet Net that your system is in. See APPENDIX 7 for
more information on the FidoNet electronic mail network.
Default: -1
Valid inputs: -32768 to 32767
Example:
NET 150
-----------------------------------------------------------
NEWUSERCOMM1
Command list executed before a new user is asked to provide
a password.
Default: NEW_USER1
Valid inputs: any command list label
Example:
NEWUSERCOMM1 freshmeat
-----------------------------------------------------------
- 50 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
NEWUSERCOMM2
Command list executed after a new user is asked to provide a
password and before they are presented with a menu.
Default: NEW_USER2
Valid inputs: any command list label
Example:
NEWUSERCOMM2 cherryuser
-----------------------------------------------------------
NEWUSERHELP
The help level that new users to the system are assigned
when they log on for the first time.
Default: 0
Valid inputs: 0 to 255
Example:
NEWUSERHELP 5
-----------------------------------------------------------
NEWUSERMENU
The first menu presented to a new user.
Default: NEW_USER
Valid inputs: any menu label
Example:
NEWUSERMENU firstevermenu
-----------------------------------------------------------
- 51 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
NEWUSERPRIV
The privilege level that new users to the system are
assigned when they log on for the first time.
Default: 5
Valid inputs: 0 to 255
Example:
NEWUSERPRIV 27
-----------------------------------------------------------
NEWUSERSCREENLENGTH
The screen length that new users to the system are assigned
when they log on for the first time.
Default: 24
Valid inputs: 0 to 65535
Example:
NEWUSERSCREENLENGTH 43
-----------------------------------------------------------
NEWUSERSCREENWIDTH
The screen width that new users to the system are assigned
when they log on for the first time.
Default: 80
Valid inputs: 0 to 65535
Example:
NEWUSERSCREENWIDTH 132
-----------------------------------------------------------
- 52 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
NEWUSERSIGNALS [ ...]
The signals that new users to the system are assigned when
they log on for the first time.
Default: none
Valid inputs: any list of numbers from 0 to 255
Example:
NEWUSERSIGNALS 1 2 199 255
-----------------------------------------------------------
NODE
The FidoNet Node number of your system. See APPENDIX 7 for
more information on the FidoNet electronic mail network.
Default: -1
Valid inputs: -32768 to 32767
Example:
NODE 199
-----------------------------------------------------------
ONLINEUPLOADREFUND
Multiplier to apply to the time spent uploading which is
then refunded to the user's current session time limit.
Note that the number used must be divided by 20 to yield the
true multiplier (ie. number 20 is actually a multiplier of
1).
Default: 20
Valid inputs: 0 to 65535
Example:
ONLINEUPLOADREFUND 10
-----------------------------------------------------------
- 53 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
ORIGINLINE
String appended to messages entered when APPENDORIGIN is
selected.
Default: ""
Valid inputs: delimited string less than 128 characters
Example:
ORIGINLINE "The Best Darn BBS Around!"
-----------------------------------------------------------
PASSWORDATTEMPTS
Number of tries that caller has to enter the correct
password before the program goes into a "forgotten password"
mode.
Default: 3
Valid inputs: 0 to 65535
Example:
PASSWORDATTEMPTS 146 ;EXTREMELY patient SysOp
-----------------------------------------------------------
PENDINGTIMEBANKUPLOADREFUND
Multiplier to apply to the time spent uploading which is
then refunded to the user's pending timebank. Note that the
number used must be divided by 20 to yield the true
multiplier (ie. number 20 is actually a multiplier of 1).
Default: 0
Valid inputs: 0 to 65535
Example:
PENDINGTIMEBANKUPLOADREFUND 10
-----------------------------------------------------------
- 54 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
POINT
The point address of your system under a FidoNet node. See
APPENDIX 7 for more information on the FidoNet electronic
mail network.
Default: 0
Valid inputs: 0 to 65535
Example:
POINT 14
-----------------------------------------------------------
PORT
The communications port that your modem is connected to.
Note that if an uninstalled comm port is specified, SOCRATES
may hang or crash.
Default: 1
Valid inputs: 0 to 65535
Example:
PORT 2
-----------------------------------------------------------
PRIVATESYSTEM
Setting to determine whether new users are allowed onto the
system. This entry takes no argument and is disabled unless
the entry appears in the initialization file.
Default: none
Valid inputs: n/a
Example:
PRIVATESYSTEM
-----------------------------------------------------------
- 55 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
READPRIVATE
Setting to determine whether the users can read messages
marked as "private".
Default: F
Valid inputs: any condition
Example:
READPRIVATE -a=18 & p>199
-----------------------------------------------------------
SESSIONBYTESRATIO
Ratio of session downloaded / uploaded bytes that users
should not exceed.
Default: 1024
Valid inputs: positive integer
Example:
SESSIONBYTESRATIO 512
-----------------------------------------------------------
SESSIONBYTESTHRESHOLD
Default session limit of bytes downloaded which may be
modified by multipliers.
Default: 131072
Valid inputs: positive integer
Example:
SESSIONBYTESTHRESHOLD 2000000
-----------------------------------------------------------
- 56 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
SESSIONFILESRATIO
Ratio of session downloaded / uploaded files that users
should not exceed.
Default: 1024
Valid inputs: positive integer
Example:
SESSIONFILESRATIO 100
-----------------------------------------------------------
SESSIONFILESTHRESHOLD
Default session limit of files downloaded which may be
modified by multipliers.
Default: 32
Valid inputs: positive integer
Example:
SESSIONFILESTHRESHOLD 2
-----------------------------------------------------------
SESSIONTIMELIMIT
Default session time limit in minutes. This may be modified
by multipliers.
Default: 60
Valid inputs: 0 to 65535
Example:
SESSIONTIMELIMIT 90
-----------------------------------------------------------
- 57 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
STARTCHATMSG
String sent to the user when entering chat mode.
Default: "----------- Chat with Sysop ------------"
Valid inputs: delimited string less than 128 characters
Example:
STARTCHATMSG "Hey! I wanna talk to you..."
-----------------------------------------------------------
TIMELIMIT
Multiplier to apply to the default time limits. There can
be more than one TIMELIMIT entry with different conditions
attached. These are evaluated in order and the last one
that applies is the multiplier that is used. Note that the
number used must be divided by 20 to yield the true
multiplier (ie. number 20 is actually a multiplier of 1).
Default: 20
Valid inputs: positive integer
Example:
TIMELIMIT 80
-----------------------------------------------------------
TOTALBYTESRATIO
Ratio of all-time total downloaded / uploaded bytes that
users should not exceed.
Default: 8
Valid inputs: positive integer
Example:
TOTALBYTESRATIO 10
-----------------------------------------------------------
- 58 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
TOTALBYTESTHRESHOLD
Default all-time total limit of bytes downloaded which may
be modified by multipliers.
Default: 1048576
Valid inputs: positive integer
Example:
TOTALBYTESTHRESHOLD 10000000
-----------------------------------------------------------
TOTALFILESRATIO
Ratio of all-time total downloaded / uploaded files that
users should not exceed.
Default: 1024
Valid inputs: positive integer
Example:
TOTALFILESRATIO 100
-----------------------------------------------------------
TOTALFILESTHRESHOLD
Default all-time total limit of files downloaded which may
be modified by multipliers.
Default: 64
Valid inputs: positive integer
Example:
TOTALFILESTHRESHOLD 1000
-----------------------------------------------------------
- 59 -
Socrates BBS (v1.00) APPENDIX 3 - Init File Settings
WELCOMECOMM
Command list executed when a caller connects and before they
are asked for name and password.
Default: "WELCOME"
Valid inputs: any command list label
Example:
WELCOMECOMM howdy
-----------------------------------------------------------
WRITEPRIVATE
Setting to determine whether the users can enter messages
marked as "private".
Default: F
Valid inputs: any condition
Example:
WRITEPRIVATE (a<18 + a>18) & p>15
-----------------------------------------------------------
ZONE
The FidoNet Zone that your system is in. See APPENDIX 7 for
more information on the FidoNet electronic mail network.
Default: 0
Valid inputs: 0 to 65535
Example:
ZONE 1
-----------------------------------------------------------
- 60 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
APPENDIX 4 - BBS Program Commands
Following are the commands, responses and special codes
available for use in the program file. These are listed in
alphabetical order and give a description of the command,
proper usage and an example line.
-----------------------------------------------------------
*#*
Module: Response
Description: A special code which will accept a numeric
input and use the input as User Input.
Parameters: none
Failure State: n/a
Example:
menu CHGWIDTH
''/
'New Width: '
resp CHGWIDTH
'' null change
*#* CHGWIDTH change
-----------------------------------------------------------
*@*
Module: Response
Description: A special code which will accept any text
input and use the input as User Input.
Parameters: none
Failure State: n/a
Example:
menu userlist
''/
'Pattern to match (* = All): '
resp userlist
'' null main
*@* userlist main
-----------------------------------------------------------
- 61 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
ABORT
Module: Response or Command
Description: A generic message area command that will
abort the current message area without saving
the last message read pointer.
Parameters: none
Failure State: none
Example:
RESP fido
'ABORT' [c] abort no_area
-----------------------------------------------------------
ADD
Module: Response or Command
Description: A Socrates message area command that will add
a reply to the current subject.
Parameters: none
Failure State: Empty TO: field in message
Example:
COMM do_add
stateoff(3)
add
-----------------------------------------------------------
- 62 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
AHEAD
Module: Response or Command
Description: A Socrates message area command that will
advance the specified number of replies to
the current subject.
Parameters: number of replies to advance (user input)
Failure State: none
Example:
resp msg_soc
'' new
'N' [o,c] new
'M' [o,c] main
'0' stay
*#* ahead
-----------------------------------------------------------
AHEAD1
Module: Response or Command
Description: A Socrates message area command that will
advance one reply to the current subject.
Parameters: none
Failure State: none
Example:
resp msg_soc
'' new
'N' [o,c] ahead1
'M' [o,c] main
-----------------------------------------------------------
- 63 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
AREA ()
Module: Response or Command
Description: A generic message area command that will
change to the specified message area.
Parameters: message area number
Failure State: (1) AREAS.SOC not found
(2) area number not defined
(3) area is Socrates type with subject and
link files missing.
Example:
resp areas
'1' commlist(area1) fido
'2' area( 2) msg_soc
'' null no_area
-----------------------------------------------------------
BACK
Module: Response or Command
Description: A Socrates message area command that will
back up the specified number of subjects.
Parameters: number of subjects to back up (user input)
Failure State: none
Example:
menu backsub
*skip*
'Back how many? '
resp backsub
*#* back msg_soc
'' null msg_soc
-----------------------------------------------------------
- 64 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
BACK1
Module: Response or Command
Description: A Socrates message area command that will
back up one subject.
Parameters: none
Failure State: none
Example:
resp msg_soc
'' new
'P' [o,c] back1
'M' [o,c] main
-----------------------------------------------------------
CHGDATA
Module: Response or Command
Description: A Change command that will input and change
the user's data.
Parameters: none
Failure State: blank input
Example:
resp change
'D' [o,c] CHGDATA
-----------------------------------------------------------
- 65 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
CHGHELP
Module: Response or Command
Description: A Change command that will input and change
the user's help level to the specified value.
Parameters: help level number (user input)
Failure State: number out of byte range (0-255)
Example:
menu CHGHELP
''/
'0) Novice - Full Help'/
'1) Experienced - Some Help'/
'2) Expert - No Help'/
'New Help Level: '
resp CHGHELP
'' null change
*#* CHGHELP change
-----------------------------------------------------------
CHGLENGTH
Module: Response or Command
Description: A Change command that will change the user's
screen length to the specified value.
Parameters: new screen length (user input)
Failure State: number out of byte range (0-255)
Example:
menu CHGLENGTH
''/
'New Length: '
resp CHGLENGTH
'' null change
*#* CHGLENGTH change
-----------------------------------------------------------
- 66 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
CHGMORE
Module: Response or Command
Description: A Change command that will toggle the user's
MORE? setting.
Parameters: none
Failure State: none
Example:
resp change
'M' [o,c] CHGMORE
-----------------------------------------------------------
CHGNAME
Module: Response or Command
Description: A Change command that will input and change
the user's name.
Parameters: none
Failure State: blank input
Example:
resp change
'N' [o,c] CHGNAME
-----------------------------------------------------------
- 67 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
CHGPSWD
Module: Response or Command
Description: A Change command that will input and change
the user's password.
Parameters: none
Failure State: blank input
Example:
resp change
'P' [o,c] CHGPSWD
-----------------------------------------------------------
CHGTERM
Module: Response or Command
Description: A Change command that will change the user's
terminal emulation type to the specified
value. Note that the only difference between
terminal types as far as Socrates is
concerned is that terminal type 0 uses a
Ctrl-L to clear the screen while type 1 uses
[2J (the ANSI code to clear the screen).
Any other changes, such as ANSI codes in
menus, are up to the sysop and can be
selected using the TM= condition.
Parameters: new terminal type (user input)
Failure State: number out of byte range (0-255)
Example:
menu CHGTERM
''/
' 0) Dumb Terminal'/
' 1) ANSI'/
'New Terminal: '
resp CHGTERM
'' null change
*#* CHGTERM change
-----------------------------------------------------------
- 68 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
CHGWIDTH
Module: Response or Command
Description: A Change command that will change the user's
screen width to the specified value.
Parameters: new screen width (user input)
Failure State: number out of byte range (0-255)
Example:
menu CHGWIDTH
''/
'New Width: '
resp CHGWIDTH
'' null change
*#* CHGWIDTH change
-----------------------------------------------------------
*CLEAR*
Module: Menu
Description: A special code which will clear the user's
screen by sending the appropriate screen
clear code as defined by the user's terminal
type.
Parameters: none
Failure State: n/a
Example:
menu information
*skip*
*clear*
'---- Information ----'/
'N)ew Uploads'/
'G)etting around the BBS'/
'S)ocrates Message Area Information'/
'Q)uit to Main Menu'/
-----------------------------------------------------------
- 69 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
COMM
Module: Command
Description: Identifies the start of a command module.
Parameters: command module label
Failure State: n/a
Example:
COMM fido_next
stateon(1)
stateon(2)
next
-----------------------------------------------------------
COMMLIST ()
Module: Response or Command
Description: Execute a command list identified with a COMM
statement.
Parameters: command list label
Failure State: (1) command list not defined
(2) *FAILBREAK* exit from command list
Example:
menu quest
'Answer the questionnaire now?'/
'(1) Yes (2) Whoops, wrong key. : '
resp quest
'1' commlist(quest) main
'2' null main
-----------------------------------------------------------
- 70 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
DOWNLOAD
Module: Response or Command
Description: Shell to a specified external file transfer
protocol passing user input.
Parameters: External file transfer protocol command line
complete with parameters passed as user
input.
Failure State: (1) file not found
(2) unable to execute shell
Example:
menu dl_zmodem
'Files: '
resp dl_zmodem
'' null files
*@* download(c:\programs\dsz.com port %a
speed %b sz %d\%1)
-----------------------------------------------------------
EDITABORT
Module: Response or Command
Description: A message edit command that will abort entry
of the current message.
Parameters: none
Failure State: none
Example:
menu enter_abort
'Are you sure? '
resp enter_abort
'Y' [o,c] editabort fido -a=2
'Y' [o,c] editabort msg_soc
*@* null msg_enter
-----------------------------------------------------------
- 71 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITATTACH
Module: Response or Command
Description: A FidoNet message edit command that will
toggle the FileAttach bit in the current
message header.
Parameters: none
Failure State: none
Example:
resp edit_attach
'A' [o,c] editattach fido a=6
-----------------------------------------------------------
EDITCHGSUBJ
Module: Response or Command
Description: A message edit command that will input and
change the SUBJECT: field of the current
message. This command will not work when
used in conjunction with the RESPOND or ADD
commands.
Parameters: none
Failure State: none
Example:
resp msg_enter
'J' [o,c] editchgsubj msg_enter z4
-----------------------------------------------------------
- 72 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITCHGTO
Module: Response or Command
Description: A message edit command that will input and
change the TO: field of the current message.
Parameters: none
Failure State: blank entry
Example:
resp msg_enter
'T' [o,c] editchgto msg_enter z4
-----------------------------------------------------------
EDITCONT
Module: Response or Command
Description: A message edit command that will allow you to
continue to add to the end of the current
message.
Parameters: none
Failure State: none
Example:
resp msg_enter
'C' [o,c] editcont
-----------------------------------------------------------
- 73 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITCRASH
Module: Response or Command
Description: A FidoNet message edit command that will
toggle the Crash bit in the current message
header.
Parameters: none
Failure State: none
Example:
resp edit_crash
'C' [o,c] editcrash fido a=6
-----------------------------------------------------------
EDITDELETEFROM
Module: Response or Command
Description: A message edit command that will mark the
first line of a range of lines for deletion
in the current message. No deletion is done
until the EDITDELETETO command is executed.
Parameters: number of first line to delete (user input)
Failure State: (1) line out of range
(2) blank line number entered
Example:
menu delete1
'Delete from line: '
resp delete1
'' null msg_enter
*#* editdeletefrom delete2
-----------------------------------------------------------
- 74 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITDELETETO
Module: Response or Command
Description: A message edit command that will mark the
last line of a range of lines for deletion in
the current message and delete the line
range.
Parameters: number of last line to delete (user input)
Failure State: (1) end line before start line
(2) blank line number entered
Example:
menu delete2
'Delete to line: '
resp delete2
'' null msg_enter
*#* editdeleteto msg_enter
-----------------------------------------------------------
EDITEDIT
Module: Response or Command
Description: A message edit command that will allow you to
edit a specified line in the current message.
Parameters: number of line to edit (user input)
Failure State: line number out of range
Example:
menu editedit
'Edit line: '
resp editedit
'' null msg_enter
*#* editedit msg_enter
-----------------------------------------------------------
- 75 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITFIDONET
Module: Response or Command
Description: A FidoNet message edit command that will
allow you to edit the FidoNet destination
address in the current message header.
Parameters: none
Failure State: none
Example:
resp edit_fidonet
'D' [o,c] editfidonet fido a=6
-----------------------------------------------------------
EDITINSERT
Module: Response or Command
Description: A message edit command that will allow you to
insert after a specified line in the current
message.
Parameters: none
Failure State: none
Example:
menu insert
'Insert after line: '
resp insert
'' null msg_enter
*#* editinsert msg_enter
-----------------------------------------------------------
- 76 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITKILLSENT
Module: Response or Command
Description: A FidoNet message edit command that will
toggle the KillSent bit in the current
message header.
Parameters: none
Failure State: none
Example:
resp edit_killsent
'K' [o,c] editkillsent fido a=6
-----------------------------------------------------------
EDITLIST
Module: Response or Command
Description: A message edit command that will list the
lines entered so far for the current message.
Parameters: none
Failure State: none
Example:
resp msg_enter
'L' [o,c] editlist
-----------------------------------------------------------
- 77 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITOUTSIDE
Module: Response or Command
Description: A message edit command that will create a
file called MESSAGE.TXT containing the text
entered so far for the current message. The
system then shells to the editor specified on
the command line. When the editor is exited,
Socrates will convert the file MESSAGE.TXT
back to message format for further editing.
Parameters: text editor to shell to
Failure State: shell returned errorlevel other than zero
Example:
resp msg_enter
'O' [o,c] editoutside(c:\programs\edit.com
message.txt) L
-----------------------------------------------------------
EDITPRIVATE
Module: Response or Command
Description: A message edit command that will toggle the
Private flag in the header of the current
message being written.
Parameters: none
Failure State: none
Example:
resp enter_private
'P' [o,c] editprivate fido -a=2
-----------------------------------------------------------
- 78 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EDITSAVE
Module: Response or Command
Description: A message edit command that will save the
current message.
Parameters: none
Failure State: none
Example:
resp enter_msg
'S' [o,c] editsave message
-----------------------------------------------------------
ENTER [(to_name)]
Module: Response or Command
Description: A Fido message area command that will allow
you to start a new message. If the optional
(to_name) follows the command, it will be
used for the TO: field.
Parameters: TO: field entry (optional)
Failure State: (1) empty TO: field
(2) empty SUBJECT: field
Example:
resp enter_msg
'E' [o,c] enter message
or
comm logoff_message
stateon(3)
stateoff(4)
enter(SysOp)
-----------------------------------------------------------
- 79 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
EXIT ()
Module: Response or Command
Description: This command will halt the SOCRATES program
with the specified errorlevel. Socrates will
create an EXITUSER.SOC file containing the
user's name, baud rate and time remaining.
This will allow input to other programs or
for relogging back into Socrates.
Parameters: errorlevel to exit with
Failure State: none
Example:
'O' [o,c] exit(255)
-----------------------------------------------------------
*FAILBREAK*
Module: Command
Description: A special code which will end the execution
of the command file if the previously
executed command line failed. The calling
COMMLIST command will be returned as failed.
Parameters: n/a
Failure State: n/a
Example:
comm enterfido
enter
*FAILBREAK*
writeln(Remember, NetMail costs...) a=2
-----------------------------------------------------------
- 80 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
*FAILSUCCEED*
Module: Command
Description: A special code which will end the execution
of the command file if the previously
executed command line failed. The calling
COMMLIST command will be returned as
successfully completed.
Parameters: n/a
Failure State: n/a
Example:
comm new_user2
file(newuser.txt)
*FAILSUCCEED*
file(newuser2.txt)
-----------------------------------------------------------
FILE ()
Module: Response or Command
Description: This command will display the specified file
to the user.
Parameters: name of file to display
Failure State: file not found
Example:
'B' [o,c] file(bulletin.txt) mainmenu p>15
-----------------------------------------------------------
- 81 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
FILEAREA ()
Module: Response or Command
Description: This command will change to the specified
file area and make it the active area.
Parameters: number of file area to make active
Failure State: (1) FILES.SOC file not found
(2) file area not defined
Example:
resp fareas
'1' filearea(1) files
'2' filearea(2) files
'' null no_farea
-----------------------------------------------------------
FILELIST ()
Module: Response or Command
Description: Execute a file list identified with a FLST
statement.
Parameters: file list label
Failure State: file list not defined
Example:
resp bulletins
'B' [o,c] filelist(bulletin) main
-----------------------------------------------------------
- 82 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
FLST
Module: FileList
Description: Identifies the start of a filelist module.
Parameters: filelist module label
Failure State: n/a
Example:
flst bulletin
bulletin.001 p<10 & TM=0
bulletin.A01 p<10 & TM>0
bulletin.002 p>9 & TM=0
bulletin.A02 p>9 & TM>0
-----------------------------------------------------------
*FORCE*
Module: Menu
Description: A special code which will force the following
lines of the menu to be displayed to the
user, even after a *SKIP* code has been
executed.
Parameters: none
Failure State: n/a
Example:
menu information
*skip*
*clear*
'---- Information ----'/
'N)ew Uploads'/
'G)etting around the BBS'/
'S)ocrates Message Area Information'/
'Q)uit to Main Menu'/
*force*
''/
'Command:'
-----------------------------------------------------------
- 83 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
FORWARD
Module: Response or Command
Description: A Socrates message area command that will
advance the specified number of subjects.
Parameters: number of subjects to advance (user input)
Failure State: none
Example:
menu forwardsub
*skip*
'Forward how many? '
resp forwardsub
*#* forward msg_soc
'' null msg_soc
-----------------------------------------------------------
FORWARD1
Module: Response or Command
Description: A Socrates message area command that will
advance one subject.
Parameters: none
Failure State: none
Example:
forward1 msg_soc
-----------------------------------------------------------
- 84 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
GOSUBJ
Module: Response or Command
Description: A Socrates message area command that will
advance to the specified subject number.
Parameters: number of subject to advance to (user input)
Failure State: none
Example:
menu gosubj
*skip*
'Subject: '
resp gosubj
*#* gosubj msg_soc
'' null msg_soc
-----------------------------------------------------------
HEADERS
Module: Response or Command
Description: A Fido message area command that will display
message header information (To, From and
Subject) for all messages in the current
message area that the user is allowed to see.
Parameters: none
Failure State: none
Example:
'H' [o,c] headers
-----------------------------------------------------------
- 85 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
*HIGHEST*
Module: Menu
Description: A special code which will output the highest
message number in the current message area.
This is typically used in Fido type message
areas.
Parameters: none
Failure State: n/a
Example:
*force*
'Messages 1-'
*highest*
' [N ' z1 & z2
' [P ' z1 & -z2
' [+ ' -z1 & z2
' [- ' -z1 & -z2
*MSGNUM*
']'/
'Message Command: '
-----------------------------------------------------------
INFO
Module: Response or Command
Description: Displays the current user's time remaining as
well as download and upload totals.
Parameters: none
Failure State: none
Example:
'S' [o,c] info main
-----------------------------------------------------------
- 86 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
KILL
Module: Response or Command
Description: A message area command that will kill
(delete) the current message.
Parameters: none
Failure State: message not found
Example:
'K' [o,c] kill fido p=255
-----------------------------------------------------------
LASTTIMECALLED
Module: Response or Command
Description: A command to display to the user the last
time they called. This command sends a CRLF
after the string.
Parameters: none
Failure State: none
Example:
comm info
writeln("You last called on ")
lasttimecalled
-----------------------------------------------------------
- 87 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
LINETOFILE (filename)
Module: Response or Command
Description: A command to write the current user's USER
DATA to the specified file.
Parameters: file to write user data to
Failure State: none
Example:
comm writetolog
nametofile(callers.log)
linetofile(callers.log)
-----------------------------------------------------------
LINKDOWN
Module: Response or Command
Description: A Fido message area command that will back up
to the RESPONSE-TO message (the message that
the current message is a reply to).
Parameters: none
Failure State: current message missing
Example:
comm fido_linkdown
stateoff(1)
stateoff(2)
linkdown
-----------------------------------------------------------
- 88 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
LINKUP
Module: Response or Command
Description: A Fido message area command that will advance
to the SEE-ALSO message (the reply to the
current message).
Parameters: none
Failure State: current message missing
Example:
comm fido_linkup
stateoff(1)
stateon(2)
linkup
-----------------------------------------------------------
LISTFILES
Module: Response or Command
Description: Command to list the files in the current file
area's FILESLISTFILE (specified in the
initialization file).
Parameters: none
Failure State: FILESLISTFILE not found
Example:
'L' [o,c] listfiles files
-----------------------------------------------------------
- 89 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
LOGOFF [(filelistlabel)]
Module: Response or Command
Description: Executes a FILELIST of the
and then disconnects.
Parameters: none
Failure State: none
Example:
comm intro
writeln() p=0
writeln(Beat it, loser!) p=0
writeln() p=0
logoff p=0
or
logoff(exitscreens)
-----------------------------------------------------------
MAIN
Module: Response or Command
Description: A Socrates message area command that will
skip to the next subject and then advance to
the next unread message.
Parameters: none
Failure State: none
Example:
resp msg_soc
'N' [o,c] new
'M' [o,c] main
'0' stay
-----------------------------------------------------------
- 90 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
MENU
Module: Menu
Description: Identifies the start of a menu module.
Parameters: menu module label
Failure State: n/a
Example:
menu quest
''/
'Answer the questionnaire now?'/
'(1) Yes (2) Whoops, wrong key. : '
-----------------------------------------------------------
*MSGNUM*
Module: Menu
Description: A special code which will output the current
message number in the current message area.
This is typically used in Fido type message
areas.
Parameters: none
Failure State: n/a
Example:
*force*
'Messages 1-'
*highest*
' [N ' z1 & z2
' [P ' z1 & -z2
' [+ ' -z1 & z2
' [- ' -z1 & -z2
*MSGNUM*
']'/
'Message Command: '
-----------------------------------------------------------
- 91 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
MSGNUM
Module: Response or Command
Description: A Fido message area command that will advance
to the specified message.
Parameters: number of message to advance to (user input)
Failure State: none
Example:
menu go_msg
*skip*
'Message Number: '
resp go_msg
*#* msgnum msg_fido
'' null msg_fido
-----------------------------------------------------------
NAMETOFILE (filename)
Module: Response or Command
Description: A command to write the current user's name to
the specified file.
Parameters: file to write name to
Failure State: none
Example:
comm writetolog
nametofile(callers.log)
linetofile(callers.log)
-----------------------------------------------------------
- 92 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
NEW
Module: Response or Command
Description: A Socrates message area command that will
advance to the next unread message.
Parameters: none
Failure State: none
Example:
resp msg_soc
'N' [o,c] new
'M' [o,c] main
'0' stay
-----------------------------------------------------------
NEXT
Module: Response or Command
Description: A Fido message area command that will advance
to the next message.
Parameters: none
Failure State: none
Example:
comm fido_next
stateon(1)
stateon(2)
next
-----------------------------------------------------------
- 93 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
NULL
Module: Response or Command
Description: A command that does nothing.
Parameters: none
Failure State: none
Example:
menu quest
''/
'Answer the questionnaire now?'/
'(1) Yes (2) Whoops, wrong key. : '
resp quest
'1' commlist(quest) main
'2' null main
-----------------------------------------------------------
NUMOFCALLERS
Module: Response or Command
Description: A command to display to the user the total
number of callers to the BBS. This command
sends a CRLF after the string.
Parameters: none
Failure State: none
Example:
comm info
writeln("You are caller number ")
numofcallers
-----------------------------------------------------------
- 94 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
PAGE
Module: Response or Command
Description: A command that makes an annoying beeping
noise on the SysOp's computer to alert them
that the user wishes to chat.
Parameters: none
Failure State: none
Example:
'BEEP' [c] page main p>=5 & hr>=12
-----------------------------------------------------------
PREV
Module: Response or Command
Description: A Fido message area command that will back up
to the previous message.
Parameters: none
Failure State: none
Example:
comm fido_prev
stateon(1)
stateoff(2)
prev
-----------------------------------------------------------
- 95 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
QUOTE
Module: Response or Command
Description: Command to display an entry from the
QUOTES.SOC file. This file is a text file
containing quotes, or other words of wisdom,
separated by a blank line.
Parameters: none
Failure State: none
Example:
comm show_a_quote
stateon(1)
quote
-----------------------------------------------------------
RESP
Module: Response
Description: Identifies the start of a response module.
Parameters: response module label
Failure State: n/a
Example:
resp information
'N' [o,c] file(f:\newuls.txt)
'G' [o,c] file(\bbs\getting.txt)
'S' [o,c] file(\bbs\howsoc.txt)
'Q' [o,c] null main
'?' [o] file(helpinfo.txt)
'' null
-----------------------------------------------------------
- 96 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
RESPOND
Module: Response or Command
Description: A Fido message area command that will add a
reply to the current message.
Parameters: none
Failure State: Empty TO field in message
Example:
comm do_respond
stateoff(3)
stateon(4)
respond
-----------------------------------------------------------
REVERSE
Module: Response or Command
Description: A Socrates message area command that will
back up the specified number of replies to
the current subject.
Parameters: number of replies to back up (user input)
Failure State: none
Example:
resp msg_soc
'' new
'N' [o,c] new
'M' [o,c] main
'0' stay
*#* reverse
-----------------------------------------------------------
- 97 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
REVERSE1
Module: Response or Command
Description: A Socrates message area command that will
back up one reply to the current subject.
Parameters: none
Failure State: none
Example:
resp msg_soc
'' new
'P' [o,c] reverse1
'M' [o,c] main
-----------------------------------------------------------
SAVE
Module: Response or Command
Description: A generic message area command that will
leave the current message area and save the
last message read pointer.
Parameters: none
Failure State: none
Example:
RESP fido
'Q' [o,c] save no_area
-----------------------------------------------------------
- 98 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHELL (commandtoexecute)
Module: Response or Command
Description: Shells to execute the specified command.
Note that this is not a DOS shell but a
direct execution of a command. The full
path, filename and extension of the program
to be executed must be specified.
Parameters: none
Failure State: errorlevel other than zero returned
Example:
resp files
'DIR' [c] shell(c:\command.com /c dir %d > gate%a) files -L
'DIR' [c] shell(c:\command.com /c dir %d) files L
-----------------------------------------------------------
SHOW
Module: Response or Command
Description: A Fido message area command that will re-
display the current message.
Parameters: none
Failure State: none
Example:
RESP msg_menu
'S' [o,c] show msg_menu
-----------------------------------------------------------
- 99 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWACTIVETIMEBANK
Module: Response or Command
Description: Display the amount of time available in the
Active Time Bank.
Parameters: none
Failure State: none
Example:
RESP show_banks
'A' [o,c] showactivetimebank show_banks
'P' [o,c] showpendingtimebank show_banks
-----------------------------------------------------------
SHOWCHG
Module: Response or Command
Description: Change command to display the user's account
data.
Parameters: none
Failure State: none
Example:
RESP show_user_data
'S' [o,c] showchg show_user_data
-----------------------------------------------------------
- 100 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWDATA
Module: Response or Command
Description: Change command to display the user's account
USER DATA data.
Parameters: none
Failure State: none
Example:
RESP show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
SHOWHELP display user help level
Module: Response or Command
Description: Change command to display the user's account
help level.
Parameters: none
Failure State: none
Example:
RESP show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
- 101 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWLENGTH
Module: Response or Command
Description: Change command to display the user's account
screen length.
Parameters: none
Failure State: none
Example:
RESP show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
SHOWMORE
Module: Response or Command
Description: Change command to display the user's account
MORE? status.
Parameters: none
Failure State: none
Example:
resp show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
- 102 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWNAME
Module: Response or Command
Description: Change command to display the user's account
name.
Parameters: none
Failure State: none
Example:
resp show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
SHOWPENDINGTIMEBANK
Module: Response or Command
Description: Display the amount of time available in the
Pending Time Bank.
Parameters: none
Failure State: none
Example:
resp show_banks
'A' [o,c] showactivetimebank show_banks
'P' [o,c] showpendingtimebank show_banks
-----------------------------------------------------------
- 103 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWPSWD
Module: Response or Command
Description: Change command to display the user's account
password.
Parameters: none
Failure State: none
Example:
resp show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
SHOWTERM
Module: Response or Command
Description: Change command to display the user's account
terminal type.
Parameters: none
Failure State: none
Example:
resp show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
- 104 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWTOFILE (filename)
Module: Response or Command
Description: A Fido message area command to output the
current message to the specified file.
Parameters: output file name
Failure State: none
Example:
resp fido
'PRINT' [c] showtofile(lpt1) fido p=255
-----------------------------------------------------------
SHOWTOUSERFILE
Module: Response or Command
Description: A Fido message area command to output the
current message to the file specified in the
user input.
Parameters: output file name (user input)
Failure State: none
Example:
menu dumpfidomsg
'File: '
resp dumpfidomsg
'' null fido
*@* showtouserfile fido
-----------------------------------------------------------
- 105 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SHOWWIDTH
Module: Response or Command
Description: Change command to display the user's account
screen width.
Parameters: none
Failure State: none
Example:
resp show_user_data
'D' [o,c] showdata show_user_data
'N' [o,c] showname show_user_data
'P' [o,c] showpswd show_user_data
'W' [o,c] showwidth show_user_data
'L' [o,c] showlength show_user_data
'M' [o,c] showmore show_user_data
'H' [o,c] showhelp show_user_data
'T' [o,c] showterm show_user_data
-----------------------------------------------------------
SIGNALOFF (signalnumber)
Module: Response or Command
Description: Command to set the specified user's signal
off.
Parameters: number of signal to turn off
Failure State: none
Example:
comm read_rules
file(rules.txt)
signaloff(255)
-----------------------------------------------------------
- 106 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SIGNALON (signalnumber)
Module: Response or Command
Description: Command to set the specified user's signal
on.
Parameters: number of signal to turn on
Failure State: none
Example:
comm read_rules
file(rules.txt)
signalon(255)
-----------------------------------------------------------
*SKIP*
Module: Menu
Description: A special code which will skip further
display lines in a menu if there are pending
commands stacked up.
Parameters: none
Failure State: n/a
Example:
menu information
*skip*
*clear*
'---- Information ----'/
'N)ew Uploads'/
'G)etting around the BBS'/
'S)ocrates Message Area Information'/
'Q)uit to Main Menu'/
*force*
''/
'Command:'
-----------------------------------------------------------
- 107 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
START [(to_name)]
Module: Response or Command
Description: A Socrates message area command that will
allow you to start a new message. If the
optional (to_name) follows the command, it
will be used for the TO: field.
Parameters: TO: field entry (optional)
Failure State: (1) empty TO: field
(2) empty SUBJECT: field
Example:
comm do_start
stateon(3)
stateon(4)
start
or
comm do_start_new
stateon(3)
stateoff(4)
start(SysOp)
-----------------------------------------------------------
STATEOFF (statenumber)
Module: Response or Command
Description: Command to set the specified state parameter
off.
Parameters: number of state parameter to turn off
Failure State: none
Example:
comm fido_linkup
tateoff(1)
stateon(2)
linkup
-----------------------------------------------------------
- 108 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
STATEON (statenumber)
Module: Response or Command
Description: Command to set the specified state parameter
on.
Parameters: number of state parameter to turn on
Failure State: none
Example:
comm do_start
stateon(3)
stateon(4)
start
-----------------------------------------------------------
STAY
Module: Response or Command
Description: A Socrates message area command that will re-
display the current message.
Parameters: none
Failure State: none
Example:
resp msg_menu
'S' [o,c] stay msg_menu
-----------------------------------------------------------
- 109 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
STAYTOFILE (filename)
Module: Response or Command
Description: A Socrates message area command to output the
current message to the specified file.
Parameters: output file name
Failure State: none
Example:
resp socrates
'PRINT' [c] staytofile(lpt1) socrates p=255
-----------------------------------------------------------
STAYTOUSERFILE
Module: Response or Command
Description: A Socrates message area command to output the
current message to the file specified in the
user input.
Parameters: output file name (user input)
Failure State: none
Example:
menu dumpsocratesmsg
'File: '
resp dumpsocratesmsg
'' null socrates
*@* staytouserfile socrates
-----------------------------------------------------------
- 110 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
*SUBJECT*
Module: Menu
Description: A special code which will output the current
subject in the current message area. This is
typically used in Socrates type message
areas.
Parameters: none
Failure State: n/a
Example:
menu msg_soc
''/
*skip*
'---- Message Menu ----'/
'N)ext New Message M)ain Message'/
'F)orward Subject B)ack Subject'/
'# Ahead/Back Messages'/
'T)oggle Private Flag'/
'K)ill Message'/
'S)ubject Change'/
'E)nter Message R)espond'/
'A)rea Change Q)uit'/
*force*
'[ '
*subject*
' ]'/
'Message Command: '
-----------------------------------------------------------
- 111 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
SUBJLIST
Module: Response or Command
Description: A Socrates message area command that will
display a list of the available subjects and
their associated number in the current
message area for all messages that the user
is allowed to see.
Parameters: none
Failure State: none
Example:
resp msg_soc
'S' [O,C] *Subjlist gosubj
-----------------------------------------------------------
*SUCCESSBREAK*
Module: Command
Description: A special code which will end the execution
of the command list if the previously
executed command line succeeded. The calling
COMMLIST command will be returned as
successfully completed.
Parameters: n/a
Failure State: n/a
Example:
comm forgotten2
stateon(3)
stateoff(4)
enter(SysOp)
*SUCCESSBREAK*
logoff
-----------------------------------------------------------
- 112 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
TIMESCALLED
Module: Response or Command
Description: A command to display to the user the total
number of times they have called the BBS.
This command sends a CRLF after the string.
Parameters: none
Failure State: none
Example:
comm info
writeln("Number of times you called us: ")
timescalled
-----------------------------------------------------------
TIMETOFILE (filename)
Module: Response or Command
Description: A command to write the current time to the
specified file.
Parameters: file to write time to
Failure State: none
Example:
comm writetolog
nametofile(callers.log)
linetofile(callers.log)
timetofile(callers.log)
-----------------------------------------------------------
- 113 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
TOGLPRIV
Module: Response or Command
Description: A message area command that will toggle the
Private flag in the header of the current
message being read.
Parameters: none
Failure State: none
Example:
resp message
'T' [o,c] toglpriv message p=255
-----------------------------------------------------------
UNBANK
Module: Response or Command
Description: A command to allow the user to take the
specified amount of time from the active time
bank and convert it to on-line time.
Parameters: time to convert (user input)
Failure State: amount specified greater than amount in bank
Example:
menu unbanktime
''/
'Time to UNBANK: '
resp unbanktime
'' null timebank
*#* UNBANK timebank
-----------------------------------------------------------
- 114 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
UNBANKALL
Module: Response or Command
Description: A command to allow the user to take all time
from the active timebank and convert it to
on-line time.
Parameters: none
Failure State: none
Example:
menu unbanktime
''/
'Time to UNBANK: '
resp unbanktime
'' null timebank
'ALL' [c] UNBANKALL timebank
*#* UNBANK timebank
-----------------------------------------------------------
*UNFORCE*
Module: Menu
Description: A special code which will turn off the
*FORCE* mode and skip further display lines
in a menu if there are pending commands
stacked up and if *SKIP* mode is active.
Parameters: none
Failure State: n/a
Example:
menu information
*skip*
*force*
*clear*
'---- Information ----'/
*unforce*
'N)ew Uploads'/
'G)etting around the BBS'/
'Q)uit to Main Menu'/
*force*
''/
'Command:'
-----------------------------------------------------------
- 115 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
UPLOAD
Module: Response or Command
Description: Shell to a specified external file transfer
protocol passing user input.
Parameters: External file transfer protocol command line
complete with parameters passed as user
input.
Failure State: (1) upload problems
(2) unable to execute shell
Example:
resp upload
'X' [o,c] null ul_xmodem
'Y' [o,c] upload(c:\programs\dsz.com port %a
speed %b rb %u)
'Z' [o,c] upload(c:\programs\dsz.com port %a
speed %b rz %u)
'' null files
-----------------------------------------------------------
USERLIST
Module: Response or Command
Description: A command to display the list of the users
for the system. Socrates will display the
list of names that match the user input. If
the user input is an asterisk (*) then all
users will be listed.
Parameters: name fragment to match (user input)
Failure State: none
Example:
menu userlist
''/
'Pattern to match (* = All): '
resp userlist
'' null main
*@* userlist main
-----------------------------------------------------------
- 116 -
Socrates BBS (v1.00) APPENDIX 4 - BBS Program Commands
VERSION
Module: Response or Command
Description: A command to display information about the
Socrates version being used.
Parameters: none
Failure State: none
Example:
resp main
'V' [o,c] version main
-----------------------------------------------------------
WRITE (stringtodisplay)
Module: Response or Command
Description: A command to display a string to the user.
This command does not send a CRLF after the
string.
Parameters: string to display
Failure State: none
Example:
write("This is the string to display.")
-----------------------------------------------------------
WRITELN (stringtodisplay)
Module: Response or Command
Description: A command to display a string to the user.
This command sends a CRLF after the string.
Parameters: string to display
Failure State: none
Example:
writeln("This is the string with a CRLF.")
-----------------------------------------------------------
- 117 -
Socrates BBS (v1.00) APPENDIX 5 - Shell Parameters
APPENDIX 5 - Shell Parameters:
When executing another program (using the SHELL,
EDITOUTSIDE, DOWNLOAD or UPLOAD commands), you will often
need to send it command line parameters. Socrates will
allow you to include command line information to these
programs by using shell parameters to pass the data.
A parameter is a percent sign (%) followed by a key letter.
When SOCRATES executes the command, it converts the
parameter into the actual data it represents.
The parameters are:
%1 - user input
%A - Port number (COMx:)
%B - Baud rate
%D - Download path (no trailing backslash)
%U - Upload path (no trailing backslash)
%% - a percent sign (%)
Examples of the use of these parameters are as follows:
'DIR' [c] shell(c:\command.com /c dir %d > gate%a) files -L
'DIR' [c] shell(c:\command.com /c dir %d) files L
menu dl_zmodem
'Files: '
resp dl_zmodem
'' null files
*@* download(d:\dsz.com port %a speed %b sz %d\%1) files
resp upload
'X' [o,c] null ul_xmodem
'Y' [o,c] upload(d:\dsz.com port %a speed %b rb %u) files
'Z' [o,c] upload(d:\dsz.com port %a speed %b rz %u) files
'' null files
- 118 -
Socrates BBS (v1.00) APPENDIX 6 - TimeBanks & Multipliers
APPENDIX 6 - TimeBanks & Multipliers
TimeBanks
Timebanks are a subject that many SysOps are not familiar
with, especially those running Fido and Opus systems.
SOCRATES will support the use of timebanks (both pending and
active) at the SysOp's discretion.
A timebank is simply a method for rewarding the users for
uploading by granting them time credits on the system based
on the amount uploaded. SOCRATES supports on-line credits
as well as both active and pending timebanks.
The amount of time returned to the user as on-line time is
controlled by the ONLINEUPLOADREFUND setting in the
initialization file. This time is available to the user
immediately and does not reside in a timebank.
The system can also be configured to return time to the
caller by placing it in an "active" timebank so that the
caller can use this time at their convenience. This is
controlled by the ACTIVETIMEBANKUPLOADREFUND setting in the
initialization file. This extra time resides in the bank
until the caller "withdraws" all or part of it. The user
only has access to the active timebank.
The final option is to have the system store all newly
earned refund time in a "pending" timebank which is
controlled by the PENDINGTIMEBANKUPLOADREFUND setting in the
initialization file. This bank continues to accumulate the
time credits in the pending timebank, which the users cannot
access. The time credits can be rolled over into the active
timebank by the SysOp or the system can automatically roll
them over daily through the DAILYTIMEBANKROLLOVER setting.
It should be noted that any or all of the three refund types
can be used, at the SysOp's discretion.
- 119 -
Socrates BBS (v1.00) APPENDIX 6 - TimeBanks & Multipliers
Time and File Limit Multipliers
SOCRATES is configured with default session and daily time
limits and session, daily and total download limits. This
is done through various settings in the initialization file.
These defaults can be modified through the use of
multipliers.
Multipliers are used to modify the defaults by first taking
the product of the multiplier and the default and then
dividing by twenty. The result is then the value used as
the new limit. For example, a multiplier of 20 yields no
change while a multiplier of 40 doubles the limit and 10
will reduce the limit by half.
The nice part about this is that multipliers can be applied
to the default time and file limit settings, based on set
conditions using the TIMELIMIT and FILESMULT settings in the
initialization file.
For example, consider the following from an initialization
file:
dailytimelimit 60
timelimit 5 p=0 ;New Callers
timelimit 30 p>=5 ;Registered Users
timelimit 50 p>=10 ;Good Regular Users
timelimit 60 p>=100 ;Co-SysOps
The default (or baseline) daily time limit is 60 minutes.
New callers are given 60 x 5 / 20 = 15 minutes, whereas
registered users, good regular users and co-sysops are
allowed 90 minutes, 150 minutes and 180 minutes,
respectively.
This same type of thing can be done for the downloading
limits by using the FILESMULT setting with different
conditions.
- 120 -
Socrates BBS (v1.00) APPENDIX 7 - FidoNet
APPENDIX 7 - FidoNet
The FidoNet network is a loose coalition of many different
bulletin board systems. "FidoNet" and "Fido" are registered
trademarks of Tom Jennings. The network is by no means
limited to the Fido software; there are several "FidoNet
compatible" systems and a number of network mail programs
which interface with the network.
A short history lesson will help in understanding FidoNet.
Tom Jennings was in San Francisco, and John Madill was in
Baltimore, both working on the Fido BBS software. In the
spirit of finding out if it could be done, they decided to
add code to the system to support a dialup connection with
no human intervention during the wee hours when the sysops
were sleeping and the systems were free. This quickly
became a useful function, since both systems and both sysops
were busy and it was a convenient method of exchanging
information.
From this chance beginning in May 1984, growth was
phenomenal. By August 1984, there were 30 nodes; by
September there were 50. By February 1985, there were 160
systems, and a group of sysops in St. Louis had taken over
the administration of the list of systems. In June 1985 the
network converted to a two-part addressing scheme (Net/Node)
to support the growth. Today, the network has grown to over
7000 nodes around the world and a zone-based nodelist has
been developed to facilitate communication with systems on
other continents.
All of this is held together by two documents, each
published weekly. One of these is a list of every system in
the network, with net/node address, telephone number, and
other useful information; this is called the NODELIST. The
other document is a newsletter, FidoNews. Both the nodelist
changes and FidoNews are distributed using the network; once
your system is up and running you will have a source for the
most current information.
To obtain help on FidoNet or a related software product, use
FidoNet! The best source is a local sysop who has done what
you want to do.
- 121 -
Socrates BBS (v1.00) APPENDIX 8 - Registration Form
APPENDIX 8 - Registration Form
------------------------------------------------------------
Remit to: Mikronetics
2114 Weatherton Dr.
Wilmington, DE 19810
United States of America
------------------------------------------------------------
Quan Item US Price
---- ---- -- -----
___ SOCRATES Registration....... @ $40 ea $__________
(includes registration plus
program and manual on disk)
Add $1/copy for 3.5" disk $__________
Subtotal $__________
Shipping ($1/copy, max $10) $__________
TOTAL $__________
Name_____________________________________________________
Company_____________________________________________________
Address_____________________________________________________
_____________________________________________________
_____________________________________________________
Phone(______)________________ BBS(______)________________
Where did you hear of or obtain SOCRATES?
____________________________________________________
Comments____________________________________________________
____________________________________________________
____________________________________________________
____________________________________________________
- 122 -
Socrates BBS (v1.00) INDEX
INDEX Condition 6, 10, 11, 14,
16, 17, 18, 22, 37, 39,
%% 23, 118 68
%1 23, 118 CR-AREAS 4, 5, 10, 24
%A 23, 71, 99, 116, 118 CR-FILES 4, 5, 11
%B 23, 71, 116, 118 CR-INITS 4, 5, 9, 24
%D 23, 71, 99, 118 CR-SOC 4, 5, 12, 24
%U 23, 116, 118 CR-FILES 24
*#* 18, 61 CUTATSEENBY 8, 42
*@* 18, 61 D 38
*CLEAR* 15, 69 DAILYBYTESRATIO 8, 42
*FAILBREAK* 19, 70, 80 DAILYBYTESTHRESHOLD 8, 42
*FAILSUCCEED* 19, 81 DAILYFILESRATIO 8, 43
*FORCE* 15, 16, 83, 115 DAILYFILESTHRESHOLD 8, 43
*HIGHEST* 15, 86 DAILYTIMEBANKROLLOVER 8,
*MSGNUM* 15, 86, 91 43, 119
*SKIP* 15, 16, 107, 115 DAILYTIMELIMIT 8, 44
*SUBJECT* 15, 111 DATAPROMPT 7, 44
*SUCCESSBREAK* 19, 112 DBR 38
*UNFORCE* 15, 115 DBT 37
/1 26 Delimited string 14, 36
/B 26 Delimiter 14, 16, 17, 36
/L 26 DFR 38
/O 26 DFT 37
A 38 Directories 5, 6, 9, 10,
ABORT 20, 62 24
ACTIVETIMEBANKUPLOADREFUND DOWNLOAD 21, 23, 71, 118
8, 40, 119 EDITABORT 21, 71
ADD 21, 62, 72 EDITATTACH 21, 72
AHEAD 21, 63 EDITCHGSUBJ 21, 72
AHEAD1 21, 63 EDITCHGTO 21, 73
ALLOWQUOTING 8, 40 EDITCONT 21, 73
APPENDORIGIN 8, 41, 54 EDITCRASH 21, 74
AREA 20, 64 EDITDELETEFROM 21, 74
AREAS.SOC 5, 10, 24, 64 EDITDELETETO 21, 74, 75
BACK 21, 64 EDITEDIT 21, 75
BACK1 21, 65 EDITFIDONET 21, 76
BAUD 7, 41 EDITINSERT 21, 76
CHGDATA 20, 65 EDITKILLSENT 21, 77
CHGHELP 20, 66 EDITLIST 21, 77
CHGLENGTH 20, 66 EDITOUTSIDE 21, 23, 78,
CHGMORE 20, 67 118
CHGNAME 20, 67 EDITPRIVATE 21, 78
CHGPSWD 20, 68 EDITSAVE 21, 79
CHGTERM 20, 68 ENDCHATMSG 8, 44
CHGWIDTH 20, 69 ENTER 20, 21, 79
CLEARBEFOREMESSAGE 8, 41 Errorlevel 27, 28, 29, 80
COMM 18, 70 EXCEEDEDDAILYTLIMCOMM 8,
COMM.SOC 5, 12, 24 45
COMMINDX.SOC 5, 12, 24 EXIT 19, 27, 30, 80
COMMLIST 18, 19, 70, 80, FA 11, 38
81, 112 FIDONET 8, 45
FILE 19, 81
FILEAREA 21, 82
- 123 -
Socrates BBS (v1.00) INDEX
Filelist 12, 19, 23, 82, NEWUSERCOMM2 7, 51
90 NEWUSERHELP 7, 51
FILES.LST 25, 45 NEWUSERMENU 7, 51
FILES.SOC 5, 11, 24, 82 NEWUSERPRIV 7, 52
FILESLISTFILE 8, 11, 45, NEWUSERSCREENLENGTH 7, 52
89 NEWUSERSCREENWIDTH 7, 52
FILESMULT 8, 46, 120 NEWUSERSIGNALS 7, 53
FIRSTMENU 7, 46 NEXT 20, 93
FLST 22, 23, 82, 83 NODE 8, 53
FLST.SOC 5, 12, 24 NULL 19, 94
FLSTINDX.SOC 5, 12, 24 NUMOFCALLERS 19, 94
FMULT.SOC 5, 9, 24 ONLINEUPLOADREFUND 8, 53,
FORCEPRIVATE 8, 46 119
FORGOTPASSWORDCOMM 7, 47 ORIGINLINE 8, 54
FORGOTPASSWORDMENU 7, 47 P 38
FORWARD 21, 84 PAGE 19, 95
FORWARD1 21, 84 PASSWORDATTEMPTS 7, 54
FOSSIL 4, 26 PENDINGTIMEBANKUPLOADREFUND
GOSUBJ 21, 85 8, 54, 119
H 38 POINT 8, 55
HEADERS 20, 85 PORT 7, 55
HR 38 PREV 20, 95
INACTIVITYTIMELIMIT 8, 47 PRIVATESYSTEM 7, 55
INFO 19, 86 QUOTE 19, 96
INITS.SOC 5, 9, 24 QUOTETRK.SOC 5, 24
INTROCOMM 7, 48 READPRIVATE 8, 56
KILL 20, 87 RELOGIN 4, 5, 24, 27, 29,
LASTTIMECALLED 19, 87 30
LINETOFILE 19, 88 RESP 16, 17, 96
LINKDOWN 20, 88 RESP.SOC 5, 12, 24
LINKUP 20, 89 RESPINDX.SOC 5, 12, 24
LISTFILES 21, 89 RESPOND 20, 21, 72, 97
LOGFILE 8, 48 REVERSE 21, 97
LOGOFF 19, 90 REVERSE1 21, 98
LOGONTIME 7, 48 SAVE 20, 98
M 38 SBR 38
MAIN 21, 90 SBT 37
MENU 14, 91 SESSIONBYTESRATIO 8, 56
MENU.SOC 5, 12, 24 SESSIONBYTESTHRESHOLD 8,
MENUINDX.SOC 5, 12, 24 56
MODEMHANGUP 7, 49 SESSIONFILESRATIO 8, 57
MODEMINIT 7, 49 SESSIONFILESTHRESHOLD 8,
MSGNUM 20, 92 57
Multipliers 40, 42, 43, SESSIONTIMELIMIT 8, 57
44, 46, 53, 54, 56, 57, SFR 38
58, 59, 120 SFT 37
NAMEPROMPT 7, 50 SHELL 19, 23, 99, 118
NAMETOFILE 19, 92 Shell parameters 118
NET 8, 50 SHOW 20, 99
NetMail 9 SHOWACTIVETIMEBANK 22, 100
NEW 21, 93 SHOWCHG 20, 100
NEW_USER1 50 SHOWDATA 20, 101
NEW_USER2 51 SHOWHELP 20, 101
NEWUSERCOMM1 7, 50 SHOWLENGTH 20, 102
- 124 -
Socrates BBS (v1.00) INDEX
SHOWMORE 20, 102 USERS1.SOC 5, 24, 32
SHOWNAME 20, 103 USERS2.SOC 5, 24, 32
SHOWPENDINGTIMEBANK 22, VERSION 19, 117
103 WELCOMECOMM 60
SHOWPSWD 20, 104 WELCOMEFLST 7
SHOWTERM 20, 104 WRITE 19, 117
SHOWTOFILE 20, 105 WRITELN 19, 80, 117
SHOWTOUSERFILE 20, 105 WRITEPRIVATE 8, 60
SHOWWIDTH 20, 106 ZONE 8, 60
SIGNALOFF 22, 106
SIGNALON 22, 107
SOC-AREA.TXT 5, 9
SOC-FILE.TXT 5, 10
SOC-INIT.TXT 5, 7
SOC-MSG 4, 5, 24, 29, 33,
34, 35
SOC-PROG.TXT 5, 12
SOC-SCAN 4, 5, 24, 29
SOC-USER 4, 5
SOCRATES 4, 5, 27, 29
SOCRATES.LOG 48
SOC-SCAN 35
SOC-USER 24, 32
START 21, 108
STARTCHATMSG 8, 58
STATEOFF 22, 108
STATEON 22, 109
STAY 21, 109
STAYTOFILE 21, 110
STAYTOUSERFILE 21, 110
SUBJLIST 21, 112
SysOp 1, 2, 6, 31, 32, 121
TBR 38
TBT 37
TFR 38
TFT 37
Timebanks 8, 22, 32, 40,
43, 54, 100, 103, 114,
115, 119
TIMELIMIT 8, 58, 120
TIMESCALLED 19, 113
TIMETOFILE 19, 113
TLIMS.SOC 5, 9, 24
TM 38
TOGLPRIV 20, 114
TOTALBYTESRATIO 8, 58
TOTALBYTESTHRESHOLD 8, 59
TOTALFILESRATIO 8, 59
TOTALFILESTHRESHOLD 8, 59
UNBANK 22, 114
UNBANKALL 22, 115
UPLOAD 21, 23, 116, 118
User input 18, 23, 118
USERLIST 19, 116
- 125 -
Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!
This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.
But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/