home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / BBS / RBBS_PC / 173_DOC.ZIP / RBBSDOC2.ASC < prev   
Encoding:
Text File  |  1990-02-11  |  396.8 KB  |  7,279 lines

  1.     RBBS-PC CPC17.3                                                 Page 136
  2.  
  3.     10. THE HAYES MODEM SWITCH SETTING AND CONSIDERATIONS
  4.     -----------------------------------------------------
  5.     10.1 Hayes Smartmodem 1200 Switch Considerations
  6.     ------------------------------------------------
  7.     The proper switch settings for an EXTERNAL Hayes 1200 modem are:
  8.                   switch -- 12345678
  9.                   setting - UUDDDUUD
  10.  
  11.     Recognizing that there are many  "Hayes-compatible" (and not so compatible)
  12.     modems in use, this section is  intended to assist those adventurous  souls
  13.     who use such modems  and need some guidance on what  the otherwise mystical
  14.     Hayes switch settings mean.  The following table may be of some help:
  15.  
  16.                   Setting            Function to RBBS-PC
  17.     Hayes  | Factory | RBBS-PC |
  18.     Switch |---------|---------|   (NOTE "Up" means enabled or "on")
  19.  
  20.       1       Down       Up       Allows RBBS-PC to control the modem using the
  21.                                   RS-232 DTR lead (pin 20).
  22.  
  23.       2        Up        Up       Not meaningful to RBBS-PC (could be down) and
  24.                                   is used to indicate if result codes are to be
  25.                                   English words or single digits.  RBBS-PC sets
  26.                                   this with the Hayes "V" command.  
  27.  
  28.       3       Down      Down      Not meaningful to RBBS-PC (could be down) and
  29.                                   is used to indicate if result codes are to be
  30.                                   sent  to RBBS-PC.  RBBS-PC sets this with the
  31.                                   Hayes "Q" command.
  32.  
  33.       4        Up       Down      The  modem does  not  echo characters  unless
  34.                                   half-duplex  is  selected  and  the modem  is
  35.                                   on-line. 
  36.  
  37.       5       Down      Down      Modem is NOT to answer incoming calls.  RBBS-
  38.                                   PC monitors  the ring  indicator (pin  22) to
  39.                                   determine if the phone is ringing.  If it is,
  40.                                   RBBS-PC will issue the  necessary commands to
  41.                                   the modem.
  42.  
  43.       6       Down       Up       RBBS-PC checks for  the carrier signal  using
  44.                                   the RS-232 Carrier  Detect lead (pin 8).   If
  45.                                   carrier is  lost, RBBS-PC hangs up  the phone
  46.                                   and re-cycles to await the next call.
  47.  
  48.       7        Up        Up       Not really required by  RBBS-PC.  However  in
  49.                                   the "down" position,  the telephone extension
  50.                                   light   will  illuminate   on  a   multi-line
  51.                                   installation when the modem answers a call.
  52.  
  53.       8       Down      Down      Enables the Smartmodem 1200 to recognize the 
  54.                                   Hayes commands issued by RBBS-PC.
  55.  
  56.     The most common problem, "RBBS-PC continually recycles," occurs when switch
  57.     six is left in the factory position.
  58.     RBBS-PC CPC17.3                                                 Page 137
  59.  
  60.     These   switch  settings  do  not  have  to  be  changed  for  most   other
  61.     communications software packages.   However,  Your  communications software
  62.     should issue a modem  reset (command ATZ) before using the  modem.  RBBS-PC
  63.     should be  used only with  versions 123 and  above of the  Hayes Smartmodem
  64.     1200 and with version  247 and above of the Hayes Smartmodem 2400.  Earlier
  65.     versions   do  not  answer  the  telephone properly.   The ATI command will
  66.     cause  the  Smartmodem to tell you its version.
  67.  
  68.     Hayes also shipped  an external modem called  the Hayes 1200FE that  had 10
  69.     switch settings.  To  run RBBS-PC switches 9 and  10 of the 1200FE must  be
  70.     left up  (the factory setting).  Hayes also  ships an internal modem called
  71.     the Hayes 1200BFE  that has 6 switch settings.  To  run RBBS-PC switches 4,
  72.     5, and  6 must be left up  (the factory setting).  If  you can't figure out
  73.     what the  switching settings  on these new  modems should  be based  on the
  74.     switch settings given  for the "original" Hayes 1200,  CALL HAYES TECHNICAL
  75.     SUPPORT!
  76.     RBBS-PC CPC17.3                                                 Page 138
  77.  
  78.     10.2 Hayes Command's Considerations
  79.     -----------------------------------
  80.     The  commands used  to  control the  modem  may  be modified  using  CONFIG
  81.     parameter 225.  The commands, and their meanings, are as follows:
  82.  
  83.     10.2.1 Command to Reset the Modem
  84.     ---------------------------------
  85.     The  modem reset command  is the first  option in CONFIG  parameter 225 and
  86.     it's default value is the Hayes command string:
  87.  
  88.     Command    Meaning
  89.  
  90.     AT         Signifies the following characters are Hayes commands.
  91.     Z          Causes a software reset and applies all default values.
  92.  
  93.     This command is ALWAYS issued and is  the first command issued to the modem
  94.     every time RBBS-PC gets ready for calls.
  95.  
  96.     10.2.2 Command to Initialize the Modem
  97.     --------------------------------------
  98.     The modem initialization command is ALWAYS issued and is the second command
  99.     issued to the modem every time RBBS-PC gets ready for calls.
  100.  
  101.     The modem initialization  command is the second option  in CONFIG parameter
  102.     225 and it's default value is one of the following Hayes command strings.
  103.  
  104.     If  CONFIG has been  used to set RBBS-PC  to answer on  a ring greater than
  105.     zero, the command string is:
  106.  
  107.     Command    Meaning
  108.  
  109.     AT         Signifies the following characters are Hayes commands.
  110.     M0         Turn the monitor speaker on the modem off permanently.
  111.     Q1         Do not return result codes to the PC.
  112.     S2=255     Disable escape code detection.
  113.     S10=30     Do not drop disconnect user unless carrier drops for more
  114.                than seconds (you may want to set this to 15)
  115.     E0         Do not echo characters back to the PC when receiving Hayes
  116.                commands.
  117.     Q0         Send result codes to the PC.
  118.     X1         Tells the modem to send "extended" result codes to the PC.
  119.     S0=x       "x" is set as follows:
  120.                  S0=254  to answer on a specific number of rings > 0
  121.                  S0=255  to enable "ring-back"
  122.     RBBS-PC CPC17.3                                                 Page 139
  123.  
  124.     If CONFIG sets RBBS-PC to answer on zero rings, the command string is:
  125.  
  126.     Command    Meaning
  127.  
  128.     AT         Signifies the following characters are Hayes commands.
  129.     M0         Turn the monitor speaker on the modem off permanently.
  130.     Q1         Send result codes to the PC.
  131.     S2=255     Disable escape code detection.
  132.     S10=30     Do not drop disconnect user unless carrier drops for more
  133.                than seconds.  Some of the Hayes ROM's have a bug in them
  134.                that causes the modem to only answer at 1200 baud if anything
  135.                other than the factory default is used for S10.  If you 
  136.                have such a problem, simply set S10 equal to 7.
  137.     E0         Do not echo characters back to the PC when receiving Hayes
  138.                commands.
  139.     Q0         Send result codes to the PC.
  140.     X1         Tells the modem to send "extended" result codes to the PC.
  141.     S0=1       Answer the phone on the first ring.
  142.     Q0         Send result codes to the PC.
  143.     X1         Tells the modem to send "extended" result codes to the PC.
  144.  
  145.     10.2.3 Command to Count The Number of Rings
  146.     -------------------------------------------
  147.     The modem command that  counts the number of  rings is the third  option in
  148.     CONFIG parameter 225 and it's default value is the  following Hayes command
  149.     string :
  150.  
  151.     Command    Meaning
  152.  
  153.     AT         Signifies the following characters are Hayes commands.
  154.     S1?        Requests the modem to return the number of times that the phone
  155.                has rung.
  156.  
  157.     This command string is only issued when  CONFIG has been used to tell RBBS-
  158.     PC to answer on a specific number of  rings other than 0.  Some modems have
  159.     trouble with the  S1? command because they  do not recognize the ?  part of
  160.     the command.  Again, verify what your modem is capable of handling.
  161.  
  162.     10.2.4 Command to Answer the Phone
  163.     ----------------------------------
  164.     The  modem command  to answer  the  phone is  the fourth  option  in CONFIG
  165.     parameter 225 and it's default value is  one of the following Hayes command
  166.     string :
  167.  
  168.     Command    Meaning
  169.  
  170.     AT         Signifies the following characters are Hayes commands.
  171.     Q0         Tells the modem to send result codes to the PC.
  172.     X1         Tells the modem to send "extended" result codes to the PC.
  173.     V1         "Extended" result codes are to be transmitted as words.
  174.     A         Tells the  modem to answer the  phone immediately.  This  is only
  175.               issued if the number of rings to answer on is greater than 0.
  176.     RBBS-PC CPC17.3                                                 Page 140
  177.  
  178.     RBBS-PC utilizes  the extended verbal  results code (CONNECT,  CONNECT 300,
  179.     CONNECT 1200, and CONNECT 2400) to determine the callers baud rate.
  180.  
  181.     Some  Hayes 300  modems don't  function  with RBBS-PC  because they  do not
  182.     recognize  the "X1" command.  If you  have a modem like this, simply remove
  183.     the X1 command from the command strings in the .DEF file.
  184.  
  185.     10.2.5 Command to Take the Phone Off the Hook
  186.     ---------------------------------------------
  187.     The modem command  to take the  phone off the hook  is the fifth  option in
  188.     CONFIG parameter 225  and it's default value is the following Hayes command
  189.     string :
  190.  
  191.     Command    Meaning
  192.  
  193.     AT         Signifies the following characters are Hayes commands.
  194.     Q1         Do not return result codes to the PC.
  195.     E1         Echo characters back to the PC when handling Hayes commands.
  196.     H1         Take the modem off the hook (i.e. busy out the line).
  197.     M0         Turn the monitor speaker on the modem off permanently.      
  198.  
  199.     This command is ALWAYS issued whenever the SYSOP is doing local maintenance
  200.     (i.e. hits ESC) or a user hangs up.
  201.  
  202.     10.2.6 Firmware Initialization
  203.     ------------------------------
  204.     The commands to initialize the modem firmware are not contained in the .DEF
  205.     file, but rather  are dynamically set (or  reset) each time that  CONFIG is
  206.     invoked.  There are essentially three commands:
  207.  
  208.         1.  A command to clear the modem's firmware.
  209.         2.  A command to initialize the modem's firmware.
  210.         3.  The command to write the initialized firmware to the modem's
  211.             non-volatile memory is "&W".
  212.  
  213.     The modem command  to clear  the modem's  firmware is the  sixth option  in
  214.     CONFIG parameter 225 and it's default value is the following Hayes  command
  215.     string:
  216.  
  217.     Command    Meaning
  218.  
  219.     AT         Signifies the following characters are Hayes commands.
  220.     &F        Load the modem active configuration area with the factory profile
  221.               contained in the Hayes ROM.
  222.     RBBS-PC CPC17.3                                                 Page 141
  223.  
  224.     The modem command to initialize the  modem's firmware is the seventh option
  225.     in  CONFIG  parameter 225  and it's  default value  is the  following Hayes
  226.     command string:
  227.  
  228.     Command    Meaning
  229.  
  230.     AT         Signifies the following characters are Hayes commands.
  231.     &C1        Data carrier detect tracks the state of the data carrier from
  232.                   the remote modem.
  233.     &D3        Modem is to assume the initialization state if it detects ON-
  234.                   to-OFF transition of DTR.  The newer versions of the Hayes
  235.                   2400 baud modem (ROM 249 or greater) and some clones do not
  236.                   allow RBBS-PC to recycle properly when the &D switch is set 
  237.                   to 3.  If you are having a problem, set the it to &D2.
  238.     B1         Set the modem to Bell 212A mode when the 1200 BPS data transfer
  239.                   rate is selected.
  240.     E0         Do not echo characters of the modem commands issued by RBBS-PC
  241.                   back to the PC running RBBS-PC.
  242.     V1         Select long-form result codes.
  243.     M0         Disable the modem's speaker when carrier is detected.
  244.     S0=0       Disable "auto-answer" mode.
  245.     &T5        Disallow a request from the remote modem for a remote digital 
  246.                   loopback test.
  247.  
  248.     The modem  command to write  the initialized firmware  to the  modem's non-
  249.     volatile memory  is  the sixth  option  in CONFIG  parameter  225 and  it's
  250.     default value is the following Hayes command string:
  251.  
  252.     Command    Meaning
  253.  
  254.     &W         Write the firmware settings to non-volatile memory
  255.  
  256.     These  three commands  are ALWAYS  issued in  CONFIG when parameter  231 is
  257.     selected.  These  commands can be temporarily altered by  changing them via
  258.     parameter 225 of CONFIG prior to invoking parameter 231.
  259.     RBBS-PC CPC17.3                                                 Page 142
  260.  
  261.     10.2.7 Smartmodem 9600 Firmware Initialization
  262.     ----------------------------------------------
  263.     The Hayes V-series Smartmodem 9600's active configuration should be:
  264.  
  265.     B1       -- Factory setting
  266.     E1       -- Factory setting
  267.     L1       -- Low speaker volume (unless you like noise).
  268.     M1       -- Factory setting
  269.     N1       -- Factory setting
  270.     Q0       -- Factory setting
  271.      T       -- touch tone (could be "P" for pulse dial).
  272.     V1       -- Factory setting
  273.     W1       -- Modem reports error-control call (i.e. LAP-B/HDX).
  274.     X1       -- Send result basic result codes plus CONNECT 1200, 2400, etc.
  275.     Y0       -- Factory setting
  276.     &C1      -- Factory setting
  277.     &D2      -- Disable auto-answer when carrier drops.
  278.     &G0      -- Factory setting
  279.     &J0      -- Factory setting
  280.     &K3      -- Factory setting
  281.     &L0      -- Factory setting
  282.     &P0      -- Factory setting
  283.     &Q5      -- Factory setting
  284.     &R0      -- Factory setting
  285.     &S1      -- Data Set Ready operates according to RS-232C standards.
  286.     &T5      -- Deny requests for remote loop back tests from calling modem.
  287.     &X0      -- Factory setting
  288.     &Y0      -- Factory setting
  289.     S00:254  -- Let phone ring 254 times before automatically answering it.
  290.     S01:000  -- Factory setting
  291.     S02:043  -- Factory setting
  292.     S03:013  -- Factory setting
  293.     S04:010  -- Factory setting
  294.     S05:008  -- Factory setting
  295.     S06:002  -- Factory setting
  296.     S07:054  -- Assume no carrier is detected within 54 seconds of answering.
  297.     S08:002  -- Factory setting
  298.     S09:006  -- Factory setting
  299.     S10:030  -- Let carrier drop for up to 30 seconds before disconnecting.
  300.     S11:095  -- Factory setting
  301.     S12:050  -- Factory setting
  302.     S18:000  -- Factory setting
  303.     S25:005  -- Factory setting
  304.     S26:001  -- Factory setting
  305.     S36:001  -- Factory setting
  306.     S37:000  -- Factory setting
  307.     S38:020  -- Factory setting
  308.  
  309.     The Hayes V-series Smartmodem 9600's have non-volatile memory that contains
  310.     three different possible configurations --
  311.  
  312.        1.  the active configuration,
  313.        2.  the profile 0 configuration, and
  314.        3.  the profile 1 configuration.
  315.  
  316.     To utilize  the Hayes V-series  9600 modems  with RBBS-PC, it  is necessary
  317.     that the SYSOP
  318.     RBBS-PC CPC17.3                                                 Page 143
  319.  
  320.        1.  set the active configuration as shown on the previous pages, and
  321.        2.  write this active configuration to profile 0 with the &W0 command.
  322.  
  323.     This can be  done by temporarily re-CONFIGuring the  default modem firmware
  324.     initialization  commands via  parameter  225  (items 6,  7,  and 8)  before
  325.     initializing the Hayes Smartmodem 9600's firmware via parameter 231.
  326.  
  327.     RBBS-PC  is able to  interface with the  Hayes V-series  Smartmodem 9600 at
  328.     300, 1200,  2400, 4800, and 9600 baud.   When operating at  the two highest
  329.     baud rates,  the Hayes  V-series Smartmodem 9600  is limited  to connecting
  330.     with only  other  Hayes V-series  Smartmodem  9600's.   RBBS-PC  recognizes
  331.     whenever  the Hayes  version  of  error-correction  protocol,  "LAP-B",  is
  332.     enabled between the caller and RBBS-PC.
  333.  
  334.     RBBS-PC has been tested with the above active configuration and no problems
  335.     have been encountered using the "internal" protocols supplied with RBBS-PC.
  336.     Questions  regarding  the  Hayes  V-series  9600  modems  and  any  of  the
  337.     "external" protocols which  a SysOp may choose to make  available should be
  338.     addressed to the authors of such protocols.
  339.     RBBS-PC CPC17.3                                                 Page 144
  340.  
  341.     11.  RBBS-PC's FILE MANAGEMENT SUBSYSTEM
  342.     ----------------------------------------
  343.     The File Subsystem allows RBBS-PC to maintain a list of files available for
  344.     downloading.  Users can list files by date, category, or by using  a search
  345.     argument.  RBBS-PC refers to a file that contains a list of files available
  346.     for downloading as a "directory" (i.e. a .DIR file).
  347.      
  348.     There are two ways to configure the  File System.  One is to have  multiple
  349.     separate  "directory"  files.    The  other  is  to  have  a single  master
  350.     "directory" file (i.e. a  single FMS file) that contains  the names, sizes,
  351.     dates, and description of all the files available for downloading.
  352.  
  353.     You may  use both ideas at once  if you wish. It is  perfectly allowable to
  354.     use the master FMS directory as well as the smaller ones.  CONFIG parameter
  355.     215 controls whether RBBS-PC  looks beyond the FMS directory.   If you have
  356.     any separate  directories, set 215 to  NO.  If  you have only a  single FMS
  357.     directory, set parameter 215 to YES.  If directory searches are not limited
  358.     to the FMS directories  and RBBS-PC does not  find the category in the  FMS
  359.     listing, it will look for the old-style DIR files.
  360.     RBBS-PC CPC17.3                                                 Page 145
  361.  
  362.     11.1 Multiple Directory Format
  363.     ------------------------------
  364.     The multiple directories,  also referred to  as the old-style  directories,
  365.     are simply text files. These files are indentified by their file extension,
  366.     specified in  CONFIG, common to all the directories.  The default extension
  367.     is  .DIR, but it  can be changed via  parameter 209.   There is a directory
  368.     which  lists the  directory  names  and their  descriptions  whose name  is
  369.     specified via parameter 211 of CONFIG.
  370.  
  371.     Each directory is simply a text file. It may have anything in it, including
  372.     ANSI codes. The only restriction  is that in order for the  N)ew command to
  373.     work properly, the date must be somewhere in the first 31 characters.
  374.      
  375.     A file is classified in a directory  simply by being put into the file. The
  376.     SysOp can  allow the  caller to classify  uploads (by  setting the  minimum
  377.     security for classifying to a low enough  value).  All uploads must go into
  378.     a single  directory, called  the upload directory,  specified in  parameter
  379.     202,  and it will  be in the  drive\path specified  in parameter 203.   All
  380.     other directories  must be  in the drive\path  specified in  parameter 220.
  381.     This includes the  FMS directory (MASTER.DIR)  and the list  of DIR  files,
  382.     (DIR.DIR).
  383.      
  384.     There are, therefore,  four logical areas into which the  file subsystem is
  385.     divided. Each one may  reside in a separate  DOS directory, or all  of them
  386.     may be lumped together into one main directory.
  387.  
  388.           Logical Area                    CONFIG
  389.     1. The files for DOWNLOAD             parameter 204, parameter 205, and
  390.                                           parameter 207
  391.     2. The files that have been uploaded  parameter 201 and parameter 206
  392.     3. The upload directory file listing. parameter 202 and parameter 203
  393.     4. The download directory files.      parameter 220
  394.  
  395.     The  files  in  the download  directory  are  the only  files  that  may be
  396.     downloaded.  The  SysOp may  elect  to  have the  upload  directory  also a
  397.     download subdirectory.  This can be  done by specifying it  in the download
  398.     "PATH".
  399.      
  400.     One interesting  feature of  the File  Subsystem is  that you  can build  a
  401.     "chain" of  drives and  subdirectories to  search for  a given  file.   The
  402.     SYSOP, via parameter 204, can  list the order of the drives to  be searched
  403.     when RBBS-PC is  looking for the  file to be  downloaded. The parameter  is
  404.     specified with simply the letters,  together. For example: BAC would search
  405.     Drive B, then  Drive A, then  Drive C. Use  this parameter if  you want  to
  406.     search more than one drive.
  407.  
  408.     If  the files are  not in the  default directory then  you need  to use the
  409.     CONFIG parameter 205  and parameter 207.  Parameter  205 specifies that you
  410.     want to sue  DOS sub-directories and parameter 207 allows you to list them.
  411.     Use drive:\path format.
  412.  
  413.     Multiple directory  .DIR files and  the single FMS directory  entry formats
  414.     are  the same  (see  section  11.4)  except that  the  old  style  separate
  415.     directories need not be fixed length and don't include the category code.
  416.  
  417.     Any directory can be in the Single FMS format.  This allows special purpose
  418.     directories to be put  into FMS format so  they can take advantage of  such
  419.     RBBS-PC CPC17.3                                                 Page 146
  420.  
  421.     features as resumable listings normally associated just with the Single FMS
  422.     environment.   An unlimited number  of lines  of text can  be added  to any
  423.     description (see CONFIG parameter 40, parameter 148, and parameter 153).  
  424.  
  425.     The  file directories  have  absolutely  no  bearing  on  what  is  in  the
  426.     subdirectory.  A file can be listed but not exist, and a  file, such as one
  427.     uploaded with the  / for SYSOP  option, may exist  but not be  entered. The
  428.     file directories  are simply  methods to get  the caller  a listing  of the
  429.     files available.
  430.     RBBS-PC CPC17.3                                                 Page 147
  431.  
  432.     11.2 The Single and Chained FMS Directory Format
  433.     ------------------------------------------------
  434.     FMS logically  just lumps all  the old style separate  directories into one
  435.     directory file, called the MASTER or FMS directory, and assigning each file
  436.     a  CATEGORY CODE,  which may  correspond  to the  directory it  was  in the
  437.     original directories.  A utility  program called CNVDIR.EXE will do exactly
  438.     this: combine  the separate directories  and add  the category code  at the
  439.     end.   If you do  not already have separate  directories, simply set  it up
  440.     with a text editor using the columns indicated.
  441.  
  442.     Beginning with CPC17-2A  FMS directories can be "chained".  This means that
  443.     physically separate  files can be logically  combined to form a  single FMS
  444.     directory.    This is accomplished by  putting the following in  the header
  445.     record  (a header record in an  FMS directory is the  first record and must
  446.     begin with "\FMS "):
  447.  
  448.                        CH(<chain to>)
  449.  
  450.     where <chain to> is the name of the file to chain to.  As an example
  451.  
  452.     \FMS CH(C:\DIRS\CHTO.DIR)
  453.  
  454.     would chain  to the  file "C:\DIRS\CHTO.DIR".   Names of  files not  in the
  455.     default directory must have  a drive and/or path specified.   The directory
  456.     chained to  can in turn have a  chain, and there is no  limit to the number
  457.     that can be chained together.  Note that this "header" record must have the
  458.     same length  as the rest  of the lines  in the directory, and  will usually
  459.     have to be padded out with blanks.
  460.  
  461.     The directory  chained  to is  an  independent  FMS directory  and  can  be
  462.     anywhere  and have any extension.   A  given directory can have at most one
  463.     directory to chain to.  Chained directories can be  used to keep the upload
  464.     directory small for easier editing, or to better fit the latest directories
  465.     on a fast  RAM disk while keeping  older directories on a  slower hard disk
  466.     (e.g. a  SYSOP divides  the directories into  UPLOADS.DIR, 87.DIR,  86.DIR,
  467.     85.DIR,  and   84.DIR  to  reflect   the  year  in   which  the   file  was
  468.     created/uploaded).
  469.     RBBS-PC CPC17.3                                                 Page 148
  470.  
  471.     11.3  Advantages/Disadvantages of FMS Directory
  472.     -----------------------------------------------
  473.     Having a FMS directory has the following advantages:
  474.  
  475.     1.   Callers get  the newest  files listed  first.   The  directory can  be
  476.     displayed EITHER from top to bottom or bottom to  top.  Reading from bottom
  477.     up is appropriate when  files are in date order and new  files are appended
  478.     to the bottom.   When files are alphabetized or grouped  some other way, it
  479.     is more appropriate to read them from the top down.
  480.  
  481.     2.  The directory is listed with MORE ([Y],N) or files to download prompts
  482.     throughout the  listing, so at any  time the caller may  begin downloading,
  483.     and  pick up  where they  left off  in the  listing after  the  download is
  484.     completed.
  485.  
  486.     3.  Wildcard searches on filenames  are supported as well as exact  matches
  487.     on strings in the file S)earch command.  Whenever a wild card  character (*
  488.     and ?) is specified in the  search string, RBBS-PC will automatically shift
  489.     to matching just the file name.  Exact string matches search the full entry
  490.     rather  than  just  the  file  name.    String  searches  include  extended
  491.     descriptions for FMS directories, but in non-FMS directories only the first
  492.     line of the file description is searched.
  493.  
  494.     4.  Classification  of files is  easy. All that is  necessary is an  editor
  495.     that produces ASCII  files, and a file is classified by  a category code of
  496.     up to 3 characters. To  change a file from directory to directory, all that
  497.     is necessary is to change the category code. No more "erase it here and add
  498.     it there."
  499.  
  500.     5.   No SYSOP  maintenance is  necessary for  new uploads.  The caller  can
  501.     classify the upload  with a category code,  and the SYSOP can  specify that
  502.     the new uploads become instantly available.
  503.  
  504.     6.  Complex classifications can be made very simply. A category code is not
  505.     necessarily the category  the caller must type  in. The SYSOP can  elect to
  506.     have a classification system  where one code that the caller  types in will
  507.     list several  different category  codes. You can  include the  file in  two
  508.     directories without having two separate entries.
  509.  
  510.     7.  FMS directories can have "headers" (i.e. free text lines not associated
  511.     with any particular file).  This allows things like column headers  or help
  512.     to be included, as well as section headers.  A SYSOP may wish to separate a
  513.     "communications  directory" into different sections such  as one for QMODEM
  514.     and one for RBBS-PC.   A free text line begins with  "*" and is universally
  515.     displayed if the category code is "***" otherwise it is only displayed when
  516.     the category associated with the line is selected.
  517.  
  518.     8.  Multi-line descriptions (i.e. "extended" descriptions) are supported in
  519.     both FMS and "old-style" directories.  All columns except the first one are
  520.     available for the  description.  For FMS  directories extended descriptions
  521.     have the same characteristics as the file that they are associated with.
  522.  
  523.     9.   The  ability to enter  "extended" descriptions  for uploaded  files is
  524.     based on the caller's security level (see CONFIG parameter 127).
  525.  
  526.     10. Caller's can list the RBBS-PC file directories with or without extended
  527.     description.  As an example, a caller would enter the command "L - UPLOADS"
  528.     RBBS-PC CPC17.3                                                 Page 149
  529.  
  530.     to list the files in the directory UPLOADS with only one line descriptions.
  531.     The  command  "L  +  UPLOADS"  would  list  the  same  file  with  extended
  532.     descriptions.
  533.  
  534.     11. Archived files  can be viewed with  the V)iew command when  listing FMS
  535.     directories and the listing will resume where  it left off prior to issuing
  536.     the V)iew command.
  537.  
  538.     12. Individual entries within a FMS directory can be restricted to specific
  539.     security levels.
  540.  
  541.     13. Comment lines can be included in  FMS directories which are never shown
  542.     to a  caller.  Often such comments are useful reminders to the SYSOP who is
  543.     maintaining the FMS directories.
  544.  
  545.     14. Callers can  add upload descriptions without actually  uploading a file
  546.     (see  CONFIG parameter 153).   This is  typically useful to  the SYSOP.  It
  547.     makes it  easy to  start an  FMS upload  directory without  having to  know
  548.     anything about its internals or how  to use an editor.  With  the exception
  549.     of a  CORVUS network  environment, FMS directories  can be  updated without
  550.     taking the  system down  first.  All  the caller does  is issue  the normal
  551.     upload command.  If RBBS-PC finds that the file already exists and that the
  552.     caller has the necessary security level, RBBS-PC will get the file size and
  553.     proceed exactly as if the file had just been uploaded.
  554.  
  555.     15. Searches for new files is EXTREMELY fast because RBBS-PC does  not have
  556.     to search all  directories if  the single  FMS directory is  in date  order
  557.     (most recent date last)
  558.  
  559.     16. Latest uploads are always shown first, if the SYSOP has elected to make
  560.     them viewable and the master FMS is in date order.
  561.  
  562.     17.  Searches  for text  will  scan  the text  in  the extended  multi-line
  563.     descriptions.
  564.  
  565.     18.  Composite  categories  can  be  logically  constructed  out  of  other
  566.     categories (see section 11.5).
  567.  
  568.     19. Entries do not  have to be physically  moved to other .DIR files  to be
  569.     classified as belonging to it.
  570.  
  571.     20.  FMS  directories  can be  "chained"  to  accommodate those  multi-user
  572.     environments, such  as Corvus's  OMNINET, which will  not allow  files that
  573.     change in length to be shared. In such an environment FMS can be used,  but
  574.     the FMS directory must "chain" to the upload directory  and their must be a
  575.     separate upload directory for each node.
  576.     RBBS-PC CPC17.3                                                 Page 150
  577.  
  578.     Regrettably, the FMS directory also has ONE remaining limitations which may
  579.     make it unsuitable for all SYSOPs needs.
  580.  
  581.     1. The date must be in MM-DD-YY format. Any single digit number must have a
  582.     leading zero.
  583.      
  584.     If FMS does not totally satisfy your  needs, you can use both.  RBBS-PC can
  585.     be configured  to look for  an old style  directory if  it does not  find a
  586.     directory in the FMS.   If it finds one it will display it. If it does not,
  587.     it displays the familiar "Directory XXX not found!" message.
  588.     RBBS-PC CPC17.3                                                 Page 151
  589.  
  590.     11.4  Creating FMS Directories
  591.     ------------------------------
  592.     If you already have  separate directories, it would be a  good idea to copy
  593.     all of them into a single  one called MASTER.DIR.  Detailed directions  are
  594.     given in the documentation for CNVDIR.   In DOS this can be done like this:
  595.      
  596.                     COPY xxx.DIR+xxx.DIR+xxx.DIR... MASTER.DIR
  597.      
  598.     where xxx is  the name of  the old style  directories. The 3  dots mean  to
  599.     continue until you have all of  the directories you wish to include in  the
  600.     FMS directory.
  601.     In addition to the "old style"  file directories described in section 11.1,
  602.     RBBS-PC supports two types of FMS "directories" -- multiple, single-subject
  603.     FMS  directories or  a single  multiple-subject master  FMS directory.   If
  604.     there are going to be  multiple, single-subject FMS directories, there must
  605.     also be a "directory of  directories" (i.e. a master directory)  whose name
  606.     is  specified in CONFIG parameter 211 and there  can not be more than 99 of
  607.     these single-subject FMS directories.  If there is going to be a single FMS
  608.     directory,  it's  name  is  specified  in CONFIG  parameter  214  and  it's
  609.     qualifier is specified in CONFIG parameter 209.
  610.  
  611.     An example of multiple FMS directories that assumes the following:
  612.     CONFIG parameter 220 is "C:\FMS",
  613.     CONFIG parameter 209 is "DIR",
  614.     CONFIG parameter 211 is "DIR", and the following files existed:
  615.  
  616.        C:\FMS\DIR.DIR
  617.        C:\FMS\ALPHA.DIR
  618.        C:\FMS\BEST.DIR
  619.  
  620.     The file ALPHA.DIR can  be a FMS directory with an alphabetical list of all
  621.     files and BEST.DIR can be a FMS directory with a date-ordered  (latest date
  622.     last) list of the "best" files.
  623.  
  624.     An FMS directory  can have  an optional  "header" line  that describes  the
  625.     structure of the  directory.  RBBS-PC searches FMS  directories from bottom
  626.     to top by default (i.e. the assumption is that they are sorted by date with
  627.     the newest entry at the bottom).  To make an FMS directory read from top to
  628.     bottom, the directory  must have  the optional "header"  line as the  first
  629.     line. For FMS to  read a FMS  directory from top to  bottom the first  four
  630.     characters in the first line must be "\FMS" and the line must contained the
  631.     three characters "TOP"  (i.e. the whole fixed-length line  would read "\FMS
  632.     TOP"). For FMS  directories not sorted by  date, the word "NOSORT"  must be
  633.     present in  the  first line  (i.e.  the whole  line  would read  "\FMS  TOP
  634.     NOSORT").  The file ALPHA.DIR  would have the first  line in the file  read
  635.     "\FMS TOP NOSORT".  The file BEST.DIR would have the first line in the file
  636.     read "\FMS  TOP" if all searches of the file  were to start with the oldest
  637.     (i.e. first) entry.   It is important to realize that  FMS directories must
  638.     have a fixed length in every line.
  639.     RBBS-PC CPC17.3                                                 Page 152
  640.  
  641.     The columns of all FMS directories are set up as:
  642.  
  643.     Column               Purpose
  644.  
  645.      1-13                Filename
  646.     14-22                File size
  647.     24-31                Date in MM-DD-YY format
  648.     34-                  Description + category code
  649.  
  650.     To add comments to  an FMS directory and not have them shown to the caller,
  651.     simply begin the comment line with a slash, "\".
  652.  
  653.     To  force  a line  to  be  displayed that  is  not associated  with  an FMS
  654.     directory entry, begin  the line with an  asterisk and, if it  is displayed
  655.     for only specific categories, the appropriate category restriction.
  656.  
  657.     To make an FMS entry visible only to callers with a specific security level
  658.     or higher, the first character of the file name must be an equal sign, "=".
  659.     For  this entry, the  file name is  in columns 2  through 13.   The minimum
  660.     security to  view this entry goes in  column 34 and is followed  by a blank
  661.     and then the  description and category code within  the columns appropriate
  662.     for them (based on CONFIG parameter 219).
  663.  
  664.  
  665.     CONFIG parameter 219 specifies the length of the "description" field (40 to
  666.     46).    The  column containing  the  "category" codes  can  be  variable as
  667.     follows: 
  668.      
  669.     Length            Columns for description      Category code column
  670.  
  671.      40                     34-73                        74-76
  672.      41                     34-74                        75-77
  673.      42                     34-75                        76-78
  674.      43                     34-76                        77-79
  675.      44                     34-77                        78-80
  676.      45                     34-78                        79-81
  677.      46                     34-79                        80-82
  678.  
  679.     However,  some  text editors  may  have a  problem  with lines  80  or more
  680.     columns.
  681.      
  682.     The fussiest areas for use with FMS  are the DATE and CATEGORY CODE fields.
  683.     These  two must  be absolutely  perfect for FMS  to function  properly. The
  684.     others  may be slightly more lenient. In  order to get the directory in the
  685.     correct format, insert and delete spaces before  and after the column.  The
  686.     file name should not have interior or leading blanks.
  687.      
  688.     You must also add a category  code to each listing. This is often  the most
  689.     difficult and time  consuming part of  setting up  FMS. A good  idea is  to
  690.     format the rest of the directory before you add the codes.
  691.      
  692.     CONFIG  has a utility,  parameter 187, that  will check  your FMS directory
  693.     structure for  you.  If  a caller uploads  with a "/"  for SYSOP, a  *** is
  694.     placed for the category code and only those with a SYSOP security level may
  695.     view the listing (see CONFIG parameter 125).
  696.     RBBS-PC CPC17.3                                                 Page 153
  697.  
  698.     11.5 Defining the FMS Category Codes
  699.     ------------------------------------
  700.     In order for  FMS to work  correctly, the category  codes must be  defined.
  701.     This is done in a  file specified in parameter 217 of CONFIG.  This file is
  702.     rather interesting in the  way it is set up and the possibilities it brings
  703.     up. The format of this file is, with each line being a separate entry:
  704.  
  705.     "<Category name>","<Category codes>","<Category description>"
  706.      
  707.     The category name is what the  caller types in L;xxxxxxxxxx.  The  category
  708.     codes are a list of  the character codes in the FMS directory  that we want
  709.     to be under  this category name.  Category  codes can be 1  to 3 characters
  710.     long, though  the simplest and  most foolproof method  is to make  them all
  711.     exactly 3  characters long.   The category description is  a short messages
  712.     that we want displayed when the category is searched for.
  713.      
  714.     If the category codes are less than 3 characters in length, blanks  must be
  715.     added to the  right to fill out  the length to  exactly 3 when putting  the
  716.     category codes on the end of file entry.
  717.  
  718.     A  listing can contain several  category codes. This  means that a category
  719.     name  of BASIC  could  have the  category  codes BSU,BSG,BSS  in  it.   The
  720.     category codes  may be  overlapped in several  different directories.   For
  721.     example, the BASIC directory  used as an example could also  have each code
  722.     included in  another directory.   UTILS could  contain DSU,PRU  (Dos utils,
  723.     Printer  utils). GAMES  could contain  CGG,BSG,TXG  (Color Graphics  Games,
  724.     Basic Games, Text games).  BASIC could contain BSG,BSS ( Basic Games, Basic
  725.     Source).  SOURCE could contain ACS,BSS (Assembly code source, Basic Source)
  726.     Such a setup would look like this:
  727.  
  728.         "BASICG","BSG","Basic Games"
  729.         "TEXTG","TXG","Text Games"
  730.         "COLORG","CGG","Color Graphics Games"
  731.         "PRINT","PRU","Printer Utilities"
  732.         "DOS","DSU","Dos Utilities"
  733.         "ASSEM","ACS","Assembler source code"
  734.         "BSOURCE","BSS","Basic Source Code"
  735.         "UTILS","DSU,PRU","Utilities for IBM"
  736.         "GAMES","CGG,BSG,TXG","Games for IBM"
  737.         "BASIC","BSG,BSS","BASIC programs"
  738.         "SOURCE","ACS,BSS","Source code for different languages"
  739.  
  740.     The directory might look like:
  741.  
  742.     FFIND.ARC      13463   05-24-87  DOS Util look all over disk for file   DSU
  743.     QUEST.ARC      17325   06-02-87  C/G Game D&D style                     CGG
  744.     RBBS-SRC.ARC  202562   06-05-87  Source code for RBBS-PC                BSS
  745.     QMODEMSC.ARC  106735   06-07-87  Source code for QMODEM SST             PSS
  746.     BALLOON.ARC     5634   06-08-87  BASIC Balloon game- GREAT              BSG
  747.     STARTREK.ARC   76434   06-10-87  A great game- TEXT                     TXG
  748.      
  749.     When someone lists out GAMES, they get QUEST, BALLOON, and STARTREK.
  750.      
  751.     You can also  have simply a  one to one  correspondence, rather than  cross
  752.     referencing by just having one category code for each category.
  753.  
  754.     A  utility that will help you  in setting up your  FMS directory is a SYSOP
  755.     RBBS-PC CPC17.3                                                 Page 154
  756.  
  757.     function built into  CONFIG.  Parameter 187 will test the structure of your
  758.     FMS directory and diagnose any problems.  Be sure to run this utility after
  759.     you have tried to set up FMS, or whenever you edit the FMS directory file.
  760.     RBBS-PC CPC17.3                                                 Page 155
  761.  
  762.     11.6 The "Library" Subsystem, CD-ROM, and FMS
  763.     ---------------------------------------------
  764.     The RBBS-PC "library" sub-system is highly flexible subsystem that utilizes
  765.     DOS 'disk subdirectories.   The "library" subsystem  is not limited to  any
  766.     particular medium.  Basically, it relies on three files:
  767.  
  768.     DIR.CDR    -  This is the Directory of Directories just like DIR.DIR is the
  769.     Directory of  Directories  for the  normal  download area.   This  file  is
  770.     located on the  drive and path  designated in CONFIG  parameter 302, has  a
  771.     file  name equal  to the extension  designated in  parameter 303 ,  and the
  772.     extension designated in parameter 303.
  773.  
  774.     MASTER.CDR -  This is an FMS style directory.  Highly recommended to have a
  775.     size of  46 to allow  for placing  the DISK/AREA  number in  the last  four
  776.     positions of  description.   This file  is located  on the  drive and  path
  777.     designated in  CONFIG parameter  302.   The following  is an  example of  a
  778.     master directory file,  C:MASTER.CDR, that might be used  for the "library"
  779.     subsystem.
  780.  
  781.          DEMO.DTA         9841  01-01-80 PRACTICE FORM                 680126
  782.          READ.ME           256  01-01-80 INTRODUCTORY TEXT FILE        673102
  783.          READ.ME           109  01-01-80 INTRODUCTORY TEXT FILE        671102
  784.           DK0680   ARC          10-23-87 FORGE VERSION 2.0                200
  785.           DK0673   ARC          10-23-87 FREEWAY ...(Disk 3 of 3)         200
  786.           DK0671   ARC          10-23-87 FREEWAY ... (Disk 1 of 3)        200
  787.          |            |         |        |                            |   |
  788.          +- 1->13     |         |        |                            |   |
  789.          File Name    +- 14->22 |        |                            |   |
  790.                       File Size |        |                            |   |
  791.                                 +- 24->31|                            |   |
  792.                                 File Date|                            |   |
  793.                                          +- 33->76                    |   |
  794.                                          File Description             |   |
  795.                                                               77->79 -+   |
  796.                                                                  DOS      |
  797.                                                                Directory  |
  798.                                                                 Number    |
  799.                                                                           |
  800.                                                                   80->82 -+
  801.                                                                   Category
  802.                                                                     Code
  803.  
  804.         The last four characters of the 46-character file description field are
  805.     used to indicate the  "library" pseudo-disk that the  file is in.  In  this
  806.     way, when a caller lists files, it is self-evident in the description which
  807.     DOS subdirectory the  caller must change to within  the "library" subsystem
  808.     in order to download the file.
  809.     RBBS-PC CPC17.3                                                 Page 156
  810.  
  811.     RBBS-CDR.DEF   -  This is  the key file to  the successful operation of the
  812.     LIBRARY section.  It consists of three fields on each line.
  813.  
  814.                      "AAAA","BBBBBBBBBBBBBBBBBBBBBB","CCCCCCCCCCCCCCCCCC"cr/lf
  815.  
  816.                      A - A  four  position field numbered from  0001  to  9999.
  817.                          This  is the DISK/AREA number assigned to  a  specific
  818.                          group of files.
  819.  
  820.                      B - This field has no size limit and is a full path to the
  821.                          area excluding the drive: designation. As an example:
  822.  
  823.                                \1_100\DISK0001
  824.                                \GAMES\ADVENTUR\DISK1
  825.                                \A_F\ALPHABET\DISK01\AREA36
  826.  
  827.                      C - This  field has no length limit but should be kept  at
  828.                          around  56  characters to keep from line wrap  on  the
  829.                          display.    It  should  contain  the  TITLE   of   the
  830.                          disk/area.
  831.  
  832.     A file containing  a description of the library  subsystem's category codes
  833.     must  have the name  RBBS-CDR.DEF, be in  the same DOS  subdirectory as the
  834.     other RBBS-PC ".DEF" files, and look similar:
  835.  
  836.                 "0671","\601-700\DISK671","FREEWAY  Payroll system  (Disk 1  of
  837.     3)"
  838.                 "0673","\601-700\DISK673","FREEWAY  Payroll system  (Disk 3  of
  839.     3)"
  840.                 "0680","\601-700\DISK680","FORGE VERSION 2.0"
  841.  
  842.     The "library" subsystem can be supported without using the FMS.  To do this
  843.     each "directory" would have ".CDR" as it's extension (i.e. GAMES.CDR) -- or
  844.     whatever extension was designated in CONFIG parameter 303.
  845.  
  846.     Typically, the "library" subsystem  is used with FMS.  When  using FMS with
  847.     the "library" subsystem it  is necessary to  add categories to the  DIR.CAT
  848.     file.  One  approach that works well  is utilizing categories 1-99  for the
  849.     normal  (i.e. non-library  area) downloads and  categories 100-200  for the
  850.     "library" downloads.
  851.  
  852.     The basic  assumption of RBBS-PC's  "library" sub-system is that  files are
  853.     stored  in DOS  subdirectories on  the DOS disk  drive specified  in CONFIG
  854.     parameter 301.
  855.     RBBS-PC CPC17.3                                                 Page 157
  856.  
  857.     11.6.1 How the "Library" Subsystem Works
  858.     ----------------------------------------
  859.     Before it is  possible to download  from the LIBRARY  area it is  mandatory
  860.     that the caller  C)hange to the desired library disk.  This is accomplished
  861.     by using the  C)hange command from the  library menu.  RBBS-PC  will accept
  862.     any 1 to  4 digit number  (padding the front with  zeros to make it  a four
  863.     digit number).   RBBS-PC will  then search the RBBS-CDR.DEF  file (position
  864.     AAAA only) for an exact match.  If no match is found then RBBS-PC indicates
  865.     that no Library disk  has been selected.  If a match  is found then RBBS-PC
  866.     will issue a CHDIR command to  the drive specified in CONFIG parameter  301
  867.     and the path BBBBBBBB that it constructs from the RBBS-CDR.DEF file.  RBBS-
  868.     PC then  informs the caller that  Disk AAAA CCCCCCCCCCCC has  been selected
  869.     (i.e. "Disk 0680 FORGE VERSION 2.0").
  870.  
  871.     The caller can download individual files from the area selected or A)rchive
  872.     all the files in the selected area.  If the caller decides to A)rchive  all
  873.     the files  in the selected area, RBBS-PC will  SHELL to the Archive program
  874.     designated  in CONFIG  parameter  313 and  located in  the  drive and  path
  875.     designated  by parameter 312.   RBBS-PC creates  an archived  file with the
  876.     name  DKAAAA.ZZZ, where AAAA is the disk/area number on the drive and  path
  877.     indicated  by CONFIG parameter 304, and ZZZ is the extension, which depends
  878.     on what archiving program is used.
  879.  
  880.     RBBS-PC will then check  to see if there are any  subdirectories within the
  881.     selected  area.    If  any  exist  then  RBBS-PC  will  again  Archive  the
  882.     subdirectories and  will create ZZZ  files with the name  DKAAAAa.ZZZ where
  883.     AAAA is the disk/area number.  The  designator, "a", is an arbitrary id  to
  884.     differentiate it  from the original ZZZ  name.  If there are  more than one
  885.     subdirectories then the "a" would be replaced by "b", "c", "d", etc.
  886.  
  887.     When this is complete the caller is told what files are ready for download.
  888.     E.g.
  889.  
  890.          DKAAAA.ZIP is ready for download.
  891.          DKAAAAa.ZIP is ready for download.
  892.          DKAAAAb.ZIP is read for download.
  893.  
  894.     As each file is downloaded successfully it is removed from the list and  is
  895.     no longer displayed to the user as ready for download.
  896.     RBBS-PC CPC17.3                                                 Page 158
  897.  
  898.     11.6.2 The "Library" Subsystem and PC-SIG's CD-ROM
  899.     --------------------------------------------------
  900.     The CD-ROM published by PC-SIG consists of a DOS subdirectory for each 360K
  901.     diskette in the  PC-SIG library. Sometimes the disk  contains all the files
  902.     already  in the ARC format other times  they just contain a group of files.
  903.     The  key here is  the A)rchive  function.   The resulting  file to  be made
  904.     available for download  will NEVER be greater than 360k.  This is important
  905.     since a caller may only have a floppy based system  and could not capture a
  906.     file any larger than a 360k floppy can contain.
  907.  
  908.     The  PC-SIG's CD-ROM  creates the  problem of  listing both  the individual
  909.     files contained on  each diskette as well  as a summary description  of the
  910.     individual disks.  This can  be solved by listing each of the 18,000+ files
  911.     in the MASTER.CDR using positions  43-76 for the description, positions 77-
  912.     79 for the  disk drive, and  positions 80-82 for  the valid categories  for
  913.     downloading.  These are contained in the file specified by CONFIG parameter
  914.     217.
  915.  
  916.     MASTER.CDR might also contain a  list of names of  the files that would  be
  917.     created by  the  A)rchive function.    This allows  the  caller to  scan  a
  918.     category (i.e. category 200) for disk titles  only.  Note that the files do
  919.     not exist  until the user uses the  A)rchive function. A SYSOP  who did not
  920.     wish to allow individual file downloads might only include these entries in
  921.     the MASTER.CDR rather than the other 18,000 entries.
  922.  
  923.     The directory for the PC-SIG CD-ROM is over 1.5 megabytes in length and can
  924.     take up to 10 minutes to search completely (when using a PC at 4.77mhz).
  925.  
  926.     If the SYSOP is using FMS, it is recommended that the category file for the
  927.     normal FMS directory and the category file for the Library FMS directory be
  928.     the same (PC-SIG has 27 different categories for its files).
  929.     RBBS-PC CPC17.3                                                 Page 159
  930.  
  931.     11.7 Creating the Personal Files Directory
  932.     ------------------------------------------
  933.     RBBS-PC's "personal"  file support  is  analogous to  RBBS-PC's support  of
  934.     "personal"  messages in  that  these  files are  specially  addressed to  a
  935.     specific  caller or  group of  callers based  on  security.   Personal file
  936.     downloads differ from the general download in three major ways:
  937.  
  938.     1.   the time limit check is bypassed in personal downloads, meaning that a
  939.          qualifying caller can download a file regardless of time left.
  940.  
  941.     2.   only  files  explicitly  listed  in  the  personal  directory  can  be
  942.          downloaded.  Normally files to be downloaded will be looked for on the
  943.          disk(s)  where files  are available  for downloading whether  they are
  944.          listed in a directory or not.
  945.  
  946.     3.   only  callers with  matching  user record  or sufficient  security can
  947.          download a file.   Normally any caller with  security enough to  issue
  948.          the download command can download a file.
  949.        
  950.     Personal  files  provide a  way  that files  can  be delivered  to specific
  951.     individuals.   As  an  example, a  vendor's  support bulletin  board  for a
  952.     software  product might  make  the  upgrade  downloadable  only  by  paying
  953.     customers.    A  credit  reporting  corporation  can  make  credit  reports
  954.     electronically available only  to the people who  order them.  Or,  a SYSOP
  955.     can make a file privately available to only one caller.
  956.  
  957.     One  of the  most useful  applications for  personal  downloads is  to make
  958.     certain files available  regardless of time remaining.   Previously, SYSOPs
  959.     had to  increase the security of  callers or set artificially  high session
  960.     limits just to make  certain large files available.  By  putting these file
  961.     names in the personal directory and limited by security level,  these files
  962.     can be made available regardless of how little time  is left.  For example,
  963.     the large files  comprising RBBS-PC can be made downloadable to all callers
  964.     even though they are limited to 30 minutes.
  965.  
  966.     Access to personal files can be limited in two ways.   First, the files can
  967.     be downloaded  only by callers  which have a  matching value in  their user
  968.     record.   For example, files can be limited  by name (any field in the user
  969.     record can be selected).   Alternatively files can  be limited by  security
  970.     level, meaning  that  a file  can be  downloaded by  any  person with  that
  971.     security level  or higher.  File access based on security level can also be
  972.     accomplished using the standard RBBS-PC  file security mechanism, but to do
  973.     so places  the caller's under  the standard RBBS-PC constraints  of maximum
  974.     time per session/day.
  975.  
  976.     Using the "P)ersonal files" command in the files section, a caller is asked
  977.     what files the caller  wants to download.  The only  files available to the
  978.     caller  for downloading  are those  explicitly listed  as belonging  to the
  979.     caller, unlike the general download  command which will look for  any named
  980.     file on the disk.  The caller can ask to List the files available.  Callers
  981.     will see only those belonging to them.
  982.  
  983.     There  is  a  special option  to  download  all and  only  the  "new" files
  984.     specifically addressed to the user by matching a field in the caller's user
  985.     record.  RBBS-PC  keeps track of whether the caller has ever downloaded the
  986.     personal file.  When listing, new personal files are marked with an  "*" in
  987.     front of their names (they are "tagged").  Selecting the new files starts a
  988.     RBBS-PC CPC17.3                                                 Page 160
  989.  
  990.     multi-file download  for all  and only  the personal  files the  caller has
  991.     never successfully downloaded.
  992.  
  993.     Files  you want  downloaded  ONLY  through the  personal  file features  of
  994.     RBBS-PC should  be put  in their  own subdirectory as  specified in  CONFIG
  995.     parameter 142.   If you put the  personal files in a  download subdirectory
  996.     they would be available  then to anyone who could name them.   RBBS-PC will
  997.     search the  download areas for  a personal file if  it is not  found in the
  998.     subdirectory specified in parameter 142.
  999.  
  1000.     Second,  in the  same place  as  the personal  files themselves,  put  in a
  1001.     special  personal directory  with name specified  in CONFIG  parameter 143.
  1002.     This directory is  the same format as the general file directories of RBBS-
  1003.     PC.  The format is as follows:
  1004.  
  1005.      Default   Field
  1006.     Positions  Length    Description of Field
  1007.  
  1008.      1 - 12      12          The first 12 characters of  an entry have the file
  1009.                              name, with no internal spaces.
  1010.  
  1011.     13 - 73  Variable   The next group of characters can have anything in them.
  1012.                         This will  be displayed  to the caller  who asks  for a
  1013.                         listing,  along  with the  file  name in  the  first 12
  1014.                         columns.   The length of  this group  is 21  characters
  1015.                         plus  the length of the upload description specified in
  1016.                         CONFIG (40-46, defaults  to 40).  The default length of
  1017.                         this field is 61 characters.
  1018.  
  1019.     74 -104  Variable   The  next group  of  characters  are  what is  used  to
  1020.                         identify the file as "belonging" to the caller and must
  1021.                         match a field in the  user record.  In CONFIG parameter
  1022.                         43 and parameter  44, the SYSOP specifies  the position
  1023.                         in the user record to use and how many characters.  The
  1024.                         default is to  begin in column 1 and  use 31 characters
  1025.                         for the caller's name, but any field in the user record
  1026.                         can be used.  Optionally, a security can  be entered in
  1027.                         this last field to limit the file based on the security
  1028.                         level of  the caller.   To use  security rather  than a
  1029.                         match on  the user  record, simply put  a blank  as the
  1030.                         first  character in the field, followed by the security
  1031.                         level.
  1032.  
  1033.     1051  The last character must be an  "*" to signify that the file has never
  1034.     been downloaded or an exclamation point if ever downloaded.
  1035.  
  1036.     This personal  directory works  very much like  the File  Management System
  1037.     shared directory, using  a field  in the  user record as  the category  and
  1038.     limiting callers to their one category,  or limiting the file to the  group
  1039.     of caller's with the  minimum required security.  The personal directory is
  1040.     fixed length and read in reverse from bottom to top.
  1041.  
  1042.     After setting up  or modifying the  personal directory, you use  the CONFIG
  1043.     utility  parameter 187  to check  whether  the personal  directory has  the
  1044.     proper format.
  1045.  
  1046.     The personal directory can  be created by a text editor (i.e. EDLIN) but be
  1047.     RBBS-PC CPC17.3                                                 Page 161
  1048.  
  1049.     sure to put in the "*" in the last column when creating a new entry so that
  1050.     the file  will be tagged  as new.   Also be sure  to make each  entry fixed
  1051.     length.  If the  user's identity does not fill  out the length of the  last
  1052.     field, be sure to pad the record with blanks out to the full length.
  1053.  
  1054.     When setting  up a  personal file directory  there are  seven configuration
  1055.     options peculiar to personal files:
  1056.  
  1057.     CONFIG           Description
  1058.     parameter 43      what part of the user record used to identify files as
  1059.     parameter 44      belonging to the user (beginning column and length),
  1060.     parameter 143     the name of the personal directory,
  1061.     parameter 142     the drive and path where the personal files and personal
  1062.                       directory are stored, 
  1063.     parameter 144     the protocol that must be used downloading,
  1064.     parameter 147     whether the files downloaded are to be concatenated, and
  1065.     parameter 188     the CONFIG utility to check the structure of the personal
  1066.                       directory to make sure it is in the properly format.
  1067.  
  1068.     Parameter 147 and parameter 187 require some explanation of how  they might
  1069.     be  used.   Limiting  the caller  to  a  required protocol  to  use is  not
  1070.     something one would generally do.  But, for special purpose downloads, like
  1071.     downloading to  a printer, one  might want  to require ASCII,  for example.
  1072.     Or, if all  callers are to  use the same communications  package or only  a
  1073.     particular protocol is efficient, you can specify what callers must use.
  1074.  
  1075.     Concatenating files  means  that  when multiple  files  are  specified  for
  1076.     downloading,  the files are sent continuously in  one stream of data rather
  1077.     than individually as  separate files.  In effect, the  files are physically
  1078.     combined at  the  time of  downloading.   All  messages between  files  are
  1079.     suppressed -  the only messages  that appear to  the caller are  those that
  1080.     normally occur  when the first file transfer starts  and when the last file
  1081.     transfer  ends.    Concatenation  is  currently supported  only  for  ASCII
  1082.     downloads.
  1083.       
  1084.     An example  of a  situation that  might use  this feature of  RBBS-PC is  a
  1085.     business that generates  short reports for clients.   Their clients want to
  1086.     call in remotely to get time-critical reports and print them right in their
  1087.     office on pre-formatted paper.   Each report is a separate  file on RBBS-PC
  1088.     with all the necessary printer commands already included in each file.
  1089.  
  1090.     A SYSOP might  set up RBBS-PC such  that the main menu  was restructured to
  1091.     make the P)ersonal  files function be P)rint  reports to reflect the   more
  1092.     specialized nature  of the  board.  Callers  to this  board would  call in,
  1093.     identify themselves, and select P)rint reports from the main menu.  Callers
  1094.     could use  L)ist to  see what  is available if  they are  looking for  some
  1095.     report in particular;  just select all new reports; or ask for a particular
  1096.     report if they must have it immediately.
  1097.  
  1098.     In the last two cases, RBBS-PC would notify the caller to set up to receive
  1099.     and  press [ENTER]  when ready.   The  pre-formatted reports  with embedded
  1100.     printer control  sequences  would  stream  out onto  the  paper  (including
  1101.     formatting like bold  or underline) positioning  the text to fit  in boxes.
  1102.     The  paper is automatically advanced  as needed.   When done, RBBS-PC beeps
  1103.     the  user, who  then turns the  "save to  printer" feature off  of whatever
  1104.     communications package is being used.
  1105.     RBBS-PC CPC17.3                                                 Page 162
  1106.  
  1107.     To set up  this application, the personal file options  would be configured
  1108.     to use  the caller's  id (e.g. account  number).   The files  and directory
  1109.     would be put in a special subdirectory  not shared with anything else.  The
  1110.     CONFIG parameters  would be  set to specify  that caller's  must use  ASCII
  1111.     ("A") as their protocol and that multi-file downloads will be concatenated.
  1112.  
  1113.     Another example is that of an  electronic job placement service that wanted
  1114.     to limit  non-subscribers to a security level 5  with 10 minutes.  However,
  1115.     they also want  non-subscribes to be able  to download a file  of potential
  1116.     employment opportunities that may take more than 10 minutes.  The following
  1117.     entries would be put into PRIV.DIR:
  1118.  
  1119.     JOBSFORU.ARC   282888  07-14-87  List of job opportunities you might want 5
  1120.               /|\                                                           /|\
  1121.               12                                                            74
  1122.      
  1123.     Each record is  padded with blanks so  that 29 blank characters  follow the
  1124.     security  level,  followed by  an  '*'.     The '*'  is not  shown  in this
  1125.     documentation since it is in a column too far to the right.
  1126.     RBBS-PC CPC17.3                                                 Page 163
  1127.  
  1128.     11.8  Automatically Checking & Converting Uploaded Files
  1129.     --------------------------------------------------------
  1130.  
  1131.     Verifying the Integrity of a File
  1132.     ---------------------------------
  1133.     RBBS-PC's  on-going  commitment to  providing  SysOps with  the  ability to
  1134.     protect themselves and their callers is reflected in precisely this kind of
  1135.     feature.   When a  file is uploaded,  RBBS-PC will look  for a  file called
  1136.     T<ext>.BAT (where <ext> is the characters that make up the extension of the
  1137.     uploaded  file).    RBBS-PC looks  for  this  file on  the  drive  and path
  1138.     specified in CONFIG parameter 105.  If this file exits, RBBS-PC  will SHELL
  1139.     to either:
  1140.  
  1141.          a.)  the program specified in the file (if it only has one line) or
  1142.          b.)  to the .BAT file itself.
  1143.  
  1144.     In this way a SYSOP may install whatever processing is desired after a file
  1145.     has been uploaded.  
  1146.  
  1147.     If the BAT file contains exactly 1 line, RBBS-PC will shell to the contents
  1148.     of the bat file, passing on the command line the two parameters:
  1149.  
  1150.          a.)  the name of the file upload (first) and
  1151.          b.)  the name of the file to write the results to (second)
  1152.  
  1153.     If the BAT file contains more than one line, RBBS-PC will SHELL  to the BAT
  1154.     file itself,  passing 
  1155.  
  1156.          a.)  the name of the file upload for "[1]" and
  1157.          b.)  the name of the file to write the results to for "[2]"
  1158.  
  1159.     as the first and second parameters, respectively.
  1160.  
  1161.     RBBS-PC will  consider the upload  to have  failed and delete  the uploaded
  1162.     file, if  the file  to which  the results are  to be  written has  a length
  1163.     greater than 2 bytes.  The BAT file should either 
  1164.  
  1165.          a.) not write a result file or
  1166.          b.) leave an empty one if the upload is okay.
  1167.  
  1168.     If the file that was uploaded is not okay, the external  application should
  1169.     write out some error message more than 2 bytes long.
  1170.  
  1171.     A typical use for this feature of RBBS-PC is to test the compression of the
  1172.     uploaded  file and pipe  the results  to a text  scanner that looks  for an
  1173.     error string and redirects the output to a file if an error is found.   For
  1174.     example if  files that  are uploaded  with the  extension .ZIP  were to  be
  1175.     tested, a SYSOP might create the file TZIP.BAT
  1176.  
  1177.              PKUNZIP -T [1] | FGREP "error in a" > [2]
  1178.  
  1179.     An alternative implementation is:
  1180.  
  1181.              PKUNZIP -T %1
  1182.              IF ERRORLEVEL 1 ECHO BAD UPLOAD > %2
  1183.              SETERROR 0
  1184.     RBBS-PC CPC17.3                                                 Page 164
  1185.  
  1186.     Under versions  of QuickBASIC prior to  4.5, programs that reset  the error
  1187.     level cause illegal function call 5 upon return from the SHELL.   Therefore
  1188.     it is necessary to run a utility to reset the error level  back to 0 before
  1189.     going back to RBBS-PC.  This is what the SETERROR.EXE file does.
  1190.  
  1191.     The recommended  procedure is to  use PKUNZIP, check errorlevel,  and reset
  1192.     error level  to 0.  PKUNZIP  outs somewhat variable strings  when different
  1193.     errors occur, making a filter based on text more difficult to implement.
  1194.  
  1195.     Converting Uploads
  1196.     ------------------ 
  1197.     RBBS-PC can be configured by the SYSOP  to cause uploads with extension <u-
  1198.     ext> to be  converted to the default  extension <d-ext>.   To do this,  the
  1199.     SYSOP  must put  a  file named  C<u-ext><d-ext>.BAT on  the drive  and path
  1200.     specified in  CONFIG parameter 105.  If the file exists, RBBS will SHELL to
  1201.     it.
  1202.  
  1203.     If the SysOp wants all .ARC files uploaded converted to a .ZIP file, create
  1204.     a file CARCZIP.BAT  in the subdirectory specified in  CONFIG parameter 105.
  1205.     To  convert  .PAK files  to  .ZIP, create  the  file  CPAKZIP.BAT.   Sample
  1206.     conversion batch files are included on the RBBS-PC distribution diskettes.
  1207.     RBBS-PC CPC17.3                                                 Page 165
  1208.  
  1209.     11.9 Fast File Search
  1210.     --------------------- 
  1211.     RBBS  17.3  includes an  enhanced  file-search capability  for  uploads and
  1212.     downloads.  This enhancement has two advantages:
  1213.      
  1214.     (a)  File searches are much faster.  In the case of very slow devices like 
  1215.          a CD-ROM, this can be the  difference between sub-second response and 
  1216.          a 45 second response.   File searches are now virtually instantaneous.
  1217.      
  1218.     (b)  Files not stored on this system can trigger macros.   This allows     
  1219.          requests for files stored elsewhere, either off line on backups, or on
  1220.          other cooperating systems, to trigger later processing.
  1221.  
  1222.     The basis for the fast file search is a file, configuration  parameter 267,
  1223.     which  is  a sorted  list of  file  names available  for downloading.   The
  1224.     default name is FIDX.DEF. 
  1225.  
  1226.     The format of this file is: 
  1227.  
  1228.     columns 1-12:  file name 
  1229.     columns 13-16: location index (1, 2, 3, ...) 
  1230.     columns 17-18: carriage return line feed. 
  1231.      
  1232.     All  data is stored as character data and  the file is editable.   The file
  1233.     names must be  stored with no internal  spaces and a period  separating the
  1234.     prefix from the extension.   The list  of file names MUST BE SORTED BY FILE
  1235.     NAME in order for the fast file search to work. 
  1236.      
  1237.     The location index is the record number (line number) of the  locator file,
  1238.     whose default name is LIDX.DEF, and has the following layout: 
  1239.      
  1240.     columns 1-63:  location of file 
  1241.     column  64:    any character.  MAKEFIDX puts in a period. 
  1242.     columns 65-66: carriage return line feed. 
  1243.      
  1244.     This  file  is all  character  data and  is  editable.     Essentially, the
  1245.     location index points to a record in the location file.   E.g. if  FIDX.DEF
  1246.     has 
  1247.      
  1248.     RBBS-BAS.ZIP   2 
  1249.     HARPIE.ARC     3 
  1250.      
  1251.     and LIDX.DEF has 
  1252.      
  1253.     C:\DOWN1\ 
  1254.     C:\DOWN2\ 
  1255.     C:\UP\ 
  1256.      
  1257.     Then  RBBS-BAS.ZIP is  located  in  directory  C:\DOWN2  (2nd  record)  and
  1258.     HARPIE.ARC is located in C:\UP (3rd record). 
  1259.  
  1260.     The location  field should be  a drive/path terminating  with a "\"  if any
  1261.     path is given, and file must be filled with blanks through column 63 if the
  1262.     path is  shorter.  You must  put some character in column  64. Many editors
  1263.     delete trailing  blanks, so  you should  probably put  in a  non-blank.   A
  1264.     period is a suitable choice. 
  1265.      
  1266.     RBBS-PC CPC17.3                                                 Page 166
  1267.  
  1268.     RBBS will use a binary search on the first 12  characters in FIDX.DEF. This
  1269.     binary  search can  be significantly  speeded by  provided "tabs"  for this
  1270.     file, indicating the record at which the first file is that begins with the
  1271.     symbols "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".    This is like  the "tabs"
  1272.     you see on dictionaries, so you can directly turn to the B's, for example. 
  1273.     A tab file has the same prefix as the file name file, except that it adds a
  1274.     "T".   For  "FIDX.DEF", the  tab file  would  be "FIDXT.DEF".     RBBS will
  1275.     automatically detect  and use a  tab file if  available.    The tab  has 72
  1276.     characters in it.   Each 2 bytes represents a binary integer whose value is
  1277.     the record number  in FIDX.DEF where the first file occurs that begins with
  1278.     the respective  symbols above.  Thus bytes 3-4  show where files begin with
  1279.     "1" and bytes 69-70 where files begin with "Y". 
  1280.      
  1281.     Two utilities with  source code are provided  for setting up the  fast file
  1282.     searches.   The source, for compiling under QB 4.5, is included. 
  1283.      
  1284.     MAKEFIDX will create both  the file name list  (FIDX.DEF) and the  location
  1285.     file (LIDX.DEF), from a list of directories (see MAKEFIDX.CFG) or a list of
  1286.     file names, or both. 
  1287.      
  1288.     You must  next sort FIDX.DEF  by file name.   A good shareware  utility for
  1289.     this is QSORT (QSORT FIDX.DEF /1:12). 
  1290.      
  1291.     MAKETABS  will  create a  tab file  (FIDXT.DEF) from  the sorted  file list
  1292.     FIDX.DEF.
  1293.      
  1294.     A sample batch  file for recreating a  fast file system is  MAKEFFS.BAT. It
  1295.     uses  MAKEFIDX.EXE,   QSORT.EXE,  MAKETABS.EXE,   and  configuration   file
  1296.     MAKEFIDX.KG.     You need  only edit  MAKEFIDX.KG to  change the  filespecs
  1297.     (/FileSpec=) to match  where your files are,  and where to write  the index
  1298.     files. 
  1299.  
  1300.     Reconfiguring to Take Maximal Advantage of Fast File Searches 
  1301.      
  1302.     The fast file search is virtually instantaneous on an 8088 with  a tab file
  1303.     for 5000 file entries.    The savings on wear and tear on the hard disk can
  1304.     be very significant  as well.    And the time it  takes to set up  the fast
  1305.     file search is only  a few minutes.  Most  sysops, therefore, will want  to
  1306.     implement fast file searching, whether or not  they have a slow device like
  1307.     a CD-ROM. 
  1308.      
  1309.     RBBS will first  search through the  drive/paths specified in config  to be
  1310.     available for  downloading, as it always did.    Files not found there will
  1311.     then  be searched using the fast file  search system. The way the fast file
  1312.     search works is  that a file  found in its list  is looked for only  in the
  1313.     designated location.  Nothing else is searched. 
  1314.      
  1315.     The optimal  way to  implement fast file  searching is  to reconfigure  the
  1316.     drive/paths available for downloading down to at most the upload directory,
  1317.     and let the fast file search handle everything else.   That way, files will
  1318.     be searched  first in the  upload area, and  those not found  at first will
  1319.     then be searched using the fast file search system. Note that every file in
  1320.     the fast file  search list is  considered to be  available for  downloading
  1321.     whether or not its  drive/path is listed in the configuration  program as a
  1322.     downloadable  area.   Note that  you  can have  separate  fast file  search
  1323.     systems  available for each  subboard, if desired.    You  can also use the
  1324.     fast file search for common files and have a separate download area for the
  1325.     RBBS-PC CPC17.3                                                 Page 167
  1326.  
  1327.     subboards. 
  1328.      
  1329.     Note:  whenever you relocate files, you must re-create the fast file search
  1330.     system.   This is not hard since it takes little time and can be automated.
  1331.     RBBS-PC CPC17.3                                                 Page 168
  1332.  
  1333.     12.  SETTING UP ".BAT" FILES FOR RBBS-PC
  1334.     ----------------------------------------
  1335.     Many SYSOPs have set up batch files to invoke RBBS-PC automatically and  to
  1336.     re-invoke  RBBS-PC should there be a power outage.  These files range  from
  1337.     the simple to the sublime in terms of complexity.  If you are going to exit
  1338.     RBBS-PC and transfer control to DOS remotely (either via the SYSOP function
  1339.     7 or  via "doors"), it is necessary that:
  1340.  
  1341.          1.  RBBS-PC be executed from a batch file.
  1342.          2.    The  batch file  which  is  executing  RBBS-PC contain  an  "IF"
  1343.     statement that  checks for  the existence of  the batch file  which RBBS-PC
  1344.     dynamically builds when either "doors" or SYSOP function 7 is invoked.
  1345.          3.  Within  the "IF" statement, the  logic exists such that  the batch
  1346.     file  dynamically built  by  RBBS-PC  for the  "doors"  functions or  SYSOP
  1347.     function 7 will be invoked if it exists.
  1348.  
  1349.     As a very simple example, let us assume that:
  1350.  
  1351.          1.  the  batch file that invokes RBBS-PC is named A:RBBS.BAT, and that
  1352.     is what was entered for parameter 104 of CONFIG,
  1353.          2.  the name of the batch file that RBBS-PC will build dynamically for
  1354.     either "doors"  or SYSOP function  7 is A:RCTTY.BAT,  and that is  what was
  1355.     entered for parameter 103 and
  1356.          3.  the  compiled version of  RBBS-PC is being  executed and is  named
  1357.     RBBS-PC.EXE and is on the default disk drive.
  1358.          4.  you have elected to use the watchdog utility program.
  1359.          5.    COM1 was  designated as  the  communication port  to be  used by
  1360.     RBBS-PC.
  1361.          6.  the CALLERS file is on drive A.
  1362.  
  1363.     Then   A:RBBS.BAT  (in  a  non-MultiLink  environment)  would  contain  the
  1364.     following:
  1365.  
  1366.          IF EXIST A:RBBSxF1.DEF DEL A:RBBSxF1.DEF
  1367.          IF EXIST A:RCTTY.BAT DEL A:RCTTY.BAT
  1368.          RBBS-PC x  filename    (see  note of  values  available  for  "x"  and
  1369.     "filename")
  1370.          IF EXIST A:RBBSxF1.DEF GOTO EXIT
  1371.          IF EXIST A:RCTTY.BAT A:RCTTY.BAT
  1372.          A:RBBS.BAT
  1373.          :EXIT
  1374.  
  1375.     NOTE:   When  running RBBS-PC.EXE, RBBS-PC  will check  for the "x"  in the
  1376.     command  line  that  invoked RBBS-PC.    The  "x" on  the  execute  line is
  1377.     extremely  important to  the  correct operation  of RBBS-PC.    If you  are
  1378.     running in a local area network environment then the "x" should be a number
  1379.     between "1" and "0" or a letter between "A" and "Z". If "x" is omitted from
  1380.     the command line, RBBS-PC will look for  a file named RBBS- PC.DEF. RBBS-PC
  1381.     uses   the parameter   in the   command  line  to   determine   the correct
  1382.     RBBSxPC.DEF  file to  use for  its configuration  parameters if  the second
  1383.     parameter is not present.  If the second parameter is present, then RBBS-PC
  1384.     assumes this  is the fully qualified file name  for the .DEF file that this
  1385.     node should use.
  1386.     RBBS-PC CPC17.3                                                 Page 169
  1387.  
  1388.     13. THE USE OF RBBS-PC "DOORS"
  1389.     ------------------------------
  1390.     The  RBBS-PC "door" concept is that of allowing  a SYSOP to set up a "door"
  1391.     through which users can exit from RBBS-PC and enter other applications.  In
  1392.     previous versions  of RBBS-PC (i.e. prior to CPC12-3A) this had been called
  1393.     "windows"  but because  of the  confusion this  created with  the WINDOWing
  1394.     concepts of other software, it has been re-labeled "doors".
  1395.  
  1396.     13.1 "DOORS" Are Nothing More Than .BAT Files
  1397.     ---------------------------------------------
  1398.     RBBS-PC's  "doors"   are nothing more than .BAT files that the   SYSOP  has
  1399.     created   to  allow   users  to   exit  from   RBBS-PC  and   enter   other
  1400.     applications (i.e. databases, etc.).   The SYSOP is responsible for writing
  1401.     the  .BAT  files that users will be allowed to invoke.  Assuming that RBBS-
  1402.     PC is brought up by DOS via an AUTOEXEC file  that invokes RBBS.BAT, a door
  1403.     called EDIT exists that consists  of a .BAT file (EDIT.BAT)  which contains
  1404.     the commands  CTTY, EDLIN, and RBBS.BAT.  In  order to exit RBBS-PC (either
  1405.     for a "door" or for the remote SYSOP  function 7) without the code that the
  1406.     BASIC compiler generates for you dropping the remote  user, it is necessary
  1407.     for the  compiler that RBBS-PC is compiled  under be "patched" as described
  1408.     in Appendix  T otherwise the  user will be  disconnected upon returning  to
  1409.     RBBS-PC.  Here is pictorially what happens:
  1410.                             DOS
  1411.                              | 
  1412.                           RBBS.BAT <---------------------------------+
  1413.                              |                                       |
  1414.                             \|/                                      | 
  1415.                              +--------->RBBS-PC.EXE                  |
  1416.                                             |                        |
  1417.                                            \|/                       |
  1418.                                           "RUN"                      |
  1419.                                             |                        |
  1420.                              +<-------------ends                     |
  1421.                              |                                       |
  1422.                            RBBS.BAT                                  |
  1423.                              |                                       |
  1424.                             \|/                                      |
  1425.                         RCTTY.BAT (invokes door called "EDIT")       |
  1426.                              |                                       |
  1427.                             \|/                                      |
  1428.                          EDIT.BAT                                    |
  1429.                              |                                       | 
  1430.                              +--------->EDLIN.COM                    |
  1431.                                             |                        |
  1432.                          EDIT.BAT <--------ends                      |
  1433.                              |                                       |
  1434.                             \|/                                      |
  1435.                          RBBS.BAT                                    |
  1436.                              |                                       |
  1437.                             \|/                                      |
  1438.                              +--------->RBBS-PC.EXE                  |
  1439.                                             |                        |
  1440.                                        welcome back from door        |
  1441.                                and RBBS-PC continues-------->|
  1442.     RBBS-PC CPC17.3                                                 Page 170
  1443.  
  1444.     13.2 A Sample .BAT File for a "DOOR"
  1445.     ------------------------------------
  1446.     A sample .BAT file for a program called TEST.EXE that assumes:
  1447.     1.  That you are going to be using COM1.
  1448.     2.  That the program "TEST.EXE" is on the default drive.
  1449.     3.  That the batch file to invoke RBBS-PC is called "RBBS.BAT."
  1450.     4.  The batch file "RBBS.BAT" is on the default drive.
  1451.  
  1452.     13.2.1 Redirect I/O Using the CTTY Method
  1453.     ------------------------------------
  1454.     Would look like this using the CTTY METHOD:
  1455.                  CTTY COM1
  1456.                  TEST.EXE 
  1457.                  CTTY CON
  1458.                  RBBS.BAT
  1459.     The first command, "CTTY COM1",  assigns most standard input and  output to
  1460.     the communications port number 1.   The second command, "TEST.EXE", invokes
  1461.     some test program that you write that reads from and writes to the standard
  1462.     input and  output devices (i.e.  the keyboard and  the screen).   The third
  1463.     command, "CTTY CON",  reassigns the standard  input and output back  to the
  1464.     local  PC's keyboard and screen whenever TEST.EXE ends.  The fourth command
  1465.     simply invokes  another batch file named RBBS.BAT (which presumably invokes
  1466.     RBBS-PC).
  1467.  
  1468.     13.2.2 Redirect I/O Using the CTTY Method
  1469.     ------------------------------------
  1470.     Would look like this using the REDIRECT I/O METHOD:
  1471.                  COMMAND /C TEST.EXE <COM1 >COM1
  1472.                  RBBS.BAT
  1473.  
  1474.     The first  command, "COMMAND /C  TEST.EXE <COM1 >COM1", starts  a secondary
  1475.     command  processor, loads  TEST.EXE  and assigns  most  standard input  and
  1476.     output  to the communications port  number 1.  "Most" is  the key word here
  1477.     since PC-DOS does  not have a way  of redirecting "STANDARD ERROR"  like it
  1478.     does for "STANDARD IN and STANDARD OUT".  To solve this  problem STDERR.COM
  1479.     is included as part of the basic RBBS-PC system.  This program was provided
  1480.     by Quarterdeck Systems.   Run "STDERR.COM" one  time only before you  start
  1481.     RBBS-PC.  I suggest  that you include it in  your AUTOEXEC.BAT file.   This
  1482.     program works with all versions of PC-DOS 2.0 through 3.2.  A sample "DOOR"
  1483.     might look like this using the DEVICE DRIVER METHOD:
  1484.                  CTTY GATE1
  1485.                  TEST.EXE 
  1486.                  RBBS.BAT
  1487.  
  1488.     The first command, "CTTY GATE1", assigns  most standard input and output to
  1489.     the  device drive named  "gateway".   Since it is  a device  driver it must
  1490.     exist in  your CONFIG.SYS.   The second  command, "TEST.EXE",  invokes some
  1491.     test program that  you write  that reads  from and writes  to the  standard
  1492.     input and  output devices (i.e.  the keyboard and  the screen).   The third
  1493.     command, "CTTY CON", reassigns  the standard input and  output back to  the
  1494.     local PC's keyboard and screen whenever  TEST.EXE ends.  The fourth command
  1495.     simply invokes another batch file named RBBS.BAT (which  presumably invokes
  1496.     RBBS-PC).
  1497.     RBBS-PC CPC17.3                                                 Page 171
  1498.  
  1499.     13.3 Setting Up and Testing a "DOOR"
  1500.     ------------------------------------
  1501.     To first set up and test a door, DO NOT USE RBBS-PC.  Rather set up with
  1502.  
  1503.     1.   your modem on auto-answer (i.e. it answers the phone)
  1504.     2.   a .BAT file that redirects all input and output to the communications
  1505.          port that you are going to use using the IBM DOS CTTY command.
  1506.     3.   make sure the .BAT file invokes the program that you want to use as 
  1507.          a "door."
  1508.     4.   invoke the .BAT file that you set up in steps 2 and 3.
  1509.     5.   dial up the modem that you set in auto-answer mode in step 1.
  1510.     6.   get your "door" to work in this environment.
  1511.  
  1512.     If you have problems with steps 1 through 6, call your friendly IBM support
  1513.     or  the vendor of the software that you want  to use as a door and ask them
  1514.     to  teach you  about either their  software or  the CTTY command  and their
  1515.     software's compatibility with the CTTY command.  
  1516.  
  1517.     AFTER YOU HAVE YOUR DOOR WORKING, to set up a "door" for RBBS-PC, you must
  1518.  
  1519.     1.  list  the  name  of  the door (i.e. the .BAT file which you already    
  1520.     got working and debugged and are  responsible for setting up) in MENU5  (or
  1521.     whatever  name  specified  in  CONFIG  parameter  102  for  the  text  file
  1522.     containing the menu of available "DOOR"s). 
  1523.     2.   indicate that  doors are  available  (via  CONFIG's parameter 101).
  1524.  
  1525.     When a user invokes the D>oor command, RBBS-PC will:
  1526.  
  1527.         1.  List MENU5,
  1528.         2.  Check that the door that the user selects was specified in MENU5,
  1529.         3.  Check that the .BAT file exists (on the default drive),
  1530.         4.  Dynamically create a .BAT file with the name specified
  1531.             by the SYSOP in parameter 103 of CONFIG that:
  1532.                 a.  invokes the .BAT file of the window specified,and
  1533.                 b.  re-invokes RBBS-PC after the user EXITS from the
  1534.                     "door" by invoking the .BAT file that the SYSOP
  1535.                     specified in parameter 104 of CONFIG.
  1536.  
  1537.     The  purpose of "doors" is to allow for the "horizontal" growth of RBBS-PC.
  1538.      In  order to not limit the  application of RBBS-PC either  to BASIC or the
  1539.     current compiler, "doors" was chosen as a mechanism to allow SYSOPs to make
  1540.     available other features  (i.e. databases,  games, etc.).   Hopefully  with
  1541.     RBBS-PC as  a  base, the  limitations on  doors will  only  be the  SYSOP's
  1542.     resourcefulness AND IBM'S DISK OPERATING SYSTEM (see Appendix W)!
  1543.  
  1544.     The  design of the .BAT file that is to be used as a "door" is critical and
  1545.     is  the responsibility of the SYSOP.  At the very minimum  it should handle
  1546.     the communication port I/O.  This can be done in a very primitive way using
  1547.     the DOS CTTY command as described in section 13.
  1548.  
  1549.     When the  file RCTTY.BAT is executed,  it executes another batch  file with
  1550.     the  name of that particular  door.  DOS does  not return to the RCTTY.BAT.
  1551.     So, at the end of your doors batch file, you must reinvoke RBBS.BAT. 
  1552.     RBBS-PC CPC17.3                                                 Page 172
  1553.  
  1554.     The way that "doors" works is to check to see if the door name specified is
  1555.     in MENU5.   If it is in all  capital letters in the RBBS-PC  file MENU5, it
  1556.     runs the batch file of that name with the extension ".BAT".
  1557.  
  1558.     In  general, the program invoked as a  "door" has to do is print everything
  1559.     to  the communications port  and if you wish,  echo it to  the screen.  The
  1560.     initial  part of  any "door" should  read in  the parameters passed  to the
  1561.     "door"  in the  "node" record  and  establish the  communications parameter
  1562.     appropriately.
  1563.  
  1564.     Alternatively,  "DOORS" can  be  invoked  via a  control  file, see  CONFIG
  1565.     parameter 109.
  1566.     RBBS-PC CPC17.3                                                 Page 173
  1567.  
  1568.     13.4 Invoking "DOOR"s Via The External Control File
  1569.     ---------------------------------------------------
  1570.     In addition to simply invoking "DOOR"s using the standard approach outlined
  1571.     above, RBBS-PC allows a multiplicity of "DOOR"s which may require different
  1572.     methods and parameters to be used when invoking them.  CONFIG parameter 109
  1573.     allows the SYSOP to specify the name of this control file.
  1574.  
  1575.     This approach  allows different  "DOOR"s to be  invoked in  different ways.
  1576.     Specifically,  the  SYSOP can  tailor  the way  each  "DOOR" is  invoked as
  1577.     follows:
  1578.  
  1579.     1.  The minimum security level to invoke each "DOOR" may be different.
  1580.  
  1581.     2.  The caller may be required to answer a  questionnaire before the "DOOR"
  1582.     is invoked.   This is extremely  useful if the "DOOR" is  a database search
  1583.     program and  the questionnaire gathers  the necessary search  criteria from
  1584.     the caller prior to invoking the "DOOR".
  1585.  
  1586.     3.   The "DOOR"  may be  either SHELLed to  (i.e. where RBBS-PC  remains in
  1587.     memory  and the "DOOR" is simply loaded in with RBBS-PC) or EXITed to (i.e.
  1588.     where RBBS-PC  terminates itself and  releases the memory  it uses for  the
  1589.     "DOOR" to be loaded into).
  1590.  
  1591.     4.  The  "DOOR" may  be invoked  via a  "template" (see  section 21.2)  and
  1592.     information  passed to  the "DOOR".   "Templates"  are useful  when passing
  1593.     information from  a questionnaire  to a database  search program.   RBBS-PC
  1594.     normally passes the node ID as the first parameter to a "DOOR".  When using
  1595.     a  "template" to invoke a "DOOR" the  "template" must include the parameter
  1596.     "[NODE]", if the node ID is to be passed to the "DOOR".
  1597.  
  1598.     5.   A  file may be  specified for  RBBS-PC to  display to the  caller upon
  1599.     returning from a "DOOR".   This file may be created by the  "DOOR" that was
  1600.     invoked (i.e. the output of the database  search and retrieval) or simply a
  1601.     text file that the SYSOP created.
  1602.  
  1603.     6.  Additionally,  when returning from each  "DOOR" the SYSOP can  elect to
  1604.     ask  the   caller  to  re-enter   their  password  as  an   added  security
  1605.     verification.
  1606.  
  1607.     7.  Finally, the control file approach to invoking "DOOR"s allows the SYSOP
  1608.     to specify  the maximum amount of  elapsed time that a caller  can spend in
  1609.     each "DOOR".  If  amount of time remaining that the user  has on the system
  1610.     is greater than  the amount of time allowed  in the "DOOR", the  smaller of
  1611.     the two times is used.
  1612.  
  1613.     As with  all features, the  control file approach  to invoking a  "DOOR" is
  1614.     optional.  However,  even if it is used  a "DOOR" can only be  invoked by a
  1615.     caller if a .BAT file exists (see section 13.3).
  1616.     RBBS-PC CPC17.3                                                 Page 174
  1617.  
  1618.     13.5 EXITing or SHELLing to "DOOR"s
  1619.     -----------------------------------
  1620.     There are two ways to execute other programs from RBBS-PC:
  1621.  
  1622.        1.  EXITing RBBS-PC and invoking the other program via a .BAT file that 
  1623.             RBBS-PC builds dynamically, or
  1624.  
  1625.        2.  SHELLing to the other program while RBBS-PC remains in memory.
  1626.  
  1627.     EXITing  RBBS-PC allows other BASIC programs to be run as external programs
  1628.     to RBBS-PC, conserves  memory, and allows all  of RBBS-PC's features  to be
  1629.     active in computers with only 320K of memory.  The "price" that  is paid is
  1630.     that upon returning from the  externally called program RBBS-PC's .EXE file
  1631.     must be  reloaded into memory.   Unless  a control file  is used to  invoke
  1632.     "DOOR"s, RBBS-PC always EXITs to "DOOR"s.
  1633.  
  1634.     SHELLing  prohibits other BASIC programs to be  run as external programs to
  1635.     RBBS-PC, consumes memory  because RBBS-PC remains in memory  when the other
  1636.     program is running, and requires 386K of memory (under DOS 3.2) to activate
  1637.     all of RBBS-PC's  features.  However,  SHELLing does eliminate the  need to
  1638.     reload the RBBS-PC.EXE file each time.  
  1639.     RBBS-PC CPC17.3                                                 Page 175
  1640.  
  1641.     13.6 Resetting The User's Record Via a "DOOR"
  1642.     ----------------------------------------------
  1643.     WARNING -- this is  an extremely powerful feature!  It  opens up everything
  1644.     in  the user record  to modification by  the "DOOR".   The "door" must also
  1645.     have knowledge of where fields are in the user record and may cease to work
  1646.     properly when the user record changes its format.  The main application for
  1647.     this is feature within RBBS-PC if  for "DOOR"s that maintain certain SYSOP-
  1648.     defined fields.
  1649.  
  1650.     For a "DOOR" to reset any part of  the user record all a door has to  do is
  1651.     include in DOUTx.DEF file, where x is node number, a line in the format
  1652.  
  1653.                         UR(<start>:<end>),<value>
  1654.  
  1655.     where:
  1656.            <start> is the beginning byte in user record,
  1657.            <end> is the number of bytes to revise, and
  1658.            <value>  is what  goes into  the  specified position  in the  user's
  1659.     record.
  1660.  
  1661.      For example,
  1662.  
  1663.                     UR(63:24),"City,State"
  1664.  
  1665.     would update the  city/state field with the value  "City,State", setting 24
  1666.     bytes in user  record to that value  (blank fill to right),  beginning with
  1667.     character position  63.    The "UR" request  only works for data  stored in
  1668.     character format in the user record.   RBBS-PC supports a second request in
  1669.     the form
  1670.  
  1671.                      SL,<sign><value>
  1672.  
  1673.     where "SL" stands  for security level.    <sign>  can be nothing,  plus, or
  1674.     minus, and  means respectively to set  the security level to  the following
  1675.     value,  or to  raise or lower  the security  by the amount  specified.  For
  1676.     example, "SL,6"  requests that the  security be  set to  6 whereas  "SL,-2"
  1677.     means to lower the security by 2.
  1678.     RBBS-PC CPC17.3                                                 Page 176
  1679.  
  1680.     13.7 A Summary of "DOOR"s
  1681.     -------------------------
  1682.     Finally, if  the preceding discussion  of "doors" is a  complete mystery to
  1683.     you, contact a SYSOP of an RBBS-PC that  is using "doors" and ask for help.
  1684.  
  1685.     However, if you call a Sysop to learn about "doors" for personal gain (i.e.
  1686.     you are  a consultant  or some  company's employee  being paid  to write  a
  1687.     "door")  have the courtesy  to tell him.   The "user  helping user" concept
  1688.     does NOT  imply that  anyone should  be taken  advantage.   Anyone who  has
  1689.     acquired specialized  knowledge has the  right to be remunerated  for their
  1690.     efforts if their knowledge is being used to further commercial purposes and
  1691.     they request it.    
  1692.  
  1693.     The  "door"  concept stretches  IBM's  DOS'  capabilities and  requires  an
  1694.     knowledge of how both DOS, the DOS CTTY command,  and .BAT files work. 
  1695.     RBBS-PC CPC17.3                                                 Page 177
  1696.  
  1697.     14.  THE SECURITY FEATURES OF RBBS-PC
  1698.     -------------------------------------
  1699.     RBBS-PC has always  been an open  system designed for  public use. A  SYSOP
  1700.     should  always   ASSUME that EVERY  FILE ON THE  PC running RBBS-PC CAN  BE
  1701.     DOWNLOADED   AND/OR    DESTROYED.      However,    RBBS-PC  has   extensive
  1702.     safeguards    that   systematically   enhance  security and  privacy.   For
  1703.     example,  RBBS-PC  has  the  logic  within it's  code  to  prohibit  anyone
  1704.     (including the SYSOP) from downloading the RBBS-PC "system" files described
  1705.     in section 5.1.    RBBS-PC can still be run  as  a  wide-open system,   but
  1706.     the SYSOP  has many  additional options   to   restrain   access.     These
  1707.     security options make RBBS-PC much more suitable for  private  and business
  1708.     use.
  1709.  
  1710.     RBBS-PC's security is controlled by three things:
  1711.  
  1712.          1. the system configuration file (RBBS-PC.DEF),
  1713.          2. the  two external security files for
  1714.                a. passwords (PASSWRDS), and
  1715.                b. file downloads (FILESEC), and
  1716.          3. the users file (USERS) in which each user has an assigned 
  1717.             security level.
  1718.  
  1719.     The  users  file is controlled by the SYSOP  user   maintenance  function 5
  1720.     as described in section 17.  To change  a specific users security level you
  1721.     select the M>odify option and then  the S>ecurity option.  This allows  you
  1722.     to set  the security level for a user.  Users cannot set their own security
  1723.     levels.   Section 14.3  describes how to  implement special  passwords that
  1724.     provide special privileges  to the  groups that issue  them.  Section  14.4
  1725.     describes how specific  files, groups of files, or even  whole disk volumes
  1726.     can have download security levels associated with them.
  1727.     RBBS-PC CPC17.3                                                 Page 178
  1728.  
  1729.     14.1 RBBS-PC's Security Features
  1730.     --------------------------------
  1731.     Each  user has  an  assigned  security  level, permitting  65,536  possible
  1732.     security  levels.    Each command  in  RBBS-PC also  has  a  security level
  1733.     assigned to it.   Security assignments are controlled by the SYSOP.  To use
  1734.     a  command, the caller's  security level  must be at  least as high  as the
  1735.     command's security  level.
  1736.  
  1737.     The SYSOP can assign a file or group of files both a security  level and  a
  1738.     password.  To download a file, a caller must have a security level at least
  1739.     as high as  the file's and be able  to give the file's password  (if one is
  1740.     present).  All users must pass  these security tests, including anyone with
  1741.     SYSOP privileges.
  1742.  
  1743.     Messages can be assigned a password by their creator. Then only persons who
  1744.     are able to give that password can read or kill the message.  Messages with
  1745.     password protection  will show <PROTECTED>  when scanned.  Callers  have no
  1746.     way of distinguishing messages to  private individuals and to groups except
  1747.     by  how they  are addressed.   Persons with  SYSOP privileges can  read all
  1748.     messages.  Section  14.2's description of  sending a message to  an AUTHORS
  1749.     SIG as  an addressee with  the password of AUTHORONLY  shows how to  send a
  1750.     message to a special group.
  1751.  
  1752.     Security  violations  are  logged  to  the CALLERS  file.    These  include
  1753.     attempting   to  use  functions without  sufficient security  clearance and
  1754.     failure to give required passwords.
  1755.  
  1756.     RBBS-PC's default configuration is that of an "open" system.
  1757.  
  1758.     RBBS-PC's security system provides the SYSOP with several choices on how to
  1759.     run RBBS-PC. The chief ones are as follows:
  1760.  
  1761.     1.  Change the bulletin board from an open system available to all callers,
  1762.     to a pre-registered  system available only to specified users.   To support
  1763.     this option, there is a function in the SYSOPs user maintenance option 5 to
  1764.     ADD users.
  1765.  
  1766.     2.  A SYSOP can set up different "classes" of users by assigning  different
  1767.     security levels to different users.  Concurrently  the SYSOP would have to 
  1768.     assign different security  levels to different commands.   For example, new
  1769.     callers  might be permitted  only to leave  a comment,  read bulletins, and
  1770.     list  files  that can be  downloaded.  Or there  might be a group  of files
  1771.     assigned a security level that only members of a special interest group can
  1772.     download.
  1773.  
  1774.     3.   The  SYSOP can  segregate the  functions of  the  bulletin board  into
  1775.     different   groups based on a password.  A  specific file or group of files
  1776.     can be  downloadable  only to  those  who know  the  password.   Similarly,
  1777.     messages can be  made open to everyone  knowing the password but  closed to
  1778.     everyone else.  This way there can be semi-private portions of the bulletin
  1779.     board.
  1780.     RBBS-PC CPC17.3                                                 Page 179
  1781.  
  1782.     14.2 Examples of Uses for RBBS-PC's Security System
  1783.     ---------------------------------------------------
  1784.     Some  examples of how a SYSOP  can tailor RBBS-PC using RBBS-PC's extensive
  1785.     security features follow.
  1786.      
  1787.     SPECIAL INTEREST GROUPS --  A special interest group (SIG) in a users group
  1788.     wishes  to  run  a RBBS-PC for both the  general public and  its  own  use.
  1789.     An  example  would be an authors  SIG for persons interested  in publishing
  1790.     books  and  articles  or developing commercial software.  A definite   need
  1791.     would  exist to  be able to address messages to everyone in the SIG without
  1792.     making  them open to every caller.   The SIG would establish the convention
  1793.     to   password protect  general SIG messages  with the  password AUTHORONLY,
  1794.     and to  address them to AUTHORS SIG.
  1795.  
  1796.     Another example  would  be a  bulletin  board devoted  to  the exchange  of
  1797.     software.    Allowing  persons  to use  the  message subsystem  would  only
  1798.     interfere with the primary  purpose of the bulletin  board.  Therefore  the
  1799.     SYSOP removes from the menu the functions for leaving and reading messages.
  1800.     To  prevent a person  from using the  functions to leave or  read a message
  1801.     (even though  they are not displayed), the  SYSOP assigns these functions a
  1802.     security level higher than a person who logs on normally would be assigned.
  1803.  
  1804.  
  1805.     Another example of  using RBBS-PC's security system  would be to set  up an
  1806.     agreed upon temporary password such that  when a user logs onto the  system
  1807.     they can  issue the password and get longer  than normally allowed.  If the
  1808.     time for  normal users is  30 minutes, the  SYSOP can set  up the   special
  1809.     password SOFTEXCHANGE, with a maximum time on of 150 minutes instead of the
  1810.     normal 30.    By shifting over  to this special password  after logging in,
  1811.     members can get extra time if they need it. 
  1812.  
  1813.     SOFTWARE SUPPORT --  An author of a freeware program offers RBBS-PC support
  1814.     to  all persons who register their copies and send a contribution  of, say,
  1815.     $35  per copy.    The registered  user  can get  answers  for problems  and
  1816.     download free  updates and sample applications.  The author wants anyone to
  1817.     be able to  call just to  find out about  the service.   New callers get  a
  1818.     security level of  2 automatically assigned to  them.  This allows  them to
  1819.     use only the message subsystem.  The file subsystem is assigned  a security
  1820.     level of 7.   Contributors are added by the SYSOP with  a security level of
  1821.     7 and  a  pre-assigned  password.   Except for SYSOP  functions, registered
  1822.     users have free  reign in the RBBS-PC.
  1823.  
  1824.     CLIENT SUPPORT --  A SYSOP on a public  RBBS-PC also works as  a management
  1825.     consultant.  She has several associates who work with her on projects.  She
  1826.     needs to be able to send and receive messages from her associates which the
  1827.     general  public should  not  see.   So  they agree  on  a message  password
  1828.     NOTPUBLIC. To support her different clients she also needs to leave private
  1829.     files for downloading.   To each client  she assigns a special  downloading
  1830.     password.  To  restrict downloading to just that client, file names are put
  1831.     in the file security file with the appropriate password.  Only persons with
  1832.     the password can then download them.
  1833.     RBBS-PC CPC17.3                                                 Page 180
  1834.  
  1835.     PRIVILEGED ELECTRONIC  MAIL -- A company  uses RBBS-PC to help  support its
  1836.     regional offices.  Only regional vice-presidents should be able to download
  1837.     certain management reports.  In file security these reports  are assigned a
  1838.     high security level of 9, which only managers get.
  1839.     RBBS-PC CPC17.3                                                 Page 181
  1840.  
  1841.     14.3 How to Implement the Password File
  1842.     ---------------------------------------
  1843.     CONFIG allows the  SYSOP to designate the  name of the file  containing the
  1844.     privileged group passwords to RBBS-PC.   Since this file is a normal  ASCII
  1845.     file, the  SYSOP  can use any  text editor to create  and update the  file.
  1846.     Put  the information for  each password on a  single line and separate  the
  1847.     fields  with commas.   It  is important  to  note that  EACH record  of the
  1848.     password  must  contain ELEVEN  parameters  (i.e.  TEN  commas).   For  the
  1849.     password file, the format is:
  1850.  
  1851.     parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11
  1852.  
  1853.     where:
  1854.  
  1855.     parm1  -- password that this line applies to
  1856.     parm2  -- security level for password.  If no password was specified, this 
  1857.                is the user security level this line applies to
  1858.     parm3  -- maximum time in minutes for a single session
  1859.     parm4  -- maximum time in minutes per day
  1860.     parm5  -- number of days in the subscription period
  1861.     parm6  -- start time, in format HHMM 24 hour style, this line applies to
  1862.     parm7  -- end time, in format HHMM 24 hour style, this line applies to
  1863.  
  1864.     The start/end time are  limits on all other parameters:   meaning that they
  1865.     apply only during the specified times.    Specifying 0 for start/end  times
  1866.     means that this line applies all day.
  1867.  
  1868.     parm8 -- the type of ratio method to use.  This should be one of the       
  1869.     following:
  1870.                 '0' - meaning use the files uploaded to files downloaded ratio
  1871.                 '1' - meaning use the bytes uploaded to bytes downloaded ratio
  1872.                 '2' - meaning use the files per day restriction
  1873.                 '3' - meaning use the bytes per day restriction
  1874.     NOTE:
  1875.     FIRST TIME CALLERS MUST UPLOAD AT LEAST  ONE FILE (BYTE) BEFORE DOWNLOADING
  1876.     UNLESS THEY ARE:
  1877.              EXEMPT FROM THE RATIO REQUIREMENTS,
  1878.              ARE USING THE DAILY RATIO METHOD, OR
  1879.              AN INITIAL UPLOAD CREDIT HAS BEEN GRANTED.
  1880.     THE INITIAL CREDIT FIELD IS IGNORED FOR METHODS 2 AND 3.
  1881.  
  1882.     parm9 -- the ratio  field.  A positive integer, such as  15, placed in this
  1883.     parameter requires  that the caller maintain a ratio of  a least 1 file (or
  1884.     byte) uploaded  for every  15 files (or  bytes) downloaded.   The  ratio of
  1885.     uploads to downloads  can be  cumulative over  multiple days or  it can  be
  1886.     limited to the current day's activities of the caller.
  1887.  
  1888.     A 0 tells RBBS-PC to record uploads, but it will not  record downloads, nor
  1889.     will it enforce  ratios.  This allows  the SysOp to have a  "free" download
  1890.     period.
  1891.  
  1892.     A  -1 tells  RBBS-PC to record  uploads and  downloads, but not  to enforce
  1893.     ratios.  This  allows the SysOp to  keep records of each  user's transfers,
  1894.     but it will not stop a user from downloading as much as time allows.
  1895.  
  1896.     parm10  - the  initial credit  field.   This  can be  any  positive integer
  1897.     including zero.  The use of ratio methods 2 and  3 in conjunction with this
  1898.     RBBS-PC CPC17.3                                                 Page 182
  1899.  
  1900.     field can restrict the number of files (or bytes) that can be downloaded by
  1901.     an individual or group of callers per day.
  1902.  
  1903.     parm11 -  the  elapsed time  (in seconds)  that a  caller  must wait  after
  1904.     logging on  before "Time Locked" features  will become available.   See the
  1905.     description of CONFIG parameter  155 in section 11.8 for a full description
  1906.     of how "Time Lock" works.
  1907.  
  1908.     Here are some examples of how the PASSWRDS file might be used:
  1909.  
  1910.     ,5,50,,,0001,0600,,,,           Security level 5 gets 50 session minutes
  1911.     ,5,25,,,,,,,,                   between 00:01 AM and 6 AM, and 25 minutes   
  1912.                                     otherwise.
  1913.  
  1914.     ,7,50,70,730,,,,,,
  1915.  
  1916.     Security level  7 has a subscription period of 2  years and a session limit
  1917.     of 50 minutes, and a daily limit of 70 minutes.
  1918.  
  1919.     BIGTIME,6,52,,,,,,,,
  1920.  
  1921.     Temporary password BIGTIME gets 52 minutes per session and a security of 6.
  1922.  
  1923.     EXTEND,5,120,,9999,,,,,,
  1924.  
  1925.     Temporary password  EXTEND gets  120 minutes for  the current  session (the
  1926.     user's elapsed time per  day would still remain whatever was  set in CONFIG
  1927.     parameter 8), a temporary security level of 5, and a subscription period of
  1928.     9,999 days.
  1929.  
  1930.     ,7,128,256,,,,,,,120
  1931.  
  1932.     Users who log on  with a security level of 7 are  automatically granted 128
  1933.     minutes  on the  system for each  session, 256  minutes total for  each day
  1934.     (independent  of  what  was  set  in  parameter 8  of  CONFIG),  and  their
  1935.     subscription period remains unchanged from whatever it was before, but they
  1936.     must wait 120 seconds  before being able to exit to a  "door" or download a
  1937.     file.
  1938.  
  1939.     SKIPRATIO,170,120,200,90,0600,1200,0,0,,
  1940.  
  1941.     Temporary password 'SKIPRATIO' grants the caller a security level of 170, a
  1942.     session limit of 120 minutes, a daily  time limit of 200 minutes, a 90  day
  1943.     subscription period,  during the  hours of  6AM until  noon  with no  ratio
  1944.     limits.  No downloads are added to the counts for the user.    Changing the
  1945.     last "0" to "-1"  would cause the counts  to be added  but not acted on  to
  1946.     limit downloads.
  1947.  
  1948.     ,140,60,60,365,0001,2400,1,10,,
  1949.  
  1950.     Users with a  security level  140, have a  session limit  of 60 minutes,  a
  1951.     daily limit of  60 minutes, a one-year subscription, but during any hour of
  1952.     the day they must  maintain a ratio of  1 byte uploaded for every  10 bytes
  1953.     downloaded. There  is no initial  upload credit. Therefore, an  upload must
  1954.     take place before a download.
  1955.  
  1956.     ,150,70,,90,,,0,15,2,600
  1957.     RBBS-PC CPC17.3                                                 Page 183
  1958.  
  1959.     Users with a security level of 150,  have a session limit of 70 minutes,  a
  1960.     90 day  subscription, must maintain a ratio of 1 file uploaded for every 15
  1961.     downloaded. An  initial credit of  2 files are granted  to all new/existing
  1962.     users.  However, they can not  exit to a "door" or download a  file for the
  1963.     first 10 minutes (600 seconds) of their session.
  1964.  
  1965.     ,165,90,,120,,,0,30,,
  1966.  
  1967.     Users with a security  level of 165, have a session limit  of 90 minutes, a
  1968.     120 day subscription, must maintain a ratio of 1 file uploaded for every 30
  1969.     downloaded. No initial upload credit is granted.
  1970.  
  1971.     ,170,120,,365,,,2,10,,
  1972.  
  1973.     Users with a security level of 170  have a session limit of 120 minutes,  a
  1974.     one-year subscription limitations, but can only download 10 files per day.
  1975.  
  1976.     ,200,360,,730,,,3,250000,,
  1977.  
  1978.     Users with a security level of  200 have a session limit of 360  minutes, a
  1979.     two-year subscription, but can only download 250000 bytes per day.
  1980.  
  1981.     If you are using COPY CON to create this file you "MUST" press F6  followed
  1982.     by a Ctrl/Z at the end of the last entry prior to pressing carriage return.
  1983.     RBBS-PC CPC17.3                                                 Page 184
  1984.  
  1985.     14.4  Implementing Security for Download Files
  1986.     ----------------------------------------------
  1987.     CONFIG allows the  SYSOP to designate the  name of the file  containing the
  1988.     passwords  and security levels  that can be  used to restrict  downloads of
  1989.     specific   files,  volumes,  or  files  names  meeting  certain  "wildcard"
  1990.     criteria.  This file  contains file names with download restrictions in the
  1991.     format:
  1992.  
  1993.     <filename>, <security level>,<password>
  1994.  
  1995.     Note:   Each line is a record and ends with carriage-return line-feed.  The
  1996.     only optional field is the password field for a filename.  By  leaving  the
  1997.     password  field  empty,  no password is assigned to  a  file.   The  commas
  1998.     between  the fields are necessary.  YOU MUST HAVE TWO COMMAS ON  EACH  LINE
  1999.     even if you do not have a password associated with the file.
  2000.     Some examples would be:
  2001.  
  2002.        COMMAND.COM, 10,DOS
  2003.        PAYROLL.DAT, 99,BANKRUPT
  2004.        CALLGIRL.SEX,,ILLEGAL
  2005.        \FINANCE\STOCKS,100,
  2006.  
  2007.     The  file COMMAND.COM could not be downloaded unless a user had a  security
  2008.     level equal to or greater than 10 AND could supply the password "DOS".  The
  2009.     file PAYROLL.DAT could not be downloaded unless a user had a security level
  2010.     equal to or greater than 99 AND could supply the password "BANKRUPT".   Any
  2011.     user   could  download  the  file CALLGIRL.SEX  if  they could  supply  the
  2012.     password   "ILLEGAL".    Any user  with a security  level of 100  or higher
  2013.     could download   the file  STOCKS in  the DOS subdirectory  FINANCE without
  2014.     supplying any password.
  2015.  
  2016.     Additionally  "wild-card"  characters and drive designators can be used  to
  2017.     protect or restrict certain classes of files (by extension, by drive, etc.)
  2018.     from being downloaded.
  2019.  
  2020.     Some examples would be:
  2021.  
  2022.        A:*.*,8,
  2023.        E:*.SEC,2,PW1
  2024.        A*.M*,0,GX3
  2025.        XY?X.*,9,3XG
  2026.  
  2027.     All files on drive A would require the users to have a security level of  8
  2028.     in   order for a user to download them.   Any user who wanted to download a
  2029.     file  whose extension was ".SEC" and was found  to be on drive E would have
  2030.     to   not only  have a security  level of  at least 2  but to also  give the
  2031.     password  PW1.   The third entry above  would require a user  who wanted to
  2032.     download any   file on any drive  with a prefix that began  with "A" and an
  2033.     extension that began with "M" to have a security level of at least 0 and to
  2034.     enter the password  GX3.  Finally, the  last entry above would  require any
  2035.     user who   wanted to download any file on any  drive whose four-letter name
  2036.     began with "XY" and  whose last letter was "X" with any extension to have a
  2037.     security level of at least 9 and enter the password 3XG.
  2038.  
  2039.     The  wildcards "*"  and "?"  operate  just like  they  do in  DOS with  two
  2040.     exceptions.   The  "?" requires  a  character.   In  DOS the  name  "HAPPY"
  2041.     satisfies  the file  specification "HAPPY?"  but  it does  not in  RBBS-PC.
  2042.     RBBS-PC CPC17.3                                                 Page 185
  2043.  
  2044.     Also,  in RBBS-PC,  a wildcard applies  to an  extension only if  it occurs
  2045.     after a  period.   Thus "xyz*"  in DOS  finds  "xyz.a" but  not in  RBBS-PC
  2046.     ("xyz*.*" will find it).
  2047.  
  2048.     To get  exceptions to  the general rule,  just put  the exceptions  first. 
  2049.     RBBS-PC's file security  search stops with the first  applicable entry that
  2050.     it  encounters.  For example, 
  2051.  
  2052.     1.  if you want all files on the B drive to require the user to have a     
  2053.          security level of at least 3,
  2054.  
  2055.     2.  except that files on the B drive with the extension ".SEC" would       
  2056.          require the user to have a security level of at least 6, and,
  2057.  
  2058.     3.  regardless of the disk drive that they were on, any file beginning
  2059.         with "MES" with an extension of ".SEC" would require the user to have
  2060.         a security level of at least 12 
  2061.  
  2062.     you would enter the following into the file security file
  2063.  
  2064.        MES*.SEC,12,
  2065.        B:*.SEC,6,
  2066.        B:*.*,3
  2067.  
  2068.     Special Note:RBBS-PC is hard coded so that there are some files that nobody
  2069.     can  download  -- not  even  the  SYSOP.   These  are  RBBS-PC.DEF,  users,
  2070.     messages, callers, group  password, comments, the file security, and backup
  2071.     files.  Similarly the batch files  that control RBBS-PC and let the  caller
  2072.     exit to DOS  2 can not be  downloaded.  The default  security file provided
  2073.     with RBBS-PC is empty. 
  2074.     RBBS-PC CPC17.3                                                 Page 186
  2075.  
  2076.     14.5  Implementing Security for RBBS-PC Commands
  2077.     ------------------------------------------------
  2078.     RBBS-PC allows each command to be assigned it's own security level.  A user
  2079.     who  wishes to  invoke  an RBBS-PC  command  must have  at  least the  same
  2080.     security level  as the command.  Let's assume that  a SYSOP wants to set up
  2081.     the following classes of users:
  2082.  
  2083.       Classification of Users                        Security Level
  2084.  
  2085.     "Locked Out" Users                                     0
  2086.     New Users (first time)                                 1
  2087.     Normal Users                                           2
  2088.     Users who can "view" a Conference                      3
  2089.     Users who can enter Messages                           4
  2090.     Users who can download files                           5
  2091.     Users who can upload files                             6
  2092.     Users who can Join a Conference                        7
  2093.     Users who can do some SYSOP commands (Jr. SYSOP's)     8
  2094.     Users who can enter a "door"                           9
  2095.     Users who can enter all SYSOP commands  (Co-SYSOP's)  10
  2096.  
  2097.     The  following  table  illustrates one  method  of  assigning  each RBBS-PC
  2098.     command it's own security level:
  2099.                                          Security Level
  2100.              Subsystem/Command              Assigned to Command
  2101.  
  2102.      Messages Subsystem
  2103.         A>nswer questionnaire............... 4
  2104.         B>ulletins.......................... 1
  2105.         C>omments........................... 1
  2106.         D>oor subsystem..................... 9
  2107.         E>enter message..................... 4
  2108.         F>iles system....................... 1
  2109.         I>nitial welcome.................... 1
  2110.         J>oin a conference.................. 7
  2111.         K>ill messages...................... 4
  2112.         O>perator page...................... 1
  2113.         P>ersonal mail...................... 2
  2114.         R>ead messages...................... 2
  2115.         S>can messages...................... 1
  2116.         T>opic of messages.................. 1
  2117.         U>tilities (more)................... 1
  2118.         V>iew conference mail............... 3
  2119.         W>ho's on other nodes................3
  2120.         @>Library Sub-System.................1
  2121.      Files Subsystem
  2122.         D>ownload........................... 5
  2123.         G>oodbye............................ 0
  2124.         L>ist file directories.............. 4
  2125.         N>ew files.......................... 5
  2126.         P>ersonal downloads................. 5
  2127.         S>earch directories for string ..... 1 
  2128.         U>pload a file...................... 1
  2129.         V>erbose listing of ARC file........ 1
  2130.      Utilities Subsystem
  2131.         B>aud rate.......................... 1
  2132.         C>lock (time of day)................ 1
  2133.     RBBS-PC CPC17.3                                                 Page 187
  2134.  
  2135.         E>cho selection..................... 1
  2136.         F>ile transfer protocol............. 1
  2137.         G>raphics........................... 1
  2138.         L>ength of page..................... 1
  2139.         M>essage Margin..................... 1
  2140.         P>assword change.................... 1
  2141.         R>eview preferences................. 0
  2142.         S>tatistics of system............... 1
  2143.         T>oggle (line feeds, etc.).......... 1
  2144.         U>serlog............................ 2
  2145.      Library Subsystem
  2146.         A>rchive a Library disk..............5
  2147.         C>hange a Library disk...............5
  2148.         D>ownload........................... 5
  2149.         G>oodbye............................ 0
  2150.         L>ist file directories.............. 4
  2151.         S>earch directories for string ..... 1 
  2152.         V>erbose listing of ARC file........ 1
  2153.      GLOBAL commands
  2154.         ?>What can be done.................. 1
  2155.         H>elp with a command................ 1
  2156.         Q>uit to another subsystem or exit.. 1
  2157.         X>Expert/novice toggle.............. 1
  2158.      SYSOP Subsystem
  2159.         1>List comments..................... 8
  2160.         2>List callers log..................10
  2161.         3>Recover a Message................. 8
  2162.         4>Erase comments.................... 9
  2163.         5>USERS maintenance.................10
  2164.         6>Toggle page bell.................. 8
  2165.         7>Exit to DOS 2.x or above.......... 9
  2166.     RBBS-PC CPC17.3                                                 Page 188
  2167.  
  2168.     14.6  Beware of the "Trojan Horse!"
  2169.     -----------------------------------
  2170.     Despite RBBS-PC's security always remember that you should always assume:
  2171.  
  2172.            "EVERY FILE ON THE PC RUNNING RBBS-PC CAN
  2173.            BE DOWNLOADED, MODIFIED, AND/OR DESTROYED!"
  2174.  
  2175.     RBBS-PC's security system appears to be so fool-proof that some individuals
  2176.     have  resorted  to uploading  programs  that appear  to  do one  thing, but
  2177.     actually do something else.   These "trojan horse" programs  search all the
  2178.     disks that are connected to the PC that  the program is running on for such
  2179.     RBBS-PC files as RBBS-PC.DEF or USERS.  The program then copies these files
  2180.     to an innocuously named file that  can be downloaded later when the  person
  2181.     who uploaded it logs onto the system again.  Since RBBS-PC.DEF contains the
  2182.     pseudonym that  the SYSOP can use  to logon on remotely as  the SYSOP, once
  2183.     the  user downloads a copy of it the user  can then log on as the SYSOP and
  2184.     do just  about anything  including exiting  to DOS  and formatting all  the
  2185.     disks on the system.  Similarly, the  USERS file contains passwords and the
  2186.     security levels of everyone on your RBBS-PC -- some  of whom may have SYSOP
  2187.     privileges.  
  2188.  
  2189.     You can protect  yourself against anyone logging  on as you, the  SYSOP, by
  2190.     not  allowing anyone  to logon  as the  SYSOP remotely.    To do  this read
  2191.     section  11 regarding  parameter 121.    You can  protect yourself  against
  2192.     unauthorized access of  the USERS file by  simply not allowing any  user to
  2193.     have SYSOP privileges.
  2194.  
  2195.     Of course there is the "trojan horse" program that doesn't even bother with
  2196.     the above, but simply destroys all the disk files on all the disks that are
  2197.     connected to the PC  that is running the program.  See  the rest of section
  2198.     22 to see how you can protect yourself against such programs.
  2199.     RBBS-PC CPC17.3                                                 Page 189
  2200.  
  2201.     15. SYSOP FUNCTIONS
  2202.     -------------------
  2203.     The  SYSOP functions allow a SysOp,  or other user with sufficient security
  2204.     level, to perform simple system maintenance functions without leaving RBBS-
  2205.     PC.
  2206.      
  2207.     15.1 SYSOP Commands Within RBBS-PC
  2208.     ----------------------------------
  2209.     The following operations can be performed by  entering a number only at the
  2210.     command prompt:
  2211.  
  2212.     1 -  Type COMMENTS file.  The contents of  the COMMENTS file is displayed. 
  2213.     This  file  can also be inspected using  a TYPE command from DOS.   It is a
  2214.     text file.
  2215.  
  2216.     2 -  Type CALLERS file.  A log is maintained of all persons who have called
  2217.     the system.   This function will list  the file showing the users name  and
  2218.     the  date  and time  signed  on as  well  as the  names of  the  files they
  2219.     upload/downloads along with  any security violation or  errors encountered.
  2220.     This  is a random access file of 64-byte records.
  2221.  
  2222.     3 - Resurrect  a message.   This function will  restore a message that  has
  2223.     been  killed.  If the  message file has been "packed", the killed  messages
  2224.     are no longer recoverable.  The function will ask for the message number of
  2225.     the message to be recovered.
  2226.  
  2227.     4 - Erase the COMMENTS file.  This function will erase the comments.  A new
  2228.     comments file will be created the next time a user leaves a comment.       
  2229.      
  2230.     5 - USERS file maintenance.  The users file contains entries for  each user
  2231.     registered with the system.  This function permits the SYSOP to 
  2232.  
  2233.     A)dd -- add a user to the USERS file.
  2234.     L)st -- list the USERS file.
  2235.     P)rt -- print the USERS file on the printer.
  2236.     M)od -- modify a record in the USERS file.
  2237.     S)can - scan each record in the USERS file for a particular string. 
  2238.  
  2239.     In <M>odify mode, limited editing of the users record in the USERS file can
  2240.     be done.  The following subfunctions are available:
  2241.  
  2242.         D - Delete the user.
  2243.         F - Find another user in the USERS file.
  2244.         M - Return to the option 5 function prompt.
  2245.         N - Give the user a new password.
  2246.         P - Toggle the printer flag to print entries on the printer.
  2247.         Q - Quit and return to the main message prompt.
  2248.         R - Reset the user's graphic mode.
  2249.         S - Set the security level of the user.  This can be used to lockout or
  2250.             grant special privileges to the user. 
  2251.         X - Modify user's upload/download counts.
  2252.         # - locate any record number within the USERS file.
  2253.         $ - Change the user's Registration date.
  2254.  
  2255.     In <M>odify  mode a  record will  be displayed  followed  by a  subfunction
  2256.     prompt for action.   To get to  a specific record the record  number can be
  2257.     entered at the prompt and if valid  that record will be displayed.  If  the
  2258.     RBBS-PC CPC17.3                                                 Page 190
  2259.  
  2260.     record number is invalid or an empty c/r is entered then the next record in
  2261.     the file will be displayed.
  2262.  
  2263.     6  - Toggles  the operator page  bell on/off.   This overrides  the "office
  2264.     hours" specified in the RBBS-PC.DEF file.
  2265.  
  2266.     7-SYSOP drop  to DOS as a remote user.  If the SYSOP has logged on remotely
  2267.     and is  running  RBBS-PC under  DOS  2.0  or greater,  this  function  will
  2268.     dynamically setup a  batch file to  assign the SYSOP  terminal as the  main
  2269.     console.  It then returns to DOS and if
  2270.             
  2271.            a.  RBBS-PC was invoked via a batch file, and if
  2272.  
  2273.            b.   that  batch  file  checks for  the  batch  file  which  RBBS-PC
  2274.     dynamically builds for SYSOP function 7, and if
  2275.  
  2276.            c.  the batch file that invokes RBBS-PC executes the batch file that
  2277.     RBBS-PC dynamically builds for SYSOP function 7, 
  2278.  
  2279.     the SYSOP  will then  see the  DOS prompt at  the remote  terminal and  can
  2280.     execute  whatever DOS commands or  programs the CTTY  command support.  DOS
  2281.     will look for COMMAND.COM to be present on the disk drive  you specified in
  2282.     parameter  105.   SYSOP function  7,  unlike "doors,"  loads in  a  copy of
  2283.     COMMAND.COM to run under the  copy that was running RBBS-PC.   Also be sure
  2284.     to  read Appendix  W  and make  sure  that you  THOROUGHLY understands  the
  2285.     limitations that DOS places on you when this option is invoked.
  2286.  
  2287.     Two areas  of caution are advised when using SYSOP function 7 under DOS 2.0
  2288.     or above.    First, each  SYSOP  should test  what  can be  done  remotely.
  2289.     Software   that reads and writes directly to the  video BIOS and does other
  2290.     things that   bypass  the standard  input and  output of  DOS simply  won't
  2291.     function correctly.   Second,  you should be aware that you are  in DOS and
  2292.     can return to RBBS-PC  only by issuing the EXIT command.   This will return
  2293.     to the batch  file that was built  dynamically by RBBS-PC.   This file will
  2294.     then continue executing  and is designed  to reassign  the keyboard as  the
  2295.     console and then re-invoke RBBS-PC.   If you get disconnected while in DOS,
  2296.     your  system  will be  locked up.   The  console will  be assigned  to your
  2297.     communication port and your modem will have dropped the line and  will have
  2298.     been set not  to auto-answer.   The  only way to  restore the  system is  a
  2299.     manual power off/on sequence.
  2300.     RBBS-PC CPC17.3                                                 Page 191
  2301.  
  2302.     15.2 SYSOP Use of Function Keys and Numeric Pad
  2303.     -----------------------------------------------
  2304.     The following  function keys are  designed to give the  SYSOP special local
  2305.     controls that can  be actuated while RBBS-PC is waiting for calls, or while
  2306.     a caller is online.
  2307.  
  2308.     F1 -  Return to DOS.   This is  only active when  RBBS-PC is waiting  for a
  2309.     call.  When  the SysOp presses F1,  RBBS-PC takes the modem  "off hook", so
  2310.     incoming calls will get a busy signal.  It then creates a  file in the same
  2311.     directory as  the CALLERS  file named  RBBSxF1.DEF  ("x" is  the node  ID).
  2312.     RBBS-PC then returns to DOS.  The invoking  batch file should check for the
  2313.     presence of the  RBBSxF1.DEF file and halt  if it is present  after running
  2314.     RBBS-PC.
  2315.  
  2316.     F2 - SHELL to DOS.   RBBS-PC remains resident but suspended in  memory, the
  2317.     user (if any) remains on-line and the local SYSOP is in DOS until the  EXIT
  2318.     command is issued (returning to within RBBS-PC just prior to having pressed
  2319.     the F2 key).  The users session is not terminated -- only suspended.
  2320.  
  2321.     F3 - Printer toggle on/off.  This changes the printer on-line status.  When
  2322.     on-line,  the printer  will  print  each caller's  name  and the  filenames
  2323.     uploaded/downloaded.   It  will also  print all unexpected  error messages.
  2324.     This function should  only be turned ON  when a printer is attached  to the
  2325.     RBBS-PC computer and  is ready to  print.  When the  printer toggle is  on,
  2326.     "LPT" will be displayed in positions 8-11 of line 25.
  2327.  
  2328.     F4 - Operator  page toggle.   This changes the  status of "operator  annoy"
  2329.     (i.e. allows  the SYSOP to be pageable).  Operator page time limits are set
  2330.     by  CONFIG parameter  7.   This toggle  will override  the SysOp's  "office
  2331.     hours."  When the "operator annoy" toggle is on, "ANY" will be displayed in
  2332.     positions 5-7 of line 25.
  2333.  
  2334.     F5 - Forces RBBS-PC to tell the modem to answer the phone.
  2335.  
  2336.     F6-  SYSOP  available.   This  changes  the  status of  operator  available
  2337.     setting.   This is useful  if during  your "office  hours" you  temporarily
  2338.     don't wish to be disturbed.   When the SYSOP available toggle  is on, "AVL"
  2339.     will be displayed in positions 1-3 of line 25.
  2340.  
  2341.     F7- SYSOP  gets control of  the system after  current user logs off.   When
  2342.     this toggle is on, "SYS" will be displayed in positions 13-15 of line 25.
  2343.  
  2344.     F8 - Allows the SYSOP to grant an on-line user temporary SYSOP privileges. 
  2345.     This is a toggle on/off switch.
  2346.  
  2347.     F9 - SNOOP toggle.   This key switches  SysOp SNOOP on/off.  When  SNOOP is
  2348.     OFF, the local screen will clear.  When SNOOP is ON, the  local screen will
  2349.     be updated to reflect what the RBBS-PC user is seeing.
  2350.  
  2351.     F10- This is  the forced chat  switch.  It announces  your presence to  the
  2352.     caller and then allows both you and the caller to type and see each other's
  2353.     words.   The ESC  key is  used to  exit Forced chat  mode or  to answer  an
  2354.     "O>perator page"  request.   The F10  key will  not function  until a  user
  2355.     logging on has reached the Main Menu.
  2356.  
  2357.     END -  Informs the  current caller that  the SysOp  needs the  system, then
  2358.     updates his user record and politely logs him off.
  2359.     RBBS-PC CPC17.3                                                 Page 192
  2360.  
  2361.     CTRL-END-  Logs off and locks out  the current user that  is on and informs
  2362.     the user that their presence is unacceptable.
  2363.  
  2364.     PgUp - Displays information  about the current  user.  This information  is
  2365.     only displayed on the local screen.  The user's screen is unaffected.
  2366.  
  2367.     PgDn - Clear the local screen (used to remove information displayed via the
  2368.     PgUp key).
  2369.  
  2370.     LEFT
  2371.     ARROW  -  Subtracts  one  minute  from the  user's  current  session  time.
  2372.     Ctrl/Left Arrow  subtracts five  minutes  from the  user's current  session
  2373.     time.
  2374.  
  2375.     RIGHT
  2376.     ARROW-Adds one minute to the user's current session time.  Ctrl/Right Arrow
  2377.     adds five minutes to the user's current session time.
  2378.  
  2379.     UP
  2380.     ARROW-) allows the local SYSOP to increment an on-line users security level
  2381.     by one.  CTRL-up-arrow will increase the security by 5.
  2382.  
  2383.     DOWN
  2384.     ARROW -) allows  the local  SYSOP to  decrement an  on-line users  security
  2385.     level by one.  CTRL-down-arrow will decrease the security by 5.
  2386.  
  2387.     Some keyboards do not recognize  the CTRL-Up or CTRL-Down.   To accommodate
  2388.     this, the CTRL-PgUP and CTRL-PgDn can be used instead.
  2389.  
  2390.     The SYSOP can also enter commands on the command prompt line while a caller
  2391.     is  on-line.   The command entered will cause the system to respond just as
  2392.     it would if the caller  had entered the command.  This should  be used with
  2393.     caution because it could confuse a new system user -- users are often timid
  2394.     enough without  knowing that big  brother is  actually watching them!   Let
  2395.     callers page  you and then tell them  that you can assist  with commands if
  2396.     they get into trouble.
  2397.     RBBS-PC CPC17.3                                                 Page 193
  2398.  
  2399.     16.  MESSAGE AREAS WITHIN RBBS-PC
  2400.     ---------------------------------
  2401.     RBBS-PC is intended to be an open system.  As such it can have an unlimited
  2402.     number of  message areas and messages.  At the  very minimum, RBBS-PC has a
  2403.     single
  2404.  
  2405.          1.)  message area, a file named MESSAGES,
  2406.  
  2407.          2.)  user file, a file named USERS, and
  2408.  
  2409.          3.)  definition file, a file named RBBS-PC.DEF
  2410.  
  2411.     In addition to  this, additional messages  areas can  be created as  either
  2412.     "conferences" (i.e.  areas that use  the same RBBS-PC.DEF file  as the main
  2413.     RBBS-PC message area) or "sub-boards" (i.e. areas that have their own  .DEF
  2414.     file).
  2415.  
  2416.     16.1 "Conferences" and "Sub-boards" -- the Differences
  2417.     ------------------------------------------------------
  2418.     A "conference" or "sub-board" can be:
  2419.  
  2420.          1. "public" -- any caller can join.
  2421.  
  2422.          2. "public  with a  separate user  file" --  any caller  can join  and
  2423.     RBBS-PC remembers the  last message read by  each caller and will  notify a
  2424.     caller on logon that new mail is waiting.
  2425.  
  2426.          3.  "semi-public" --  only callers  with security  levels equal  to or
  2427.     greater than that specified for the conference can join.
  2428.  
  2429.          4.  "semi-public with  a  separate  user file"  --  only callers  with
  2430.     security  levels equal to or greater than that specified for the conference
  2431.     can join and  RBBS-PC remembers the  last message read  by each caller  and
  2432.     mail waiting.
  2433.  
  2434.          5. "private with a  separate user file" -- only callers  who have been
  2435.     pre-registered in the separate  user file for  the conference can join  and
  2436.     RBBS-PC remembers the last message read and mail waiting.
  2437.  
  2438.     A "sub-board" is just a conference that also has a configuration definition
  2439.     file (.DEF).   Sub-boards can be public, private, or semi-private.   Access
  2440.     to a sub-board is controlled by the configuration parameter 123  which sets
  2441.     the  minimum  security  level  required   to  enter  the  "sub-board."    A
  2442.     "sub-board"  configuration file  has the  same format  as the  RBBS-PC main
  2443.     configuration  file, and  is created  and  edited using  CONFIG.EXE.   This
  2444.     allows  a  "sub-board" to  have  its  own  unique welcome  file,  commands,
  2445.     security levels, menus, help, bulletins,  directories, and up and  download
  2446.     areas.   "Sub-boards" can share as much or  as little as desired with other
  2447.     conferences or other "sub-boards" within the same RBBS-PC system.  The only
  2448.     things a "sub-board" cannot  change are the primary  MESSAGES file and  the
  2449.     communications parameters used by the RBBS-PC it is running under.
  2450.     RBBS-PC CPC17.3                                                 Page 194
  2451.  
  2452.     To  the caller,  a "sub-board"  appears just  like another  bulletin board,
  2453.     accessed from a bulletin board rather than through a telephone number.
  2454.  
  2455.     Public  sub-boards, just  like  public  boards,  are  those  whose  minimum
  2456.     security  to join is  not higher than  the default security  for new users.
  2457.     "Sub-boards"  basically  allow  a single  telephone  number  to offer  very
  2458.     different types and levels of services.  Independent "sub-boards" run under
  2459.     the  same  RBBS-PC  service radically  different  types  of terminals/PC's.
  2460.     Within the same RBBS-PC,  one "sub-board" may have 80 column  menus for IBM
  2461.     and compatible PC callers, another may  have 40 column menus for Atari  and
  2462.     Commodore PC users,  and still another may  have 20 column menus  for those
  2463.     using telecommunications  devices for the  deaf (TDD's).   No longer  is it
  2464.     necessary  to provide  three independent  telephone numbers for  three such
  2465.     different services.  All callers can dial the same number and simply switch
  2466.     over to the appropriate board.  Extra lines can be added to a roll-over and
  2467.     service all the  boards.  "Sub-boards" make it much easier and feasible for
  2468.     a SYSOP to market bulletin board services by allowing hardware to resources
  2469.     to be pooled under one software "umbrella"  such as RBBS-PC and yet service
  2470.     a very  diverse set of  requirements -- much  the same way  that Compuserve
  2471.     does.  One  of the best  hardware configurations for running  a multi-board
  2472.     service  like this  is  PC-Slaves,  because  adding additional  boards  are
  2473.     extremely easy, with virtually no system degradation.
  2474.  
  2475.     "Sub-boards"  greatly benefit  "umbrella" organizations.    For example,  a
  2476.     computer  club that covers IBM computers,  Apple, Atari, and Commodore.  No
  2477.     longer does software intended for one type of computer have to get mixed in
  2478.     with listings  for another  computer.   Each  computer  can have  not  only
  2479.     separate messages, but bulletins and directories as well.
  2480.  
  2481.     "Sub-boards"  make it easy  to have different "levels"  of service based on
  2482.     security level.   Many SYSOPs run both a "free" and a "subscription" board.
  2483.     The most typical arrangement for  this is to have the free board  be on the
  2484.     bottom of a  telephone roll-over and the pay  board be on the  top, and for
  2485.     the top board to require a higher security level.  Non-subscribers who call
  2486.     the pay board number get "kicked" off the board.  "Sub-boards"  on the same
  2487.     telephone line would give both  paying and non-paying callers equal access,
  2488.     if  desired.  Another  example is that  callers with enhanced  security can
  2489.     join a  sub-board to  get access  to even  more downloads.   Or,  executive
  2490.     officers for an organization can have access  to a "sub-board" that has not
  2491.     only special messages but special bulletins and files.
  2492.  
  2493.     The naming conventions of the files associated with a "conference" or "sub-
  2494.     board", for example called CLONES, would be:
  2495.  
  2496.     CLONESM.DEF    --- the message file
  2497.     CLONESU.DEF    --- the user file
  2498.     CLONESW.DEF    --- the "welcome" file (for conferences only)
  2499.     CLONESC.DEF    --- the configuration file (for "sub-boards" only)
  2500.  
  2501.     Using the configuration .DEF file associated with a "sub-board" allows each
  2502.     SYSOP  to  make the  "sub-boards" as  unique  or similar  as desired.   Two
  2503.     security levels are very important.   The minimum security to log on to the
  2504.     board determines who  can join the  "sub-board".  And the  default security
  2505.     level is what newly added callers are assigned.
  2506.  
  2507.     A  "sub-board", like any  conference (public, semi-private,  or private) is
  2508.     closed  to  all who  have  insufficient security.   To  make  a "sub-board"
  2509.     RBBS-PC CPC17.3                                                 Page 195
  2510.  
  2511.     completely  private,  simply set  the  minimum  CONFIG parameter  123  (the
  2512.     minimum security level a  new user needs  to logon) to  be higher than  any
  2513.     normal caller  would have.  The only  way for callers to be  able to join a
  2514.     completely private "sub-board", like a  private conference is for the SYSOP
  2515.     to have added them previously to the users file associated with  that "sub-
  2516.     board".
  2517.  
  2518.     The  security level a  caller gets when auto-added  is the default security
  2519.     level for the "sub-board" and not the current security level of the caller.
  2520.     This is to  prevent special privileges that a caller has in one "sub-board"
  2521.     from  automatically propagating into  other "sub-boards".   For  example, a
  2522.     caller with SYSOP privileges in one  "sub-board" who joins another does not
  2523.     become receive SYSOP privileges in the other.
  2524.  
  2525.     The security level used to determine what "sub-boards" a caller can join is
  2526.     not the current security level  but the original security level  the caller
  2527.     had on the main board.
  2528.  
  2529.     RBBS-PC detects if the bulletins in the "sub-board" are the same  as in the
  2530.     main  RBBS-PC system  and does not  re-display them  when a  "sub-board" is
  2531.     joined.
  2532.  
  2533.     "Sub-boards",  public conferences,  semi-private  conferences, and  private
  2534.     conferences can all co-exist within the same RBBS-PC system.  Sub-boards in
  2535.     turn can  have sub-boards in  them, as  well as  public, semi-private,  and
  2536.     private conferences.
  2537.  
  2538.     The  primary  disadvantage  of  "conferences"  or  "sub-boards"  that  have
  2539.     separate user files associated with them  is the additional disk space that
  2540.     is required for the users file.   RBBS-PC's CONFIG parameter 290 allows the
  2541.     SYSOP to  let a user on as  a "guest" if there is no  more room left in the
  2542.     users  file  for  the  "sub-board",  semi-private  conference,  or  private
  2543.     conference.  Not  having a user record  defeats one of the  main mechanisms
  2544.     for remembering  a user's preferences, of  course, but the SYSOP  can start
  2545.     with a  smaller users  file and expand  later without  the risk  of denying
  2546.     callers access.
  2547.  
  2548.     Obviously, "sub-boards" take more time to set up and maintain.  While it is
  2549.     nice to  be able to have parts of  RBBS-PC vary radically from one another,
  2550.     every one  that does vary  is another item  to create and maintain.   "Sub-
  2551.     boards"  can  multiply  the  work   necessary,  for  example,  to  maintain
  2552.     bulletins.  There  are more users and  message files to oversee.   However,
  2553.     Kim Wells MU-EDIT is  an invaluable tool for managing  multiple message and
  2554.     user files.  Give  Kim's RBBS-PC call at (301) 599-7651/7652 and get a copy
  2555.     of MU-EDIT.
  2556.     RBBS-PC CPC17.3                                                 Page 196
  2557.  
  2558.     16.2 Making a "Conference" or "Sub-board" Successful
  2559.     ------------------------------------------------------
  2560.     To make a "conference" or "sub-board" successful several guidelines should
  2561.     be followed rather rigorously:
  2562.  
  2563.     1.   Establish a  "conference" or  "sub-board" chairman  (i.e. a SYSOP)  to
  2564.     manage  the conference.  The SYSOP's job  is to  add new users,  delete old
  2565.     ones,  make sure that  the subject and/or  the agenda of  the conference is
  2566.     adhered  to  by killing  messages  that are  inappropriate.   This  is best
  2567.     accomplished  by having  a  separate  user file  for  each "conference"  or
  2568.     "sub-board" in  which the  caller only  has SYSOP  privileges  when in  the
  2569.     specific "conference" or "sub-board."
  2570.  
  2571.     2.  Establish an "agenda" or list of subject areas  for the "conference" or
  2572.     "sub-board."   One of these should be about new subject areas.  These areas
  2573.     should be  VERY narrow  in scope.   The essence of  any good  conference is
  2574.     keeping  it focused.  Everyone has been  in at least one meeting/conference
  2575.     that was a waste of time because whoever was running the meeting/conference
  2576.     did not keep the dialogue centered on the subject or agenda.
  2577.  
  2578.     3.  If a continuity of dialogue is to be achieved, it  is advisable to keep
  2579.     the  conference "focused"  -- either  by keeping  the number  of conference
  2580.     members limited,  or by keeping  the subject  matter very narrow.   Another
  2581.     interesting thing about "private" conferences and sub-boards as implemented
  2582.     within RBBS-PC is  that they are not "public" and, therefore, are even more
  2583.     protected by the first, fourth, and fifth amendments.
  2584.     RBBS-PC CPC17.3                                                 Page 197
  2585.  
  2586.     16.3 Setting Up a "Conference" or "Sub-board"
  2587.     ---------------------------------------------
  2588.     The SYSOP sets up a "conference" using  the CONFIG utility parameter 167 to
  2589.     pre-format up to  two files -- one for  the messages to be  associated with
  2590.     the conference and  one for the users  to be associated with  a conference.
  2591.     The file name for a "conference" can be any seven characters that are valid
  2592.     for a file name.  The eighth character must be a "M" (for the messages file
  2593.     associated the conference) or a "U" (for the users file associated with the
  2594.     conference).  The SYSOP can then enter the conference member's names in the
  2595.     conference USERS file  by using the SYSOP function 5.  The SYSOP can "join"
  2596.     any conference and need not be in any particular conference's USERS file.
  2597.  
  2598.     Like "conferences",  RBBS-PC supports an unlimited number of  "sub-boards".
  2599.     "Sub-boards" are  equally easy to  create.   If CLONES were  the name of  a
  2600.     public conference (the  CLONES message file  CLONESM.DEF exists), all  that
  2601.     would   have to be done to make CLONES a "sub-board" would be to run CONFIG
  2602.     to
  2603.          1.) create a separate user's file, CLONESU.DEF, for this formerly
  2604.              public conference (if didn't already have a users file),
  2605.  
  2606.          2.) create a  "sub-board"  configuration file for the CLONES
  2607.              "sub-board" (a file whose name would be ATARIC.DEF).
  2608.  
  2609.     The easiest way to make a "sub-board" configuration  file is to use the DOS
  2610.     copy command, starting with another configuration file as a model (e.g. the
  2611.     one for the  main board).  To  continue with the  CLONES example you  would
  2612.     issue the DOS command:
  2613.  
  2614.                COPY RBBS-PC.DEF  CLONESC.DEF
  2615.  
  2616.     Then invoke CONFIG.EXE to edit that file, using the form
  2617.  
  2618.                        CONFIG CLONESC.DEF
  2619.  
  2620.     WARNING!!   When you create a .DEF  file by copying another one as a model,
  2621.     be sure to run CONFIG against this new file and change the message and user
  2622.     file names!  Otherwise your sub-board will share the user file with another
  2623.     message  base.  Here  change the message  file name to  CLONESM.DEF and the
  2624.     user file name to CLONESU.DEF.   The users file name can be  anything for a
  2625.     "sub-board"  but  the extension  .DEF  is  a  good idea  because  RBBS-PC's
  2626.     security  system will not  let any file with  that extension be downloaded.
  2627.     Remember, you do not want to allow callers to download any users file!  You
  2628.     get  an  extra  layer of  protection  if  you put  the  message,  user, and
  2629.     configuration files in an area not available for downloading.
  2630.     RBBS-PC CPC17.3                                                 Page 198
  2631.  
  2632.     16.4 Establishing a "Conference" or "Sub-board" SYSOP
  2633.     -----------------------------------------------------
  2634.     RBBS-PC has  one of the  more flexible and powerful  systems for supporting
  2635.     "assistant sysops"  or "conference  moderators".  A  moderator need  not be
  2636.     made a full sysop, and whatever security a moderator has, does not transfer
  2637.     to the rest of the board.   Moderators need two basic functions:
  2638.  
  2639.               1.   read and kill all messages,
  2640.  
  2641.               2.   add and modify users, and
  2642.  
  2643.               3.   forward mail to a better person to answer it.
  2644.  
  2645.     The  ability to do  user edits is  controlled by the  security specified by
  2646.     sysop function 5.   Incidentally, moderators cannot edit  user records with
  2647.     security higher than theirs.  The ability  to read and kill all messages is
  2648.     controlled  by a  security level  specified  in CONFIG.   RBBS-PC  supports
  2649.     having  separate user  files  for  every message  area,  so that  moderator
  2650.     privileges in one area do not necessarily transfer to others.
  2651.  
  2652.     To set up a conference or sub-board moderator,  the SYSOP need only
  2653.  
  2654.         1.    "Join" the conference or sub-board.
  2655.  
  2656.         2.    Use SYSOP  function 5 to enter the name of the user who is to  be
  2657.               the conference chairperson into the conference's USERS file.
  2658.  
  2659.         3.    Set that users security  level in the conference's USERS file  to
  2660.               a security level that can issue the SYSOP function 5.   This will
  2661.               allow the conference chairman to add users.
  2662.  
  2663.         4.    Set the  minimum security to  read and kill  all messages to  the
  2664.               level of the moderator.
  2665.  
  2666.             5.     Set the minimum  security to change the minimum  security to
  2667.                    read  a message  to the  security level  of the  moderator. 
  2668.                    This will allow the moderator to forward everyone's mail.
  2669.  
  2670.     Any registered  user can  join a  "public" conference  or sub-board.   When
  2671.     someone issues the  J)oin command to join a conference  or sub-board, their
  2672.     standard security  level is  temporarily superseded  by the  security level
  2673.     associated with their  user name  within that  conference's or  sub-board's
  2674.     USERS file if it is a "private" conference.
  2675.  
  2676.     For example, a  normal user  might be  given the security  required to  add
  2677.     users to a particular conference or sub-board USERS file since they are the
  2678.     SYSOP of that message area.  When  a user joins the conference or sub-board
  2679.     of which they are chairman, their normal security is bumped up so that they
  2680.     can add users to the USERS file  of that particular message area.  When the
  2681.     same user  exits that  message area,  their security  level is returned  to
  2682.     normal.  If  they should subsequently join another message  area where they
  2683.     are not chairman, they would  be unable to add users to that message area's
  2684.     USERS  file.  Other than a  message area's SYSOP, none  of the message area
  2685.     members should be given any higher security  than they otherwise enjoy as a
  2686.     regular RBBS-PC user.
  2687.     RBBS-PC CPC17.3                                                 Page 199
  2688.  
  2689.     17. CALLERS AUTOMATIC NOTIFICATIONS OF MAIL WAITING
  2690.     ---------------------------------------------------
  2691.     RBBS-PC has the ability to notify callers  about mail waiting for them when
  2692.     they log on.  Callers can be notified for any pair of user/message files
  2693.  
  2694.          (a) how many new messages were left, and
  2695.          (b) whether any new messages are to them personally.
  2696.  
  2697.     RBBS-PC can be  configured such that the messages  individually reported by
  2698.     number to the  caller when the caller  logs on are all messages  (i.e. both
  2699.     old and new,  or just new messages since  the caller last logged on,  or   
  2700.     no messages at all via CONFIG parameter 19.  Of course, RBBS-PC allows  the
  2701.     SYSOP to determine if callers are reminded of the mail they have left.
  2702.  
  2703.     In a file  specified in CONFIG parameter 93  (the default is CONFMAIL.DEF),
  2704.     the  SYSOP can  list the message/user  file combinations to  check for mail
  2705.     waiting in the format
  2706.  
  2707.                <user file>,<message file>
  2708.  
  2709.     where these are related conference file names.  If it is assumed that RBBS-
  2710.     PC is running in a DOS subdirectory  off of the main root directory of  the
  2711.     "C:" drive and  that there are two  conferences, RBBS-PC and BETA,  then an
  2712.     example of the contents of the CONFMAIL.DEF file is:
  2713.  
  2714.                 C:\RBBS\BETAU.DEF,C:\RBBS\BETAM.DEF
  2715.                 C:\RBBS\RBBS-PCU.DEF,C:\RBBS\RBBS-PCM.DEF
  2716.  
  2717.     The names are processed exactly as typed, so inclusion of the drive/path is
  2718.     necessary.   The SYSOP  controls what conferences  get checked  for mail by
  2719.     listing  these file  pairs.  Conferences  not listed  will not  be checked.
  2720.     Callers will get a report only  for conferences that they are a  member of.
  2721.     Two items of information are reported:
  2722.  
  2723.          number of new messages since last in the conference, and
  2724.          whether any new messages are address to the caller.
  2725.  
  2726.     The  name used in RBBS-PC for the main  message base is taken from the file
  2727.     name for the message base.  As with conferences - if the prefix of the user
  2728.     file ends  with "M",  the name will  be the  composed of  all but the  last
  2729.     character.  If the name is "MESSAGES", it will be called "MAIN".  Otherwise
  2730.     the main message base will be called the full prefix.
  2731.  
  2732.     The main message base  and users file can be included in  the list to scan.
  2733.     You may want to coordinate  the USERS and MESSAGES  file names in the  same
  2734.     fashion that conference user files  and message file names are coordinated.
  2735.     If the main  message base is to be  known as TOP then call  it TOPM.DEF and
  2736.     call the users TOPU.DEF.  RBBS-PC will just as well with  the default names
  2737.     USERS and MESSAGES and call the main message base MAIN.
  2738.  
  2739.     There are 3 philosophies that can be implemented on message reporting using
  2740.     the CONFIG parameter 19:
  2741.  
  2742.          1.  Report everything.
  2743.  
  2744.          2.  Make a fast minimal report.
  2745.     RBBS-PC CPC17.3                                                 Page 200
  2746.  
  2747.          3.  Make an optimum intermediate report.
  2748.  
  2749.     Reporting  everything means  reminding callers of  messages they  left, and
  2750.     give the  messages numbers of old and new mail.  To do this it is necessary
  2751.     to set configuration parameters to remind callers of old mail and to report
  2752.     ALL messages to caller.  Also place "sub-boards" and private conferences in
  2753.     the mail scan list of CONFMAIL.DEF.
  2754.  
  2755.     Making a fast minimal report means that callers will not be reminded of old
  2756.     messages, specific message numbers will not be list, only the number of new
  2757.     messages and whether any are personal will be reported.  This option is for
  2758.     when  you want people  to get the  caller to the  command level  as fast as
  2759.     possible.  For example, the main message base is not even used.  To do this
  2760.     set  configuration parameters  to  NOT remind  callers of  old mail  and to
  2761.     report NO messages to caller.  Put  the main message base as well as  "sub-
  2762.     boards" and private conferences in the mail scan list of CONFMAIL.DEF.
  2763.  
  2764.     Providing an optimum intermediate report means reporting individual message
  2765.     numbers only for the new mail as well as # of new messages (and whether any
  2766.     personal).  The best way to implement this is to set the level of reporting
  2767.     messages to the caller to New Only  and to put all "sub-boards" and private
  2768.     conferences in the mail scan list of CONFMAIL.DEF.  Set CONFIG parameter 21
  2769.     to NOT remind callers of old mail.
  2770.     RBBS-PC CPC17.3                                                 Page 201
  2771.  
  2772.     18.  RBBS-PC QUESTIONNAIRE FACILITIES
  2773.     -------------------------------------
  2774.     RBBS-PC  provides a  script-driven questionnaire  facility.   RBBS-PC  will
  2775.     process a questionnaire when a NEW  caller logs in, before any caller  logs
  2776.     off, or the user can select a questionnaire  from a menu.  To ask new users
  2777.     questions  the  file named  in  CONFIG parameter  84  must exist.    To ask
  2778.     questions  of  users when  they  say  G>oodbye  the  file named  in  CONFIG
  2779.     parameter 85 must exist.  Questionnaires can also raise or lower the user's
  2780.     security level  based on his/her  responses.  Answers to  the questionnaire
  2781.     are appended to a file specified in each questionnaire script.
  2782.  
  2783.     RBBS-PC will  only activate the  corresponding script files if  they exist,
  2784.     otherwise the functions are bypassed.
  2785.  
  2786.     The questionnaire script processor supports:
  2787.  
  2788.          o Branch to labels (forward and back branching)
  2789.          o Display lines
  2790.          o Display line and get response
  2791.          o Response validation (Multiple choice)
  2792.          o Numeric validation
  2793.          o Raising and lowering user security level
  2794.          o Aborting the questionnaire
  2795.          o Chaining to another questionnaire
  2796.          o Invoke a macro from within a questionnaire
  2797.          o "Turbo" key can be turned on from within a questionnaire
  2798.  
  2799.     The first  line in every script  file must contain the file  name where the
  2800.     responses to the script will be appended, and the maximum security  level a
  2801.     user  can be  raised to.    The rest  of each  script file  contains script
  2802.     commands.  Script commands  are 1 character in length and must be in column
  2803.     1 of each script line.
  2804.  
  2805.     Following is a list and description of valid script commands:
  2806.  
  2807.          :  A colon indicates a label command
  2808.          *  An asterisk indicates a display data command
  2809.          ?  A question mark indicates a display and wait for response command
  2810.          =  An equal sign indicates a multiple choice branch command
  2811.          >  A greater than symbol indicates a goto command
  2812.          +  A plus sign indicates a raise security level command
  2813.          -  A minus sign indicates a lower security level command
  2814.          @  An "at" sign means to abort questionnaire and do not write results
  2815.          &  An ampersand means to establish a questionnaire chain
  2816.          T  The letter "T" turns on the "turbo" key mode
  2817.          M  The letter "M" executes a "macro"
  2818.          >  Assigns a value to a work variable
  2819.  
  2820.     CONFIG parameter  94 controls the maximum number of work variables that can
  2821.     be handled by questionnaires.
  2822.  
  2823.     RBBS-PC  questionnaires   even   support   "graphics"   versions   of   the
  2824.     questionnaires.   Graphics versions  use the standard  convention of ending
  2825.     the filename with "C" for  color graphics and "G" for ansi graphics.   E.g.
  2826.     HLPRBBSC.DEF and HLPRBBSG.DEF are graphics versions of HLPRBBS.DEF.
  2827.     RBBS-PC CPC17.3                                                 Page 202
  2828.  
  2829.     18.1 Branching to Labels 
  2830.     ------------------------
  2831.     :  Colon (Label command)
  2832.        This command  is used to provide labels that can be branched to from =  
  2833.     and > commands.
  2834.  
  2835.                 :QUESTION1
  2836.  
  2837.     Numeric labels are  not recommended because  they are easy to  confuse with
  2838.     work  variables.   SmartText variables  will  be interpreted  as such,  eg.
  2839.     ":-{FN"  will  substitute  the  user's  first name.    SmartText  and  Work
  2840.     Variables are dynamically  substituted into all  questionnaire lines.   For
  2841.     example, 
  2842.  
  2843.              >-.[8].-
  2844.  
  2845.     will substitute the value  of work variable 8 for  "[8]", so that if 8  has
  2846.     "edit" as its value, it will go to the  label "-.edit.-".
  2847.  
  2848.     The ability to  get and substitute  values, and to have  graphics versions,
  2849.     means that questionnaires can  support many of the features  of full screen
  2850.     editing, including transmitting a template, then overlaying values into the
  2851.     template.  An example that shows the power of questionnaires is
  2852.  
  2853.              ?29Change what field (1,2,...20)
  2854.              ?[29]Change field [29]. from [[29]] to
  2855.  
  2856.     This asks which field to change and stores answer in work variable 29 (i.e.
  2857.     value  of work variable 29 is  "7").   The  second question then stores the
  2858.     answer in  the value  of work variable  29, displays  the name of  the work
  2859.     field being changed,  and then displays the old value of the work variable.
  2860.     Suppose that the  value of work variable 7  is "Yes".   Then  the series of
  2861.     substitutions RBBS-PC makes into the second line before executing it are:
  2862.  
  2863.              ?7Change field [29]. from [[29]] to
  2864.              ?7Change field 7. from [[29]] to
  2865.              ?7Change field 7. from [7] to
  2866.              ?7Change field 7. from Yes to
  2867.     RBBS-PC CPC17.3                                                 Page 203
  2868.  
  2869.     18.2 Display Data Command
  2870.     -------------------------
  2871.     *  Asterisk (Display data command)
  2872.        This command is  used to send data  to the user.   Smart Text and  Macro
  2873.     commands are interpreted before display (see section 8.8 for marcro command
  2874.     reference).  "*/FL" will not display the "/FL" because it is interpreted as
  2875.     a  macro command.   If  you want  to  work variables  to overlay  a display
  2876.     template, keeping it's length (e.g.  for columnar display), put "/FL" after
  2877.     the "*".  E.g. if variable 1 has value "12345" and 2 has "abcdef", then
  2878.  
  2879.                 */FL.[1]....[2]......
  2880.  
  2881.        will display ".12345..abcdef...", whereas
  2882.  
  2883.                 *.[1]....[2]......
  2884.  
  2885.        will display ".12345....abcdef......".
  2886.  
  2887.     One of the more useful capabilities of macros  that questionnaires can make
  2888.     use of is the ability to append data to any work file, where work variables
  2889.     are merged into a form.   This allows the questionnaire data to be saved in
  2890.     virtually any format desired.
  2891.  
  2892.     The other extremely useful macro capability that questionnaires can utilize
  2893.     is the ability to retrieve data from a file into a form, in effect adding a
  2894.     data based file retrieval capability.
  2895.  
  2896.     18.3 Display Data And Get Response
  2897.     ----------------------------------
  2898.     ?  Question mark (Display data and get response)
  2899.        This command is used to send data to the user and wait for a response.  
  2900.      The user will be required to input a  response.  The ENTER key alone is an
  2901.     invalid response.  No other checks are made.
  2902.  
  2903.              ?DO YOU OWN YOUR OWN PC? (Y/N)
  2904.  
  2905.     The prompt command  accepts an optional number which  is interpreted as the
  2906.     number of the Work Variable to store the answer in.  For example, "
  2907.  
  2908.               ?8Enter Dept
  2909.  
  2910.     will store the answer  not only in the regular way  for a questionnaire but
  2911.     also in work variable 8.
  2912.     RBBS-PC CPC17.3                                                 Page 204
  2913.  
  2914.     18.4 Multiple Choice Response
  2915.     -----------------------------
  2916.     =  Equal sign (Response validation - Multiple choice)
  2917.        This  command  is used  in  conjunction  with  the ?  command  and  must
  2918.     immediately follow the ? command for which it applies.  This command allows
  2919.     for  checking/editing  of single  character  responses to  the  preceding ?
  2920.     command  and allows  branch logic  to be  exercised based  on the  response
  2921.     given.   Multiple = commands  must be coded on  the same line.   The format
  2922.     follows:
  2923.  
  2924.        =AXXXXXXXXX=BYYYYYYYYY= ZZZZZZZZZZ
  2925.  
  2926.        =  Indicates that a single character comparison value follows
  2927.        A  Is the comparison value
  2928.        X  Is the label to branch to if the response is "A"
  2929.        =  Indicates that a single character comparison value follows
  2930.        B  Is the comparison value
  2931.        Y  Is the label to branch to if the response is "B"
  2932.        =  Indicates that a single character comparison value follows
  2933.           (SPACE) This is a special comparison value that is always used as the
  2934.           last comparison value and means "INVALID" response given
  2935.        Z  Is the label to branch to if an invalid response is given
  2936.  
  2937.        Maximum line length is 255 characters and the last = on the line "MUST"
  2938.        have a comparison value of " " (SPACE).
  2939.  
  2940.                 :QUESTION1
  2941.                 ?Do you run a BBS system.  (Y/N)
  2942.                 =YQUESTION2=NQUESTION2= QUESTION1E
  2943.                 :QUESTION1E
  2944.                 *Please respond Y or N
  2945.                 >QUESTION1
  2946.                 :QUESTION2
  2947.  
  2948.        There is an additional format for the = command, where the  comparison  
  2949.     value of # (Pound  sign) is used.   This is used as  a numeric check and   
  2950.     encompasses 0-9,  (), - and space.   This format  requires two entries.    
  2951.     The first is to test for numerics and  the second is the invalid response  
  2952.     branch label (e.g. "=#QUESTION3= QUESTION2E").
  2953.  
  2954.     18.5 Forward And Backward Branching
  2955.     -----------------------------------
  2956.     >  Greater than sign (Forward and backward branching)
  2957.        This command is used  to branch to specific  labels within the script   
  2958.     file.
  2959.  
  2960.                 >QUESTION4
  2961.     RBBS-PC CPC17.3                                                 Page 205
  2962.  
  2963.     18.6 Raise/Lower User's Security Level
  2964.     --------------------------------
  2965.     +  Plus sign (Raise user security level)
  2966.  
  2967.     This command will  add the value in columns  2-6 to the default  security  
  2968.     level given new users or the current security level of old users.  
  2969.  
  2970.                +5
  2971.  
  2972.     -  Minus sign (Lower user security level)
  2973.  
  2974.     This command  will subtract  the value  in  columns 2-6  to the  default   
  2975.     security given new users or the current security level of old users.
  2976.  
  2977.                 -1
  2978.  
  2979.     18.7 Abort Questionnaire
  2980.     ------------------------
  2981.     @  At sign (Abort questionnaire)
  2982.  
  2983.     This command will terminate the questionnaire and NOT write the response
  2984.     to the output file as in the following example.
  2985.  
  2986.                 :QUESTION1
  2987.                 ?Have you answered the questionnaire before.  (Y/N)
  2988.                 =YQUESTION2=NQUESTION3= QUESTION1E
  2989.                 :QUESTION1E
  2990.                 *Please respond Y or N
  2991.                 >QUESTION1
  2992.                 :QUESTION2
  2993.                 @
  2994.                 :QUESTION3
  2995.  
  2996.     18.8 Chain Questionnaire
  2997.     ------------------------
  2998.     & Ampersand (Chain questionnaire)
  2999.  
  3000.     This command will establish the next questionnaire in the chain.   The file
  3001.     named  in  columns 2-80  will  be used  as  a continuation  to  the current
  3002.     questionnaire when the current questionnaire reaches its last line.
  3003.     i.e.   &L:\RBBS\QUESCONT.DEF
  3004.  
  3005.     18.9 Turbo Keys
  3006.     ---------------
  3007.     T Turbo Key
  3008.  
  3009.     This is used to turn on Turbo Key  for a prompt where a single keystroke is
  3010.     expected.  TurboKey  causes the next  keystroke to be  taken as the  answer
  3011.     immediately without having to press Enter, if the caller has TurboKey on.
  3012.  
  3013.     18.10  Macro Execute
  3014.     --------------------
  3015.     M Macro Execute
  3016.  
  3017.     This command is  used to execute a specified macro named after the command,
  3018.     e.g. "M  C:\RBBS\FIZ.IMC".   Control returns to  the questionnaire  after a
  3019.     macro  is executed.   One of  the most important capabilities macros add to
  3020.     RBBS-PC CPC17.3                                                 Page 206
  3021.  
  3022.     questionnaires  is the  ability to append  data to  any file in  any format
  3023.     desired.   Hence the data in questionnaires can be saved where ever desired
  3024.     in whatever format desired.  If a macro saves the data and  you do not want
  3025.     the  normal output  on  completion  of the  questionnaire,  just abort  the
  3026.     questionnaire at the  end.  Macros also  have the ability to  retrieve data
  3027.     from files and then display on the screen.
  3028.  
  3029.     18.11  Assign Value
  3030.     -------------------
  3031.     < Macro Assign
  3032.  
  3033.     This command assigns  a value  to a work  variable.   For example, "<2  XT"
  3034.     assigns value "XT" to work variable 2. 
  3035.     RBBS-PC CPC17.3                                                 Page 207
  3036.  
  3037.     19. RBBS-PC's STANDARD INTERFACE FOR PROTOCOL DRIVERS
  3038.     -----------------------------------------------------
  3039.     RBBS-PC  includes  a  flexible  interface  for  implementing  file-transfer
  3040.     protocols.  A  "protocol"  for the  exchange  of  files is  just  a  set of
  3041.     cooperative conventions  that allow  two different  computer's software  to
  3042.     transfer  files  between  themselves.   RBBS-PC  supports  four "protocols"
  3043.     within its own BASIC source code -- ASCII, Xmodem (checksum), Xmodem (CRC),
  3044.     and 1K-Xmodem.  These are totally configurable by the SYSOP when setting up
  3045.     RBBS-PC.
  3046.  
  3047.     In addition to these four "protocols" and in order to provide  advocates of
  3048.     specific  protocols  a   means  of  adding   their  particular  flavor   of
  3049.     communications protocol to RBBS-PC,  a standard interface has been  created
  3050.     so  that "external"  protocols can  be  installed in  RBBS-PC.   "External"
  3051.     protocols are simply  defined as programs outside of  RBBS-PC which perform
  3052.     the file transfer.
  3053.  
  3054.     Before calling "external" protocol drivers, RBBS-PC will do the following:
  3055.  
  3056.     1.  verify that the file exists if the file is to be downloaded.
  3057.     2.  for uploads, verify that the file name requested is valid.
  3058.     3.  pass control of the communications port to the external protocol.
  3059.  
  3060.     RBBS-PC  will call  the  external  protocol drivers  either  via the  SHELL
  3061.     command in BASIC or via a .BAT file.
  3062.     RBBS-PC CPC17.3                                                 Page 208
  3063.  
  3064.     19.1  Parameters passed to a protocol driver
  3065.     --------------------------------------------
  3066.     RBBS-PC detects the installation of external file transfer protocols via an
  3067.     optional RBBS-PC system file whose default  name is PROTO.DEF.  If no  such
  3068.     file exists,  only internal protocols  will be available --  Ascii, Xmodem,
  3069.     XmodemCRC, 1K-Xmodem.  This file  may be used to  rename or delete some  or
  3070.     all of RBBS-PC's  internal protocols.  If  a PROTO.DEF file exists,  all of
  3071.     RBBS-PC's  internal protocols must  be specified in  it as  well.  Internal
  3072.     protocols are NOT automatically included when a PROTO.DEF file exists!
  3073.  
  3074.     The protocol definition  file has thirteen (13) parameters  passed for each
  3075.     external  protocols defined  for  RBBS-PC.   Each  parameter  can  be on  a
  3076.     separate  line  of its  own  or  all parameters  can  be on  a  single line
  3077.     (separated by commas).   The parameters passed for  each protocol specified
  3078.     are:
  3079.  
  3080.               Parameter       Description
  3081.  
  3082.               1      Protocol Name
  3083.               2      Security Level required to use protocol
  3084.               3      Method to invoke protocol
  3085.               4      Whether 8 bit connection required
  3086.               5      Whether "reliable" connection required
  3087.               6      Whether "batch" mode supported
  3088.               7      Number of bytes in a block transferred
  3089.               8      Indicate transfer always successful
  3090.               9      Factor to estimate file transfer time
  3091.              10      RBBS-PC "macro" to invoke before protocol
  3092.              11      Method for checking transfer's success
  3093.              12      Template to use for downloading
  3094.              13      Template to use for uploading
  3095.  
  3096.     Protocol  Name  -- The  FIRST CHARACTER  is  the letter  by which  a caller
  3097.     selects the  protocol.  The prompt  for the selection of  protocol includes
  3098.     the  protocol name.  It is recommended that  the second character be ")" to
  3099.     resemble the rest of the prompts in  RBBS-PC, e.g. "Z)modem".  RBBS-PC will
  3100.     normally put each  protocol on the same  line, separated by a  comma, until
  3101.     the line gets too long.  The SYSOP can control the placement of the line by
  3102.     putting a carriage return  line feed at the  end of the protocol name.   If
  3103.     this  is done,  the  entire protocol  name  must be  in  parentheses.   For
  3104.     example, instead of the prompt
  3105.  
  3106.     A)scii,X)modem,C)rcXmodem,Y)modem,N)one
  3107.  
  3108.     a SYSOP may want the prompt to be
  3109.  
  3110.     A)scii (text files only)
  3111.     X)modem checksum
  3112.     C)rc Xmodem
  3113.     Y)modem (1K Xmodem)
  3114.     N - None (cancel)
  3115.     RBBS-PC CPC17.3                                                 Page 209
  3116.  
  3117.     Then the protocol definition file  , PROTO.DEF, should be constructed using
  3118.     quotes (to include the carriage return/line feed in the first parameter) as
  3119.     follows:
  3120.  
  3121.     "A)scii (text files only)
  3122.     ",...
  3123.     "X)modem checksum
  3124.     ",...
  3125.     "C)rc Xmodem
  3126.     ",...
  3127.     "Y)modem (1K Xmodem)
  3128.     ",...
  3129.     "N - None (cancel)
  3130.     ",...
  3131.  
  3132.     with the remaining 12 parameters put where "..." occurs.
  3133.  
  3134.     Security Level  -- This  is the  minimum security  to be  able  to use  the
  3135.     protocol being described.
  3136.  
  3137.     Method to  Invoke Protocol  -- A protocol  can be invoked  by one  of three
  3138.     methods:
  3139.              shell,
  3140.              door, or
  3141.              internal (S, D, or I).
  3142.  
  3143.     If "I" is specified, it must be immediately followed by a letter specifying
  3144.     what internal  protocol to  use, where  the choices are  A, X,  C, Y,  or N
  3145.     respectively for Ascii, Xmodem, Xmodem  CRC, 1K-X(Y)modem, or None  (cancel
  3146.     transfer).  "IC"  would mean to use RBBS-PC's  internal Xmodem CRC.   If no
  3147.     protocol is specified  equivalent to the internal "None",  RBBS-PC will add
  3148.     it.  If the letter N is used for a transfer protocol, another protocol must
  3149.     be specified that is equivalent to "None".
  3150.  
  3151.     Whether to Require 8 Bit -- By  putting "8" in this parameter, the SYSOP is
  3152.     specifying that the  protocol requires  the caller  to be able  to send  or
  3153.     receive 8 data bits.  If 8 data bits is required and the caller is not at 8
  3154.     bit, RBBS-PC will prompt the caller to change  to 8 bit in order to use the
  3155.     protocol.
  3156.  
  3157.     Whether A  Reliable  Connection Is  Required  --  By putting  "R"  in  this
  3158.     parameter, the SYSOP is  specifying that the protocol will not  be shown or
  3159.     made  available to the caller unless the connections is reliable (i.e. such
  3160.     as Microcom's MNP protocol that is built into many modems).
  3161.  
  3162.     Whether Batch is supported -- By  putting "B" in this parameter, the  SYSOP
  3163.     is indicating  that "batch" file  transfers are allowed with  the protocol.
  3164.     "Batch" means a  multi-file download request will be  processed together.  
  3165.     RBBS-PC  enters  an  external  protocol  only  once  to  do  multiple  file
  3166.     downloads.  RBBS-PC has been tested with such "batch" protocols as Zmodem's
  3167.     DSZ, Megalink, and Sealink.
  3168.  
  3169.     Blocksize -- This  parameter indicates the  number of bytes  in each  block
  3170.     transferred.  This is only  used to inform the caller the number  of blocks
  3171.     to expect when downloading.  A  zero in this parameters will cause  RBBS-PC
  3172.     to report only the number of bytes to expect.  For Xmodem or XmodemCRC this
  3173.     value would be 128.  For Ymodem this value would be 1024.
  3174.     RBBS-PC CPC17.3                                                 Page 210
  3175.  
  3176.     Indicate Transfers Always Successful -- If there is no way for the protocol
  3177.     to  inform  RBBS-PC if  a  transfer  was  successful,  put a  "F"  in  this
  3178.     parameter, which stands for  "Fake" a success report.  This  means that all
  3179.     transfers will be regarded as successful.
  3180.  
  3181.     Zmodem  (DSZ)  used in  a  multi-tasking  DOS  environment (where  the  DOS
  3182.     environment variables are shared) and  CLINK are examples of protocols that
  3183.     require this to be set.
  3184.  
  3185.     Factor to Estimate File Transfer Time -- This is the decimal number used by
  3186.     RBBS-PC to  estimate the  elapse time to  download a  file. The  higher the
  3187.     number, the faster the protocol and the lower the time estimate.   Standard
  3188.     equivalents in RBBS-PC are:
  3189.  
  3190.          Ascii .........  0.92
  3191.          Xmodem ........  0.78
  3192.          XmodemCRC .....  0.78
  3193.          Kermit ........  0.78
  3194.          Ymodem ........  0.87
  3195.          Imodem ........  0.90
  3196.          YmodemG .......  0.95
  3197.          Windowed xmodem  0.78
  3198.  
  3199.     If no value is specified, a default of 0.87 will be used.
  3200.  
  3201.     RBBS-PC "Macro" to Invoke  Before Protocol --  This is the RBBS-PC  "macro"
  3202.     (i.e. a  series of standard RBBS-PC commands) to invoke before invoking the
  3203.     protocol.  It can be  used to display special messages, to delay  the start
  3204.     of  the protocol,  or  to  prompt for  special  information  passed to  the
  3205.     protocol.
  3206.  
  3207.     Method  for  Checking Transfer's  Success  --  This  is required  only  for
  3208.     external protocols.   This parameter indicates how  RBBS-PC is to  detect a
  3209.     file transfer's failure.  The format is "x=y=z" where:
  3210.                x is which parameter tells whether the transfer was successful,
  3211.                y is the string which indicates failure, and
  3212.                z is an optional parameter telling RBBS-PC whether to write out
  3213.                  information needed when DOORing to a protocol in advance of
  3214.                  the file exchange.
  3215.  
  3216.     For QMXFER.EXE from John Friel and the Forbin Project, this would  be "4=F"
  3217.     - meaning the 4th parameter indicates failure if it begins with "F".
  3218.  
  3219.     For Zmodem as  implemented in DSZ from Omen Technologies, the proper choice
  3220.     depends  on whether SHELLing  or DOORing  is used.    For SHELLing,  put in
  3221.     "1=E" to indicate  that the first parameter  uses "E" to indicate  an error
  3222.     has occurred.   For  DOORing, put in  "4=E=A" to  indicate that  the fourth
  3223.     parameter uses "E" when an error has occurred.  The "=A" means that RBBS-PC
  3224.     is to  do an advance  write of  the filename and  protocol used.   DSZ then
  3225.     appends its error report to the log file.   To the file "XFER-" plus node #
  3226.     plus ".DEF" RBBS-PC will write out a line containing "<filename>,,<protocol
  3227.     letter>".  Omitting an  "=" causes a default to "4=F".  The file checked is
  3228.     "XFER-" plus the node number plus the extension "DEF".   On node 1 the file
  3229.     checked is "XFER-1.DEF".
  3230.  
  3231.     Template  to Use  for Downloading  -- This  is required  only for  external
  3232.     protocols.   It tells RBBS-PC how to  invoke a download.  See the following
  3233.     RBBS-PC CPC17.3                                                 Page 211
  3234.  
  3235.     section on discussion of "templates". 
  3236.  
  3237.     Template  to Use  for  Uploading --  This  is  required only  for  external
  3238.     protocols.  It tells RBBS-PC how to invoke an upload.
  3239.     RBBS-PC CPC17.3                                                 Page 212
  3240.  
  3241.     19.2  Calling external protocols using "templates"
  3242.     --------------------------------------------------
  3243.     A "template" is used to inform RBBS-PC  how to invoke an external protocol.
  3244.     The first  word  of the  template must  be the  file  name (including  file
  3245.     extension) of the program  to invoke.  RBBS-PC will check to make sure that
  3246.     the file exists.  If the file does not exist, the protocol will not be made
  3247.     available to the caller.
  3248.  
  3249.     RBBS-PC will dynamically substitute values for pre-defined strings inside a
  3250.     "template".   Each supported string  is enclosed in  square brackets.   The
  3251.     strings supported include:
  3252.  
  3253.     [n]       where n is a positive integer.  Substitutes value in a work array
  3254.               Macros can store the prompted  values in specific elements in the
  3255.               array.
  3256.  
  3257.     [FILE]    Name of the file (FILE.NAME$) to be transferred.
  3258.  
  3259.     [BAUD]    Baud rate.  Speed at which the caller dialed RBBS-PC.
  3260.  
  3261.     [PARITY]  Parity used by the caller.
  3262.  
  3263.     [PORT]    DOS device name for the communications port to be used for the   
  3264.               file transfer (COM1,COM2, etc.).
  3265.  
  3266.     [PORT#]   Number  of  the communications  port  to  be  used for  the  file
  3267.               transfer (1,2,3, etc.).
  3268.  
  3269.     [NODE]    Number of the RBBS-PC node invoking the file transfer (1,2,3,    
  3270.               etc.).
  3271.  
  3272.     [PROTO]   Letter of the protocol for the file transfer.
  3273.  
  3274.     Everything else in a template will be  passed intact.  If the external file
  3275.     transfer is to be invoked via a SHELL, it is recommended  that the external
  3276.     file  transfer program  be  SHELLed to  directly.    If the  external  file
  3277.     transfer is to be invoked via a DOOR, it can be either
  3278.  
  3279.          1.   DOORed to directly using the same template as for SHELLing, or
  3280.  
  3281.          2.   DOORed to indirectly via a  .BAT file with the command parameters
  3282.               passed to it by RBBS-PC.  For  example, a "door" for QMXFER might
  3283.               have a download template of:
  3284.  
  3285.     "RBBSQM.BAT [FILE] [PORT] [BAUD] [PROTO]"
  3286.  
  3287.     and the file RBBSQM.BAT have the following in it:
  3288.  
  3289.               C:QMXFER.COM -s -f %1 -l %2 -c -b %3 -p %4
  3290.  
  3291.     DOS substitutes the passed parameters  for the variables beginning with the
  3292.     percent sign.  .BAT files are  needed if additional programs to run  before
  3293.     or after the actual file transfer.
  3294.  
  3295.     The following  examples should  provide some help  in understanding  how to
  3296.     invoke external protocols:
  3297.     RBBS-PC CPC17.3                                                 Page 213
  3298.  
  3299.     Example #1:
  3300.  
  3301.     Z)ippy,5,S,8,,,,,0.98,,,"c:\utl\zippy -s [FILE]","c:\utl\zippy -r [FILE]"
  3302.  
  3303.     Can be interpreted to be:
  3304.          used "Z" as invoking letter,
  3305.          put "Z)ippy" in the prompt,
  3306.          the minimum security to use this protocol is 5,
  3307.          the protocol will be invoked via a SHELL command,
  3308.          an 8-bit connection is required,
  3309.          estimate the download time as 0.98 times as fast as normal,
  3310.          use normal RBBS-PC type of report to check for a successful transfer,
  3311.          invoke the protocol for downloads using the following string:
  3312.               "c:\utl\zippy -s [FILE]"
  3313.          and invoke the protocol for uploads using the following string:
  3314.               "c:\utl\zmodem -r [FILE]"
  3315.          where the file name is substituted for "[FILE]" in either case.
  3316.  
  3317.     Example #2:
  3318.  
  3319.     X)modem,5,IX,8,,,128,,0.8,,,,
  3320.  
  3321.     Can be interpreted to be:
  3322.          used "X" as invoking letter,
  3323.          put "X)modem" in the prompt,
  3324.          the minimum security to use this protocol is 5,
  3325.          the protocol is an internal RBBS-PC protocol,
  3326.          an 8-bit connection is required, and
  3327.          estimate the download time as 0.8 times as fast as normal.
  3328.     RBBS-PC CPC17.3                                                 Page 214
  3329.  
  3330.     19.3  Parameters Returned by a Protocol Driver
  3331.     ----------------------------------------------
  3332.     All  protocol drivers  are expected  to return  information about  the file
  3333.     transfer in a file named XFER-xx.DEF where the  value for xx is the node ID
  3334.     (1 to 36).  If the protocol cannot accommodate this minimal requirement, it
  3335.     can still be used by telling RBBS-PC  to indicate file transfers are always
  3336.     successful -- section 19.1, parameter 9.
  3337.  
  3338.     The  one  item of  information  RBBS-PC requires  to  be  returned from  an
  3339.     external protocol drive is whether or not the file transfer was successful.
  3340.     The  failure  indicator  MUST  BE  the first  character  of  any  specified
  3341.     parameter in the file XFER-xx.DEF.  To show that file transfer failures are
  3342.     indicated  by  the  first  parameter  and  the   letter  "E"  in  the  file
  3343.     XFER-xx.DEF, parameter 11  (as described in section 19.1)  would be written
  3344.     as "1=E".   To show that file transfer failures are indicated by the fourth
  3345.     parameter and the letter "F",  parameter 11 (as described in  section 19.1)
  3346.     would be written as "4=F".
  3347.  
  3348.     No other  information is required  when SHELLing to external  file transfer
  3349.     protocols.  However,  when DOORing to external file  transfer protocols the
  3350.     log file for the transfer MUST HAVE the file name as the first parameter.
  3351.  
  3352.     Protocol drivers that  do not have the file name as the first parameter can
  3353.     still be used by telling RBBS-PC to  write out three parameters (file name,
  3354.     an empty  parameter, and the  letter of the file  transfer protocol) before
  3355.     invoking the external  file protocol.  This  is done by using  parameter 11
  3356.     (as described in section 19.1).  As an example, to DOOR to an external file
  3357.     transfer  protocol that  indicates a  file  transfer failure  by using  the
  3358.     letter "F" in the fourth parameter, but which does not return the file name
  3359.     used, parameter  11  (as described  in section  19.1) would  be written  as
  3360.     "4=F=A".  The  external protocol would  then append its own  information to
  3361.     the log file.
  3362.     RBBS-PC CPC17.3                                                 Page 215
  3363.  
  3364.     19.4  The Protocol Drivers Tested With RBBS-PC
  3365.     ----------------------------------------------
  3366.     RBBS-PC has been tested with the following protocol drivers:
  3367.  
  3368.     CLINK -- From System Enhancement Associates.  Supports batch file transfers
  3369.         but requires that transfers always be assumed successful.
  3370.  
  3371.     DSZ -- From Omen Technologies.  Supports Ymodem, Ymodem Batch, YmodemG, and
  3372.         Zmodem.   YmodemG  requires  a "reliable"  connection.   DSZ  logs  the
  3373.         results  of the file transfers to a file specified in  the  environment
  3374.         variable DSZLOG.  Therefore, the AUTOEXEC.BAT file for an RBBS-PC  that
  3375.         uses DSZ should specify
  3376.  
  3377.          "SET DSZLOG=XFER-x.DEF"
  3378.  
  3379.         where  x  is the node number.   DSZ seems unable to create a  log  file
  3380.         whenever a drive or path is specified.  If invoking ZMODEM via the DOOR
  3381.         mechanism,  use the "=A" option at the end of the success method  check
  3382.         so that RBBS-PC will append the information to the DSZ log it needs and
  3383.         DSZ  will then append the success report.  In a multi-user  environment
  3384.         where  a  different  environment  variable for each  node  can  not  be
  3385.         specified  (i.e. all nodes must share the same DSZ log  file),  specify
  3386.         that  a all transfers are always successful for protocols  handled  via
  3387.         DSZ.
  3388.  
  3389.     MLINK -- MEGALINK protocol supports batch file transfers but requires  that
  3390.         transfers always be assumed successful.
  3391.  
  3392.     PC-KERMIT  --  from Columbia University.  PCKERMIT.EXE is supplied  by  The
  3393.         Source  as  a  public service and consists  of  sliding  window  KERMIT
  3394.         protocol. The development of "windowing" within the KERMIT architecture
  3395.         (i.e.  Super KERMIT) was funded by The Source and implemented by  Larry
  3396.         Jordan and Jan van der Eijk.
  3397.  
  3398.         Columbia  University  holds  the copyright  and  maintains  the  Kermit
  3399.         protocol. Like RBBS-PC, Columbia University allows KERMIT to be  passed
  3400.         along  to others and "ask only that profit not be your goal, credit  be
  3401.         given where it is due, and that new material be sent back to us so that
  3402.         we   can  maintain  a  definitive  and  comprehensive  set  of   KERMIT
  3403.         implementations".
  3404.  
  3405.         PCKERMIT.EXE  is  not  a terminal program.  It  simply  implements  the
  3406.         Kermit protocol, including the sliding window extension.  It will  work
  3407.         with  older  "Kermit Classic" implementations as  well,  via  automatic
  3408.         negotiation  between the two Kermit programs.  PCKERMIT.EXE runs  as  a
  3409.         "one-shot"  execution  then  returns to  RBBS-PC.   PCKERMIT  does  not
  3410.         establish   a  carrier  with  a  remote  system.   The  connection   is
  3411.         established  by  RBBS-PC.   File  transfers  must  always  be   assumed
  3412.         successful.
  3413.  
  3414.     QMXFER  --  is  supplied  by The Forbin Project as  a  public  service  and
  3415.         supports   five  different  protocols  --  XMODEM  (checksum),   XMODEM
  3416.         (cyclical  redundancy check), YMODEM, YMODEMG, and IMODEM.  QMXFER  was
  3417.         implemented by John Friel III, author of QMODEM. YMODEM and YMODEMG are
  3418.         protocols designed by Chuck Frosberg.  IMODEM is a protocol designed by
  3419.         John  Friel.  The later two are designed to work when the link  between
  3420.         the two modems is "error free" (i.e. both modems have the MNP  protocol
  3421.     RBBS-PC CPC17.3                                                 Page 216
  3422.  
  3423.         built  in)>  QMXFER.COM runs as a "one-shot" execution then returns  to
  3424.         RBBS-PC.   QMXFER  does not establish a carrier with a  remote  system.
  3425.         The  connection is established by RBBS-PC.  File transfer failures  are
  3426.         indicated by an "F" in the fourth parameter of the log file returned to
  3427.         RBBS-PC.
  3428.  
  3429.     WXMODEM  --  is  supplied by The Forbin Project as  a  public  service  and
  3430.         supports the window XMODEM protocol designed by Pete Boswell.  Like all
  3431.         of  RBBS-PC's  protocol  drivers,  WXMODEM.COM  runs  as  a  "one-shot"
  3432.         execution  then  returns  to RBBS-PC.  WXMODEM  does  not  establish  a
  3433.         carrier  with a remote system.  The connection is established by  RBBS-
  3434.         PC.   File  transfer  failures are indicated by an "F"  in  the  fourth
  3435.         parameter of the log file returned to RBBS-PC.
  3436.  
  3437.     Other protocols tested with RBBS-PC include SuperK, Jmodem and Puma.
  3438.     RBBS-PC CPC17.3                                                 Page 217
  3439.  
  3440.     20. UPLOADED FILE TIPS
  3441.     ----------------------
  3442.     Every SYSOP should assume  that any uploaded file him that  can be executed
  3443.     (i.e. .BAS,  .COM, .EXE)  has the capability  of destroying  all the  files
  3444.     available  to  the  PC it  is  executed  on.    This  may  be  because  the
  3445.     documentation  is in  error, the program was  executed incorrectly, or  the
  3446.     program was designed to be malicious.  It behooves every SYSOP to know what
  3447.     every uploaded  file does in order to protect  not only the RBBS-PC system,
  3448.     but its users.
  3449.     RBBS-PC CPC17.3                                                 Page 218
  3450.  
  3451.     21. DUE WARNING AND SYSOP'S LEGAL LIABILITY
  3452.     -------------------------------------------
  3453.     While no definitive case-law or legislation exists defining the liabilities
  3454.     of System Operators, every SYSOP should assume that they are as responsible
  3455.     for their own actions when  running an electronic bulletin board  system as
  3456.     they would  be for any other action  as a citizen of the  United States who
  3457.     chooses  to exercise their right  to freedom of speech.   One of the unique
  3458.     features  of RBBS-PC is  that users have to  OVERTLY register themselves --
  3459.     even when the  RBBS-PC is "open"  to the general  public.  This gives  each
  3460.     SYSOP the opportunity to give every user "due notice" and require each user
  3461.     to actively acknowledge such notice.  Every SysOp should consider the legal
  3462.     issues, and provide proper notice to all callers.
  3463.     RBBS-PC CPC17.3                                                 Page 219
  3464.  
  3465.     22. COMPILING AND LINKING RBBS-PC
  3466.     ---------------------------------
  3467.     RBBS-PC source code is distributed  along with the executable program RBBS-
  3468.     PC.EXE.  It  is NOT necessary to recompile  or re-link RBBS-PC in  order to
  3469.     utilize  RBBS-PC.  However,  some users may  wish to modify  the source and
  3470.     recompile it.  This section is  intended for those hardy few who  choose to
  3471.     do  so.  Remember only what is distributed is supported -- anything else is
  3472.     strictly yours to debug!
  3473.  
  3474.     RBBS-PC's source code  is compilable by the  Microsoft QuickBASIC Compiler,
  3475.     version 2.01 and higher.   However Microsoft's QuickBASIC Compiler  version
  3476.     3.0  is the  compiler  used to  generate the  .EXE  files distributed  with
  3477.     RBBS-PC because it appears to  be the most reliable.  Versions too buggy to
  3478.     use at all include 1.0, 2.0, and 4.0.
  3479.  
  3480.     22.1 Compiling CONFIG and RBBS-PC
  3481.     ---------------------------------
  3482.     The batch files MAKERBBS.BAT and MAKECNFG.BAT are included with the source
  3483.     to  recompile RBBS-PC and  CONFIG respectively.   The are  designed for use
  3484.     with QuickBasic  3.0 but instructions for editin  for other versions are in
  3485.     them.    RBBS-PC's .EXE  files are distributed  after having been  compiled
  3486.     with QuickBASIC Version 3.00 compiler that  had the DTR patch described  in
  3487.     Appendix T applied to it. 
  3488.  
  3489.     CONFIG.EXE is generated from compiling  with multiple BASIC source files --
  3490.     CNFG-VAR.BAS, CONFIG.BAS, CNFG-SUB.BAS. The output of the multiple compiles
  3491.     (CONFIG.OBJ and  CNFG-SUB.OBJ) generate  multiple .OBJ  input files to  the
  3492.     LINK step that create CONFIG.EXE.
  3493.  
  3494.     The QuickBASIC version 3.0 compiler command should be:
  3495.          QB  CONFIG.BAS,/E/O/C:2048/S;
  3496.          QB  CNFG-SUB.BAS,/O;
  3497.  
  3498.     Compiling CONFIG  requires that CNFG-VAR.BAS  be in the  sub-directory from
  3499.     which they are being compiled.
  3500.  
  3501.     RBBS-PC.EXE is generated from compiling with multiple BASIC source files --
  3502.     RBBS-VAR.BAS,   RBBS-PC.BAS,   RBBSSUB1.BAS,   RBBSSUB2.BAS,  RBBSSUB3.BAS,
  3503.     RBBSSUB4.BAS, and RBBSSUB5.BAS.
  3504.  
  3505.     The  output   of   the  multiple   compiles   (RBBS-PC.OBJ,   RBBSSUB1.OBJ,
  3506.     RBBSSUB2.OBJ,  RBBSSUB3.OBJ,   RBBSSUB4.OBJ,  and   RBBSSUB5.OBJ)  generate
  3507.     multiple .OBJ input files to the LINK step that, along with some other .OBJ
  3508.     files, create RBBS-PC.EXE.
  3509.  
  3510.     The command for QuickBASIC version 3.00 should be:
  3511.          QB  RBBS-PC.BAS,/C:4096/O;     
  3512.          QB  RBBSSUB1.BAS,/X/O; 
  3513.          QB  RBBSSUB2.BAS,/O;
  3514.          QB  RBBSSUB3.BAS,/O;
  3515.          QB  RBBSSUB4.BAS,/O;
  3516.          QB  RBBSSUB5.BAS,/O;
  3517.  
  3518.     QB 4.5 can be used to compile RBBS-PC as follows:
  3519.  
  3520.          BC  RBBS-PC.BAS,/C:4096/O/MBF;    
  3521.          BC  RBBSSUB1.BAS,/X/O/MBF;
  3522.     RBBS-PC CPC17.3                                                 Page 220
  3523.  
  3524.          BC  RBBSSUB2.BAS,/O/MBF;
  3525.          BC  RBBSSUB3.BAS,/O/MBF;
  3526.          BC  RBBSSUB4.BAS,/O/MBF;
  3527.          BC  RBBSSUB5.BAS,/O/MBF;
  3528.  
  3529.     Compiling RBBS-PC requires that  RBBS-VAR.BAS be in the  sub-directory from
  3530.     which they  are being  compiled.  For  debugging purposes,  RBBS-PC.BAS and
  3531.     RBBSSUB2.BAS through  RBBSSUB5.BAS can  be compiled with  the /E  option in
  3532.     addition to those shown.
  3533.  
  3534.     NOTE: A bug  in the QuickBASIC compiler  library routines must be  fixed in
  3535.     order to prevent a loss of DTR (thereby losing the caller) when exiting  to
  3536.     a door.  Appendix T contains information regarding patches for this bug.
  3537.  
  3538.     22.2 LINKing CONFIG 
  3539.     -------------------
  3540.     CONFIG.OBJ can be LINKed to produce CONFIG.EXE with the command
  3541.  
  3542.          LINK CONFIG+CNFG-SUB+RBBSUTIL+FOSSCOMM+GWCOM,CONFIG.EXE,,;
  3543.  
  3544.     assuming that all the required files are on the default drive. 
  3545.  
  3546.     22.3 LINKing RBBS-PC
  3547.     --------------------
  3548.     RBBS-PC.OBJ can  be LINKed to  produce RBBS-PC.EXE with the  LINKer command
  3549.     (all  on one  line)  --  LINK @LINKLST3.DAT,  where  the file  LINKLST3.DAT
  3550.     contains the following:
  3551.  
  3552.     RBBS-PC+
  3553.     RBBSSUB1+
  3554.     RBBSSUB2+
  3555.     RBBSSUB3+
  3556.     RBBSSUB4+
  3557.     RBBSSUB5+
  3558.     GWCOM+
  3559.     QBARCV6+
  3560.     ANSI17+
  3561.     XMODEM+
  3562.     RBBSML+
  3563.     BDRIVEC2+
  3564.     PC-NET+
  3565.     10-NET+
  3566.     RBBSUTIL+
  3567.     RBBSDV+
  3568.     GIVEBK31+
  3569.     FOSSCOMM+
  3570.     BASNOV+
  3571.     RBBSHS,
  3572.     ,
  3573.     ,
  3574.     BCOM30.LIB /STACK:2048
  3575.  
  3576.     NOTE: New with 17.3 is QBARCV6.OBJ.   For QB4.5, there is no GWCOM.OBJ  and
  3577.     the LIB  used in  BCOM45.   The above  LINK  command assumes  that all  the
  3578.     necessary .OBJ and .LIB files are on the default drive.
  3579.     RBBS-PC CPC17.3                                                 Page 221
  3580.  
  3581.     23. LIMITED LICENSE
  3582.     -------------------
  3583.     The  RBBS-PC software  is copyrighted but A LIMITED LICENSE  IS GRANTED and
  3584.     each user is free to use and share it under the following conditions:
  3585.  
  3586.     1. You may NOT distribute RBBS-PC in modified form.
  3587.     2. You may NOT charge a fee for RBBS-PC itself, and
  3588.     3. You MUST retain all references to the copyright and authors.
  3589.  
  3590.     Please distribute the original version  (or update thereof) of the program.
  3591.     If you have changes please  distribute them using the conventions described
  3592.     in  section 0.4.    This  is necessary  so that   future   revisions can be
  3593.     easily added to the system without requiring the entire program.
  3594.  
  3595.     Please do NOT resequence the program.   All revisions will be as files that
  3596.     replace the  base program or update  thereof and the  existing line numbers
  3597.     will be referenced when describing new fixes and enhancements.
  3598.     RBBS-PC CPC17.3                                                 Page 222
  3599.  
  3600.     24. LIMITED WARRANTY
  3601.     --------------------
  3602.     The  RBBS-PC program  is  provided "as  is" without  warranty of  any kind,
  3603.     either   expressed or  implied, including but  not limited  to the  implied
  3604.     warranties of  merchantability and fitness  for a particular purpose.   The
  3605.     entire risk as to the  quality and performance of  the program is with  the
  3606.     user, and should  the program prove defective, the user and not the authors
  3607.     will assume the entire cost of all necessary remedies.  None of the authors
  3608.     warrant that the  functions contained in  the program will meet  any users'
  3609.     requirements or that  the operation of the program will be uninterrupted or
  3610.     error-free.  In any case, each author's entire liability will be limited to
  3611.     the total amount of money the  individual user paid directly and explicitly
  3612.     to each author for the use of RBBS-PC.
  3613.     RBBS-PC CPC17.3                                                 Page 223
  3614.  
  3615.     25.  THE HISTORY BEHIND RBBS-PC
  3616.     -------------------------------
  3617.     Electronic bulletin  board systems  have  been around  ever since  personal
  3618.     computers  existed.    The  first  ones were  very  primitive  and  usually
  3619.     consisted of  some posted notices  and maybe allowed for  on-line messages.
  3620.     It must  be remembered that the IBM PC was only announced in August of 1981
  3621.     and  first became  available  in October  of  1981.   Therefore  it is  not
  3622.     surprising  that the  early  history  of BBS'  is  associated with  non-IBM
  3623.     personal computers.
  3624.  
  3625.     The "early history"  of bulletin board systems began around 1978 in Chicago
  3626.     with the CBBS/Chicago (Computerized Bulletin Board System/Chicago).  It was
  3627.     created by Ward  Christensen and Randy Suess -- members of the Chicago Area
  3628.     Computer Hobbyist  Exchange (CACHE).  CBBS for the  CP/M is written in 8080
  3629.     Assembler  language (11,000 lines  of it) and,  like the early  versions of
  3630.     RBBS-PC (i.e. prior to CPC12-5A), detects  the baud rate and the parity  of
  3631.     the user when  he first signs on from  the three carriage returns  that the
  3632.     user must enter.
  3633.  
  3634.     About  the same time,  Bill Abney  wrote a BBS  for the  Radio Shack TRS-80
  3635.     Models I and II called Forum-80.
  3636.  
  3637.     The earliest BBS was written for the Apple (who else had personal computers
  3638.     in those days?)  called the "Apple Bulletin  Board System" (ABBS).   It was
  3639.     written by Craig Vaughn and Bill Blue.  They later created another bulletin
  3640.     board  system for the Apple II called the People's Message System (PMS).
  3641.  
  3642.     Another Apple bulletin  board system that came into being was for the Apple
  3643.     II,  II+, and  IIE  as well  as  the Franklin  Ace  and it  was called  the
  3644.     CommuniTree.   It was  written in  the FORTH  language by  Dean Gengle  and
  3645.     several others.
  3646.  
  3647.     When IBM announced  its first personal computer,  the IBM PC, in  August of
  3648.     1981, there was no BBS  for it.  In the summer of 1982, Brad Hanson found a
  3649.     prototype version written  by Russ  Lane in  IBM's BASIC  on David  Crane's
  3650.     Dallas RCP/M\CBBS system.  Brad added many fixes and  modifications. In the
  3651.     first  half  of  1983,  many  members  of  the  Capital  PC  Users  Group's
  3652.     Communication Special  Interest  Group (SIG)  such  as Larry  Jordan,  Rich
  3653.     Schinnell, Gary Horwith, Jim Fry, Scot Loftesness, and Dorn Stickle further
  3654.     enhanced it and added XMODEM file transfer capability until it became known
  3655.     as RBBS-PC CPC09 in May of 1983.  At that time each feature or modification
  3656.     was identified by a  new version number; it still ran  only under the BASIC
  3657.     interpreter; and was both relatively  slow (because of the interpreter) and
  3658.     somewhat unstable (it would normally "crash" at least once each day).
  3659.  
  3660.     Late in  May  of 1983,  Tom Mack  asked  Rich Schinnell  if there  was  any
  3661.     "bulletin board" software available for the IBM PC written in BASIC.   Rich
  3662.     told him to give Larry Jordan a call.  Larry said that  he was just getting
  3663.     CPC09 ready to send to Rich Schinnell  who at that time was Director of the
  3664.     Capital PC User Group's  Public Domain Software Library  and that he  could
  3665.     get it from Rich.  He did, and still has the diskette just  as Rich sent it
  3666.     to him -- dated June 22, 1983.  
  3667.  
  3668.     Bulletin  board systems, historically were the result of a single person or
  3669.     small group of  persons' efforts and tended to serve a very narrow interest
  3670.     group  --  typically those  interested  in  the  medium itself  (i.e.  PCs,
  3671.     programming,  communications, etc.).   This  was true  up to  and including
  3672.     RBBS-PC CPC17.3                                                 Page 224
  3673.  
  3674.     RBBS-PC CPC09.   In fact,  most of the  incentive to get the  public domain
  3675.     versions of  RBBS-PC (CPC09 and  earlier) functioning was to  introduce the
  3676.     XMODEM  protocol  to  the  IBM  PC-based  community.    In this  CPC09  was
  3677.     successful  and  may  have been  the  primary incentive  for  XMODEM  to be
  3678.     included in PC-TALK at all.
  3679.  
  3680.     Since June  of 1983 THIRTY-SIX versions  of RBBS-PC have been  released and
  3681.     distributed exclusively through the Capital PC User Group under the limited
  3682.     license  described  in  section  25  of  this  documentation,  becoming  an
  3683.     "industry  standard" for IBM-type personal computer bulletin board systems.
  3684.     However, even from the very beginning BBSs have excelled whenever:
  3685.  
  3686.          a.) there was a geographically dispersed audience,
  3687.          b.) with a need to exchange highly complex/technical information,
  3688.          c.) in a timely and accurate manner.
  3689.  
  3690.     RBBS-PC's impact has been  to open an entirely new medium of communications
  3691.     between people.  Rather than  as an end in and of itself,  RBBS-PC has come
  3692.     to  serve as  a means  to  an end  -- the  free exchange  of  ideas.   On a
  3693.     technical level  it is  certainly an example  that shows  "real programmers
  3694.     can/do  program  in  BASIC."   We  would  like to  think  that  RBBS-PC had
  3695.     something to do with IBM and Microsoft coming out with new  versions of the
  3696.     BASIC  compiler that support communications, sub-routines, local and global
  3697.     variables, file-locking in a networking environment, etc.
  3698.  
  3699.     RBBS-PC represents a fundamental cornerstone, not just a phase, in what can
  3700.     be viewed as a "social renaissance."  The three  areas mentioned earlier in
  3701.     which bulletin boards  excel seem  to ebb and  flow within communities  and
  3702.     organizations.  RBBS-PC provides an almost instantaneous mechanism by which
  3703.     these needs  can be  met.   Many of  the Big  8 accounting  firms bring  up
  3704.     RBBS-PC's just to  fulfill one contract so that  the various geographically
  3705.     disbursed members  on the  contract can communicate  across time  zones and
  3706.     continents.  Unlike radio, newspapers, and television -- RBBS-PC provides a
  3707.     vehicle within  which information  can be  EXCHANGED!   That is  what makes
  3708.     RBBS-PC so unique.   Because  the exchange  is written,  it is  structured.
  3709.     Because it is structured, it can be thoughtful.
  3710.  
  3711.     The   "social  renaissance"  that  RBBS-PC  represents  is  the  electronic
  3712.     elimination of those barriers that had previously inhibited the  "exchange"
  3713.     of  information within  our  society.    RBBS-PC  provides  every  personal
  3714.     computer owner with his own "soap-box" in a national Hyde Park.  Previously
  3715.     the channels of  communication had  built-in barriers  to "exchange";  with
  3716.     RBBS-PC those barriers begin to cease to exist.
  3717.  
  3718.     While only  the most  fanatical RBBS-PC trivia  experts may  be interested,
  3719.     here is the chronology:
  3720.     RBBS-PC CPC17.3                                                 Page 225
  3721.  
  3722.     RBBS-PC   Initial         Major Enhancements
  3723.     Version   Release
  3724.     Number     Date
  3725.  
  3726.     CPC10.0   07/04/83  RBBS-PC first written to be compilable by IBM's BASIC
  3727.                         compiler, version 1.0
  3728.  
  3729.     CPC11.0   08/10/83  RBBS-PC restructured so that all parameters were
  3730.                         external (i.e. in the RBBS-PC.DEF) allowing  SYSOPs who
  3731.                         didn't want to spend the $300 for the BASIC compiler to
  3732.                         tailor RBBS-PC to their taste.  CONFIG.BAS was first
  3733.                         written to generate RBBS-PC.DEF.
  3734.  
  3735.     CPC11.1   09/15/83  Jon Martin contributed UTSPACE.OBJ, a sub-routine that
  3736.                         allowed the compiled version of RBBS-PC to determine
  3737.                         the amount of free space available for uploading.
  3738.  
  3739.     CPC11.2   10/01/83  The error trapping within RBBS-PC was completely re-
  3740.                         written to be more comprehensive.
  3741.  
  3742.     CPC12.0   10/28/83  Tree-structured file directories and the ability to
  3743.                         detect that RBBS-PC was in a "MultiLink" environment
  3744.                         were incorporated.  "MultiLink" is a product of the
  3745.                         Software Link, Inc. which allows DOS 1.1, 2.0, 2.1, 3.0
  3746.                         and 3.1 to be "multi-tasking."
  3747.  
  3748.     CPC12.1   12/18/83  The ability for a SYSOP who signed on remotely to drop
  3749.                         (Versions  into DOS was added.  Also the "New" command
  3750.                         was added "A" to "F")that allowed users to determine
  3751.                         what new files had been made available since the last
  3752.                         time they were on.
  3753.  
  3754.     CPC12.2   04/08/84  The security system designed by Ken Goosens was
  3755.                         incorporated. RBBS-PC's security system has an elegance
  3756.                         "A" to "D")unmatched even by the largest mainframe. 
  3757.                         Essentially the security system designed by Ken is
  3758.                         "self-locking lock" and, even though RBBS-PC's source
  3759.                         code is distributed, it's security system has remained
  3760.                         unbroken.  Of course, SYSOPs who didn't adhere to RBBS-
  3761.                         PC's security structure have had their system "crashed"
  3762.                         and every SYSOP should operate as if the very next
  3763.                         caller could crash his system.
  3764.  
  3765.     CPC12.3   11/11/84  This was almost as complete and as major a re-write of
  3766.                         RBBS-PC as CPC10.0 had been. Beginning with CPC12.3 up
  3767.                         "A" to "B")to nine RBBS-PCs can share the same files in
  3768.                         either a multi-tasking DOS environment (i.e. MultiLink
  3769.                         from the Software Link, Inc.) or in a local area
  3770.                         network environment (i.e. Corvus or Orchid).
  3771.  
  3772.     CPC12.4   03/10/85  (Version A, A1, B) RBBS-PC'stature in the industry
  3773.                         became recognized  when, as author of RBBS-PC, I was
  3774.                         granted a license by Microcom to incorporate their
  3775.                         proprietary MNP protocol and "B")into RBBS-PC. Almost
  3776.                         at the same time many manufactures recognized the
  3777.                         institution that RBBS-PC had become in
  3778.                         our industry and elected to include "RBBS-PC
  3779.     RBBS-PC CPC17.3                                                 Page 226
  3780.  
  3781.                         compatibility" in their minimum criteria for the
  3782.                         introduction of their new products.  RBBS-PC's Vendor
  3783.                         Support Program is more fully explained in the RBBS-PC
  3784.                         documentation but one direct result of this was the
  3785.                         introduction  of 300/1200/2400 BAUD support in CPC12.4A
  3786.                         before most such modems were generally available.
  3787.  
  3788.     CPC12.5   07/14/85  (Versions A and B).  RBBS-PC was enhanced to allow 36 
  3789.                         copies of RBBS-PC to share the same files in a network
  3790.                         environment. RBBS-PC automatically answers the phone
  3791.                         and no longer requires each caller to enter up to 3
  3792.                         carriage returns in order for RBBS-PC to detect the
  3793.                         users baud rate and parity.  Logon to RBBS-PC has been
  3794.                         made much more efficient with the USERS file no longer
  3795.                         being searched sequentially and the MESSAGES file no
  3796.                         longer being read three times.  Version CPC12-5B,
  3797.                         released August 25, 1985, WAS THE LAST VERSION
  3798.                         COMPILABLE BY VERSION 1.0 OF THE IBM BASIC COMPILER!
  3799.  
  3800.     CPC13.1   12/01/85  RBBS-PC was completely rewritten for both the IBM BASIC
  3801.                         compiler ($495 list  price) and Microsoft's  QuickBASIC
  3802.                         Version 1.0($99  list price).  XMODEM with CRC was
  3803.                         added as a file-transfer protocol as well as the
  3804.                         ability to display on the color monitor of the PC
  3805.                         running RBBS-PC the color/graphics that the remote user
  3806.                         sees exactly as he  sees them.
  3807.  
  3808.     CPC14.1   03/16/86  (Versions A, B, C, and D)  RBBS-PC's internal structure
  3809.                         was split into two parts - RBBS-BAS for the main-line
  3810.                         source code and logic, and a RBBS-SUB.BAS for commonly
  3811.                         called subroutines.  This allows unlimited growth for
  3812.                         RBBS-PC by providing multiple "code segments" within
  3813.                         RBBS-PC.  Support for on-line questionnaires,
  3814.                         auto-downloading, and the Columbia University-sponsored
  3815.                         KERMIT RBBS-PC Version  protocol were also included as
  3816.                         well as the option to utilize assembly language
  3817.                         subroutines to increase for better performance over
  3818.                         their BASIC counterparts.
  3819.  
  3820.     CPC15.1   03/15/87  RBBS-PC's internal structure continued to become
  3821.                         significantly more modularized and structured.  Major
  3822.                         enhancements included a File Management System for
  3823.                         directories, additional file exchange protocols,
  3824.                         support for managing subscriptions, the ability to run
  3825.                         as a local application on a network, configurable
  3826.                         command letters, the ability to use any field or to
  3827.                         define a new field to identify callers, the ability to
  3828.                         individuate callers having the same ID, multiple
  3829.                         uploads on a single command line, new A)nswer and
  3830.                         V)erbose ARC list commands, context sensitive  help, 
  3831.                         and  a  new subsystem  for software "libraries".
  3832.  
  3833.     CPC16.1   03/27/88  (Version A) RBBS-PC's internal structure continued to
  3834.                         become significantly more modularized and structured.
  3835.                         Major enhancements included the addition of
  3836.                         "sub-boards" (i.e. conferences with there own
  3837.                         bulletins, file areas, menus etc.), a programmable user
  3838.     RBBS-PC CPC17.3                                                 Page 227
  3839.  
  3840.                         interface, the capability to have SYSOP-written
  3841.                         "sub-menus" for any command, the ability to hang off of
  3842.                         a public data network such as Compuserve's as a "node",
  3843.                         the incorporation of "personal downloads" (i.e. files
  3844.                         only specific individuals could list/download), the
  3845.                         ability to vary the amount of time a user has on the
  3846.                         system by the time of day the user logs on, the
  3847.                         capability of preventing any message (public or
  3848.                         private) from being read until the SYSOP has reviewed
  3849.                         it, an enhanced CONFIG utility with many more options,
  3850.                         YMODEM protocol built-in to RBBS-PC's main-line source
  3851.                         code, the ability to automatically add users to
  3852.                         conferences, and support for The Software Link's
  3853.                         MultiLink  Version 4.0. Despite all these enhancements,
  3854.                         the BASIC RBBS-PC code was significantly enhanced such
  3855.                         that it only requires 268K to run -- allowing two
  3856.                         copies to run in multi-tasking DOS environments that
  3857.                         have 640K available. 
  3858.  
  3859.     CPC17.1   10/02/88  (Versions A, B, C, and D).  RBBS-PC's internal
  3860.                         structure continued to become significantly more
  3861.                         modularized and structured. Major enhancements were
  3862.                         made in the System Support area, and the support for up
  3863.                         to eight communications ports;built-in interfaces to
  3864.                         external communications drivers based on Vince
  3865.                         Perriello's "FOSSIL" driver concepts; automatic
  3866.                         notification of the SYSOP when specific users log on;
  3867.                         improved automatic invocation of other applications
  3868.                         based on time of day; and SYSOP-selectable time delays
  3869.                         that users must wait before being able to download or
  3870.                         exit to a door.  RBBS-PC's unique programmable user
  3871.                         interface (PUI) was enhanced to support "macros" (i.e.
  3872.                         use a single command to invoke any number of RBBS-PC
  3873.                         commands); SYSOP-selectable colors for all prompts and
  3874.                         messages (i.e. "colorization"); caller-selectable
  3875.                         "colorization" for text (i.e. color, bold or normal,
  3876.                         highlighting of text, etc.);  and personalized text
  3877.                         files (i.e. text files that can dynamically adapt to
  3878.                         include information unique to each caller).  The
  3879.                         messaging within RBBS-PC was enhanced to notify each
  3880.                         caller that logs on of the number of new messages and
  3881.                         how many are addressed to the caller for the
  3882.                         conferences to which the caller belongs.  The text
  3883.                         editor function for messages was enhanced to allow any
  3884.                         character to be edited.  RBBS- PC's standard "threaded"
  3885.                         message search now also scans the text of the messages
  3886.                         for matches.  The RBBS-PC file subsystem was also
  3887.                         significantly enhanced to include an unlimited number
  3888.                         of installable protocols; batch downloading for such
  3889.                         protocols that support this (i.e. Zmodem, Megalink, and
  3890.                         Sealink); and control of callers ability to download
  3891.                         based on either the number of characters or the ratio
  3892.                         of the callers downloads to uploads.
  3893.  
  3894.     CPC17.2   05/28/89  (Versions A-B).  RBBS-PC's internal structure continued
  3895.                         to evolve as an example of a modularized and structured
  3896.                         BASIC program (20,000+ lines of source code).  Major
  3897.     RBBS-PC CPC17.3                                                 Page 228
  3898.  
  3899.                         enhancements consisted of increased flexibility in
  3900.                         invoking external applications (i.e. "DOORS"), on-line
  3901.                         questionnaires, RBBS-PC command "macros", the
  3902.                         integration (using the enhanced questionnaires and
  3903.                         "macros") of on-line data base facilities into RBBS-PC,
  3904.                         as well as extended support in RBBS-PC's file system to
  3905.                         support ANY file compaction technique (i.e. .ARC, .ZOO,
  3906.                         .ZIP, etc.) -- including allowing on-line users to list
  3907.                         text files that have been included within a compacted
  3908.                         file (thanks to Samuel Smith of The Tool Shop BBS). 
  3909.                         RBBS-PC's "NETMAIL" interface to store and forward
  3910.                         messaging systems (i.e. FIDO MAIL, etc.) was enhanced. 
  3911.                         Within the messaging subsystem numerous enhancements
  3912.                         were added including the ability to quote all or part
  3913.                         of a message that the caller was replying to.  RBBS-
  3914.                         PC's file subsystem was improved to allow the system to
  3915.                         be configured such that all uploads were automatically
  3916.                         checked/verified (by whatever utility the SYSOP wanted
  3917.                         to use).  RBBS-PC commitment to the concept of "users
  3918.                         helping users" was demonstrated once again with the
  3919.                         incorporation of support for the Computalker and
  3920.                         HEARSAY 1000 speech boards so that seeing-impaired
  3921.                         SYSOPS could hear (in a meaningful way) the activity
  3922.                         occurring on their RBBS-PC bulletin boards. 
  3923.  
  3924.     CPC17.3   01/14/90  Fast  File Search:  sub-second file name looks for over
  3925.                         32,000 downloadable  files; up  to 10,098  downloadable
  3926.                         areas.    Variable  names  were  changed  to  MicroSoft
  3927.                         standard  format using  upper  and lower  case  letters
  3928.                         only, and no  internal dots.  Some 50  bugs were fixed.
  3929.                         News  facility  added.    Universal  command  stacking.
  3930.                         Default extension on  file requests.   Enhanced  macros
  3931.                         and  SmartText.  Defaults  added for multiple  modems. 
  3932.                         Support for 38,400 baud thru Fossil driver.
  3933.     RBBS-PC CPC17.3                                                 Page 229
  3934.  
  3935.     26. PROPOSED AGENDA FOR A NATIONAL SYSOP CONFERENCE
  3936.     ---------------------------------------------------
  3937.     As PC's  (IBM's and  others)  become   more   common in homes  and offices,
  3938.     their use as vehicles   for  information  exchange continues to  grow -- as
  3939.     so eminently  attested by  the  astounding growth  of  RBBS-PC itself!    A
  3940.     national   meeting   of  SYSOPs   could foster this   growth in information
  3941.     exchange; assist   in focusing  on the  issues (regulatory and   otherwise)
  3942.     that  foster/inhibit  this growth;  and act as a forum for  new  ideas.   A
  3943.     national   meeting,  perhaps  sponsored  by the Capital PC   User  Group or
  3944.     even a consortium of other not-for-profit PC user groups could be held .
  3945.     SYSOPs  are  not only in the big corporations but also in the  millions  of
  3946.     small  businesses,  non-profit  associations,  educational  institutions in
  3947.     which the RBBS-PC concept has found  a  home.   They are often the decision
  3948.     influencers in their  organizations or area -- as  U.S. Robotics discovered
  3949.     when they introduced their  Courier 2400 baud modem so successfully.  As  I
  3950.     expect most  who would attend would be  paying their own  way,   the  first
  3951.     conference   would  probably  consist of  that  small  "band  of  brothers"
  3952.     who   have   set   up  boards out  of   the   intensity   of    their   own
  3953.     commitment.  
  3954.  
  3955.     My   own  vision  of such a conference  is sort of   a  1980's   electronic
  3956.     "Woodstock"  -- if  for  no other reason  because   of  the  very   "volks"
  3957.     nature  of SYSOPs.     It  has been  a long  time  since there  has been  a
  3958.     conference "of the people, by the people, and for the people."
  3959.  
  3960.     What follows is a hypothetical  agenda of what might be of interest at such
  3961.     a conference.  The agenda  consists of a "technical" and  a "non-technical"
  3962.     (management?) set of sessions as follows:
  3963.  
  3964.                      "technical sessions"         "non-technical sessions"
  3965.  
  3966.      8:30 - 10:00    RBBS-PC Record Layouts       How to Copyright Software --
  3967.                      (CALLERS, USERS, and         its protection and penalties
  3968.                       MESSAGES files)             for violation of copyrights.
  3969.  
  3970.     10:30 - 12:00    Multi-Port RBBS-PC           1986 Computer Privacy Act and
  3971.                      Systems-- actual             "computer trespass" laws at
  3972.                      experiences.                 the State level.
  3973.  
  3974.     12:00 - 1:30     Luncheon with a nationally known guest
  3975.                              speaker (any suggestions?) 
  3976.  
  3977.      1:30 - 3:00     RBBS-PC "doors" and          Business Applications of 
  3978.                      "doorware" explained.        Bulletin Board Systems
  3979.  
  3980.      3:30 - 5:00     Modems -- beyond 2400        The use of RBBS-PC in local,
  3981.                      baud.                        State, and Federal agencies.
  3982.  
  3983.      5:00 - 6:30           CONNECT TIME! -- Vendor Presentations
  3984.                                    and Receptions
  3985.  
  3986.     If  you   are with a manufacturer or organization that might be  interested
  3987.     in  sponsoring   such a meeting,   work with  your organization to make  it
  3988.     happen!  If  in  the  normal course of your business  contacts  you  see  a
  3989.     potential  sponsor  of  such  a conference,  persuade  them  to  look  into
  3990.     being a sponsor.   I would be glad to talk with  anyone about going forward
  3991.     with this project.
  3992.     RBBS-PC CPC17.3                                                 Page 230
  3993.  
  3994.     If  you are interested in participating, write me at the following address:
  3995.  
  3996.              Tom Mack
  3997.              National SYSOP Conference
  3998.              39 Cranbury Drive
  3999.              Trumbull, Connecticut 06611
  4000.     Please indicate 
  4001.  
  4002.               1.  Which four sessions you would attend (in order
  4003.                   of preference).
  4004.  
  4005.               2.  Any additional sessions you would be interested in.
  4006.  
  4007.               3.   Who would you want as a  guest speaker at the               
  4008.     luncheon.
  4009.               4.  Where you would like such a conference held
  4010.                   from among the following five locations:
  4011.  
  4012.                            a.) Boston, Mass.
  4013.                            b.) Chicago, Ill.
  4014.                            c.) Houston, Texas
  4015.                            d.) San Francisco, Calif.
  4016.                            e.) Washington, D.C.
  4017.  
  4018.               5.  Your mailing address.
  4019.  
  4020.               6.  Telephone numbers you can be reached at (both voice
  4021.                   and data).
  4022.  
  4023.               7.  And if you would be willing to be a "worker" as              
  4024.                  well as an attendee -- i.e. stuff envelopes, keep
  4025.                   the mailing list, make hotel arrangements, etc.
  4026.  
  4027.     My greatest  fear is not that there  will be fifty of us  -- but that there
  4028.     will be 2,000 of us!  Whatever happens, it should be fun. 
  4029.     RBBS-PC CPC17.3                                                 Page 231
  4030.  
  4031.     27.  RBBS-PC, THE LARGEST SOFTWARE HOUSE IN THE WORLD
  4032.     --------------------------------------------------------
  4033.     RBBS-PC'S "Userware" concept is founded  on the principle stated in section
  4034.     0  -- "software which  is shared becomes  better than it  was."  Relying on
  4035.     Federal copyright protection, we believe  that RBBS-PC's source code can be
  4036.     distributed  without the  risk of  "loss  of ownership"  (i.e. it  becoming
  4037.     "public domain").   In fact,  all software (commercial  and non-commercial)
  4038.     should  be distributed  as both  compiled/executable  files and  with their
  4039.     source  code.   With one  exception, RBBS-PC's  copyrights have  never been
  4040.     violated --  this is  due more  to the  fact that  RBBS-PC enthusiasts  are
  4041.     ever-vigilant  of RBBS-PC's  copyrights  rather  than due  to  any lack  of
  4042.     attempts  to  "sell" RBBS-PC  or  RBBS-PC look-alikes  to  the unsuspecting
  4043.     public.
  4044.  
  4045.     Incorporating these new  features and ideas into each  new release of RBBS-
  4046.     PC, making sure  that upward compatibility with earlier  version of RBBS-PC
  4047.     exists,  as well as maintaining RBBS-PC's copyright,  are all things that I
  4048.     accept the  responsibility for.   However, it is RBBS-PC's  "support staff"
  4049.     (i.e.  all those  who enhance  RBBS-PC  and share  such enhancements)  that
  4050.     continues to make RBBS-PC a unique experiment in PC software.
  4051.  
  4052.     No one should feel that the possibilities for RBBS-PC have even begun to be
  4053.     exhausted.  In fact, we are absolutely certain that even as this is written
  4054.     innovative enhancements are  being created for RBBS-PC that  I haven't even
  4055.     mentioned.  It is our sincerest  hope that if RBBS-PC continues to  succeed
  4056.     within the  IBM  PC industry  in  becoming the  "bulletin-board  standard,"
  4057.     software vendors will begin examining the reasons for RBBS-PC's success and
  4058.     come to understand that:
  4059.  
  4060.     1.  The best form of software support is user support;
  4061.  
  4062.     2.  The best source for software enhancements are from it's users;
  4063.  
  4064.     3.  The best software continually adopts itself to users needs; and
  4065.  
  4066.     4.  The best way to minimize software development is to distribute
  4067.         source code;
  4068.  
  4069.     Each RBBS-PC  system operator  has the opportunity  to affect  what RBBS-PC
  4070.     becomes in the future.  Many already  have.  RBBS-PC continues to grow  and
  4071.     expand because hundreds (and quite  possibly thousands) of SYSOPs spend the
  4072.     time and trouble not  only to modify RBBS-PC to meet  their needs, but also
  4073.     to share  these modifications  with others.   We do  not know of  any other
  4074.     software  for  the  IBM PC  that  has  such a  vast  number  of programmers
  4075.     supporting it.  In section 0.3,  we name more than 70 such  individuals and
  4076.     acknowledge that there  are a lot more!   With the structured  design RBBS-
  4077.     PC's source  code that the  new BASIC compilers allowed,  even more RBBS-PC
  4078.     system operators  are invited  to contribute.   Take  the time!   Make  the
  4079.     difference!
  4080.     RBBS-PC CPC17.3                                                 Page 232
  4081.  
  4082.     APPENDIX A -- RBBS-PC Record Formats
  4083.     ------------------------------------
  4084.     This  appendix  is intended to document the record formats of some  of  the
  4085.     more significant  records used within  RBBS-PC.    As such, it  is intended
  4086.     more  as   a  "programmers'   guide" for those  who wish to write   RBBS-PC
  4087.     utilities    rather than  as "user  documentation."   No  record  format is
  4088.     "sacrosanct"   and any  of them   may be  changed  in   future   releases. 
  4089.     However   such  changes  are  not  made  capriciously  and,  when  they are
  4090.     made,  are accompanied by   some  utility   program  that  will   allow the
  4091.     old files to be  reformatted  into  the  new  format.
  4092.  
  4093.     The MESSAGES file contains the messages that have been left on RBBS-PC.  It
  4094.     is a random  access file with 128-byte  records.  The  first record of  the
  4095.     MESSAGES  file  acts  as  RBBS-PC's   "checkpoint"  record.    The  records
  4096.     immediately following this  first record  are the  RBBS-PC "node"  records.
  4097.     Each  "node" record  represents  the  activity/options  associated  with  a
  4098.     particular copy of RBBS-PC ("node").  There can be up to  thirty-six copies
  4099.     of RBBS-PC  running simultaneously  sharing the same  set of  static files.
  4100.     Therefore  there can  be  up  to thirty-six  "node"  records following  the
  4101.     "checkpoint" record.  
  4102.  
  4103.     The MESSAGES file has the following logical format:
  4104.  
  4105.                +----------------------------------------------+
  4106.     Record #1  |  RBBS-PC "checkpoint" record                 |
  4107.                +----------------------------------------------+
  4108.     Record #2  |  RBBS-PC "node" record for node # 1          |
  4109.                |                                              |
  4110.                |            up to                             |
  4111.                |                                              |
  4112.                |  RBBS-PC "node" record for node # 9          |
  4113.                |  RBBS-PC "node" record for node # 0          |
  4114.                |  RBBS-PC "node" record for node "A"          |
  4115.                |                                              |
  4116.                |            up to                             |
  4117.                |  RBBS-PC "node" record for node "Z"          |
  4118.                |                                              |
  4119.                +----------------------------------------------+
  4120.                |  First Record in Message portion of file     |
  4121.                +----------------------------------------------+
  4122.                |                                              |
  4123.                \  Message records that have been used         \
  4124.                \                                              \ 
  4125.                |                                              |
  4126.                +----------------------------------------------+
  4127.                |  Record available for next message           |
  4128.                +----------------------------------------------+
  4129.                |  Last record available in MESSAGES file      |
  4130.                +----------------------------------------------+
  4131.     RBBS-PC CPC17.3                                                 Page 233
  4132.  
  4133.     The FIRST RECORD of the "MESSAGES"  file acts as a "checkpoint" record  for
  4134.     all  the  multiple RBBS-PC's  that may  be sharing  the MESSAGES  and USERS
  4135.     files.  It contains information  critical  to  maintaining the integrity of
  4136.     these two files.  The  layout of RBBS-PC  Message  File  Record Number 1 is
  4137.     as follows:
  4138.  
  4139.     Position Length           Description
  4140.  
  4141.       1 -  8     8   Number assigned to the last message entered
  4142.       9 - 10     2   Security level required to be auto-added to a conference
  4143.      11 - 20    10   Current caller number
  4144.      21 - 56    36   --- RESERVED FOR FUTURE USE ----
  4145.      57 - 61     5   Count of the number of USER records used
  4146.      62 - 67     6   --- RESERVED FOR FUTURE USE ----
  4147.      68 - 74     7   Record Number where "messages" portion of the 
  4148.                            MESSAGES file begins
  4149.      75 - 81     7   Record Number of the next available record in the 
  4150.                            MESSAGES file where the next message may be written
  4151.      82 - 88     7   Record Number of the last record in the MESSAGES file
  4152.      89 - 95     7   Maximum number of messages allowed in the MESSAGES file
  4153.      96 -126    31   --- RESERVED FOR FUTURE USE ----
  4154.     127 -128     2   Maximum number of RBBS-PC's sharing this MESSAGES file
  4155.  
  4156.     As a programming reference, line numbers 1900 and 23000 of the BASIC source
  4157.     code for  RBBS-PC.BAS  contains  the  code for  reading  this  "checkpoint"
  4158.     record.
  4159.     RBBS-PC CPC17.3                                                 Page 234
  4160.  
  4161.     Following the first record of the MESSAGES  file are from one to 36  "node"
  4162.     records.   Each  "node" record  contains  information   critical   to   the
  4163.     running of that copy of RBBS-PC associated with that "node".  The layout of
  4164.     each RBBS-PC  "node" record is as follows:
  4165.  
  4166.     Position Length          Description
  4167.  
  4168.       1 - 31    31  Name of last person on this copy of RBBS-PC
  4169.      32 - 33     2  SYSOP available indicator (true or false)
  4170.      34 - 35     2  SYSOP annoy indicator (true or false)
  4171.      36 - 37     2  SYSOP is to be on next indicator (true or false)
  4172.      38 - 39     2  Line printer available indicator (true or false)
  4173.      40 - 41     2  Door's availability indicator (true or false)
  4174.      42 - 43     2  Eight bit transmission indicator (true or false)
  4175.      44 - 45     2  Caller's baud rate indicator: -1 =   300 baud
  4176.                                                   -2 =   450 baud
  4177.                                                   -3 =  1200 baud
  4178.                                                   -4 =  2400 baud
  4179.                                                   -5 =  4800 baud
  4180.                                                   -6 =  9600 baud
  4181.                                                   -7 = 19200 baud
  4182.      46 - 47     2  Upper case only indicator (true or false)
  4183.      48 - 51     4  Number of bytes transferred (from external protocols)
  4184.        52        1  Batch transfer indicator (not zero = batch)
  4185.      53 - 54     2  Graphics indicator (0 = text, 1 = full ASCII, 2 = color)
  4186.      55 - 56     2  SYSOP indicator (-1 = SYSOP)
  4187.         57       1  Activity indicator (I=inactive, A=active)
  4188.      58 - 59     2  SNOOP on indicator (true or false)
  4189.      60 - 64     5  Baud that RBBS-PC talks to the modem at (single precision)
  4190.      65 - 67     3  Time user logged onto the system (HH:MM:SS)
  4191.      68 - 71     4  --- RESERVED FOR FUTURE USE ---
  4192.      72 - 73     2  Private door indicator (true or false)
  4193.        74        1  Type of transfer to external program:
  4194.                                  0 = none
  4195.                                  1 = download a file
  4196.                                  2 = upload a file
  4197.                                  3 = external registration program
  4198.        75        1  First letter of file transfer protocol
  4199.        76        1  --- RESERVED FOR FUTURE USE ----
  4200.      77 - 78     2  Last date, MM-DD-YY, that RBBS-PC exited to DOS (packed)
  4201.      79 - 85     7  --- RESERVED FOR FUTURE USE ----
  4202.      86 - 90     5  Last time, HH:MM, that RBBS-PC exited to DOS
  4203.      91 - 92     2  Reliable mode indicator (true or false)
  4204.      93 - 116   24  Work area that normally contains caller's City and State,
  4205.                     but when temporarily exiting RBBS-PC used as:
  4206.                     Position Length          Description
  4207.                      93 -100     8  Programmable user interface file name
  4208.                     101 -102     2  Local user indicator (true using local PC)
  4209.                     103 -104     2  Local user mode (true if using COM0)
  4210.                     105 -112     8  Name of current "conference" or "sub-board"
  4211.                     113 -116     4  --- UNUSED ----
  4212.     117 -118     2  Subsystem index of last subsystem user was in.
  4213.     119 -124     6  Month, day, and year, MMDDYY, exited to external protocol
  4214.     125 -128     4  Hour and minute, HHMM, exited to external protocol
  4215.  
  4216.     As a  programming  reference and  in  order to  see  how these  fields  are
  4217.     set/used in the  node records, review the  following line numbers in  RBBS-
  4218.     RBBS-PC CPC17.3                                                 Page 235
  4219.  
  4220.     PC.BAS --  150, 200, 400,  420, 842,  and 13555.   In addition, review  the
  4221.     following subroutines as well:
  4222.  
  4223.                   Source Code     Subroutine
  4224.                  RBBSSUB2.BAS ---- WHOSON
  4225.                  RBBSSUB3.BAS ---- FINDFUNC
  4226.                                    SAVEPROF
  4227.                                    READPROF
  4228.                  RBBSSUB4.BAS ---- TIMEDOUT
  4229.  
  4230.     A message within the messages file consists of a MESSAGE HEADER followed by
  4231.     the text of the message.   The RBBS-PC Message File "message header" record
  4232.     layout is as follows:
  4233.  
  4234.     Position Length        Description
  4235.  
  4236.         1        1  Contains an "*" for read-only messages, blank otherwise
  4237.       2 -  5     4  Message number of this message
  4238.       6 - 36    31  The name of the person the message is from
  4239.      37 - 58    22  The name of the person to whom the message is sent
  4240.      59 - 66     8  Time of day that the message was sent (HH:MM:SS)
  4241.      67 - 67     1  ---- RESERVED FOR FUTURE USE ----
  4242.      68 - 75     8  Date the message was sent (MM-DD-YY)
  4243.      76 -100    25  Subject of the message
  4244.     101 -115    15  Password for the message (if any)
  4245.     116 -116     1  "Active" message indicator = ASCII 225
  4246.                     "Killed" message indicator = ASCII 226
  4247.     117 -120     4  Number of 128-byte records for this message --
  4248.                         including the the "message header" record.
  4249.     121 -122     2 Minimum security level to read message
  4250.     123 -125     3 Date (packed) the message was last read (MM/DD/YY)
  4251.     126 -128     3 Time (packed) the message was last read (HH:MM:SS)
  4252.  
  4253.     As a programming  reference, review lines 3405, 3460, 3530, and 8076 of the
  4254.     BASIC source  code for RBBS-PC.BAS to see  how these fields are  set.  Each
  4255.     record  following the MESSAGE HEADER record is a MESSAGE  TEXT  record  and
  4256.     consists   of 128 characters.    Each  of these   128-byte  message   text"
  4257.     records contains the message text.   The end of each line in the message is
  4258.     followed  by   an  RBBS-PC  "end-of-line"   indicator which  is   equal  to
  4259.     an  ASCII 227.  This allows  RBBS-PC to "pack" multiple  message lines in a
  4260.     single 128-byte record.
  4261.     RBBS-PC CPC17.3                                                 Page 236
  4262.  
  4263.     Information unique  to each  person  who  logs on is contained in the USERS
  4264.     file (a random file of 128-byte records).  Each records is as follows:
  4265.  
  4266.     Position Length           Description
  4267.       1 - 31    31  Users first and last name (separated by a blank).
  4268.      32 - 46    15  Users password for logon.
  4269.      47 - 48     2  Users security level (permanent).
  4270.      49 - 62    14  Users logon options (see detail breakdown below).
  4271.      63 - 86    24  City and state from which the user is calling.
  4272.      87 - 89     3  ---- RESERVED FOR FUTURE USE ----
  4273.      90 - 93     4  Number of files downloaded today
  4274.      94 - 97     4  Number of bytes downloaded today
  4275.      98 -101     4  Number of bytes downloaded (ever).
  4276.     102 -105     4  Number of bytes uploaded (ever).
  4277.     106 -119    14  Date and time the user was last on (MM-DD-YY HH:MM).
  4278.     120 -122     3  Date the user last listed a directory.
  4279.     123 -124     2  Number of files downloaded (ever).
  4280.     125 -126     2  Number of files uploaded (ever).
  4281.     127 -128     2  Elapsed time the user was on for day of last access.
  4282.  
  4283.     Line 9400 of the BASIC source code  for  RBBS- PC.BAS contains the code for
  4284.     opening this file.   The user's logon options, positions 49 through 62, are
  4285.     utilized as follows:
  4286.  
  4287.     Position Length           Description
  4288.      49 - 50     2   Number of times the user has logged on
  4289.      51 - 52     2   Last message number read by the user
  4290.         53       1   Protocol Preference (blank if none, otherwise letter)
  4291.         54       1   Graphics Preference (see meaning below)
  4292.      55 - 56     2   Margin length for this users messages
  4293.      57  - 58     2    Bit Flag -- this 16-bit  field is denoted by bit 0 being
  4294.     the least  significant (i.e.  right-most bit)  and  bit 15  being the  most
  4295.     significant (i.e.  left-most bit).   These "bit  flags" have  the following
  4296.     meanings (0=off, 1=on):
  4297.  
  4298.                            BIT    Definition (what ON means) 
  4299.                             0     Bell prompts
  4300.                             1     "Expert" mode
  4301.                             2     Nulls
  4302.                             3     Upper case only
  4303.                             4     Line feeds
  4304.                             5     Skip old bulletins
  4305.                             6     Check new files on logon
  4306.                             7     Use autodownload
  4307.                             8     Required questionnaire answered
  4308.                             9     Mail Waiting
  4309.                            10     Highlighting enabled
  4310.                            11     "TurboKey" enabled
  4311.                           12-15   RESERVED FOR FUTURE USE
  4312.      59 - 60     2   Date subscription began
  4313.         61       1   Page length to use for this users terminal
  4314.         62       1  ------- RESERVED FOR FUTURE USE ---------
  4315.                 ---
  4316.                 14
  4317.  
  4318.     The meaning of the graphics preference byte depends on the numeric value it
  4319.     has.   The caller can specify, for text files, no graphics, ascii graphics,
  4320.     RBBS-PC CPC17.3                                                 Page 237
  4321.  
  4322.     or ansi color graphics;  then the  color, and then whether normal or  bold.
  4323.     For example, if graphics perference for text files is color, and preference
  4324.     for normal text is light yellow, graphics  preference stored is 38.  Colors
  4325.     are Red, Green, Yellow, Blue, Purple, Cyan, and White. 
  4326.  
  4327.                              normal                  bold 
  4328.        graphics\color  R  G  Y  B  P  C  W    R  G  Y  B  P  C  W 
  4329.         none ......   30 33 36 39 42 45 48 | 51 54 57 60 63 66 69 
  4330.        ascii ......   31 34 37 40 43 46 49 | 52 55 58 61 64 67 70 
  4331.         ansi ......   32 35 38 41 44 47 50 | 53 56 59 62 65 68 71 
  4332.     RBBS-PC CPC17.3                                                 Page 238
  4333.  
  4334.     APPENDIX B -- RBBS-PC in a DESQview Environment
  4335.     -----------------------------------------------
  4336.     By John L. Taylor - Sysop, Indiana On-Line (tm)        BBS: (812) 332-RBBS
  4337.  
  4338.     DESQview, from Quarterdeck Office Systems, provides an excellent, low-cost,
  4339.     software platform for RBBS-PC Sysops wanting multiple nodes on a single PC.
  4340.     This appendix has been provided to help both the novice sysop and the more
  4341.     experienced sysop with the implementation of multiple nodes under DESQview.
  4342.  
  4343.     1.  Basic Hardware Considerations
  4344.     ---------------------------------
  4345.     If your computer has only 640k, you will be limited to a single node when
  4346.     using DESQview.  If, however, your computer has 1-Megabyte or more of EEMS
  4347.     memory,  DESQview is  capable  of supporting  up  to  8-nodes on  a  single
  4348.     computer.  Providing two nodes is simple.  Going beyond two nodes will
  4349.     require special software and hardware.  This appendix describes both
  4350.     approaches.
  4351.  
  4352.     Multiple-node operation will require an EEMS-compatible memory expansion
  4353.     card for your computer.  Make certain your memory card is EEMS (not merely
  4354.     EMS, but EEMS) compatible!  We've answered a lot of calls from distressed
  4355.     Sysops who purchased an EMS memory card and found it was inadequate for
  4356.     their needs.  DESQview has some limitations in a PC or AT, unless you can
  4357.     reduce the motherboard memory to 64k, 128k or 256k.  The amount of memory
  4358.     on your motherboard will affect the size of your 2nd, 3rd, etc. windows.
  4359.     This limitation is described in the DESQview documentation.  These
  4360.     limitations do not apply if you use an 80386/SX or 80386 based computer.
  4361.     Therefore, we recommend an 80386 as the best choice for a multi-node host
  4362.     computer.  If you plan to use an 80386 or 80386/SX computer, we suggest you
  4363.     purchase DESQview/386, which includes the QEMM memory manager.  This memory
  4364.     manager allows DESQview to use regular 80386 Extended memory in the same
  4365.     manner as EEMS memory.  The QEMM memory manager may be purchased separately
  4366.     if you already have DESQview.
  4367.  
  4368.     Before you continue, make certain you have read and thoroughly understand
  4369.     the instruction manual provided with your copy of DESQview.  If you plan to
  4370.     implement some of the more advanced configurations, additional software may
  4371.     be necessary.  This software is available on our BBS, Indiana On-Line (tm).
  4372.     Our BBS telephone number is published at the end of this DESQview appendix.
  4373.  
  4374.     2.  Modifications to DOS CONFIG.SYS and RBBS-PC batch files
  4375.     -----------------------------------------------------------
  4376.     The first step in using DESQview with RBBS-PC is setting up your CONFIG.SYS
  4377.     file.  Files=35 is probably the most critical value.   This value tells DOS
  4378.     how many files may be open at the same time.  This value may need to be
  4379.     increased if you intend to run more than 2 nodes of RBBS-PC.
  4380.  
  4381.     A typical CONFIG.SYS file should include the following:
  4382.  
  4383.          FILES = 35
  4384.          BUFFERS = 25
  4385.  
  4386.     If you intend to operate two or more nodes of RBBS-PC, a batch file will be
  4387.     required for each node.  We also recommend a separate batch file (that is
  4388.     called from DESQview) to invoke the proper RBBSx.BAT file for each node.
  4389.  
  4390.     In our example, this batch file is named START.BAT.  You will note by these
  4391.     RBBS-PC CPC17.3                                                 Page 239
  4392.  
  4393.     examples that we're passing the node number from DESQview to the batch file
  4394.     START.BAT.    The  START  batch  file  uses  that  parameter  to  call  the
  4395.     appropriate
  4396.     RBBSx.BAT  batch  file.   Using  separate  files will  allow  you  to place
  4397.     programs
  4398.     that should be loaded only once in the START batch file.  Programs invoked
  4399.     from the RBBSx.BAT files are invoked each time RBBS exits for a DOOR or
  4400.     external protocol.  This may cause certain TSRs to use additional memory
  4401.     if they load a new copy each time they are invoked.  Using a separate batch
  4402.     file will ensure TSRs are loaded only once.
  4403.  
  4404.        Contents of C:\RBBS\START.BAT     Description of each line's function.
  4405.        -----------------------------  ---------------------------------------
  4406.        DVANSI                         ...loads DESQview ANSI.SYS driver
  4407.        LDFILTER.COM                   ...explained later in this appendix
  4408.        SET DSZLOG=XFER-%1.DEF         ...set DOS environment variable for DSZ
  4409.        RBBS%1                         ...call appropriate node RBBSx.BAT file
  4410.  
  4411.        Contents of C:\RBBS\RBBS1.BAT          Contents of C:\RBBS\RBBS2.BAT
  4412.        ----------------------------------   ----------------------------------
  4413.        IF EXIST RCTTY1.BAT DEL RCTTY1.BAT   IF EXIST RCTTY2.BAT DEL RCTTY2.BAT
  4414.        WATCHDG1 OFF                         WATCHDG2 OFF
  4415.        RBBS-PC.EXE 1                        RBBS-PC.EXE 2
  4416.        WATCHDG1 ON                          WATCHDG2 ON
  4417.        IF EXIST RCTTY1.BAT RCTTY1.BAT       IF EXIST RCTTY2.BAT RCTTY2.BAT
  4418.        RBBS1.BAT                            RBBS2.BAT
  4419.  
  4420.     In the  above  examples, the  program  WATCHDOG  is being  used  to monitor
  4421.     for carrier  when the SYSOP  has dropped into DOS  remotely or   a user has
  4422.     opened a Door.   For example, WATCHDG1 monitors COM1 and  WATCHDG2 monitors
  4423.     COM2.  If you aren't using WATCHDOG, leave these commands out of your batch
  4424.     files.
  4425.  
  4426.     3.  What to Tell RBBS-PC's "CONFIG" Utility
  4427.     -------------------------------------------
  4428.     When  using DESQview,  you  will need  to change  some parameters  with the
  4429.     CONFIG program (supplied  with RBBS-PC).  The following  change is ample if
  4430.     you are planning to run a single node.
  4431.  
  4432.        162. Environment running concurrent RBBS-PC's ------ DESQview
  4433.  
  4434.     If you intend to use two or more nodes of RBBS-PC, you  will need to change
  4435.     a few additional parameters with the RBBS-PC "CONFIG" utility.  When using
  4436.     multiple  nodes of RBBS-PC  you will be  using a  .DEF file for  each node.
  4437.     Each node will  have a .DEF file  named RBBS?PC.DEF where ?  represents the
  4438.     number of the  node.  These  are created by  answering YES to  the question
  4439.     "Will you  be running  multiple copies of  RBBS-PC (YES  or NO)?"  when the
  4440.     "CONFIG" utility first  loads.  If  you prefer to  use the parameters  from
  4441.     your existing single node RBBS-PC.DEF  file, you may simply copy  that file
  4442.     to the new .DEF files  before you run the "CONFIG" utility.   After loading
  4443.     the "CONFIG" utility, it will ask you "To which copy of RBBS-PC will  these
  4444.     options apply  (1 to 36)?"  and you should   respond  with node number  (or
  4445.     copy) you want to configure.
  4446.  
  4447.     Here are  the parameters that  will have to   be changed  for each node  of
  4448.     RBBS-PC you intend to use.  This example is for a system with two nodes.
  4449.     RBBS-PC CPC17.3                                                 Page 240
  4450.  
  4451.        Parameters for Node-1  --  Node DEF file--> RBBS1PC.DEF
  4452.        ----------------------------------------------------------------------
  4453.        103. File built dynamically to open a 'door' ------ C:\RBBS\RCTTY1.BAT
  4454.        104. When a 'door' closes, re-invoke RBBS-PC via -- C:\RBBS\RBBS1.BAT
  4455.        161. Maximum number of concurrent RBBS-PC's  ------- 2
  4456.        162. Environment running concurrent RBBS-PC's ------ DESQview
  4457.        221. Communications port to be used by RBBS-PC ---- COM1
  4458.  
  4459.        Parameters for Node-2  --  Node DEF file--> RBBS2PC.DEF
  4460.        ----------------------------------------------------------------------
  4461.        103. File built dynamically to open a 'door' ------ C:\RBBS\RCTTY2.BAT
  4462.        104. When a 'door' closes, re-invoke RBBS-PC via -- C:\RBBS\RBBS2.BAT
  4463.        161. Maximum number of concurrent RBBS-PC's  ------- 2
  4464.        162. Environment running concurrent RBBS-PC's ------ DESQview
  4465.        221. Communications port to be used by RBBS-PC ---- COM2
  4466.  
  4467.     Please note that the preceding parameters are located on different pages of
  4468.     the "CONFIG" utility.  The parameter numbers may also differ slightly,
  4469.     depending on the version of RBBS-PC you are using.
  4470.  
  4471.     4.  DESQview Setup Default Settings
  4472.     -----------------------------------
  4473.     The first step in configuring DESQview for use with RBBS-PC is specifying
  4474.     the default settings for  DESQview.  DESQview has a setup  program that may
  4475.     be  invoked at  the DOS  prompt.  Enter  SETUP to  run this  DESQview setup
  4476.     routine. After the SETUP program loads, press RETURN for the Advanced Setup
  4477.     Procedure followed by a  "P" for Performance defaults.  Here  is an example
  4478.     of the recommended settings:
  4479.  
  4480.     ------------------------------------------
  4481.     I  Task Processing Time (in Clock Ticks) I  Optimum Fore/Backgrnd can vary
  4482.     I            Foreground:    9            I  between 15/14 and 4/3.  These
  4483.     I            Background:    8            I  settings will vary depending on
  4484.     I                                        I  CPU speed and number of nodes
  4485.     I  Memory Usage (in K)                   I  in operation.  Experiment with
  4486.     I      Common Memory:      24            I  different settings to find the
  4487.     I      DOS Buffer for EMS:  2            I  best for your system.
  4488.     I                                        I
  4489.     I  Optimize communications?    (Y/N): N  I  Select [Y] if you're operating
  4490.     I  Allow swapping of programs? (Y/N): Y  I  only 1-node under DESQview!
  4491.     I  Manage printer contention?  (Y/N): N  I
  4492.     I                                        I
  4493.     I           Next field     Tab           I
  4494.     I           Backup menu    Esc           I
  4495.     I           DONE           <             I
  4496.     I                                        I
  4497.     ------------------------------------------
  4498.  
  4499.     NEVER  indicate more  clock ticks  for Background  processing than  you are
  4500.     using for the Foreground processing.   DESQview will automatically increase
  4501.     the amount of Background clock ticks whenever there is little demand for
  4502.     Foreground processing.  This will be the case when running RBBS-PC in the
  4503.     background and doing word processing or a similar task in the foreground.
  4504.     This feature cannot function properly if the Background clock ticks are set
  4505.     higher  than the  Foreground clock  ticks.   Setting  the  High Speed  Comm
  4506.     default  to YES will  make communications interrupts  the highest priority.
  4507.     While this is suggested if you operate a single node, you should specify NO
  4508.     RBBS-PC CPC17.3                                                 Page 241
  4509.  
  4510.     for optimum performance when operating multiple nodes.
  4511.  
  4512.     5.  Adding RBBS-PC to DESQview's  "Open Window" Menu
  4513.     ----------------------------------------------------
  4514.     Refer to the section "Adding Your Own Program" in the DESQview manual.  You
  4515.     will need to "Add a Program" for each node of RBBS-PC you intend to operate
  4516.     on your system.  You may name the programs N1, N2, etc.  N1 will load the
  4517.     batch file START.BAT with the Parameter "1".  N2 will load START.BAT with
  4518.     the Parameter "2" and so on.  Use the following settings for each node (or
  4519.     copy) of RBBS-PC you install.
  4520.  
  4521.                                    Add a Program
  4522.     --------------------------------------------------------------------------
  4523.      Program Name............: [NODE-1]
  4524.  
  4525.      Keys to Use on Open Menu: N1                   Memory Size (in K): 380
  4526.  
  4527.      Program...: START                  Please note that Memory Size above may
  4528.                                         need to be increased if you intend to
  4529.      Parameters: 1  (node number)       SHELL (rather than DOOR) to External
  4530.                                         file transfer protocols.
  4531.      Directory.: C:\RBBS
  4532.  
  4533.      Options:
  4534.                     Writes text directly to screen.......: [N]
  4535.                     Displays graphics information........: [N]
  4536.                     Virtualize text/graphics (Y,N,T).....: [N]
  4537.                     Uses serial ports (Y,N,1,2)..........: [Y] <-N if Using a
  4538.                     Requires floppy diskette.............: [N]   FOSSIL driver
  4539.     ---------------------------------------------------------------------------
  4540.  
  4541.     Next, press F1 for the Advanced Options menu.
  4542.  
  4543.                           Change a Program Advanced Options
  4544.     ---------------------------------------------------------------------------
  4545.     System Memory (in K).......:   0   Maximum Program Memory Size (in K)..:
  4546.  
  4547.     Script Buffer Size.......:     1   Maximum Expanded Memory Size (in K):
  4548.  
  4549.     Text Pages: 1  Graphics Pages: 0   Initial Mode:      Interrupts: 00 to FF
  4550.  
  4551.     Window Position:
  4552.        Maximum Height:  25       Starting Height:           Starting Row...:
  4553.        Maximum Width.:  80       Starting Width.:           Starting Column:
  4554.  
  4555.                                    Shared Program
  4556.     Pathname..:
  4557.     Data......:
  4558.  
  4559.     Close on exit (Y,N,blank)......: [N]  Uses its own colors............: [Y]
  4560.     Allow Close Window command.....: [Y]  Runs in background (Y,N,blank).: [Y]
  4561.     Uses math coprocessor..........: [N]  Keyboard conflict (0-4)........: [0]
  4562.     Share CPU when foreground......: [Y]  Share EGA when foregrnd/zoomed.: [Y]
  4563.     Can be swapped out (Y,N,blank).: [N]  Protection level (0-3).........: [0]
  4564.     ---------------------------------------------------------------------------
  4565.  
  4566.     6.  Memory Considerations
  4567.     RBBS-PC CPC17.3                                                 Page 242
  4568.  
  4569.     -------------------------
  4570.     Please refer to your DESQview documentation for information regarding the
  4571.     use of XDV.COM and optimizing the size for each DESQview window.  Current
  4572.     versions of DESQview require a little under 180k of your system's memory,
  4573.     leaving only 430k to operate RBBS-PC on a system with 640k.  Specify a
  4574.     minimum window size of 380k for RBBS-PC.  If you choose to SHELL (rather
  4575.     than DOOR) to  external protocol drivers for file transfers,  you will have
  4576.     to increase this window size.
  4577.  
  4578.     It is necessary to use EEMS memory to run two or more concurrent copies of
  4579.     RBBS-PC under DESQview.  If available EEMS memory allows, you may wish to
  4580.     add an additional  "LOCAL" node for  Sysop use.   When using an  additional
  4581.     node for SYSOP  duties, an additional  modem and  RS-232 interface are  not
  4582.     required.  Simply use  CONFIG to set up the .DEF file for  the node you are
  4583.     planning to use for SYSOP duties.  You must specify the communications port
  4584.     as COM0.  Failure to do so will prevent your local Sysop node from  loading
  4585.     properly. 
  4586.  
  4587.     7.  Expanded Memory
  4588.     -------------------
  4589.     If you are using  an "Expanded Memory" board that allows  more than 640k to
  4590.     be used for programs, the constraints discussed in the previous section may
  4591.     not apply.   Specify a window  size of  460K for each node of   RBBS-PC and
  4592.     invoke  the external  protocol drivers  by  SHELLing.   For information  on
  4593.     running programs in expanded memory, refer to the manuals  for DESQview and
  4594.     your particular memory board.
  4595.  
  4596.     8.  How to AUTOEXEC RBBS-PC From DESQview
  4597.     -----------------------------------------
  4598.     Refer to the section "LEARN: DESQview's Keystroke Macro Feature" in the
  4599.     DESQview manual.  A script assigned to the ! key (on the DESQview menu) has
  4600.     a special meaning.  It is performed at the time you start up DESQview,
  4601.     immediately after the DESQview menu appears.  This is called a STARTUP
  4602.     SCRIPT.   You should "Learn"  the Startup Script  with no windows  open and
  4603.     with  the DESQview menu  displayed to be  sure it will  play back properly.
  4604.     Use  this particular script to load  N1, N2, etc. of  RBBS-PC.  If you load
  4605.     DESQview  from your  AUTOEXEC.BAT  file, RBBS-PC  will  load from  DESQview
  4606.     automatically. This can  be handy if there is a power  outage while you are
  4607.     away and no one is around to  re-load RBBS-PC when the electricity returns.
  4608.     You should open  the window(s) for RBBS-PC prior to opening windows for any
  4609.     other application software.
  4610.  
  4611.     9.  Quarterdeck Utilities
  4612.     -------------------------
  4613.     Two Quarterdeck utilities, STDERR.COM and LDFILTER.COM are distributed with
  4614.     RBBS-PC.    LDFILTER.COM should  be  executed  when you  open  a  window in
  4615.     DESQview.   If you  use the  Small &  Fast version  of RBBS-PC  - or  - you
  4616.     compile RBBS-PC with QuickBASIC v2.01, you should use LDFILTER.COM.  In the
  4617.     above examples,  LDFILTER would  be placed into  the START.BAT  batch file.
  4618.     LDFILTER was  written by Quarterdeck  Office Systems to compensate  for the
  4619.     memory mismanagement of  the BASIC compilers.  If you try  to "SHELL" to an
  4620.     external  routine  the  error  "not  enough memory  to  SHELL"  is  issued.
  4621.     LDFILTER.COM prevents this error condition by preventing the code generated
  4622.     by the BASIC compilers from mis-managing memory.
  4623.  
  4624.     STDERR.COM should be executed from your autoexec.bat file, prior to loading
  4625.     DESQview.  STDERR was written by Quarterdeck Office Systems to compensate
  4626.     RBBS-PC CPC17.3                                                 Page 243
  4627.  
  4628.     DOS' inability  to redirect the  standard error  output to the  same device
  4629.     that the standard output device had been redirected to.  If you are running
  4630.     something remotely and an error occurs, STDERR.COM allows the error to be
  4631.     displayed at the remote user's end and not simply on the PC that is running
  4632.     RBBS-PC under DESQview.
  4633.  
  4634.     10. Redirecting I/O Considerations (DOS CTTY Command)
  4635.     -----------------------------------------------------
  4636.     The DOS CTTY command is NOT supported under DESQview.  The GATEWAY device
  4637.     driver version 2.0, by Hans D. Kellner, provides an excellent alternative.
  4638.     This device driver is available on many bulletin boards (including our BBS)
  4639.     under the filename GATEWAY2.ZIP or GATEWAY2.ARC.
  4640.  
  4641.     Since the DOS CTTY command is not supported within a DESQview window, you
  4642.     may use GATEWAY2 to allow redirection of I/O.  This will allow the Sysop
  4643.     Function 7 (drop to DOS) to function properly!  It will also allow RBBS-PC
  4644.     DOORS to function that rely on the CTTY command.
  4645.  
  4646.     Instructions for installing GATEWAY2 with RBBS-PC.
  4647.  
  4648.        1) Place the file 'GATEWAY2.SYS' in your boot disk root directory.
  4649.  
  4650.        2) Add the following lines to your 'CONFIG.SYS' file:
  4651.  
  4652.           DEVICE=GATEWAY2.SYS -D -1  <-- for node-1 using COM1
  4653.           DEVICE=GATEWAY2.SYS -D -2  <-- for node-2 using COM2
  4654.  
  4655.          (note) You must change the [-d] parameter to [-f] if you are using a
  4656.                 FOSSIL driver (described later in this appendix).
  4657.  
  4658.        3) Run the RBBS CONFIG.EXE program for each node of RBBS-PC you're
  4659.           using.  You will need to change parameter #106 as follows:
  4660.  
  4661.           106. Use the Dos 'CTTY' command to redirect I/O --- NO
  4662.                                                              ----
  4663.           Redirect I/O via the CTTY command on dropping to DOS? Y)es or N)o N
  4664.                                                                            ---
  4665.           Redirect I/O via a device named in CONFIG.SYS? Y)es or N)o  Y
  4666.                                                                      ---
  4667.           Enter name of the device to use.  GATE2
  4668.                                            -------
  4669.           Use the device named GATE2? Y)es or N)o  Y
  4670.                                                   ---
  4671.  
  4672.     The use of GATEWAY2 has an added benefit for those Sysops who provide the
  4673.     PC-SIG collection  of  files on  CD-ROM.   When a  user  A)rchives a  disk,
  4674.     RBBS-PC will  use Gateway to  redirect the archive activity  (normally seen
  4675.     only on the SysOp's screen) to the remote user.  This will allow the caller
  4676.     to see the PC-SIG disk being archived!
  4677.  
  4678.     11. FOSSIL Drivers - Break the 2-node Barrier under DESQview!
  4679.     -------------------------------------------------------------
  4680.     The BASIC language can only support COM1 and COM2, and when either of these
  4681.     are selected and you specify that you will not be using a "FOSSIL" driver,
  4682.     RBBS-PC will use the built-in BASIC support for remote access (i.e. via  a
  4683.     communications port  and a modem).    However, RBBS-PC will  interface with
  4684.     "FOSSIL" drivers that support not only COM1  and COM2 but also COM3 through
  4685.     RBBS-PC CPC17.3                                                 Page 244
  4686.  
  4687.     COM8.  If  you use parameter  221 to indicate that RBBS-PC is to access the
  4688.     communication port via a FOSSIL driver, the FOSSIL interface (FOSSCOMM.OBJ)
  4689.     written by Daan Van  der Weide will be used.   FOSSCOMM.OBJ provides access
  4690.     to whatever FOSSIL drivers  that are installed  on the PC running  RBBS-PC.
  4691.     In a  multi-tasking environment such as DESQview up  to 8 copies of RBBS-PC
  4692.     can  run  simultaneously accessing  COM1 to  COM8, respectively,  using Ray
  4693.     Gwinn's X00.SYS device driver.    Ray can be reached via FidoNet  (109/639)
  4694.     or the  RENEX bulletin board at (703) 494-8331  or (703) 690-7950.  X00.SYS
  4695.     is also available from our BBS.
  4696.  
  4697.     Here's an example of how to specify fossil support, using the CONFIG
  4698.     parameter 221:
  4699.  
  4700.        221. Communications port to be used by RBBS-PC ---- 
  4701.  
  4702.         # of communication port to use (1-8, or 0 for LOCAL WORKSTATION)?  2
  4703.                                                                           ---
  4704.         Use FOSSIL driver support Y)es or N)o  Y
  4705.                                               ---
  4706.         Enter port address, i.e. 3F8?  2E8  (using COM4)
  4707.                                       -----
  4708.  
  4709.     If you choose to implement a fossil driver, you'll want to change the
  4710.     following parameter for each DESQview window:
  4711.  
  4712.        Options:
  4713.                 Uses serial ports (Y,N,1,2)..........: [N]   <--Set to NO
  4714.  
  4715.     If the  fossil is  handling communications, you  should tell  DESQview that
  4716.     RBBS is NOT using serial ports.  That way, only the fossil is handling the
  4717.     communications for each port.
  4718.  
  4719.     In the following text, we will attempt to give you some basic information
  4720.     regarding the use of X00.SYS with RBBS-PC.  For additional information,
  4721.     please refer to the documentation provided with the X00.SYS fossil driver.
  4722.  
  4723.     There are several approaches that can be taken to implement serial ports
  4724.     with Ray Gwinn's X00.SYS.  THE FIRST APPROACH involves the use of separate
  4725.     base I/O addresses and separate IRQs for each serial port.  This is the
  4726.     method we use on our BBS to provide 4-ports on a single 80386-based
  4727.     computer.  We use the following configuration:
  4728.  
  4729.        Card #1   COM1   IRQ4   3F8h  (standard IRQ, standard base I/O)
  4730.        Card #1   COM2   IRQ3   2F8h  (standard IRQ, standard base I/O)
  4731.        Card #2   COM3   IRQ7   3E8h  (non-standard IRQ, standard base I/O)
  4732.        Card #2   COM4   IRQ5   2E8h  (non-standard IRQ, standard base I/O)
  4733.  
  4734.     We use serial ports with the NS16550AN UART chips.  This particular chip is
  4735.     recommended if you intend to use 9600-bps modems with multiple nodes under
  4736.     DESQview.  We had difficulties with Zmodem (DSZ) under DESQview until these
  4737.     chips were installed on our serial cards.
  4738.  
  4739.     For reference, here's the line from our CONFIG.SYS to invoke the X00.SYS
  4740.     fossil driver.  In addition to specifying the IRQs and base I/O for each
  4741.     port, we lock our ports to 19,200-bps for our Courier HST DS Modems.  This
  4742.     is not necessary if you are using a standard Hayes-compatible 2400-bps
  4743.     modem.  This entry is on a single line but appears as two lines below.
  4744.     RBBS-PC CPC17.3                                                 Page 245
  4745.  
  4746.      DEVICE=C:\X00.SYS E T=2048 R=2048 0=3F8,IRQ4 1=2F8,IRQ3 2=3E8,IRQ7 3=2E8,
  4747.      IRQ5 B,0,19200 B,1,19200 B,2,19200 B,3,19200
  4748.  
  4749.     We have also configured GATEWAY2 (discussed earlier in this text) to make
  4750.     use of the fossil driver.  Here's the entry from our CONFIG.SYS as an
  4751.     example.
  4752.  
  4753.        DEVICE=C:\GATEWAY2.SYS -F -1  (gateway for COM1)
  4754.        DEVICE=C:\GATEWAY2.SYS -F -2  (gateway for COM2)
  4755.        DEVICE=C:\GATEWAY2.SYS -F -3  (gateway for COM3)
  4756.        DEVICE=C:\GATEWAY2.SYS -F -4  (gateway for COM4)
  4757.  
  4758.     THE SECOND APPROACH also involves the use of a separate base I/O for each
  4759.     port, but IRQs  are "shared".  Recent  versions of X00.SYS will  manage the
  4760.     use of a "Shared" IRQ.  For example, COM1 and COM2 on the first serial card
  4761.     share IRQ4.   COM3 and COM4  on the second  serial card share IRQ3.   Under
  4762.     this arrangement each port sharing an IRQ must be located on the SAME CARD.
  4763.     This  requirement  is not  due  to  X00.SYS  but  is, instead,  a  hardware
  4764.     restriction; IRQs cannot be shared between boards.
  4765.  
  4766.     In both the above examples, NON-intelligent serial cards are used.  RBBS-PC
  4767.     will NOT support the many "Intelligent" multi-port I/O cards on the market.
  4768.     These "Intelligent" boards are popular in other environments (such as UNIX)
  4769.     but  they  provide a  datastream  into the  host  using a  single  base I/O
  4770.     address.  RBBS must receive its  communications at a separate base I/O  for
  4771.     each port.
  4772.  
  4773.     Here's a chart of generally accepted IRQs and base I/O addresses for the
  4774.     standard PC/AT and PS/2.  Although these are the common settings, they vary
  4775.     (and we stress VARY) according to serial card manufacturer.
  4776.  
  4777.                Standard AT BUS                    Microchannel (PS/2) BUS
  4778.     ---------------------------------------------------------------------------
  4779.          PORT      BASE I/O      IRQ            PORT      BASE I/O      IRQ
  4780.     ---------------------------------------------------------------------------
  4781.          COM1       3F8h        IRQ4            COM1       3F8h        IRQ4
  4782.          COM2       2F8h        IRQ3            COM2       2F8h        IRQ3
  4783.          COM3       3E8h        IRQ4            COM3       3220h       IRQ3
  4784.          COM4       2E8h        IRQ3            COM4       3228h       IRQ3
  4785.          COM5       3F8h        IRQ4            COM5       4220h       IRQ3
  4786.          COM6       2F8h        IRQ3            COM6       4228h       IRQ3
  4787.          COM7       3E8h        IRQ4            COM7       5220h       IRQ3
  4788.          COM8       2E8h        IRQ3            COM8       5228h       IRQ3
  4789.     ---------------------------------------------------------------------------
  4790.  
  4791.     If you intend to duplicate the 4-node configuration we use on our BBS, you
  4792.     will need to find a serial card that will let you choose any IRQ from IRQ3
  4793.     to IRQ7 for each port (1 through 4).  If you have difficulty locating a
  4794.     serial card with this flexibility, you may contact us and we'll provide you
  4795.     with a reliable source.
  4796.  
  4797.     In closing, there are also some important issues to consider when choosing
  4798.     to go beyond two ports on a single computer.  These include:
  4799.  
  4800.      1)  EXTERNAL PROTOCOL SUPPORT.  The external protocol drivers you choose
  4801.          must let you either define the IRQ for the additional ports, or they
  4802.          just rely on the fossil driver for their communications.  In other
  4803.     RBBS-PC CPC17.3                                                 Page 246
  4804.  
  4805.          words, they must have support for fossil drivers.  Some protocols scan
  4806.          a port for I/O without using an IRQ.  These will probably work if you
  4807.          use standard base I/O addresses for your additional ports.  You may
  4808.          contact our BBS for information regarding what external protocols we
  4809.          have tested on our additional ports (COM3 and above).
  4810.  
  4811.      2)  CPU SPEED LIMITATIONS.  Here's a chart indicating my recommendations
  4812.          for each computer type, amount of EEMS memory and number of nodes.
  4813.  
  4814.                                --- PERFORMANCE ---
  4815.  
  4816.       HOST            1-Node 2-Nodes  3-Nodes 4-Nodes  5-Nodes 6-Nodes  7-Nodes
  4817.     8-Nodes
  4818.     COMPUTER       640k   1.4Mb   2.0Mb   2.6Mb   3.2Mb   3.8Mb   4.4Mb   5.0Mb
  4819.     ---------------------------------------------------------------------------
  4820.     PC 4.77-MHz     A2     C3      F5      F5      F5      F5      F5      F5
  4821.     PC 8-12-MHz     A1     B2      D5      F5      F5      F5      F5      F5
  4822.     AT 8-12-MHz     A1     B2      C4      D5      F5      F5      F5      F5
  4823.     AT 16-20-MHz    A1     A1      B3      C3      D5      D5      F5      F5
  4824.     80386/SX        A1     A1      A2      B2      C4      C4      D5      D5
  4825.     80386/16-MHz    A1     A1      A2      A2      B3      B3      C4      C4
  4826.     80386/25-MHz    A1     A1      A2      A2      B3      B3      C3      C3
  4827.     80386/33-MHz    A1     A1      A1      A2      B3      B3      B3      B3
  4828.     ---------------------------------------------------------------------------
  4829.                       A=EXCELLENT at 2400-bps    1=EXCELLENT at 9600-bps
  4830.                       B=GOOD at 2400-bps         2=GOOD at 9600-bps
  4831.                       C=MARGINAL at 2400-bps     3=MARGINAL at 9600-bps
  4832.                       D=POOR at 2400-bps         4=POOR at 9600-bps
  4833.                       F=Not Recommended          5=Not Recommended at 9600-bps
  4834.     ---------------------------------------------------------------------------
  4835.     Your  results may vary  due to MIPS  rating and  bus speed of  the computer
  4836.     used.
  4837.  
  4838.     If you plan to support BPS rates of 9600 or above on one or more nodes, we
  4839.     recommend the use of NS16550AN UART chips.  These chips are necessary for
  4840.     acceptable Zmodem (DSZ) performance under DESQview.
  4841.  
  4842.     12. Thanks to those that helped!
  4843.     --------------------------------
  4844.     I'd like to thank the following people that provided assistance in the
  4845.     preparation of the information contained in this appendix.  Jon Martin (who
  4846.     always took time to answer my DESQview questions), Ray Gwinn (for his help
  4847.     regarding X00.SYS and its usage),  Dan Fox (who provided helpful insight
  4848.     for sharing IRQs) and Tom Hansen of the Church Chatters BBS (for his many
  4849.     hours  of help  regarding  the areas  of RBBS  I'm  not very  knowledgeable
  4850.     about).
  4851.  
  4852.     13. RBBS-PC Technical Support For DESQview
  4853.     ------------------------------------------
  4854.     If you follow these instructions and continue to have difficulties, please
  4855.     contact me and I'll do my best to help out.  We offer a DESQview/RBBS "DV"
  4856.     Subboard on our BBS that you may call for technical help.  I try to answer
  4857.     questions promptly.  You may also contact me at the numbers below.
  4858.  
  4859.     In addition to providing DESQview support, I can be of assistance to those
  4860.     operating multi-node  bulletin boards on a  NOVELL Local Area Network.   We
  4861.     use a  Novell LAN as  the "backbone"  for our  BBS.  It  works nicely  with
  4862.     RBBS-PC CPC17.3                                                 Page 247
  4863.  
  4864.     DESQview!
  4865.  
  4866.     I do  not receive any  financial support from Quarterdeck  (or anyone else)
  4867.     for helping other  Sysops.  Often callers have made the assumption I worked
  4868.     for the folks at Quarterdeck Office Systems; I don't.  I have a regular job
  4869.     (in the computer field, of course).  I've been  using RBBS-PC since July 4,
  4870.     1984.  I enjoy  RBBS-PC  and believe  it's a  product,  and concept,  worth
  4871.     supporting! 
  4872.  
  4873.     John L. Taylor                                      BBS: (812) 332-RBBS
  4874.     Sysop,  Indiana  On-Line  (tm)                                             
  4875.     ---------------------
  4876.     President,  Indiana  Digital  Corp.                                        
  4877.     3/12/24/96/14,400-bps
  4878.     Work: (812) 332-1110, 9am-9pm EST                   HST & V.32 Compatible
  4879.     Home: (812) 332-0111, weekends                      5-nodes 24-hours 1-Gb
  4880.     RBBS-PC CPC17.3                                                 Page 248
  4881.  
  4882.     APPENDIX C -- RBBS-PC in a MultiLink Environment
  4883.     ------------------------------------------------
  4884.     RBBS-PC only runs under Multilink versions 4.0, 3.02 and earlier.
  4885.  
  4886.     CONFIG's  allows the SYSOP  to tell RBBS-PC  that it  will be running  in a
  4887.     MultiLink  environment.    This is  ESSENTIAL  when  running RBBS-PC  under
  4888.     MultiLink.  CONFIG allows the SYSOP to specify what MultiLink terminal type
  4889.     code to pass to MultiLink whenever RBBS-PC exits to DOS via a "Door".  Page
  4890.     15  of  the MultiLink  documentation  specifies the  various  terminal type
  4891.     codes.   When a SYSOP  indicates that "doors"  are available (via parameter
  4892.     101 of CONFIG) and RBBS-PC is to be run under MultiLink, the SYSOP is asked
  4893.     to select the  MultiLink terminal type that RBBS-PC is  to inform MultiLink
  4894.     to expect when MultiLink is given control of the "Door."
  4895.  
  4896.     RBBS-PC has been  tested running two  copies of RBBS-PC  under DOS 3.2  and
  4897.     MultiLink Advanced (versions 3.02 and 4.0) on an IBM PC which had a mother-
  4898.     board containing  256K and  an AST Comboplus  board with  384K (a  total of
  4899.     640K).  However, to  do this RBBS-PC must be re-compiled  (see Appendix Y).
  4900.     The  "autoexec" file  was named  AUTOEXEC.BAT and  contained the  following
  4901.     parameters
  4902.  
  4903.                         MLINK /9,266/9,266
  4904.  
  4905.     NOTE! ==>RBBS-PC must be  recompiled with C:512 in  order to run in  a 268K
  4906.     partition  under MultiLink.   As  released,  RBBS-PC is  compiled with  the
  4907.     parameter C:4096 which requires a MultiLink partition of 270K.  Of  course,
  4908.     to SHELL to the external protocols, the partitions must be about 440K. 
  4909.  
  4910.     It is  important to avoid doing  several things when running  RBBS-PC under
  4911.     MultiLink.  First,  NEVER RUN MLSLICE!   This is because MLSLICE  hangs off
  4912.     the PC's timer chain and the code generated by the BASIC compilers violates
  4913.     all  sorts of  DOS conventions  whenever it is  utilizing the  PC's speaker
  4914.     (i.e. as when RBBS-PC pages the SYSOP).  In so doing, the code generated by
  4915.     the  BASIC compilers  is  incompatible  with programs  that  do follow  DOS
  4916.     conventions.  
  4917.  
  4918.     Second, NEVER use the DOS "PRINT" command!  This is because there is a  bug
  4919.     in the code generated by the BASIC compiler that causes the system to  hang
  4920.     if a compiled BASIC program is running and DOS is printing something.  This
  4921.     bug  has been  corrected in the  BASIC compiler  that was used  to generate
  4922.     RBBS-PC.EXE that is distributed.   However the version of RBBS-PC that  you
  4923.     get (if other than from CPCUG) may not have this bug corrected.   This is a
  4924.     bug that occurs independent of running MultiLink.
  4925.  
  4926.     Third, check your Intel 8088 chip's copyright  date by opening up the cover
  4927.     and  locating the 8088 chip.  If the copyright date printed  on the chip is
  4928.     1978 (i.e. pre 1981), REPLACE THE INTEL 8088 CHIP!!!!!  The 1978 Intel 8088
  4929.     chip  had  several design  flaws that  will  cause your  system to  lock up
  4930.     occasionally.   One of these design flaws allowed interrupts to occur while
  4931.     stack switching  (something that  will happen  running multiple  partitions
  4932.     doing disk I/O under any multi-tasking DOS add-on such as MultiLink or even
  4933.     IBM's TopView).   Don't blame MultiLink for the flawed Intel 8088 chip that
  4934.     IBM  put in your  PC!  It  costs about  $70 ($35 for  the chip and  $35 for
  4935.     labor)  and  takes  about 15  minutes  to  have the  1978  Intel  8088 chip
  4936.     replaced.   In fact, if you are going to replace your 1978 Intel 8088 chip,
  4937.     you might consider the newer (and 5% to 10% faster) NEC V20 chip.
  4938.     RBBS-PC CPC17.3                                                 Page 249
  4939.  
  4940.     Fourth, DON'T  USE "BUFFERS=" in  the CONFIG.SYS for  DOS!  This may  be an
  4941.     "old wives  tale," but  I am  convinced (but  can't prove)  that there  are
  4942.     incompatibilities between the code the BASIC compiler generates, DOS's  use
  4943.     of "BUFFERS=", and MultiLink.  
  4944.  
  4945.     Fifth, DON'T  ALLOW MNP  PROTOCOL for file  transfers.   An incompatibility
  4946.     exists  between the  Software  Link, Inc.'s  Multi-Link and  MICROCOM's MNP
  4947.     software.   Until  the respective  vendor's  resolve this,  don't use  both
  4948.     products concurrently! 
  4949.  
  4950.     Sixth, RBBS-PC will only run in Background 1 or Background 2.
  4951.  
  4952.     Finally,  DON'T RUN  PROGRAMS THAT  USE THE  BASIC "RUN-TIME"  LIBRARY, and
  4953.     always  invoke the BASIC interpreter with  the command BASIC /C:0! Both the
  4954.     BASIC interpreter's handling of communications ports and BASRUN.EXE seem to
  4955.     violate enough DOS conventions to "lock up" MultiLink.
  4956.  
  4957.     When RBBS-PC is  told that  it is  running in a  MultiLink environment  via
  4958.     CONFIG parameter 162, RBBS-PC will automatically do the following:
  4959.  
  4960.         1.  When re-cycling, it will automatically enque on the correct
  4961.             MultiLink resource ID for the communications port defined
  4962.             in CONFIG for that copy of RBBS-PC to use.
  4963.         2.  When re-cycling, it will automatically tell MultiLink that
  4964.             this is a type "9" partition (i.e. MultiLink is NOT to handle
  4965.             the communications port).
  4966.         3.  When exiting to DOS via a "door", RBBS-PC will automatically
  4967.             tell MultiLink to start handling the communications for this
  4968.             partition (COM1 or COM2) and what type of terminal was defined
  4969.             in CONFIG that would be on the communications port (MultiLink
  4970.             terminal types 1 through 12).
  4971.  
  4972.     Manually,  it is possible  to bring  up and run  one copy  of RBBS-PC under
  4973.     MultiLink.   The only way that I  have been able to bring  up two copies of
  4974.     RBBS-PC successfully (one  copy running in each  of two partitions) was  to
  4975.     bring them  up via AUTOEXE1.BAT  and AUTOEXE2.BAT files.   It  appears that
  4976.     during the MultiLink initialization sequence  when the partitions are being
  4977.     established and the "AUTOEXEx.BAT" files  are being invoked that  MultiLink
  4978.     doesn't get "confused" and lock  up with a second copy of RBBS-PC present. 
  4979.  
  4980.     If using   Multi-Link to  run multiple   nodes in  the  same  machine under
  4981.     DOS 3.x or above, it is recommended  that the SYSOP execute SHARE.COM prior
  4982.     to starting multiple RBBS-PC nodes under Multi-Link and specify FILES=20 in
  4983.     the CONFIG.SYS file.
  4984.     RBBS-PC CPC17.3                                                 Page 250
  4985.  
  4986.     APPENDIX D -- RBBS-PC in a CORVUS Network
  4987.     -----------------------------------------
  4988.     RBBS-PC  uses the  standard  Corvus  SEMAPHORES  when sharing  files  among
  4989.     multiple copies of  RBBS-PC within a Corvus Network.   This is accomplished
  4990.     via  the MS-DOS  utility driver,  DRIVEC2,  that Corvus  supplies with  its
  4991.     network.  
  4992.  
  4993.     On a multi-server Corvus network (i.e. where there are multiple shared hard
  4994.     disk drives) all  PC's that are  running RBBS-PC within the  Corvus network
  4995.     MUST have their  "home volume" on the  same server.  Corvus  maintains each
  4996.     PC's semaphores  on that  PC's "home volume".   In  order to  "share" files
  4997.     among various PC's  in a Corvus  network, all the  PC's that are  "sharing"
  4998.     must also be  looking at the same  set of semaphores.   In a  single-server
  4999.     Corvus network this is not a consideration because there is only  one "home
  5000.     volume."  
  5001.  
  5002.     RBBS-PC has  been only  tested with the  Corvus CONSTELLATION  II interface
  5003.     cards and software  that Corvus provides  for the IBM  PC.  RBBS-PC  should
  5004.     work with both  Corvus' older "flat cable"  network as well as  their newer
  5005.     OMNINET twisted  wire  pair cable  network  when running  CONSTELLATION  II
  5006.     software.   It  is  entirely possible  that  RBBS-PC would  work  with some
  5007.     combination of  both Corvus  network types  as long  as  they were  running
  5008.     CONSTELLATION II software.
  5009.  
  5010.     It should  be self-evident that  every PC within  a Corvus  network running
  5011.     RBBS-PC must  have a Corvus interface card.   If multiple copies of RBBS-PC
  5012.     are running in a  Corvus network that is using older  Corvus software (i.e.
  5013.     NOT running  the CONSTELLATION II  software), the interface cards  must, at
  5014.     least, all have the CONSTELLATION II ROM. 
  5015.  
  5016.     RBBS-PC is tested only to run on IBM PC's within a Corvus network.  Clearly
  5017.     an  IBM "clone" that  can run IBM's  DOS, RBBS-PC.EXE, and  is supported by
  5018.     Corvus' network should also work.   However, such configurations (and their
  5019.     many variations)  are not part of  the environment within which  RBBS-PC is
  5020.     tested and supported.
  5021.     RBBS-PC CPC17.3                                                 Page 251
  5022.  
  5023.     APPENDIX E -- RBBS-PC in ORCHID or AST PCnet NETWORK
  5024.     ----------------------------------------------------
  5025.     RBBS-PC can  be  implemented  on  an Orchid  PCnet  or  AST  PCnet  Network
  5026.     environment.   It  is  assumed  that  the  necessary  network  hardware  is
  5027.     installed   correctly.   The  following   discussion   describes  a network
  5028.     currently  in operation and receiving  more than  1000 calls  per  week  on
  5029.     two telephone   lines for the Computer  Connection of Virginia Beach.   The
  5030.     hardware and software was:
  5031.     1.  80286 based SERVER with 512K running at up to 9 mhz with:
  5032.            Parallel-Serial Board on the AT with a serial port addressed as COM1
  5033.            AST Rampage memory board configured with 2 megs of expanded memory
  5034.            Monochrome Adapter with parallel printer port
  5035.            PC Net adapter addressed as 0080 with default jumpers
  5036.            Hard disk that can be divided into multiple volumes
  5037.            Single High Density [1.2 meg] floppy disk
  5038.            External modem and cable connected to COM1
  5039.     2.  8088 based WORKSTATION with 640K running at up to 8 mghz with:         
  5040.            multifunction board with COM1, a clock, and parallel port
  5041.            PC Net adapter addressed as 0011 with default jumpers
  5042.            Color Graphics Adapter
  5043.            Two 360K floppy drives
  5044.            External modem and cable connected to COM1
  5045.     3. Software -
  5046.            Operating System = DOS 3.1 network-wide
  5047.            Network Software = Orchid PC Net 3.0a
  5048.            Disk Caching Software = Orchid CACHE.EXE version 2.2
  5049.            RAM Disk = AST FASTDISK
  5050.     Installation procedures ---
  5051.     1. Preliminaries
  5052.        1. Backup hard disk, system and network disks.
  5053.        2. If your hardware is different, be sure to resolve INTerrupt conflicts
  5054.     with the PC NET adapters.   Disable second serial or parallel ports  in all
  5055.     PC's.
  5056.     2. Using the WORKSTATION, boot with DOS 3.1 then
  5057.        1. Create the SERVER  and WORKSTATION boot disks with SPCGEN  and UPCGEN
  5058.     commands, respectively.
  5059.        2. Copy device  drivers for  the hard disk,  for the RAM  disk, and  for
  5060.     Expanded and Extended memory (REMM.SYS and REX.SYS) to the SERVER boot disk
  5061.     as well as CACHE.EXE.  Place the following CONFIG.SYS file for the SERVER:
  5062.           device=spc.com                       <-- Network SERVER driver
  5063.           device=REMM.SYS                      <-- Expanded memory driver
  5064.           device=rex.sys 1024                  <-- 1MB Emulated extended memory
  5065.           device=fastdisk.sys 1024 512 128 /e  <-- RAM disk in extended memory
  5066.     3. Place the following commands in the AUTOEXEC.BAT file:
  5067.           disk13                        <-- Network for floppy disk use
  5068.           cache  [drives] d=128 x=896 /r <-- 128K cache of DOS memory & 896K of
  5069.     EMS memory for SERVER drives to reduce the number of disk accesses
  5070.           spcbio 138023                 <-- Tell network of interrupts used
  5071.     4. Using the SERVER, boot with the newly created SERVER boot disk
  5072.        1. Run the network program SPCINST.
  5073.        2. After naming all  the available drives on the server,  assign all the
  5074.     hard drive volumes to the WORKSTATION # 11 and them all READ/WRITE capable.
  5075.     "Remote Execution" need not be enabled.
  5076.        3. The  SERVER will  then reboot  and the  network will  have the  final
  5077.     configuration as outlined above.
  5078.     5. Boot the WORKSTATION with the newly created WORKSTATION boot disk and:
  5079.        1. Add FILES = 16 to the CONFIG.SYS file for the WORKSTATION.
  5080.     RBBS-PC CPC17.3                                                 Page 252
  5081.  
  5082.        2. Use the network program UPCINST to communicate with SERVER # 80.
  5083.        3. "Map" in all the drives that were assigned by the SERVER.
  5084.        4. The WORKSTATION will reboot so the changes can take effect.
  5085.        5. After the WORKSTATION reboots, do a DIR C: to see if the directory on
  5086.     the SERVER hard disk  can be read.   If not, recheck cables, plug-in  cards
  5087.     for INTerrupt  conflicts, and  network adapter cards  to verify  all jumper
  5088.     settings.  If  necessary, run the SELFTEST and NETTEST  diagnostics for the
  5089.     network adapter cards.  Also, demonstrate the ability  to copy files across
  5090.     the network to and from the server then verify the transfer  using the COMP
  5091.     command.
  5092.     6. Assuming that you are able to do a DIR across the network and copy files
  5093.     to and from the  SERVER, you are then ready  to run CONFIG.EXE of  RBBS-PC.
  5094.     Run CONFIG and confirm use of  RBBS-PC in a multinode environment.   Assign
  5095.     the number 1 Node to your SERVER.
  5096.     1. Assign all  welcome, bulletin, help and  menu files to the  SERVER's RAM
  5097.     drive so the workstation may access them in the fastest way.
  5098.     2. Store FILESEC, PASSWRDS,  MESSAGES, USERS and other sensitive files in a
  5099.     non-downloadable but sharable drive volume on the SERVER so the workstation
  5100.     may have read/write access to them.
  5101.     3. Select a location for the SERVER's CALLERS file and the WORKSTATION's.
  5102.     4. Reflect the  node numbers in the  BATch file names, e.g.  RCTTY1.BAT and
  5103.     RCTTY2.BAT, RBBS1.BAT and RBBS2.BAT.
  5104.     5. Choose PCNET as the environment that you are running RBBS-PC under.
  5105.  
  5106.     Other Considerations--
  5107.     VDISK or Extended memory, which is not-emulated memory, should not be  used
  5108.     on  the  SERVER  but  can  be  used   on  the  Workstation.    The  network
  5109.     configuration most likely to remain operating with very few problems is DOS
  5110.     3.1,  Orchid  3.0a  PC  NET  software and  CACHE.EXE  version  2.2  and  an
  5111.     Expanded/Extended memory  combination using  the new  Lotus/Intel/Microsoft
  5112.     EMS memory boards. 
  5113.  
  5114.     Two nodes can be efficiently set up  using the SERVER in non-dedicated mode
  5115.     but the danger is that if  the SERVER locks up, the whole system  locks up.
  5116.     The sample PC Net system is set up  in this fashion but it is an economical
  5117.     approach to a  two node system which  has been functioning quite  well with
  5118.     minimal problems.  Do not run software on the SERVER that is known to cause
  5119.     problems especially  memory resident utilities.   There is a  potential for
  5120.     files being CROSS-LINKED in any read/write sharable environment.   Frequent
  5121.     backups are to be very strongly recommended.
  5122.  
  5123.     Because  of  wide  variety of hardware combinations  and  possible  network
  5124.     permutations,  the  above  is  intended ONLY as general  guidelines  to  be
  5125.     followed when installing RBBS-PC on your Orchid network.
  5126.  
  5127.     Rob Cecchino
  5128.     Sysop, Computer Connection
  5129.     (804) 481-1824 at 1200/2400 for assistance.
  5130.     RBBS-PC CPC17.3                                                 Page 253
  5131.  
  5132.     APPENDIX F -- RBBS-PC in an Alloy PC-SLAVE/16 Environment
  5133.     ---------------------------------------------------------
  5134.     The  PC-Slave  is   an  IBM  compatible  computer  on   an  expansion  card
  5135.     manufactured by  Alloy Computer  Products, Inc.  of  Framingham, MA  01701.
  5136.     Their telephone number is (617) 875-6100.  Adding PC-Slaves converts the PC
  5137.     from  a single CPU to a multiple CPU,  all under the control of the main or
  5138.     host PC.   Each slave can run RBBS-PC (or other programs).  
  5139.  
  5140.     A. THE ADVANTAGES:  Compared to other means for running multiple RBBS-PC's,
  5141.     the advantages of slaves are:
  5142.  
  5143.     1. SPEED --  Each copy of RBBS has a dedicated  computer and therefore runs
  5144.     very fast  compared to multi-tasking products like Multi-Link, DesqView, or
  5145.     DoubleDOS.
  5146.  
  5147.     2. SHARED FILES -- Each bulletin board can share files, including the users
  5148.     and messages.  The PC Slave system can act like Orchid's PC-Net network, or
  5149.     a NetBIOS LAN for record locking.
  5150.  
  5151.     3.EXPANDABILITY --  You can have up to 31 slaves.  Adding an extra Slave is
  5152.     simple,  and does  not degrade  system performance.   The power  supply and
  5153.     cooling capacity of a PC-2  or XT limit you to adding only 2 slaves.  An AT
  5154.     can have up to  four.  You can buy PC compatibles  that have more expansion
  5155.     slots.  You can also get an expansion chassis designed for up to 12 Slaves.
  5156.  
  5157.     4. COSTS -- It is far cheaper to expand using PC-Slave/16's than a network.
  5158.     The PC-Slave  lists for $900 and  can be purchased  for significantly less.
  5159.     Other networks  require not only a separate PC but also a "network" card of
  5160.     some sort which puts the costs of each port well above $2,000.
  5161.  
  5162.     5. DEDICATED PC IS NOT REQUIRED  -- Your PC can remain free for  you to use
  5163.     while slaves  run the bulletin boards (or run  another copy of the bulletin
  5164.     board).      You do  not  degrade  performance on  the  slaves,  except for
  5165.     contention for  the  hard disk  and that  can be  mitigated  by using  disk
  5166.     caching.
  5167.  
  5168.     6. EASY SNOOP.   Using  Alloy utilities GIMME  and VIEW, you  can view  the
  5169.     session on any slave  and attach your keyboard to it.  You can also install
  5170.     a dumb monitor to any slave.
  5171.  
  5172.     B. THE DISADVANTAGES:  The disadvantages of a slave system are:
  5173.  
  5174.     1. COMPATIBILITY --Not all hard disks are compatible with the slaves.  Hard
  5175.     disks known to be compatible include the Seagates, Priam 60 meg, Bernoulli,
  5176.     and Maxtor hard disks, as well as the Alloy line of hard disks.  Hard disks
  5177.     definitely not compatible include all models of US Design.
  5178.  
  5179.     C. OVERVIEW OF SETTING UP A PC-SLAVE/16 RBBS-PC:  Five easy steps on how to
  5180.     install RBBS-PC in a PC-Slave/16 environment (Note that the PC Slave system
  5181.     requires a special configuration for RBBS-PC):
  5182.  
  5183.     STEP 1  -- If  you want  to allow  simultaneous callers,  you will have  to
  5184.     purchase multiple telephone lines.  They can  be made to roll so that  only
  5185.     one number is called,  and if busy,  the call will roll  over to the  other
  5186.     lines.
  5187.  
  5188.     STEP2 -- Install the  slaves.  Remember to set switches on the slave boards
  5189.     RBBS-PC CPC17.3                                                 Page 254
  5190.  
  5191.     that  number  them  consecutively.   See  the  PC-Slave  documentation  for
  5192.     details.
  5193.  
  5194.     STEP  3 -- Install  the software.   The Alloy PC-Slave  has to have special
  5195.     Alloy software  called NTNX to  coordinate the slaves and  process requests
  5196.     for shared resources.  See the NTNX documentation for details.
  5197.  
  5198.     STEP 4 --  Install a modem with no pin 22.  Pin 22 used to be required with
  5199.     RBBS-PC in order  to answer the  phone.  On  the slaves, pin  22 CANNOT  be
  5200.     connected,  or else  the slave  will continuously  reboot.   However, newer
  5201.     slaves support pin 22.
  5202.  
  5203.     STEP 5 -- Configure RBBS-PC using CONFIG.EXE with the following parameters:
  5204.          (a)  use COM2 (parameter 221)
  5205.          (b)   Via parameter 29 tell RBBS-PC it is running on an IBM compatible
  5206.     rather  than a  PC, XT, or  AT.   (Lie and tell  RBBS-PC you  have a Compaq
  5207.     Plus.)
  5208.          (c)  Use  CONFIG parameter 161 to  set the maximum number  of bulletin
  5209.     boards to as many boards as  you intend to install (rather than  the number
  5210.     you are currently running.  This makes expansion easier.).
  5211.          (d)   PC-Net is the  multi-user environment you  will be running under
  5212.     and should indicate so via CONFIG parameter 162.
  5213.          (e)  Set up the RBBS-PC files.
  5214.  
  5215.     An easy way  to configure the multiple  RBBS-PC's is to  put each one in  a
  5216.     separate  subdirectory, e.g.  "RBBS1" for  the  1st node,  "RBBS2" for  the
  5217.     second, etc.   Inside each subdirectory will  be the callers file  for that
  5218.     node and the  DEF file (RBBS1PC.DEF, RBBS2PC.DEF, etc.).  The DEF files can
  5219.     be  the  same.    Make  the  default drive  on  each  slave  be  the  right
  5220.     subdirectory.  Path over  to where the RBBS-PC.EXE is stored.   Invoke each
  5221.     RBBS-PC by using its  node number, e.g. "RBBS-PC 1", "RBBS-PC 2", etc.  You
  5222.     can  set  up  an  autoexec  for  each  slave  that  brings  up  the  boards
  5223.     automatically upon system boot.
  5224.  
  5225.     Please note  that the NTNX software is very  vulnerable to any RAM resident
  5226.     software.   You  should  install  the Slaves  with  no additional  software
  5227.     present and carefully test any resident software you want to run with it.
  5228.  
  5229.     D. A DETAILED DESCRIPTION OF SETTING UP A PC-SLAVE 16 RBBS-PC:
  5230.  
  5231.     Hardware Limitations:
  5232.  
  5233.     1. Two  PC/Slave 16 cards  per XT box  or four  in an AT  maximum otherwise
  5234.     you'll be buying  power supplies frequently.  An expansion chassis for four
  5235.     cards (Alloy Plus4)  or expansion chassis  for up to  twelve cards will  be
  5236.     needed for bigger  systems.  Expansions boxes can be daisy-chained to up to
  5237.     thirty one Nodes or workstations, if needed.
  5238.  
  5239.     2.  PC/Slave 16 cards do not support PIN 22  for Ring Detect.  If PIN 22 is
  5240.     connected, your slave will re-boot every time the phone rings!
  5241.  
  5242.     3. No clock on the PC/Slave 16 card.  The Slave gets the Time and date from
  5243.     the main system clock.  Each time you update the host clock, all the slaves
  5244.     will update as well.
  5245.  
  5246.     4. A terminal such as a Kimtron KT-7/PC or Alloy PCST is needed if you want
  5247.     to  work on a slave the same as you  would on the host computer (but not if
  5248.     RBBS-PC CPC17.3                                                 Page 255
  5249.  
  5250.     you just  want to view activity  on slaves occasionally).   Other terminals
  5251.     will work but may not support all of the IBM extended graphics codes.   For
  5252.     a multi-node  RBBS-PC, one terminal  can be used with  an A-B-C-D switching
  5253.     box to 'dial in' to the node you wish to work with.
  5254.  
  5255.     5. The  Slaves' CPU [NEC V20 @  8 mhz] shuts down when  writing to the hard
  5256.     disk.   This  creates  problems with  timeout errors  on  uploads.   Upload
  5257.     problems can be eliminated by using the write buffer option in NTNX 1.64 or
  5258.     higher (/B). The problem can also be alleviated by using a  fast hard drive
  5259.     supported by Alloy.  Also, the  hard drive must be formatted with the  most
  5260.     efficient interleave  setting and  driver.  Hard  drives that  work without
  5261.     significant upload timeout  errors have been  formatted with either  Golden
  5262.     Bow's  Vfeature Deluxe  or  Priam's formatting  software;  this problem  is
  5263.     especially noticeable on AT systems and not too much of  a problem on small
  5264.     XT systems.  Seagate, Bernoulli Box, Maxtors, and Priam Inner Space  drives
  5265.     seem to work fine with the Alloy PC/Slave-16 cards.  
  5266.            
  5267.     Software Limitations:
  5268.  
  5269.     1. ATNX runs Orchid PC Net applications but NTNX is more versatile and will
  5270.     run applications for  Novell's Advanced Netware, MS-Net, AND  Orchid PC Net
  5271.     with proper file  locking.  NTNX has had less problems with file corruption
  5272.     and  cross-linking  than ATNX  after  polling  current sysops  using  Alloy
  5273.     Slaves.
  5274.  
  5275.     2.  The  slaves  get  the  date/time  from  the  host  computer.   Constant
  5276.     processing can cause  the host clock to  drift.  A utility  to periodically
  5277.     update your host  computer clock  is recommended.   Also, WXMODEM does  not
  5278.     work  in upload  mode on  Slaves due  to a  timing problem  in the  initial
  5279.     handshake.  Alloy's solution to  this problem is a file called  UPTIME.COM,
  5280.     which is run  on the HOST, but I  have had very poor results  with it.  The
  5281.     problem seems to be most identifiable on AT class machines.
  5282.  
  5283.     For the optimum  system flexibility you may want to  buy Alloy PC/Slave-16N
  5284.     cards which  have the  special PAL chip  for NTNX/Novell  compatibility and
  5285.     NTNX software.  RBBS-PC,  however, will run fine without the  PAL chip even
  5286.     under NTNX.
  5287.  
  5288.     Some   nice  additional  utilities   for  the  Slaves,   including  special
  5289.     diagnostics, are found in the separate  PC-Plus Advanced User's Kit and are
  5290.     worth  having.  A  single Kimtron KT-7/PC terminal  or other smart terminal
  5291.     may be obtained right away but is not necessary for the bulletin-board-only
  5292.     system as  one  can always  sign on  from remote  for  answering mail;  pay
  5293.     special attention to the terminal-to-Slave  cable as it is non-standard and
  5294.     you'll probably wind up making it yourself for less than $5 in parts -- one
  5295.     end is a male  9-pin D-shell and the other is 25-pin  RS232 male connector.
  5296.     For a two to four node system, obtain  a switch box to hook the terminal as
  5297.     COMMON and Slave  consoles.  The computer  to house the Slaves,  called the
  5298.     HOST,  should  be the  quickest  CPU speed  that you  can  obtain.   All PC
  5299.     Slaves/16 should be purchased with 1 megabyte of onboard RAM.
  5300.  
  5301.     Installation:
  5302.  
  5303.     1. Format your hard drive with the DOS supported by the version of NTNX you
  5304.     purchase (currently DOS 3.3).
  5305.  
  5306.     2. Divide the hard  drive into multiple volumes of standard  DOS size (less
  5307.     RBBS-PC CPC17.3                                                 Page 256
  5308.  
  5309.     than 32 megabytes).
  5310.  
  5311.     3. Install NTNX and the Slaves according  to the Alloy manuals.  Choose the
  5312.     default settings for everything.  Use  512K on the 1 megabyte PC/Slave  for
  5313.     caching and  the other   512 to run  RBBS.  Depending  on how the  board is
  5314.     configured, you  may  need to  set switches  so  that 512  is  used to  run
  5315.     applications.  Use 4K for the Host  PC caching.  Allocate 25 files per each
  5316.     Slave + 64 for the maximum number of open files.
  5317.  
  5318.     4. Set  up the CONFIG.SYS  and AUTOEXEC.BAT files  for the HOST  as follows
  5319.     especially if you do not plan to use the HOST as a Node for RBBS-PC:
  5320.        CONFIG.SYS
  5321.           device=NX.SYS          -  NTNX driver (must be first!!)
  5322.           device=hard_drv.sys    -  Your hard Disk driver
  5323.           FCBS = 32,32           -  File Control Blocks increased
  5324.           buffers = 20           -  DOS buffers
  5325.           files = 32             -  Number of OPEN files on HOST
  5326.           device = ANSI.sys      -  Extended graphics driver
  5327.     AUTOEXEC.BAT
  5328.           NTNX                   -  NTNX driver
  5329.           fm 3                   -  Level of File protection
  5330.           prompt $p$g            -  customized dos prompt
  5331.           path = ........        -  set path to the NTNX files
  5332.  
  5333.     5. Set up the CONFIG.SYS and AUTOEXEC.BAT files for the Slaves as follows:
  5334.        CONFIG.U0x under DOS 3.3
  5335.           FCBS = 32,32
  5336.           buffers = 10
  5337.           files = 30
  5338.           device = ansi.sys
  5339.           shell = C:\COMMAND.SLV C:\ /P /E:800
  5340.           
  5341.     Of  special  note,  the  SHELL  statement  has  been  used  to  expand  the
  5342.     environment space on  the Slaves.  This corrects a problem seen with random
  5343.     RBBS lockups or getting  Out of Memory errors; external protocols  and DOOR
  5344.     programs, given  time, stop running  due to memory problems  if one doesn't
  5345.     use this SHELL statement.   Under DOS 3.1, set /E:50 [=  50 paragraphs] and
  5346.     under DOS 3.2 or 3.3, set /E:800 [= 800 bytes].
  5347.        AUTOEXEC.U0x
  5348.           fm 3
  5349.           prompt $p$g
  5350.           path = .......Set the path to the NTNX files and to the 'home'
  5351.                      directory for this node on the SHARED drives
  5352.           SET NODE=x    Tell this slave what node to run.
  5353.           cd\RBBS0%NODE%  Change to the RBBS-PC directory for this node
  5354.           RBBS.BAT     Invoke RBBS-PC for this node
  5355.  
  5356.     The statement "SET NODE=x"  allows you to write batch files  that know what
  5357.     node you are dealing with.   All slaves can access the same RBBS.BAT  file,
  5358.     as long as you invoke RBBS-PC from within that file as:
  5359.      RBBS-PC %NODE% RBBS%NODE%PC.DEF
  5360.     Other node-specific commands should be done this way.
  5361.  
  5362.     6. CONFIG parameters for the slaves, must be the following parameters:
  5363.           Parameter 29 (Type of computer):  Compaq Plus.
  5364.           Parameter 224 (Number of rings to wait before answering):  0.
  5365.           Parameter 162 (Environment):  Orchid PC Net.
  5366.     RBBS-PC CPC17.3                                                 Page 257
  5367.  
  5368.           Parameter 221 (Communications port):  2.
  5369.           Maximum number of users:   at least as many slaves as you  have, plus
  5370.     one if you plan to run a node on the host.  You can specify more (up to 36)
  5371.     if you want to plan for expansion.
  5372.  
  5373.     7. Set up RBBS-PC as follows:
  5374.           Create subdirectories \RBBS01, \RBBS02, \RBBS0x... on a shared drive.
  5375.  
  5376.           Create other subdirectories according to RBBS-PC documentation.
  5377.  
  5378.           On  a cached  drive, place  all static  RBBS-PC files such  as MENUs,
  5379.     HELPs, PASSWRDS, TRASHCAN,  external file transfer protocols.   RBBS-PC.EXE
  5380.     and CONFIG.EXE go here as well.
  5381.  
  5382.     On  the second  SHARED drive,  make  a subdirectory  \COMMON for  MESSAGES,
  5383.     USERS, CONFENCE, and conference message/user files.
  5384.  
  5385.           If you plan to use  DOORS, especially Bob Westcott's DOORWARE, create
  5386.     a subdirectory called \DOORS on the SHARED drive.  
  5387.  
  5388.           Run CONFIG and create RBBSxPC.DEF files for all your nodes.  Remember
  5389.     that  you will run multi-user under  PC Net.  The  modem serial port on the
  5390.     Slaves is COM2 and not COM1.  Double-check file locations! Put  your static
  5391.     text files in the same subdir as MESSAGES and USERS and make it the default
  5392.     subdirectory
  5393.  
  5394.           Copy RBBS1PC.DEF to RBBSxPC.DEF for  each node that you hope  to have
  5395.     then  re-edit each .DEF file to customize  Node numbers such as RCTTY1.BAT,
  5396.     etc. 
  5397.  
  5398.     Copy the RBBSxPC.DEF  file to the matching subdirectory.  If you don't wish
  5399.     to edit the .DEF files, place RBBSxPC.DEF on one shared drive and place the
  5400.     dynamic RBBS-PC files on  the other shared drive; be sure that  you have at
  5401.     least  logged  into  that  other  SHARED  drive's  subdirectory, using  the
  5402.     AUTOEXEC.U0x before  starting RBBS-PC or  else RBBS-PC will not  find those
  5403.     files.
  5404.  
  5405.           Temporary files used for transfer  or Verbose ARC listing are created
  5406.     on the  default subdirectory  automatically.  You  must assign  a different
  5407.     CALLERS file for each node located in the default directory.
  5408.  
  5409.           To use  Sysop Function  7  (Remote Drop  to DOS),  RBBS-PC must  find
  5410.     COMMAND.COM.   PC-Slave/16's,  however,  use  COMMAND.SLV  as  the  command
  5411.     processor; copy COMMAND.SLV to COMMAND.COM, place it on a cached drive, and
  5412.     tell CONFIG where to find  it.  Be careful  using this Sysop function  with
  5413.     the Slaves as you  will lock up the  Node if you lose carrier;  WATCHDOG is
  5414.     incompatible with the Slaves.
  5415.  
  5416.     Additional tips/hints:
  5417.     1. Avoid  using any  memory resident  utilities.   They may interfere  with
  5418.     Slave operation.
  5419.  
  5420.     2. A  program on the Advanced Utilities  disk called SEE.COM allows callers
  5421.     on any Node to be viewed from the HOST.
  5422.  
  5423.     3. Norton's Editor or WordPerfect Corporation's Programmers Editor from the
  5424.     WordPerfect  Library  is  used  for  editing  operations  on  the   system,
  5425.     RBBS-PC CPC17.3                                                 Page 258
  5426.  
  5427.     especially  for  maintaining   the  fixed-length  directory  of   the  file
  5428.     management  system.   Not  many other  editors, except  EDLIN, can  be used
  5429.     reliably.
  5430.  
  5431.     4. Easy to forget  but don't as it will be a source  of frustration -- plan
  5432.     out your file locations on paper before actually setting up the system.
  5433.  
  5434.     5. Backup your system frequently!
  5435.  
  5436.     If you have any  questions or problems, feel free to leave a message on Ken
  5437.     Goosens system (703) 978-6360.
  5438.     RBBS-PC CPC17.3                                                 Page 259
  5439.  
  5440.     APPENDIX G -- RBBS-PC and 10 NET Network  
  5441.     ----------------------------------------
  5442.     Starting with RBBS-PC  CPC15-1A support for Fox Research's'  10 Net Network
  5443.     is being provided.
  5444.  
  5445.     Since this is the first release with this support  we have very little that
  5446.     we can offer in tuning support for 10 NET.
  5447.  
  5448.     We selected to use the Semaphore locking mechanism that we have used in the
  5449.     other networks and  therefore you must specify the  following parameters on
  5450.     the Superstation in your 10 NET network.
  5451.  
  5452.     LOGINS=x            1 for every node on the system
  5453.     OPENFILE=xxx        10 for every node running RBBS-PC
  5454.     SHAREFIL=16         (This is the default you can add more if you want)
  5455.     LOCKS=x             3
  5456.     SEMA=xxx            3 for every node running RBBS-PC
  5457.  
  5458.     You will also need to run NETSU and specify option 6 (DOS file sharing).
  5459.  
  5460.     Please note that these  values should be in addition to  any parameters you
  5461.     may have already specified for other  User stations and other uses of  your
  5462.     10 NET network.  And you can always make the values larger in attempting to
  5463.     improve performance.   
  5464.     RBBS-PC CPC17.3                                                 Page 260
  5465.  
  5466.     APPENDIX H -- RBBS-PC and the Hearing-Impaired
  5467.     ----------------------------------------------
  5468.     Telecommunications Devices for  the Deaf (TDD's)  use the Baudot  character
  5469.     set  (i.e. 5-bit) and  utilize modems that  transmit at 45  baud and do not
  5470.     generate  a carrier  signal.  This  is because such  devices were initially
  5471.     adaptations  of   surplus  Western   Union  TTY   machines  for   telephone
  5472.     communications.   The  widespread use  of  Baudot devices  by the  hearing-
  5473.     impaired, the  previous high cost of computers and  modems, and the lack of
  5474.     software designed for electronic communications,  has impeded the change to
  5475.     ASCII communications by the hearing-impaired community.
  5476.  
  5477.     Equipment manufacturers have also made it difficult for the deaf to change.
  5478.     When TDD's with ASCII code transmission capability began to be offered, the
  5479.     majority of manufacturers limited them to only 110 baud and put disclaimers
  5480.     in their manuals that  said ASCII was available for use  but that "computer
  5481.     language" was "less reliable" and hard to use.  Their limiting of the TDD's
  5482.     output screen to 12 to 20 characters further compounded the problem because
  5483.     the screen would overwrite several times to display one line of text from a
  5484.     host  system.    The  manufacturers'  "solution" to  this  problem  was  to
  5485.     recommend printers for communication with  such "host" systems as  RBBS-PC.
  5486.     Some units now offer  both 110 and 300 baud ASCII  transmission in addition
  5487.     to  the  45 baud  Baudot.    Unfortunately, these  typically  have only  20
  5488.     character screens.
  5489.  
  5490.     In December of  1984, Ted Janossy of Rochester, Minnesota, sent me a three-
  5491.     page letter describing  the above situation.  Ted's  letter motivated me to
  5492.     test  and verify the "ring-back" feature  of RBBS-PC in CPC12-4A.    It had
  5493.     not been tested  in earlier versions because I  had assumed (presumptuously
  5494.     and  insensitively)  that  "real SYSOP's  don't  use  ring-back RBBS-PC's."
  5495.     Ted's  letter  awakened  me  to  the potential  of  RBBS-PC  to  facilitate
  5496.     communications among  the hearing-impaired.  In the  awakening I also had a
  5497.     chance to look down at my own feet of clay.
  5498.  
  5499.     RBBS-PC can be  configured to answer calls only after a specified number of
  5500.     rings (i.e. 15).   The telephone companies  wire the homes of  the hearing-
  5501.     impaired such that when the phone rings,  the lights within the house flash
  5502.     on and off. 
  5503.  
  5504.     With RBBS-PC a  SYSOP can specify the  number of rings  RBBS-PC is to  wait
  5505.     before answering the phone automatically.   Setting this number high enough
  5506.     allows someone  with a  hearing impairment  time enough  to get  to the  PC
  5507.     running RBBS-PC.  Pressing  the PC's function key 5 (F5)  causes RBBS-PC to
  5508.     answer the phone  immediately.  The caller  would know that someone  was at
  5509.     the keyboard because  RBBS-PC answered the phone  in less than  the agreed-
  5510.     upon number of rings.  The  caller would log onto RBBS-PC normally  and the
  5511.     person  at the PC keyboard would be able to  see who it was.  If the person
  5512.     who was called wanted to "chat" with the caller, all they would  have to do
  5513.     would be to press function key 10 (F10). 
  5514.  
  5515.     If RBBS-PC  didn't answer  the telephone within  the agreed-upon  number of
  5516.     rings, the caller  would know that whomever was being  called couldn't come
  5517.     to the keyboard.  The caller would then log on and leave a message.
  5518.     RBBS-PC CPC17.3                                                 Page 261
  5519.  
  5520.     APPENDIX I -- RBBS-PC and the IBM PCjr
  5521.     --------------------------------------
  5522.     RBBS-PC adheres to the Hayes standards for autoanswer applications that are
  5523.     described in Section 9, "Writing Programs for the Smartmodem 1200," of  the
  5524.     SMARTMODEM  1200 HARDWARE  REFERENCE MANUAL.   Under  the section  entitled
  5525.     "Additional  Program  Considerations"  Hayes   recommends  that  autoanswer
  5526.     applications (like RBBS-PC)  "... force the modem to answer  the call (ATA)
  5527.     rather than  allowing the  modem to automatically  answer...."    Beginning
  5528.     with CPC13-1A,  RBBS-PC no longer  REQUIRES the Ring Indicator  signal from
  5529.     the modem (pin 22) in order to answer the phone (except if parameter 224 of
  5530.     CONFIG is non-zero).
  5531.  
  5532.     Here are some facts about the PCjr:
  5533.  
  5534.     1.The  PCjr's external  modem  interface  does not  have  a Ring  Indicator
  5535.     signal.
  5536.     2.The PCjr requires that an external modem be opened as COM1 if no internal
  5537.     modem is installed.  However, if no internal modem exists the PCjr requires
  5538.     that the COM2 RS-232 registers be used even though the port has been opened
  5539.     as  COM1.   Technically  this  is described  as  using the  external RS-232
  5540.     asynchronous adapter as  logical channel 1 (i.e. COM1)  but manipulating it
  5541.     as physical channel 2  (i.e. COM2).  This  occurs on a  PCjr only  when  an
  5542.     internal  modem is NOT present and the external RS-232 interface is.
  5543.     3. The 128K PCjr only provides 90K of usable RAM (the rest  is used by DOS,
  5544.     the monitor's buffers, etc.).  Fortunately  PCjr owners can get up to  512K
  5545.     of RAM  with "add-on"  equipment (from  IBM and  others) in  order to  have
  5546.     enough RAM for RBBS-PC to run in.
  5547.     4.The standard PCjr supplied by IBM does  not have a DMA and hence can't do
  5548.     communications I/O simultaneously while doing disk I/O.
  5549.  
  5550.     RBBS-PC beginning with version CPC13-1A will run an IBM PCjr providing that
  5551.     the PCjr
  5552.  
  5553.     1. Has at least 320K of memory.
  5554.     2.Disk  I/O does  not occur  simultaneously  with communications  I/O (i.e.
  5555.     either you have a second disk drive with a DMA or you set BUFFERS=0).
  5556.     3. One of the following three modem configurations are used:
  5557.          An internal PCjr modem with an external Hayes modem where the external
  5558.          Hayes modem is used for RBBS-PC.
  5559.          No internal PCjr modem with an  external Hayes modem used for RBBS-PC.
  5560.  
  5561.          Only an internal PCjr modem and it is used for RBBS-PC.
  5562.  
  5563.     The  following discusses each of these three modem configurations supported
  5564.     by RBBS-PC with the PCjr.
  5565.  
  5566.     Internal PCjr Modem with RBBS-PC Using External Hayes Modem
  5567.     -----------------------------------------------------------
  5568.     This configuration means that the PCjr  has both a COM1 (the internal  PCjr
  5569.     modem) and  a COM2 (the  external Hayes modem).   RBBS-PC is set  up to use
  5570.     COM2.    No changes  are required  to  for RBBS-PC  for this  type  of PCjr
  5571.     configuration.   CONFIG parameter 224 should be set  to 0.  This will cause
  5572.     RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  5573.     will wait for carrier detect.   This is the way that RBBS-PC  overcomes the
  5574.     PCjr's  lack of  "ring-indicator" signal  for  the external  communications
  5575.     port.
  5576.     RBBS-PC CPC17.3                                                 Page 262
  5577.  
  5578.     No Internal PCjr Modem With RBBS-PC Using External Hayes Modem
  5579.     --------------------------------------------------------------
  5580.     This configuration means that the PCjr has only one RS-232 interface -- the
  5581.     external Hayes modem.  This must be opened as COM1 but use COM2's registers
  5582.     to control the  communications port (believe it  or not that's the  way IBM
  5583.     designed the PCjr).  
  5584.  
  5585.     CONFIG parameter 221 should be used to indicate that COM1 is being used.
  5586.  
  5587.     Unfortunately  the  current  BASIC  compilers (both  IBM's  Version  2  and
  5588.     Microsoft's QuickBASIC) are incapable of  handling a communication port  as
  5589.     logical device 1 (i.e. COM1) but on physical channel 2 (i.e. the interrupts
  5590.     are for COM2).
  5591.  
  5592.     Should this ever be  fixed by either IBM or Microsoft,  CONFIG parameter 29
  5593.     should be used to indicate that no  internal PCjr modem is installed.  This
  5594.     tells CONFIG to  make sure that COM2  registers are used to  manipulate the
  5595.     PCjr's external communications port.
  5596.  
  5597.     Until this is fixed  by the respective vendors, the PCjr user  will have to
  5598.     run a  utility like COMSWAP  that exchanges the  pointers between COM1  and
  5599.     COM2 within DOS.  
  5600.  
  5601.     In  either case, CONFIG parameter 224 should be  set to 0.  This will cause
  5602.     RBBS-PC to set the external Hayes modem into "auto-answer" mode and RBBS-PC
  5603.     will wait  for carrier detect.  This is  the way that RBBS-PC overcomes the
  5604.     PCjr's  lack of  "ring-indicator" signal  for  the external  communications
  5605.     port.   Again  no changes  to RBBS-PC  are required for  this type  of PCjr
  5606.     configuration.
  5607.  
  5608.     Only An Internal PCjr Modem for RBBS and NO External Hayes Modem
  5609.     ----------------------------------------------------------------
  5610.     For  this type  of PCjr  configuration,  you can  take  the CONFIG  default
  5611.     settings  for the  communications  port  (COM1) and  specify  that you  are
  5612.     running on a PCjr (parameter 29).  However, make sure that CONFIG parameter
  5613.     228 specifies that the modem is to be opened at 300 baud.  Of course, RBBS-
  5614.     PC will  be only  able to  answer the telephone  at 300  baud and  send and
  5615.     receive data from users who log on with their communications parameters set
  5616.     at N/8/1 (i.e. no parity,  eight data bits, and one stop bit) since RBBS-PC
  5617.     is limited by the PCjr's own modem's limitations.  
  5618.  
  5619.     RBBS-PC already has the modem commands for the PCjr's very strange internal
  5620.     modem in the logic to answer  the phone so no changes to the  .DEF file are
  5621.     required.
  5622.     RBBS-PC CPC17.3                                                 Page 263
  5623.  
  5624.     APPENDIX J -- RBBS-PC Subscription Service
  5625.     ------------------------------------------
  5626.     It  seems  that many  people absolutely  must  be on  the bleeding  edge of
  5627.     RBBS-PC  and demand  each  new version  as  soon as  possible  after it  is
  5628.     released.   For them you can order  in advance the next release of RBBS-PC.
  5629.     It will be mailed anywhere  by air mail -  overnight in the United  States,
  5630.     ordinary air mail  elsewhere.  The charge for this  subscription upgrade is
  5631.     $25.
  5632.  
  5633.     Hopefully,  this service  will only  be used  by a  very,  VERY few!   Most
  5634.     releases have a few fixes  that get published within the first  week or two
  5635.     that they  are out.  Because of this everyone  is advised to check back for
  5636.     fixes after each  release goes out.
  5637.  
  5638.     To  obtain this  service for  the NEXT  release (it does  NOT apply  to the
  5639.     current or previous releases) fill out the following form and send it along
  5640.     with  your check  or money  order  in U.S.  funds (no  purchase  orders are
  5641.     accepted and your canceled check is your only invoice).
  5642.         +------------------------------------------------------------------+
  5643.         | To: Capital PC Software Exchange  RBBS-PC Subscription Service to|
  5644.         |     P.O. Box 6128                 the NEXT release of RBBS-PC (if|
  5645.         |     Silver Spring, Maryland       any - and none are implied or  |
  5646.         |                    20906          promised by this offer)        |
  5647.         |------------------------------------------------------------------|
  5648.         |Date Requested:                   Date Received:                  |
  5649.         |------------------------------------------------------------------|
  5650.         |To (Recipient's Name):                                            |
  5651.         |------------------------------------------------------------------|
  5652.         |Recipient's Phone Number (required): (      )        -            |
  5653.         |------------------------------------------------------------------|
  5654.         |Exact Street Address (no P.O. Box or P.O. Zip Code accepted)      |
  5655.         |                                                                  |
  5656.         |                                                                  |
  5657.         |------------------------------------------------------------------|
  5658.         | City                            | State or Country               |
  5659.         |                                 |                                |
  5660.         |------------------------------------------------------------------|
  5661.         | Signature (required)            | ZIP Code for Street Address    | 
  5662.         |                                 |                                |
  5663.         +------------------------------------------------------------------+
  5664.           Note: this is not a promise that there will be any new releases.
  5665.     RBBS-PC CPC17.3                                                 Page 264
  5666.  
  5667.     APPENDIX K -- RBBS-PC Worldwide Listing Service
  5668.     -----------------------------------------------
  5669.     Frequent inquires are made about a "master" list of RBBS-PC's.  In order to
  5670.     help  SYSOP's (and potential  SYSOP's) everywhere find  configurations that
  5671.     most closely match their own, and to help users find more  RBBS-PC systems,
  5672.     we will attempt to maintain an "ACCURATE" listing of all publicly available
  5673.     RBBS-PC  systems.  The  success of  this endeavor depends  on you.   If you
  5674.     would like a  chance to stand up and be recognized, please complete the BBS
  5675.     info file LG-9999.DEF supplied with this release of RBBS-PC and send it to:
  5676.  
  5677.            RBBS-PC WORLDWIDE REGISTRY
  5678.            P.O. Box 31024
  5679.            Palm Beach Gardens, FL 33420-1024  U.S.A.
  5680.  
  5681.     You can also call Technology Consultants' RBBS-PC and either upload a  copy
  5682.     of the  form, or use the online  questionnaire.   An online database of all
  5683.     respondants will  be available  on Technology  Consultants' RBBS-PC,  (407)
  5684.     627-6969 or 627-6862.
  5685.  
  5686.     If  you need a good reason to complete and return the information, read on!
  5687.     As RBBS-PC  continues to evolve,  we must make  decisions that will  affect
  5688.     you.  If we  know who you are,  and what your  environment is like, we  are
  5689.     less likely to introduce a new version of RBBS-PC that will not run in your
  5690.     environment!
  5691.  
  5692.     THE BBS IDENTIFICATION STANDARD
  5693.     -------------------------------
  5694.     To help BBS list editors,  and other users searching for your BBS,  we have
  5695.     started what we hope will be an  industry standard.  Please implement it on
  5696.     your BBS.  Here's how:
  5697.  
  5698.     1)   Complete the  LG-9999.DEF file and  place it  with your  other LGn.DEF
  5699.     files.
  5700.     2)   Create a  user with  first name  "BBS", Last  name "VERIFY",  password
  5701.     "CALL".
  5702.     3)  Set this user's SECURITY to -9999.
  5703.  
  5704.     Now, any time a BBS list editor calls for a quick check, he'll use the name
  5705.     BBS VERIFY  and a  password of  CALL.   Your BBS  will quickly display  the
  5706.     information he needs, and then hang up.  Any user who is curious about your
  5707.     BBS can do the same.   If ALL BBS systems implement this, keeping  track of
  5708.     the fast moving BBS community will be much easier.  Please, do what you can
  5709.     to convince other SysOps to implement this simple procedure.
  5710.     RBBS-PC CPC17.3                                                 Page 265
  5711.  
  5712.     APPENDIX L -- The Ark-Paradyne Modem RBBS-PC Switch Settings
  5713.     ------------------------------------------------------------
  5714.     The ARK Modem is somewhat Hayes compatible, therefore some  changes must be
  5715.     made  to use  this modem.   Because of  major improvements in  RBBS-PC, the
  5716.     modem can now  be used in both of  its modes, Normal and Hayes.  To use the
  5717.     HAYES (tm) mode follow this procedure: 
  5718.  
  5719.     A.) Using CONFIG.EXE supplied with RBBS-PC, select and change the following
  5720.        parameters: 
  5721.  
  5722.     Parameter 224  Number of rings to wait before answering -------- 1
  5723.                    Do you want ringback? (YES/NO) ----------------- NO
  5724.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5725.                    1. Reset the modem ------ : ATZ or ATV0Z
  5726.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  5727.                         (Note the use of "Q0" to initialize the modem)
  5728.                    3,4,5  Use the defaults supplied
  5729.     Parameter 227  Issue modem commands between rings ------------ YES
  5730.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5731.     Parameter 237  Leave modem at initial baud rate --------------- NO
  5732.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  5733.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  5734.  
  5735.     For the ARK 24K (not 24K PLUS) use the following switch & jumper settings:
  5736.  
  5737.             Switch 1 UUUDDUUD    (where U = Up = On and  D = Down = Off)
  5738.             Switch 2 UDDDDUDD
  5739.             Switch 3 DUUDUUUU
  5740.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5741.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  5742.  
  5743.     For the ARK 24K PLUS use the following:
  5744.  
  5745.             Switch 1 UUUDDUUD    last down = Hayes mode                   
  5746.             Switch 2 UDDDDUDD    first up = auto answer off
  5747.             Switch 3 DUUDUDDD    last three down = "auto baud"
  5748.             Modem Jumpers - Use the factory defaults on all
  5749.  
  5750.     B.) You can also  use the ARK NORMAL  mode with a fixed terminal  rate. The
  5751.     modem talks  to RBBS at 2400 and talks to your user at 300, 1200, 2400. One
  5752.     problem noted  was that  upon return from  dropping to  DOS, the  baud rate
  5753.     reverted back  to 2400.  If you were  remote and using  a 1200  baud modem,
  5754.     things get very messy.  It has been noted with some external protocols that
  5755.     a similar problem  exists.  I don't  recommend this setting unless  you are
  5756.     willing to  take some  risks.  You  must also use  flow control.   Make the
  5757.     settings as follows:
  5758.  
  5759.     Parameter 224  Number of rings to wait before answering -------- 1      
  5760.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5761.                    1. Reset the modem ------ : ATV0Z                    
  5762.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=0
  5763.                    3,4,5  Use the defaults supplied
  5764.     Parameter 227  Issue commands between rings ------------------ YES
  5765.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5766.     Parameter 237  Leave modem at initial baud rate -------------- YES   
  5767.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) --- YES  
  5768.     Parameter 245  Modem flow control uses XON/XOFF -------------- YES
  5769.     RBBS-PC CPC17.3                                                 Page 266
  5770.  
  5771.     The following is recommended for the ARK 24K Modem:
  5772.  
  5773.             Switch 1 UUUDDUUU     (NOTE 8th position)  +++
  5774.             Switch 2 UDDDDUDD                             
  5775.             Switch 3 DUUDUUUU
  5776.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5777.             JUMPERS         E9-E10        E15-E16      E4-E7     E11-E14
  5778.  
  5779.     The following is recommended for the ARK 24K Plus Modem:
  5780.  
  5781.             Switch 1 UUUDDUUU    
  5782.             Switch 2 UDDDDUDD                             
  5783.             Switch 3 DUUDUUUU
  5784.  
  5785.     C.) You  can also use the Hayes  mode with rings set to  zero but you can't
  5786.     use Doors or Sysop drop to DOS.  (This mode has proven to be very reliable)
  5787.  
  5788.     Parameter 224  Number of rings to wait before answering -------- 0 
  5789.     Parameter 225  Use the RBBS-PC default Hayes commands?--------- NO
  5790.                    1. Reset the modem ------ : ATZ
  5791.                    2. Initialize the modem - : ATM0Q0S2=255S10=30E0S0=1
  5792.                    3,4,5  Use the defaults supplied
  5793.     Parameter 227  Issue commands between rings ------------------ YES
  5794.     Parameter 228  Baud rate to initially open modem at --------- 2400
  5795.     Parameter 237  Leave modem at initial baud rate --------------  NO
  5796.     Parameter 244  Modem flow control uses Clear-to-Send (CTS) ---- NO
  5797.     Parameter 245  Modem flow control uses XON/XOFF --------------- NO
  5798.  
  5799.     The following is recommended for the ARK 24K Modem:
  5800.  
  5801.             Switch 1 UUUDDUUD   (note 8th position)
  5802.             Switch 2 DDDDDUDD   (note 1st position)
  5803.             Switch 3 DUUDUUUU
  5804.             MODEM         DTE/CLOCK        FLOW        BUSY       DTR
  5805.             JUMPERS         E8-E9         E15-E16      E4-E7     E11-E14
  5806.  
  5807.     The following is recommended for the ARK 24K Plus Modem:
  5808.  
  5809.             Switch 1 UUUDDUUD 
  5810.             Switch 2 UDDDDUDD 
  5811.             Switch 3 DUUDUDDD
  5812.  
  5813.     Technical comments on the Ark Modems for your interest.
  5814.     1. Ark Modems can't  accept any commands if the "AA" (auto answer) light is
  5815.     on and the phone is ringing until the number of rings equals the number set
  5816.     in the S0 register.  RBBS-PC expects to issue a "modem answer command" when
  5817.     it  detects a  ring and  is  ready.   If the  Ark modem  can't  accept this
  5818.     command, it won't answer the phone.  You therefore cannot use the ring-back
  5819.     system or answer on a ring greater than 1. 
  5820.     2. Another  interesting difference is that when the  modem is in the "quiet
  5821.     mode" (Q1)  NO results will be sent  to the computer.  If  we inquire as to
  5822.     the number of rings received, it responds with absolutely nothing. 
  5823.     3. In  the Ark  Normal mode,  if you  enter a  reset command  ATZ or  Z, it
  5824.     requests a confirmation of   "Confirm (Y/N)  >" and you must  enter a Y  or
  5825.     else  it does nothing.  We can get around  this with a  ATV0Z  which tricks
  5826.     this into an un-conditional reset. 
  5827.     4. If  you attempt to operate in  the ARK NORMAL mode at  2400 baud and set
  5828.     RBBS-PC CPC17.3                                                 Page 267
  5829.  
  5830.     the DTE/CLOCK jumper to E8-E9, the modem will "downshift" to a baud rate to
  5831.     match the  caller, which is normal.  Assuming you downshift to 300 baud you
  5832.     must reset it with a ATZ  at 300 Baud.   RBBS resets it at the initial rate
  5833.     of 2400  baud and  therefore the  modem is  "hung". Obviously  this is  not
  5834.     recommended. 
  5835.      
  5836.     The  following modems were tested:  24K - ROM versions 2.21, 2.23, 2.31 24K
  5837.     PLUS - ROM ver 3.63.
  5838.  
  5839.     If you have questions on this modem contact:
  5840.  
  5841.         Dave Hacquebord,
  5842.         Sunshine Bulletin board,
  5843.         Tampa, Fl.
  5844.         Voice: 1-813-884-4267
  5845.         Data:  1-813-887-3984
  5846.     RBBS-PC CPC17.3                                                 Page 268
  5847.  
  5848.     APPENDIX M -- RBBS-PC And the Anchor Signalman Express (MK12)
  5849.     -------------------------------------------------------------
  5850.     The following are the switch and jumper settings for the Modem.
  5851.  
  5852.         Switch 1 = Off
  5853.         Switch 2 = Off
  5854.         Switch 3 = On
  5855.         Switch 4 = On
  5856.         Switch 5 = On
  5857.         Switch 6 = On
  5858.         Switch 7 = On
  5859.         Switch 8 = On
  5860.     RBBS-PC CPC17.3                                                 Page 269
  5861.  
  5862.     APPENDIX N -- The Everex 2400 modem RBBS-PC switch settings
  5863.     -----------------------------------------------------------
  5864.     The Everex Evercom 24 is an internal 2400 BAUD modem.  It has 4 switches on
  5865.     the mounting bracket.  If you are using COM1 then all switches should be in
  5866.     the OFF position.  If you are using COM2 see the Installation Guide for the
  5867.     correct switch settings.
  5868.  
  5869.     The Evercom  does not have non-volatile memory like  the Hayes 2400 and the
  5870.     ATZ command will reset the modem to factory defaults.  It  is therefore not
  5871.     necessary to use  CONFIG to set the  Hayes 2400 defaults.  Because  of this
  5872.     major difference you must use CONFIG  parameter 225 to change the  standard
  5873.     modem defaults.  Select parameters 2 and 5 and enter the command just as it
  5874.     is but  with the addition of &D2.  This will instruct RBBS-PC to add &D2 to
  5875.     the standard  modem initialization  string each  time the  system recycles.
  5876.     Please note that although  the Evercom 24 manual indicates that  &D2 is the
  5877.     default that this is a misprint in their manual and &D0 is the real default
  5878.     for the  &D command.  Parameter  7 can be ignored  since they this   is for
  5879.     battery backed up modems only. 
  5880.  
  5881.     NOTE:   Make sure that &D2 is inserted  immediately following the "AT" when
  5882.     modifying parameters 2 and 5 of parameter 225!
  5883.  
  5884.     A special thanks goes to Carl Margolis (Everex) for his help in identifying
  5885.     these restrictions so that Evercom 24 users can now reliably use RBBS-PC.
  5886.  
  5887.     Do not select parameter 225 if you are using an Everex 1200 BAUD modem.
  5888.     RBBS-PC CPC17.3                                                 Page 270
  5889.  
  5890.     APPENDIX O -- Prometheus 2400G modem RBBS-PC switch settings
  5891.     ----------------------------------------------------------------
  5892.     Underneath the 2400G  is a bank of  10 switches that set  certain operating
  5893.     characteristics of the ProModem 2400G.  Only 3 (1,2 & 10) of these switches
  5894.     are currently implemented.   The others are reserved  for future expansion.
  5895.     All three  of these switches must be  in the off position for  the 2400G to
  5896.     function properly with RBBS-PC.
  5897.     RBBS-PC CPC17.3                                                 Page 271
  5898.  
  5899.     APPENDIX P -- US Robotics Modems' RBBS-PC Switch Settings
  5900.     ---------------------------------------------------------
  5901.  
  5902.                         Part 1:  Courier 2400 and HST
  5903.  
  5904.     Both the US  Robotics COURIER  2400 and COURIER  HST modem switch  settings
  5905.     should be as follows:
  5906.      1 2 3 4 5 6 7 8 9 10   gang switch
  5907.      U U U D D U U D D D      UUU      (Where U = Up = Off and  D = Down = On)
  5908.  
  5909.     The Courier  2400 is  a high  quality, trouble  free modem  that is  highly
  5910.     recommended and which works well with all the RBBS-PC defaults.
  5911.  
  5912.     The USR COURIER HST modem switch setting should be as follows:
  5913.      1 2 3 4 5 6 7 8 9 10   gang switch
  5914.      U U U D D U U D D U      UUU      (Where U = Up = Off and  D = Down = On)
  5915.  
  5916.     RBBS-PC supports both modes  of the USR HST Modems.  In CONFIG, specify the
  5917.     number of seconds between modem commands to be 1.
  5918.  
  5919.     MODE 1:
  5920.     -------
  5921.     In the first mode of operation,  CONFIG parameter 228 should be set to  the
  5922.     highest speed you intend to support.  When the HST modem detects a carrier,
  5923.     it sends (at the baud rate set in parameter 228) an ASCII string to RBBS-PC
  5924.     which contains the new BAUD rate.  The modem will change it's  baud rate to
  5925.     match that of the caller's and RBBS-PC will correctly adjust to the modem's
  5926.     new baud rate.  The following CONFIG parameters should be set:
  5927.  
  5928.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5929.     Parameter 223 -- set to 2
  5930.     Parameter 227 -- set to NO
  5931.     Parameter 228 -- set to 9600
  5932.     Parameter 237 -- set to NO
  5933.     Parameter 244 -- set to YES
  5934.     Parameter 245 -- set to NO
  5935.  
  5936.     You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  5937.     8 different  modem commands.  The ONLY command  that needs to be changed is
  5938.     number 7, "Initialize the modem firmware".  It should be:
  5939.  
  5940.               AT&A1&B0&H1&I0&M4&N0&R2&S1&Y3
  5941.  
  5942.     The meaning of this HST-specific initialization string is as follows:
  5943.     &A1 = Display/ARQ result codes
  5944.     &B0 = DTE/DCE rate follows connection rate
  5945.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  5946.     &I0 = Flow control disabled
  5947.     &M4 = Normal if ARQ connection cannot be made
  5948.     &N0 = Negotiate highest possible link rate with remote modem
  5949.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5950.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI 
  5951.                  command, substitute &R1 for &R2.
  5952.     &S1 = Modem controls Data Set Ready
  5953.     &Y3 = Nondestructive, unexpedited break signal
  5954.  
  5955.     The highest effective data transmission rate in this mode is 9600 baud.
  5956.     RBBS-PC CPC17.3                                                 Page 272
  5957.  
  5958.     MODE 2:
  5959.     -------
  5960.     In  this second  mode  the USR  Modem  supports  the MNP  data  compression
  5961.     technique  which effectively  transmits data  over  the phone  at rates  in
  5962.     excess of 17K baud.  Setting up your HST to support both  the standard 300,
  5963.     1200, 2400, and the higher  9600 and 17K baud  rates requires that the  HST
  5964.     modem  speed  be  "fixed" at  19.2K  baud.   The  PC  running  RBBS-PC will
  5965.     communicate with the  HST modem attached to  it at a fixed  rate of 19.2KB.
  5966.     The  actual  data link  speed will  default  to the  highest rate  that the
  5967.     caller's modem will support. 
  5968.  
  5969.     Parameter 222 -- set to 3 to allow the modem enough time to initialize
  5970.     Parameter 223 -- set to 2
  5971.     Parameter 227 -- set to NO
  5972.     Parameter 228 -- set to 19200
  5973.     Parameter 237 -- set to YES
  5974.     Parameter 244 -- set to YES
  5975.     Parameter 245 -- set to NO
  5976.  
  5977.     You should also reply "NO" to parameter 225, CONFIG will show you a menu of
  5978.     8 different modem commands.   The ONLY command that needs  to be changed is
  5979.     number 7, "Initialize the modem firmware".  It should be:
  5980.  
  5981.               AT&A1&B1&H1&I0&M4&N0&R2&S1&Y3
  5982.  
  5983.     The meaning of this HST-specific initialization string is as follows:
  5984.     &A1 = Display/ARQ result codes
  5985.     &B1 = DTE/DCE rate is fixed at allowable rate
  5986.     &H1 = Hardware (Clear To Send, Pin 5) flow control
  5987.     &I0 = Flow control disabled
  5988.     &M4 = Normal if ARQ connection cannot be made
  5989.     &N0 = Negotiate highest possible link rate with remote modem
  5990.     &R2 = Received data output to terminal on Request to Send high (Pin 4)
  5991.           NOTE:  If your HST 9600 modem responds 961 or greater to the ATI 
  5992.                  command, substitute &R1 for &R2.
  5993.     &S1 = Modem controls Data Set Ready
  5994.     &Y3 = Nondestructive, unexpedited break signal
  5995.  
  5996.     This  will enable the COURIER  HST to use the  built-in MNP protocol at the
  5997.     highest possible baud rate that can be negotiated with the calling modem --
  5998.     providing the  calling modem  is also  a COURIER  HST modem.   The  highest
  5999.     effective data transmission rate in this mode is 17200 baud.
  6000.  
  6001.     After replying NO  to CONFIG parameter 225 and  changing the initialization
  6002.     modem command  as  described above  for either  MODE 1  or MODE  2 for  the
  6003.     COURIER HST, CONFIG parameter 231 should be selected in order to initialize
  6004.     the COURIER HST.  This places the setting in the HST's  non-volatile random
  6005.     access memory (NVRAM)  and need only  be repeated if  the NVRAM is  changed
  6006.     (i.e. you  use the modem with  applications other than  RBBS-PC that change
  6007.     the NVRAM).
  6008.  
  6009.     For  the COURIER 2400, set  CONFIG parameter 228 to  2400.  For the COURIER
  6010.     HST, set parameter 228 as specified above for either MODE 1 or MODE 2.
  6011.  
  6012.                        Part 2:  HST Dual Standard V.32
  6013.  
  6014.     (By Gary Huff, SYSOP, Capitol City BBS, (217) 529-6452)
  6015.     RBBS-PC CPC17.3                                                 Page 273
  6016.  
  6017.     The  US Robotics  Courier HST  14.4 modem  has revolutionized  computerized
  6018.     tele-communications.   This modem is  capable of screaming along  at 19,200
  6019.     baud over ordinary voice telephone lines, and doing so extremely reliably.
  6020.  
  6021.     In  a   properly  installed  RBBS-PC,   and  using  a   properly  installed
  6022.     communications  program (Telix,  QModem, etc.),  it is  a simple  matter to
  6023.     realize  data transfer rates in the range of 1550-1650 CPS.  This works out
  6024.     to something like  a true baud rate  of about 15,500-16,500 baud!   You can
  6025.     move some very big files, very fast with this modem on both ends!
  6026.  
  6027.     Many RBBS SysOps have apparently never mastered how to make this modem work
  6028.     at optimum speed in their installations.  I check into BBS's all over the
  6029.     country running the HST 14.4 where transfer rates are in the 1000-1050 CPS
  6030.     range.  This simply indicates that the SysOp has not taken the time to 
  6031.     properly install his/her modem and to set up RBBS correctly.  This paper is
  6032.     intended to assist the SysOp in that task.
  6033.  
  6034.     Incidentally, I run RBBS 17-1D.  These instructions should work just fine
  6035.     with any  later of RBBS.  But they do NOT work as-is with older versions of
  6036.     RBBS such  as 15-1x, which is a shame because there are some nice old 15.1x
  6037.     boards still in operation and 15.1x is  lovely software to operate.  If you
  6038.     are running RBBS 15.1x, you might be able to get some ideas from this paper
  6039.     but I can't guarantee you're going to get your board up to speed.  But
  6040.     if you do, I'd sure like to hear from you to know how you set up 15.1 to
  6041.     work right... I really loved version 15.1C of RBBS!  I regard it as the
  6042.     '55 Chevy of BBS's - a real classic!
  6043.  
  6044.     To install the modem, just put it in line where your old modem went.  On
  6045.     the back of the HST, you will find one "fat" switch (a wide one), and 8
  6046.     smaller DIP switches.  Configure the "fat" switch (the one just to the
  6047.     left of the DIP switches to be UP.  Configure the DIP switches to have
  6048.     switches 4,5,8 and 9 DOWN; all the others should be UP.  
  6049.  
  6050.     Next, run RBBS's CONFIG program.  You will have to re-set a couple of
  6051.     parameters.  Here's how my CONFIG setup looks:
  6052.  
  6053.     222 - 2
  6054.     223 - 1
  6055.     224 - 1
  6056.     225 - (discussed below)
  6057.     226 - NO
  6058.     227 - NO
  6059.     228 - 19200
  6060.     230 - NO
  6061.     232 - 1
  6062.     237 - YES
  6063.     244 - YES
  6064.     245 - NO
  6065.  
  6066.     Parameter 225 is a special situation.  First, I'll tell you how each choice
  6067.     in parameter  225 looks on my  screen, and then  I'll tell you how  to make
  6068.     yours
  6069.     match it.
  6070.  
  6071.     Parameter 225:       1: ATZ
  6072.                          2: ATB1M0Q1X7S2=255S10=30S0=254
  6073.                          3: ATS1?
  6074.     RBBS-PC CPC17.3                                                 Page 274
  6075.  
  6076.                          4: ATQ)X1V1A
  6077.                          5: ATQ1E1H1M0
  6078.                          6: AT&F
  6079.                          7: AT&A1&B1&H1&I0&K0&M4&N0&R2&S1&Y3
  6080.                          8: &W
  6081.  
  6082.     Here's the trick part: if you enter the code in line 7, you will discover
  6083.     that CONFIG  for versions  earlier than 17.2  does NOT  save this  line out
  6084.     correctly and store the value you have just entered.  In  fact, in studying
  6085.     the CONFIG.BAS code, I cannot find where this code you have just entered is
  6086.     ever sent to the modem!
  6087.  
  6088.     I may be missing something, but the best I can tell is, CONFIG sends the
  6089.     Hayes  default  string,  no  matter  what  you  enter  into parameter  7  !
  6090.     Therefore, the only way you can get this code to go to the  modem is if you
  6091.     enter it into the BASIC hard code of CONFIG.BAS.  The line you will need to
  6092.     alter is line 15790 to read like this:
  6093.  
  6094.     15790 FIRMWARE.INITIALIZE.COMMAND$ = "AT&A1&B1&H1&I0&K0&M4&N0&R2&S1&Y3"
  6095.     ' (rest of code is unaltered after this) 
  6096.  
  6097.     Next, you will have to recompile CONFIG.EXE.  If you have Quick Basic 3.0
  6098.     use it by  following the compilation instructions  in the RBBS manual.   If
  6099.     you do NOT  have a copy  of Quick Basic (or  you do not have  the technical
  6100.     expertise to recompile  the altered code yourself), you can call my BBS and
  6101.     download the revised program.  I make it available in the SYSOP's sub-board
  6102.     (open to any user, whether SYSOP or  not) under the file name CNFG-HST.LZH.
  6103.     This file contains ONLY the revised  CONFIG.EXE file and none of the  other
  6104.     RBBS code.  Naturally, you will want  to save your old CONFIG.EXE file onto
  6105.     a disk somewhere, just in case you ever want to go back to running your old
  6106.     Hayes  (or   compatible)  modem.    The  revised  CNFG-HST.LZH  program  is
  6107.     compatible only with a US Robotics  HST 14.4 modem.  It will  probably work
  6108.     OK with the older HST 9600 and HST Dual Standard modems as well.
  6109.  
  6110.     CONFIG  with RBBS  17.2 and  up  does properly  save and  use  the firmware
  6111.     initialization string.  Once you have your CONFIG setup  looking like mine,
  6112.     initialize your  modem via parameter  241.  This  writes the code  into the
  6113.     non-volatile NRAM memory  of the HST so you don't lose  your setup when you
  6114.     power down.
  6115.  
  6116.     You are almost ready to fire up RBBS  at 19,200 baud!  But wait... a couple
  6117.     of changes are necessary before you do to realize the fruits of your work.
  6118.  
  6119.     First,  not  all protocols  work  correctly  at these  high  speeds.   Some
  6120.     protocols  run very slowly,  and some  will run not  at all.   For example,
  6121.     Kermit will only  give you about 450-500  CPS.  Some boards  running Kermit
  6122.     cannot even make Kermit start a transfer,  but will hang!  My advise: don't
  6123.     run Kermit.     Similar problems of  slow, inefficient  transfer rates  are
  6124.     suffered by JModem  and Lynx.  While these protocols work fine at 2400 baud
  6125.     (or  slower),  they really  dog along  at 19,200.   You  can leave  them as
  6126.     choices so that your  2400 baud callers can still  use them, but you  might
  6127.     want to post a  bulletin to your HST 14.4  callers to not select JModem  or
  6128.     Lynx  if they want  high speed transfers.   Windowed XModem  (WXmodem) is a
  6129.     real pain... on  most installations, it will also  not function efficiently
  6130.     (or at all).  I have  removed WXmodem from my choice of protocols.   Out of
  6131.     over 600 users, I only had one who was using it regularly, and he was happy
  6132.     to switch to something more efficient.  Next, QMXFER protocols do not yield
  6133.     RBBS-PC CPC17.3                                                 Page 275
  6134.  
  6135.     high efficiencies and  are mostly duplicates of  protocols available either
  6136.     internally or with DSZ.  On my board, although I found QMXFER YModem to  be
  6137.     the very  fastest protocol at  2400 baud,  I have  reluctantly removed  all
  6138.     QMXFER protocols.
  6139.  
  6140.     That leaves RBBS internal protocols and DSZ.  DSZ protocols are outstanding
  6141.     examples of what all transfer protocols should be capable of doing.  The
  6142.     two  fastest  protocols at  19,200  are  (in  order) YModem-G  and  ZModem.
  6143.     YModem-G is capable of giving you transfers  on the order of 1625-1650 CPS,
  6144.     but only  on a  good, clean  phone line.   ZModem is  only slightly  slower
  6145.     (1550-1600 CPS), but is unmatched for  its ability to "slam" through  noisy
  6146.     phone  lines.     Personally, I  figure  I never  can predict  when  a long
  6147.     distance phone  line may become noisy in the middle of a transfer, so I use
  6148.     ZModem about 99% of the time.
  6149.  
  6150.     The  installation of  these DSZ  protocols  must be  "tweaked" for  maximum
  6151.     speed.   That  means you  should  set up  your PROTO.DEF  file  for optimum
  6152.     operation with DSZ.  Also, several DSZ protocols (YModem-G and Overthruster
  6153.     YModem) will only work with a "registered" version of DSZ.  If you have not
  6154.     registered DSZ, please do so and run the "registered" version on your board
  6155.     to get the fastest speeds possible.
  6156.  
  6157.     If you do not know how to "tweak" your PROTO.DEF file for maximum speed,
  6158.     you can find my PROTO.DEF file that I run under the filename CC-PROTO.LZH.
  6159.     It includes all the internal RBBS protocols, DSZ XModem, DSZ XModem CRC,
  6160.     DSZ YModem, DSZ ZModem, DSZ YModem-G, Lynx and JModem.  Again, I encourage
  6161.     you to encourage your HST users to use ONLY ZModem or YModem-G for maximum
  6162.     speed.
  6163.  
  6164.     The HST 14.4 SysOp must understand that, as with all new technology, some
  6165.     changes in the "old way" of doing things is inevitable.  Certain DOOR
  6166.     programs, for example, simply will not work correctly at 19,200 baud.  Most
  6167.     of the troublesome DOORS are older versions, written when 2400 baud was
  6168.     considered the fastest a computer could reliably run.  Most DOORS written
  6169.     within the past couple of years work just fine at 19,200.  However, be sure
  6170.     to run tests with all your DOORS after you get your new modem installed to
  6171.     make sure everything still looks right on the other end.  (Don't trust how
  6172.     the DOOR  looks on your  screen... have a  friend call into  your board and
  6173.     test each and every DOOR to make sure it is still working right.)
  6174.  
  6175.     Most of the DOOR programs written for PC Board 14.x will run great on RBBS
  6176.     at 19,200, provided they are run through B.H. Forbes' excellent DOR-PCB
  6177.     program.  A "trial" version of this program is available on many BBS's
  6178.     (mine included), but you really need to register the program with the
  6179.     author to get all the features activated.  For example, the "demo" version
  6180.     only allows a maximum of 10 minutes in a door.  The registered version has
  6181.     no such restriction, is very simple to set up (provided you first READ THE
  6182.     INSTRUCTIONS carefully), and opens up all the PCB doors for use on RBBS.
  6183.     Most DOORWAY programs will also work just fine at 19,200.  (I run DOORWAY
  6184.     2.04, the registered version, and can vouch for that version only.  I don't
  6185.     know  about earlier  or  unregistered  versions.)   The  only  DOORS I  had
  6186.     problems with  were  some of  the "Fast  Fingers" programs  such as  POKER,
  6187.     CRAZY8 and BLAKJACK.   However, I  was running versions  that were  several
  6188.     years old,  and there are  possibly newer versions  of these programs  that
  6189.     will work at 19,200.
  6190.     Some of the better DOORS for 19,200 include MCASINO (Mycroft Casino),
  6191.     MURDER MOTEL, MOTU, and BBSQBASE (formerly USBBS).  Also (thankfully), the
  6192.     RBBS-PC CPC17.3                                                 Page 276
  6193.  
  6194.     SysOps's best friend, PCBVerify works with no problems at all speeds up to
  6195.     19,200.
  6196.  
  6197.     Some SysOps swear by the 8250 UART chip on their I/O boards, and some swear
  6198.     at them.  There are some SysOps who say that the 16550AN UART chip should
  6199.     be installed in place of the 8250 chip to get maximum speed.  I have tried
  6200.     both chips, and did get a few CPS faster speed.  However, I also developed
  6201.     some "weird" problems with my COM1 port suddenly "disappearing" on me.  I
  6202.     am not technically knowledgeable enough about the hardware to be able to
  6203.     tell you why this happened to me, but the bottom line is that I found the
  6204.     8250 to be 100% reliable and only a few CPS slower.  Therefore, I left my
  6205.     8250 chip in line and shelved the 16550AN.  Your experience may very well
  6206.     be different than mine, so you might want to experiment with this chip at
  6207.     19,200.  JDR Microdevices carries them (see Computer Shopper for their ad).
  6208.     Their phone number is: 800-538-5000.  Other dealers may have them as well.
  6209.  
  6210.     Oh, by the way, just in case you want to know what hardware I am running
  6211.     to judge whether your installation will match what I am doing, I want you
  6212.     to know that I am not running a fancy 386 machine to get these performance
  6213.     ratings.  I am running an older (1985) PC-XT Turbo clone with a NEC V-20
  6214.     CPU chip at 8 MHz.  My BIOS is a Mitsuba Erso/DTK 2.38 (which was not the
  6215.     original BIOS  chip  that  came  with  this machine.    I  run  a  Perstore
  6216.     controller  card  with two  Seagate  4096  hard  drives.   I  also  have  a
  6217.     permanently installed  Colorado Memory  Systems Jumbo  DC-2000 tape  backup
  6218.     unit, running as an external unit with CMS's controller card.  All of  this
  6219.     conglomeration and mixture of  scrap iron works  just fine together, so  if
  6220.     you hear rumors that this or that  piece of hardware won't work at  19,200,
  6221.     call my board and see that it does!
  6222.  
  6223.     Good luck.  If you have any questions not covered in this paper, I probably
  6224.     won't be able to answer them, but leave a comment or message on my board
  6225.     and I'll try to help you if I can.  (I probably can't, but I'll try!)  Open
  6226.     your HST 14.4 at 19,200 with your comm program (Telix works nicely, thank 
  6227.     you) and call to see what is possible.
  6228.  
  6229.     Note:  RBBS-PC versions 17.3 supports 38,400 baud using  the Fossil driver,
  6230.     if you really want to try pushing the dual standard to its limits.
  6231.     RBBS-PC CPC17.3                                                 Page 277
  6232.  
  6233.     APPENDIX Q -- RBBS-PC and the FASTCOMM 2496 Turbo Modem
  6234.     -------------------------------------------------------
  6235.     The FASTCOMM  2496 9600 and  19200 baud  modems work  with RBBS-PC  without
  6236.     modifications to RBBS-PC.
  6237.  
  6238.     However  some  unusual quirks were noted with the  FASTCOMM  hardware.  The
  6239.     modems  would  NOT  follow terminal baud rate in the command  mode  if  the
  6240.     transition was from 300 to 9600 (or 19,200) baud.   Therefore,  if  RBBS-PC
  6241.     were  configured to initially operate at 9600 baud,  it would not  properly
  6242.     reset after a 300 baud call.   It would,  however, follow all other changes
  6243.     within  the range of RBBS-PC.   If it was configured to initially answer at
  6244.     both  2400  and  4800  baud  and it  worked  equally  well  with  calls  at
  6245.     300,  1200, 2400, 4800,  9600  and 19200  baud for both cases.    Therefore
  6246.     set CONFIG parameter 208 to 2400 baud!
  6247.  
  6248.     It  is recommended that CONFIG parameter 224 be set to answer on  one ring!
  6249.  
  6250.     Specific instructions for modem set up are as follows:
  6251.  
  6252.     1.  Using  the  BASIC  program  SETFC.BAS below,  set   the  default  modem
  6253.     settings.    This   can   also be done  manually  from  a    communications
  6254.     program.     The  speed   that is used to   establish  the   default  modem
  6255.     settings  is the speed to which the modem defaults on reset  and  power on.
  6256.      It is best to  do this setup at the same speed that RBBS-PC  uses as   its
  6257.     default speed, namely 2400 baud.  In any case do not do it  at 9600 baud.
  6258.  
  6259.     2.  Tell   RBBS-PC  to open  the  modem at  2400  baud by  setting   CONFIG
  6260.     parameter 208 to 2400 baud.
  6261.  
  6262.     3.  Use  CONFIG parameter 225 to change the modem reset command from  "ATZ"
  6263.     to "AAATZ".
  6264.  
  6265.         This string of A's resets the modem to the terminal baud rate so it can
  6266.     respond to the other  commands.   If  you want to  experiment,  watch   the
  6267.     modem  respond   to  you   when you change baud  rates  in  your   favorite
  6268.     communications   program.     This  modem   function  is   referred  to  as
  6269.     "autobaud".   You will probably  not see the  first "A" echo  and sometimes
  6270.     not  the  second.   You should always  see the third  "A".    Others   have
  6271.     advised that their  modems would "autobaud"  from 300 to  9600 baud.   Mine
  6272.     would not.  
  6273.  
  6274.     4.  Use CONFIG  parameter 225 to change the modem  answer string to include
  6275.     X2 instead of X1 (the CONFIG default).
  6276.  
  6277.     Stan Staten  has extensive  experience with RBBS-PC  and the  FASTCOMM 2496
  6278.     modems.  If you have any  questions regarding their use with RBBS-PC,  give
  6279.     Stan's RBBS-PC system a call at (301) 869-7650.
  6280.  
  6281.     On the next page is STAN's SETFC.BAS program's BASIC source code to set the
  6282.     FASTCOMM  modem.   It  can be  run under  the BASIC  interperter or  can be
  6283.     compiled using QuickBASIC  from Microsoft.   SETFC.EXE and SETFC2.EXE  (for
  6284.     COM2:) can be downloaded from Stan's BBS.
  6285.     RBBS-PC CPC17.3                                                 Page 278
  6286.  
  6287.     10   'title: 'SETFC.BAS, Copyright 1986 by H. Stanley Staten 
  6288.     20   'SYSOP 3 WINKs BBS, 301-670-9621
  6289.     30   '
  6290.     40      DEFINT A-Z 
  6291.     50      CLEAR 
  6292.     60  ' 
  6293.     70  ' ********************************************************************
  6294.     80  ' * ROUTINE TO INITIALIZE THE FASTCOMM 2496 MODEM'S FIRMWARE         * 
  6295.     90  ' ******************************************************************** 
  6296.     100  '
  6297.     110  COM.PORT$ = "COM1"                 'Change to "COM2:" for COM2: use 
  6298.     120  PRINT "Setting FASTCOMM 2496 firmware for RBBS-PC on " + COM.PORT$ 
  6299.     130  ' 
  6300.     140  ' ********************************************************************
  6301.     150  ' *                                                                  *
  6302.     160  ' * INITIALIZE THE FASTCOMM 2496 VOLATILE MEMORY.  SET as follows    *
  6303.     170  ' *                                                                  *
  6304.     180  ' *         AT#F       = Set to factory defaults                     *
  6305.     190  ' *         AT#LCN     = Set carrier detect to normal                *
  6306.     200  ' *         AT#LDN     = Set DTR to normal                           *
  6307.  
  6308.     210  ' *         AT#LX2     = Set for XON/XOFF flow control               *
  6309.  
  6310.     220  ' *         ATS7=30    = Set wait for answer tone to 30 seconds      *
  6311.  
  6312.     230  ' *         ATM0       = Turn speaker off                            *
  6313.  
  6314.     240  ' *         ATV1       = Issue long form of results codes            *
  6315.  
  6316.     250  ' *         ATX2       = Full result messages                        *
  6317.  
  6318.     260  ' *         ATS57=1    = Hang up and reset automatically executed    *
  6319.  
  6320.     270  ' *         ATE0       = Do not echo modem commands back to the PC   *
  6321.  
  6322.     280  ' *         ATS10=10   = To cause to reset on loss of carrier faster *
  6323.  
  6324.     290  ' *         ATS58=3    = Force a 19200 Baud call to 9600 Baud locally*
  6325.     300  ' *         ATS22=46   = Suggested by the vendor                     *
  6326.     310  ' *         ATS0=0     = Don't answer until told to.                 *
  6327.     320  ' *         AT#W       = Write settings to non volatile memory       *
  6328.     330  ' *                                                                  *
  6329.     340  ' ********************************************************************
  6330.  
  6331.     350  ' 
  6332.     360  OPEN COM.PORT$ + ":2400,N,8,1,RS,CD,DS" AS #3  
  6333.     370  PRINT #3,"AAAAAAAT" 
  6334.     380  PRINT #3,"AT#F" 
  6335.     390  PRINT #3,"AT#LCN" 
  6336.     400  PRINT #3,"AT#LDN" 
  6337.     410  PRINT #3,"AT#LX2" 
  6338.     420  PRINT #3,"ATS7=30" 
  6339.     430  PRINT #3,"ATM0" 
  6340.     440  PRINT #3,"ATV1" 
  6341.     450  PRINT #3,"ATX2" 
  6342.     460  PRINT #3,"ATS57=1" 
  6343.     470  PRINT #3,"ATE0" 
  6344.     RBBS-PC CPC17.3                                                 Page 279
  6345.  
  6346.     480  PRINT #3,"ATS10=10" 
  6347.     490  PRINT #3,"ATS58=3" 
  6348.     500  PRINT #3,"ATS22=46" 
  6349.     510  PRINT #3,"ATS0=0" 
  6350.     520  PRINT #3,"AT#W" 
  6351.     530  SYSTEM 
  6352.     RBBS-PC CPC17.3                                                 Page 280
  6353.  
  6354.     APPENDIX R -- RBBS-PC and the ZOOM Modem HC2400
  6355.     -----------------------------------------------
  6356.     In order to use  the "ZOOM HC2400" modem with RBBS-PC  parameter 225 should
  6357.     be changed as shown below.  Only #2 and #5 need to be changed.
  6358.  
  6359.     Changes in #2.  Add '&D2' just after  'AT'.  Change 'S2=255' to 'S2=43'.
  6360.  
  6361.     Change  in #5.  Add "&D2' just after  'AT'.
  6362.  
  6363.     1. Reset the modem                : ATZ
  6364.     2. Initialize the modem           : AT&D2M0Q1S2=43S10=30E0Q0X1S0=0
  6365.        Note: End item 2 with:
  6366.          S0=1Q0X1 if answer on 0 rings
  6367.          S0=254 if answer on >0 rings (no ring-back)
  6368.          S0=255 if answer on >0 rings (with ring-back)
  6369.     3. Count the number of rings      : ATS1?
  6370.     4. Answer the phone               : ATQ0X1V1A
  6371.     5. Take the phone off the hook    : AT&D2Q1E1H1M0
  6372.     6. Clear the modem's firmware     : AT&F
  6373.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  6374.        Note: End item 7 with:                                                  
  6375.        
  6376.          Q1 if item 2 ends with S0=255                                         
  6377.        
  6378.     8. Write to modem's firmware      : &W
  6379.  
  6380.     For further information contact:
  6381.     Jeff L. Watts
  6382.     STATESVILLERBBS-PC  Data # (704) 873-8482
  6383.     RBBS-PC CPC17.3                                                 Page 281
  6384.  
  6385.     APPENDIX S -- RBBS-PC And The AT's RS-232 Cable
  6386.     -----------------------------------------------
  6387.     The RS-232 serial connector is different for the AT than the PC or XT.  The
  6388.     AT  uses  a connector  called  a DB-9,  which  is a  9 pin  connector.   An
  6389.     alternative to  buying the AT serial cable from  IBM, ($65-$80), is to make
  6390.     your own.  A ten-wire cable  can be purchased from any local computer store
  6391.     for  about $.80 per foot, and the DB-9 and RS-232 connectors with hoods can
  6392.     be purchased from Radio Shack.  The  total cost should be about $12.00.   A
  6393.     modem  hooked up to the AT will work  fine with the 9 pins connected in all
  6394.     terminal functions, except for auto-answer applications such as RBBS-PC.
  6395.  
  6396.     RBBS-PC requires pin 1 from the modem to be hooked up to the chassis ground
  6397.     on the AT or it can't answer the phone.  There are two ways to hook up  the
  6398.     ground  wire on the computer end.  The first  way is to use a metal hood to
  6399.     cover the  DB-9 connector.  Wrap a  bare wire that is attached  to pin 1 of
  6400.     the RS-232 connector around the cable on the DB-9 end.  When the metal hood
  6401.     is screwed down  over the cable  a connection will be  made.  When  using a
  6402.     plastic DB-9 hood simply solder a wire from pin 1 on the  RS-232 end to the
  6403.     metal body of  the DB-9 connector.   Since documentation is scarce  for the
  6404.     AT, following figure lists the  necessary pin connections for those wanting
  6405.     to make their own AT RS-232 cable.
  6406.  
  6407.        DB-9       RS-230
  6408.     (Computer     (Modem           Description
  6409.        End)        End)
  6410.     =========    =======        ==================
  6411.  
  6412.      GROUND -------- 1 -------- Protective Ground
  6413.        1    -------- 8 -------- Data Carrier Detect
  6414.        2    -------- 3 -------- Receive Data
  6415.        3    -------- 2 -------- Transmit Data
  6416.        4    ------- 20 -------- Data Terminal Ready
  6417.        5    -------- 7 -------- Signal Ground
  6418.        6    -------- 6 -------- Data Set Ready
  6419.        7    -------- 4 -------- Request to Send
  6420.        8    -------- 5 -------- Clear to Send
  6421.        9    ------- 22 -------- Ring Indicator
  6422.     RBBS-PC CPC17.3                                                 Page 282
  6423.  
  6424.     APPENDIX T -- RBBS-PC And BASIC Compiler Patches for "Doors"
  6425.     ------------------------------------------------------------
  6426.     A bug  in Microsoft's  BASIC and QuickBASIC  compilers requires  SysOps who
  6427.     wish to recompile  RBBS-PC to apply the following patches.  The problem has
  6428.     to  do with BASIC's  treatment of the  communications port when  you exit a
  6429.     BASIC program.  The Data Terminal  Ready (DTR) line MUST be kept on  at all
  6430.     times, or the modem will hang up on your caller.
  6431.  
  6432.     If you  are recompiling  RBBS-PC, and  you plan  to use  Doors or  external
  6433.     protocols,  you must  make the following  patches.   Any hex editor  can be
  6434.     used:  DEBUG, which comes  with DOS, or  the Norton Utilities  are just two
  6435.     examples.   A tutorial  on how to  use DEBUG  is beyond  the scope of  this
  6436.     document.
  6437.  
  6438.     There are actually two  patches, depending on  the version of the  compiler
  6439.     you have.  The first patch is for QuickBASIC 2, 3 & 4 or BASCOM 6.0.
  6440.  
  6441.     The  file you will patch is BCOMx0.LIB  (where X is the QB version number).
  6442.     Of course, you will save your original file before  applying the patch.  To
  6443.     make the fix, you will search for the following string of HEX digits: 83 C2
  6444.     04 32 C0 EE.  The assembly code for this string is:
  6445.  
  6446.     83 C2 04  ADD DX,4
  6447.     32 C0     XOR AL,AL
  6448.     EE        OUT DX,AL
  6449.  
  6450.     We need to  change the XOR AL,AL  to MOV AL,1.   Change the "32 C0"  to "B0
  6451.     01".  Make this change in both places where the string occurs.
  6452.  
  6453.     If you use  QB 4.5, or  BASCOM 7.0, the patch  is different.  Look  for the
  6454.     string: B0 00 E3 01 40 83 C2 04 EE.  In assembly code, it is:
  6455.  
  6456.     B0 00    MOV  AL,00
  6457.     E3 01    JCXZ nnnn
  6458.     40       INC  AX
  6459.     83 C2 04 ADD  DX,4
  6460.     EE       OUT  DX,AL
  6461.  
  6462.     Again, we  want to put a 1 in  AL, so we change the "B0  00" to B0 01".  We
  6463.     also need to remove the INC AX, so change the "40" to "90".
  6464.  
  6465.     You may  also want to  make an additional patch.   This patch  will prevent
  6466.     QuickBASIC from pausing  on a fatal error.   Normally, BASIC says  "press a
  6467.     key  to continue".   If  RBBS-PC were  allowed to  recycle, it would  do so
  6468.     without trouble, but BASIC will hold  up your board until you press  a key.
  6469.     If you have QuickBASIC 2.01 or 3.0, search the BCOMx0.LIB for the following
  6470.     string of  HEX digits: E2 F8  E8 00 00 E8  00 00 E8  00 00 C3.   Change the
  6471.     MIDDLE "E8  00 00" to "C3 90  90".  If you have  QuickBASIC 4.5, search for
  6472.     the string  "B8 07  0C CD 21"  and change  the "CD  21" to  "90 90".   Now,
  6473.     whenever BASIC  can't handle  an error,  it will  allow RBBS-PC to  recycle
  6474.     quickly.
  6475.  
  6476.     If you have BASCOM  7.0, you can apply  the patch for QB 4.5,  although you
  6477.     will have to patch whichever BC70xxxx.LIB file you use to link.
  6478.  
  6479.     Thanks to  Doug Azzarito, Jeff  Porter, Rod  Bowman, Kenny Gardner  and Bob
  6480.     Eyer for information on these patches.
  6481.     RBBS-PC CPC17.3                                                 Page 283
  6482.  
  6483.     APPENDIX U -- Using RBBS-PC to access ORACLE or dBASE Remotely
  6484.     --------------------------------------------------------------
  6485.     1.  The Need for Data Base Services
  6486.  
  6487.     A  feature that  has been  long missing  from  PC based  host communication
  6488.     systems is the ability for SYSOPs to  install customized data bases and let
  6489.     callers run true interactive data base  queries against them.  Because data
  6490.     base management is a major programming task, the most promising way  to add
  6491.     data  base services  is to  uses RBBS-PC's  original and  innovative "DOOR"
  6492.     mechanism to exit RBBS-PC and have  the remote user enter an existing  data
  6493.     base management program.
  6494.  
  6495.     "DOOR"ing to a data base management program, however, is not as easy as one
  6496.     might  hope.   The  major  problems  stem  from  the fact  that  data  base
  6497.     management programs are  never designed to work in  this environment.  This
  6498.     is because:
  6499.  
  6500.     1.   Most programs  write to the  hardware for  speed rather than  use bios
  6501.     calls,  causing the "screen"  output to appear on  the host terminal rather
  6502.     than on the caller's terminal.
  6503.     2.   Data base programs do not monitor for  carrier.  If carrier drops they
  6504.     simply sit forever waiting for input rather than terminating.
  6505.     3.   Most use  "full screen" rather  than "line  at a time",  which usually
  6506.     does not work properly on a remote terminal.
  6507.     4.   Security.  Most data  base programs have no way  to limit what a  user
  6508.     can do.  For example, they do not  have a read-only mode, or the ability to
  6509.     restrict a user to specific files  or fields.  Many let the user  issue dos
  6510.     commands inside them, which gives to call too much power.
  6511.     5.   Difficulty  in learning to  use.  A  caller can hardly  be expected to
  6512.     know how to use a  data base.   Hence it  must be possible to simplify  and
  6513.     control the user interface inside the data base package.
  6514.  
  6515.     Progress has been made with two of the most popular PC data bases -- ORACLE
  6516.     and dBASE!
  6517.  
  6518.     Using dBASE "DOORS" with RBBS-PC 
  6519.     -------------------------------- 
  6520.     db/LIB  is  a relatively new piece of software by AJS Publishing  of  North
  6521.     Hollywood, CA that makes remote dBASE access possible.  db/LIB is a set  of
  6522.     two  assembled  libraries which can be used to   create/modify  dBASE  data
  6523.     structures, create/update dBASE indices, and naturally manipulate the dBASE
  6524.     records.    These   libraries  also  have  many  replacements   for   dBASE
  6525.     functions/commands  not  easily  replicated  (ie.   IIF,  RECNO(),  DATE(),
  6526.     RTRIM(),  DELETED(), etc.)  outside of  the dBASE  environment.   db/LIB is
  6527.     currently  developing  a multi-user  version  that should  be  released for
  6528.     testing by the end of January 1989. 
  6529.      
  6530.     db/LIB   was designed  to work  with Microsoft  Quick BASIC  4.0 and  BASIC
  6531.     Compiler  6.0 (there  is  a  QB 2/3  version  available directly  from  AJS
  6532.     Publishing after you purchase db/LIB). 
  6533.      
  6534.     dBASE Remote Access Advantages/Disadvantages 
  6535.      
  6536.     Combine  db/LIB with any well written door skeleton (such as the very  fine
  6537.     skeleton) and you can  have a true shareable  remote  database  system. The
  6538.     following section highlights  some  advantages  and  addresses the problems
  6539.     concerning remote dBASE database access. 
  6540.     RBBS-PC CPC17.3                                                 Page 284
  6541.  
  6542.      
  6543.     Advantages of using db/LIB and dBASE data bases: 
  6544.      
  6545.     1.   Purchase  of  dBASE  is not required.  db/LIB can  create  modify  and
  6546.          maintain any dBASE structure.  A program with db/LIB and downloaded by
  6547.          a  third party can give these same freedoms to a third party.   Sample
  6548.          programs with db/LIB demonstrate that most of dBASE's functions can be
  6549.  
  6550.          replicated or substituted using db/LIB. 
  6551.      
  6552.     2.   If  dBASE  (or any good clone) is  owned,  then the two work very well
  6553.          in   tandem.    The  programmers   at  Ashton-Tate  didn't gain  their
  6554.          reputation  for  writing junkware.  By  owning  dBASE,  the  user  can
  6555.          download  any  database structure  and  perform  any data manipulation
  6556.          easily  in  a  familiar environment. 
  6557.      
  6558.     3.   Full   screen  (ANSI)  writes,  security,  carrier  monitoring,  error
  6559.          trapping, are  all handled by the door skeleton.  Let database modules
  6560.          run the  database, and let the door modules run the door. 
  6561.      
  6562.      
  6563.     Disadvantages of using db/LIB and dBASE data bases: 
  6564.      
  6565.     1.   Remote  dBASE database access is not the same as accessing  dBASE  III
  6566.          remotely.  Creation of these DOORS requires knowledge of Quick  BASIC,
  6567.          some  knowledge of data communications, and some knowledge  of  dBASE.
  6568.          All  end user requirements have to be anticipated, all cases  covered,
  6569.          and   created in advance.  Once the application is created, then  user
  6570.          need no little or nothing about any of the above. 
  6571.      
  6572.     2.   Not all  users can use  ANSI commands for  full screen editing.   This
  6573.          means  that doors  need to  have a  scrolling (terminal)  type display
  6574.          capability as a substitute for the normal full screen writes.  In some
  6575.          doors this will simply be impossible, preventing all users 
  6576.          from database access.  
  6577.      
  6578.     For   those  interested  in  dBASE-based on-line  data  base searches  with
  6579.     RBBS-PC,    you    might  try  writing  Steven  Kling  at  4009  Utah Ave.,
  6580.     Brentwood,  MD 20722.   Steven  is  the  author  of BBS_BASE, USER_BASE and
  6581.     DoorBase. BBS_BASE   is   a   non-ANSI dBASE   III demonstration DOOR  that
  6582.     maintains a database  of Bulletin Board names,  phone numbers,  etc.   This
  6583.     database can be queried,  added to, edited, and  up   to the minute reports
  6584.     can be generated.  The entire database with indices   can be  downloaded by
  6585.     the user for personal use.  This database is indexed  and therefore  can be
  6586.     queried either by name or phone  number.   BBS_BASE  was  written only as a
  6587.     demonstration of using RBBS-PC to access  a  data  base remotely.  USERBASE
  6588.     is a  dBASE registration door  for RBBS 15.1C and  above. It comes  in both
  6589.     ANSI and non-ANSI versions and gives an automatic access upgrade capability
  6590.     to the SYSOP at his/her option.
  6591.  
  6592.     Steven Kling  and Michael  Kelly are collaborating  on DoorBase,  which has
  6593.     just been released, and this  will give a SYSOP the capability to place any
  6594.     dBASE III database on-line, and will allow  him/her to set up all the  full
  6595.     screen  display features  to  his/her  own specification.     DoorBase  has
  6596.     multiple   demonstration  databases   available   including  databases   of
  6597.     Congressmen,  dBASE vendor support companies, and a national BBS listing. 
  6598.     RBBS-PC CPC17.3                                                 Page 285
  6599.  
  6600.     Steven is  also the  SYSOP of Technopeasants'  EAST RBBS  at (301)-927-4258
  6601.     Brentwood, MD (PC Pursuitable) 24 Hours/ 2400 baud. 
  6602.      
  6603.     Michael  is the  SYSOP  of  Technopeasants'  WEST  RBBS  at  (503)-257-7070
  6604.     Portland, OR (PC Pursuitable) 24 Hours/ 2400 Baud. 
  6605.  
  6606.  
  6607.     Using ORACLE with RBBS-PC for On-line Data Base Access
  6608.     ------------------------------------------------------
  6609.     Another database package that is able to be used as a "door" is ORACLE from
  6610.     Oracle  Corporation  at One Oracle Parkway in  Belmont,  California  94002.
  6611.     Their  number  is (415) 598-8000.  ORACLE is a very promising  solution  to
  6612.     providing  remote  data  base  services.   Oracle  addresses  the  problems
  6613.     mentioned earlier as follows.
  6614.  
  6615.     1.   Screen writes.  ORACLE user bios calls.  All output appears  perfectly
  6616.          normal on remote terminals through the  CTTY interface in RBBS-PC.
  6617.  
  6618.     2.   Monitor  for carrier.  Run WATCHDOG, which will reboot your system  if
  6619.          carrier drops.
  6620.  
  6621.     3.   Full screen mode.  ORACLE uses only ANSI commands to control the users
  6622.          screens.  Callers whose remote communications package implements  ANSI
  6623.          support  therefore  see full screen writes exactly the same  as  local
  6624.          users.  FULL SCREEN WORKS!
  6625.  
  6626.     4.   Security.  ORACLE has all the security you could ever want because  it
  6627.          was designed for multi-user systems.
  6628.  
  6629.     5.   Usability.  ORACLE implements SQL,  which is increasingly becoming  an
  6630.          industry standard that all major data base systems are supporting.
  6631.  
  6632.     Of  course, there are some problems using ORACLE in a way in which  it  was
  6633.     never designed:
  6634.  
  6635.     1.   There  is  a  problem  getting the  function  keys  to  work  properly
  6636.          remotely.
  6637.  
  6638.     2.   The  ability  for a caller to use DOS commands needs  to  be  disabled
  6639.          within ORACLE.
  6640.  
  6641.     3.   Callers  who  do not know SQL need pre-structured queries and  a  menu
  6642.          interface  to  be designed for them.   ORACLE supports a  full  screen
  6643.          interface  but the user interface in ORACLE is not as programmable  as
  6644.          one would like.
  6645.  
  6646.     For  those  interested  in  ORACLE-based on-line  data  base  searches with
  6647.     RBBS-PC, you might try  writing John Prior at P.O. Box  2168, Rockville, MD
  6648.     20852-2168.  Steve is the SYSOP of
  6649.  
  6650.            SQLBBS at (301)-881-6588
  6651.            Rockville, MD (PC Pursuitable)
  6652.            24 Hours/ 2400 baud.
  6653.  
  6654.     The  SQLBBS  is  a  specialized  bulletin  board  system  specializing   in
  6655.     supporting  relational  data  base managers and making  the  power  of  SQL
  6656.     available to callers.  SQLBBS uses an RBBS-PC door to get into ORACLE.  The
  6657.     RBBS-PC CPC17.3                                                 Page 286
  6658.  
  6659.     SQLBBS  has implemented ORACLE to help manage the data processing  for  the
  6660.     National Council for Children's Rights (NCCR), and have several major  data
  6661.     bases  on-line  for general interest.  People can contact John  Prior,  the
  6662.     SQLBBS SYSOP, on Compuserve or MCI, by mail, or call SQLBBS if they wish to
  6663.     see  how  ORACLE is implemented, get the latest progress report,  or  share
  6664.     experiences  implementing  data  base services.  Here are  details  on  the
  6665.     SQLBBS system and how to reach both John and it:
  6666.  
  6667.     Modem:              2400 Baud Hayes
  6668.     BBS Number:         301/881-6588
  6669.     Hours:              24 hrs/day
  6670.     Address:            Prior Computer Service Inc.
  6671.                         POB 2168
  6672.                         Rockville MD 20852-2168
  6673.     Compuserve ID:      76266,1072
  6674.     MCI MAIL ID:        JPRIOR
  6675.     SYSOPS:             John F. Prior
  6676.                         Steve J. Prior
  6677.                         Tony Zelof
  6678.     SQL Tables          Roster of the House of Representatives
  6679.     Available           Roster of the Senate [both with addresses etc.]
  6680.     Now                 The States [2 char abbreviation and full name]
  6681.  
  6682.     Call  SQLBBS as you would any other RBBS-PC system.  Go through  the  Door.
  6683.     SQLBBS  executes a "SELECT * FROM TAB;" for you which shows you the  tables
  6684.     and  views you can access.  At the UFI> prompt execute any  SELECT  command
  6685.     you want against any table or view.  
  6686.  
  6687.     "SELECT * FROM STATES;"                      returns    all  rows [records]
  6688.                                                  of the STATES table.
  6689.  
  6690.     "SELECT  * FROM STATES WHERE ST = 'MA';"     returns  all  rows   about the
  6691.                                                  state  whose     two-character
  6692.                                                  code is "MA".
  6693.  
  6694.     "SELECT COUNT(*) FROM STATES;"               gives  you a count of the rows
  6695.                                                  in the STATES table.
  6696.  
  6697.     If  you substitute another table or view instead of STATES such as  SENATE,
  6698.     you can access other tables/views.
  6699.  
  6700.     "DESC HOUSE"                  would  return the column   names of the HOUSE
  6701.                                   table.
  6702.  
  6703.     "HELP"                             gets you help.
  6704.  
  6705.     "HELP SELECT"                      gets  you  help on  the SELECT command. 
  6706.  
  6707.     "HELP SET"                         gets   you  help   on the   SET  command
  6708.                                        which  can  control   many  options  for
  6709.                                        display
  6710.  
  6711.     "SHOW ALL"                         shows  you everything  you  can SET.
  6712.  
  6713.     "EXIT"                             terminates  UFI  and  returns    you  to
  6714.                                        RBBS-PC.
  6715.     RBBS-PC CPC17.3                                                 Page 287
  6716.  
  6717.     APPENDIX V -- Using RBBS-PC with SEAdog to Access FIDO-NET
  6718.     ----------------------------------------------------------
  6719.     SEAdog  is a  full-featured electronic  mail system  based on  the personal
  6720.     computer and using standard telephone lines.   It is a sophisticated store-
  6721.     and-forward mail  system which can  be configured in a  virtually unlimited
  6722.     number of network  topologies (more  on this later).   Unlike some  network
  6723.     systems, the end user need never concern himself with network routing -- it
  6724.     all happens automatically.   The user just submits  and retrieves messages,
  6725.     the  system takes care of the details.   The hardware needed to run RBBS-PC
  6726.     is sufficient to run SEADOG.
  6727.  
  6728.     SEAdog  uses  the FidoNet  Electronic  Mail  Protocol,  as defined  in  the
  6729.     document,   A  Basic   FidoNet  Technical   Standard,   published  by   the
  6730.     International FidoNet Association (IFNA).  The FidoNet Protocol is a public
  6731.     domain electronic mail  standard originally developed  by Tom Jennings  for
  6732.     the  Fido bulletin  board system.  For more  information about  the FidoNet
  6733.     Protocol, please write to:
  6734.  
  6735.         The International FidoNet Association
  6736.         P.O. Box 41143
  6737.         St. Louis, Missouri  63141
  6738.         United States of America
  6739.  
  6740.     There are several advantages  to using the FidoNet Protocol, not  the least
  6741.     of which  is that a  great many utilities  and programs are  available from
  6742.     many different  vendors  for doing  various  things with  electronic  mail.
  6743.     Please contact IFNA at the above address for more information.
  6744.  
  6745.     The heart of  SEAdog is the network  mail server, MAILER.EXE.   This is the
  6746.     program that places and receives  phone calls, handles message routing, and
  6747.     so forth.   It is left  running when you  would normally turn  your machine
  6748.     off.
  6749.  
  6750.     You  can set RBBS-PC  to drop  to DOS  at a time  when telephone  costs are
  6751.     cheapest  (normally 4AM  Eastern Standard  time and  1AM Pacific  time) and
  6752.     invoke the mailer  so that it  begins placing phone  calls to other  SEAdog
  6753.     systems to pass them your outgoing mail and receive your incoming mail.  
  6754.  
  6755.     SEAdog costs $100.00  and can be ordered  from the address or  phone number
  6756.     below.
  6757.  
  6758.             Thom Henderson
  6759.     SYSTEM ENCHANCEMENT ASSOCIATES
  6760.            21 Wayne Street
  6761.        Wayne, New Jersey 07470
  6762.            V:201-473-5153
  6763.  
  6764.     This doc file  is not  intended to  replace the SEAdog  manual, but  rather
  6765.     provide  information that  an  RBBS-PC SYSOPsysop  would  find useful  when
  6766.     configuring RBBS-PC to run with SEAdog.
  6767.  
  6768.     The current status of the RBBS-PC - SEAdog project is at the level in which
  6769.     RBBS-PC has the  ability to be front-ended  by SEAdog in where  SEAdog will
  6770.     turn over to it  a live, active  modem with a  caller waiting. RBBS-PC  has
  6771.     been modified  to accept two  additional command line parameters  which can
  6772.     alter the defaults  in RBBS-PC.DEF. Currently, that is the  extent to which
  6773.     RBBS-PC and SEAdog  can be used together.  The Fido message base  format is
  6774.     RBBS-PC CPC17.3                                                 Page 288
  6775.  
  6776.     not yet compatible with RBBS-PC.
  6777.  
  6778.     It is assumed that  you are reading this because you  are familiar with the
  6779.     RBBS-PC and  have at least  a minimum knowledge  of FidoNet and  FidoMail. 
  6780.     Another  assumption  is  that  you have  RBBS-PC  up  and  running on  your
  6781.     computer.    The easiest way to get all two programs working together is to
  6782.     have each running  from it's own subdirectory  on your hard disk.   That'll
  6783.     make maintenance of  RBBS-PC and SEAdog specific files  much easier. Follow
  6784.     the instructions in  the SEAdog manual to  install it, if that  hasn't been
  6785.     done yet. Once  installed all SEAdog files will be in a subdirectory called
  6786.     \MAIL.  Make  any required modifications to your CONFIG.SYS as suggested in
  6787.     the SEAdog manual.
  6788.  
  6789.     If your  using DOS 3.xx,  and don't use  the DOS SUBST command,  you should
  6790.     consider doing  so.  SUBST  is a  DOS external command  that allows  you to
  6791.     SUBSTitute  a drive  letter for  a complete  subdirectory name.  Using this
  6792.     command will make reprogramming RBBS-PC's configuration file easier.
  6793.  
  6794.     This appendix  assumes  that all  the SEAdog  Files are  in a  subdirectory
  6795.     called   C:\MAIL  and those for RBBS-PC are in a directory called  C:\RBBS.
  6796.     A  further assumption  that is  made is  that  a new  drive   "H:" will  be
  6797.     SUBSTitued for the  C:\RBBS subdirectory.
  6798.  
  6799.     Since SEAdog will  be in controls  most of the  time, the entire  operation
  6800.     should use SEAdog's  C:\MAIL  directory as the default.
  6801.  
  6802.     Now load  and run  CONFIG.EXE and reprogram  it's configuration  to reflect
  6803.     that all  RBBS's help, menu and system files are located on the "H:" drive.
  6804.     Remember the  SUBSTitute command?    You can use  it to replace  those long
  6805.     subdirectory names for  download and upload files.   SPECIAL ATTENTION must
  6806.     be paid to CONFIG.EXE's parameter 163. This parameter MUST be set to SYSTEM
  6807.     recycle. Not doing  so will cause RBBS-PC  to reload itself after  a caller
  6808.     has hung up or dropped carrier and not pass control back to SEAdog.
  6809.  
  6810.     The SEAdog manual  explains various commands  that must  be placed in  it's
  6811.     configuration  file called  CONFIG.DOG.   Among those that are considered a
  6812.     minimum, you should include at least the following....   
  6813.  
  6814.     banner   Please stby,  15 secs to load  RBBS-PC
  6815.     bbs      H:RBBS    *T *B
  6816.     event    B  all   4:30  5:00                    ;Local collections
  6817.     event    A  all   5:00  6:00                    ;National FidoMail Window
  6818.     event    C  all   6:00  7:00                    ;Local distributions
  6819.     event    S  all   7:00  4:00 Crash Dynamic BBS  ;CRASH mail if not in RBBS
  6820.     event   X10 all   7:00  7:05                    ;Reboot Computer
  6821.  
  6822.     The  banner  statement should be used so that human callers  know why there
  6823.     is  a delay  from the time  they connect  until the  time they  see RBBS-PC
  6824.     display it's  welcome message.   The  bbs  command tells SEAdog  what batch
  6825.     file  to run when passing control to RBBS.   *T and *B must be in the order
  6826.     presented above in for RBBS-PC to pickup  and use them correctly. They pass
  6827.     the time remaining to the next scheduled SEAdog event and the baud rate the
  6828.     caller  came on with.   Event statements  tell SEAdog how  to schedule it's
  6829.     time during  the day. The  above example conforms  to the FidoNet  national
  6830.     mails hours as of 26 July  1987 and allows crash mail and bbs  operation at
  6831.     all others.
  6832.      
  6833.     RBBS-PC CPC17.3                                                 Page 289
  6834.  
  6835.     Since  the SEAdog  *P  parameter in the   bbs  command isn't used, you must
  6836.     insure that the comm ports used for RBBS-PC and SEAdog are the same.
  6837.  
  6838.     One  of  the  more confusing  decisions  will  be how  to  setup  the modem
  6839.     switches.   Without going into it too deeply, keep in mind that SEAdog will
  6840.     be controlling the modem and passing an active modem on to RBBS-PC.
  6841.  
  6842.     Additionally, you could have your  SEAdog upload and download areas overlap
  6843.     those of RBBS-PC.
  6844.  
  6845.     When SEAdog determines that a non SEAdog or Fido system has called, it runs
  6846.     a second copy  of DOS, then  optionally loads and  runs RBBS-PC via  direct
  6847.     command or  from a batch  file, passing the  speed that  the comm port  was
  6848.     opened at, and the time remaining to the next scheduled SEAdog mailer event
  6849.     as in the following example:
  6850.  
  6851.     SEAdog calls RBBS-PC via a batch file called RBBS.BAT
  6852.  
  6853.        C>RBBS-PC 1 H:RBBS-PC.DEF /%1 /%2
  6854.          |       | |              |   |> Baud Rate
  6855.          |       | |              |
  6856.          |       | |              |
  6857.          |       | |              |> Limits the amount of time the user has |  
  6858.        | |  this session if and only  if the time is |         | |less then the
  6859.     time per session specified |||in CONFIG.EXE.
  6860.          |       | |> RBBS-PC default file filespec  (Optional)
  6861.          |          |> Node  number that  the specified  .DEF file applies  to.
  6862.     |(Optional)
  6863.          |> The name of the RBBS-PC program.
  6864.  
  6865.     With  a properly  configured RBBS.BAT batch  file, you  can retain  all the
  6866.     functions of  RBBS to include DOORS and dropping  to DOS via SysOp function
  6867.     #7. See the sample batch files at the end of this file.
  6868.  
  6869.     Experience has shown that the best way  to run RBBS-PC and SEAdog is with a
  6870.     batch file,  where SEAdog having  determined that  a non  mailer system  is
  6871.     waiting to use the  bbs will load and run a batch  file that controls RBBS-
  6872.     PC's operation  as opposed to SEAdog  calling RBBS-PC directly.   Two batch
  6873.     files are used, one to control SEAdog and one to control RBBS.
  6874.  
  6875.     A minimum batch file is suggested in the SEAdog manual. In addition to what
  6876.     ever you place in it, add the following statements to it.
  6877.  
  6878.       If Exist H:RCTTY.BAT Del H:RCTTY.BAT
  6879.  
  6880.     This line should be the first.   This statement simply helps ensure  proper
  6881.     operation of RBBS-PC if you use SYSOP function #7  or DOORS.
  6882.      If Errorlevel 10 Goto REBOOT:
  6883.  
  6884.     This line goes after the line that contains the call to the MAILER program.
  6885.  
  6886.     REBOOT:
  6887.      IPL
  6888.  
  6889.     This  line reboots  the computer  every morning  according to  event listed
  6890.     above. Due do  unexplained loss of memory when running  SEAdog and RBBS-PC,
  6891.     is  safe to program in a scheduled  rebooting of the computer to regain any
  6892.     RBBS-PC CPC17.3                                                 Page 290
  6893.  
  6894.     loss of memory. This line should be near the last and programmed around for
  6895.     normal operations
  6896.  
  6897.  
  6898.  
  6899.     **  Ex RBBS batch file  **
  6900.  
  6901.       Echo Off
  6902.     :LOOP
  6903.       C:
  6904.       Cd \MAIL
  6905.       If Not Exist H:RCTTY.BAT Goto LOCAL
  6906.       H:WATCHDG1 OFF
  6907.       Del H:RCTTY.BAT
  6908.       H:TESTRBBS 1 H:RBBS-PC.DEF
  6909.       Goto REMOTE
  6910.  
  6911.     :LOCAL
  6912.       H:TESTRBBS 1 H:RBBS-PC.DEF /%1 /%2
  6913.  
  6914.     :REMOTE
  6915.       If Not Exist H:RCTTY.BAT GOTO EXIT
  6916.       H:WATCHDG1 ON
  6917.       H:RCTTY.BAT
  6918.  
  6919.     :EXIT
  6920.  
  6921.     As mentioned above,  this doc  file isn't intended  to make you  completely
  6922.     knowledgeable on how to interface RBBS-PC and SEAdog, only get you started.
  6923.     How you set up your RBBS-PC and SEAdog batch files is limited only by  your
  6924.     ability and imagination.   After gaining more experience,  you'll find that
  6925.     you can automate a lot of the  RBBS-PC and SEAdog maintenance.
  6926.  
  6927.     The  above  reflects the  creative  things  that  Kim Wells,  Fido  Address
  6928.     109/652, has done  with interfacing RBBS-PC with the  Fido net-mail system.
  6929.     If you need  further help, contact Kim Wells's RBBS-PC via his data line at
  6930.     (301) 599-7651/7652.
  6931.     RBBS-PC CPC17.3                                                 Page 291
  6932.  
  6933.     APPENDIX W -- DOS Limitation on Running Programs Remotely
  6934.     ---------------------------------------------------------
  6935.     When accessing your PC via a communications port, the carrier detect signal
  6936.     tells the PC that you are on-line.  DOS's major limitation is that there is
  6937.     no  way to  tell DOS  to  monitor carrier  detect automatically    when the
  6938.     standard input and output  is transferred to a communication port (i.e. via
  6939.     the CTTY command).    RBBS-PC  makes sure that  the carrier is  not dropped
  6940.     when a user exits to DOS either via the "DOORS"  option or using the remote
  6941.     SYSOP function 7.  However, it is the  SYSOP's  responsibility   to  insure
  6942.     that   whatever programs are  invoked after leaving  RBBS-PC  perform   all
  6943.     the  necessary  functions  to maintain the communications session and, when
  6944.     exiting to return to RBBS-PC, that the carrier  is  "NOT"  dropped.
  6945.  
  6946.     Most application  programs (i.e.  databases, etc.) are  not designed  to be
  6947.     controlled  by users  accessing  them  from a  communications  port.   This
  6948.     problem is solved when a function is invoked that:
  6949.  
  6950.     1. Checks   to  see if  the standard input and  output console  have   been
  6951.     assigned to an auxiliary console such as a communication port.
  6952.     2. If  condition 1 is true, checks  to see if the carrier  detect signal is
  6953.     lost  by  intercepting  each  interrupt from  the  communication  port  the
  6954.     auxiliary console has been assigned to.
  6955.     3. If BOTH conditions 1  and 2 are true, this  function would cause DOS  to
  6956.     return to the standard screen and keyboard  for its operations AND continue
  6957.     processing  whatever batch file that had been executing.
  6958.  
  6959.     Such a function (or device driver) would provide a "fail safe" feature that
  6960.     would  allow users to exit  RBBS-PC  to   use  whatever  other software the
  6961.     SYSOP  chose to make   available   (i.e.  relational  databases for complex
  6962.     inquiries  --  bibliographic,    sports,    games,     etc.).    For  those
  6963.     anticipating using  RBBS-PC's "doors"  or  exiting to  DOS when  you are  a
  6964.     remote SYSOP, you are strongly  encouraged to consider using the "watchdog"
  6965.     utility program  available on many  bulletin board systems under  such file
  6966.     names  as  WATCHDOG.COM,  WATCHDOG.ASM,  WATCHDOG.DOC,  WATCHDOG.EXE   that
  6967.     monitors the communication port for you and  reboots your system if carrier
  6968.     drops.  If you don't use  a program like WATCHDOG and accidentally hang  up
  6969.     while in a "door" or  in DOS, you system will  remain "hung" until you  can
  6970.     manually reboot it.
  6971.  
  6972.     Programs that utilize the PC's built in video memory (such as the IBM BASIC
  6973.     interpreter or  WordStar when it writes to the 25th line) need to have such
  6974.     I/O redirected in a special way to  a remote users terminal.  Additionally,
  6975.     if the I/O  is redirected to the  communications port, the terminal  on the
  6976.     other  end must have  a "cursor" that  can be sent  the appropriate command
  6977.     sequence  to move  it around  on the  remote users  terminal as  necessary.
  6978.     Without this capability, programs  made  available  through "doors" must be
  6979.     line-at-a-time  programs.   This  of  course  excludes   programs  such  as
  6980.     WordStar, Lotus/123 etc.
  6981.  
  6982.     If you  aren't technically  inclined and want  to use  RBBS-PC "doors",   I
  6983.     suggest you consider only using  programs that have been explicitly written
  6984.     to overcome the above two  DOS limitations.  Applications that don't  write
  6985.     directly to the  video memory of the PC  can be used safely as  a "door" as
  6986.     long as a "watchdog" type program is also used.
  6987.     RBBS-PC CPC17.3                                                 Page 292
  6988.  
  6989.     APPENDIX X -- Using RBBS-PC with DoubleDOS
  6990.     ------------------------------------------
  6991.     Two nodes of RBBS-PC can be operated  on one 640K PC/XT/AT under DoubleDOS.
  6992.     First, make  sure DoubleDOS and RBBS-PC, individually, operate correctly on
  6993.     your computer.   Then, the DDCONFIG.SYS  file can be  changed to facilitate
  6994.     operation of RBBS.  SoftLogic Solutions, the DoubleDOS supplier, operates a
  6995.     customer  service BBS  at  603-644-5556  and can  often  help with  special
  6996.     problems.  (An example: DoubleDos  version 4.0 must be modified with  their
  6997.     special patch in order to operate on machines using EEMS  memory controlled
  6998.     by AST's REMM.SYS driver.)
  6999.  
  7000.     DoubleDOS even  has a special interrupt  that RBBS-PC calls to  "give back"
  7001.     unused time to the foreground  job when it really doesn't need the time, so
  7002.     that during periods of low communications activity, the foreground job runs
  7003.     at essentially 100% of the machine's speed.  GIVEBACK is incorporated  into
  7004.     releases CPC16-1A (and greater) of RBBS-PC.
  7005.  
  7006.     The  DOS (3.1  or  greater) utility  SHARE should  be  run before  starting
  7007.     DoubleDOS to provide for file locking.                                     
  7008.  
  7009.  
  7010.     RBBS-PC,  due to  the code  generated  by the  BASIC  compiler, requires  a
  7011.     considerable amount of memory.   If insufficient memory is available, RBBS-
  7012.     PC may fail to load, may report a string corrupt error, may hang, or, worst
  7013.     of all, may  appear to start and  operate normally only  to fail later.   A
  7014.     (partial) test of whether enough memory is available is to note the DS free
  7015.     space in  the SYSOP initial menu when operating under DoubleDOS compared to
  7016.     naked DOS; any reduction  in this reported free  space may indicate  memory
  7017.     shortage.  The  best approach, unfortunately, is to start  with more memory
  7018.     than necessary, get  your system going reliably,  and then do a  crude cut-
  7019.     and-try process of  reducing memory until problems first  appear; then back
  7020.     off up to an again-reliable memory setting.
  7021.                                                                               
  7022.  
  7023.     Terminate-and-stay-resident programs  (e.g. ramdisks, print  spoolers, Side
  7024.     Kick) will  reduce the memory  available to RBBS-PC.   Buffers specified in
  7025.     the CONFIG.SYS file also reduce available memory.  Some versions of DOS are
  7026.     smaller than others; every little bit of memory helps.  Large  programs may
  7027.     not run in the  second DoubleDos memory section  after starting RBBS-PC  in
  7028.     the first.
  7029.  
  7030.     Because of these memory considerations, SHELLing to DOORS and external file
  7031.     transfer protocols will  not be possible.  If these features of RBBS-PC are
  7032.     used, they will need to be invoked by EXITing to them.
  7033.  
  7034.     The BASIC compiler  version used determines the amount  of memory required.
  7035.     Two  nodes  of  RBBS(version  16.1A),  have  been demonstrated  to  operate
  7036.     successfully under DoubleDOS when compiled  with Quick Basic 1.02 and RBBS-
  7037.     PC's  memory requirements  reduced (see  Appendix Y).   When  compiled with
  7038.     Quick  Basic 2.x, 3.x or 4.x,  two nodes will not  fit under DoubleDOS.  To
  7039.     save memory,  expert SYSOPS  who are adept  at compiling/linking  their own
  7040.     custom versions of RBBS-PC, can selectively (and at  their own risk) delete
  7041.     from the  source code  sections that they  do not  require.   Such personal
  7042.     versions should not be  circulated to others.   If this  is done, the  more
  7043.     recent compilers may produce code compact enough for 2 nodes.
  7044.  
  7045.     DoubleDOS  has several  parameters  that  can  improve  RBBS-PC  operation.
  7046.     RBBS-PC CPC17.3                                                 Page 293
  7047.  
  7048.     Sample:   
  7049.          menu = short                    ;the long menu requires more memory
  7050.          display = text                  ;to not reserve graphics buffer
  7051.          print driver = direct           ;use direct drive, no buffer reserved
  7052.          bottom size = half              ;split memory for two RBBS nodes
  7053.          priority = equal                ;both nodes run at same speed
  7054.  
  7055.     The next items may be desirable to provide protection, in case  any program
  7056.     in the other memory section should try to use a COM port assigned to  RBBS-
  7057.     PC.
  7058.            com1 = top                               ;obviously  these two  port
  7059.     assignments
  7060.            com2 = bottom                   ;could be reversed
  7061.  
  7062.     Possible circumstances that might warrant this protection:
  7063.  
  7064.     1.SYSOP makes a  COM port assignment error in  the .DEF file for  the other
  7065.     node.
  7066.     2.one node is  temporarily shut down by  the SYSOP to run  another program.
  7067.     Some  programs (e.g.  some versions  of  BASIC) initialize  both COM  ports
  7068.     (clobbering RBBS-PC) when started.
  7069.  
  7070.     Warning:   this protection is known to be  unusable on some machines (e.g.,
  7071.     works fine on IBM-PC  8088, does not work on AST Premium 286 or TATUNG 4000
  7072.     AT).
  7073.  
  7074.     It is  convenient (and safer, to prevent keystroke errors) to automate your
  7075.     startup.  In your  AUTOEXEC.BAT file you should  initiate DOUBLEDOS as  the
  7076.     last item.   It will then start,  using the DDCONFIG.SYS file  for detailed
  7077.     RBBS-PC  instructions.    Sample  DDCONFIG.SYS  contents  (this  will  vary
  7078.     according to your exact setup):
  7079.  
  7080.          top program = prompt TOP $p$g
  7081.          top program = go
  7082.          bottom program = prompt BOT $p$g
  7083.          bottom program = go
  7084.  
  7085.     Note that the  change in prompt allows  a single batch file,  GO.BAT, which
  7086.     has the  single statement  of GO%PROMPT%,  to execute  the correct node  of
  7087.     RBBS-PC in either node.  Nothing is more embarrassing than  to start a node
  7088.     that is already operating.  All that need be typed is GO<RETURN> and either
  7089.     GOTOP or GOBOT  will be executed.   (Actually the  GO batch file  execution
  7090.     looks  like "TOP  C:\DDOS>GOTOP $p$g".   The $p$g  is ignored.)   GOTOP.BAT
  7091.     might then look like this:
  7092.         C:
  7093.         CD\RBBS
  7094.         RBBS1    
  7095.  
  7096.     RBBS1.BAT would  then be  the  first node  RBBS.BAT  as discussed  in  this
  7097.     document.  Similarly, GOBOT would start RBBS2.BAT for the second node.
  7098.  
  7099.     Stan Staten, RBBS-PC number (301) 670-9621
  7100.     Kurt Riegel, RBBS-PC number (202) 524-1837)
  7101.     RBBS-PC CPC17.3                                                 Page 294
  7102.  
  7103.     APPENDIX Y -- Recompiling RBBS-PC to Reduce Memory Required
  7104.     -----------------------------------------------------------
  7105.     RBBS-PC has always sought to live up to CPCUG's Bill of Rights for Software
  7106.     Users which maintains, among  other things, that  each software user has  a
  7107.     right to  "integrate software products  into his or her  system environment
  7108.     without undue constraints."   For this reason, RBBS-PC  has chosen to be as
  7109.     configurable as possible through the program CONFIG with over 200 different
  7110.     parameters.   Additionally, RBBS-PC  has always been  distributed with  the
  7111.     complete BASIC source code with each new release.
  7112.  
  7113.     It  is this  kind of  leadership (by  example) and recognition  of software
  7114.     users rights that makes RBBS-PC unique in the personal computer industry.
  7115.  
  7116.     RBBS-PC is continually being enhanced with new features.   As new functions
  7117.     and   capabilities   are   added,   RBBS-PC's   memory   requirements  grow
  7118.     correspondingly.   In order to continue RBBS-PC's growth and still meet the
  7119.     memory constraints  imposed on SYSOPs with only 640K  of memory who wish to
  7120.     run two copies  of RBBS-PC,   RBBS-PC source code  can be "mite-sized"  and
  7121.     recompiled  to fit  within whatever  memory constraints  a SYSOP  must deal
  7122.     with.
  7123.  
  7124.     SYSOPs can apply  .MRG files against the unmodified RBBS-PC source code and
  7125.     elect to eliminate RBBS-PC features  not being used and eliminate redundant
  7126.     code (typically the  BASIC source  code that  replicates assembly  language
  7127.     routines). RBBS-PC  has a companion  "mite-size" set of files  contained in
  7128.     the file RBBS-LIT.ZIP.
  7129.  
  7130.     In order to recompile and  "mite-size" RBBS-PC, within the same environment
  7131.     in which the SYSOP has successfully recompiled the current release of RBBS-
  7132.     PC, the SYSOP must also have the following files:
  7133.  
  7134.     BLED.EXE    --      The Batch  Line EDitor by  Ken Goosens (version  2.2 or
  7135.                         greater).
  7136.  
  7137.     MAKELIT.BAT  --     The  BATch file that  invokes BLED.EXE and  applies the
  7138.                         necessary  files to  the  unmodified source  code. This
  7139.                         file  should be modified  by putting in  the drive/path
  7140.                         for the  original code (the  first parm to BLED).   The
  7141.                         lines to be modified all  begin with "*$", which is the
  7142.                         default for a BLED  metacommand.   The lines  beginning
  7143.                         with "*  " are  BLED comments, which  are ignored  in a
  7144.                         merge.
  7145.  
  7146.     SETLIT.INC   --     The  file through which  the SYSOP selects  the RBBS-PC
  7147.                         features that are not needed.  The directions for doing
  7148.                         this  are  contained  within this  file.  A  feature is
  7149.                         typically  removed   by  setting  a   BLED  metacommand
  7150.                         variable to  "OFF", e.g. BAUD450 to "OFF"  to save code
  7151.                         by excluding the  RBBS-PC feature that allows  300 baud
  7152.                         uses to increase their baud  rate to 450 while on-line.
  7153.                         To  exclude RBBS-PC  LIBRARY subsystem  set LIBRARY  to
  7154.                         "OFF". 
  7155.  
  7156.     RBBSLIT.MRG  --     The fundamental BLED merge for RBBS-PC.BAS
  7157.     SUBxLIT.MRG  --     The fundamental BLED merge for various RBBSSUB's.  Each
  7158.                         reads  in (includes)  the file  SETLIT.INC  to set  the
  7159.                         metavariables used by BLED.  BLED then uses the  values
  7160.     RBBS-PC CPC17.3                                                 Page 295
  7161.  
  7162.                         to determines what merges to process.
  7163.  
  7164.     *.LIT        --     .MRG files that eliminate RBBS-PC features.
  7165.  
  7166.     The procedure for "mite-size"ing RBBS-PC is as follows:
  7167.  
  7168.     1.   Select the RBBS-PC features not required for your needs and modify the
  7169.     file SETLIT.INC.
  7170.  
  7171.     2.  Change MAKELIT.BAT to reflect your PC's subdirectories.
  7172.  
  7173.     3.  Make sure RBBSSUB1.BAS is in the subdirectory you will run in.
  7174.  
  7175.     4.  Execute the MAKELIT.BAT file.  Do not continue if errors are found.
  7176.  
  7177.     5.   Recompile the "mite-sized" RBBS-PC source code.  Remember, this "mite-
  7178.     sized" source code and the RBBS-PC.EXE file created from it my only be used
  7179.     by you and not distributed to others. 
  7180.  
  7181.          Some comments on the various Microsoft QuickBASIC compilers:
  7182.               QuickBASIC Version 1.02 produces the smallest code.
  7183.               QuickBASIC Version 2.01 produces the next smallest code.
  7184.               QuickBASIC Version 3.00 produces the largest code.
  7185.               QuickBASIC Version 4.5 produces code smaller than
  7186.                     3.00) but is not as reliable
  7187.  
  7188.          Never LINK with the /E option.
  7189.  
  7190.     6.  Re-run CONFIG and disable the RBBS-PC features that were deleted in the
  7191.     "mite-sized" version that was  created in steps 1 through 5  (i.e. take out
  7192.     the "A" command if questionnaires were disabled). 
  7193.  
  7194.     Please realize  that there  is no way  that the "mite-sized"  variations of
  7195.     RBBS-PC can  be supported.  The  many different PC configurations  plus the
  7196.     multitude  of  combinations   of  RBBS-PC  features  are  what   make  this
  7197.     impossible.  However, we will do our best.  
  7198.  
  7199.     Please report any problems with BLED or the *.LIT merges to Ken Goosens via
  7200.     his RBBS-PC data number -- (703) 978-6360.
  7201.     RBBS-PC CPC17.3                                                 Page 296
  7202.  
  7203.     APPENDIX Z -- The MICROCOM AX\9624c RBBS-PC Switch Settings
  7204.     -----------------------------------------------------------
  7205.     First set the Microcom AX\9624c switch settings as follows:
  7206.  
  7207.          CONFIGURATION SWITCH SETTINGS FOR THE MICROCOM AX\9624c MODEM
  7208.          =============================================================
  7209.  
  7210.                      1   2   3   4   5   6   7   8   9   10
  7211.                      --------------------------------------
  7212.     Front Switch -   U   D   D   D   D   U   U   D   U   U
  7213.  
  7214.     Rear Switch  -   U   U   D   U   D   D   D   D   -   -
  7215.  
  7216.     Change  CONFIG  parameter 228 to open the modem initially  for  9600  baud.
  7217.     Then  go  to  CONFIG parameter 225 and change some  of  the  default  Hayes
  7218.     commands.
  7219.  
  7220.     Within  parameter  225,  you  will  want  to  change  the  second  command,
  7221.     "Initialize  the modem."  If you want RBBS-PC to answer on one ring set  it
  7222.     to:
  7223.  
  7224.                  ATM0Q1S2=255S10=45E0S0=254&D2
  7225.  
  7226.     To answer on zero rings, set it to:
  7227.  
  7228.                  ATM0Q1S2=255S10=15E0S0=0Q0X1&D3
  7229.  
  7230.     Please  note  that these change the default Hayes  commands  supplied  with
  7231.     RBBS-PC  for S10.  Also note that an &D command was added to the  end.   If
  7232.     you  are  set  up to answer on ring zero and  your  modem  sometimes  stops
  7233.     answering  for no reason that you can isolate, alter the S10 value to  "45"
  7234.     and  &D2.  You may also want to activate CONFIG parameter 236 to "wake  up"
  7235.     the modem.
  7236.  
  7237.     These  configurations will allow RBBS to establish a MNP reliable  or  non-
  7238.     reliable connection from 300 to 9600 BAUD using the AX\9624c's MNP class  6
  7239.     Universal Link Negotiation capability.
  7240.     RBBS-PC CPC17.3                                                 Page 297
  7241.  
  7242.     APPENDIX AA -- The Leading Edge Series L 2400B Modem
  7243.     ----------------------------------------------------
  7244.     Gregg Snyder, SYSOP of "The Elusive Diamond" - DGS (Alpha) System, and  Jim
  7245.     Thompson of "The Break" -DGS (Delta) System (Data:  703-680-9269) are to be
  7246.     credited   with documenting  how to  get the  Leading Edge  Series L  2400B
  7247.     modem
  7248.     to  run with RBBS-PC ("all modems are Hayes-compatable, but some  are  less
  7249.     Hayes-compatable than others").
  7250.  
  7251.     First  you  must set CONFIG parameter 228 to open the modem at  1200  baud.
  7252.     Next go to CONFIG parameter 225 and set the modem commands as follows:
  7253.  
  7254.     1. Reset the modem                : ATB1H0L1M0C1
  7255.  
  7256.     2. Initialize the modem           : ATH0B1L1M0Q1E0S0=254
  7257.        Note: End item 2 with:
  7258.          S0=1Q0X1 if answer on 0 rings
  7259.          S0=254 if answer on >0 rings (no ring-back)
  7260.          S0=255 if answer on >0 rings (with ring-back)
  7261.  
  7262.     3. Count the number of rings      : ATS1?
  7263.  
  7264.     4. Answer the phone               : ATQ0X1V1A
  7265.  
  7266.     5. Take the phone off the hook    : ATH1L1M0
  7267.  
  7268.     6. Clear the modem's firmware     : AT&F
  7269.  
  7270.     7. Initialize modem's firmware    : AT&C1&D3B1E0V1M0S0=0&T5
  7271.        Note: End item 7 with:
  7272.          Q1 if item 2 ends with S0=255
  7273.  
  7274.     8. Write to modem's firmware      : &W
  7275.  
  7276.     These  settings  have  been tested for more than a  year  by  Jim  Thompson
  7277.     beginning with RBBS-PC CPC15-1C.
  7278.  
  7279.     ================= END OF RBBS-PC CPC17-3 DOCUMENTATION ==================