_______                                          
                     /      /                                          
                    /  ____/_____ ____  ____  _____ ______ _____ ______
                   /  /___ / _  //___/ /__ / /___ //__ __//____//_____/
                  /___   // // ///    //_// //__//   //  //___ //____  
                 ____/  // // ///    /___/ /___ /   //  /____//___  /  
                /      // // ///___ // || //  //   //  //___ ____/ /   
               /______//____//____/// // //  //   //  /____//_____/    






                                 SOCRATES (tm)  v1.10


                            (C) Copyright 1990 Mikronetics
                                 All Rights Reserved


                           Documentation by Robert D. Swift



             Socrates BBS (v1.10)                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.10)                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.10)                                Contents


                                  TABLE OF CONTENTS

             COPYRIGHT                                                  i

             TRADEMARKS                                                 i

             WARRANTY AND DISCLAIMER                                    i

             DISTRIBUTION                                              ii

             REGISTRATION                                              ii

             TABLE OF CONTENTS                                        iii


             1.  INTRODUCTION
                 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
                 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                    10
                 2.5  File Areas and Directories                       11
                 2.6  SOCRATES Program File                            13
                 2.7  Bulletins And Display Files                      14

             3.  SOCRATES PROGRAM FILE
                 3.1  Overview                                         15
                 3.2  Menus                                            15
                 3.3  Responses                                        17
                 3.4  Commands                                         20
                 3.5  File Lists                                       24
                 3.6  Shells and Parameters                            25
                 3.7  Putting It All Together                          26

             4.  RUNNING SOCRATES
                 4.1  Command Line Parameters                          28
                 4.2  User's Special Keys                              28
                 4.3  Running Stand-Alone                              29
                 4.4  Running With A Front End                         30
                 4.5  Re-Entering SOCRATES                             32

             5.  THE SYSTEM OPERATOR'S ROLE
                 5.1  SysOp Commands                                   33
                 5.2  User File Maintenance                            34
                 5.3  Message Area Maintenance                         35
                 5.4  Socrates Type Message Linking                    37





                                       - iii -



             Socrates BBS (v1.10)                                Contents


             APPENDIX 1  - Use of Delimiters                           38

             APPENDIX 2  - Evaluating Conditions                       39

             APPENDIX 3  - Initialization File Settings                43

             APPENDIX 4  - BBS Program Commands                        72

             APPENDIX 5  - Shell Parameters                           144

             APPENDIX 6  - TimeBanks & Multipliers                    145

             APPENDIX 7  - FidoNet                                    147

             APPENDIX 8  - Registration Form                          148


             INDEX                                                    149







































                                        - iv -



             Socrates BBS (v1.10)                            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.10)                            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.10)                            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.10)                            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.10)                            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
                       INITS.SOC      - Initialization data
                       MENU.SOC       - BBS menus
                       MENUINDX.SOC   - BBS menus index
                       MULT.SOC       - Download & Time limits
                       MULTINDX.SOC   - Multiplier index
                       QUOTETRK.SOC   - Quotes file pointer (if req'd)
                       RESP.SOC       - User responses
                       RESPINDX.SOC   - User responses index

             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
                       USERS3.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.10)                     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.10)                     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
                       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
                       WELCOMECOMM              welcome file displayed
                       INTROCOMM                commands after logon
                       FIRSTMENU                first menu displayed

                  FidoNet Settings
                       ZONE                     zone number
                       NET                      net number
                       NODE                     node number
                       POINT                    point number










                                        - 7 -



             Socrates BBS (v1.10)                     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

                  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
                       ALIAS                    use alias in FROM: field
                       ANONYMOUS                use anonymous name in msg
                       ANONYMOUSNAME            anonymous name to use
                       FIDONET                  identify netmail area
                       DEFAULTCRASHON           default "crash" setting
                       DEFAULTFILEATTACHON      default "attach" setting
                       DEFAULTKILLSENTON        default "kill" setting
                       SETCRASH                 allow changing "crash"
                       SETFILEATTACH            allow changing "attach"
                       SETKILLSENT              allow changing "kill"
                       ALLOWQUOTING             allow user to quote
                       SKIPMESSAGEINPUT         skip initial msg input
                       APPENDORIGIN             add ORIGIN: line
                       ORIGINLINE               ORIGIN: line string
                       EDITOUTSIDEFILE          filename for outside edit

                  File Area Settings
                       FILESLISTFILE            name of file list file
                       SHOWFILEDATE             display file date
                       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




                                        - 8 -



             Socrates BBS (v1.10)                     Installing Socrates



                  Miscellaneous Settings
                       HOTKEYS                  select hot key operation
                       USEPAUSEKEY              use new pause key
                       PAUSEKEY                 new pause key to use
                       USESTOPKEY               use new stop key
                       STOPKEY                  new stop key to use
                       MOREPROMPT               string for full screen
                       LOGFILE                  system log filename
                       INACTIVITYTIMELIMIT      inactivity before logoff
                       DEFAULTTIMESCALLEDTHRESHOLD   base number for
                                                times called
                       TIMESCALLEDMULT          calls limit multiplier
                       DEFAULTSINCELASTCALLEDTHRESHOLD    base number for
                                                time since last called
                       SINCELASTCALLEDMULT      time since last call
                                                limit multiplier
                       STARTCHATMSG             string at start of chat
                       ENDCHATMSG               string at end of chat
                       USERDELETE               user deletion criteria

             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.  The
             maximum line  length allowed  in the  control  file  is  127
             characters.

             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 MULT.SOC
             and INITS.SOC  which SOCRATES  will use.   The  CR-INITS.EXE
             program is executed as follows:

                  CR-INITS <initializationfilename>

             Note that  you will  have to  re-compile the  initialization
             file each time after a change is made before the change will
             take effect.















                                        - 9 -



             Socrates BBS (v1.10)                     Installing Socrates



             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.

             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.  The
             maximum line  length allowed  in the  control  file  is  127
             characters.









                                        - 10 -



             Socrates BBS (v1.10)                     Installing Socrates



             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 <messageareadefinitionfilename>

             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.

             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.







                                        - 11 -



             Socrates BBS (v1.10)                     Installing Socrates



             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.  The
             maximum line  length allowed  in the  control  file  is  127
             characters.

             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 <fileareadefinitionfilename>

             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.















                                        - 12 -



             Socrates BBS (v1.10)                     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.  The
             maximum line  length allowed  in the  control  file  is  127
             characters.

             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 <filename> [filename] [filename] ...

             Note that  you will have to re-compile the program file each
             time after  a change  is made  before the  change will  take
             effect.













                                        - 13 -



             Socrates BBS (v1.10)                     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.









































                                        - 14 -



             Socrates BBS (v1.10)                   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 <label>

             to indicate  that the  following lines  define a  menu.  The
             lines that  follow make  up the  actual menu  and are in the
             format:

                  <delimitedstring>[/] [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.






















                                        - 15 -



             Socrates BBS (v1.10)                   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 types  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*















                                        - 16 -



             Socrates BBS (v1.10)                   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 <label>

             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:

                  <responsestring> [mod] [*]<command> [label] [condition]

             Looks pretty  complicated, huh?   Again,  not really  if you
             take it one piece at a time.

             The <responsestring>  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.





                                        - 17 -



             Socrates BBS (v1.10)                   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
             <command> 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.












                                        - 18 -



             Socrates BBS (v1.10)                   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  four 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
                  *!*  accept any  text as  user input  and do not cancel
                            hotkeys
                  *%*  accept a  number as  user input  and do not cancel
                            hotkeys

             See APPENDIX  4 for complete information and examples of the
             proper use of the response module special codes.



















                                        - 19 -



             Socrates BBS (v1.10)                   Socrates Program File



             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 <label>

             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:

                  <command> [(parameter)] [condition]

             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.

                  *FAILSUCCESS*  end as  successful command  if  previous
                                 command failed.

                  *SUCCESSBREAK* end as  successful command  if  previous
                                 command was successful.


























                                        - 20 -



             Socrates BBS (v1.10)                   Socrates Program File



             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
                       PAUSE                    pause specified time
                       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
                       LINE                     display user input line
                       CONTINUOUS               display user input lines
                       ASSIGNFILE               specify file for output
                       USERASSIGNFILE           specify file for output
                       STARTFILEOUTPUT          output displays to file
                       STOPFILEOUTPUT           output displays normally
                       SETPRIV                  set user privilege level
                       FORCEMORE                turn "more" on
                       FORCEDONTMORE            turn "more" off
                       RESTOREMORE              restore "more" to user
                       RESETMORE                zero "more" line count
                       MORENOW                  force a "more"






















                                        - 21 -



             Socrates BBS (v1.10)                   Socrates Program File


                  Change / Display Commands
                       SHOWCHG                  display user's data
                       SHOWNAME                 display user name
                       SHOWLASTNAME             display user last name
                       SHOWFIRSTNAME            display user first 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
                       SHOWCOMMINFO             display comm port status
                       SHOWCOMMPORT             display comm port number
                       SHOWPRIV                 display user privilege
                       SHOWTIMELEFT             display user time left
                       SHOWTIME                 display a time stamp
                       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)
                       MODPRIVATE               change private flag
                       MODFROM                  change From:
                       MODTO                    change To:
                       MODSUBJECT               change Subject:
                       MODATTACH                change attach flag
                       MODCRASH                 change crash flag
                       MODKILLSENT              change kill/sent flag
                       MODFIDONETFROM           change from address
                       MODFIDONETTO             change to address
                       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

                       (Note that Fido-type message area commands will do
                       nothing in a Socrates-type message area.)



                                        - 22 -



             Socrates BBS (v1.10)                   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 <number> replies
                       REVERSE                  back up <number> replies
                       STAY                     display current message
                       FORWARD1                 go to next subject
                       BACK1                    go to previous subject
                       FORWARD                  advance <number> subjects
                       BACK                     back up <number> subjects
                       GOSUBJ                   go to specified subject
                       SUBJLIST                 display list of subjects
                       START                    start a new subject
                       ADD                      reply to current subject

                       (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








                                        - 23 -



             Socrates BBS (v1.10)                   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 <label>

             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:

                  <filename> [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.












                                        - 24 -



             Socrates BBS (v1.10)                   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 (%)



















                                        - 25 -



             Socrates BBS (v1.10)                   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 |
                       |  MULT.SOC      INITS.SOC     MENU.SOC     |
                       |  MENUINDX.SOC  QUOTETRK.SOC  RESP.SOC     |
                       |  RESPINDX.SOC  MULTINDX.SOC  USERS1.SOC   |
                       |  USERS2.SOC    USERS3.SOC                 |
                       ---------------------------------------------


                       ---------------------------------------------
                       |  C:\SOCRATES\MSGAREAS\PUBLIC\             |
                       |                                           |
                       |  LINK.SOC      SUBJ.SOC      1.MSG        |
                       |  2.MSG         3.MSG         4.MSG        |
                       |  5.MSG         6.MSG         7.MSG        |
                       |                  .                        |
                       |                  .                        |
                       |                  .                        |
                       ---------------------------------------------




                                        - 26 -



             Socrates BBS (v1.10)                   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.BBS     and all files for download |
                       ---------------------------------------------


                       ---------------------------------------------
                       |  C:\SOCRATES\FILEAREA\PRIVATE\            |
                       |                                           |
                       |  FILES.BBS     and all files for download |
                       ---------------------------------------------


                       ---------------------------------------------
                       |  C:\SOCRATES\FILEAREA\NETFILES\           |
                       |                                           |
                       |  FILES.BBS     and all files for download |
                       ---------------------------------------------


             An example  of an  initialization file and a working program
             file are included in the SOCRATES archive.










                                        - 27 -



             Socrates BBS (v1.10)                        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  came 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'.











                                        - 28 -



             Socrates BBS (v1.10)                        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






















                                        - 29 -



             Socrates BBS (v1.10)                        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.





































                                        - 30 -



             Socrates BBS (v1.10)                        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








                                        - 31 -



             Socrates BBS (v1.10)                        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.

             If RELOGIN  is called  with the  command line switch /T, the
             time remaining  will be  adjusted to  account for  the  time
             spent outside  of Socrates,  by  deducting  the  time  spent
             outside from the time remaining.

             Do not use the RELOGIN.EXE program unless Relogin to the BBS
             is actually intended.































                                        - 32 -



             Socrates BBS (v1.10)              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.




















                                        - 33 -



             Socrates BBS (v1.10)              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,
             USERS2.SOC and USERS3.SOC files reside and enter "SOC-USER".

             The program  can also be called with the command line option
             of /A  to send  all display  in ANSI  format  which  can  be
             redirected for remote maintenance.

             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.10 -- Copyright 1990, Mikronetics

                Commands:

                Movement    Editing     Deleting    Adding
                > Next      N Name      K Kill      + New Entry
                < Prev      P Password  U Unkill
                F First     V Privilege C Criteria Deletion
                E End       H Help      ! Purge
                / Search    M More
                            T Terminal  ------------
                            W Width     # DL/UL amounts
                            L Length    1 Active TimeBank
                            S Signals   2 Pending TimeBank
                            D Data      B Approve TimeBank time

                Q Quit







                                        - 34 -



             Socrates BBS (v1.10)              The System Operator's Role



             The majority of the commands are straightforward and need no
             explanation.     The  commands   that   may   require   some
             clarification are the Deleting commands.

             The main  thing to remember is that when a record is killed,
             either using  the "Kill" or the "Criteria Deletion" 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.

             The criteria  for the "Criteria Deletion" command is defined
             in the initialization file using the USERDELETE setting.

             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.

             User list  deletion can  also be done using the KILLCRIT.EXE
             program.   This also  takes its criteria from the setting in
             the initialization  file but  does immediate deletion rather
             than marking the entries and having to purge manually.

             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 <control-file>





















                                        - 35 -



             Socrates BBS (v1.10)              The System Operator's Role



             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, and  the users'
                                 message read information is updated.

             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 the
             user file  for Fido  type areas and in files in each message
             directory for  Socrates type  areas.   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.








                                        - 36 -



             Socrates BBS (v1.10)              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.

                       If the  command line  switch /R  is used, SOC-SCAN
                       will re-scan everything in the message areas.
























                                        - 37 -



             Socrates BBS (v1.10)          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.




                                        - 38 -



             Socrates BBS (v1.10)      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 program 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<number>      Returns the  True or False status of the
                                 specified signal.

                  Z<number>      Returns the  True or False status of the
                                 specified state.

                  L              True if  SOCRATES is  running in "local"
                                 mode.

                  MR             True if the user has enabled "More".

                  SOC            True if  the current  message area  is a
                                 Socrates type area.

                  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.




                                        - 39 -



             Socrates BBS (v1.10)      APPENDIX 2 - Evaluating Conditions


                  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.

                  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.

                  TCT            True if  the user's current times called
                                 exceeds   the    limit   set    in   the
                                 initialization file.

                  SCT            True if  the user's  current time  since
                                 last call  exceeds the  limit set in the
                                 initialization file.















                                        - 40 -



             Socrates BBS (v1.10)      APPENDIX 2 - Evaluating Conditions



             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.

                  W              Current user's screen width.

                  LN             Current user's screen length.

                  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.

             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

                  #              "does not equal" comparitor

                  ()             Parentheses are  used to  set precedence
                                 for evaluating expressions




                                        - 41 -



             Socrates BBS (v1.10)      APPENDIX 2 - Evaluating Conditions


             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

                  p#255          User's privilege is not equal to 255











































                                        - 42 -



             Socrates BBS (v1.10)         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 <number>

             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

             -----------------------------------------------------------

             ALIAS <number> <condition>

             Setting to  determine whether  an alias  (from a  user  data
             field) is  used as  the name in a message FROM: field when a
             user enters  or  replies  to  a  message  using  the  ENTER,
             RESPOND, START  or ADD  commands.   This setting  identifies
             which user  data field is used as well as the conditions for
             the use.   There  can be any number of ALIAS settings in the
             initialization file.   The  one that applies is the last one
             that evaluates to TRUE.

             Default: none

             Valid inputs: (1) number of user data field to use
                           (2) any condition

             Example:

                  ALIAS 3 (a=2 + a>7) & p=>15

             -----------------------------------------------------------










                                        - 43 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             ALLOWQUOTING <condition>

             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

             -----------------------------------------------------------

             ANONYMOUS <condition>

             Setting to  determine whether an anonymous name is used when
             entering messages.

             Default: F

             Valid inputs: any condition

             Example:

                  ANONYMOUS (a=2 + a>7) & p=>15

             -----------------------------------------------------------

             ANONYMOUSNAME <string>

             Anonymous  name   to  use  when  entering  messages  if  the
             ANONYMOUS option is set to TRUE.

             Default: 'Anonymous'

             Valid inputs: delimited string

             Example:

                  ANONYMOUSNAME "Joe Average User"

             -----------------------------------------------------------












                                        - 44 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             APPENDORIGIN <condition>

             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 <number>

             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: F

             Valid inputs: n/a

             Example:

                  CLEARBEFOREMESSAGE

             -----------------------------------------------------------











                                        - 45 -



             Socrates BBS (v1.10)         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: F

             Valid inputs: n/a

             Example:

                  CUTATSEENBY

             -----------------------------------------------------------

             DAILYBYTESRATIO <number>

             Ratio of daily downloaded / uploaded bytes that users should
             not exceed.

             Default: 1024

             Valid inputs: positive integer

             Example:

                  DAILYBYTESRATIO 15

             -----------------------------------------------------------

             DAILYBYTESTHRESHOLD <number>

             Default  daily  limit  of  bytes  downloaded  which  may  be
             modified by multipliers.

             Default: 524288

             Valid inputs: positive integer

             Example:

                  DAILYBYTESTHRESHOLD 2000000

             -----------------------------------------------------------










                                        - 46 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             DAILYFILESRATIO <number>

             Default daily  ratio of  downloaded /  uploaded  files  that
             users should not exceed.

             Default: 1024

             Valid inputs: positive integer

             Example:

                  DAILYFILESRATIO 10

             -----------------------------------------------------------

             DAILYFILESTHRESHOLD <number>

             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: F

             Valid inputs: n/a

             Example:

                  DAILYTIMEBANKROLLOVER

             -----------------------------------------------------------










                                        - 47 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             DAILYTIMELIMIT <number>

             Default daily  time limit  in minutes.  This may be modified
             by multipliers.

             Default: 240

             Valid inputs: 0 to 65535

             Example:

                  DAILYTIMELIMIT 90

             -----------------------------------------------------------

             DEFAULTCRASHON

             Setting to  determine whether  the "crash"  bit is  set  for
             NetMail messages.

             Default: F

             Valid inputs: n/a

             Example:

                  DEFAULTCRASHON ;crash bit set on all NetMail

             -----------------------------------------------------------

             DEFAULTFILEATTACHON

             Setting to  determine whether  the "file  attach" bit is set
             for NetMail messages.

             Default: F

             Valid inputs: n/a

             Example:

                  DEFAULTFILEATTACHON ;f/a bit set on all NetMail

             -----------------------------------------------------------












                                        - 48 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             DEFAULTKILLSENTON

             Setting to  determine whether the "kill/sent" bit is set for
             NetMail messages.

             Default: F

             Valid inputs: n/a

             Example:

                  DEFAULTKILLSENTON ;kill/sent bit set on all NetMail

             -----------------------------------------------------------

             DEFAULTSINCELASTCALLEDTHRESHOLD <number>

             Default number of days since last called limit.  This may be
             modified by multipliers.

             Default: 90

             Valid inputs: 0 to 65535

             Example:

                  DEFAULTSINCELASTCALLEDTHRESHOLD 30

             -----------------------------------------------------------

             EDITOUTSIDEFILE <string>

             The filename used for the EDITOUTSIDE command.

             Default: 'message.txt'

             Valid inputs: delimited string (filename)

             Example:

                  EDITOUTSIDEFILE "editfile.tmp"

             -----------------------------------------------------------













                                        - 49 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             DEFAULTTIMESCALLEDTHRESHOLD <number>

             Default number  of times called limit.  This may be modified
             by multipliers.

             Default: 2

             Valid inputs: 0 to 65535

             Example:

                  DEFAULTTIMESCALLEDTHRESHOLD 5

             -----------------------------------------------------------

             ENDCHATMSG <string>

             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."

             -----------------------------------------------------------

             EXCEEDEDDAILYTLIMCOMM <commandlistlabel>

             Command list  executed when  a user has exceeded their daily
             time limit.

             Default: DAILYTIMEOUT

             Valid inputs: any command list label

             Example:

                  EXCEEDEDDAILYTLIMCOMM overtime

             -----------------------------------------------------------













                                        - 50 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             FIDONET <condition>

             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 <string>

             File used for listing the files in a download area.

             Default: "FILES.BBS"

             Valid inputs: any delimited valid file name

             Example:

                  FILESLISTFILE "filelist.txt"

             -----------------------------------------------------------

             FILESMULT <number> [<condition>]

             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: (1) positive integer
                           (2) any condition

             Example:

                  FILESMULT 80

             -----------------------------------------------------------






                                        - 51 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             FIRSTMENU <menulabel>

             First menu presented to a caller after a "normal" log on.

             Default: MAIN

             Valid inputs: any menu label

             Example:

                  FIRSTMENU top

             -----------------------------------------------------------

             FORCEPRIVATE <condition>

             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

             -----------------------------------------------------------

             FORGOTPASSWORDCOMM <commandlistlabel>

             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

             -----------------------------------------------------------












                                        - 52 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             FORGOTPASSWORDMENU <commandlistlabel>

             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:

                  FORGOTPASSWORDMENU cantrememberit

             -----------------------------------------------------------

             HOTKEYS

             Setting to determine whether "hot key" menus are to be used.
             This means  that the  user will  not have  to press ENTER in
             order for  a command  to be  executed.  As soon as a command
             key is  entered, Socrates  will quit  displaying the current
             menu and execute the command.

             Default: none

             Valid inputs: n/a

             Example:

                  HOTKEYS

             -----------------------------------------------------------

             INACTIVITYTIMELIMIT <number>

             Number of  minutes of  inactivity before  a user gets logged
             off.

             Default: 5

             Valid inputs: 0 to 65535

             Example:

                  INACTIVITYTIMELIMIT 2

             -----------------------------------------------------------









                                        - 53 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             INTROCOMM <commandlistlabel>

             Command list executed after a successful log on.

             Default: INTRO

             Valid inputs: any command list label

             Example:

                  INTROCOMM hitherebuddy

             -----------------------------------------------------------

             LOGFILE <string>

             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>

             Number of minutes a caller has to successfully log on.

             Default: 4

             Valid inputs: 0 to 65535

             Example:

                  LOGONTIME 22     ;For the really slow typists!

             -----------------------------------------------------------















                                        - 54 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             MODEMHANGUP <string>

             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 <string>

             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

             -----------------------------------------------------------











                                        - 55 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             MOREPROMPT <string>

             String sent to the caller when their screen is full.

             Default: "More?

             Valid inputs: delimited string less than 128 characters

             Example:

                  MOREPROMPT "Any key to continue..."

             -----------------------------------------------------------

             NAMEPROMPT <string>

             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 <number>

             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

             -----------------------------------------------------------














                                        - 56 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             NEWUSERCOMM1 <commandlistlabel>

             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

             -----------------------------------------------------------

             NEWUSERCOMM2 <commandlistlabel>

             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 <number>

             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

             -----------------------------------------------------------












                                        - 57 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             NEWUSERMENU <menulabel>

             The first menu presented to a new user.

             Default: NEW_USER

             Valid inputs: any menu label

             Example:

                  NEWUSERMENU firstevermenu

             -----------------------------------------------------------

             NEWUSERPRIV <number>

             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 <number>

             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

             -----------------------------------------------------------













                                        - 58 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             NEWUSERSCREENWIDTH <number>

             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

             -----------------------------------------------------------

             NEWUSERSIGNALS <number> [<number> <number> ...]

             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 <number>

             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

             -----------------------------------------------------------












                                        - 59 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             ONLINEUPLOADREFUND <number>

             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

             -----------------------------------------------------------

             ORIGINLINE <string>

             String appended  to messages  entered when  APPENDORIGIN  is
             selected.   If a file called ORIGIN (no extension) exists in
             the message  area directory, it will be read and the text in
             it will  be used  as the  origin line rather than the string
             specified with the ORIGINLINE setting.

             Default: ""

             Valid inputs: delimited string less than 128 characters

             Example:

                  ORIGINLINE "The Best Darn BBS Around!"

             -----------------------------------------------------------

             PASSWORDATTEMPTS <number>

             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

             -----------------------------------------------------------





                                        - 60 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             PAUSEKEY <string>

             The first  character of  the delimited string is used as the
             user key  to pause  the current  display.   If this key is a
             character, both  upper and lower case are accepted as input.
             This  setting  is  only  active  if  both  the  HOTKEYS  and
                                                             _______
             USEPAUSEKEY settings are TRUE.

             Default: none

             Valid inputs: delimited string

             Example:

                  PAUSEKEY "Pause (only 1st char is significant)"

             -----------------------------------------------------------

             PENDINGTIMEBANKUPLOADREFUND <number>

             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

             -----------------------------------------------------------

             POINT <number>

             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

             -----------------------------------------------------------






                                        - 61 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             PORT <number>

             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: F

             Valid inputs: n/a

             Example:

                  PRIVATESYSTEM

             -----------------------------------------------------------

             READPRIVATE <condition>

             Setting to  determine whether  the users  can read  messages
             marked as "private".

             Default: F

             Valid inputs: any condition

             Example:

                  READPRIVATE -a=18 & p>199

             -----------------------------------------------------------










                                        - 62 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             SESSIONBYTESRATIO <number>

             Ratio of  session downloaded  / uploaded  bytes  that  users
             should not exceed.

             Default: 1024

             Valid inputs: positive integer

             Example:

                  SESSIONBYTESRATIO 512

             -----------------------------------------------------------

             SESSIONBYTESTHRESHOLD <number>

             Default session  limit of  bytes  downloaded  which  may  be
             modified by multipliers.

             Default: 131072

             Valid inputs: positive integer

             Example:

                  SESSIONBYTESTHRESHOLD 2000000

             -----------------------------------------------------------

             SESSIONFILESRATIO <number>

             Ratio of  session downloaded  / uploaded  files  that  users
             should not exceed.

             Default: 1024

             Valid inputs: positive integer

             Example:

                  SESSIONFILESRATIO 100

             -----------------------------------------------------------












                                        - 63 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             SESSIONFILESTHRESHOLD <number>

             Default session  limit of  files  downloaded  which  may  be
             modified by multipliers.

             Default: 8

             Valid inputs: positive integer

             Example:

                  SESSIONFILESTHRESHOLD 2

             -----------------------------------------------------------

             SESSIONTIMELIMIT <number>

             Default session  time limit in minutes. This may be modified
             by multipliers.

             Default: 60

             Valid inputs: 0 to 65535

             Example:

                  SESSIONTIMELIMIT 90

             -----------------------------------------------------------

             SETCRASH <condition>

             Setting to determine whether the user can modify the "crash"
             bit for  NetMail messages.   The  user will  be  allowed  to
             change the  setting when  either the ENTER or START commands
             are executed.

             Default: F

             Valid inputs: any condition

             Example:

                  SETCRASH p=255

             -----------------------------------------------------------










                                        - 64 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             SETFILEATTACH <condition>

             Setting to  determine whether  the user can modify the "file
             attach" bit  for NetMail messages.  The user will be allowed
             to change  the  setting  when  either  the  ENTER  or  START
             commands are executed.

             Default: F

             Valid inputs: any condition

             Example:

                  SETFILEATTACH p=255

             -----------------------------------------------------------

             SETKILLSENT <condition>

             Setting  to  determine  whether  the  user  can  modify  the
             "kill/sent" bit  for NetMail  messages.   The user  will  be
             allowed to change the setting when either the ENTER or START
             commands are executed.

             Default: F

             Valid inputs: any condition

             Example:

                  SETKILLSENT p=255

             -----------------------------------------------------------

             SHOWFILEDATE

             Setting to determine whether the file dates are displayed to
             the user when listing the contents of a download area.

             Default: F

             Valid inputs: none

             Example:

                  SHOWFILEDATE

             -----------------------------------------------------------








                                        - 65 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             SINCELASTCALLEDMULT <number> [<condition>]

             Multiplier to  apply to  the default  time since  last  call
             limits.   There can  be more  than  one  SINCELASTCALLEDMULT
             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: (1) positive integer
                           (2) any condition

             Example:

                  SINCELASTCALLEDMULT 80 p>10

             -----------------------------------------------------------

             SKIPMESSAGEINPUT <condition>

             Setting to  determine whether  Socrates will  accept initial
             inputting of  text.   If SKIPMESSAGEINPUT evaluates to TRUE,
             the From,  To, Subject  and FidoNet fields are filled in but
             the initial  inputting of  message text  is not done when an
             ENTER, RESPOND,  START or  ADD command  is executed.    This
             allows for the use of an external editor for message entry.

             Default: F

             Valid inputs: any condition

             Example:

                  SKIPMESSAGEINPUT p>5 & s16 & tm=1

             -----------------------------------------------------------

             STARTCHATMSG <string>

             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..."

             -----------------------------------------------------------



                                        - 66 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             STOPKEY <string>

             The first  character of  the delimited string is used as the
             user key  to stop  (abort) the current display.  If this key
             is a  character, both  upper and  lower case are accepted as
             input.   This setting is only active if both the HOTKEYS and
                                                              _______
             USESTOPKEY settings are TRUE.

             Default: none

             Valid inputs: delimited string

             Example:

                  STOPKEY "Stop (only 1st char is significant)"

             -----------------------------------------------------------

             TIMELIMIT <number> [<condition>]

             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: (1) positive integer
                           (2) any condition

             Example:

                  TIMELIMIT 80

             -----------------------------------------------------------



















                                        - 67 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             TIMESCALLEDMULT <number> [<condition>]

             Multiplier to  apply to  the default  times  called  limits.
             There can  be  more  than  one  TIMESCALLEDMULT  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: (1) positive integer
                           (2) any condition

             Example:

                  TIMESCALLEDMULT 80 p>10

             -----------------------------------------------------------

             TOTALBYTESRATIO <number>

             Ratio of  all-time total  downloaded /  uploaded bytes  that
             users should not exceed.

             Default: 8

             Valid inputs: positive integer

             Example:

                  TOTALBYTESRATIO 10

             -----------------------------------------------------------

             TOTALBYTESTHRESHOLD <number>

             Default all-time  total limit  of bytes downloaded which may
             be modified by multipliers.

             Default: 1048576

             Valid inputs: positive integer

             Example:

                  TOTALBYTESTHRESHOLD 10000000

             -----------------------------------------------------------






                                        - 68 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             TOTALFILESRATIO <number>

             Ratio of  all-time total  downloaded /  uploaded files  that
             users should not exceed.

             Default: 1024

             Valid inputs: positive integer

             Example:

                  TOTALFILESRATIO 100

             -----------------------------------------------------------

             TOTALFILESTHRESHOLD <number>

             Default all-time  total limit  of files downloaded which may
             be modified by multipliers.

             Default: 64

             Valid inputs: positive integer

             Example:

                  TOTALFILESTHRESHOLD 1000

             -----------------------------------------------------------

             USEPAUSEKEY

             Setting to  determine whether  the pause  key is  to be  re-
             defined for  use with  hot keys.  This setting is only valid
             if the  HOTKEYS setting  is TRUE.  The PAUSEKEY setting must
             be used to define the new key to be used.

             Default: F

             Valid inputs: n/a

             Example:

                  USEPAUSEKEY

             -----------------------------------------------------------










                                        - 69 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             USERDELETE <condition>

             Setting to  determine the  criteria used  by  the  "Criteria
             Deletion" command from SOC-USER.EXE or from the KILLCRIT.EXE
             program.

             Default: F

             Valid inputs: any condition

             Example:

                  USERDELETE SCT & p<250 & -s250

             -----------------------------------------------------------

             USESTOPKEY

             Setting to  determine whether  the stop  key is  to  be  re-
             defined for  use with  hot keys.  This setting is only valid
             if the HOTKEYS setting is TRUE.  The STOPKEY setting must be
             used to define the new key to be used.

             Default: F

             Valid inputs: n/a

             Example:

                  USESTOPKEY

             -----------------------------------------------------------

             WELCOMECOMM <commandlistlabel>

             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

             -----------------------------------------------------------









                                        - 70 -



             Socrates BBS (v1.10)         APPENDIX 3 - Init File Settings



             WRITEPRIVATE <condition>

             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 <number>

             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

             -----------------------------------------------------------



























                                        - 71 -



             Socrates BBS (v1.10)       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  any  text
                            input and  use the  input as  User Input.  If
                            the user  data is  input to a COMMLIST() then
                            the user  data is  available for  use by  the
                            first command in the COMMLIST.  This does not
                            cancel any pending hotkey input.

             Parameters:    none

             Failure State: n/a

             Example:

                            menu userlist
                            ''/
                            'Pattern to match (* = All): '
                            resp userlist
                            ''  null     main
                            *!* userlist main

             -----------------------------------------------------------























                                        - 72 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *#*

             Module:        Response

             Description:   A special  code which  will accept  a numeric
                            input and  use the  input as  User Input.  If
                            the user  data is  input to a COMMLIST() then
                            the user  data is  available for  use by  the
                            first command in the COMMLIST.

             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.  If
                            the user  data is  input to a COMMLIST() then
                            the user  data is  available for  use by  the
                            first command in the COMMLIST.

             Parameters:    none

             Failure State: n/a

             Example:

                            menu userlist
                            ''/
                            'Pattern to match (* = All): '
                            resp userlist
                            ''  null     main
                            *@* userlist main

             -----------------------------------------------------------







                                        - 73 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *%*

             Module:        Response

             Description:   A special  code which  will accept  a numeric
                            input and  use the  input as  User Input.  If
                            the user  data is  input to a COMMLIST() then
                            the user  data is  available for  use by  the
                            first command in the COMMLIST.  This does not
                            cancel any pending hotkey input.

             Parameters:    none

             Failure State: n/a

             Example:

                            menu CHGWIDTH
                            ''/
                            'New Width: '
                            resp CHGWIDTH
                            ''  null     change
                            *%* CHGWIDTH change

             -----------------------------------------------------------

             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

             -----------------------------------------------------------












                                        - 74 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------















                                        - 75 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             AREA (<messageareanumber>)

             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

             -----------------------------------------------------------














                                        - 76 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             ASSIGNFILE (filename)

             Module:        Response or Command

             Description:   A command  that will  specify a file for text
                            output.   Output can be directed to this file
                            using  the   STARTFILEOUTPUT  command.    The
                            STOPFILEOUTPUT command is used to stop output
                            to this  file.   If the  file exists,  output
                            will  be   appended  to  the  existing  file.
                            Socrates will  remember the  name of  the the
                            output file assigned until another ASSIGNFILE
                            or USERASSIGNFILE command is executed.

             Parameters:    output file name

             Failure State: cannot access or create file

             Example:

                            comm userinfo
                            assignfile (DOORFILE.TXT)
                            startfileoutput
                            showname
                            stopfileoutput

             -----------------------------------------------------------

             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

             -----------------------------------------------------------






                                        - 77 -



             Socrates BBS (v1.10)       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 (number)

             Module:        Response or Command

             Description:   A Change  command that  will input and change
                            the specified  user's data  field.  There are
                            256 user data field, numbered from 0 to 255.

             Parameters:    number of field to change

             Failure State: blank input

             Example:

                            resp change

                            'D' [o,c] CHGDATA (16)


             -----------------------------------------------------------
















                                        - 78 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------










                                        - 79 -



             Socrates BBS (v1.10)       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


             -----------------------------------------------------------

















                                        - 80 -



             Socrates BBS (v1.10)       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
                            <esc>[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

             -----------------------------------------------------------





                                        - 81 -



             Socrates BBS (v1.10)       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'/

             -----------------------------------------------------------









                                        - 82 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             COMM <commandmodulelabel>

             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 (<commandlistlabel>)

             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

             -----------------------------------------------------------














                                        - 83 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             CONTINUOUS

             Module:        Response or Command

             Description:   A command  to input  text from  the user  and
                            write it,  complete with word wrapping, until
                            a blank  line is  entered.   The text will be
                            written to  a specified  file if  output  has
                            been  redirected  using  the  STARTFILEOUTPUT
                            command.

             Parameters:    none

             Failure State: none

             Example:

                            comm writecolors
                            assignfile(peeve.log)
                            startfileoutput
                            writeln(What is your pet peeve and why?)
                            continuous
                            stopfileoutput

             -----------------------------------------------------------

             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)

             -----------------------------------------------------------






                                        - 84 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------















                                        - 85 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------


















                                        - 86 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------



















                                        - 87 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------









                                        - 88 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------

















                                        - 89 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------
















                                        - 90 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             EDITOUTSIDE

             Module:        Response or Command

             Description:   A message  edit command  that will  create  a
                            file   whose   name   is   defined   in   the
                            initialization file  setting EDITOUTSIDEFILE.
                            This file  will contain  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 back to message format
                            for further  editing and  delete the  working
                            file.

             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

             -----------------------------------------------------------












                                        - 91 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------




















                                        - 92 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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)

             -----------------------------------------------------------

             EXIT (<errorlevel>)

             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)

             -----------------------------------------------------------








                                        - 93 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *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

             -----------------------------------------------------------

             *FAILSUCCESS*

             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)
                            *FAILSUCCESS*
                            file(newuser2.txt)

             -----------------------------------------------------------












                                        - 94 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             FILE (<filename>)

             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

             -----------------------------------------------------------

             FILEAREA (<fileareanumber>)

             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

             -----------------------------------------------------------



















                                        - 95 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             FILELIST (<filelistlabel>)

             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

             -----------------------------------------------------------

             FLST <filemodulelabel>

             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

             -----------------------------------------------------------



















                                        - 96 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *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:'

             -----------------------------------------------------------

             FORCEDONTMORE

             Module:        Response or Command

             Description:   A command  that will  turn  off  the  "More?"
                            prompt, regardless of the user's setting.

             Parameters:    none

             Failure State: none

             Example:

                            comm show_ansifile
                            forcedontmore
                            file(picture.ans)
                            morenow
                            restoremore

             -----------------------------------------------------------







                                        - 97 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             FORCEMORE

             Module:        Response or Command

             Description:   A command  that  will  turn  on  the  "More?"
                            prompt, regardless of the user's setting.

             Parameters:    none

             Failure State: none

             Example:

                            comm show_longfile
                            forcemore
                            file(longfile.txt)
                            restoremore

             -----------------------------------------------------------

             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

             -----------------------------------------------------------














                                        - 98 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------

















                                        - 99 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             *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: '

             -----------------------------------------------------------










                                       - 100 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------























                                       - 101 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             LASTTIMECALLED

             Module:        Response or Command

             Description:   A command  to display  to the  user the  last
                            time they called.  This command does not send
                            a CRLF after the string.

             Parameters:    none

             Failure State: none

             Example:

                            comm info
                            write(You last called on )
                            lasttimecalled
                            writeln()

             -----------------------------------------------------------

             LINE

             Module:        Response or Command

             Description:   A command  to input  a line from the user and
                            write it.   The  line will  be written  to  a
                            specified file  if output has been redirected
                            using the STARTFILEOUTPUT command.

             Parameters:    none

             Failure State: none

             Example:

                            comm writecolors
                            assignfile(colors.log)
                            startfileoutput
                            writeln(What is your favorite color?)
                            line
                            stopfileoutput

             -----------------------------------------------------------












                                       - 102 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------















                                       - 103 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             LOGOFF [(filelistlabel)]

             Module:        Response or Command

             Description:   Executes a  FILELIST of  the  <filelistlabel>
                            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)

             -----------------------------------------------------------














                                       - 104 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             MENU <menumodulelabel>

             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. : '

             -----------------------------------------------------------

















                                       - 105 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             MODATTACH

             Module:        Response or Command

             Description:   A FidoNet  message command  that will  change
                            the FileAttach  bit in  the  current  message
                            header.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp msg_mod
                            'A' [o,c] modattach msg_mod a=6

             -----------------------------------------------------------

             MODCRASH

             Module:        Response or Command

             Description:   A FidoNet  message command  that will  change
                            the Crash bit in the current message header.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp msg_mod
                            'C' [o,c] modcrash msg_mod a=6

             -----------------------------------------------------------




















                                       - 106 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             MODFIDONETFROM

             Module:        Response or Command

             Description:   A FidoNet  message command  that will  change
                            the  FidoNet   originating  address   in  the
                            current message header.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp mod_msg
                            'O' [o,c] modfidonetfrom mod_msg a=6

             -----------------------------------------------------------

             MODFIDONETTO

             Module:        Response or Command

             Description:   A FidoNet  message command  that will  change
                            the  FidoNet   destination  address   in  the
                            current message header.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp mod_msg
                            'D' [o,c] modfidonetto mod_msg a=6

             -----------------------------------------------------------



















                                       - 107 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             MODFROM

             Module:        Response or Command

             Description:   A message  command that will change the FROM:
                            field in the current message.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp msg_mod
                            'F' [o,c] modfrom msg_mod

             -----------------------------------------------------------

             MODKILLSENT

             Module:        Response or Command

             Description:   A FidoNet  message command  that will  change
                            the  KillSent  bit  in  the  current  message
                            header.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp mod_msg
                            'K' [o,c] modkillsent mod_msg a=6

             -----------------------------------------------------------




















                                       - 108 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             MODPRIVATE

             Module:        Response or Command

             Description:   A message  area command  that will change the
                            Private flag  in the  header of  the  current
                            message being read.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp message_mod
                            'P' [o,c] modprivate message p=255

             -----------------------------------------------------------

             MODSUBJECT

             Module:        Response or Command

             Description:   A  message   command  that  will  change  the
                            SUBJECT: field of the current message.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp msg_mod
                            'J' [o,c] modsubject   msg_mod -soc

             -----------------------------------------------------------




















                                       - 109 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             MODTO

             Module:        Response or Command

             Description:   A message  command that  will change  the TO:
                            field of the current message.

             Parameters:    none

             Failure State: unable to access message

             Example:

                            resp msg_mod
                            'T' [o,c] modto   msg_mod

             -----------------------------------------------------------

             MORENOW

             Module:        Response or Command

             Description:   A command  that will  force a "More?" prompt,
                            regardless of the user's setting.

             Parameters:    none

             Failure State: none

             Example:

                            comm show_ansifile
                            forcedontmore
                            file(picture.ans)
                            morenow
                            restoremore

             -----------------------------------------------------------


















                                       - 110 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *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: '

             -----------------------------------------------------------

             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

             -----------------------------------------------------------






                                       - 111 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------

















                                       - 112 -



             Socrates BBS (v1.10)       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
                            does not send a CRLF after the string.

             Parameters:    none

             Failure State: none

             Example:

                            comm info
                            write(You are caller number )
                            numofcallers
                            writeln( to the system.)

             -----------------------------------------------------------













                                       - 113 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------

             PAUSE (<number>)

             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:    nunber of 1/10 seconds to pause

             Failure State: none

             Example:

                            comm display_em
                            file (part1.txt)
                            pause (50)
                            file (part2.txt)

             -----------------------------------------------------------


















                                       - 114 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------
















                                       - 115 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             RESETMORE

             Module:        Response or Command

             Description:   A command  that will  set the  "More?" prompt
                            line count to zero so that a full screen must
                            be sent before a "More?" occurs.

             Parameters:    none

             Failure State: none

             Example:

                            comm show_longfile
                            forcemore
                            file(longfile.txt)
                            restoremore
                            resetmore

             -----------------------------------------------------------

             RESP <responsemodulelabel>

             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

             -----------------------------------------------------------













                                       - 116 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------

             RESTOREMORE

             Module:        Response or Command

             Description:   A command that will return the "More?" prompt
                            to the user's setting.

             Parameters:    none

             Failure State: none

             Example:

                            comm show_longfile
                            forcemore
                            file(longfile.txt)
                            restoremore

             -----------------------------------------------------------

















                                       - 117 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------














                                       - 118 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             SETPRIV (number)

             Module:        Response or Command

             Description:   A command  that will  set the privilege level
                            for the current user.

             Parameters:    privilege level

             Failure State: none

             Example:

                            setpriv (16) ;after answering questions

             -----------------------------------------------------------





















                                       - 119 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------

















                                       - 120 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------




















                                       - 121 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             SHOWCOMMINFO

             Module:        Response or Command

             Description:   Command to display the current communications
                            port information.   Information  is shown  in
                            the form of "2400 BAUD,N,8,1".

             Parameters:    none

             Failure State: none

             Example:

                            RESP show_comm_data
                            'S' [o,c] showcomminfo show_user_data

             -----------------------------------------------------------

             SHOWCOMMPORT

             Module:        Response or Command

             Description:   Command to display the current communications
                            port number.

             Parameters:    none

             Failure State: none

             Example:

                            RESP show_comm_data
                            'P' [o,c] showcommport show_user_data

             -----------------------------------------------------------




















                                       - 122 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             SHOWDATA (number)

             Module:        Response or Command

             Description:   A  Change   command  that  will  display  the
                            specified user's  data field.   There are 256
                            user data field, numbered from 0 to 255.

             Parameters:    number of field to change

             Failure State: none

             Example:

                            RESP show_user_data
                            'D' [o,c] showdata(16) 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

             -----------------------------------------------------------

             SHOWFIRSTNAME

             Module:        Response or Command

             Description:   Change command  to display the user's account
                            first name.  This shows everything except the
                            last word  of the user's name (delimited by a
                            space).   If there  are no spaces, nothing is
                            shown.

             Parameters:    none

             Failure State: none

             Example:

                            comm last_first
                            showlastname
                            write(, )
                            showfirstname

             -----------------------------------------------------------








                                       - 123 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             SHOWLASTNAME

             Module:        Response or Command

             Description:   Change command  to display the user's account
                            last name.   This  shows the last word of the
                            user's name (delimited by a space).  If there
                            are no spaces, the whole name is shown.

             Parameters:    none

             Failure State: none

             Example:

                            comm last_first
                            showlastname
                            write(, )
                            showfirstname

             -----------------------------------------------------------










                                       - 124 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------







                                       - 125 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------













                                       - 126 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             SHOWPRIV

             Module:        Response or Command

             Description:   Change command  to display the user's account
                            privilege.

             Parameters:    none

             Failure State: none

             Example:

                            resp show_user_data
                            'D' [o,c] showdata show_user_data
                            'N' [o,c] showname show_user_data
                            'V' [o,c] showpriv 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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------







                                       - 127 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             SHOWTIME

             Module:        Response or Command

             Description:   Change command  to display  the current  time
                            stamp.

             Parameters:    none

             Failure State: none

             Example:

                            comm log_entry
                            assignfile(callers.log)
                            startfileoutput
                            showtime
                            writeln()
                            showname
                            writeln()
                            writeln()
                            stopfileoutput

             -----------------------------------------------------------







                                       - 128 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             SHOWTIMELEFT

             Module:        Response or Command

             Description:   Change command  to display  the  user's  time
                            remaining.

             Parameters:    none

             Failure State: none

             Example:

                            comm outside
                            assignfile(outside.inf)
                            startfileoutput
                            showname
                            writeln()
                            showtimeleft
                            writeln()
                            stopfileoutput

             -----------------------------------------------------------

             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

             -----------------------------------------------------------








                                       - 129 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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)

             -----------------------------------------------------------

             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)

             -----------------------------------------------------------



















                                       - 130 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             *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:'

             -----------------------------------------------------------





























                                       - 131 -



             Socrates BBS (v1.10)       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)

             -----------------------------------------------------------



























                                       - 132 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             STARTFILEOUTPUT

             Module:        Response or Command

             Description:   Command to start redirecting text output to a
                            file  specified   using  the   ASSIGNFILE  or
                            USERASSIGNFILE commands.  If the file exists,
                            output will  be appended  to the  end of  the
                            existing file.   Socrates  will remember  the
                            name of  the the  output file  assigned until
                            another ASSIGNFILE  or USERASSIGNFILE command
                            is executed  so that multiple STARTFILEOUTPUT
                            / STOPFILEOUTPUT  commands  can  be  executed
                            without having  to specify  the  output  file
                            each time.

             Parameters:    none

             Failure State: none

             Example:

                            comm userinfo
                            assignfile(userinfo.txt)
                            startfileoutput
                            showname
                            stopfileoutput

             -----------------------------------------------------------



























                                       - 133 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             STOPFILEOUTPUT

             Module:        Response or Command

             Description:   Command to  stop redirecting text output to a
                            file  specified   using  the   ASSIGNFILE  or
                            USERASSIGNFILE commands  and close  the file.
                            Further   information   will   be   displayed
                            normally.  Socrates will remember the name of
                            the the  output file  assigned until  another
                            ASSIGNFILE  or   USERASSIGNFILE  command   is
                            executed so  that multiple  STARTFILEOUTPUT /
                            STOPFILEOUTPUT  commands   can  be   executed
                            without having  to specify  the  output  file
                            each time.

             Parameters:    none

             Failure State: none

             Example:

                            comm userinfo
                            assignfile(userinfo.txt)
                            startfileoutput
                            showname
                            stopfileoutput

             -----------------------------------------------------------

             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
                            stateoff(1)
                            stateon(2)
                            linkup

             -----------------------------------------------------------







                                       - 134 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------



















                                       - 135 -



             Socrates BBS (v1.10)       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: '

             -----------------------------------------------------------






















                                       - 136 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------











                                       - 137 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------














                                       - 138 -



             Socrates BBS (v1.10)       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:'

             -----------------------------------------------------------



                                       - 139 -



             Socrates BBS (v1.10)       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

             -----------------------------------------------------------































                                       - 140 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             USERASSIGNFILE(filename)

             Module:        Response or Command

             Description:   A command  that will  accept user  input  and
                            specify a  file for  text output.  Output can
                            be  directed   to   this   file   using   the
                            STARTFILEOUTPUT command.   The STOPFILEOUTPUT
                            command is  used to stop output to this file.
                            If the  file exists,  output will be appended
                            to the existing file.  Socrates will remember
                            the name  of the  the  output  file  assigned
                            until another  ASSIGNFILE  or  USERASSIGNFILE
                            command is executed.

             Parameters:    output file name

             Failure State: cannot access or create file

             Example:

                            menu dumpfidomsg
                            "File: "
                            resp dumpfidomsg
                            ""  null                 fido
                            *@* commlist(fido_dump)  fido

                            comm fido_dump
                            userassignfile
                            startfileoutput
                            show
                            stopfileoutput

             -----------------------------------------------------------






















                                       - 141 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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

             -----------------------------------------------------------

             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

             -----------------------------------------------------------













                                       - 142 -



             Socrates BBS (v1.10)       APPENDIX 4 - BBS Program Commands



             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.)

             -----------------------------------------------------------






















                                       - 143 -



             Socrates BBS (v1.10)           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




















                                       - 144 -



             Socrates BBS (v1.10)    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.



















                                       - 145 -



             Socrates BBS (v1.10)    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.



















                                       - 146 -



             Socrates BBS (v1.10)                    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.














                                       - 147 -



             Socrates BBS (v1.10)          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____________________________________________________

                     ____________________________________________________

                     ____________________________________________________

                     ____________________________________________________




                                       - 148 -



             Socrates BBS (v1.10)                                   INDEX


             INDEX                           CHGMORE  22, 80
                                             CHGNAME  22, 80
                                             CHGPSWD  22, 81
             %%  25, 144                     CHGTERM  22, 81
             %1  25, 144                     CHGWIDTH  22, 82
             %A  25, 84, 120, 140, 144       CLEARBEFOREMESSAGE  8, 45
             %B  25, 84, 140, 144            COMM  20, 83
             %D  25, 84, 120, 144            COMM.SOC  5, 13, 26
             %U  25, 140, 144                COMMINDX.SOC  5, 13, 26
                                             COMMLIST  20, 21, 72, 73,
             *!*  19, 72                         74, 83, 94, 137
             *#*  19, 73                     Condition  6, 10, 11, 15,
             *%*  19, 74                         17, 18, 20, 24, 39, 42,
             *@*  19, 73                         81
             *CLEAR*  16, 82                 CONTINUOUS  21, 84
             *FAILBREAK*  20, 83, 94         CR-AREAS  4, 5, 11, 26
             *FAILSUCCESS*  20, 94           CR-FILES  4, 5, 12
             *FORCE*  16, 17, 97, 139        CR-INITS  4, 5, 9, 26
             *HIGHEST*  16, 100              CR-SOC  4, 5, 13, 26
             *MSGNUM*  16, 100, 111          CR-FILES  26
             *SKIP*  16, 17, 131, 139        CUTATSEENBY  8, 46
             *SUBJECT*  16, 136
             *SUCCESSBREAK*  20, 137         D  41
             *UNFORCE*  16, 139              DAILYBYTESRATIO  8, 46
                                             DAILYBYTESTHRESHOLD  8, 46
             /1  28                          DAILYFILESRATIO  8, 47
             /B  28                          DAILYFILESTHRESHOLD  8, 47
             /L  28                          DAILYTIMEBANKROLLOVER  8,
             /O  28                              47, 145
                                             DAILYTIMELIMIT  8, 48
             A  41                           DBR  40
             ABORT  22, 74                   DBT  39
             ACTIVETIMEBANKUPLOADREFUND      DEFAULTCRASHON  8, 48
                 8, 43, 145                  DEFAULTFILEATTACHON  8, 48
             ADD  23, 43, 66, 75, 86         DEFAULTKILLSENTON  8, 49
             AHEAD  23, 75                   DEFAULTSINCELASTCALLEDTHRES
             AHEAD1  23, 76                      HOLD  9, 49
             ALIAS  8, 43                    DEFAULTTIMESCALLEDTHRESHOLD
             ALLOWQUOTING  8, 44                 9, 50
             ANONYMOUS  8, 44                Delimited string  15, 38
             ANONYMOUSNAME  8, 44            Delimiter  15, 17, 18, 38
             APPENDORIGIN  8, 45, 60         DFR  40
             AREA  22, 76                    DFT  39
             AREAS.SOC  5, 11, 26, 76        Directories  5, 6, 10, 11,
             ASSIGNFILE  21, 77, 133,            26
                 134, 141                    DOWNLOAD  23, 25, 84, 144

             BACK  23, 77                    EDITABORT  23, 85
             BACK1  23, 78                   EDITATTACH  23, 85
             BAUD  7, 45                     EDITCHGSUBJ  23, 86
                                             EDITCHGTO  23, 86
             CHGDATA  22, 78                 EDITCONT  23, 87
             CHGHELP  22, 79                 EDITCRASH  23, 87
             CHGLENGTH  22, 79               EDITDELETEFROM  23, 88



                                       - 149 -



             Socrates BBS (v1.10)                                   INDEX


             EDITDELETETO  23, 88            INTROCOMM  7, 54
             EDITEDIT  23, 89
             EDITFIDONET  23, 89             KILL  22, 101
             EDITINSERT  23, 90              KILLCRIT  35, 70
             EDITKILLSENT  23, 90
             EDITLIST  23, 91                L  39
             EDITOUTSIDE  23, 25, 49,        LASTTIMECALLED  21, 102
                 91, 144                     LINE  21, 102
             EDITOUTSIDEFILE  8, 49, 91      LINKDOWN  22, 103
             EDITPRIVATE  23, 92             LINKUP  22, 103
             EDITSAVE  23, 92                LISTFILES  23, 104
             ENDCHATMSG  9, 50               LN  41
             ENTER  22, 23, 43, 64, 65,      LOGFILE  9, 54
                 66, 93                      LOGOFF  21, 104
             Errorlevel  29, 30, 31, 93      LOGONTIME  7, 54
             EXCEEDEDDAILYTLIMCOMM  8,
                 50                          M  41
             EXIT  21, 29, 32, 93            MAIN  23, 105
                                             MENU  15, 105
             FA  11, 41                      MENU.SOC  5, 13, 26
             FIDONET  8, 51                  MENUINDX.SOC  5, 13, 26
             FILE  21, 95                    MODATTACH  22, 106
             FILEAREA  23, 95                MODCRASH  22, 106
             Filelist  13, 21, 25, 96,       MODEMHANGUP  7, 55
                 104                         MODEMINIT  7, 55
             FILES.BBS  27, 51               MODFIDONETFROM  22, 107
             FILES.SOC  5, 12, 26, 95        MODFIDONETTO  22, 107
             FILESLISTFILE  8, 12, 51,       MODFROM  22, 108
                 104                         MODKILLSENT  22, 108
             FILESMULT  8, 51, 146           MODPRIVATE  22, 109
             FIRSTMENU  7, 52                MODSUBJECT  22, 109
             FLST  24, 25, 96                MODTO  22, 110
             FLST.SOC  5, 13, 26             MORENOW  21, 110
             FLSTINDX.SOC  5, 13, 26         MOREPROMPT  9, 56
             FORCEDONTMORE  21, 97           MR  39
             FORCEMORE  21, 98               MSGNUM  22, 111
             FORCEPRIVATE  8, 52             MULT.SOC  5, 9, 26
             FORGOTPASSWORDCOMM  7, 52       MULTINDX.SOC  5, 26
             FORGOTPASSWORDMENU  7, 53       Multipliers  43, 46, 47,
             FORWARD  23, 98                     48, 49, 50, 51, 60, 61,
             FORWARD1  23, 99                    63, 64, 66, 67, 68, 69,
             FOSSIL  4, 28                       146

             GOSUBJ  23, 99                  NAMEPROMPT  7, 56
                                             NET  7, 56
             H  41                           NetMail  10
             HEADERS  22, 100                NEW  23, 112
             HOTKEYS  9, 53, 61, 67, 69,     NEW_USER1  57
                 70                          NEW_USER2  57
             HR  41                          NEWUSERCOMM1  7, 57
                                             NEWUSERCOMM2  7, 57
             INACTIVITYTIMELIMIT  9, 53      NEWUSERHELP  7, 57
             INFO  21, 101                   NEWUSERMENU  7, 58
             INITS.SOC  5, 9, 26             NEWUSERPRIV  7, 58



                                       - 150 -



             Socrates BBS (v1.10)                                   INDEX


             NEWUSERSCREENLENGTH  7, 58      SETKILLSENT  8, 65
             NEWUSERSCREENWIDTH  7, 59       SETPRIV  21, 119
             NEWUSERSIGNALS  7, 59           SFR  40
             NEXT  22, 112                   SFT  39
             NODE  7, 59                     SHELL  21, 25, 120, 144
             NULL  21, 113                   Shell parameters  144
             NUMOFCALLERS  21, 113           SHOW  22, 120
                                             SHOWACTIVETIMEBANK  24, 121
             ONLINEUPLOADREFUND  8, 60,      SHOWCHG  22, 121
                 145                         SHOWCOMMINFO  22, 122
             ORIGINLINE  8, 60               SHOWCOMMPORT  22, 122
                                             SHOWDATA  22, 123
             P  41                           SHOWFILEDATE  8, 65
             PAGE  21, 114                   SHOWFIRSTNAME  22, 123
             PASSWORDATTEMPTS  7, 60         SHOWHELP  22, 124
             PAUSE  21, 114                  SHOWLASTNAME  22, 124
             PAUSEKEY  9, 61, 69             SHOWLENGTH  22, 125
             PENDINGTIMEBANKUPLOADREFUND     SHOWMORE  22, 125
                 8, 61, 145                  SHOWNAME  22, 126
             POINT  7, 61                    SHOWPENDINGTIMEBANK  24,
             PORT  7, 62                         126
             PREV  22, 115                   SHOWPRIV  22, 127
             PRIVATESYSTEM  7, 62            SHOWPSWD  22, 127
                                             SHOWTERM  22, 128
             QUOTE  21, 115                  SHOWTIME  22, 128
             QUOTETRK.SOC  5, 26             SHOWTIMELEFT  22, 129
                                             SHOWWIDTH  22, 129
             READPRIVATE  8, 62              SIGNALOFF  24, 130
             RELOGIN  4, 5, 26, 29, 31,      SIGNALON  24, 130
                 32                          SINCELASTCALLEDMULT  9, 66
             RESETMORE  21, 116              SKIPMESSAGEINPUT  8, 66
             RESP  17, 18, 116               SOC  39
             RESP.SOC  5, 13, 26             SOC-AREA.TXT  5, 10
             RESPINDX.SOC  5, 13, 26         SOC-FILE.TXT  5, 11
             RESPOND  22, 23, 43, 66,        SOC-INIT.TXT  5, 7
                 86, 117                     SOC-MSG  4, 5, 26, 31, 35,
             RESTOREMORE  21, 117                36, 37
             REVERSE  23, 118                SOC-PROG.TXT  5, 13
             REVERSE1  23, 118               SOC-SCAN  4, 5, 26, 31
                                             SOC-USER  4, 5, 70
             S  39                           SOCRATES  4, 5, 29, 31
             SAVE  22, 119                   SOCRATES.LOG  54
             SBR  40                         SOC-SCAN  37
             SBT  39                         SOC-USER  26, 34
             SCT  40                         START  23, 43, 64, 65, 66,
             SESSIONBYTESRATIO  8, 63            132
             SESSIONBYTESTHRESHOLD  8,       STARTCHATMSG  9, 66
                 63                          STARTFILEOUTPUT  21, 77,
             SESSIONFILESRATIO  8, 63            84, 102, 133, 134, 141
             SESSIONFILESTHRESHOLD  8,       STATEOFF  24, 134
                 64                          STATEON  24, 135
             SESSIONTIMELIMIT  8, 64         STAY  23, 135
             SETCRASH  8, 64                 STOPFILEOUTPUT  21, 77,
             SETFILEATTACH  8, 65                133, 134, 141



                                       - 151 -



             Socrates BBS (v1.10)                                   INDEX


             STOPKEY  9, 67, 70
             SUBJLIST  23, 137
             SysOp  1, 2, 6, 33, 34, 147

             TBR  40
             TBT  39
             TCT  40
             TFR  40
             TFT  40
             Timebanks  8, 24, 43, 47,
                 61, 121, 126, 138, 139,
                 145
             TIMELIMIT  8, 67, 146
             TIMESCALLED  21, 138
             TIMESCALLEDMULT  9, 68
             TM  41
             TOTALBYTESRATIO  8, 68
             TOTALBYTESTHRESHOLD  8, 68
             TOTALFILESRATIO  8, 69
             TOTALFILESTHRESHOLD  8, 69

             UNBANK  24, 138
             UNBANKALL  24, 139
             UPLOAD  23, 25, 140, 144
             USEPAUSEKEY  9, 61, 69
             User data  72, 73, 74
             User input  19, 25, 144
             USERASSIGNFILE  21, 77,
                 133, 134, 141
             USERDELETE  9, 35, 70
             USERLIST  21, 142
             USERS1.SOC  5, 26, 34
             USERS2.SOC  5, 26, 34
             USERS3.SOC  5, 26, 34
             USESTOPKEY  9, 67, 70

             VERSION  21, 142

             W  41
             WELCOMECOMM  7, 70
             WRITE  21, 143
             WRITELN  21, 94, 143
             WRITEPRIVATE  8, 71

             Z  39
             ZONE  7, 71











                                       - 152 -