home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / WRB100B.ZIP / WRBBS.DOC < prev    next >
Text File  |  1993-01-07  |  183KB  |  3,314 lines

  1. ===========================================================================
  2. ===========================================================================
  3. ==                                                                       ==
  4. ==     WR-BBS                 INSTALLATION AND ADMINISTRATION MANUAL     ==
  5. ==                                                                       ==
  6. ===========================================================================
  7. ===========================================================================
  8.                                      
  9.               ** PRELIMINARY DOCUMENTATION AS OF 01/08/93 **
  10.                                      
  11.                          For WR-BBS versions 1.XX
  12.                                      
  13.                   Copyright (C) 1992 by Wilson A. Rogers
  14.  
  15.  
  16. --------------------------  TABLE  OF  CONTENTS  --------------------------
  17.  
  18. SECTION 1                                                           PREFACE
  19. SECTION 2                       IMPORTANT WARRANTY DISCLAIMER - PLEASE READ
  20. SECTION 3                                          WR-BBS LICENSE AGREEMENT
  21. SECTION 4                                            INTRODUCTION TO WR-BBS
  22. SECTION 5                                                     THE HOME PATH
  23. SECTION 6                                           INSTALLING WR-BBS FILES
  24. SECTION 7                                                      SCREEN FILES
  25. SECTION 8                                                            WR.BAT
  26. SECTION 9                                                ... THE FIRST TIME
  27. SECTION 10                                               CONFIGURING WR-BBS
  28. SECTION 11                             CLASS OF SERVICE (COS) CONFIGURATION
  29. SECTION 12                                                        THE SYSOP
  30. SECTION 13                                                 SETTING UP DOORS
  31. SECTION 14                                                  TROUBLESHOOTING
  32. SECTION 15                                                     MIDNIGHT.BAT
  33. SECTION 16                                     HOW THE MESSAGE SYSTEM WORKS
  34. SECTION 17                                               CONFIGURING EVENTS
  35. SECTION 18                                                THE QUESTIONNAIRE
  36. SECTION 19                                                 THE ACTIVITY LOG
  37. SECTION 20                                                THE "DOWN" OPTION
  38. SECTION 21                                        WHILE A CALLER IS ON LINE
  39. SECTION 22                                 EXTERNAL FILE TRANSFER PROTOCOLS
  40.  
  41.  
  42.               ** PRELIMINARY DOCUMENTATION AS OF 01/08/93 **
  43.  
  44. ===========================================================================
  45. SECTION 1                                                           PREFACE
  46. ===========================================================================
  47.  
  48. WR-BBS is  a bulletin board communications program, designed for the small-
  49. to-medium single  node BBS  application.    WR-BBS  is  distributed  on  an
  50. "evaluation-before-registration". This  method of  distribution is commonly
  51. referred to as shareware.
  52.  
  53. Whether you  are starting  a new BBS, or replacing another BBS application,
  54. you are  welcome to  try WR-BBS  on an  evaluation basis.  If it meets your
  55. expectations, register  the program  with the  author.  If it does not meet
  56. your expectations, simply delete the file named WRBBS.EXE (you can keep the
  57. rest of  the files if you wish), and there is no further obligation on your
  58. part.
  59.  
  60. NOTE TO  CURRENT SYSOPS:   If you are replacing an existing BBS application
  61. with WR-BBS,  you are  urged  to  completely  back  up  your  existing  BBS
  62. program's files  before  implementing  WR-BBS.    This  will  minimize  the
  63. inconvenience to  you if  you later decide that you do not wish to continue
  64. using WR-BBS,  as you  can restore  the previous  BBS application  quickly.
  65. Before installing  WR-BBS, you should read the documentation thoroughly, as
  66. the WR-BBS  implementation of some features differs from the implementation
  67. used by  other BBS  programs.   Also, WR-BBS has some features not found in
  68. other BBS programs (and does not have some features that other BBS programs
  69. have).
  70.  
  71. There are  10 basic steps involved to install WR-BBS.  It is suggested that
  72. you follow  the steps  in the  order presented  to  assure  a  trouble-free
  73. installation:
  74.  
  75.  
  76.        A.   Read the important warranty disclaimer in section 2.  Make sure
  77.                     that you  understand that the author is not responsible
  78.                     for any  damages before  you begin installing WR-BBS on
  79.                     your system.
  80.        
  81.        B.   Familiarize yourself  with the  license agreement.  There is no
  82.                     point in installing WR-BBS, only to later find out that
  83.                     you can't live with the license agreement.
  84.        
  85.        C.   Set up the "home path".  This is described in detail in section
  86.                     5.
  87.        
  88.        D.  Install the WR-BBS files.  See section 6 for information on this
  89.                     process.
  90.        
  91.        E.  Edit the screen files as needed for your board.  Section 7 tells
  92.                     how to do this.
  93.        
  94.        F.  Read section 8, which tells how WR.BAT works, and why its use is
  95.                     strongly recommended.
  96.        
  97.        G.   Establish an  initial database.   The  command to  do  this  is
  98.                     described in section 9.
  99.        
  100.        H.   Configure WR-BBS,  using WRCONFIG.SYS.    See  section  10  for
  101.                     details.
  102.        
  103.        I.  Start WR-BBS, and then log on locally (press ALT-L).
  104.        
  105.        J.  Test your new WR-BBS installation.
  106.  
  107. The installation,  configuration, and  testing process should take about 30
  108. to 90  minutes after  you read  this document.  If you  are also  going  to
  109. implement (optional)  doors, events, and other frills, the total setup time
  110. will be longer.
  111.                                      
  112.                        HOW TO GET SUPPORT FOR WR-BBS
  113.  
  114. Most questions  and operational  anomalies can  be resolved by reading this
  115. document.  If you need support for WR-BBS, it is available by logging on to
  116. the WR-BBS Headquarters BBS.  Call (206) 828-9089, twenty four hours a day.
  117. After logging  on, leave a (C)moment for SysOp, or (W)rite a message to the
  118. SysOp from  the message  menu.   I will  endeavor  to  answer  all  support
  119. requests within  twenty four  hours.  Support is not currently available by
  120. telephone or  facsimile.   Before you  decide to  use or  register  WR-BBS,
  121. please make  sure you  are comfortable  with this  support method.   If you
  122. cannot get  along without  live telephone support, WR-BBS is not for you. I
  123. WILL respond,  via the  WR-BBS Headquarters  BBS  message  system,  to  all
  124. support requests.   I  will not  honor messages  requesting me  to call you
  125. (even if  you ask  me to  call collect).  Except under the most exceptional
  126. circumstances, I  will not honor requests to log onto your board to examine
  127. problems.   I will  also not  entertain any  support calls  to my residence
  128. telephone number.   This  policy  ensures  that  support,  via  the  WR-BBS
  129. Headquarters BBS,  is available  to all  users on an equitable basis.  Some
  130. SysOps  prefer   the  "warm   body"   approach   to   support   situations.
  131. Unfortunately, that  level of  support is not available for WR-BBS.  At the
  132. risk of  sounding negative  in this  paragraph, I have detailed the support
  133. policy here to make sure that there are no misunderstandings.
  134.  
  135. When  calling   the  WR-BBS  Headquarters  BBS  for  "generic"  support  or
  136. suggestions, you  may also  wish to  peruse the message system for messages
  137. from (and responses to) other SysOps who may have the same question(s).
  138.  
  139. There is  no charge  for support.   Registered  WR-BBS SysOps  will receive
  140. support at  no charge  as long  as they  have a  current version  of WR-BBS
  141. installed, or  until WR-BBS  is discontinued.   SysOps  who  have  not  yet
  142. registered their  copy of WR-BBS will also receive support, but support for
  143. evaluation copies  is discontinued  thirty days  after  the  first  support
  144. request.   Thus, each evaluation copy receives free support for at least 30
  145. days.
  146.  
  147. I am  currently examining  the feasibility  of  expanding  support  through
  148. facsimile and  voice messaging.   Such extended support may be available in
  149. the future, but is not guaranteed.
  150.  
  151. If you prefer to write for support, the address is:
  152.  
  153.           WR-BBS Support
  154.           P.O. Box 8024
  155.           Kirkland, WA   98034-0024
  156.  
  157. As  with   any  complex  software,  bugs  will  be  discovered,  and  fixes
  158. implemented for  WR-BBS.   Maintenance  releases  will  be  made  available
  159. periodically,  and   can  be   downloaded  (no   charge)  from  the  WR-BBS
  160. Headquarters BBS.  A typical  maintenance release  contains fixes for minor
  161. bugs, and  possibly some  new minor feature enhancements.  If a serious bug
  162. is discovered,  a "patch"  may be  created to resolve the problem until the
  163. next maintenance  release is  published.   Patches can  be  downloaded  (no
  164. charge) from the WR-BBS Headquarters BBS.
  165.  
  166. When major  operational changes  and feature  additions are made to WR-BBS,
  167. this is referred to as an upgrade.  Upgrades can be downloaded from the WR-
  168. BBS Headquarters  BBS.   There may  be a  nominal charge  for upgrades.  An
  169. example of a major operation change would be multi-node operation.
  170.  
  171.                       HOW WR-BBS VERSION NUMBERS WORK
  172.  
  173.        All WR-BBS  version  numbers  are  expressed  as  a  numeric
  174.        character followed  by a  decimal  point,  followed  by  two
  175.        numeric characters,  and possibly followed by a letter (from
  176.        A to Z).
  177.  
  178.                                 1.00A <-- Update letter
  179.                                 | ||
  180.                                 | ||
  181.              Major version number ||
  182.                                   ||
  183.         Intermediate version number|
  184.                                    |
  185.                                    Minor version number
  186.  
  187.  
  188.        The major  version number is changed only when an upgrade is
  189.        released.    It  represents  a  significant  change  in  the
  190.        software from one number to the next.
  191.        
  192.        The  intermediate   version  number   is  incremented   when
  193.        significant changes  have been  made to  the  software,  but
  194.        operational characteristics  are not  substantially  changed
  195.        (not an upgrade).
  196.        
  197.        The  minor   version  number  is  incremented  each  time  a
  198.        maintenance release is published.
  199.        
  200.        The update  letter (which may not appear at all) is added or
  201.        incremented each  time a  patch  is  applied  to  correct  a
  202.        problem between regular maintenance releases.
  203.  
  204.  
  205.  
  206.  
  207. ===========================================================================
  208. SECTION 2                       IMPORTANT WARRANTY DISCLAIMER - PLEASE READ
  209. ===========================================================================
  210. This section  describes the risk that you or your company takes in using or
  211. implementing WR-BBS.  In plain English, you are responsible for all damages
  212. that WR-BBS  may cause  if you  use it  on your  system, whether or not the
  213. damages are  due to  a defect  in the  program.    Rather  than  hide  this
  214. disclaimer in  small type  at the end of the documentation, I am putting it
  215. up front,  and urge you to read it carefully before proceeding. If you feel
  216. this is  unfair, or  you are  in any  way uncomfortable  with the fact that
  217. there is  no warranty  of any kind on the WR-BBS program, please delete the
  218. WR-BBS files now.
  219.  
  220.                             WARRANTY DISCLAIMER
  221.                     IMPORTANT - EVERYONE READ CAREFULLY
  222.                            YOU ARE AT SOLE RISK
  223.  
  224. The following  disclaimer of  warranty applies  to EVERY  copy  of  WR-BBS,
  225. whether registered or not, unless specifically indicated otherwise.  Please
  226. read it  carefully.   In this and the following paragraphs, "YOU" refers to
  227. you, the  person or  entity who  uses  (or  attempts  to  use)  the  WR-BBS
  228. SOFTWARE; "AUTHOR"  refers to  Wilson A. Rogers, or any lawful successor to
  229. Wilson A.  Rogers, or  any lawful  owner of  the WR-BBS  source code, whose
  230. ownership of  that source  code has been authorized in writing by Wilson A.
  231. Rogers;  and  "WR-BBS  SOFTWARE"  means  the  executable  program  file(s),
  232. overlays, and  proprietary files  associated with  the  single-node  WR-BBS
  233. Bulletin Board System.
  234.  
  235.        WR-BBS SOFTWARE is supplied on an "AS IS" basis.  Subject to
  236.        any contrary  provisions of applicable state law, the AUTHOR
  237.        disclaims  any   and  all   implied  warranties,   including
  238.        warranties  of   merchantability  and/or   fitness   for   a
  239.        particular purpose.   Except for suggestions to the contrary
  240.        that  may   appear  in   the  official   documentation  that
  241.        accompanies the WR-BBS SOFTWARE, the AUTHOR does not purport
  242.        that the  WR-BBS SOFTWARE is fit for any purpose whatsoever,
  243.        nor does the AUTHOR make any claim, implied or otherwise, as
  244.        to the merchantability of the WR-BBS SOFTWARE.
  245.        
  246.        The AUTHOR  disclaims any  and all  responsibility  for  any
  247.        damages resulting  from the  use or attempted use of the WR-
  248.        BBS SOFTWARE,  including, but  not limited  to consequential
  249.        damages, indirect  damages, coincidental  damages,  loss  of
  250.        revenue, wages,  or income,  loss of  goodwill, loss of data
  251.        and/or files, system downtime, and "special damages".
  252.        
  253.        YOU assume  all risk  in attempting to use, or using the WR-
  254.        BBS SOFTWARE.   YOU must independently determine whether the
  255.        WR-BBS SOFTWARE  is suitable  for  your  intended  use,  and
  256.        whether or not the WR-BBS SOFTWARE will cause damage to YOU,
  257.        prior to  any use  or attempted  use of the WR-BBS SOFTWARE.
  258.        If you  cannot make  this  determination,  do  not  use  (or
  259.        attempt to  use) the  WR-BBS SOFTWARE.   The AUTHOR does not
  260.        authorize any  person or  entity to  make that determination
  261.        for  you.    You  must  make  this  determination  prior  to
  262.        registering the  WR-BBS SOFTWARE  with the  AUTHOR.  If, for
  263.        any reason,  you determine  that the  WR-BBS SOFTWARE is not
  264.        suitable  for   your  use  within  thirty  (30)  days  after
  265.        registering the  WR-BBS SOFTWARE,  the AUTHOR,  upon written
  266.        application from  YOU, will  refund any and all license fees
  267.        paid by  YOU to  the AUTHOR.  Should this  happen, YOU  must
  268.        immediately and permanently discontinue any use or attempted
  269.        use of  the WR-BBS  SOFTWARE. Such refund is the sole remedy
  270.        for any failure of the WR-BBS SOFTWARE.
  271.        
  272.        In  the   event  that  the  WR-BBS  SOFTWARE,  after  proper
  273.        registration, fails to perform substantially as described in
  274.        the official  WR-BBS documentation,  the AUTHOR  will,  upon
  275.        written application  from YOU,  refund any  and all  license
  276.        fees previously  paid by  YOU to  the AUTHOR. Such refund is
  277.        the sole  remedy for  any failure  of the  WR-BBS  SOFTWARE.
  278.        Should this  happen, YOU  must immediately  and  permanently
  279.        discontinue any use or attempted use of the WR-BBS SOFTWARE.
  280.        
  281.        Support for  WR-BBS SOFTWARE  is available by modem, through
  282.        the WR-BBS  Headquarters BBS  (only). There is no charge for
  283.        support to  registered licensees  who have a current version
  284.        of the  WR-BBS SOFTWARE.  The AUTHOR will not be responsible
  285.        for any  toll, message  unit, or  communications charges YOU
  286.        incur while  accessing the  WR-BBS Headquarters  BBS, or for
  287.        time expended by YOU in obtaining support.
  288.        
  289.        If any  provision of this warranty disclaimer is determined,
  290.        by a  court or  government agency,  to be unlawful, void, or
  291.        for any  reason unenforceable,  it shall be deemed separable
  292.        from, and  in no  way  shall  affect  the  validity  of  the
  293.        remaining provisions of this warranty disclaimer.
  294.        
  295.        The AUTHOR  reserves the  right to  discontinue development,
  296.        production, and  support of the WR-BBS SOFTWARE at any time.
  297.        If such  discontinuance occurs  with thirty (30) days of YOU
  298.        executing a valid license application, the AUTHOR will, upon
  299.        written application  from YOU,  refund any  and all  license
  300.        fees paid  by YOU  to the  AUTHOR. If  you apply  for such a
  301.        refund, YOU must immediately and permanently discontinue any
  302.        use or attempted use of the WR-BBS SOFTWARE.  Such refund is
  303.        your sole  remedy  in  the  event  the  WR-BBS  SOFTWARE  is
  304.        discontinued by  the  AUTHOR  within  thirty  (30)  days  of
  305.        registration by YOU.
  306.  
  307.  
  308. ===========================================================================
  309. SECTION 3                                          WR-BBS LICENSE AGREEMENT
  310. ===========================================================================
  311.  
  312. Like most  software, WR-BBS is not sold.  It is licensed, to persons and/or
  313. entities who  agree to  terms of  the license.  No person or entity has the
  314. right to  sell WR-BBS  software to  you, as  it is  not for  sale under any
  315. circumstances.   If you  agree to the terms of the license agreement (which
  316. follows), and  you submit  the proper  license fee  along with  a  properly
  317. completed registration  form, you  will receive  a license  to use the then
  318. current major  level of  WR-BBS software  for a  period not exceeding fifty
  319. (50) years.
  320.  
  321. In the  following  license  agreement,  "YOU"  means  you,  the  registered
  322. licensee who  has submitted  the proper  license fee  along with a properly
  323. executed license  application; and  "AUTHOR" means Wilson A. Rogers, or any
  324. lawful successor  to Wilson  A. Rogers,  or any  lawful owner of the WR-BBS
  325. source code,  whose ownership  of that  source code  has been authorized in
  326. writing by  Wilson A.  Rogers; and  "WR-BBS SOFTWARE"  means the executable
  327. program file(s),  overlays,  and  proprietary  files  associated  with  the
  328. single-node WR-BBS Bulletin Board System.
  329.  
  330. YOU agree  to use the WR-BBS SOFTWARE on only one computer at one time, and
  331. to prevent the use of the registered copy of the WR-BBS SOFTWARE from being
  332. used on more than one computer simultaneously.
  333.  
  334. YOU may  make as  many backup  copies of  the WR-BBS SOFTWARE as reasonably
  335. necessary to allow recovery from system failure.
  336.  
  337. YOU may  distribute un-registered  copies  of  WR-BBS  freely  and  without
  338. obligation to  the AUTHOR,  other than to hold the AUTHOR harmless from any
  339. damages that may be incurred from such distribution.
  340.  
  341. YOU agree  to keep  the executable, overlay, and other proprietary files of
  342. the WR-BBS  SOFTWARE in  their original,  unaltered format.  YOU also agree
  343. not to  modify, reverse-engineer,  or decompile  the WR-BBS SOFTWARE at any
  344. time during, and subsequent to, the termination of this license.
  345.  
  346. YOU may terminate this agreement, without notice to the AUTHOR, at any time
  347. prior to  its expiry.  The AUTHOR may terminate this agreement at any time,
  348. without notice  to YOU.  YOU agree  to destroy  all copies  of  the  WR-BBS
  349. SOFTWARE when  this agreement  is terminated  for  any  reason.    If  this
  350. agreement is  terminated by  the AUTHOR  within thirty  (30)  days  of  the
  351. license being granted, the AUTHOR will refund to YOU all monies paid to the
  352. AUTHOR for the license.  This will be your sole remedy in this situation.
  353.  
  354. YOU agree and understand that the WR-BBS SOFTWARE is provided on an "AS-IS"
  355. basis, and subject to the warranty disclaimer appearing in section two. YOU
  356. will independently  determine whether or not the WR-BBS SOFTWARE meets your
  357. needs and  whether or  not the  WR-BBS SOFTWARE  will damage your system or
  358. cause other  loss to  YOU before  YOU use  or attempt  to  use  the  WR-BBS
  359. SOFTWARE.    YOU  agree  that  if  YOU  can  not  adequately  make  such  a
  360. determination, YOU  will not  apply for a license to use, nor will YOU use,
  361. or attempt to use the WR-BBS SOFTWARE.
  362.  
  363.  
  364.  
  365. ===========================================================================
  366. SECTION 4                                            INTRODUCTION TO WR-BBS
  367. ===========================================================================
  368.  
  369. WR-BBS is  designed to  operate on  an IBM  PC <tm>  or  compatible  micro-
  370. computer.  It operates as a single-port system, but its database foundation
  371. was  designed   to  allow   multi-port  operation  as  a  potential  future
  372. development.  WR-BBS utilizes the W-TREE Database Manager to rapidly locate
  373. and access  database records,  minimizing the "dead screen" time that would
  374. otherwise occur when a database search occurs.
  375.  
  376. A class-of-service  (COS) section  in the system configuration allows up to
  377. 26 different  permission levels to be assigned to callers. The COS settings
  378. can be  flexibly applied  to allow  or deny  very specific  access for each
  379. group of  users.   (COS is  synonymous with  "access level"  in  other  BBS
  380. products).
  381.  
  382. Some specifications:
  383.                                                  DESIGN      PRACTICAL
  384.                                                  MAXIMUM      MAXIMUM
  385.                                                  -------     ---------
  386. User accounts                              2,147,483,648         1,000
  387. File descriptions                          2,147,483,648         3,500
  388. Messages on file                                  65,535         2,000
  389. File areas                                            26            26
  390. Events scheduled                                      16            16
  391. Access levels (classes of service)                    26            26
  392. Port speed (baud)                         UART dependent       115,200
  393.  
  394.                             SYSTEM REQUIREMENTS
  395.  
  396.      WR-BBS should  install and  run  on  any  IBM  PC  <tm>  or  100%
  397.      compatible micro-computer, including most DOS based systems using
  398.      8086, 8088, V20 and 80X86 processors.
  399.      
  400.      WR-BBS has been tested with DR-DOS 5, DR-DOS 6.0, MS-DOS 3.3, MS-
  401.      DOS 4.01, MS-DOS 5.0, PC-DOS 5.0 and in a DOS window of OS/2 2.0.
  402.      Any level of DR-DOS, MS-DOS, or PC-DOS higher than 2.01 should be
  403.      sufficient, but  DOS 3.3  or higher  is recommended.   WR-BBS has
  404.      been tested under DESQview <tm> 2.3, DESQview <tm> 2.4, Microsoft
  405.      Windows <tm>  3.0, and Microsoft Windows <tm> 3.1, as well as WR-
  406.      DOS 6.5.
  407.      
  408.      WR-BBS will  display in color on a color monitor (CGA, MCGA, EGA,
  409.      VGA, SVGA), but a color monitor is not required.  WR-BBS does not
  410.      use bit-mapped graphics, and is compatible with all display types
  411.      found on DOS computers.  Additional graphics memory pages are not
  412.      required for use under a multi-tasker.
  413.      
  414.      ANSI color  screens can  be  configured  for  display  to  remote
  415.      callers, whether  or not  a color  monitor is  used at  the local
  416.      console.   WR-BBS does NOT require ANSI.SYS to be loaded in order
  417.      to display  ANSI graphics,  as WR-BBS  contains a  built-in  ANSI
  418.      driver.
  419.      
  420.      WR-BBS requires  approximately 230  KB of memory during run time.
  421.      During DOS shells, WR-BBS swaps almost 95% of its image to EMS or
  422.      disk (configurable), leaving only about 13 KB residing in memory.
  423.      WR-BBS can  be configured to swap its image when calling external
  424.      protocols and  "door" programs,  allowing generous memory for the
  425.      called program.
  426.  
  427.  
  428. ===========================================================================
  429. SECTION 5                                                     THE HOME PATH
  430. ===========================================================================
  431.  
  432.        
  433.        Setting the  HOME PATH  environment variable  is one  of the
  434.        easiest aspects  of configuring  your new WR-BBS system.  It
  435.        is also  the most important configuration item.  If you read
  436.        nothing else in this document, please read this section.
  437.        
  438.  
  439. Throughout this  document, you  will see  mention of  the "home path".  The
  440. home path  refers the  actual DOS  path where  WR-BBS can find its program,
  441. overlay, and  data files.  WR-BBS checks the DOS environment for a variable
  442. which tells  it the  location of  these files.   It  is one  of the easiest
  443. configuration items relative to WR-BBS, but is also the most important.
  444.  
  445. Prior to  installing, initializing  or starting WR-BBS, the DOS environment
  446. variable named "WR-BBS" must be set to the home path.  If this is not done,
  447. WR-BBS will  not start.  This is done by issuing the SET command to DOS, as
  448. in the following example:
  449.  
  450.      SET WR-BBS=[path]
  451.  
  452. Where [path]  is the  actual path  to WR-BBS's  files.   Unless you  have a
  453. compelling reason  for doing  otherwise, it is recommended that you put WR-
  454. BBS's files  in a  sub-directory named  WR-BBS, immediately  off  the  root
  455. directory of  your boot  drive.   In this case, the home directory would be
  456. named C:\WR-BBS,  and the  SET command to set the home path would look like
  457. this:
  458.  
  459.      SET WR-BBS=C:\WR-BBS
  460.  
  461. The trailing backslash on the home path is not expected (but does no damage
  462. if added).  Thus, the command:
  463.  
  464.      SET WR-BBS=C:\WR-BBS   and   SET WR-BBS=C:\WR-BBS\
  465.                                   trailing backslash  ^
  466.  
  467. are identical  for purposes of WR-BBS determining the home path.  Note that
  468. no matter  what you use for the home path, when you issue the home path SET
  469. command to DOS, the following important syntax rules apply:
  470.  
  471.      - There is no space on either side of the equal sign.
  472.      - The first character after the equal sign must be a valid drive
  473.           letter.
  474.      - The command can be issued in upper or lower case.
  475.      - The portion of the SET after the equal sign must be a valid DOS sub-
  476.           directory designation.
  477.      - The entire pathname cannot exceed 64 characters
  478.  
  479. The following home path SET statements are NOT valid:
  480.  
  481.      SET WR-BBS=\WR-BBS
  482.                 ^(no drive letter specified)
  483.      
  484.      SET WR-BBS= C:\WR-BBS
  485.                 ^(no space allowed on either side of = sign)
  486.      
  487.      SET WR-BBS=C:BBSFILE
  488.                  ^(does not point to a directory)
  489.  
  490. While the following home path SET statements are valid:
  491.  
  492.      SET WR-BBS=C:\BBSFILES\BIN
  493.                 ^(can point to any valid DOS directory)
  494.      
  495.      set WR-BBS=c:\WR-BBS
  496.      ^(upper/lower case doesn't matter)
  497.  
  498. It is  STRONGLY recommended  that you insert the SET WR-BBS command in your
  499. AUTOEXEC.BAT file.   Then,  the DOS  environment variable for the home path
  500. will be  properly set each time your computer is booted, and you will never
  501. have to  worry about  it again.   To do this, use an ASCII file editor, and
  502. edit the file AUTOEXEC.BAT, inserting the appropriate SET command as one of
  503. the first  few lines  in that file.  Then save the file as a standard ASCII
  504. file, and reboot your system to make it take effect.
  505.  
  506. To test  the DOS  environment (to  make sure that the SET command has taken
  507. effect), type  just the three-letter word SET at the DOS command line.  DOS
  508. will then  print out several lines, one for each environment variable.  One
  509. of the  lines should  read WR-BBS=[path],  where path  is your  actual home
  510. path.   If you  do not get this result, then an error was made when SETting
  511. the environment,  or there  is  insufficient  environment  space  available
  512. (which can be easily remedied - see section 14).
  513.  
  514. NOTE:   Do NOT  include the  WR-BBS home  path in  your DOS  PATH or APPEND
  515. statements.
  516.  
  517. If you  ever move  your WR-BBS application to another directory (or another
  518. system), you  will need to make sure that the home path is properly defined
  519. before restarting WR-BBS.
  520.  
  521. Some poorly designed programs will butcher your AUTOEXEC.BAT and CONFIG.SYS
  522. when they  install themselves,  so that  they can  put  their  own  special
  523. commands in.   The  worst of  these will delete the changes described above
  524. (and other vital lines in AUTOEXEC.BAT and CONFIG.SYS).  If you install any
  525. applications after  installing WR-BBS,  you are  well advised to first make
  526. backup copies of your AUTOEXEC.BAT and CONFIG.SYS files.
  527.  
  528. WR-BBS never modifies AUTOEXEC.BAT or CONFIG.SYS, or any other system file.
  529.  
  530.      RECOMMENDATION:   You should put the appropriate SET statement in
  531.      your AUTOEXEC.BAT.  This will  prevent mysterious  problems  from
  532.      surfacing later, such as WR-BBS refusing to restart after a power
  533.      failure.     If  the   SET  statement  for  WR-BBS  is  not  done
  534.      automatically each  time the system starts, WR-BBS will be unable
  535.      to restart  without human  intervention.   Naturally,  this  will
  536.      happen when  you are  3,000 miles away from your system attending
  537.      the Murphy's  Law seminar, and your WR-BBS system will not answer
  538.      calls until  you get back. You can prevent this from happening by
  539.      inserting the  SET statement  for the  WR-BBS home  path in  your
  540.      AUTOEXEC.BAT file  before you  do anything  else. Do  it once and
  541.      forget it. Do it now.
  542.  
  543. ===========================================================================
  544. SECTION 6                                           INSTALLING WR-BBS FILES
  545. ===========================================================================
  546.  
  547. First you  must choose a directory for the WR-BBS files to reside in.  This
  548. is the  "home"  directory  as  discussed  in  the  preceding  section.  The
  549. directory  "\WR-BBS"   off  the  root  directory  of  your  boot  drive  is
  550. recommended, but any valid DOS directory can be used.  Keep in mind that no
  551. files other  than those  related to  WR-BBS should exist in the WR-BBS home
  552. directory, so  do not  use an  existing directory  that belongs  to another
  553. application.   The use  of the  root directory  as  the  WR-BBS  home  path
  554. directory is possible, but strongly recommended against.
  555.  
  556. Next, you  need to  create the  home path  directory if it does not already
  557. exist.  Do this by issuing the DOS command:
  558.  
  559.      MKDIR [dirname]
  560.  
  561. Where [dirname]  is the  full directory  name of  the WR-BBS home path sub-
  562. directory.   Next, make  the home  path directory  the current directory by
  563. issuing this command at the DOS command line:
  564.  
  565.      CHDIR [dirname]
  566.  
  567. Where [dirname]  is the WR-BBS home path directory. If you receive an error
  568. message from  DOS, check  your typing  and try  again, or refer to your DOS
  569. manual.
  570.  
  571. Now that the home path directory is current, copy all of the files from the
  572. WR-BBS archive  (or installation  diskette) into  the homepath directory by
  573. issuing one of the following commands:
  574.  
  575.      XCOPY [SourcePath]\*.* /V               or
  576.      
  577.      COPY [SourcePath]\*.* /V
  578.  
  579. Where [SourcePath]  is the  actual DOS  path to  the  WR-BBS  files.    For
  580. example, if  you de-compressed  the WR-BBS  files into  a  directory  named
  581. C:\MODEM\DOWNLOAD, the proper syntax would be
  582.  
  583.      XCOPY C:\MODEM\DOWNLOAD\*.* /V          or
  584.      
  585.      COPY C:\MODEM\DOWNLOAD\*.* /V
  586.  
  587. Alternatively, if  you are  using a distribution diskette obtained from the
  588. author, you would type:
  589.  
  590.      XCOPY A:\*.* /V                         or
  591.      
  592.      COPY A:\*.* /V
  593.  
  594. provided that the diskette was in the A: drive.
  595.  
  596. The following files are provided with WR-BBS, and should be copied into the
  597. WR-BBS home  path directory.   They must always reside in the home path for
  598. correct operation  of WR-BBS.    With  the  exception  of  the  executable,
  599. overlay, and  database files,  all WR-BBS files are in character format and
  600. can be readily edited as required:
  601.  
  602. MIDNIGHT.BAT
  603.           This is  a sample batch file, modify to suit your application, or
  604.           delete if  you wish.   If  MIDNIGHT.BAT is  present, WR-BBS  will
  605.           execute it  immediately after  DOS  reports  that  the  date  has
  606.           changed (which  is at  00:00 hours).  See  section  15  for  more
  607.           information on MIDNIGHT.BAT.
  608.  
  609. NOACCESS.TXT
  610.           This file  is checked  whenever a  new user logs on for the first
  611.           time.   If that  caller's name is found in NOACCESS.TXT, they are
  612.           not allowed  to continue,  and are  forced off.    This  prevents
  613.           callers from  using cute  names like  EATME SYSOP  or worse.  The
  614.           file by  default contains  a list  of possible  bad  names.    It
  615.           includes some  bad  words,  so  if  you  are  sensitive  to  such
  616.           language,  don't   read  the   file.    You  can  add  or  remove
  617.           "undesirable" names  to this  file as  needed, with  one name per
  618.           line. When  NOACCESS.TXT is scanned, each line is compared to the
  619.           caller's first  AND last  name.   Thus, if  "CAPTAIN" appears  in
  620.           NOACCESS.TXT, a  caller who  claims to be "CAPTAIN KIRK" would be
  621.           denied access,  and so would "BOB CAPTAIN".  Thus, you need to be
  622.           careful to keep potential "valid" names out of NOACCESS.TXT.
  623.  
  624. OSACCESS.BAT
  625.           This is another sample batch file, which you can edit if desired.
  626.           It controls  access  to  the  operating  system  when  the  SysOp
  627.           requests a shell to DOS.
  628. WR.BAT
  629.           This is  the main batch file that controls WR-BBS operation.  You
  630.           should run  WR-BBS by  typing "WR"  and pressing  <ENTER>, rather
  631.           than running  WRBBS.EXE directly.   This  is  explained  in  more
  632.           detail in section 8.
  633.  
  634. WRBBS.EXE
  635.           This is the program file for WR-BBS.  Never edit this file.
  636.  
  637. WRBBS.OVR
  638.           This is  the overlay file for WR-BBS.  To conserve memory, WR-BBS
  639.           loads overlays  into memory  as needed  and unloads  them when no
  640.           longer required. Never edit this file.
  641.  
  642. WRCONFIG.SYS
  643.           This  is   the  configuration   file  for  WR-BBS.    Almost  all
  644.           configuration   and    customization   is   done   through   this
  645.           configuration file.   You  will need  to edit this file to set up
  646.           your WR-BBS  system.   See section  10 for details on configuring
  647.           WR-BBS with WRCONFIG.SYS.
  648.  
  649. WRQUOTES.TXT
  650.           This is  an optional  file.   It  is  included  with  the  WR-BBS
  651.           distribution package  as a  sample file.  When caller's log on, a
  652.           "quotation" from  this  file  will  be  selected  at  random  and
  653.           displayed to  the caller.   You can delete this file if you don't
  654.           want the  "quote of  the day" feature.  Likewise, you can edit it
  655.           to add  your own  quotes.   Each quote must be no longer than one
  656.           line in length.
  657.  
  658. WR_AFTER.BAT
  659.           This file  is optional.   A  sample file  is  included  with  the
  660.           original WR-BBS  distribution package.   If WR-AFTER.BAT is found
  661.           in the  home path,  it will  be executed after each log-off.  You
  662.           could  use   this  batch   file  to  update  statistics-sensitive
  663.           bulletins, or  do some  other kind  of post-call  cleanup. If you
  664.           don't have a use for this feature, delete WR-AFTER.BAT.
  665.  
  666.  
  667. WFILEXFR.BAT
  668.           This is  a sample  batch file,  which you  can modify to meet the
  669.           needs of  your board.   It  controls all  file transfer  activity
  670.           (downloads and uploads) and external protocol programs.
  671.  
  672. ===========================================================================
  673. SECTION 7                                                      SCREEN FILES
  674. ===========================================================================
  675.  
  676. For maximum  flexibility, WR-BBS has very few "hard coded" display screens.
  677. Almost all  of the  screens that are seen by your callers are external text
  678. files which  you can  edit to  suit your  board's individual needs.  Sample
  679. screen files  are provided  with the  WR-BBS distribution package.  Many of
  680. these screen  files can  be used "as is" immediately, without editing. Some
  681. of the  screen files,  however, should  be edited  to include your BBS name
  682. and/or other installation-specific information.
  683.  
  684. Each screen  that can  be displayed  to a caller is supported by TWO screen
  685. files.   One of the screen files has an extension of .ASC (which stands for
  686. ASCII) and  the other  corresponding screen  file has  an extension of .ANS
  687. (which stands  for ANSI).   ANSI  screens are displayed to callers who have
  688. ANSI color enabled.  ASCII screens are sent to non-ANSI callers.  With very
  689. few exceptions,  ASCII screens  on WR-BBS have no color data in them.  ANSI
  690. screens, on  the other  hand, typically contain ANSI escape sequences which
  691. allow for sophisticated color and cursor-movement control.
  692.  
  693. Creating ASCII  screen files  is relatively  easy.  Use any editor that can
  694. save files  in  true  ASCII.    DOS's  EDLIN  and  EDIT  programs  do  this
  695. automatically.  Most word processors can create, edit and save "true ASCII"
  696. files, but  require commands to tell the word processing program not to put
  697. formatting symbols in the finished file.
  698.  
  699. Creating ANSI screens is a little more involved.  Although it could be done
  700. with a  basic text  editor, this would be a time-consuming and excruciating
  701. process. The  use of  an  ANSI-specific  screen  file  editor  is  strongly
  702. recommended.   A popular  program called  TheDraw (by  TheSoft) is  an ANSI
  703. screen editor  that is  very easy  to use.   You can download an evaluation
  704. copy of  TheDraw from  the WR-BBS  Headquarters BBS  and many  other  BBS's
  705. throughout the  world.   Remember to register your copy of TheDraw with the
  706. TheSoft people.
  707.  
  708. When using  TheDraw (or  another ANSI  editor) to  create  WR-BBS  screens,
  709. observe the following:
  710.  
  711.           -  Most screen files should have no more than 21 lines of display
  712.           information. If  you make the display file longer than that, part
  713.           of the display screen will scroll off the remote caller's screen.
  714.           
  715.           -   When saving the file, select "NONE" for line length. You want
  716.           the editor  to place a "real" carriage return and line feed after
  717.           each "real"  line.   With ANSI  escape sequences  imbedded,  each
  718.           "line" of  text can  be a  couple of hundred characters long, but
  719.           should end  with a  conventional CR/LF  sequence. Otherwise,  the
  720.           stream of  characters will be transmitted as one gigantic line of
  721.           text.  Most modern communications programs that callers might use
  722.           to call your board can handle such a long string.  If a caller is
  723.           using a  communications  package  that  does  not  "wrap"  lines,
  724.           sending them  a mega-string  could make  their program misbehave.
  725.           Using "NONE"  for line  length  assures  that  each  time  a  new
  726.           physical line  is to  be drawn,  a carriage  return and line feed
  727.           will precede it.
  728.           
  729.           -  It is possible to make ultra-sophisticated "animated" screens,
  730.           but you  should avoid animation for the menus.  The time it takes
  731.           to transmit  animated screens may be perceived by your callers as
  732.           "wasted" time.   Bulletins  and welcome  files may  benefit  from
  733.           animation, however.
  734.           
  735.           - Select  "0" for  display speed  when saving files with TheDraw.
  736.           You want  maximum  throughput,  since  each  character  is  being
  737.           transmitted via the modem to your caller.
  738.  
  739. Most of WR-BBS's screen files MUST be present for proper operation.  If you
  740. do not  use the  originally supplied  files, use  your own  versions of the
  741. screen files.  Unless indicated as being optional, all screen files must be
  742. present in  either the  home  path,  or  the  path  you  have  defined  (in
  743. WRCONFIG.SYS) for  display files (see "SCREENDIR=" in section 10). For each
  744. screen file,  one with  an extension  of .ASC and one with and extension of
  745. .ANS must  be present.   If  a screen  file is missing, an error message is
  746. displayed to the caller, and an error is logged in the activity file.
  747.  
  748. The file names for screen files used by WR-BBS are:
  749.  
  750.  
  751. BADNAME.ASC and BADNAME.ANS:
  752.                     Sent  to   callers  whose  name  appears  in  the  file
  753.                     NOACCESS.TXT.  The caller is then disconnected.
  754.  
  755. BULL????.ASC and BULL????.ANS:
  756.                     These are the actual bulletin screens.  WR-BBS supports
  757.                     up to 9,999 bulletins, with file names BULL0001.ASC/ANS
  758.                     through BULL9999.ASC/ANS.  The caller selects bulletins
  759.                     by typing in the corresponding number.  For example, if
  760.                     the caller  enters 34,  bulletin file  BULL0034.ASC/ANS
  761.                     will be displayed.
  762.  
  763. BULLMENU.ASC and BULLMENU.ANS:
  764.                     Menu screen which lists available bulletins.
  765.  
  766. CALLVIEW.ASC and CALLVIEW.ANS:
  767.                     This screen  file describes  the options available to a
  768.                     caller when  the "(W)ho  called  recently"  command  is
  769.                     selected from the main menu.
  770.  
  771. CHATFAIL.ASC and CHATFAIL.ANS:
  772.                     Displayed to  caller when  the SysOp  does not answer a
  773.                     chat page request.
  774.  
  775. DOORMENU.ASC and DOORMENU.ANS:
  776.                     Screen file for "doors" menu.  WR-BBS supports up to 26
  777.                     doors.  See also section 13 for detailed information on
  778.                     doors.   If you  configure any  doors, this  screen  is
  779.                     displayed to  the caller  when they choose (D)oors from
  780.                     the  main  menu.    This  screen  describes  the  doors
  781.                     available, which  are identified by letters from "A" to
  782.                     "Z".   The caller,  upon seeing the selection listed in
  783.                     this screen, then selects the desired door.
  784.  
  785. FILELIST.ASC and FILELIST.ANS:
  786.                     When a  caller, in  the Files Library, selects "(L)ist"
  787.                     to see  a listing  of available files, this screen file
  788.                     is transmitted.   It  explains the choices available to
  789.                     the caller for listing files.
  790.  
  791. FILESLIB.ASC and FILESLIB.ANS:
  792.                     Menu  screen  for  file  library  (the  "files"  menu).
  793.                     Displays  caller's  options  for  file  area,  such  as
  794.                     downloading, listing, uploading, etc.
  795.  
  796. GOODBYE.ASC and GOODBYE.ASC:
  797.                     Screen file which is sent to callers after they request
  798.                     a logoff.   This  file should  be less  than 1/2  of  a
  799.                     screen in  length.   This ensures  that the  caller can
  800.                     view the  whole text  of the screen file, even if their
  801.                     communications program  does some  line feeds after the
  802.                     disconnect is  detected. Also,  since some callers will
  803.                     drop carrier  shortly  after  selecting  (G)oodbye  and
  804.                     confirming  their  logoff,  having  a  short  "goodbye"
  805.                     screen eliminates  these callers  from being  logged as
  806.                     "dropped carrier".
  807.  
  808. GREETING.ASC and GREETING.ANS:
  809.                     Screen sent  to callers during logon, immediately after
  810.                     they answer  the question  "Do you  wish to  have  ANSI
  811.                     color?".   This screen should be only a few lines long,
  812.                     and should contain the BBS name.
  813.  
  814. HELPFILE.ASC and HELPFILE.ANS:
  815.                     This screen  is displayed  if a  caller selects  (H)elp
  816.                     from the  Files Library  menu.  Its context is specific
  817.                     to the Files Library functions available in that menu.
  818.  
  819. HELPMAIN.ASC and HELPMAIN.ANS:
  820.                     This screen  is  transmitted  in  response  to  a  user
  821.                     selecting (H)elp  from the Main Menu.  It describes the
  822.                     functions available from the Main Menu.
  823.  
  824. HELPMSGS.ASC and HELPMSGS.ANS:
  825.                     If a  caller requests  (H)elp while viewing the Message
  826.                     System Menu,  this screen  is displayed.   It  contains
  827.                     instructions on  how to use the various features of the
  828.                     WR-BBS message system.
  829.  
  830. HOW2CHAT.ASC and HOW2CHAT.ANS:
  831.                     If a  caller presses  (S)ignal for  chat from  the main
  832.                     menu, the SysOp is alerted by a series of beeps, and is
  833.                     told to  press ENTER to start the chat with the caller.
  834.                     When the  SysOp presses ENTER, this screen is sent, and
  835.                     the  chat   begins.     This  screen  contains  helpful
  836.                     information about  how to  chat without  "stepping"  on
  837.                     each other.
  838.  
  839. MAINMENU.ASC and MAINMENU.ANS:
  840.                     This screen  file comprises  the Main  Menu.  It is the
  841.                     primary screen file seen by callers when on line.
  842.  
  843. MESSAGES.ASC and MESSAGES.ANS:
  844.                     This is  the screen  file for  the Message System menu.
  845.                     It lists  the choices  available to  a caller after the
  846.                     caller selects (M)essage system from the Main Menu.
  847.  
  848. NEWS.ASC and NEWS.ANS:
  849.                     Newsletter  file.    Displayed  to  callers  who  press
  850.                     (N)ewsletter from main menu.
  851.  
  852. NEWUSER.ASC and NEWUSER.ANS:
  853.                     Screen  sent   to  new   users,  before  the  new  user
  854.                     induction.   Use this  to explain  your board's  scope,
  855.                     policies,  or  other  information  that  might  not  be
  856.                     apparent to  a new user, as well as a first welcome for
  857.                     new callers.
  858.  
  859. PASSWORD.ASC and PASSWORD.ANS:
  860.                     Screen explaining  how to  select a password. Displayed
  861.                     to new users during logon, and to established users who
  862.                     want to change their password.
  863.  
  864. SEARCH.ASC and SEARCH.ANS:
  865.                     Screen which explains to callers how to use the various
  866.                     message searching options.
  867.  
  868. SENDMSG.ASC and SENDMSG.ANS:
  869.                     Screen which  explains how  to send  a message, and the
  870.                     addressing options available.
  871.  
  872. SHOWANSI.ASC:
  873.                     Screen  which  demonstrates  ANSI  graphics  to  assist
  874.                     callers in  deciding whether  or  not  they  want  ANSI
  875.                     enabled.   Notice that there is no .ANS counterpart for
  876.                     this display  file.   This is  because the  ANSI screen
  877.                     (for demonstration  to user)  is sent  to all  callers,
  878.                     regardless of current ANSI choice.  Otherwise, non-ANSI
  879.                     callers could  never see  the ANSI demonstration.  This
  880.                     is the  only WR-BBS  screen file  with ANSI colors in a
  881.                     .ASC file.
  882.  
  883. SYSOP.ASC and SYSOP.ANS:
  884.                     This is  the screen file for the SysOp menu.  The SysOp
  885.                     menu is  accessed (only  by the SysOp) by selecting "Z"
  886.                     from the  Main  Menu.    It  lists  the  administration
  887.                     options available to the SysOp while on line.
  888.  
  889. THANKYOU.ASC and THANKYOU.ANS:
  890.                     This screen  is sent after each successful upload.  The
  891.                     text thanks the caller for taking the time to upload to
  892.                     the board.
  893.  
  894. UPLDFAIL.ASC and UPLDFAIL.ANS:
  895.                     This screen  is  displayed  if  a  caller  attempts  an
  896.                     upload, but  for some  reason the  file is not received
  897.                     (or is  incomplete, or  aborted by  the  caller).    It
  898.                     describes the  problem so  that the  caller understands
  899.                     the upload was not successful.
  900.  
  901.  
  902. UPLOAD.ASC and UPLOAD.ANS:
  903.                     After a  caller selects (U)pload from the Files Library
  904.                     menu, this  screen is displayed. It can be used to give
  905.                     instructions on  what types of files are acceptable, or
  906.                     to  remind   the  caller   that  their   time  will  be
  907.                     compensated, etc.
  908.  
  909. WELCOME?.ASC and WELCOME?.ANS:
  910.                     This optional screen file is sent to callers after they
  911.                     have  completed   their  logon   (name,  password,  and
  912.                     statistics check).  There can  be up  to  26  WELCOME?.
  913.                     files, one  for each class of service (COS). The letter
  914.                     following "WELCOME"  in the  filename designates  which
  915.                     COS the  screen is  sent to.  For example, WELCOMEA.ASC
  916.                     and WELCOMEA.ANS will be shown to callers with a class-
  917.                     of-service of  "A", while WELCOMEB.ASC and WELCOMEB.ANS
  918.                     would be  shown to  callers with  a class-of-service of
  919.                     "B", and  so  on.    See  section  11  for  a  detailed
  920.                     description of  the class-of-service configuration.  If
  921.                     there is  no welcome file for a particular COS, callers
  922.                     in that COS do not see any welcome file.
  923.  
  924. You do  NOT need  to have  a statement  in your  CONFIG.SYS to load an ANSI
  925. driver for WR-BBS.  WR-BBS has its own built-in ANSI interpreter.
  926.  
  927. ===========================================================================
  928. SECTION 8                                                            WR.BAT
  929. ===========================================================================
  930.  
  931. It is  possible to start WR-BBS by simply typing WRBBS at the command line,
  932. from the  home path  directory.   This is  NOT recommended,  however.   For
  933. maximum flexibility  and control, the use of a batch file to control WR-BBS
  934. is recommended.  A sample batch file, WR.BAT, is included with the original
  935. distribution of  WR-BBS files.  You can use this file without modification,
  936. or edit  it for your site-specific requirements.  Using WR.BAT provides the
  937. following advantages:
  938.  
  939.           - If  WR-BBS operation  is disrupted  due  to  an  error  in  the
  940.           program, the  batch file  will detect  the  DOS  errorlevel,  and
  941.           automatically restart  WR-BBS, without  human intervention. (If a
  942.           batch file  is not  used, the  system would  just return  to  the
  943.           command line,  and not  answer any  calls until a human restarted
  944.           WR-BBS).
  945.           
  946.           - If  you schedule events which require termination (and restart)
  947.           of WR-BBS,  the BBS  will not  restart properly unless WR-BBS was
  948.           originally started  under the  control of  a batch  file such  as
  949.           WR.BAT.
  950.  
  951. A  freeware   utility  file,  WDELAY.EXE,  is  included  with  your  WR-BBS
  952. distribution package.   This  utility is called by WR.BAT when it starts to
  953. load WR-BBS.  This utility simply affords the local operator an opportunity
  954. to cancel the batch file by pressing ESC within the designated time.  Press
  955. <ENTER> when  prompted to  jump past  WDELAY.  If no key is pressed, WDELAY
  956. will start  WR-BBS after  the  delay,  which  allows  unattended  restarts.
  957. Unlike WR-BBS, the WDELAY utility requires no registration, and can be used
  958. indefinitely with no obligation.
  959.  
  960. WR.BAT is  based on  the fact  that WR-BBS  sets a different DOS ERRORLEVEL
  961. depending on  the reason  it terminated.   Based on that errorlevel, WR.BAT
  962. branches to  the appropriate  label in the batch file, and either re-starts
  963. WR-BBS, runs  a "terminate  event", or  simply ends.   (See  section 17 for
  964. information on  terminate events). The possible errorlevels returned by WR-
  965. BBS are:
  966.  
  967. 0            Normal termination (requested by local console)
  968. 1 to 17      Runtime error - operating system or file access error
  969. 84 to 99     Scheduled termination for configured external event
  970. 100 to 106   Runtime error - file or I/O error
  971. 150 to 162   Runtime error - critical file access error
  972. 200 to 214   Runtime error - critical program or logic error
  973. 254 to 255   Runtime error - internal WR-BBS debug halt
  974.  
  975. WR-BBS does  its own  error handling,  and is able to recover automatically
  976. (without terminating) from most minor runtime errors.  Any fatal errors are
  977. captured by WR-BBS's critical error handler, and logged in the activity log
  978. (if possible)  prior to WR-BBS terminating with the appropriate errorlevel.
  979. A screen  is also displayed by WR-BBS when a critical error occurs, showing
  980. the error  code and  process ID.   If a caller is connected when a critical
  981. error occurs,  a message  is transmitted to the caller, explaining that the
  982. system is going off-line briefly, and requesting that they call back.
  983.  
  984. Critical errors  are rare, and are usually due to external influences, such
  985. as corrupted memory, or database files being deleted or damaged.  But, with
  986. WR-BBS's built-in  critical error  handler, you  should never experience an
  987. error that simply crashes the program with no clue as to what happened.
  988.  
  989. ===========================================================================
  990. SECTION 9                                                ... THE FIRST TIME
  991. ===========================================================================
  992.  
  993. Before you  run WR-BBS  for the  first time, you must create an initialized
  994. set of  database files  for WR-BBS to work with.  This is an extremely easy
  995. process, and  takes less than a minute.  Initialized (empty) database files
  996. are not  provided with  the WR-BBS  distribution package,  since WR-BBS  is
  997. capable of  creating an  initialized database  on request.   To  create the
  998. initialized database, do the following:
  999.  
  1000.           1.   Change directories  to make the WR-BBS home path the current
  1001.                     directory.
  1002.           
  1003.           2.  At the command line, type WRBBS /INIT and then press <ENTER>.
  1004.           
  1005.           3.  Answer the confirmation by typing OKAY and pressing <ENTER>.
  1006.  
  1007. WR-BBS will then create the following files:
  1008.  
  1009. WRBBSUSR.DAT
  1010.           This is  the database  file where  user (caller)  information  is
  1011.           stored.
  1012.  
  1013. WRBBSMSG.DAT
  1014.           This file  contains the  message system  database (but not actual
  1015.           messages), with  pointers to  the files  that contain  the actual
  1016.           message text.
  1017.  
  1018. WRBBSLIB.DAT
  1019.           The Files  Library database  is stored  in this  file.   All file
  1020.           descriptions and attributes are written to this file.
  1021.  
  1022. WRBBSPEG.DAT
  1023.           This file  stores statistical  (peg count) data about your WR-BBS
  1024.           system, including  the number  of calls  answered, calls answered
  1025.           today, new messages, etc.
  1026.  
  1027. WRBBSDBF.DAT
  1028.           This file  is used  to record  the status of the WR-BBS database.
  1029.           The W-TREE  database manager  uses this  file to determine if the
  1030.           system was  shut down  in an  orderly manner.  If it was not, the
  1031.           indices  are  rebuilt  automatically  the  next  time  WR-BBS  is
  1032.           restarted.
  1033.  
  1034. After you  have created  the  initialized  database,  WR-BBS  is  ready  to
  1035. configure.
  1036.  
  1037. IMPORTANT:   If you  have a  working database,  and request that the WR-BBS
  1038. database be initialized, all data in the database will be PERMANENTLY LOST.
  1039. Do not  request initialization  unless you  are installing  WR-BBS for  the
  1040. first time, or you wish to start over again with an empty database.
  1041.  
  1042. After creating  an initialized  database, WR-BBS  automatically creates the
  1043. user index  file, WRBBSUSR.IDX,  and a new activity log file, WRBBSLOG.TXT,
  1044. when WR-BBS is started up.
  1045.  
  1046. With an  initialized database,  your WR-BBS  system will  have exactly zero
  1047. users on  file, no  files or  messages in  the database, and no statistics.
  1048. After you  finish configuring  WR-BBS, start  WR-BBS by typing WR, wait for
  1049. the startup  process to complete, and then log on locally by pressing ALT-L
  1050. from the main screen (or the screen saver screen).  The first person to log
  1051. onto your  new WR-BBS  system should  be the  SysOp  whose  name  you  have
  1052. configured in WRCONFIG.SYS (see section 10).
  1053.  
  1054. ===========================================================================
  1055. SECTION 10                                               CONFIGURING WR-BBS
  1056. ===========================================================================
  1057.  
  1058. Almost all  of the  configuration required to make WR-BBS operation is done
  1059. by editing  the text  file WRCONFIG.SYS.   This file must exist in the home
  1060. path directory.   When you edit this file, use an ASCII-capable editor or a
  1061. word processor  that can  save documents in straight ASCII format.  If your
  1062. word processor  inserts proprietary  control  codes,  WR-BBS  will  try  to
  1063. interpret these  codes as  configuration instructions, and this would cause
  1064. unpredictable and  undesirable results.  The copy of WRCONFIG.SYS that came
  1065. with your  new WR-BBS  distribution has  SAMPLE  values  for  many  of  the
  1066. configuration items.   You  will need to change some of these to match your
  1067. implementation and your specific system.
  1068.  
  1069. WR-BBS will  attempt to  interpret any  line that  appears in WRCONFIG.SYS,
  1070. unless that  line starts with a single apostrophe (') or the keyword "REM",
  1071. which is  short for remark.  Any lines that start with one of those special
  1072. identifiers is  ignored by  WR-BBS.  This allows you to insert comments and
  1073. notes as  you make  changes.   It also  allows  you  to  remove  a  complex
  1074. configuration entry  from WR-BBS's  view by prefixing a REM in front of the
  1075. line.   This is  helpful if you want to experiment with different settings,
  1076. without worrying  about losing  complex configuration  strings that you may
  1077. have entered.
  1078.  
  1079. Each of  the entries that can be included in WRCONFIG.SYS is listed in this
  1080. section.   Some of the entries are not required unless you are implementing
  1081. special optional features.  For example, if you do not wish to have "doors"
  1082. on your  WR-BBS system,  you can  omit  (or  remark  out)  all  entries  in
  1083. WRCONFIG.SYS that  start with  "DOOR=".   Some entries  in WRCONFIG.SYS are
  1084. required, however, for proper operation.  These include the BBSNAME, SYSOP,
  1085. and other site-specific details.
  1086.  
  1087. ---------------------------------------------------------------------------
  1088. ANSWERCOMMAND=                                                  DEFAULT=ATA
  1089.  
  1090. This entry  allows you  to configure WR-BBS for the command that your modem
  1091. requires to  answer a  call.   99% of all modems use the command "ATA".  If
  1092. your modem uses "ATA" for an answer command, you can omit this line, as the
  1093. default is also "ATA".  If your modem requires some other command to answer
  1094. a ringing  call, you  must insert  the appropriate string in this entry for
  1095. proper operation.
  1096.  
  1097. IMPORTANT:   This entry  is for the command your modem requires to make the
  1098. modem go  off-hook under  software (WR-BBS) control in response to ringing.
  1099. This is  not the  same as  the "auto  answer" command.   Do  NOT insert  an
  1100. automatic answer  command string  in this entry (such as ATS0=1), or WR-BBS
  1101. will not answer calls properly.  This applies regardless of the RINGDETECT=
  1102. entry you may be using.
  1103.  
  1104. ---------------------------------------------------------------------------
  1105. BADDOOR=                                                          DEFAULT=N
  1106.  
  1107. If you  do not  plan to have "doors" or you do not have an error-correcting
  1108. modem, then  this entry  does not  apply, and  you can  skip it,  using the
  1109. default setting of "N".  This configuration item is to correct a deficiency
  1110. in some  door programs  that do not properly read the DOOR.SYS file.  These
  1111. incorrectly-written door  programs read  the caller's  connect  speed  from
  1112. DOOR.SYS rather  than the  DTE speed,  and then  they (incorrectly)  adjust
  1113. their own baud rate to the caller's speed, which is wrong.  The caller gets
  1114. screenfuls of  garbage, and  has to drop carrier, since they cannot issue a
  1115. quit command.  This phenomena only occurs if you have one of these BAD DOOR
  1116. programs, and  are using an error-correcting modem with the DTE locked at a
  1117. speed which  is different  than the  caller's.  If you make BADDOOR=Y, then
  1118. WR-BBS fools  the bad door by inserting the DTE speed in DOOR.SYS where the
  1119. caller's speed would normally appear.
  1120.  
  1121. Setting BADDOOR=Y is a workaround to compensate for sloppy programming that
  1122. was done  by the  door program  author.  Complain to the author of the door
  1123. program to  get the problem fixed.  This setting affects ALL doors that are
  1124. configured on  WR-BBS.   If you have a bad door among several "good" doors,
  1125. you really have only three choices:
  1126.  
  1127.           1.  Compromise all doors by setting BADDOOR=Y.  Some doors (which
  1128.                     WERE written  properly) may  then malfunction,  because
  1129.                     DOOR.SYS will then be wrong.
  1130.           
  1131.           2.   Stop  using  the  bad  software  (the  poorly  written  door
  1132.                     program).
  1133.           
  1134.           3.  Modify a batch file and/or use a door manager to fool the bad
  1135.                     door into working properly.
  1136.  
  1137. ---------------------------------------------------------------------------
  1138. BBSNAME=                                                         NO DEFAULT
  1139.  
  1140. Insert your  board's name.   Up  to 48  characters can  be used.  The value
  1141. assigned to   BBSNAME  appears at various points during a caller's session,
  1142. and on the default screen while WR-BBS is waiting for calls.  If you do not
  1143. configure this  item, WR-BBS will display "BBS NAME NOT CONFIGURED" in lieu
  1144. of a  BBS name.   The  BBSNAME entry is displayed in the appropriate places
  1145. whether or not you have registered your copy of WR-BBS.
  1146.  
  1147. ---------------------------------------------------------------------------
  1148. BULLETINS=                                                      DEFAULT: 32
  1149.  
  1150. This must  be a  number from  0 to  999, indicating the number of bulletins
  1151. that you  expect to  have available.   WR-BBS will search the home path for
  1152. this number  of bulletin  files, so  this value  should represent  the real
  1153. number of  bulletins  you  have  to  avoid  needless  DOS  file  searching.
  1154. Although it  is possible  to have,  say BULLETINS=500, and only four actual
  1155. bulletins, callers  will have  to endure  a delay while WR-BBS searches for
  1156. the non-existent 496 bulletins.
  1157.  
  1158. ---------------------------------------------------------------------------
  1159. BUSYLINE=                                                        DEFAULT: N
  1160.  
  1161. This entry  determines whether  or not WR-BBS makes the telephone line busy
  1162. when it  cannot process  calls.  Enter Y for yes, or N for no.  If your WR-
  1163. BBS system has its own exclusive telephone line, you may wish to enter Y so
  1164. that the  line is busy during events, while recycling, during local logons,
  1165. and when  WR-BBS is  terminated.   If  WR-BBS  shares  a  phone  line  with
  1166. something (or  someone) else, you must enter N to avoid disabling the phone
  1167. line needlessly for other devices or people.
  1168.  
  1169. ---------------------------------------------------------------------------
  1170. CARRIERWAIT=                                                     DEFAULT=45
  1171.  
  1172. This setting  tells WR-BBS  how long (in seconds) to wait for carrier after
  1173. answering an  incoming call.   Valid  values are  15 to  255 seconds.    45
  1174. seconds is  a good  setting for most installations.  Carrier usually occurs
  1175. within 25 seconds of a call ringing - if not, it's usually not a data call,
  1176. and waiting  much longer than 45 seconds will just waste time.  If you have
  1177. an error-correcting  modem that  goes through  lengthy summit  negotiations
  1178. before reporting  that carrier  is present,  you may  have to lengthen this
  1179. value to 60 or more seconds.
  1180.  
  1181. ---------------------------------------------------------------------------
  1182. CGA_STOP_SNOW=                                                   DEFAULT: N
  1183.  
  1184. For 99%  of all  installations, enter  N for  no on  this line.    If  your
  1185. computer has  an older CGA display, and you see "specks" on the screen when
  1186. WR-BBS is  writing to  the display,  then entering Y for yes here will stop
  1187. the "snow", but slow down screen updates.
  1188.  
  1189. ---------------------------------------------------------------------------
  1190. CONNECT300=                                                DEFAULT: CONNECT
  1191.  
  1192. Enter the  verbose result  code that  your modem  sends  when  a  300  baud
  1193. connection is established.  Most modems send "CONNECT".  If your modem does
  1194. not support  300 baud connections, then make CONNECT300=IMPOSSIBLE to avoid
  1195. any possibility of line noise being mis-interpreted.
  1196.  
  1197. ---------------------------------------------------------------------------
  1198. CONNECT1200=                                          DEFAULT: CONNECT 1200
  1199.  
  1200. Enter the  verbose result  code that  your modem  sends when  a  1200  baud
  1201. connection is established.  Most modems send "CONNECT 1200".  If your modem
  1202. does not support 1200 baud connections, then make CONNECT1200=IMPOSSIBLE to
  1203. avoid any possibility of line noise being mis-interpreted.
  1204.  
  1205. ---------------------------------------------------------------------------
  1206. CONNECT2400=                                          DEFAULT: CONNECT 2400
  1207.  
  1208. Enter the  verbose result  code that  your modem  sends when  a  2400  baud
  1209. connection is established.  Most modems send "CONNECT 2400".  If your modem
  1210. does not support 2400 baud connections, then make CONNECT2400=IMPOSSIBLE to
  1211. avoid any possibility of line noise being mis-interpreted.
  1212.  
  1213. ---------------------------------------------------------------------------
  1214. CONNECT4800=                                          DEFAULT: CONNECT 4800
  1215.  
  1216. Enter the  verbose result  code that  your modem  sends when  a  4800  baud
  1217. connection is established.  Most modems send "CONNECT 4800".  If your modem
  1218. does not support 4800 baud connections, then make CONNECT4800=IMPOSSIBLE to
  1219. avoid any possibility of line noise being mis-interpreted.
  1220.  
  1221. ---------------------------------------------------------------------------
  1222. CONNECT9600=                                          DEFAULT: CONNECT 9600
  1223.  
  1224. Enter the  verbose result  code that  your modem  sends when  a  9600  baud
  1225. connection is established.  Most modems send "CONNECT 9600".  If your modem
  1226. does not support 9600 baud connections, then make CONNECT9600=IMPOSSIBLE to
  1227. avoid any possibility of line noise being mis-interpreted.
  1228.  
  1229. ---------------------------------------------------------------------------
  1230. CONNECT12000=                                        DEFAULT: CONNECT 12000
  1231.  
  1232. Enter the  verbose result  code that  your modem  sends when  a 12000  baud
  1233. connection is established.  Most modems send "CONNECT 12000". If your modem
  1234. does not  support 12000 baud connections, then make CONNECT12000=IMPOSSIBLE
  1235. to avoid any possibility of line noise being mis-interpreted.
  1236.  
  1237.  
  1238. ---------------------------------------------------------------------------
  1239. CONNECT14400=                                        DEFAULT: CONNECT 14400
  1240.  
  1241. Enter the  verbose result  code that  your modem  sends when  a 14400  baud
  1242. connection is  established.   Most modems  send "CONNECT 14400" or "CONNECT
  1243. 144".   If your  modem does  not support  14400 baud connections, then make
  1244. CONNECT14400=IMPOSSIBLE to  avoid any  possibility of line noise being mis-
  1245. interpreted.
  1246.  
  1247. ---------------------------------------------------------------------------
  1248. CONNECT19200=                                        DEFAULT: CONNECT 19200
  1249.  
  1250. Enter the  verbose result  code that  your modem  sends when  a 19200  baud
  1251. connection is established.  Most modems send "CONNECT 19200" or "HICONNECT"
  1252. If  your   modem  does  not  support  19200  baud  connections,  then  make
  1253. CONNECT19200=IMPOSSIBLE to  avoid any  possibility of line noise being mis-
  1254. interpreted.
  1255.  
  1256. ---------------------------------------------------------------------------
  1257. CONNECT38400=                                        DEFAULT: CONNECT 38400
  1258.  
  1259. Enter the  verbose result  code that  your modem  sends when  a 38400  baud
  1260. connection is established.  Most modems send "CONNECT 38400". If your modem
  1261. does not  support 38400 baud connections, then make CONNECT38400=IMPOSSIBLE
  1262. to avoid any possibility of line noise being mis-interpreted.
  1263.  
  1264. ---------------------------------------------------------------------------
  1265. CONNECT57600=                                        DEFAULT: CONNECT 57600
  1266.  
  1267. Enter the  verbose result  code that  your modem  sends when  a 57600  baud
  1268. connection is established.  Most modems send "CONNECT 57600". If your modem
  1269. does not  support 57600 baud connections, then make CONNECT57600=IMPOSSIBLE
  1270. to avoid any possibility of line noise being mis-interpreted.
  1271.  
  1272. ---------------------------------------------------------------------------
  1273. CTSFLOW=                                                          DEFAULT=N
  1274.  
  1275. This setting controls whether WR-BBS should pay attention to the CTS (Clear
  1276. To Send)  flow control  signal from the modem.  If your modem has a maximum
  1277. speed of  2400 baud  or less, it is unlikely that the modem will ever lower
  1278. its CTS signal (which tells the computer to stop sending data).
  1279.  
  1280. On the  other hand,  high-speed modems, especially error-correcting modems,
  1281. need CTS control because they typically work with a fixed (locked) DTE baud
  1282. rate, regardless  of the  caller's connect speed.  If a caller is connected
  1283. at 2400 baud and the DTE speed is locked at 38,400, it doesn't take long to
  1284. fill the modem's buffer.  The modem then drops the CTS line, signalling the
  1285. computer to stop sending data for a while.  When the modem's buffer empties
  1286. out (as  the buffered  data is transmitted to the caller), the modem raises
  1287. the CTS  line, signalling  the computer  that it  can  again  accept  data.
  1288. Without such  a signalling  means, the modem would overflow, and data would
  1289. be lost.
  1290.  
  1291. Why not  just set  WR-BBS to always observe CTS with CTSFLOW=Y ?  There can
  1292. be some  drawbacks to  using CTS flow control, so you will probably want to
  1293. leave CTSFLOW=N  unless you  really need  CTS flow  control.   The constant
  1294. interrupt  servicing   necessary  to  watch  CTS  causes  slightly  reduced
  1295. throughput.   If your  DTE is  locked at  a high  speed (such  as 14,400 or
  1296. higher), this  reduction in output is negligible.  At slower speeds, it may
  1297. be noticeable.   The  interrupt overhead  may also  make some  disk caching
  1298. utilities slow  down, especially  if they  use exTENDed  memory instead  of
  1299. exPANDed memory.
  1300.  
  1301. ---------------------------------------------------------------------------
  1302. DOOR=                                                           NO DEFAULTS
  1303.  
  1304. See section 13 for complete details on setting up doors.
  1305.  
  1306. ---------------------------------------------------------------------------
  1307. ERRORFREE=                                                       NO DEFAULT
  1308.  
  1309. Enter the  result code  that your modem sends when an error free connection
  1310. is established.   Most error-correcting modems send either "/MNP" or "/REL"
  1311. to signify  such a  connection.   If you  do not  have an  error correcting
  1312. modem, then  make ERRORFREE=IMPOSSIBLE  to avoid false error-free detection
  1313. if random  matching characters  should appear.   This  string is  usually a
  1314. suffix to  the regular  connect string,  such as  "CONNECT  2400  /ARQ"  or
  1315. "CONNECT 9600 /REL".
  1316.  
  1317. ---------------------------------------------------------------------------
  1318. EVENT=                                                                  N/A
  1319.  
  1320. See section 17 for detailed instructions on configuring events.
  1321.  
  1322. ---------------------------------------------------------------------------
  1323. FILEAREA=                                                        NO DEFAULT
  1324.  
  1325. There can  be up  to 26  file areas  defined.   Each one is identified by a
  1326. unique letter  (from A  to Z)  and a  descriptive name.    The  file  areas
  1327. comprise your  "library" of  files available  for callers  to download.  By
  1328. having (up  to 26)  distinct file  areas, you can group your files by type.
  1329. For example, area "A" might be files that are of interest to Windows users,
  1330. while area "B" contains Games, with Recipes in area "C", and so on.  Having
  1331. a well-thought-out  file library  will make your WR-BBS easy for callers to
  1332. navigate, and ensure that files get the visibility you wish them to have.
  1333.  
  1334. It is not mandatory that any file areas be defined, but callers will not be
  1335. able to  upload (or  download) files unless at least one file area has been
  1336. defined.   This might  be satisfactory if you want to run a "messages only"
  1337. type of  BBS.   Otherwise, you will probably want to configure at least two
  1338. file areas;   One  area to  receive new  uploads, and at least one area for
  1339. callers to download files from.
  1340.  
  1341. To define  a file  area,  enter  a  line  in  WRCONFIG.SYS  containing  the
  1342. following, with each item separated by a pipe (|) symbol:
  1343.  
  1344.      1.  The string FILEAREA=
  1345.      
  1346.      2.  The unique letter (A to Z) you wish to assign to that file area.
  1347.      
  1348.      3.   A descriptive name for that file area, such as "Astronomy Files",
  1349.           "Games for  Children", or  "DOS Utility Files".  This descriptive
  1350.           name can be up to 48 characters in length.
  1351.      
  1352.      4.   The full  path to  that file  area.   This must  be a  valid  DOS
  1353.           directory. This  directory (only)  will be  searched when  a file
  1354.           download is  requested by  a caller.  If the  specified directory
  1355.           does not exist, an error will occur when WR-BBS is started.
  1356.      
  1357.      5.   A string  of letters  (A to Z), representing the class-of-service
  1358.           required for a caller to access the files in that area.  To allow
  1359.           all classes-of-service  to access  this are,  the string would be
  1360.           "ABCDEFGHIJKLMNOPQRSTUVWXYZ".     See  section  11  for  detailed
  1361.           information on setting up classes of service.
  1362.  
  1363. Some examples:
  1364.  
  1365.      FILEAREA=A|Flight Simulator Utilities|C:\WR-BBS\FSUTILS|ABCDE
  1366.  
  1367. In the  above example,  a  file  area  designated  as  "A"  references  the
  1368. directory C:\FSUTILS.   The  name that  will be  displayed  to  callers  is
  1369. "Flight Simulator  Utilities".  Callers have a class-of-service of A, B, C,
  1370. D, or  E can  access this file area.  Callers with other classes-of-service
  1371. (such as "Z") will not be able to access this file area.
  1372.  
  1373.      FILEAREA=B|Games|D:\GAMES|ABCDEFGHIJKLMNOPQRSTUVWXYZ
  1374.  
  1375. In the  above example, file area "B" references the directory D:\GAMES. Any
  1376. caller can  access this  area, as all 26 class-of-service letters have been
  1377. included in the COS string.
  1378.  
  1379.      FILEAREA=C|SysOp Only!|C:\FORSYSOP|Q
  1380.  
  1381. In  the   above  example,  file  area  "C"  references  a  directory  named
  1382. C:\FORSYSOP.   This is  a private file area.  In this example, the SysOp is
  1383. the only  caller with  a class-of-service of "Q", therefore, only the SysOp
  1384. can access this file area.
  1385.  
  1386. Careful planning  of your  classes of  service will  allow you  to offer  a
  1387. flexible file  library to  your callers,  restricting unauthorized  callers
  1388. from files  that they  should not  access.  Section 11, which describes the
  1389. class-of-service concept, is recommended reading for new WR-BBS SysOps.
  1390.  
  1391. The entries  that you  put in WRCONFIG.SYS to configure your file areas may
  1392. exceed the  normal line  size of your editor.  The directory path can be up
  1393. to 64  characters, and the descriptive name can be up to 48 characters.  If
  1394. your entry exceeds 79 characters, it is important that your editor keep the
  1395. long entry  as ONE  line, with  no imbedded  carriage  return  or  linefeed
  1396. characters.  The entire entry cannot exceed 128 characters.
  1397.  
  1398. ---------------------------------------------------------------------------
  1399. GOODBYE_DELAY=                                                    DEFAULT=1
  1400.  
  1401. This parameter  controls how  long WR-BBS  waits, after sending the GOODBYE
  1402. screen, before  actually dropping  the call  (lowering DTR).  If you do not
  1403. have an  error correcting  modem,  the  default  setting  of  1  second  is
  1404. adequate.   If you  have an  error correcting modem, the caller may not see
  1405. the entire  GOODBYE screen unless you extend the number of seconds that WR-
  1406. BBS waits  before it  drops carrier after sending the GOODBYE screen.  This
  1407. is because  it only  takes a  few milliseconds  for WR-BBS  to transmit the
  1408. GOODBYE screen (at very high baud rates typical of error-correcting modems)
  1409. but the  remote caller's  communications program will usually stop updating
  1410. the caller's  screen as  soon as  their modem detects that WR-BBS has ended
  1411. the call.   Valid  values for  this setting  are from  1 to  9 seconds.  It
  1412. cannot be set to 0 seconds.
  1413.  
  1414. ---------------------------------------------------------------------------
  1415. INBUFFER=                                                      DEFAULT=2048
  1416.  
  1417. This is an optional entry.  It determines the size of the serial I/O buffer
  1418. that WR-BBS  sets up in memory.  2048 is usually a good value to use.  This
  1419. means that  WR-BBS's communications  port handler  will buffer  up to  2048
  1420. characters until  WR-BBS can  process them.   Usually,  no more  than a few
  1421. characters are ever buffered for input.  The buffer can be set to any whole
  1422. number from  128 to  32767.   The higher  this number,  the more  memory is
  1423. needed by  WR-BBS (a  32767 character  buffer takes 32K of additional ram).
  1424. If this  value is  too low,  a buffer  over-run may occur.  An over-run, at
  1425. best, means  that some input characters will be lost.  In severe cases, WR-
  1426. BBS could crash due to heap corruption.
  1427.  
  1428. If you  use a  multi-tasking environment,  such as  DESQview, an  OS/2  DOS
  1429. Window, or Microsoft Windows, it is possible that WR-BBS may not get enough
  1430. processor cycles  to unload  the buffer  in a  timely  fashion  if  another
  1431. process is bogging the system down.  If this is likely, increase the buffer
  1432. size slightly (try 8000).
  1433.  
  1434. Unless you  run multiple  applications under  a multi-tasker,  or you  have
  1435. problems with  buffer over-runs,  its best not to change INBUFFER= from the
  1436. default setting.
  1437.  
  1438. ---------------------------------------------------------------------------
  1439. INITBAUD=                                                      DEFAULT=2400
  1440.  
  1441. This value  is the  speed (baud rate) at which you modem expects to receive
  1442. off-line initialization  commands.   For most (but not all) modems, this is
  1443. the same  as their  maximum operating  speed.   When WR-BBS  starts up, and
  1444. after each  call, initialization commands are sent to the modem.  The value
  1445. you define  for INITBAUD= determines the speed used by WR-BBS to send those
  1446. commands.   For most  error-correcting modems, including those that support
  1447. v32, v42,  MNP, and  ARQ transmission,  the INITBAUD= setting should be the
  1448. modem's "link"  speed.   This is  the speed  at which  the  modem  normally
  1449. communicates with  the computer  (and vice  versa).   Most error-correcting
  1450. modems use  one speed  for all computer-to-modem and modem-to-computer data
  1451. transmissions, regardless  of the  actual connect  speed.   For  additional
  1452. information, see the entry for LOCKDTE=.
  1453.  
  1454. ---------------------------------------------------------------------------
  1455. LICENSEE=                                                        NO DEFAULT
  1456.  
  1457. If you  have registered  your copy  of WR-BBS,  enter your  registered name
  1458. after  the   equal  sign,  exactly  as  it  appears  on  your  registration
  1459. confirmation.   You must  also  enter  the  special  registration  code  in
  1460. conjunction with  the REGISTRATION=  parameter  (described  later  in  this
  1461. section.  Make sure both are entered correctly.  Have correct values in the
  1462. LICENSEE=  and   REGISTRATION=  lines  will  stop  WR-BBS  from  displaying
  1463. "EVALUATION ONLY"  when callers log on and log off.  Your registration name
  1464. will be displayed instead.
  1465.  
  1466. ---------------------------------------------------------------------------
  1467. LOCKDTE=                                                          DEFAULT=N
  1468.  
  1469. This is  for error-correcting  modems.   If  you  do  not  have  an  error-
  1470. correcting modem,  set LOCKDTE=N,  or omit  this  line  from  WRCONFIG.SYS.
  1471. Error-correcting modems  can be identified by the transmission methods that
  1472. they support, typically V.32bis, V.42bis, MNP, "reliable", and ARQ.  Almost
  1473. all modems  that work at speeds above 4800 baud are of the error-correcting
  1474. type.
  1475.  
  1476. Error-correcting modems, with few exceptions, use "locked DTE".  This means
  1477. that the data stream from the computer to the modem, and vice-versa, always
  1478. occurs at  a fixed  speed (such  as 14,400, 19,200, or 38,400).  DTE stands
  1479. for Data  Terminal Equipment,  which is what your computer is to the modem.
  1480. This constant DTE speed is locked at the same value at all times regardless
  1481. of the  caller's actual  connect rate.   For  example, if  you are using an
  1482. error-correcting modem,  and have  the DTE  locked at  14,400, WR-BBS  will
  1483. communicate with  the modem  at 14,400  regardless of  who is on line or at
  1484. what speed.   Even  a 300  baud connection will result in computer-to-modem
  1485. and  modem-to-computer  communications  at  14,400  baud;  the  modem  will
  1486. automatically adjust  its interface with the caller to their connected baud
  1487. rate.   Also, all  modem commands  (including initialization  and recycling
  1488. commands) are sent at the locked DTE speed.
  1489.  
  1490. If  you   are  using   an  error-correcting  modem,  consult  your  modem's
  1491. documentation for  the proper locked DTE speed to use, and set INITBAUD= to
  1492. this value.  Also set LOCKDTE=Y.
  1493.  
  1494. NOTE:   If LOCKDTE=Y  and your modem is not an error-correcting type (or is
  1495. not set up properly), callers will receive garbage unless they happen to be
  1496. calling at the modem's locked DTE speed.
  1497.  
  1498. ---------------------------------------------------------------------------
  1499. LOGONALARM=                                                       DEFAULT=N
  1500.  
  1501. Enter Y  for yes  if you  want WR-BBS to alert you to each logon with a one
  1502. second warble tone.  When N is set, no tone is heard when a logon occurs.
  1503.  
  1504. ---------------------------------------------------------------------------
  1505. MAXBAUD=                                                       DEFAULT=2400
  1506.  
  1507. Enter the maximum speed (baud) at which your modem is capable of operating.
  1508. Depending on  your modem's  make and  model, this  may  be  different  from
  1509. INITBAUD=.   For error-correcting  modems, enter  the modem's DTE or "link"
  1510. speed.
  1511.  
  1512. ---------------------------------------------------------------------------
  1513. MODEM_INIT_ONE=                         DEFAULT=AT &C1 &D2 S7=45 V1 X4 S0=0
  1514.  and
  1515. MODEM_INIT_TWO=                                                  NO DEFAULT
  1516.  
  1517. WR-BBS supports  two modem initialization strings.  Each one can have up to
  1518. forty (40)  characters after  the equal  sign.   Most modems  cannot accept
  1519. commands with  more  than  40  characters  in  the  string.    Some  WR-BBS
  1520. installations (particularly  those  with  high-speed,  highly  configurable
  1521. modems) may require more than forty characters to initialize the modem.  An
  1522. additional line,  MODEM_INIT_TWO=, is  recognized in  WRCONFIG.SYS, and can
  1523. contain up  to forty  additional characters  of modem  initialization data.
  1524. Thus, WR-BBS  can handle  up to  eighty characters for modem initialization
  1525. purposes. You  do not  have to use both strings if your initialization data
  1526. will  fit   into  one  string.    If  you  have  no  data  for  the  second
  1527. initialization string, omit the MODEM_INIT_TWO= entry from WRCONFIG.SYS.
  1528.  
  1529. The modem  initialization string  is sent  to the modem whenever one of the
  1530. following conditions occur:
  1531.  
  1532.           1.  WR-BBS is first started.
  1533.           2.   A call  ends, and  WR-BBS recycles  to prepare  for the next
  1534.                     call.
  1535.  
  1536. For proper  operation, some form of initialization data must be sent to the
  1537. modem  in  each  of  the  two  situations  above.    Consult  your  modem's
  1538. documentation for  the appropriate  information to  include in this string.
  1539. If you  have a  Hayes <tm> modem, or a modem that recognizes the Hayes <tm>
  1540. command set,  the initialization  string  should  start  with  "AT".    The
  1541. commands listed  below are  for example  purposes, and  assume the use of a
  1542. Hayes <tm> modem with no error-correction (such as a SmartModem 2400 <tm>).
  1543. They apply  to most  modems that  recognize the same commands as Hayes <tm>
  1544. modems, and  are necessary for proper, secure operation of WR-BBS.  You may
  1545. need to  add additional  commands  for  your  particular  installation,  so
  1546. consider these as a bare minimum:
  1547.  
  1548.           Command    Meaning
  1549.           -------    -------
  1550.           E1         Echo commands back to computer
  1551.           M0         Modem's speaker off at all times
  1552.           Q0         Send result codes
  1553.           V1         Result codes are words instead of numbers
  1554.           X4         Detailed result codes, including connect speed
  1555.           &C1        Track the presence or absence of carrier detect
  1556.           &D2        React to loss of DTR by dropping carrier
  1557.           &R0        CTS follows RTS, not assumed to be on
  1558.           S0=0       Disable auto answer (see RINGDETECT=)
  1559.           S2=128     Disable escape sequence
  1560.  
  1561.  
  1562.           The "E1"  command is  necessary so that WR-BBS will its own input
  1563.                     to the  modem echoed back.  If WR-BBS does not see this
  1564.                     echo, the initialization diagnostics will not work.
  1565.           
  1566.           The "M0"  command is  not essential, but if you omit it, you will
  1567.                     hear the progress of incoming calls until the handshake
  1568.                     is finished.   This can be annoying, especially if your
  1569.                     WR-BBS runs twenty four hours a day.
  1570.           
  1571.           The "Q0"  command is  required, as  WR-BBS will  not be  able  to
  1572.                     determine  a  caller's  connect  speed  without  result
  1573.                     codes.
  1574.           
  1575.           The "V1"  command is  also required,  so that  WR-BBS is supplied
  1576.                     with verbose result codes instead of numbers.
  1577.           
  1578.           The "X4"  command makes  the result  codes even  more verbose, so
  1579.                     that WR-BBS  can determine  the speed at which a caller
  1580.                     connects, as  well as the modem's reports of any errors
  1581.                     during handshaking.
  1582.           
  1583.           The "&C1"  command is  extremely important and essential.  WR-BBS
  1584.                     will  NOT   work   without   this   command   in   your
  1585.                     initialization string.   This  command makes  the modem
  1586.                     report the  true state  of  the  carrier  detect.    If
  1587.                     omitted, the  modem (by  default) will  usually  report
  1588.                     that carrier  is present  all of the time.  WR-BBS will
  1589.                     never finish  the startup sequence if this is the case,
  1590.                     as it  will assume  that a caller is connected, and try
  1591.                     (up to  30 times)  to drop  carrier, when  there was no
  1592.                     carrier in the first place.
  1593.           
  1594.           The "&D2"  command is  equally important,  as this  instructs the
  1595.                     modem to  drop a  call if  WR-BBS lowers  the DTR (Data
  1596.                     Terminal Ready)  line.   Without this  command  in  the
  1597.                     initialization string,  WR-BBS  will  not  be  able  to
  1598.                     disconnect calls properly.
  1599.           
  1600.           The "S0=0"  command is  REQUIRED unless  your modem is one of the
  1601.                     extremely  few  modems  that  do  not  report  ringing.
  1602.                     99.999999% of all internal modems and 99.999998% of all
  1603.                     external modems  properly report ringing via pin 22. If
  1604.                     yours does  not, it  is either  very old, or defective.
  1605.                     You can  configure WR-BBS  to work  with the  modem  in
  1606.                     auto-answer mode  until you  obtain a  modem that works
  1607.                     properly.   See RINGDETECT=  for more  details.  Unless
  1608.                     you need  to compromise  your WR-BBS  to  adapt  to  an
  1609.                     incompatible modem,  do NOT  set your  modem  for  auto
  1610.                     answer, either  via an  initialization command  or  via
  1611.                     switches on the modem.
  1612.           
  1613.           The "S2=128" command disables the escape sequence that is used to
  1614.                     gain control  of your  modem when  it is on line.  This
  1615.                     sequence, by default, is "+++".  A hacker could arrange
  1616.                     his system  to send  this sequence  and take control of
  1617.                     your modem.   I  won't explain how, but it can be done.
  1618.                     By setting  S2=128, the escape sequence is disabled, so
  1619.                     nobody can play games with your modem.
  1620.  
  1621.  
  1622. ---------------------------------------------------------------------------
  1623. MODEMDELAY=                                                      DEFAULT=55
  1624.  
  1625. This setting  allows you  to compensate  for a "slow" or exceptionally fast
  1626. modem.   Allowable values are from 1 to 1024, and represent milliseconds of
  1627. delay between  each command  character transmitted to the modem.  Note that
  1628. this character  "pacing" has  no connection  with the modem's behavior when
  1629. connected to  a caller  - all  MODEMDELAY does is slow down command strings
  1630. being sent  to the  modem by  WR-BBS.   If your  modem "misses"  the  "ATA"
  1631. command (and  ignores ringing calls), try increasing the MODEMDELAY setting
  1632. a bit at a time.  The same is true if the status line shows that your modem
  1633. is not  acknowledging initialization  commands  (or  there  are  characters
  1634. missing in  the echoed  result).   You should  never have to set MODEMDELAY
  1635. higher than 250.  If your modem is super-efficient, you may be able to trim
  1636. MODEMDELAY down below 55, reducing the initialization time slightly.
  1637.  
  1638. If you  are running  an error  correcting modem  at very  high  DTE  speeds
  1639. (57,600 and above), you will probably need to set MODEMDELAY to 100 or more
  1640. to get reliable command acceptance.
  1641.  
  1642. ---------------------------------------------------------------------------
  1643. NEWUSER_ADDRESS1=                                                 DEFAULT=Y
  1644.  
  1645. If Y  is specified,  then WR-BBS  will ask  each new user for their address
  1646. during the  new user  questionnaire.  If set to N, then new callers are not
  1647. prompted for their address, but can optionally enter it if desired.
  1648.  
  1649. ---------------------------------------------------------------------------
  1650. NEWUSER_ADDRESS2=                                                 DEFAULT=Y
  1651.  
  1652. If set to Y, then new callers, while completing the new user questionnaire,
  1653. will be  prompted to (but not required to) enter their "auxiliary" address.
  1654. An auxiliary  address is any part of their street address that does not fit
  1655. on the  first line  (NEWUSER_ADDRESS1=), such as their apartment number. If
  1656. set to  N, new  callers are  not prompted for an auxiliary address, but can
  1657. enter one if so desired.
  1658.  
  1659. ---------------------------------------------------------------------------
  1660. NEWUSER_CITY=                                                     DEFAULT=Y
  1661.  
  1662. During the  new user  questionnaire, new  callers will be required to enter
  1663. their city  if set  to Y.  If you do not wish to require this response, set
  1664. this to N.
  1665.  
  1666. ---------------------------------------------------------------------------
  1667. NEWUSER_COS=                                                      DEFAULT=A
  1668.  
  1669. This entry  defines which  class-of-service (COS)  is initially assigned to
  1670. new callers  after they complete the new user questionnaire.  It can be any
  1671. letter from  A to  Z.   By convention,  "A" is  the lowest letter, and thus
  1672. would have  the lowest access privileges, but you don't have to follow this
  1673. convention, since  any  COS  can  be  given  any  privileges  you  wish  to
  1674. configure.  By specifying a "restricted" class-of-service for NEWUSER_COS=,
  1675. you can ensure that new users do not have excessive access rights until you
  1676. have verified their questionnaire responses.  After verification, you would
  1677. (as the  SysOp) go  into the  SysOp menu, select (U)ser administration, and
  1678. assign a  "better" class-of-service to the verified caller.  See section 11
  1679. for a detailed explanation of the WR-BBS flexible class-of-service system.
  1680.  
  1681. ---------------------------------------------------------------------------
  1682. NEWUSER_DATAPHONE=                                                DEFAULT=N
  1683.  
  1684. This item  determines whether  new callers,  while answering  the new  user
  1685. questionnaire, are  required to  enter a "data" or "business" phone number.
  1686. In some environments, such as a private "hobby" BBS, it is not realistic to
  1687. expect that  every caller  would have  a data  or business  phone number to
  1688. give, so  you will probably want to set this item to N.  If you are running
  1689. a more  specialized BBS,  where, for  example, you  need the fax number for
  1690. every caller,  you can  set this  to Y  to  prompt  them  for  a  non-voice
  1691. telephone number.
  1692.  
  1693. ---------------------------------------------------------------------------
  1694. NEWUSER_VOICEPHONE=                                               DEFAULT=Y
  1695.  
  1696. Setting this  item to  Y makes WR-BBS ask for a voice telephone number from
  1697. each new  caller who completes the new user questionnaire.  Unlike a "data"
  1698. phone, you  can be  assured that  every caller  has at  least a voice phone
  1699. number to supply (how are they calling your board?), and most SysOps demand
  1700. this information  for verification  purposes.   If NEWUSER_VOICEPHONE=Y and
  1701. VALIDATEPHONE=Y, the  new user  will  not  be  allowed  to  enter  a  bogus
  1702. telephone number such as 555-1234 or 800-XXX-XXXX.  They can still dream up
  1703. a fake  number which  satisfies the  VALIDATEPHONE routine,  but if they do
  1704. enter such  a fake  number, you  can lock them out with a clear conscience,
  1705. knowing that  they intentionally entered a bogus number, and then responded
  1706. that the number was indeed accurate.  See the VALIDATEPHONE description for
  1707. more details.
  1708.  
  1709. ---------------------------------------------------------------------------
  1710. NEWUSER_ZIPCODE=                                                  DEFAULT=Y
  1711.  
  1712. If set  to Y,  new callers who indicate that they live in the United States
  1713. will be  required to  enter a  Zip code which complies with the USA format.
  1714. Either a  five or nine digit zip code complies.  New callers who are not US
  1715. residents (based on their answer to the "country" question) are not held to
  1716. this requirement,  as their  postal codes  may have  one of  many different
  1717. formats, or  be non-existent.   If set to N, no prompting for a Zip code is
  1718. done, but it can be optionally entered by the caller.
  1719.  
  1720. ---------------------------------------------------------------------------
  1721. PARITY=                                                           DEFAULT=N
  1722.  
  1723. The default  setting of  "N" for  no parity  checking should not be changed
  1724. except for  unusual situations.  Other valid settings are "E" for even, "O"
  1725. for odd,  "M" for  mark and  "S" for  space.  Note that ANSI graphics, file
  1726. transfer protocols, and most doors will not work consistently unless parity
  1727. checking is disabled by setting it to "N".
  1728.  
  1729. ---------------------------------------------------------------------------
  1730. PORTNUMBER=                                                       DEFAULT=1
  1731.  
  1732. Use this  setting to  tell WR-BBS  which communications  port your modem is
  1733. connected to.   Standard  port configurations  for COM1  and COM2 are fully
  1734. supported by  WR-BBS.   For COM1, the line would read PORTNUMBER=1, and for
  1735. COM2, the  line would  read PORTNUMBER=2.   There  is only  partial support
  1736. designed into  WR-BBS for  ports other than COM1 and COM2, and operation on
  1737. non-standard ports  is not  assured in  this version of WR-BBS.  The IBM PC
  1738. <tm> and  AT <tm>  in their most generic form do not support communications
  1739. ports other  than COM1  and COM2.   If  you wish  to use a non-standard COM
  1740. port, it  must have  an IRQ  that respectively  matches the  supported  COM
  1741. ports.  The IRQ mapping is:
  1742.  
  1743.           COM1         IRQ4
  1744.           COM2         IRQ3
  1745.           COM3         IRQ4
  1746.           COM4         IRQ3
  1747.  
  1748. ---------------------------------------------------------------------------
  1749. REGISTRATION=
  1750.  
  1751. After you  register your copy of WR-BBS, you will receive a "license code",
  1752. which is  used in  conjunction with  the REGISTRATION= entry to tell WR-BBS
  1753. that you have a registered copy.
  1754.  
  1755. ---------------------------------------------------------------------------
  1756. RINGDETECT=                                                       DEFAULT=1
  1757.  
  1758. WR-BBS supports  two kinds  of ring detection.  In 99.99% of all cases, you
  1759. should use  ring detection  type 1,  which is  the default.  Ring detection
  1760. type 1  uses your  modem's hardware  ring signal line (pin 22 on the RS-232
  1761. cable).   This pin  goes high  when the  phone line  rings.  It is the most
  1762. reliable method.  If you use ring detection type 1 (which you should), make
  1763. certain that you include S0=0 somewhere in your modem initialization string
  1764. (see MODEM_INIT_1=).  This turns off the auto answer feature on your modem.
  1765. As with  most BBS  products, WR-BBS waits for ringing to be reported by the
  1766. modem, then  issues a  command to  make the modem answer.  If your modem is
  1767. set for  auto-answering with  ring detection type 1, nobody will be able to
  1768. establish a  connection and  weird things will happen. Also, make sure that
  1769. your modem's DIP switches are set to disable auto-answer.
  1770.  
  1771. There are  a (very)  few modems  which do not report ringing via pin 22. If
  1772. you have  one of  these modems,  you will  have to  set RINGDETECT=2.    If
  1773. RINGDETECT=2, you  MUST have  auto-answer enabled by including S0=1 in your
  1774. modem initialization string.
  1775.  
  1776. Use RINGDETECT=2  only if  your modem  cannot support the default method of
  1777. ring detection.   If  you have  any doors  configured, be  aware that using
  1778. RINGDETECT=2 allows  a small  (but real) window of opportunity for a hacker
  1779. to get  into the  system.  If a caller drops carrier while in a door, and a
  1780. new call comes in before the door has exited to WR-BBS, the new caller will
  1781. be able to essentially continue the session of the previous caller.  If the
  1782. previous caller  was the  SysOp or  a user  with a liberal class-of-service
  1783. that allows  access to  the operating  system, a  hacker who obtains access
  1784. this  way  can  do  grave  damage,  including  formatting  your  drives  or
  1785. introducing a  virus.   This potential security breach is not a flaw in WR-
  1786. BBS, but a short coming in some door programs that do not immediately react
  1787. to lost carrier by exiting to the calling program.  Although the likelihood
  1788. of such  an occurrence  is rare, it is one more reason to use RINGDETECT=1,
  1789. which all  modern modems  (that are  connected properly)  support.   If you
  1790. modem does  not support  pin 22  ring reporting, and you wish to use doors,
  1791. you should consider getting a better modem before using RINGDETECT=2.
  1792.  
  1793. ---------------------------------------------------------------------------
  1794. SCREENDIR=                                      DEFAULT (SAME AS HOME PATH)
  1795.  
  1796. This is  an optional  entry.  WR-BBS uses a number of "screen" files, which
  1797. have extensions  of .ASC and .ANS.  These files are sent to callers to make
  1798. the corresponding screens display on the caller's system.  Depending on how
  1799. sophisticated you  make your  WR-BBS application,  you could  have anywhere
  1800. from 50 to a few hundred screen files.
  1801.  
  1802. To avoid  cluttering up  the home path directory, you can use SCREENDIR= to
  1803. specify a  separate directory  where the  screen files  are  stored.    For
  1804. example, if your home path is:
  1805.  
  1806.           D:\WR-BBS
  1807.           
  1808.                and you want to keep the screen files in
  1809.           
  1810.           D:\WR-BBS\SCREENS
  1811.  
  1812. Then you  would  configure  WR-BBS  by  inserting  the  following  line  in
  1813. WRCONFIG.SYS:
  1814.  
  1815.           SCREENDIR=D:\WR-BBS\SCREENS
  1816.  
  1817. If you do not wish to have a separate screen directory (you don't have to),
  1818. then omit  the SCREENDIR= entry, or REMark it out. If you use this item, it
  1819. must point  to a  valid directory  where all .ASC and .ANS files for WR-BBS
  1820. are stored.
  1821.  
  1822. ---------------------------------------------------------------------------
  1823. SCREENSAVER=                                                      DEFAULT=Y
  1824.  
  1825. Unless  you  tell  WR-BBS  otherwise,  its  uses  a  screen-saving  display
  1826. procedure whenever  it is  idle.   Since most  WR-BBS boards  are  operated
  1827. twenty four  hours a day, the screen saver prevents the WR-BBS screen image
  1828. from becoming  burned into  the monitor's  picture tube.   When  the screen
  1829. saver is  in effect, a three or four line abbreviated display is located at
  1830. random places on the screen, using random colors and intensities.  If there
  1831. are messages waiting for the SysOp, the fourth line flashes "New message(s)
  1832. for SysOp".   If the SysOp has no messages waiting, there is no fourth line
  1833. in the  screen saver  display.   The top  line of  the screen-saver display
  1834. shows the current date and time, and the WR-BBS "up" symbol.
  1835.  
  1836. When the  screen saver  is in effect, pressing ESCape will return WR-BBS to
  1837. the full-screen  display mode.   Whenever  any activity  occurs (such as an
  1838. incoming call, event, or local administration), the screen saver reverts to
  1839. a full screen display automatically.
  1840.  
  1841. If you set SCREENSAVER=N, WR-BBS will always display in full-screen mode.
  1842.  
  1843. ---------------------------------------------------------------------------
  1844. SEEKBAUD=                                                   DEFAULT=MAXBAUD
  1845.  
  1846. This entry  is not  required unless you have one of the very few modems out
  1847. there that seeks "up" to negotiate a connect speed.  Most modems attempt to
  1848. seek "down" from their highest possible speed until the remote modem agrees
  1849. to a  connect speed.  Thus a 2400 baud modem would answer at 2400 baud, and
  1850. step down to 1200, and then 300 until the far modem handshakes.  A few rare
  1851. modems start at their lowest speed, and "sweep" all possible connect speeds
  1852. before completing  their negotiation.   If  you have  one of  these strange
  1853. modems, set  SEEKBAUD to  the speed  at which  the modem  should begin  its
  1854. negotiations.
  1855.  
  1856. ---------------------------------------------------------------------------
  1857. SERIALNUMBER=
  1858.  
  1859. After you register your copy of WR-BBS, you will receive a serial number.
  1860. Enter it with the SERIALNUMBER keyword in WRCONFIG.SYS.
  1861.  
  1862. ---------------------------------------------------------------------------
  1863. SHELLSWAP=                                                        DEFAULT=Y
  1864.  
  1865. When WR-BBS runs some type of external program (door, event, shell to DOS),
  1866. it can swap out more than 90% of its memory image, leaving less than 18K of
  1867. itself in memory.  This leaves lots of memory for the program that is being
  1868. run by WR-BBS.
  1869.  
  1870. If your  system has  at least  550K  free  exPANDed  memory  (not  exTENDed
  1871. memory), then  WR-BBS will swap to EMS memory.  This swap occurs as quickly
  1872. as your  computer can  move the  WR-BBS image from one section of memory to
  1873. another -  within milliseconds.   If  your system has insufficient exPANDed
  1874. memory to  complete the  swap, WR-BBS  instead swaps  to a  disk file named
  1875. WRBBS.$$$ located in the home path.
  1876.  
  1877. If you  have a  slow computer  with a slow drive, and insufficient exPANDed
  1878. memory, the  time it  takes to swap the WR-BBS image to disk can be several
  1879. seconds.   Callers may  perceive this delay as your board being sluggish to
  1880. respond (WR-BBS  will  not  accept  caller  input  while  the  swapping  is
  1881. happening).   In this case, you might wish to set SHELLSWAP=N.  WR-BBS will
  1882. not swap  its image  when configured that way.  The drawback is that WR-BBS
  1883. will continue  to occupy  its original  memory when the external program is
  1884. invoked, and the external program may not have sufficient memory available.
  1885.  
  1886. If there  is insufficient  exPANDed memory  and WR-BBS  swaps to  disk,  it
  1887. automatically deletes  the file  WRBBS.$$$ when it swaps back.  Do not edit
  1888. or delete  the swap  file when  shelled out, or WR-BBS will fail to reload,
  1889. and a system reboot will be required.
  1890.  
  1891.  
  1892.  
  1893. ---------------------------------------------------------------------------
  1894. SYSOP=                                                           NO DEFAULT
  1895.  
  1896. You must  put a line in WRCONFIG.SYS to indicate who is the SysOp.  Use the
  1897. exact name  that you  will log  onto your WR-BBS with.  When the SysOp logs
  1898. on, special  privileges are  allowed for  that person  who is named in this
  1899. entry.  (This person must also log on to the board and establish an account
  1900. like any other caller - see section 12).
  1901.  
  1902. Example:
  1903.  
  1904.           SYSOP=WILSON ROGERS
  1905.  
  1906. ---------------------------------------------------------------------------
  1907. TIMELIMIT=                                       DEFAULT (60 FOR ALL COS'S)
  1908.  
  1909. You should  have one  TIMELIMIT= entry  for each class of service that your
  1910. WR-BBS utilizes.   There can be up to twenty six (26) lines in WRCONFIG.SYS
  1911. which begin  with TIMELIMIT=, defining the caller's time limit (in minutes)
  1912. for each of twenty six possible classes of service.  The proper syntax is:
  1913.  
  1914.           TIMELIMIT=?|XXX
  1915.           
  1916.           Where "?"  is replaced  with a class of service letter (from A to
  1917.                     Z), and  "XXX" is  replaced with the amount of time you
  1918.                     wish to  allow for  callers  who  have  that  class  of
  1919.                     service.   For example,  if you want to give callers in
  1920.                     class of  service "A"  sixty minutes,  and give  ninety
  1921.                     minutes  to  callers  in  class  of  service  "B",  the
  1922.                     following two  lines would  correctly  accomplish  that
  1923.                     purpose:
  1924.           
  1925.           TIMELIMIT=A|60
  1926.           TIMELIMIT=B|90
  1927.  
  1928. Valid values  for TIMELIMIT are 1 through 999.  When assigning time limits,
  1929. keep in  mind the types of users who will be in each class of service.  You
  1930. may want  to give a few special users a lot of time, perhaps as much as 180
  1931. minutes (three  hours).   New users would be given significantly less time,
  1932. perhaps 30 or 45 minutes.  A typical "regular" user might be given 60 to 90
  1933. minutes.
  1934.  
  1935. The TIMELIMIT  value is a daily limit for each user in the designated class
  1936. of service.   For  example, if  class of service A allowed sixty minutes, a
  1937. user with  that class  of service could use the system for sixty minutes in
  1938. one session, or two sessions of thirty minutes each, or six sessions of ten
  1939. minutes, and  so on.   WR-BBS checks the caller's time remaining at regular
  1940. intervals, and  if the  caller exceeds  the allotted  time, the  caller  is
  1941. logged off  the system  after a seeing a message explaining that their time
  1942. is used  up for  the day.   Each  caller's time limit is reset to the limit
  1943. (defined in  their class  of service)  on their  next logon  after midnight
  1944. passes.   Thus, a  user who consumes their entire time limit in one day can
  1945. call back  at 12:01  AM on  the next  day and  start with  a new daily time
  1946. allotment.
  1947.  
  1948. ---------------------------------------------------------------------------
  1949. UPLOADBONUS=                                                      DEFAULT=2
  1950.  
  1951. This item  tells WR-BBS  how much  time to  give callers  as a  "bonus" for
  1952. uploading files.   Valid values are from 0 to 255.  When a caller completes
  1953. an upload,  WR-BBS checks  the file  size, and  determines  the  number  of
  1954. kilobytes (KB).   That  value (KB)  is divided by 10 (to determine how many
  1955. "tens" of kilobytes were received), and then multiplied by the value set in
  1956. UPLOADBONUS to  determine the  number of  minutes to compensate the caller.
  1957. For example,  if the  caller uploads  a 100  KB file,  then  10  "tens"  of
  1958. kilobytes were  received, so  if the UPLOADBONUS was set to "2", the caller
  1959. would receive 20 minutes compensation.
  1960.  
  1961. If you  don't want  to  give  callers  any  bonus  time  for  uploads,  set
  1962. UPLOADBONUS to  "0".   WR-BBS will never allow any caller to have more than
  1963. 999 minutes  of time remaining, so if you use a high value for UPLOADBONUS,
  1964. such as  100, callers who upload large files will have their time increased
  1965. to 999 minutes, but not beyond.
  1966.  
  1967. If the  caller aborts  the upload,  or for  any reason the upload fails, no
  1968. compensation is granted to the caller.
  1969.  
  1970.  
  1971. ===========================================================================
  1972. SECTION 11                             CLASS OF SERVICE (COS) CONFIGURATION
  1973. ===========================================================================
  1974.  
  1975. In any  good bulletin  board  application,  security  and  flexibility  are
  1976. afforded by  multiple "access  levels".   WR-BBS is no exception, and up to
  1977. twenty six  access levels can be defined.  If you have configured other BBS
  1978. applications previously,  you may be familiar with the term "access level",
  1979. also referred to as "permission level".
  1980.  
  1981. TIP:   The term  "Class of  Service" (or "COS") in WR-BBS has virtually the
  1982.       same meaning as "access level" on other BBS products.
  1983.  
  1984. In WR-BBS,  access to  various features is controlled by the caller's Class
  1985. Of Service  (abbreviated  as  COS).    You  can  custom-configure  the  COS
  1986. assignments to  give the  appropriate access  to the callers (or caller) in
  1987. each class  of service.   With COS definitions, you can control such things
  1988. as:
  1989.  
  1990.           - Number of minutes permitted per day.
  1991.           - Which file areas can be accessed.
  1992.           - Whether or not downloads are allowed.
  1993.           - Whether or not uploads are allowed.
  1994.           - Which file transfer protocols can be used.
  1995.           - Which doors can be accessed.
  1996.           - Whether or not a caller can page the SysOp.
  1997.  
  1998. When planning  your COS  assignments, you  should first  group callers into
  1999. specific types of callers.  For example, your breakdown of caller types may
  2000. look something like this:
  2001.  
  2002.           - New users who have not been verified yet.
  2003.           - Regular users who have normal access.
  2004.           - Special users who have more extensive access.
  2005.           - The SysOp.
  2006.  
  2007. In the  above example,  you might  assign COS  "A" to new users, COS "B" to
  2008. regular users, COS "C" to special users, and COS "D" to the SysOp.  You can
  2009. assign any  COS  you  wish  to  any  caller  -  the  COS  letters  are  not
  2010. incremental.   In other  words, COS "X" does not necessarily grant a higher
  2011. level of access that COS "B" - unless you configure both COS's to make this
  2012. possible.  By convention, however, you may wish to make the COS assignments
  2013. appear to  be incremental  - with  COS "A"  being having  the lowest access
  2014. rights, and  COS "Z"  having the  highest. This makes it easier for you and
  2015. your callers to relate to the COS letters after they have been assigned.
  2016.  
  2017. The SysOp  should (but  is not  required to)  have an  exclusive  class  of
  2018. service with  no other  users in it.  This allows you to grant unrestricted
  2019. access to yourself for administration and testing.
  2020.  
  2021. Valid class  of service  letters are  "A" to "Z".  Permissions, privileges,
  2022. and access  rights are  granted by "allowing" various classes of service to
  2023. access various individual parts of WR-BBS, via entries in WRCONFIG.SYS.  In
  2024. other words,  there is  no "chart" of which classes of service can do what,
  2025. but instead,  the COS's  allowed to use individual features are assigned to
  2026. those features.   This  provides the ultimate in flexibility.  For example,
  2027. rather than  "allowing" COS  "A" to  access file area "C", you would do the
  2028. inverse - configuring file area "C" to be accessed by callers with COS "A".
  2029.  
  2030. Class of  service's are  assigned to features in WRCONFIG.SYS.  See section
  2031. 10 for  more information on configuring WRCONFIG.SYS.  By default, no class
  2032. of service  can access  any  of  the  COS-controlled  features,  until  you
  2033. designate  otherwise   in  WRCONFIG.SYS.     Thoughtful   planning   before
  2034. implementing the  COS permissions  will allow  for growth  and  flexibility
  2035. during the  life of your WR-BBS system.  Should you wish to make changes to
  2036. the COS configuration, you can edit WRCONFIG.SYS at any time.
  2037.  
  2038. ===========================================================================
  2039. SECTION 12                                                        THE SYSOP
  2040. ===========================================================================
  2041. On any  BBS or host system, the SysOp is the most significant user, as well
  2042. as the user with the most access privileges. WR-BBS follows this convention
  2043. by providing  special access  for the  one user  who is  designated as  the
  2044. SysOp. A  SysOp must  be defined  from proper  operation and administrative
  2045. access on WR-BBS.
  2046.  
  2047. The SysOp  is quite  literally the  System Operator.  Since you are reading
  2048. this, you  will probably  be the SysOp of your WR-BBS system.  You will set
  2049. up the  system, maintain its databases and files, and be a point of contact
  2050. for all  other users  who  want  to  communicate  questions,  problems,  or
  2051. comments about your WR-BBS installation.
  2052.  
  2053. Anyone given  SysOp privileges  should be  a responsible person who is well
  2054. known to the principal operator of the WR-BBS system.  Since the SysOp  can
  2055. be  given   permission  to  drop  to  the  operating  system,  allowing  an
  2056. irresponsible person to be a SysOp means that the irresponsible SysOp could
  2057. not only  destroy your  WR-BBS databases  and files,  but they  could  even
  2058. format or un-partition your computer's drives!
  2059.  
  2060. In order to gain administrative access to the User, File Library, and other
  2061. WR-BBS databases,  the SysOp  must log  on to the WR-BBS system (locally or
  2062. remotely), just as any other user would.  Then, at the Main Menu, the SysOp
  2063. presses the  "Z" key, (a hidden command available only to the SysOp), which
  2064. presents the SysOp menu.
  2065.  
  2066. When configuring  your WR-BBS  system  for  the  first  time,  it  is  very
  2067. important to  designate a SysOp.  This is accomplished with an entry in the
  2068. WR-BBS configuration  file, named  WRCONFIG.SYS.   This configuration  file
  2069. must have an entry that reads:
  2070.  
  2071.           SYSOP=JOHN DOE
  2072.  
  2073. Where "JOHN DOE" would be replaced by the SysOp's actual name.  See section
  2074. 10 for  more information  on how  to configure the file WRCONFIG.SYS.  Only
  2075. one SysOp is configured in the file WRCONFIG.SYS.
  2076.  
  2077. LOGGING ON:
  2078.  
  2079. There are two ways to log on to your WR-BBS system - via the modem and from
  2080. the local  console (your  computer's keyboard).   Obviously, WR-BBS must be
  2081. loaded and  running before  it will  accept any  calls, whether from remote
  2082. users (via  modem) or from local users (via the console). Also, WR-BBS must
  2083. be "ready for calls".  That is, it can not be executing an event, preparing
  2084. to execute  and event,  recycling the  modem (just  after a previous call),
  2085. shelled to  DOS, or  doing anything  other than waiting for calls (which is
  2086. the default condition).
  2087.  
  2088. To log  on via  the modem, simply place a modem call from another system to
  2089. the telephone  number which  is attached to the modem used by WR-BBS.  Your
  2090. data call will be answered by WR-BBS, and a session will begin.
  2091.  
  2092. To log  on from  the local console, press ALT-L while the system is waiting
  2093. for calls.   WR-BBS  will then "answer" your logon request, and you will be
  2094. presented with  the same  screens and  most of  the same options that would
  2095. have been available to a user calling in via the modem.  This is a good way
  2096. to "preview"  your WR-BBS  application before introducing it to the public.
  2097. Local logons  also permit  you to  experiment with WR-BBS without having to
  2098. have an  actual modem  attached to  the computer.   (The  COM port  must be
  2099. working, however).
  2100.  
  2101. There are  a few  differences between  a "remote" (via modem) session and a
  2102. "local" (via  console) session.   Since  there is no carrier present at any
  2103. time during  a  local  session,  WR-BBS  is  not  as  quick  to  detect  an
  2104. "abandoned" local  session.  In a remote session, WR-BBS can quickly detect
  2105. loss of carrier (where a user hangs up without a proper logoff) and recycle
  2106. for the next session.  In a local session, the only clue that WR-BBS has to
  2107. tell it  about the  session being  abandoned is  a keyboard timeout.  If no
  2108. keys are  pressed for  5 minutes  (on a  local or  remote session),  WR-BBS
  2109. assumes that  the user  has abandoned,  and ends the session, then recycles
  2110. for the next call.
  2111.  
  2112. Also, the  following WR-BBS  features are not available during a local (via
  2113. console) login:
  2114.  
  2115.           File transfer protocols (uploads and downloads)
  2116.           Chat facility
  2117.           Most doors
  2118.  
  2119. Most of  the sessions  processed by  WR-BBS are  remote sessions, where the
  2120. user, from virtually anywhere in the world, has called via modem.  During a
  2121. remote session, the console (local keyboard) is still "active", so any keys
  2122. pressed on  the local  keyboard will  be interpreted  by WR-BBS  as if  the
  2123. remote caller had pressed them those keys.  This allows the SysOp to assist
  2124. callers by "leading" them to the correct areas of the WR-BBS application by
  2125. pressing the appropriate local keys for them, while they watch.
  2126.  
  2127. Remember that  both keyboards  are active,  so  if  the  remote  caller  is
  2128. entering a  message or responding to a prompt, and both the remote user and
  2129. the SysOp start typing, WR-BBS will see both inputs (which will effectively
  2130. be meaningless).
  2131.  
  2132. *** When logged on remotely (via the modem) as the SysOp, press the "Z" key
  2133. to get  to the SysOp administration menu.  This key is not indicated on the
  2134. main menu screen (and is only available to one caller - the SysOp).
  2135.  
  2136.  
  2137.  
  2138. ===========================================================================
  2139. SECTION 13                                                 SETTING UP DOORS
  2140. ===========================================================================
  2141.  
  2142. Doors are  external programs  (not supplied with WR-BBS) which your callers
  2143. can run via WR-BBS.  Many doors are games, but virtually any program can be
  2144. run as  a door  with the  proper door  manager software. There can be up to
  2145. twenty six (26) entries in WRCONFIG.SYS which begin with the DOOR= keyword.
  2146. If you are not planning to have any doors on your WR-BBS system, you should
  2147. have no DOOR= entries in WRCONFIG.SYS (or remark the entries out).
  2148.  
  2149. Each door  that you  configure will  be referenced  by a letter.  There are
  2150. twenty six  available letters  to use  for this  purpose (A to Z).  You can
  2151. assign these  "reference" letters any way you want, and they do not have to
  2152. be used  in order.  For example, you could have four doors, designated "A",
  2153. "C", "X",  and "Z".   Reference letters cannot be duplicated, so you cannot
  2154. have two  different doors designated as door "A".  For convenience, you may
  2155. wish to  assign the first door the letter "A", give "B" to the second door,
  2156. use "C"  for the third door, and so on.  Letters other than "A" through "Z"
  2157. cannot be  used to designate doors, so there is a limit of twenty six doors
  2158. that can be configured.
  2159.  
  2160. To configure a door for WR-BBS, you need to do four things:
  2161.  
  2162.           1.   Add an entry to WRCONFIG.SYS which assigns a letter (A to Z)
  2163.                     to the  door and  defines which  classes of service may
  2164.                     access that door.
  2165.           
  2166.           2.   Create a  batch file which will control the operation of the
  2167.                     door program  (whether or  not the  door program  needs
  2168.                     such a batch file with other BBS programs).
  2169.           
  2170.           3.   Configure the  door program itself to recognize the DOOR.SYS
  2171.                     standard file  that  WR-BBS  creates  when  a  door  is
  2172.                     selected by a caller.
  2173.           
  2174.           4.   Create or  edit the  DOORMENU screen  files to  reflect  the
  2175.                     letter that  you have assigned to the door, and a brief
  2176.                     description of the door's purpose.
  2177.  
  2178.  
  2179.                    ADDING THE DOOR ENTRY TO WRCONFIG.SYS
  2180.  
  2181. The entry in WRCONFIG.SYS uses the following syntax:
  2182.  
  2183.           DOOR=A|ABCDEFGHIJKLMNOPQRSTUVWXYZ
  2184.                ^ ^
  2185.                | Classes of service allowed to access this door
  2186.                |
  2187.                |
  2188.                Letter designation for this door
  2189.  
  2190. For example,  the following line in WRCONFIG.SYS would indicate a door with
  2191. a letter  of "D"  which can  only be  accessed by  callers with  a class of
  2192. service from A to H:
  2193.  
  2194.           DOOR=D|ABCDEFGH
  2195.  
  2196. Notice that there are no spaces in the entry, and a "pipe" symbol separates
  2197. the door's letter from the class of service information.
  2198.  
  2199.                    CREATING THE BATCH FILE FOR THE DOOR
  2200.  
  2201. Every door  on WR-BBS  needs to have its own batch file, whether or not the
  2202. door can  run directly  from the command line.  WR-BBS calls the batch file
  2203. (not the  door program) when a caller selects the door from the Doors Menu.
  2204. There can  be up to twenty six batch files for controlling doors.  The name
  2205. of the  batch file determines which door it controls.  The batch file named
  2206. DOORA.BAT is  called when  door "A"  is selected, and DOORB.BAT is run when
  2207. door "B"  is selected,  and so on. (The fifth letter in the batch file name
  2208. corresponds to the door's letter).
  2209.  
  2210. The batch  file can  be a  simple, one  line entry  which contains the door
  2211. program's name,  or it  can be  a complex,  branching batch  file with many
  2212. lines, depending  on your needs.  Any activity necessary to set the door up
  2213. (such as  copying configuration  files, etc)  should be  done by that batch
  2214. file.   Keep these  restrictions in mind when designing the batch files for
  2215. your door programs:
  2216.  
  2217.           - The batch file(s) must be in the home path.
  2218.           
  2219.           - The door program must not modify or delete the batch file.
  2220.           
  2221.           - Do NOT call WR.BAT or WRBBS.EXE from the door's batch file.
  2222.  
  2223.  
  2224.                               ABOUT DOOR.SYS
  2225.  
  2226. Whenever WR-BBS  runs a  door for  a caller,  it first creates a file named
  2227. DOOR.SYS.   This is  a text  file which  is created  in the  home path.  It
  2228. contains information  about the  board and  the  caller,  which  many  door
  2229. programs can  use to  personalize the  caller's visit  to the door.  I have
  2230. settled on the DOOR.SYS standard because many of the "big" BBS programs now
  2231. use this as a standard, and most competent door programs recognize DOOR.SYS
  2232. when they run.
  2233.  
  2234. If the  door program  you want to use does not recognize the DOOR.SYS file,
  2235. you may  need to  employ a  utility program  which  converts  the  DOOR.SYS
  2236. information to  a different  format (such  as  CALLDATA.TXT).    Most  door
  2237. programs, however,  can be  configured to  recognize DOOR.SYS.  If the door
  2238. program expects  DOOR.SYS to be in a specific directory other than the home
  2239. path, you  can copy the DOOR.SYS file to the desired location with an entry
  2240. in the  door's batch  file.   Some doors do not correctly recognize the DTE
  2241. speed defined  in DOOR.SYS  when an error-correcting modem is used. See the
  2242. WRCONFIG.SYS keyword BADDOOR= for more details.
  2243.  
  2244.                         MODIFYING DOORMENU SCREENS
  2245.  
  2246. The Door  Menu screens  (DOORMENU.ASC and  DOORMENU.ANS) must  be edited or
  2247. created to  reflect the  door(s) that you are offering.  For each door, you
  2248. need to  list  the  door's  letter  (as  defined  in  WRCONFIG.SYS)  and  a
  2249. description of  the door.   There  are no  sample  screens  for  DOORMENU.*
  2250. included with  the WR-BBS  distribution,  as  this  information  is  highly
  2251. variable.  See section 7 for instructions on modifying the menu screens.
  2252.  
  2253.                            USING A DOOR MANAGER
  2254.  
  2255. The use  of a  good "door  manager" utility  is strongly advised. There are
  2256. many  door  programs  available,  and  their  design  quality  ranges  from
  2257. "excellent" to  "terrible".   A door  manager  can  compensate  for  poorly
  2258. written door  programs and  helps to  protect your  board from  damage that
  2259. could occur  when a  poorly designed  door program  is used.  Be aware that
  2260. some door programs do NOT offer the following basic features:
  2261.  
  2262.           - Detection of dropped carrier.
  2263.           
  2264.           - Preventing caller from accessing command line.
  2265.           
  2266.           - Detection of inactivity.
  2267.           
  2268.           - Trapping and handling of errors in door program itself.
  2269.  
  2270. A door manager will help compensate for such weaknesses by exerting its own
  2271. control over  the door  program when  an unexpected event occurs. Without a
  2272. door manager,  if the  door program  does not  detect carrier loss, and the
  2273. caller drops  carrier, your  WR-BBS system  will  be  "hung"  indefinitely.
  2274. Remember that  WR-BBS is  not active  when a door is running, and therefore
  2275. has no control of the door).
  2276.  
  2277. Some door  programs require  a Basic  runtime module  to accompany the .EXE
  2278. file.   I have  found that  this type of door program often has no internal
  2279. error trapping,  and any  error in  the program's  operation results  in  a
  2280. message such as "RUNTIME ERROR AT LINE NUMBER NOLINE".  The board will then
  2281. be hung  unless a  door manager  is used  to control such a poorly designed
  2282. door.
  2283.  
  2284. There are  a number  of door  managers available,  including DOORWAY.   The
  2285. DOORWAY program  is available  from BBS's throughout the country, including
  2286. the WR-BBS  Headquarters BBS.   Most  of them  are shareware offerings - be
  2287. certain to  register them  with their  respective  author.    Door  manager
  2288. programs have  another useful  feature in  that they can convert almost any
  2289. DOS program  into a  door program - you can use this (with caution) to give
  2290. your callers  access to other applications.  If you do this, make sure that
  2291. your caller's  cannot use  the other  application's DOS  shell  feature  to
  2292. access the operating system.
  2293.  
  2294. ===========================================================================
  2295. SECTION 14                                                  TROUBLESHOOTING
  2296. ===========================================================================
  2297.  
  2298. Most WR-BBS problems can be easily corrected by reading this documentation,
  2299. particularly this  section.  Support for WR-BBS is available via the WR-BBS
  2300. Headquarters BBS.   Don't hesitate to log on the WR-BBS Headquarters BBS if
  2301. you cannot  get your  WR-BBS system  working properly.    The  author  will
  2302. respond to your support request promptly (usually within 24 hours).
  2303.  
  2304.  
  2305. ---------------------------------------------------------------------------
  2306.               PROBLEMS SETTING HOME PATH ENVIRONMENT VARIABLE
  2307.  
  2308. If DOS  reports "Insufficient Environment Space" when you (or AUTOEXEC.BAT)
  2309. try to  SET the home path, you can increase the environment space available
  2310. by modifying  the CONFIG.SYS  file on  your system.  To enable a larger DOS
  2311. environment, the following line should be inserted in CONFIG.SYS:
  2312.  
  2313.           SHELL=C:\COMMAND.COM /P /E:1024
  2314.  
  2315. If your  DOS command  interpreter resides  somewhere other  than  the  root
  2316. directory of  C:, you  would substitute  the appropriate directory path, as
  2317. in:
  2318.  
  2319.           SHELL=C:\DOSFILES\COMMAND.COM /P /E:1024
  2320.  
  2321. In the  above example,  the DOS command interpreter is in the sub-directory
  2322. named C:\DOSFILES.   The  "/P" switch  tells DOS  that  this  is  to  be  a
  2323. "permanent" command interpreter (one that the EXIT command cannot release).
  2324. The "/E" switch tells DOS the desired environment size (from 128 to 32767 -
  2325. the minimum  and maximum  vary slightly  among DOS  versions). It  must  be
  2326. followed by a colon and a number within the allowable range.
  2327.  
  2328. If no  SHELL statement is included in your CONFIG.SYS file, the environment
  2329. is set  to a  (small) default of 160 or so bytes, depending on DOS version.
  2330. This is  inadequate for systems which use multiple SET statements to modify
  2331. the  environment,   including  systems  running  WR-BBS  along  with  other
  2332. environment-dependent applications.
  2333.  
  2334.      WARNING!   Make sure  you know  the exact location of your actual
  2335.      DOS command interpreter (COMMAND.COM) before modifying CONFIG.SYS
  2336.      with a SHELL statement.  If your SHELL statement points to a non-
  2337.      existent  path,   or  a  directory  not  containing  the  command
  2338.      interpreter, DOS  will not boot, and you will be left with a hung
  2339.      system that  only says  "Bad or missing command interpreter".  If
  2340.      this happens,  you will  need to  boot  from  a  system-formatted
  2341.      floppy diskette, and then modify the hard drive's CONFIG.SYS.
  2342.  
  2343. NOTE:  If your are using a DOS enhancer which provides an alternate command
  2344. interpreter, such  as 4DOS, EZSHELL or WR-DOS, check with the documentation
  2345. that accompanies  the DOS  enhancer  for  instructions  on  increasing  the
  2346. environment if  needed.  (WR-DOS's environment is 2000 bytes by default, so
  2347. it should not be necessary to change it).
  2348.  
  2349. ---------------------------------------------------------------------------
  2350.                               MODEM PROBLEMS
  2351.  
  2352. If your modem does not work properly with WR-BBS, it is likely that one (or
  2353. more) of the following problems exist:
  2354.  
  2355.      1.    Your  modem  has  hardware  DIP  switches  which  allow  certain
  2356.      configuration items  to be "hard configured" on the modem - and one or
  2357.      more of these switches is set incorrectly.  If your modem has hardware
  2358.      switches or jumpers, make sure that they are set as follows:
  2359.  
  2360.           A.   Carrier detect  (CD) signal not forced on, but tracks actual
  2361.           carrier detection at all times.
  2362.           
  2363.           B.   Data Terminal  Ready (DTR)  signal not  forced  on,  but  is
  2364.           controlled by the communications program (WR-BBS).
  2365.           
  2366.           C.   Auto answer  MUST BE OFF.  WR-BBS requires auto-answer to be
  2367.           disabled for  correct operation.  The only exception to this rule
  2368.           is  if   you  have  a  defective  or  incompatible  modem  -  see
  2369.           RINGDETECT= in section 10.
  2370.  
  2371.      2.   Your modem  initialization string  is not being recognized by the
  2372.      modem.  With   most  modems,   any  invalid  command  in  any  of  the
  2373.      initialization strings  will cause  the modem  to  ignore  the  entire
  2374.      initialization string. To check for this, watch the WR-BBS main screen
  2375.      during startup.   The  status bar shows the response sent by the modem
  2376.      after  each  command,  including  the  initialization  strings.    The
  2377.      response you  see  in  the  status  bar  should  be  an  echo  of  the
  2378.      initialization string  itself, followed  by "OK".   (There may be some
  2379.      arrows in  that string  as well,  representing linefeed  and  carriage
  2380.      return characters).   If  you do  not see the initialization string(s)
  2381.      echoed back, or see the word "ERROR" on the status bar, then the modem
  2382.      did not recognize the initialization string.
  2383.  
  2384.      3.   You have  included S0=1  (or some other value other than zero) in
  2385.      your initialization  string.   This turns  on the  modem's auto answer
  2386.      feature, which prevents WR-BBS from working properly. Auto answer MUST
  2387.      BE OFF.   WR-BBS  requires auto-answer  to  be  disabled  for  correct
  2388.      operation.  The only exception to this rule is if you have a defective
  2389.      or incompatible modem - see RINGDETECT= in section 10.
  2390.      
  2391.      4.   Your modem does not recognize the commands commonly used by Hayes
  2392.      <tm> modems.   Some  modems claim  to be  "100% guaranteed  Hayes <tm>
  2393.      compatible" when  in fact  they are  not at  all.   If you have one of
  2394.      these modems,  you will  have to  research and  configure  the  proper
  2395.      command strings and initialization codes.
  2396.  
  2397.  
  2398. ---------------------------------------------------------------------------
  2399.                        MISCELLANEOUS TROUBLESHOOTING
  2400.  
  2401.  
  2402. PROBLEM:   During startup,  WR-BBS says  "HOLDING DTR DOWN FOR XX SECONDS",
  2403. and then aborts the startup process.
  2404.  
  2405.      SOLUTION:   Your modem  is incorrectly  set up  and is  reporting that
  2406.      carrier detect  is present  at all  times.  To WR-BBS, the presence of
  2407.      carrier means that a caller is probably connected, and WR-BBS attempts
  2408.      to drop the "caller" by dropping DTR for up to 30 seconds.  If carrier
  2409.      is still  detected, WR-BBS  aborts the  modem initialization (and does
  2410.      not start),  because it  has not  established the  control it requires
  2411.      from the modem.
  2412.  
  2413. PROBLEM:   A call  rings in,  and WR-BBS  reports that  it is answering the
  2414. call.   But instead of the caller establishing a connection, WR-BBS reports
  2415. a result code error and the caller is dropped.
  2416.  
  2417.      SOLUTION:   Your modem  is configured incorrectly, and is set to auto-
  2418.      answer. When  WR-BBS sends  the answer  command, the  modem aborts the
  2419.      connection, and  WR-BBS never  sees a valid connect code.  Auto-answer
  2420.      should never  be enabled,  except for  a few  rare circumstances.  See
  2421.      RINGDETECT= in section 10 (configuring with WRCONFIG.SYS).
  2422.  
  2423. PROBLEM:   A caller  logs on  via the modem, and has no problems during the
  2424. on-line session.   When  they say  goodbye, however, WR-BBS reports that it
  2425. cannot disconnect the caller, logs errors, and then WR-BBS re-starts.
  2426.  
  2427.      SOLUTION:   An incorrect  modem configuration is to blame.  Your modem
  2428.      is set  to hold  DTR "high"  at all times, and therefore WR-BBS cannot
  2429.      drop DTR to disconnect the caller.  WR-BBS does not use the unreliable
  2430.      method of  sending +++  ATH0 to  disconnect a caller.  Dropping DTR is
  2431.      guaranteed to  positively disconnect the caller - provided that WR-BBS
  2432.      is allowed to control the DTR signal.
  2433.  
  2434. PROBLEM:   When a  caller  selects  a  file  transfer  or  door,  they  are
  2435. disconnected when WR-BBS shells out to run the protocol or door.
  2436.  
  2437.      SOLUTION:   WR-BBS does not alter the DTR or any other signals when it
  2438.      shells out.  Make sure that you file transfer protocol or door program
  2439.      is configured  properly -  and check  for  any  error  messages  those
  2440.      programs generate.  The use of DOORWAY to control doors is recommended
  2441.      for trouble  free operation.   You  can download an evaluation copy of
  2442.      DOORWAY from most large BBS systems.
  2443.  
  2444. PROBLEM:   When WR-BBS  starts up, it sometimes runs the W-TREE maintenance
  2445. utility and rebuilds the index files.
  2446.  
  2447.      SOLUTION:   The file  indices are  rebuilt, as  part  of  the  startup
  2448.      process, any  time that  the W-TREE Database Manager cannot verify the
  2449.      indexes as being current.  The usual cause is that WR-BBS was not shut
  2450.      down properly.   The correct way to shut down WR-BBS is to press ALT-Q
  2451.      from the  main screen, confirm the shutdown request, and then wait for
  2452.      all WR-BBS  processes to  terminate (about 20 seconds).  You will know
  2453.      when WR-BBS  has stopped  because your  system prompt will return.  If
  2454.      you do  not shut  WR-BBS down  properly, or reboot during the shutdown
  2455.      process, the  W-TREE Database  Manager will not have an opportunity to
  2456.      detach the files (DOS will force them closed instead),  and the W-TREE
  2457.      Database Manager  will rebuild  the indices  on the next startup.  The
  2458.      chance of  damaging the  actual data files due to an improper shutdown
  2459.      is minimal, but that risk is one you should avoid anyway.
  2460.  
  2461.  
  2462. PROBLEM:   During startup,  WR-BBS gets  to the  point  where  is  displays
  2463. "Database is not on line ... starting W-TREE Database Manager ...", then it
  2464. aborts, reporting  error #  W-99000-4.  The error text is "INSUFFICIENT DOS
  2465. FILE HANDLES".
  2466.  
  2467.      SOLUTION:   This error happens when the operating system (DOS) refuses
  2468.      to allow  enough files to be opened for WR-BBS operation.  You can fix
  2469.      this  easily   by  modify   your  FILES=   entry  in  CONFIG.SYS  (not
  2470.      WRCONFIG.SYS).   You should  have FILES=30  or  more  to  ensure  than
  2471.      sufficient file handles are available for WR-BBS.
  2472.  
  2473. PROBLEM:  The WR-BBS activity log has entries that read "ERROR DURING IMAGE
  2474. SWAP TO EMS - SHELL USED"
  2475.  
  2476.      SOLUTION:  This message occurs if WR-BBS tries to swap the program out
  2477.      of regular memory into EMS (exPANDed memory), but cannot complete that
  2478.      operation.  It is usually due to the EMS not being compatible with the
  2479.      LIM standard,  or due  to contention  from another program in a multi-
  2480.      tasking environment,  or due  to a  TSR (such  as a  disk cache) which
  2481.      unexpectedly accesses  EMS while WR-BBS is swapping out.  WR-BBS swaps
  2482.      out for doors, file transfers, and events.  This is not a fatal error,
  2483.      but simply  informs you that WR-BBS used a conventional shell (without
  2484.      swapping out).
  2485.  
  2486. PROBLEM:   WR-BBS reports error # W-10XXX-2, W-99000-3 or W-10XXX-15 (where
  2487. "XXX" is any three digits), and then WR-BBS shuts down and restarts.
  2488.  
  2489.      SOLUTION:  These errors indicate path errors.  The usual cause is that
  2490.      you have the WR-BBS home directory included in your DOS path statement
  2491.      (it should  not be).   It can also occur in a networked environment if
  2492.      the server  logs the  WR-BBS machine out, and remaps the drive letters
  2493.      while doing  so. Another  possible cause  is if  one  of  your  events
  2494.      corrupts the  DOS environment so that the home path environment string
  2495.      is not longer valid.
  2496.  
  2497. PROBLEM:   WR-BBS starts  up normally,  but then  thinks that  there is  an
  2498. incoming call  (when there is none).  It "answers" the phantom call, but of
  2499. course, never establishes a connection.
  2500.  
  2501.      SOLUTION:   Your modem is set to report that carrier is present at all
  2502.      times -  an invalid  setting.   Make sure  that AT&C1  appears in your
  2503.      modem initialization  string, and  that your  modem's DIP  switches or
  2504.      jumpers (if  any) are set to honor carrier detect and not artificially
  2505.      hold it high.
  2506.  
  2507.  
  2508. PROBLEM:   Callers complain about "missing" characters, skewed screens, and
  2509. file transfers that fail for no apparent reason.
  2510.  
  2511.      SOLUTION:   Dropped characters  are almost  always due  to one  of two
  2512.      things:
  2513.      
  2514.      1.   Flow control  mismatch:   WR-BBS by  default does  not  use  flow
  2515.      control. If  you are  using an error correcting modem with locked DTE,
  2516.      be sure to set CTSFLOW=Y in WRCONFIG.SYS, and configure the modem (via
  2517.      initialization strings)  to work  with CTS  flow control (not XON/XOFF
  2518.      flow control).
  2519.      
  2520.      2.   Interrupt latency:   Programs  that are running simultaneously on
  2521.      the same machine as WR-BBS can "lock" interrupts for extended periods,
  2522.      causing "drop  outs" on  the communications  port.    Some  "resident"
  2523.      programs (TSR's)  are guilty of this.  Such programs include some disk
  2524.      caching programs,  especially when  the cache  is  configured  to  use
  2525.      exTENDed memory.  To troubleshoot this problem, temporarily remove all
  2526.      DEVICE statements  from  CONFIG.SYS  (not  WRCONFIG.SYS),  and  rename
  2527.      AUTOEXEC.BAT to  something else  to hide  it from  DOS.  Then boot the
  2528.      system, manually  type a  SET statement to set WR-BBS's home path, and
  2529.      then start  WR-BBS.   If the  problem no  longer  exists,  try  adding
  2530.      statements back into CONFIG.SYS one at a time, rebooting each time and
  2531.      checking  for  dropped  characters.    Then  add  each  line  back  to
  2532.      AUTOEXEC.BAT, doing  the same  thing, until  the offending  program is
  2533.      found.
  2534.  
  2535.  
  2536. ---------------------------------------------------------------------------
  2537.                                NEED SUPPORT?
  2538.  
  2539. Support for WR-BBS is available exclusively through the WR-BBS Headquarters
  2540. BBS.   Call (206) 828-9089.  See section 1 for more detailed information on
  2541. WR-BBS support.   If  you have problems with WR-BBS that cannot be resolved
  2542. by following the instructions in this document, please log on to the WR-BBS
  2543. Headquarters BBS.
  2544.  
  2545.  
  2546.  
  2547. ===========================================================================
  2548. SECTION 15                                                     MIDNIGHT.BAT
  2549. ===========================================================================
  2550.  
  2551. One of the features built into WR-BBS is the ability to automatically run a
  2552. batch file  when the  computer's clock indicates that the date has changed.
  2553. If you  have a  batch file  named MIDNIGHT.BAT in the same directory as the
  2554. WR-BBS program files (the home path), this file will be executed as soon as
  2555. WR-BBS becomes  idle after  a date  change.   If there is no call (or local
  2556. administration activity)  when the  date changes,  then  MIDNIGHT.BAT  will
  2557. execute within  sixty seconds  of midnight.  If there is a call in progress
  2558. when the date changes, or you are doing some administrative activity on WR-
  2559. BBS from  the local console when midnight rolls around, WR-BBS will execute
  2560. MIDNIGHT.BAT as  soon as the system becomes idle again, ie after the caller
  2561. logs off, or the administration activity stops.
  2562.  
  2563. The use  of MIDNIGHT.BAT is optional.  If the batch file named MIDNIGHT.BAT
  2564. does not  exist in  the WR-BBS home directory, nothing will happen when the
  2565. date changes,  and the  system will  continue to  wait for calls just as it
  2566. does at any other time.
  2567.  
  2568. A sample  MIDNIGHT.BAT  file  is  included  with  the  WR-BBS  distribution
  2569. archive.   You can modify this file to suit your needs, or delete it if you
  2570. do not  wish to  use this  optional feature.  Some functions that you could
  2571. include in MIDNIGHT.BAT might be:
  2572.  
  2573.      1.  To archive the log file.
  2574.      2.  To copy the WR-BBS database files to a backup directory.
  2575.      3.  To update your date-sensitive bulletin files.
  2576.  
  2577. WR-BBS closes all of its files before executing MIDNIGHT.BAT, so it is safe
  2578. to copy  the database  files.   WR-BBS shells  out to  run MIDNIGHT.BAT (as
  2579. opposed to  terminating), so  no special  considerations in your batch file
  2580. are needed.  Just make sure that whatever programs you launch in your batch
  2581. file automatically  end themselves.  Programs that may require human input,
  2582. or operations that access the floppy drives or printer are not recommended.
  2583. If one  of these operations has an error, the system will remain hung until
  2584. human intervention occurs.
  2585.  
  2586. When WR-BBS  calls MIDNIGHT.BAT,  it adds  one parameter to the DOS command
  2587. line.   This parameter is a six digit string representing the current date.
  2588. For example,  when MIDNIGHT.BAT  runs on  June 14, 1993, WR-BBS invokes the
  2589. batch file with the following command line:
  2590.  
  2591.           MIDNIGHT.BAT 061493
  2592.  
  2593. You can  ignore the  parameter passed  to the batch file if you have no use
  2594. for it.  You can capture that string by reading the DOS command line (using
  2595. %1) in  your MIDNIGHT.BAT  batch file.   You might want to use it to rename
  2596. the current  activity log  (to a filename representing the current date) or
  2597. some other  date-specific DOS  operation.   The sample copy of MIDNIGHT.BAT
  2598. shows one  example of  using the  date string that is passed by WR-BBS when
  2599. MIDNIGHT.BAT is called, to archive the log file.
  2600.  
  2601. CAUTION:   Do NOT  call WR.BAT  or launch  WRBBS.EXE from your MIDNIGHT.BAT
  2602. file.   This will  result in  two  copies  of  WR-BBS  being  loaded,  with
  2603. unpredictable  (possibly  catastrophic)  results.    Let  MIDNIGHT.BAT  end
  2604. normally, and WR-BBS will "un-shell" and resume operation.
  2605.  
  2606. If you do not wish to use this feature, delete or rename MIDNIGHT.BAT.
  2607.  
  2608.  
  2609. ===========================================================================
  2610. SECTION 16                                                     WR_AFTER.BAT
  2611. ===========================================================================
  2612.  
  2613.        This is  an optional feature that WR-BBS offers.  You do not
  2614.        have to  use WR_AFTER.BAT.   If  you do not wish to use this
  2615.        feature, delete or rename WR_AFTER.BAT from your WR-BBS home
  2616.        directory.
  2617.  
  2618. You may  have a  need to  do some kind of "housekeeping" after each call is
  2619. processed by  your WR-BBS  system.  For example, you may have a third-party
  2620. utility that  scans the  user database  for new users, or perhaps a utility
  2621. that collects  statistics from  the activity log file.  Such utilities need
  2622. to be  launched after  each call  is completed  by WR-BBS.   The batch file
  2623. WR_AFTER.BAT will do that for you.
  2624.  
  2625. After each  caller logs  off (or  otherwise ends their call), WR-BBS checks
  2626. the home directory for the existence of a file named WR_AFTER.BAT.  If this
  2627. file does  not exist,  WR-BBS simply  continues along  and prepares for the
  2628. next call.   If,  however, WR_AFTER.BAT is found, WR-BBS suspends operation
  2629. after recycling the modem (but before opening the modem for the next call),
  2630. and executes WR_AFTER.BAT.
  2631.  
  2632. When WR-BBS starts WR_AFTER.BAT, it (WR-BBS) does not completely terminate,
  2633. but swaps out to disk and then calls WR_AFTER.BAT.  Do not run any programs
  2634. in WR_AFTER.BAT  that remain in memory (TSR's), and do not call WR.BAT from
  2635. WR_AFTER.BAT.   Doing either  of these no-no's will result in unpredictable
  2636. problems and mysterious error messages from WR-BBS.
  2637.  
  2638.  
  2639. ===========================================================================
  2640. SECTION 16                                     HOW THE MESSAGE SYSTEM WORKS
  2641. ===========================================================================
  2642.  
  2643. The message  system uses  a database  file (WRBBSMSG.DAT)  to keep track of
  2644. messages.   Information about  who sent  a message, the intended recipient,
  2645. dates and  times, receipt,  and other  details are all stored as records in
  2646. the message database.
  2647.  
  2648. The messages  themselves are  saved as  individual text  files, in  a  sub-
  2649. directory that  WR-BBS creates  off the home path.  Depending on the number
  2650. of messages  on file, there can be more than one message sub-directory. The
  2651. first message  sub-directory is  named MSGFILES.000, and additional message
  2652. sub-directories are  named MSGFILES.001,  MSGFILES.002 and  so  on.  A  new
  2653. message sub-directory  is created  when an  existing one  has more than 254
  2654. current messages.   WR-BBS,  when creating a message file, first checks any
  2655. and all  existing message sub-directories to see if there is room available
  2656. for another  message file.   Thus, if the MSGFILES.000 has 255 files in it,
  2657. but 100  messages are  deleted, the  next 100 new messages will be put into
  2658. MSGFILES.000 rather than creating a new sub-directory.
  2659.  
  2660. There can  be up  to 1000 message sub-directories, but in order for this to
  2661. occur, there  would have  to be  more than  254,999 messages on file at one
  2662. time - an unlikely event on any WR-BBS system.
  2663.  
  2664. When callers delete messages (or messages are deleted by the SysOp), WR-BBS
  2665. automatically  deletes   the  corresponding   message  text   file  in  the
  2666. appropriate message  sub-directory, freeing  that space  for the  next  new
  2667. message.
  2668.  
  2669. The message  text files  are given  unique random  file names,  based on  a
  2670. built-in algorithm.   Do not rename or delete active message text files. If
  2671. a caller  attempts to  read an active message whose corresponding text file
  2672. is missing, and error message is displayed to the caller, indicating that a
  2673. system  error   has  occurred.     The  "system  errors"  counter  is  then
  2674. incremented, and an entry is made in the activity log to record the error.
  2675.  
  2676.  
  2677.  
  2678. ===========================================================================
  2679. SECTION 17                                               CONFIGURING EVENTS
  2680. ===========================================================================
  2681.  
  2682. You may wish to set up events on your WR-BBS system.  Event configuration
  2683. is not required for operation of WR-BBS, so if you are setting up your WR-
  2684. BBS for the first time, you may wish to skip this section, and (optionally)
  2685. configure some events later on.
  2686.  
  2687. Events are external programs, utilities, or functions that you can schedule
  2688. to occur  on or  after a certain time each day, or only on a certain day(s)
  2689. of the  week.  Most BBS's utilize events as part of their normal operation,
  2690. but this is not mandatory.  Some examples of events are:
  2691.  
  2692.      - To  automatically back  up the  BBS data  files to  diskette or tape
  2693.           drive during a period of low call activity.
  2694.      
  2695.      - To  copy or archive the activity log file each night, the delete the
  2696.           original log  file, thus  preventing the  activity log  file from
  2697.           becoming large and unmanageable.
  2698.      
  2699.      - To  update or  create bulletin  screen files  at a certain interval,
  2700.           thus providing fresh bulletins for subsequent callers.
  2701.      
  2702.      - To  run a  program which  synchronizes the  computer's clock with an
  2703.           external source,  thus ensuring  that the computer always has the
  2704.           right time.
  2705.  
  2706. Most events are driven by batch files, which then launch the actual utility
  2707. program.  It is possible, however, to launch a program directly.
  2708.  
  2709. With WR-BBS,  there are  two types  of events  that can  be  configured,  a
  2710. "shell" event,  and a "terminate" event.  When a "shell" event runs, WR-BBS
  2711. (or a  portion of  WR-BBS) remains  loaded in  memory, and WR-BBS calls the
  2712. external program, much in the same way that the SysOp can shell to DOS from
  2713. WR-BBS.   The called  program executes,  and when  it is  finished, control
  2714. returns to  WR-BBS, which  then picks  up where it left off.  A majority of
  2715. events can be "shell" events.  A "shell" event is the easiest to configure,
  2716. as you  only need to specify the day(s), time, and the name of the batch or
  2717. program to be executed.
  2718.  
  2719. With a  "terminate" event,  WR-BBS shuts completely down, closes all files,
  2720. and then terminates.  It no longer exists in memory, and all interrupts and
  2721. file handles  are released to DOS.  It is up to WR.BAT (the batch file that
  2722. controls WR-BBS,  to detect  the unique  DOS error level when this happens,
  2723. and launch  the event program.  WR.BAT or the launched batch file must then
  2724. restart WR-BBS,  as WR-BBS is completely shut down when a "terminate" event
  2725. is invoked, and cannot restart itself.
  2726.  
  2727. Why would you use a "terminate" event instead of a "shell" event?  Here are
  2728. some examples:
  2729.  
  2730.      - If  the event program needs to open a lot of files.  DOS only allows
  2731.           a given  number of  files to be assigned at a given time.  WR-BBS
  2732.           has up  to nine files assigned and/or open, even when waiting for
  2733.           a call.   During  a "shell"  event, WR-BBS  closes the files, but
  2734.           does not  "un-assign" the  file  handles.    As  far  as  DOS  is
  2735.           concerned, there  are still  nine file  handles in  use.   If the
  2736.           event program  needs to  open a  lot of files, DOS may react with
  2737.           "no more file handles".
  2738.      
  2739.      - If  you run  an event  program that changes the FAT (file allocation
  2740.           table), you  must run  the event  as a  "terminate  event".    An
  2741.           example is  a disk  optimizer  program.    Most  disk  optimizers
  2742.           directly modify  the FAT, and make low-level calls to DOS to move
  2743.           file sectors around.  If WR-BBS did a "shell" event to run a disk
  2744.           optimizer, then  the assigned files wouldn't be in the same place
  2745.           after the  event runs  as they were before the event. WR-BBS (nor
  2746.           any other  program) would not be aware of the change, and when it
  2747.           attempts to update files, the results could be disastrous.
  2748.      
  2749.      - Events  which use the same communications hardware as WR-BBS require
  2750.           that WR-BBS  do a  "terminate" event.  When WR-BBS terminates, it
  2751.           de-installs all  communications interrupts.  During a shell, this
  2752.           is not  done.  If you run a "shell" event which uses the same COM
  2753.           port as  WR-BBS, you  may find  that WR-BBS doesn't recognize the
  2754.           COM port  any more.  When this happens, WR-BBS may crash when the
  2755.           next call  rings in.   Some  of the better written communications
  2756.           utilities (including  WR-BBS) restore the COM port interrupts and
  2757.           vectors to  the exact  state they were in at startup time, rather
  2758.           than to  a default setting.  Such programs can probably be safely
  2759.           run in  a "shell"  event  under  WR-BBS.    If  in  doubt,  do  a
  2760.           "terminate" event.
  2761.  
  2762. All events are configured with an entry in WRCONFIG.SYS. There can be up to
  2763. 16 "EVENT="  entries.   If more  than 16  appear in  WRCONFIG.SYS, only the
  2764. first 16 are used, and an error message appears during startup.  Each event
  2765. entry consists of four parts:
  2766.  
  2767.      1.  The "EVENT=" string, which must be the first six characters.
  2768.      2.  A single numeric character, indicating what day(s) of the week the
  2769.           event should occur on.
  2770.      3.  The time the event should occur (24 hour notation).
  2771.      4.  Either a fully pathed file name, if the event is to run a program,
  2772.           or a  number (65-80)  which is designates the DOS errorlevel that
  2773.           WR-BBS should terminate with when the event is due.
  2774.  
  2775.      Each of the four entries is separated with a "pipe" symbol (|).
  2776.      
  2777.      For item 2, the day(s) designator, use one of the following:
  2778.      
  2779.      1 = Each Monday
  2780.      2 = Each Tuesday
  2781.      3 = Each Wednesday
  2782.      4 = Each Thursday
  2783.      5 = Each Friday
  2784.      6 = Each Saturday
  2785.      7 = Each Sunday
  2786.      9 = Every day of the week
  2787.  
  2788.      A value of "8" for the day designator is not meaningful, and the event
  2789.      will never execute if set for day "8".
  2790.      
  2791.      For item  # 3, the event's time, you must enter the full 24 hour time,
  2792.      complete with  leading zeros.  Thus, 13:55, 02:00, and 00:45 are valid
  2793.      times, but  2:00 is  not.   Midnight is  expressed as 00:00.  There is
  2794.      minimal error  checking on  the event configuration, so it is possible
  2795.      to schedule an impossible event, such as at 25:00
  2796.  
  2797.  
  2798. Some examples:
  2799.  
  2800.      EVENT=1|02:00|C:\UTILITY\COPYFILE.BAT
  2801.  
  2802. The above  event will  run each Monday morning at 2:00 AM.  It is a "shell"
  2803. event, and  the batch  file named  COPYFILE.BAT in the C:\UTILITY directory
  2804. will be executed when the event runs.
  2805.  
  2806.      EVENT=1|02:00|*66
  2807.  
  2808. The above  event is a "terminate" event.  It will occur each Monday at 2:00
  2809. AM.   When that  time rolls  around, WR-BBS will terminate, setting the DOS
  2810. error level  to 66.   The  batch file  that started WR-BBS (such as WR.BAT)
  2811. will test  for this error level, invoke the other program, then restart WR-
  2812. BBS.
  2813.  
  2814. See section  8, which  details the  workings of WR.BAT, for a more detailed
  2815. explanation of how DOS error levels are detected and branched.
  2816.  
  2817. If you  wish to have multiple events run on exactly the same schedule, just
  2818. schedule one  event in  WR-BBS, and  have that event run a batch file which
  2819. launches the  multiple programs.   If  any two  (or more)  WR-BBS scheduled
  2820. events are configured to occur at exactly the same time, the order in which
  2821. the events  will be  launched is determined by the order in which they were
  2822. posted to the task queue, which may not be the order you listed them in the
  2823. configuration file WRCONFIG.SYS.
  2824.  
  2825. In order  for an  event to  execute, WR-BBS  must be  loaded, running,  and
  2826. waiting for calls.  If WR-BBS is doing something else (such as processing a
  2827. call, or  local SysOp activity), the event will not launch until the system
  2828. becomes idle again.  This version of WR-BBS does not incorporate a facility
  2829. to force  a caller  off the  system when an event is pending.  Keep this in
  2830. mind for extremely time-critical events.
  2831.  
  2832.  
  2833.  
  2834. ===========================================================================
  2835. SECTION 18                                                THE QUESTIONNAIRE
  2836. ===========================================================================
  2837.  
  2838. WR-BBS includes a questionnaire facility.  There is only one questionnaire.
  2839. You can include up to 255 "questions" in the routine, and collect an answer
  2840. to each  question.  The responses are stored in a text file, annotated with
  2841. the caller's  name, and  the date  and time  that the  caller selected  the
  2842. questionnaire.   There is no format-checking done on the responses.  Unlike
  2843. the New  User Questionnaire, callers have the opportunity to "skip" answers
  2844. or abort the questionnaire entirely at any point.
  2845.  
  2846.           NOTE:   After the  caller has  completed the questionnaire (or if
  2847.           they abort  the questionnaire at any point), they are returned to
  2848.           the Main Menu.
  2849.  
  2850. You do  not have  to have  a questionnaire if you have no need for one.  If
  2851. you would  prefer not  to have a questionnaire available to callers, simply
  2852. make sure  that there is no directory named QUESTION as a sub-directory off
  2853. the home  path.   Any callers  who press  "Q" at the main menu will then be
  2854. told  that  no  questionnaire  has  been  configured.    To  reduce  caller
  2855. confusion, you should also edit the MAINMENU.ASC and MAINMENU.ANS screen to
  2856. remove the (Q)uestionnaire option if it presently appears as a choice.
  2857.  
  2858. Before you  enable the questionnaire, you must first create a few (or more)
  2859. short "question files".  These are essentially the same as the screen files
  2860. used elsewhere  in WR-BBS,  except they  are typically  much smaller, since
  2861. they usually  consist of just one or two sentences.  Just as with other WR-
  2862. BBS screen  files, you  need to  create an  ASCII (.ASC)  and  ANSI  (.ANS)
  2863. version of each file.  There can be up to 255 questions. Most callers would
  2864. not endure  even 100 questions, so your questionnaire will probably consist
  2865. of maybe  a dozen  questions maximum  - but you can go wild and write up to
  2866. 255 questions  if you  have a special need.  The filenames for the question
  2867. files follow the WR-BBS convention:
  2868.  
  2869.                                Non-ANSI              ANSI
  2870.                                ------------          ------------
  2871.           1st question         QUES0001.ASC          QUES0001.ANS
  2872.           2nd question         QUES0002.ASC          QUES0002.ANS
  2873.           3rd question         QUES0003.ASC          QUES0003.ANS
  2874.           
  2875.           and so on ...
  2876.  
  2877. There is also a "last" display file which can optionally be included in the
  2878. questionnaire routine.   This  file is  displayed to  the caller  after the
  2879. caller successfully  answers all  of the  questions.   It might  be a brief
  2880. message saying  "thank you  for answering the questions" or something along
  2881. that line.  The filenames for this "last" display file are EPILOGUE.ASC and
  2882. EPILOGUE.ANS.
  2883.  
  2884. All of the files described above are placed in a special sub-directory, off
  2885. the home  path directory.   The name of this special directory is QUESTION.
  2886. For example,  if your  home path is C:\WR-BBS, then you would create a sub-
  2887. directory named  C:\WR-BBS\QUESTION.   To do  this,  issue  the  DOS  MKDIR
  2888. command (substituting your correct home path if different):
  2889.  
  2890.           MKDIR C:\WR-BBS\QUESTION
  2891.  
  2892. You are  then ready  to add  the question  files to  the new sub-directory.
  2893. When a caller selects (Q)uestionnaire from the main menu, WR-BBS checks for
  2894. the existence  of the  sub-directory named  QUESTION, then for any question
  2895. files.   It then  displays the  first  question  file,  gets  the  caller's
  2896. response, displays the second question file, the caller responds again, and
  2897. so on.
  2898.  
  2899.           NOTE:   For proper  operation, use  consecutive numbers  in  your
  2900.           question filenames - don't skip any numbers.
  2901.  
  2902. Caller options during the questionnaire:
  2903.  
  2904.           The caller can answer the question by typing a one line response.
  2905.           
  2906.           The caller can skip the question by pressing <ENTER> alone.
  2907.           
  2908.           The caller  can abort  the questionnaire by typing a star (*) and
  2909.           then pressing <ENTER>.
  2910.  
  2911. The answers  left by  callers are  stored  in  an  ASCII  text  file  named
  2912. ANSWERS.TXT.   This file  is located in the QUESTION sub-directory.  If the
  2913. caller skips  any questions  while proceeding  through  the  questionnaire,
  2914. ANSWERS.TXT will  have an  entry "NO  RESPONSE FROM [CALLER NAME]".  If the
  2915. caller aborts  the questionnaire,  it will  be recorded  in ANSWERS.TXT  as
  2916. "[CALLER NAME] ABORTED QUESTIONNAIRE".   If the caller drops carrier during
  2917. the questionnaire,  this will  also be recorded in ANSWERS.TXT, if the loss
  2918. of carrier  is detected  at any  time except  when a question file is being
  2919. transmitted.  WRBBSLOG.TXT will also have a record of dropped carriers.
  2920.  
  2921. As subsequent  callers complete  the  questionnaire,  their  responses  are
  2922. appended to  ANSWERS.TXT -  this file  grows with  each activation  of  the
  2923. questionnaire facility.   You  may wish  to include  some kind of automatic
  2924. archiving routine  in MIDNIGHT.BAT  or an event, which moves ANSWERS.TXT to
  2925. another location.   WR-BBS  automatically creates a new ANSWERS.TXT file if
  2926. none is  found.   See section  15 for  more details  on  MIDNIGHT.BAT,  and
  2927. section 17 for more details on configuring events.
  2928.  
  2929. ===========================================================================
  2930. SECTION 19                                                 THE ACTIVITY LOG
  2931. ===========================================================================
  2932.  
  2933. WR-BBS creates  and updates  a log  file named WRBBSLOG.TXT, located in the
  2934. home path.   The  following are  some examples  of types  of  activity  are
  2935. recorded in WRBBSLOG.TXT:
  2936.  
  2937.           - Callers logging in.
  2938.           - Callers changing their passwords.
  2939.           - Callers  requesting various features throughout the WR-BBS menu
  2940.                     system.
  2941.           - Callers making mistakes, or selecting unauthorized features.
  2942.           - Callers dropping carrier.
  2943.           - File transfers.
  2944.           - WR-BBS being started or re-started.
  2945.           - WR-BBS being shut down.
  2946.           - Errors that occur during WR-BBS startup or shutdown.
  2947.           - Errors that occur during WR-BBS runtime.
  2948.           - Errors detected by the W-TREE Database Manager.
  2949.           - System status messages.
  2950.           - SysOp administration activity.
  2951.  
  2952.  
  2953. WR-BBS keeps  only one  log file  - there  is no  separate file for errors.
  2954. Since WRBBSLOG.TXT is an ASCII text file, you can use a third party utility
  2955. (or even  something as  basic as DOS's FIND) to search for specific strings
  2956. in the log file.
  2957.  
  2958. If WRBBSLOG.TXT does not exist, WR-BBS creates a new one when it next needs
  2959. to record  an event.   If  WRBBSLOG.TXT does  exist, WR-BBS  appends  event
  2960. information to it.  You will probably want to implement some scheme to copy
  2961. the contents  of WRBBSLOG.TXT to an archival location at regular intervals.
  2962. The sample MIDNIGHT.BAT file gives an example of how to do this.
  2963.  
  2964. Should WR-BBS  experience a  "fatal" error  during runtime,  the details of
  2965. that error  will usually  (but not always) be logged to WRBBSLOG.TXT.  Some
  2966. errors are  so severe  that no  file I/O  is possible,  and therefore  they
  2967. cannot be  logged.   If a fatal error occurs and is logged, the information
  2968. in WRBBSLOG.TXT  will be  helpful in  determining exactly  what went wrong.
  2969. Particularly important  are the  Process ID  and System  Status, listed  as
  2970. "PID" and  "SS" in  WRBBSLOG.TXT.   If you  contact the  author for support
  2971. involving a fatal error, this information will be most helpful in resolving
  2972. the problem.
  2973.  
  2974.  
  2975.  
  2976. ===========================================================================
  2977. SECTION 20                                                THE "DOWN" OPTION
  2978. ===========================================================================
  2979.  
  2980. WR-BBS has  a handy feature built-in for "downtime" operation.  This allows
  2981. you to  configure WR-BBS  to answer calls, but not allow callers to log on.
  2982. Instead, callers  are presented  with a message (which you create), and the
  2983. call is then terminated.
  2984.  
  2985. Why would  you want to run your WR-BBS in "downtime" mode?  Perhaps you are
  2986. in the  middle of  overhauling all  your screens,  and you  don't want  the
  2987. computer to get tied up with caller sessions.  If you plan to have your WR-
  2988. BBS down  for any period of time, this feature will be useful - compared to
  2989. the alternatives.   Callers are much more receptive to a "downtime" message
  2990. that getting a constant busy signal or ringing.  On the other hand, if most
  2991. of your  callers use long distance to call your board, it would probably be
  2992. more polite  to not  use the  "downtime" option  when the  board is  down -
  2993. callers are not charged for calls to busy or unanswered lines.
  2994.  
  2995. How to configure WR-BBS for "downtime" operation.
  2996.  
  2997.           1.   Create a  set of  screen files explaining that the system is
  2998.                     unavailable.     See  section  7  for  instructions  on
  2999.                     creating screen  files.   Your announcement  should  be
  3000.                     only a  few lines  long -  never more  than  20  lines.
  3001.                     Create one  for each  type of caller with these special
  3002.                     names - DOWNTIME.ASC and DOWNTIME.ANS.  Put these files
  3003.                     in the  same directory  as all  of  your  other  screen
  3004.                     files.
  3005.           
  3006.           2.   Stop WR-BBS  if it  is running,  by pressing  ALT-Q from the
  3007.                     "waiting for calls" screen.
  3008.           
  3009.           3.  Start WR-BBS by typing this special command line:
  3010.  
  3011.                               WRBBS  /DOWN
  3012.  
  3013.  
  3014. When WR-BBS  is in "downtime" mode, any incoming call is answered as usual,
  3015. but  instead  of  logging  in  the  caller,  WR-BBS  displays  the  special
  3016. DOWNTIME.ASC or  DOWNTIME.ANS screen.  The caller is then prompted to press
  3017. a key  to end  the call.   If  the caller  does not  press a  key, the call
  3018. terminates automatically after 30 seconds.
  3019.  
  3020. To resume normal WR-BBS operation, stop WR-BBS with ALT-Q from the "waiting
  3021. for calls" screen, then type WR to start WR-BBS in normal mode.
  3022.  
  3023.  
  3024. ===========================================================================
  3025. SECTION 21                                        WHILE A CALLER IS ON LINE
  3026. ===========================================================================
  3027.  
  3028. There are some special keys available to the SysOp while a caller is logged
  3029. on.   If the  caller attempts  to press  these keys - they have no effect -
  3030. only the local console can activate these features:
  3031.  
  3032.           PGUP  -   Adds five minutes to the callers time.
  3033.           
  3034.           PGDN  -   Deducts five minutes from the callers time.
  3035.           
  3036.           ALT-X -   Immediately forces the caller off - abruptly!
  3037.  
  3038.  
  3039. In order  to use  these keys,  the caller must be in one of the menus (Main
  3040. Menu, Message System, Files Library).  To activate one of the special keys,
  3041. hold it  down until the desired effect is observed (it may take a second or
  3042. two).
  3043.  
  3044. Remember that  when a  caller is logged on, the local (console) keyboard is
  3045. active along  with the  callers.   This allows  you to  type things for the
  3046. caller (to  show a confused caller how to do something, for example).  This
  3047. also means  that you can "coerce" a caller to one of the menus by using the
  3048. regular command  keys (which  they could  use), and  then press  one of the
  3049. special keys described above.
  3050.  
  3051. ===========================================================================
  3052. SECTION 22                                 EXTERNAL FILE TRANSFER PROTOCOLS
  3053. ===========================================================================
  3054.  
  3055. WR-BBS does  NOT include  any file  transfer protocols in the program file.
  3056. All file  transfer activity  is controlled  by an  external  file  transfer
  3057. utility program(s)  that you  supply.   There are a number of external file
  3058. transfer  protocol   programs  available  from  BBS's  that  specialize  in
  3059. communications and  BBS utility  files, including  the WR-BBS  Headquarters
  3060. BBS.   From some  BBS's you can download public domain (free) copies of the
  3061. Xmodem and  Ymodem  file  transfer  utilities.    Other,  more  proprietary
  3062. protocols can  be obtained  for a  modest registration  fee on  a shareware
  3063. basis.
  3064.  
  3065. The WR-BBS  Headquarters BBS uses DSZ by Omen Technology, Inc., which is an
  3066. excellent multi-protocol  file transfer  utility.  It includes an authentic
  3067. version of  Zmodem, true  Ymodem, Xmodem,  and  many  variations  of  those
  3068. protocols, including  streamers  such  as  Ymodem-G  for  use  with  error-
  3069. correcting modems.  It is  a powerful  program with good documentation, and
  3070. well worth  the registration  fee.   The author is a registered user of DSZ
  3071. for use  in operating  the WR-BBS Headquarters BBS,  but has no affiliation
  3072. with Omen  Technology, Inc.  or the  authors of  their products.   You  can
  3073. obtain more  information on  DSZ or download an evaluation copy of DSZ from
  3074. Omen's BBS  at (503) 621-3746.  Remember to register any shareware programs
  3075. such as DSZ if you continue to use them after the evaluation period.
  3076.  
  3077. After obtaining  one or  more file  transfer utilities,  it is necessary to
  3078. understand how  WR-BBS invokes file transfers.  WR-BBS uses a batch file to
  3079. control all  file transfers.   This  batch file  is named  WFILEXFR.BAT.  A
  3080. sample copy  of WFILEXFR.BAT  is included  with the WR-BBS archive.  If you
  3081. use DSZ,  you can  probably use  that batch  file as  is, or  with  minimal
  3082. modification.
  3083.  
  3084. The batch  file WFILEXFR.BAT  uses the  parameters  to  branch  to  defined
  3085. labels, based  on what  WR-BBS passes.   If  you are  unfamiliar  with  the
  3086. concept of  replaceable parameters (command line variables) in batch files,
  3087. see your DOS manual for more details.
  3088.  
  3089. WR-BBS passes  five parameters  to WFILEXFR.BAT  when a  file  transfer  is
  3090. requested:
  3091.  
  3092. Parameter 1:   A single character, which represents the communications port
  3093.               that WR-BBS  has active  at the  time of  the file  transfer.
  3094.               This is  the port  that you  defined in WRCONFIG.SYS with the
  3095.               "PORTNUMBER=" keyword.  Some file  transfer programs  need to
  3096.               know what  port they  should use, especially if WR-BBS is not
  3097.               set up  to use COM1.  Possible values that may be sent by WR-
  3098.               BBS are  "1" for  COM1, "2",  for COM2, "3" for COM3, "4" for
  3099.               COM4, or  "N" in  the event  of a  local logon  that does not
  3100.               involve the modem (from the local console).
  3101.  
  3102. Parameter 2:   A  string that  represents the caller's connected baud rate.
  3103.               WR-BBS might send "300", "1200", "2400", "9600", etc.  If the
  3104.               caller is  "local" (logged  in from  the local console), then
  3105.               the word  "LOCAL" will  be sent in lieu of the baud rate.  If
  3106.               you  have   an  error-correcting  modem,  and  you  have  set
  3107.               LOCKDTE=Y in  WRCONFIG.SYS, then  WR-BBS will pass the locked
  3108.               DTE speed  as the  second parameter  instead of  the caller's
  3109.               connect speed.   This  is because  the file  transfer utility
  3110.               needs to  work at  the modem's  speed, not the caller's speed
  3111.               (which  is   usually  less).     An   error-correcting  modem
  3112.               compresses data and handles the buffering, so it is okay, for
  3113.               example, to have the file transfer utility cramming data into
  3114.               an error-correcting  modem at 38400 baud, while the caller is
  3115.               connected at  2400 baud.  Error-correcting  modems  use  flow
  3116.               control to  keep the data from overflowing when there is such
  3117.               a speed  difference - thus, it is very important to configure
  3118.               your file  transfer program  for the proper flow control when
  3119.               using  an   error-correcting  modem.    (Some  file  transfer
  3120.               programs,   including    DSZ,   handle   the   flow   control
  3121.               automatically).
  3122.  
  3123. Parameter 3:   Either  the string  "RECEIVE" or  the string  "SEND".   If a
  3124.               caller has  requested an  upload to  your WR-BBS,  then  your
  3125.               system will  "RECEIVE" the  file.   If a  caller  requests  a
  3126.               download, then your system will "SEND" the file(s).
  3127.  
  3128. Parameter 4:   A string - the protocol keyword, as defined in WRCONFIG.SYS.
  3129.               This will  make more  sense when the entries you need to make
  3130.               in WRCONFIG.SYS are explained a few paragraphs later.
  3131.  
  3132. Parameter 5:  The name of the file to be transferred, or the name of a file
  3133.               list (which  is a text file containing a list of file names).
  3134.               In the  case of  a single file transfer, the actual file name
  3135.               will be  sent as  parameter number five.  If there are two or
  3136.               more files  involved, WR-BBS  will create  a text  file named
  3137.               DL.LST, in  the home  path, and  pass  DL.LST  as  the  fifth
  3138.               parameter.  Many file transfer utilities, such as DSZ, expect
  3139.               a "list  file" to  tell them  when multiple  files are  to be
  3140.               transferred.  WR-BBS allows a caller to select up to 99 files
  3141.               for batch  download at  one time.  If the caller selects more
  3142.               than  one  (and  the  file  transfer  protocol  allows  batch
  3143.               transmission), then  WR-BBS puts  all of  the file names, one
  3144.               per line,  in  the  text  file  named  DL.LST,  then  invokes
  3145.               WFILEXFR.BAT, using DL.LST as the fifth parameter.
  3146.  
  3147. Parameter 6:  A numeric string ("1" to "99") which represents the number of
  3148.               files being  transferred.  Although WFILEXFR.BAT does not use
  3149.               this parameter, it is sent by WR-BBS to provide compatibility
  3150.               with file  transfer utilities that expect a file count on the
  3151.               command line.
  3152.  
  3153. Here are  some examples  of the  way that  WR-BBS calls WFILEXFR.BAT when a
  3154. file transfer is requested by a caller.  In each of these examples, we will
  3155. assume that WR-BBS is configured for COM1:
  3156.  
  3157. Example one  - The  caller is  connected at 1200 baud, and has requested an
  3158. Xmodem-CRC download of the file HELLO.TXT  ...
  3159.  
  3160.           WFILEXFR  1  1200  SEND  XMODEMCRC  HELLO.TXT  1
  3161.  
  3162. Example two  - The  caller wants to upload NEWFILE.ZIP, and is connected at
  3163. 2400 baud.   The  caller has chosen SuperVmodem (a fictitious protocol, for
  3164. example purposes only)  ...
  3165.  
  3166.           WFILEXFR  1  2400  RECEIVE  SUPERV  NEWFILE.ZIP  1
  3167.  
  3168. Example three  -  the caller is connected at 2400 baud, and has requested a
  3169. Zmodem download of these three files:  ONE.ZIP, TWO.ZIP, and THREE.ZIP ...
  3170.  
  3171.           WFILEXFR  1  2400  SEND  ZMODEM  DL.LST  3
  3172.  
  3173. Example four    -  the  caller  has  requested  an  Xmodem-1K  download  of
  3174. BIGFILE.ARJ, and  is connected  at 9600  baud (error-free),  with  the  DTE
  3175. locked at 38,400 baud  ...
  3176.  
  3177.           WFILEXFR  1  38400  SEND  XMODEM1K  BIGFILE.ARJ  1
  3178.  
  3179.  
  3180. Where does  WR-BBS get  the protocol  keywords, such  as XMODEMCRC, SUPERV,
  3181. ZMODEM, and  XMODEM1K found  in the  above examples?   Those come from your
  3182. entries in  WRCONFIG.SYS.   Remember that  WR-BBS does  not have  any  file
  3183. transfer protocols  available, until you define what they are and what they
  3184. can do - in WRCONFIG.SYS.  The proper syntax for file transfer protocols in
  3185. WRCONFIG.SYS is:
  3186.  
  3187.           1. The keyword  PROTOCOL=
  3188.           
  3189.           2. The  NAME of the protocol, as you wish to have it displayed to
  3190.              callers.   The name  you enter  here will be the name shown in
  3191.              the list  of available  protocols presented to the caller when
  3192.              they request  a file transfer.  This information is NOT passed
  3193.              to WFILEXFR.BAT  or used for any other reason except to inform
  3194.              the callers that the protocol is available for use.
  3195.           
  3196.           3. A pipe "|" symbol.
  3197.           
  3198.           4. The  protocol's KEYWORD, which will be passed to WFILEXFR.BAT.
  3199.              This string can be 1 to 16 characters long, and cannot contain
  3200.              spaces or any of the following characters:  @ < > , + ; $ %
  3201.           
  3202.               This  information is NEVER displayed to the caller, and it is
  3203.              only for  use by  WFILEXFR.BAT, to  differentiate one protocol
  3204.              from another.   To  make life  easier,  you  should  choose  a
  3205.              protocol KEYWORD  that relates  somehow to  the  name  of  the
  3206.              protocol.  See the examples below.
  3207.           
  3208.           5. Another pipe "|" symbol.
  3209.           
  3210.           6. The  word "SINGLE"  for single-file  protocols,  or  the  word
  3211.              "BATCH" for multiple-file protocols.
  3212.           
  3213.           7. Another pipe "|" symbol.
  3214.           
  3215.           8.   A list of 1 to 26 letters (A to Z), representing the classes
  3216.              of service permitted to use that protocol.
  3217.  
  3218.                                      
  3219.                                      
  3220.            (Port # 1 and 2400 baud used for both examples below)
  3221. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3222. Example one:   This (fictitious) protocol is called "SpeedyModem X", and is
  3223. capable of  multiple file transfers.  The SysOp wants it to be available to
  3224. all callers  in all  classes of  service.  The SysOp also wants the keyword
  3225. "SPEED" to  be passed  to WFILEXFR.BAT when a caller selects this protocol.
  3226. Here is what the entry in WRCONFIG.SYS would look like:
  3227.  
  3228. PROTOCOL=SpeedyModem (Real Fast)|SPEED_M|BATCH|ABCDEFGHIJKLMNOPQRSTUVWXYZ
  3229.  
  3230. (Callers will see this protocol listed as "SpeedyModem").
  3231.  
  3232. Here is  what WR-BBS  would send to WFILEXFR.BAT as command line parameters
  3233. if a caller chooses to download PICTURE.ZIP  ...
  3234.  
  3235.           WFILEXFR  1  2400  SEND  SPEED_M  PICTURE.ZIP  1
  3236.  
  3237. Here is  what WR-BBS  would send to WFILEXFR.BAT as command line parameters
  3238. if a caller choose to download ONE.ARJ, TWO.ARJ, and THREE.ARJ  ...
  3239.  
  3240.           WFILEXFR  1  2400  SEND  SPEED_M  DL.LST  3
  3241.  
  3242. Here is what WR-BBS would send to WFILEXFR.BAT as command line parameters
  3243. if a caller told WR-BBS they wanted to upload GOODFILE.ZOO  ...
  3244.  
  3245.           WFILEXFR  1  2400  RECEIVE  SPEED_M  GOODFILE.ZOO  1
  3246.  
  3247.  
  3248. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3249. Example two:   This  is for the Xmodem-CRC protocol, one of the most common
  3250. (but not  the most  efficient) file  transfers available.  It is capable of
  3251. single file  (one at  a time)  transfers only.   The  SysOp wants  it to be
  3252. available to  all classes  of service.   The  SysOp has  decided to use the
  3253. keyword XMC  to designate Xmodem-CRC for configuration and control purposes
  3254. (in WRCONFIG.SYS and WFILEXFR.BAT).  Here is what the entry in WRCONFIG.SYS
  3255. would look like:
  3256.  
  3257. PROTOCOL=Xmodem-CRC|XMC|SINGLE|ABCDEFGHIJKLMNOPQRSTUVWXYZ
  3258.  
  3259. (Callers will see this protocol listed as "Xmodem-CRC").
  3260.  
  3261. Here is  what WR-BBS  would send to WFILEXFR.BAT as command line parameters
  3262. if a caller chooses to download PICTURE.ZIP  ...
  3263.  
  3264.           WFILEXFR  1  2400  SEND  XMC  PICTURE.ZIP  1
  3265.  
  3266. Here is  what WR-BBS  would send to WFILEXFR.BAT as command line parameters
  3267. if a caller told WR-BBS they wanted to upload GOODFILE.ZOO  ...
  3268.  
  3269.           WFILEXFR  1  2400  RECEIVE  XMC  GOODFILE.ZOO  1
  3270.  
  3271. As you  can see,  WR-BBS knows  the external protocols by two identifiers -
  3272. the first  one is  the "nice  looking" string that is presented to callers,
  3273. and not  used anywhere  else by  WR-BBS.   The  second  identifier  is  the
  3274. protocol keyword which is passed to WFILEXFR.BAT as a parameter.
  3275.  
  3276. Working with  your protocol's  documentation  and  this  section,  you  can
  3277. customize your  file transfer  protocol handling.   When  selecting a  file
  3278. transfer protocol  utility, and  when designing  your WFILEXFR.BAT file (if
  3279. you choose to modify it), you should keep these things in mind:
  3280.  
  3281.      1. You should use a file transfer protocol that allows you to restrict
  3282.      incoming files.   DSZ  does a good job of this.  If WFILEXFR.BAT tells
  3283.      DSZ to receive a file named GOOD.ZIP, and the called instead transmits
  3284.      BAD.TXT, DSZ  will name  the file  GOOD.ZIP.  The "restrict" option on
  3285.      the  DSZ   command  line   also  keeps   caller  from  accidently  (or
  3286.      intentionally) sending  files with pathnames that would locate them in
  3287.      a directory other than the one you want to receive them in.
  3288.      
  3289.      2. Your  file transfer protocol should delete any partial files.  This
  3290.      will  prevent  subsequent  callers  from  downloading  aborted  upload
  3291.      segments.
  3292.      
  3293.      3. If  you do not want callers to have access to new uploads until you
  3294.      have
  3295.      tested /  cataloged them,  set the  class of service (in WRCONFIG.SYS)
  3296.      for the  upload area  so that  only the SysOp has access to it.  Then,
  3297.      after you  have checked  the new  files (as  the SysOp),  you can edit
  3298.      their descriptions  to move  them to  a different file area that other
  3299.      callers have access to.
  3300.      
  3301.      4. All  incoming files must be written to the "uploads" directory that
  3302.      you specified  in WRCONFIG.SYS.   After an upload is completed, WR-BBS
  3303.      checks for  the existence  of the uploaded file in that directory.  If
  3304.      the file  is not found in the upload directory, the description record
  3305.      is deleted, and the upload is considered as failed.
  3306.      
  3307.      5. WR-BBS  checks for  the existence  of a  file named $FAILURE in the
  3308.      upload directory after an upload occurs.  If the file $FAILURE exists,
  3309.      WR-BBS assumes  that the  upload was  unsuccessful.  Your WFILEXFR.BAT
  3310.      file should  erase any $FAILURE file before invoking the transfer, and
  3311.      create $FAILURE  only if  there is a problem with the upload.  See the
  3312.      sample copy of WFILEXFR.BAT for details.
  3313.  
  3314.