home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / RDS_V201.ZIP / RDSDOCEN.DOC < prev    next >
Encoding:
Text File  |  1992-08-22  |  127.7 KB  |  2,781 lines

  1. ╔══════════════════════════════            ┌─────────────────┐
  2. ║ RDS       Remote Dos Shell               │    D.I.S.P.     │────┐
  3. ║           For Bulletin Boards            │                 │░░░░│
  4. ╟──────────────────────────────            │                 │░░░░│
  5. ║ (c) 1991  Robert W.van Hoeven            │ Dutch           │░░░░│
  6. ╟──────────────────────────────            │   Independent   │░░░░│
  7. ║ Release : 2.01                           │     ShareWare   │░░░░│
  8. ║ Rel.Date: 22th August 1992               │       Programmer│░░░░│
  9. ╠══════════════════════════════            └─────────────────┘░░░░│
  10. ║                                          |    │░░░░░░░░░░░░░░░░░│
  11. ║ │ RDS.EXE                                |    └─────────────────┘
  12. ║ │ RDS.OVR                                |       ┌─────┐        |
  13. ║ │ RDS.CTL                                |       │░░░░░│        |
  14. ║ │                                        |       └──┬──┘        |
  15. ║ │ Lines starting with '│' are            |     ┌────┴────┐      |
  16. ║ │ changes to release 1.31 !!             ------││││││ ═══│-------
  17. ║                                                └─────────┘
  18. ╠═══════════════════════════════
  19. ║ Address: Robert W. van Hoeven
  20. ║          PO. Box 131
  21. ║          1170 AC  Badhoevedorp
  22. ║          Nederland / Holland
  23. ╚═══════════════════════════════
  24.  
  25.  ┌───────┬─────────────────────────────────────────────────────────────┐
  26.  │   0   │ Table of contents                                           │
  27.  └───────┴─────────────────────────────────────────────────────────────┘
  28.  
  29.  1 ---- General information
  30.   1.1   Copyrights and License Agreement
  31.   1.2   Newer versions and contacting the author
  32.  
  33.  2 ---- Package description and requirements
  34.   2.1   Preface
  35.   2.2   Requirements
  36.   2.3   Included files
  37.   2.4   Introduction
  38.   2.5   Specifications
  39.  
  40.  3 ---- Installation description
  41.   3.1   Installation
  42.   3.2   The overlay mechanism
  43.   3.3   RDS.CTL
  44.   3.4   Available commands
  45.   3.5   Security
  46.   3.6   Macro's, expansion and command-stacking
  47.   3.7   ALIAS's
  48.   3.8   Help file format
  49.  
  50.  4 ---- Runtime information
  51.   4.1   While inside the RDS shell
  52.   4.2   Keyboard commands at the local side
  53.   4.3   LOG file
  54.   4.4   Errors
  55.   4.5   Specialized command-line options
  56.  
  57.  5 ---- Version information and credits
  58.   5.1   The BETA-team
  59.   5.2   Credits
  60.   5.3   Version history
  61.   5.4   Copyright, Trademarks
  62.  
  63.  ┌───────┬─────────────────────────────────────────────────────────────┐
  64.  │   1   │ General information                                         │
  65.  └───────┴─────────────────────────────────────────────────────────────┘
  66.  
  67.  1.1 Copyrights and License Agreement
  68.  ────────────────────────────────────
  69.  
  70.  - Users of the RDS-package must accept this disclaimer of warranty:
  71.  
  72.  - The  RDS-package  is  supplied  as  is.   The  author  disclaims  all
  73.    warranties, expressed or implied, including, without limitation,  the
  74.    warranties of merchantability  and of fitness  for any purpose.   The
  75.    author assumes  no liability  for damages,  direct or  consequential,
  76.    which may result from the use of the RDS-package;
  77.  
  78.  - The  RDS-package  is  a  "shareware  program"  and is provided at  no
  79.    charge to the user for evaluation.   Feel free to share it with  your
  80.    friends,  but  please  do  not  give  it  away  altered or as part of
  81.    another  system.   The  essence  of  "user-supported"  software is to
  82.    provide personal  computer users  with quality  software without high
  83.    prices, and yet to provide  incentive for programmers to continue  to
  84.    develop new products.
  85.  
  86.  - If  you find  this program  useful and  find that  you are  using and
  87.    continue the  use of  the RDS-package  after a  30 days trial period,
  88.    you must register the RDS-package as described below;
  89.  
  90.  - Non-commercial can get a license for the usage up to this release  of
  91.    the RDS-package for  a small amount  of money. Look  into the details
  92.    in  REGISTER.RDS.  Previous  registered  users  will  receive  a  big
  93.    reduction to upgrade to the  newer versions. These users should  look
  94.    into the details in UPGRADE.RDS.   For Non-commercial users there  is
  95.    a POSSIBILITY to submit to one of the special contracts as  explained
  96.    in the file REGISTER.RDS.
  97.  
  98.  - Commercial usage of  RDS will cost somewhat  more. Also, a so  called
  99.    'closed' Bulletin  Board System  (a system  where the  user must  pay
  100.    direct to the  SysOp to get  full access) is  has to pay  more than a
  101.    Non-commercial  user.  Both  types  of  users  should  look  into the
  102.    details in REGISTER.RDS;
  103.  
  104.  - The registration of the RDS-package will license ONE copy for use  on
  105.    any computer at any  one time, as long  as the usage confirms  to the
  106.    type of registration you have done (so NON-commercial usage when  you
  107.    have a non-commercial license);
  108.  
  109.  - Anyone  distributing  the  RDS-package  for any kind of remuneration
  110.    must  first   contact  the   Author   at   the  address   above   for
  111.    authorization.
  112.  
  113.  - You are  encouraged  to  pass a copy   of the RDS-package  along   to
  114.    your friends  for  evaluation.   Please  encourage  them to  register
  115.    their copy if they find that they can use it;
  116.  
  117.  - Support  on  RDS,  when  used  in  a  non-commercial environment,  is
  118.    available  by  means  of  written  letters  or by entering the inter-
  119.    national echomail area DISP;
  120.  
  121.  - Problems and suggestions can be entered in the FidoNet <tm>  Echomail
  122.    conference <tm> called DISP (international). Entering this echo  does
  123.    not  exclude  you  of  the  duty  to register the RDS-package, though
  124.    users who evaluate the product can enter the echo for questions;
  125.  
  126.  - The  RDS-package, all  programs, the  documentation and support-files
  127.    is  copyrighted  1990,92  by  Robert  W.  van  Hoeven,  PO.  Box 131,
  128.    Badhoevedorp 1170AC, Holland. All  rights are reserved. You  may copy
  129.    this  package  for  backup  purposes.  Also  you  may  copy and share
  130.    unmodified copies of the whole package, providing that the  copyright
  131.    notice    is    reproduced    and    included    on    all    copies.
  132.    Excluded from this statement  are the support-files written  by other
  133.    authors.  Please  refer  to  the  documentation of these programs for
  134.    copyrights and license agreements;
  135.  
  136.  - It  is  forbidden  to  modify,  adapt,  translate, reverse  engineer,
  137.    decompile  and/or  disassemble  the  software  in  the   RDS-package.
  138.    Patching the medium at  places that carry the  software is seen as  a
  139.    program change and is also forbidden. It is forbidden to create a  so
  140.    called 'bypass' to skip the original introduction screens and  delay.
  141.    Also it is forbidden  to use such a  'bypass' unless supplied by  the
  142.    author (Robert W. van Hoeven) himself;
  143.  
  144.  - Performing  any  of  the  illegal  actions as stated in the previous
  145.    lines,  is  a  theft  and  no  fair  play  to  the  author  and, more
  146.    important, to the registered users;
  147.  
  148.  - Bulletin Board  Systems that distribute  the RDS package  can convert
  149.    the WHOLE package  to any archive-system  they like but  all original
  150.    files must  be included  in the  new archive.  The RDS-package on the
  151.    Bulletin Board  can contain  at the  most 2  extra files. These files
  152.    can only be  a commercial for  that Bulletin Board  and/or validation
  153.    data that is presented  as a service to  all users and shall  have no
  154.    other functions;
  155.  
  156.  - After  the normal  trial period  of 30  days, you  must register  the
  157.    soft- ware (see REGISTER.RDS) or you must remove it from your PC;
  158.  
  159.  - Comments,  suggestions  and  bug  reports  are  welcome  and will  be
  160.    answered as soon I have the time  to do so. You can send me  a letter
  161.    of leave  a NetMail  <tm> message  named to  Rob Van.hoeven (mind the
  162.    point)  on  node  2:512/100  (RA  Support, Monster, Holland, SysOp is
  163.    Reinier de Groot).  When you want to send me normal mail, address  it
  164.    to:   Robert  W.  van  Hoeven,  PO.  Box  131,  1171 AC Badhoevedorp,
  165.    Holland;  Also  you  can  enter  messages  in  the  FidoNet <tm> DISP
  166.    Echomail <tm> area;
  167.  
  168.  
  169.  1.2 Newer versions and contacting the author
  170.  ───────────────────────────────────────────────────────────────────────
  171.   The newest  version of    RDS is  always  available   at the   DISP-HQ
  172.   on node 2:512/100.  RDS   is  also  distributed   thru  a  number   of
  173.   DISP support  nodes.    There are   three ways   of obtaining    newer
  174.   versions of RDS:
  175.  
  176.  
  177.  - Logging on at DISP-HQ or a support node
  178.    Look into the file SUPPORT.RDS for a full list of support nodes;
  179.  
  180.  - Logging on to a SDS node
  181.    RDS is distributed thru SDS/SDN, but only big minors (x.10, x.20  and
  182.    so on) and majors (14.01, 15.01  and so on) are submitted to  the SDS
  183.    distribution point in Holland;
  184.  
  185.  - Logging on to your own BBS;
  186.    Chances  are,  that  you  will  find  an older version (international
  187.    users) because it will take some time for the new version to  'bleed'
  188.    thru the net;
  189.  
  190.  - Update service;
  191.    You can enter a special update service (read REGISTER.RDS).
  192.  
  193.  
  194.  If you think you have found problems in RDS, or in any other case,  you
  195.  wish to contact the author, you can send me:
  196.  
  197.  - A letter to the address you can find in the header of this file;
  198.  
  199.  -  A  NetMail  <tm>  message  to  Rob Van.hoeven (please mind the point
  200.    between Van and Hoeven) at 2:512/100 or (better) 2:512/100.5;
  201.  
  202.  - A Message in the FidoNet <tm> DISP echomail <tm> area;
  203.  
  204.  ┌───────┬─────────────────────────────────────────────────────────────┐
  205.  │   2   │ Package description and requirements                        │
  206.  └───────┴─────────────────────────────────────────────────────────────┘
  207.  
  208.  2.1 Preface
  209.  ────────────────────────────────────────────────────────────────────────
  210.  Please notice the following:
  211.  
  212.  RDS  is  a  ShareWare  product  in  every  right  way,  this means this
  213.  software is not  crippled in any  way. There are  only some changes  to
  214.  the registered version  but the only  have to do  with cosmetic changes
  215.  (no delays, your (BBS) name in the start-up header and so on);
  216.  
  217.  
  218.  2.2 Requirements
  219.  ────────────────────────────────────────────────────────────────────────
  220.  RDS requires:      - PC XT/AT/386
  221.  
  222.                     - At least 180K free memory under the BBS;
  223.  
  224.                     - DOS 3.xx or higher;
  225.  
  226.                     - HDU optional
  227.  
  228.                     - A full functional BBS with an exit to doors.   RDS
  229.                       'knows'  specifically  about  Remote  Access <tm>,
  230.                       QuickBBS  and  Maximus  and  SuperBBS,  but can be
  231.                       executed  under  any  BBS  that  creates the files
  232.                       EXITINFO.BBS and DORINFO1.DEF.  Even when the  BBS
  233.                       does  not  create  such  files,  you  could  use a
  234.                       conversion tool that  creates these files  for you
  235.                       (look into the BBS-area's on the bigger boards);
  236.  
  237.  
  238.  2.3 Included files
  239.  ────────────────────────────────────────────────────────────────────────
  240.  The package includes : RDS.EXE         The main program
  241.                         RDS.OVR         The overlay-file for RDS.EXE
  242.                         RDS.CTL         A sample RDS.CTL file
  243.                         RDS.ANS         A sample file for KILLNICE
  244.                         RDS.HLP         Help file
  245.                         RDSDOCEN.DOC    This documentation
  246.  
  247.  
  248.  
  249.  2.4 Introduction
  250.  ────────────────────────────────────────────────────────────────────────
  251.  Many SysOp's struggle with specialized doors to get REMOTE (and  local)
  252.  access  to  DOS  functions.  Most  of  these  SysOp's will only use the
  253.  normal DOS-commands  when working  in such  a door  when they  use this
  254.  door as a maintenance door for themselves (when being remote) or  their
  255.  Co-Sysop  (this  'creature'  or  'creatures'  are  almost always remote
  256.  <grin>). To give  remote access to  yourself or the  Co-Sysop(s), means
  257.  you  have  to  implement  special  functions/doors. Some of these doors
  258.  give you the access to  normal programs (even when they  normally could
  259.  not work remote) but  most of the time,  this is not what  you (or your
  260.  'Co') needs.
  261.  
  262.  Also there are some major drawbacks to any type of 'real-dos' doors:
  263.  
  264.  - Some  of  these  doors  (Gateway  alike doors, batch-files with  CTTY
  265.    commands  and  so  on)  can  NOT  access most of the normal programs,
  266.    because these programs do direct  screen access (not to be  displayed
  267.    while working remote) and keyboard access, not to be captured from  a
  268.    re- mote session,  thus forcing a  'hangup' (you can't  'see' a thing
  269.    and you can't enter a key even when you know the combinations).  This
  270.    problem is  'captured' with  a carrier-watchdog,  thus forcing  a re-
  271.    boot when you hang-up the phone and also taking all other users  down
  272.    with you (when  running multiple lines  in one machine)  or forcing a
  273.    hangup  (some  combinations  of  multitasking  software  and a reboot
  274.    cause hangups);
  275.  
  276.  - Some doors  can access normal  programs that are  not covered by  the
  277.    previously mentioned doors.  But in multitasking  environments, these
  278.    functions are dangerous and can  (still) cause hangups. Also the  re-
  279.    mote  site  should  use  a  'doorway-mode'  in the software otherwise
  280.    serious damage  to the  fingers (and  brains for  that matter)  could
  281.    occur. Most of the supplied features are never needed and should  (in
  282.    fact) be kept away from your 'Co';
  283.  
  284.  - Normal  DOS-doors  don't  have  BBS-specific  functions  like   those
  285.    implemented for Remote Access <tm>;
  286.  
  287.  If you need special programs to run remote (not DOS-commands, but  real
  288.  programs,  some  DOS-commands  are  real  programs for that matter, but
  289.  still) and these programs have  nothing to do with DOS-commands  and/or
  290.  some specialized BBS-features, RDS will  not be your taste of  door. If
  291.  you want a  FULLY secured access  to most of  the normal DOS-  commands
  292.  (please read the chapter about security) AND something more, RDS  could
  293.  be worth trying.
  294.  
  295.  Up from RDS  2.01, the protection  schemes are that  good that you  can
  296.  even allow you NORMAL users to a RDS dos-shell !
  297.  
  298.  
  299.  2.5 Specifications
  300.  ────────────────────────────────────────────────────────────────────────
  301.  Those who took the  time to read the  introduction will have a  general
  302.  picture of RDS. A brief summary of the functions:
  303.  
  304.  RDS can:
  305.  
  306.  - Give access  to most DOS-commands  without entering DOS  itself, thus
  307.    creating  a  fully  controlled  (carrier!),  secured  (read  on!) and
  308.    compatible DOS-environment;
  309.  
  310.  - Give all the normal DOS-commands  (DIR, DEL, REN, MOVE, COPY, CD,  RD
  311.    MD, drive switching, VER,  MEM, TYPE and so  on), some of them  being
  312.    an extension to DOS (MEM and MOVE);
  313.  
  314.  - Control  all  access  to  RDS  (based  on  the name of the user)  and
  315.    control  all  access  inside  RDS  (based  on drives, directories and
  316.    files);
  317.  
  318.  - In  fact,  give  ANY  normal  user  the  (controlled) access to  DOS-
  319.    commands you specify and only  for files, drives and directories  you
  320.    allow;
  321.  
  322.  - Make use of a subset of commands specialized for Remote Access and  a
  323.    special subset of generalized commands  that can be used while  being
  324.    remote;
  325.  
  326.  - Make  use  of  special  BBS  commands  like  Upload  and    Download,
  327.    controlled with RDS security and available at any place while  inside
  328.    RDS;
  329.  
  330.  - Suit your needs. The only thing you have to do is to enter a  message
  331.    with suggestions you have and features  you would like to see in  RDS
  332.    and maybe you'll see these features in the next release;
  333.  
  334.  - Call any program you like, but  it is not possible to call a  program
  335.    that needs input during its execution;
  336.  
  337.  - Make usage of macros (developed online or offline) and aliases to  do
  338.    boring jobs in one command;
  339.  
  340.  
  341.  What RDS can't do now, but will do soon:
  342.  
  343.  - Simple FILES.BBS changing with some FILES.BBS editing functions;
  344.  
  345.  - Access to  DOS-programs like SUBST,  ATTRIB, CHKDSK and  so on, while
  346.    keeping control;
  347.  
  348.  - Access normal compressor programs like PKZIP, ARC, PAK, LHARC and  so
  349.    on. These will be run 'under' RDS-control;
  350.  
  351.  
  352.  What RDS can't (and probably won't do for a long time):
  353.  
  354.  - Executing 'normal' programs  like your compiler, full-screen  editor,
  355.    mind-blowing arcade games  and so on.  For this functions  you need a
  356.    real DOS-door on  your system IF  this program needs  input or writes
  357.    its output  directly to  the screen-buffer  AND you  need to see this
  358.    output;
  359.  
  360.  - FORMAT. It will  never support such a  function, it is to  big a risk
  361.    to implement this function.
  362.  
  363.  Most is up to you as a  RDS user. Keep on giving suggestions. RDS  is a
  364.  modular program. Implementing functions is (relative) easy if they  are
  365.  straight-forward. Something like  'Let RDS talk  to me' will  take some
  366.  time <grin> (though....  soundblaster support can  be a major  topic in
  367.  version 88.01 !).
  368.  
  369.  For all its functions, RDS 'leans' heavily on it's own control-file.
  370.  
  371.  ┌───────┬─────────────────────────────────────────────────────────────┐
  372.  │   3   │ Installation description                                    │
  373.  └───────┴─────────────────────────────────────────────────────────────┘
  374.  
  375.  3.1 Installation
  376.  ────────────────────────────────────────────────────────────────────────
  377.  People who think  that installing RDS  is difficult should  consider to
  378.  read a DOS-manual. If  you can install a  BBS (and you did,  I imagine)
  379.  you  can  install  RDS  !  There  are  no online configuration programs
  380.  because every setup can vary !
  381.  
  382.  If you have any problems with the installation than enter a message  in
  383.  the DISP echomail area or send me a NetMail message. I can read,  speak
  384.  and write English, German and Dutch (and garbage, after a few beers).
  385.  
  386.  Now for the installation itself.  I'll use an installation in  a Remote
  387.  Access  environment.  For  now,  I  will first describe the differences
  388.  when installing RDS under other types of BBS programs:
  389.  
  390.  - QuickBBS <tm>
  391.    No special care.  All RA-alike options  will not work.  QuickBBS will
  392.    use the EXITINFO.BBS and DORINFO1.DEF files;
  393.  
  394.  - SuperBBS <tm>
  395.    As with QuickBBS;
  396.  
  397.  - Older Remote Access <tm> versions
  398.    Only change the  RA11 option (see  later) in RA10  (RA 1.1x) or  RA00
  399.    (RA 0.xx);
  400.  
  401.  - Maximus <tm> and OPUS <tm>
  402.    When  installed  as  Maximus  or  OPUS,  RDS  will  only search for a
  403.    DORINFO1.DEF file.  The MAXIMUS  manual gives  an example  on how  to
  404.    create  such  a  file  when  you  call  a  door. The OPUS manual will
  405.    probably also  give such  an example.  The EXITINFO.BBS  file is  not
  406.    accessed. The  only drawback  is that  the user's  name will  show in
  407.    uppercase. If the DORINFO1.DEF can not supply the correct  modem-info
  408.    (port, baudrate), you can use RDS's command-line options to  overrule
  409.    them with other (locked) baud-rates and/or ports;
  410.  
  411.  
  412.  The installation of the supplied files is as follows:
  413.  
  414.  - Place RDS.EXE and RDS.OVR in some directory;
  415.  
  416.  - Place  RDS.HLP  in  the  same  directory  (or somewhere else) as  the
  417.    previous  files.  You  can  use  RDS.CTL  an  option  to point to the
  418.    RDS.HLP file. When  you still run  an old version  of RDS (1.0x)  you
  419.    must convert  the 1.0x  help files  to the  new (single file) format.
  420.    You  could  try  to  get  your  hands  on  the  RDS 1.31 archive that
  421.    contains a conversion program;
  422.  
  423.  - Create a RDS.CTL (or alike) file. This can be done in several ways:
  424.  
  425.    - Under  the name  RDS.CTL in  the directory  where RDS.EXE is stored
  426.      (when running under DOS 3.xx or higher);
  427.  
  428.    - Under  the name  RDS.CTL somewhere  in the  DOS-path (DOS  2.xx and
  429.      up);
  430.  
  431.    - Under the name RDS.CTL in  the directory that is CURRENT when  your
  432.      BBS executes a door program;
  433.  
  434.    - Under  the name  RDS.CTL in  any directory,  provided you  create a
  435.      variable in the DOS-environment with the format:
  436.  
  437.      RDS=[drive][directory]\RDS.CTL or RDS=[drive][directory]\
  438.  
  439.    - Under  any name,  anywhere, provided  you create  a variable in the
  440.      DOS-environment with the format:
  441.  
  442.      RDS=[drive][directory]\[name_of_your_CTL]
  443.  
  444.    Chapter 3.3 provides a description  of what (and how) you  can supply
  445.    in the RDS.CTL file;
  446.  
  447.  - Create a type 7/15 menu  entry in your BBS with some  security level.
  448.    Use the following call to RDS in the data-field:
  449.  
  450.    [drive][directory]\RDS.EXE {parameters}
  451.  
  452.    RDS  now  has  some  command-line  options  to  consider. Please read
  453.    chapter 4.4  about the  commands and  how to  use them  !  Use the *M
  454.    option in  a Remote  Access environment  when you  can (look into the
  455.    DOX) or call RDS from a type 15 when memory is low. RDS uses  between
  456.    120K and 180K under your BBS (depending on the functions you want  to
  457.    support). Other BBS types should use a 'exit from BBS' like the  type
  458.    15 in RA and QuickBBS;
  459.  
  460.  - Edit the file RDS.ASC  to a format you like  (if you want to use  the
  461.    command KILLNICE) and place it somewhere in a directory;
  462.  
  463.  - Look at the special chapter conceirning the usage of the  overlay, so
  464.    you can customize it to your personal needs;
  465.  
  466.  - Everything is ready to  run. Try RDS yourself first  (locally) before
  467.    your users are frustrated  over a menu they  can call and that  seems
  468.    to do nothing.  Remove all errors  and let it  go loose for  a remote
  469.    job !
  470.  
  471.  That's all there is to. The first  part is done. Now take some time  to
  472.  create the CTL-file !
  473.  
  474.  
  475.  
  476.  3.2 The overlay mechanism
  477.  ────────────────────────────────────────────────────────────────────────
  478.  RDS is supplied as an overlaying program. This means that only part  of
  479.  the code will be active and available in conventional memory (the  part
  480.  of  memory  up  to  640K)  and  the  remaining parts of the code can be
  481.  loaded into  memory when  a certain  part is  needed. Overlays are only
  482.  useful when a program will not  have to access all parts of  the coding
  483.  in  a  short  time.  The  more  coding  is not needed concurrently, the
  484.  bigger the overlay and the smaller the part of conventional memory  the
  485.  program needs.
  486.  
  487.  When a program  is written, the  author will always  try to search  for
  488.  the  best  result  on  a  large  number of implementations, but not all
  489.  situations can be dealt with. Because of these special situations,  RDS
  490.  includes a number of options to make the overlay mechanism as  flexible
  491.  as possible. To change the  overlay mechanism means that you  must know
  492.  how it works by default. When RDS is loaded, it will try to  initialize
  493.  the overlay manager first. This is done in the following manner:
  494.  
  495.  - The program  will search for  the overlay-file. The  location it will
  496.    search is the location where the EXE-file is found. The name must  be
  497.    the same as  the filename-part (without  extension) of the  EXE-file,
  498.    so  when  you  rename  RDS.EXE  to  MYRDS.EXE,  you  must also rename
  499.    RDS.OVR to MYRDS.OVR. This mechanism works for all DOS releases  from
  500.    version 3.0  and higher.  Lower versions  of DOS  (1.xx and 2.xx) can
  501.    not work in  this manner and  you need to  set the location  and name
  502.    overlay-file with help of an environment variable (see later);
  503.  
  504.  - If  the overlay-file  is found,  the program  will initialize  it and
  505.    will examine the memory.  The overlay-manager need some  conventional
  506.    memory  and  it  can  store  the  remaining  part of the overlay (the
  507.    not-active part) in  expanded memory (EMS)  if that is  available and
  508.    contains enough  free memory.  The size  of the  part of conventional
  509.    memory is variable (though it can not  be too small) and is set to  a
  510.    good average  (by default).  The size  of the  part of  EMS memory is
  511.    fixed  for  a  given  release  of  the program. The more conventional
  512.    memory  that  is  assigned  to  the  overlay  buffer,  the better the
  513.    performance  of  the  program  but  the less memory (conventional) is
  514.    available. If the  overlay part can  not be loaded  into EMS (because
  515.    it isn't there or there isn't enough free memory in EMS), it will  be
  516.    left  on  disk  and  parts  of  the  coding  must be loaded from disk
  517.    (slower!) when they are needed;
  518.  
  519.  - If  the overlay-managers  fails to  install the  overlay, the program
  520.    will abort. In general, the failing will be the result of:
  521.  
  522.    - The OVR-file (the overlay) could not be found;
  523.  
  524.    - Not enough conventional memory available to load the overlay;
  525.  
  526.    - Invalid (old) EMS drivers;
  527.  
  528.    - I/O errors on the overlay-file
  529.  
  530.    - Conflicts  between  other  programs  that  use EMS or  conventional
  531.      memory (TSR's, device drivers);
  532.  
  533.  In general, when you do  nothing about the overlay-manager and  you run
  534.  under DOS 3.xx  or higher, you  will have a  solid running program.  If
  535.  you have problems (see above) or  you want to optimize the program  for
  536.  better  thruput,  you  can  (must)  alter the overlay management. These
  537.  changes must be  made with help  of environment variables  (see the DOS
  538.  SET command). Many people asked why you can't put these changes  inside
  539.  the control-file.  That is  not possible,  because the  parsing of  the
  540.  control-file itself is  an overlayed part  of the coding.  You need the
  541.  overlay before you can  access the control file.  That is why you  must
  542.  make use of environment variables. The following environment  variables
  543.  are tested for:
  544.  
  545.  RDSOVROL : This environment variable can  be used to point to the  name
  546.             and/or location of the overlay-file.  You can use it in  two
  547.             ways:
  548.  
  549.             (1) SET RDSOVROL=F:\RAMDRIVE\
  550.             (2) SET RDSOVROL=C:\BBS\PRG\RDS.OVR
  551.  
  552.             In  the  first  case  (1)  you  point  to the directory that
  553.             contains the overlay-file. The  name of the overlay-file  is
  554.             generated from  the program-name  (minus the  extension), so
  555.             when  you  have  MYRDS.EXE,  you  must put MYRDS.OVR in this
  556.             directory  first.  The  directory-name  MUST  end with a '\'
  557.             otherwise the  overlay-manager will  assume RAMDRIVE  as the
  558.             name of the overlay-file and will search for it in F:\.
  559.  
  560.             In the second  case (2) you  point to the  location AND name
  561.             of the overlay-file. In this case the overlay-file can  have
  562.             a  complete  different  name.  So  it  is  valid to call the
  563.             program RDSHELL.EXE  and the  overlay RDSOVR.OVR  if you use
  564.             SET  RDSOVROL=C:\BBS\PRG\RDSOVR.OVR.  This  option  is  also
  565.             needed when you run under DOS 1.xx or 2.xx;
  566.  
  567.             The most  common usage  of this  environment variable  is to
  568.             put  the  overlay-file  on  a  RAM-disk (fast access) and to
  569.             deny the  usage of  EMS for  the overlay  (because you  have
  570.             better candidates for EMS usage).
  571.  
  572.  RDSOVRUE : This environment variable can have 2 values, either Y or  N.
  573.             The program will only test if the value 'N' is used (so  SET
  574.             RDSOVRUE=N). If this is  the case, the overlay  manager will
  575.             not  use  EMS  for  the  overlay-file  and  access  to   the
  576.             overlay-file is done on disk (see RDSOVROL);
  577.  
  578.  RDSOVRBS : This environment  variable can  be used  to alter  (enlarge)
  579.             the  overlay  buffer  in  conventional memory. The program's
  580.             default will give a good  average, but when memory is  not a
  581.             problem  (conventional  memory),  you  can  make the overlay
  582.             buffer bigger and  gain some speed  in the program  thruput.
  583.             To  see  which  value  you  should  set,  you should run the
  584.             program without this option first. Inside the log (you  must
  585.             activate the log),  you can find  the default value  for the
  586.             overlay buffer. You  can make it  smaller but don't  make it
  587.             smaller  than  the  current  size  minus  8192 otherwise the
  588.             overlay-manager  could  fail.  You  can  make  it bigger but
  589.             don't make it too big  (experiment with small steps and  see
  590.             if the  performance gets  better). SET  RDSOVRBS=100000 will
  591.             allocate  100.000  bytes  of  conventional  memory  for  the
  592.             overlay buffer;
  593.  
  594.  RDSOVRPS : This environment  variable can  be used  to alter  (enlarge)
  595.             the 'prohibition area'.  This area is  a part of  the normal
  596.             overlay buffer. It is used to store recently accessed  parts
  597.             of the code. The code  will remain as long as  possible over
  598.             here. If the code is  accessed again, it doesn't have  to be
  599.             loaded from the  overlay-file but can  come from this  area.
  600.             The value you supply with  this variable should not be  less
  601.             than 2. The default  is 3 (buffersize /  3). You can try  to
  602.             gain some speed by making  the overlay buffer larger and  to
  603.             set this  value to  2. The  default gives  a good average in
  604.             combination with most overlay buffers;
  605.  
  606.  In general (DOS version equal or higher than 3.xx, unaltered names  for
  607.  the program-file and overlay-file, enough  EMS memory or a fast  disk),
  608.  you can use the default values and don't have to set these  environment
  609.  variables.
  610.  
  611.  
  612.  
  613.  3.3 RDS.CTL
  614.  ────────────────────────────────────────────────────────────────────────
  615.  The RDS.CTL  file is  a normal  text-file (ASCII-file).  You can create
  616.  this  file  with  program's  like  EDLIN  or  any  other  ASCII-editor.
  617.  RDS.CTL must be in the DOS-path (DOS 2.xx) or in the same directory  as
  618.  RDS.EXE (DOS 3.xx).
  619.  
  620.  Also it  is possible  to access  the RDS  control-file in the following
  621.  ways:
  622.  
  623.  - The usage of an environment variable RDS
  624.  
  625.    1) When the value of  this variable terminates with a  backslash (\),
  626.       RDS assumes the value is a  path and adds RDS.CTL to the  variable
  627.       and searches for this file;
  628.  
  629.    2) When the value  of this variable does  NOT terminate with a  back-
  630.       slash (\), RDS assumes that the  variable is a full path and  name
  631.       to the control-file and RDS will try to find it;
  632.  
  633.  - The  usage of  the -CTL[drive:][path][name]  option. RDS  will search
  634.    for the supplied filename on  the supplied drive and in  the supplied
  635.    directory;
  636.  
  637.  
  638.  RDS.CTL contains  many options.  Some of  them optional,  some of  them
  639.  not. The general format for the RDS.CTL file is:
  640.  
  641.  Option {parameter} {parameter} ..... {parameter}
  642.  
  643.  or
  644.  
  645.  [line] Option {parameter} {parameter} ..... {parameter}
  646.  
  647.  The latter  format can  be used  when you  want 1  RDS.CTL for ALL your
  648.  BBS-lines  and  when  these  lines  have different resources like other
  649.  modems, other log-files and so  on. An example for 2  different RDS.CTL
  650.  files:
  651.  
  652.  
  653.  RDS.CTL for line 1
  654.  ------------------
  655.  LogPath D:\BBS\LINE01.LOG
  656.  
  657.  RDS.CTL for line 2
  658.  ------------------
  659.  LogPath D:\BBS\LINE02.LOG
  660.  
  661.  can be combined to one RDS.CTL with:
  662.  
  663.  [1] LogPath D:\BBS\LINE01.LOG
  664.  [2] LogPath D:\BBS\LINE02.LOG
  665.  
  666.  The line number (between '[' and  ']') is ruled by the -N  command-line
  667.  option. If no -N command-line option  is given, line 1 is assumed.  All
  668.  lines inside RDS.CTL that don't  contain a line-number will be  used on
  669.  ALL  lines  (see  examples  RDS.CTL  for  single-line and RDS.MUL for a
  670.  multi-line setup).
  671.  
  672.  There are NO  restrictions to the  position you start  the command, nor
  673.  the starting position  of the (optional)  parameters, but the  'option'
  674.  and (if  present) the  'parameters' have  to be  separated with  one or
  675.  more spaces. You can make any mixture of upper and lower case !
  676.  
  677.  A generalized example  of RDS.CTL is  included in the  release-file. It
  678.  contains ALL options available in this release.
  679.  
  680.  RDS.CTL can (or must) contain the following statements:
  681.  
  682.  ┌─────────────────────────────────────────────────────────────────────┐
  683.  │ RegistrationName [name]                                             │
  684.  └─────────────────────────────────────────────────────────────────────┘
  685.  Usage : This option  has only a meaning  when you received a  key after
  686.          you registered RDS. You can not  use it when you are using  RDS
  687.          in the (unregistered) trial period;
  688.  
  689.  
  690.  ┌─────────────────────────────────────────────────────────────────────┐
  691.  │ BBSType RA00|RA10|RA11|QBBS|QNEW|SBBS|MAXI|OPUS                     │
  692.  └─────────────────────────────────────────────────────────────────────┘
  693.  Usage : This parameter is mandatory. You can select a number of types:
  694.  
  695. │        RA00 : when you run a  Remote Access <tm> version 0.xx type  of
  696. │               BBS (EXITINFO, DORINFO1)
  697. │        RA10 : when you run a  Remote Access <tm> version 1.0x type  of
  698. │               BBS (EXITINFO, DORINFO1 and USERON.BBS 1.0x format)
  699. │        RA11 : when you run a  Remote Access <tm> version 1.1x type  of
  700. │               BBS (EXITINFO, DORINFO1 and USERON.BBS 1.1x format)
  701. │        QBBS : when you  run a  QuickBBS <tm>  version LESS  THAN  2.75
  702. │               type of BBS (EXITINFO, DORINFO1)
  703. │        QNEW : when you  run a  QuickBBS <tm>  version 2.75  OR  HIGHER
  704. │               type of BBS (EXITINFO, DORINFO1)
  705. │        SBBS : when you  run a SuperBBS <tm>  version 1.xx type of  BBS
  706. │               (EXITINFO, DORINFO1)
  707. │        MAXI : when  you run a  Maximus <tm> version  2.xx type of  BBS
  708. │               (only DORINFO1)
  709. │        OPUS : when you run a OPUS <tm> version 1.xx type of BBS  (only
  710. │               DORINFO1)
  711.  
  712.          The RAxx types will supply  a number of extra goodies  that can
  713. │        not be used in any other BBS environment ! The  MAXI  and  OPUS
  714. │        types can be  used for any given BBS program that WILL create a
  715. │        DORINFO1.DEF file but that won't create a EXITINFO.BBS file. If
  716. │        both are created  but your BBS is not a Remote Access, SuperBBS
  717. │        or QuickBBS program,  you  can use QBBS, QNEW or SBBS (you must
  718. │        experiment to see which of the types gives the best result).
  719.  
  720.  
  721.  ┌─────────────────────────────────────────────────────────────────────┐
  722.  │ BBSDirectory [dir]                                                  │
  723.  └─────────────────────────────────────────────────────────────────────┘
  724.  Usage : This  option  must   point  to the BBS system directory.  Under
  725.          Remote Access you must supply  this directory but it is  better
  726.          to supply it for all types of BBS's.
  727.  
  728.  
  729.  ┌─────────────────────────────────────────────────────────────────────┐
  730.  │ BBSWorkDirectory [dir]                                              │
  731.  └─────────────────────────────────────────────────────────────────────┘
  732.  Usage : When RDS is called and  the  EXITINFO.BBS  and/or  DORINFO1.DEF
  733.          files can NOT  be found in the CURRENT directory, you will have
  734.          to supply the  directory  where they can be found. In this case
  735.          you should supply  the  BBSWorkDirectory  option in RDS.CTL. If
  736.          supplied, RDS will  first look inside this directory, otherwise
  737.          it will try to find  the  file(s)  in the CURRENT directory. If
  738.          the option is not  supplied, RDS  will only look in the CURRENT
  739.          directory (normal operations).
  740.  
  741.  
  742. │┌─────────────────────────────────────────────────────────────────────┐
  743. ││ StartupDirectory [dir]                                              │
  744. │└─────────────────────────────────────────────────────────────────────┘
  745. │Usage : If you  don't want  to supply  a single  startup directory  for
  746. │        every single user (see later), but you want your RDS user(s) to
  747. │        always  start  at  a  fixed   directory,  you  can  supply this
  748. │        directory with this  option. When RDS  is called, it  will swap
  749. │        to  this  directory  unless  the  user  is  forced into another
  750. │        directory (the UserDirectory option, see later) or when you did
  751. │        supply the -D command-line option !
  752.  
  753.  
  754.  ┌─────────────────────────────────────────────────────────────────────┐
  755.  │ HelpDirectory [dir]                                                 │
  756.  │ HelpDirectory [path]                                                │
  757.  └─────────────────────────────────────────────────────────────────────┘
  758.  Usage : This option can point  to a directory containing RDS.HLP or  it
  759.          can point (with a complete path)  to this type of file when  it
  760.          has an alternate name.
  761.  
  762.          C:\ZIP\        will tell RDS to look for RDS.HLP in C:\ZIP
  763.          C:\ZIP\MY.OWN  will tell RDS to look for MYHELP.OWN in C:\ZIP
  764.  
  765.  
  766. │┌─────────────────────────────────────────────────────────────────────┐
  767. ││ NOEMS                                                               │
  768. │└─────────────────────────────────────────────────────────────────────┘
  769. │Usage : RDS will use a swap mechanism when any shell to DOS is called
  770. │        (SPAWN, SHELL, DOWNLOAD, UPLOAD, TREE). Normally this mechanism
  771. │        will try to use XMS, EMS or disk (in that order). If you don't
  772. │        want to swapping mechanism to make usage of EMS, supply this
  773. │        parameter in which case XMS (unless NOXMS is supplied) or disk
  774. │        will be used.
  775. │┌─────────────────────────────────────────────────────────────────────┐
  776. ││ NOXMS                                                               │
  777. │└─────────────────────────────────────────────────────────────────────┘
  778. │Usage : RDS will use a swap mechanism when any shell to DOS is called
  779. │        (SPAWN, SHELL, DOWNLOAD, UPLOAD, TREE). Normally this mechanism
  780. │        will try to use XMS, EMS or disk (in that order). If you don't
  781. │        want to swapping mechanism to make usage of XMS, supply this
  782. │        parameter in which case EMS (unless NOEMS is supplied) or disk
  783. │        will be used.
  784. │┌─────────────────────────────────────────────────────────────────────┐
  785. ││ ChatCall [parameters]                                               │
  786. │└─────────────────────────────────────────────────────────────────────┘
  787. │Usage : When you want to use ALT-C to call a chat-program while  inside
  788. │        RDS, you  must supply  this option.  [parameters] must  contain
  789. │        the  complete  path  to  the  chatter  AND  must  contain   the
  790. │        command-line parameters (if any) for the chat-program. You  can
  791. │        use some special  macros inside these  command-line parameters,
  792. │        that will be replaced by RDS at run-time. These are:
  793. │        $C : Will be replaced by the COM-port
  794. │        $B : Will be replaced by the baud-rate
  795. │        $L : Will be replaced by the BBS-line
  796. │        The control is passed to  the chat-program. RDS will (in  2.01)
  797. │        not re-read  the EXITINFO.BBS  to see  if the  time left to the
  798. │        user should be adjusted !
  799.  
  800.  
  801.  ┌─────────────────────────────────────────────────────────────────────┐
  802.  │ MacroExpandBuffer [number]                                          │
  803.  └─────────────────────────────────────────────────────────────────────┘
  804.  Usage : RDS (from 1.20 and  up) contains two statements that can  stack
  805.          (generated in case of EXPAND) statements on RDS's own  command-
  806.          stack. The stack has a  default size of 100 entries,  resulting
  807.          in 25600 bytes  of memory consumption.  If this is  to many for
  808.          you and  you will  never stack  that much  statements, you  can
  809.          lower the stack to a minimum of 10 (resulting in 2560 bytes  of
  810.          overhead) but remember  this. When you  use EXPAND for  example
  811.          in the case of  EXPAND COPY *.* C:\TUP  (copy all files in  the
  812.          current  directory  to  C:\TUP)  and  your  current   directory
  813.          contains 200 files, stacking will be impossible when you  don't
  814.          have a stack of at  least 200 lines.  MacroExpandBuffer  can be
  815.          set anywhere between  10 and 1000.  The bigger, the  more files
  816.          can be EXPAND'ed or MACRO-files can be bigger. Tradeoff is  the
  817.          memory consumption. 256 bytes-per-line  of memory are lost,  so
  818.          1000 lines will mean 256K !
  819.  
  820.  
  821. │┌─────────────────────────────────────────────────────────────────────┐
  822. ││ MAXBAUD [com] [baud]                                                │
  823. │└─────────────────────────────────────────────────────────────────────┘
  824. │Usage : Under  RDS  you  can  make usage of the MODEMSEND command. This
  825. │        command will send  characters to the modem on a given COM-port.
  826. │        When you don't want to make usage of the MODEMSEND command, you
  827. │        can forget the MAXBAUD option but even when  you  run  a single
  828. │        modem configuration,  you  can  use  the MODEMSEND command, but
  829. │        only locally (when you run  on COM0). Normally RDS will ask for
  830. │        the maximum baud-rate of the modem you want to send commands to
  831. │        with MODEMSEND. To overcome  this  problem, you can also define
  832. │        the maximum baud-rates of all  your  modems in RDS.CTL with the
  833. │        help of the MAXBAUD  option. If  such  an option is present for
  834. │        a given  modem  (COM-port), RDS  will  not  ask for the maximum
  835. │        baud-rate when you start MODEMSEND.
  836. │        [com] must be  the  COM-port  of the given modem and [baud] the
  837. │        maximum baudrate of that  modem.  For locked modems, you should
  838. │        supply the locked baud-rate !
  839. │┌─────────────────────────────────────────────────────────────────────┐
  840. ││ BEEPHOURS [hhmm-hhmm]                                               │
  841. │└─────────────────────────────────────────────────────────────────────┘
  842. │Usage : Some  users can use  the BEEP command  to generate a  series of
  843. │        noises on  the local  console (as  a type  of attention  to the
  844. │        SysOp). To  give the  SysOp her/his  beauty-sleep/beer-recovery
  845. │        you can supply one or more of these options.
  846. │        The hhmm-hhmm parameter must be set to a from-time and  to-time
  847. │        and the to-time  can not be  lower than the  from-time. You can
  848. │        set an unlimited number of BEEPHOURS periods to cover your  own
  849. │        specialized needs. For example,  to disable beeping from  13:00
  850. │        to 17:00 and from 21:30 to 08:30, use the following commands:
  851. │        BEEPHours 1300-1700
  852. │        BEEPHours 2130-2400
  853. │        BEEPHours 0000-0830
  854. │        The BEEPHours commands  will not take  any memory, because  RDS
  855. │        will decide the  actual beeping periods  at startup (and  after
  856. │        reading the RDS.CTL).
  857. │┌─────────────────────────────────────────────────────────────────────┐
  858. ││ DOWNLOAD [letter] [files] [Desc] [parameters]                       │
  859. │└─────────────────────────────────────────────────────────────────────┘
  860. │Usage : You can  supply up  to 10  DOWNLOAD options.  Each option  will
  861. │        refer to a protocol that can be used inside RDS.
  862. │        [letter]     This must be a valid character that the user  must
  863. │                     enter  at  the  protocol   menu,  to  select   the
  864. │                     protocol  (A-Z,  1-9   and  special   characters).
  865. │                     Don't supply  any duplicate  characters. RDS  will
  866. │                     not check for duplicates.
  867. │        [files]      This must be  a value between 1  en 255 and   will
  868. │                     tell RDS how many  files can be downloaded  in one
  869. │                     call. If  the value  is anything  but 1,  you must
  870. │                     use a files-list ($3 macro) in the call.
  871. │        [Desc]       This must be a short description of  the  protocol
  872. │                     without  any  spaces  in  the  description. If you
  873. │                     want to display  a space, you  must include a  '_'
  874. │                     (underscore) character.  These characters  will be
  875. │                     replaced by spaces (by RDS);
  876. │        [parameters] This will be the actual command-line that must  be
  877. │                     executed  (so   the  protocol   itself  and    the
  878. │                     command-line  options  for  the  protocol).    The
  879. │                     command-line can include some special macros  that
  880. │                     are replaced by RDS at run-time.  These are:
  881. │                     $1 : Will be replaced by the COM-port number
  882. │                     $2 : Will be replaced by the baud-rate
  883. │                     $3 : Will be replaced by a file-list
  884. │                          (@[filelist.ext])
  885. │                     $4 : Will be replaced by a filename (only 1)
  886. │                     $5 : Will be replaced by the remaining time
  887. │                          in minutes
  888. │                     $M : RDS must swap first before calling protocol
  889. │        The RDS.CTL inside the archive will contain an example of  some
  890. │        protocols (DOWNLOAD).
  891. │┌─────────────────────────────────────────────────────────────────────┐
  892. ││ DOWNLOADHOURS [hhmm-hhmm]                                           │
  893. │└─────────────────────────────────────────────────────────────────────┘
  894. │Usage : To disable  the DOWNLOAD  command during  certain periods,  you
  895. │        can use the DOWNLOADHOURS option.  The format and usage is  the
  896. │        same as the BEEPHours option.
  897. │┌─────────────────────────────────────────────────────────────────────┐
  898. ││ UPLOAD   [letter]         [Desc] [parameters]                       │
  899. │└─────────────────────────────────────────────────────────────────────┘
  900. │Usage : You can  supply up  to 10  UPLOAD    options. Each option  will
  901. │        refer to a protocol that can be used inside RDS.
  902. │        [letter]     This must be a valid character that the user  must
  903. │                     enter  at  the  protocol   menu,  to  select   the
  904. │                     protocol  (A-Z,  1-9   and  special   characters).
  905. │                     Don't supply  any duplicate  characters. RDS  will
  906. │                     not check for duplicates.
  907. │        [Desc]       This must be a short description of  the  protocol
  908. │                     without  any  spaces  in  the  description. If you
  909. │                     want to display  a space, you  must include a  '_'
  910. │                     (underscore) character.  These characters  will be
  911. │                     replaced by spaces (by RDS);
  912. │        [parameters] This will be the actual command-line that must  be
  913. │                     executed  (so   the  protocol   itself  and    the
  914. │                     command-line  options  for  the  protocol).    The
  915. │                     command-line can include some special macros  that
  916. │                     are replaced by RDS at run-time.  These are:
  917. │                     $1 : Will be replaced by the COM-port number
  918. │                     $2 : Will be replaced by the baud-rate
  919. │                     $4 : Will be replaced by a filename (only 1)
  920. │                     $5 : Will be replaced by the remaining time
  921. │                          in minutes
  922. │                     $M : RDS must swap first before calling protocol
  923. │        The RDS.CTL inside the archive will contain an example of  some
  924. │        protocols (UPLOAD).
  925. │        Be sure  to implement  the UPLOAD  protocols in  a way  that NO
  926. │        replacement of  files can  be executed  and that  the user  can
  927. │        ONLY UPLOAD 1 FILE at a time !
  928. │┌─────────────────────────────────────────────────────────────────────┐
  929. ││ UPLOADHOURS [hhmm-hhmm]                                             │
  930. │└─────────────────────────────────────────────────────────────────────┘
  931. │Usage : To disable the  UPLOAD command during certain periods,  you can
  932. │        use the UPLOADHOURS  option. The format  and usage is  the same
  933. │        as the BEEPHours option.
  934.  
  935.  
  936.  ┌─────────────────────────────────────────────────────────────────────┐
  937.  │ RADownText [file]                                                   │
  938.  └─────────────────────────────────────────────────────────────────────┘
  939.  Usage : This  option is only  valid when you  run a Remote  Access  BBS
  940.          (so when you used RA00, RA10 or RA11 on the BBSType option).
  941.  
  942.          [file] is a fully specified (and existing)  filename of a  file
  943.                 that  contains  the  text  that is displayed to the user
  944.                 when you  force  a  Remote  Access session down with the
  945.                 KILLNICE option.
  946.  
  947.          The file will be displayed as soon as the user on the line that
  948.          you forced down returns to  the  BBS  (from  a door) and should
  949.          contain a text that explains the reason for shut-down.
  950.  
  951.  
  952.  ┌─────────────────────────────────────────────────────────────────────┐
  953.  │ LogPath [path]                                                      │
  954.  │ LogPath [full path & filename]                                      │
  955.  │ LogPath CURRENT                                                     │
  956.  │ LogPath CURRENT [name]                                              │
  957.  └─────────────────────────────────────────────────────────────────────┘
  958.  Usage : When you  want RDS to create  a log, you MUST  include the path
  959.          to  the  log-file  RDS  will  create.  If  this  option  is NOT
  960.          present, no log is created.
  961.  
  962.          If you want a log with a  name of your own, or you want  RDS to
  963.          add its log-records to an already present log-file (this  could
  964.          be the log-file of a Mailer or a BBS program), you can use  the
  965.          second option. In this case you must supply not only the  path,
  966.          but also  the name  of the  log-file.   If the  log-file is not
  967.          present, RDS will create it, otherwise RDS will append to  this
  968.          file.
  969.  
  970.          If you  want RDS  to create  RDS.LOG in  the CURRENT directory,
  971.          use the third  option. In this  case the log  is called RDS.LOG
  972.          and  this   option  should   be  used   in   multi-line/network
  973.          environments;
  974.  
  975.          If you want RDS  to create a log  with a user-supplied name  in
  976.          the  current  directory,  use  the  fourth option. In this case
  977.          [name] will be created in the CURRENT directory.
  978.  
  979.          With  the  LogStyleFormat  option,  you  can  create  your  own
  980.          log-file format, so appending to a Mailer-log or BBS-log  could
  981.          be done in a neat way !
  982.  
  983.          RDS  opens  AND  closes  the  log-file  with  every access. The
  984.          access is under  control of SHARE  (if this program  is present
  985.          in the system). If another  task or program has opened  the log
  986.          in a way that RDS's  access is denied (sharing violation),  RDS
  987.          will wait up to 30  seconds (30 retries). If after  30 retries,
  988.          RDS is still  unable to write  to the log-file,  logging of the
  989.          cur- rent action is denied. The action itself is completed.  At
  990.          the next action, RDS will  try again. The RDS-user is  informed
  991.          of the waiting (every second  or so), so she/he won't  hang the
  992.          line by mistake.
  993.  
  994.          RDS will (when logging is  on) log ALL actions in  detail. This
  995.          is a handy  feature when you  want to 'reconstruct'  any errors
  996.          that  have  occurred  after  someone  has used RDS. Please also
  997.          look into the chapter about security !
  998.  
  999.  
  1000.  ┌─────────────────────────────────────────────────────────────────────┐
  1001.  │ LogStyleFormat [string]                                             │
  1002.  └─────────────────────────────────────────────────────────────────────┘
  1003.  Usage : RDS creates  several log-records  under different   conditions.
  1004.          You  can  use  the  standard  log,  but  Sysop's hate all these
  1005.          different  log-files  (in  general).  RDS can create customized
  1006.          log-records.  With  these  options,  you  can  instruct  RDS to
  1007.          create records  that look  the same  as the  records from  your
  1008.          mailer  or  BBS  program.  The  option  LogStyleFormat  and the
  1009.          LogDateFormat/LogTimeFormat combination can  be used to  define
  1010.          the style  of the  log-records RDS  will create  for ALL  three
  1011.          log-files (normal  log-file, error  log-file and  password-list
  1012.          log-file). These  options are  implemented with  the idea  that
  1013.          different log-styles only vary at the start of the records  and
  1014.          not at the end.
  1015.  
  1016.          The LogStyleFormat  defines the  'structure' of  the log-record
  1017.          header. The format is free but with three special cases:
  1018.  
  1019.          - Blanks must be replaced by underscore characters '_';
  1020.  
  1021.          - The  part  of  the  record  that  contains  the date must  be
  1022.            defined with %D (if a date is wanted);
  1023.  
  1024.          - The  part  of  the  record  that  contains  the time must  be
  1025.            defined with %T (if a time is wanted);
  1026.  
  1027.          - Any  extra CRLF  combinations (to  create a  separation line)
  1028.            must be defined with ^M;
  1029.  
  1030.          An example  (also read  LogDateFormat and  LogTimeFormat for  a
  1031.          description of the time and date functions):
  1032.  
  1033.          You want to create records that look like this:
  1034.  
  1035.          +  6 Jan 1990   2:00p   The start of the log
  1036.  
  1037.          The 'The start of the  log' part is constructed by  RDS itself,
  1038.          so  you  have  only  to  define  the  header.  This  is done as
  1039.          follows:
  1040.  
  1041.          LogStyleFormat +_%D__%T___         (The _ character replaces
  1042.                                             a blank)
  1043.          LogDateFormat  DD_nnn_yyyy
  1044.          LogTimeFormat  HH:mmt
  1045.  
  1046.          %D and %T are  replaced by RDS with  the date and time  formats
  1047.          as  supplied  in   LogDateFormat  and  LogTimeFormat.   RDS.CTL
  1048.          contains a number of examples for the various BBS programs  and
  1049.          Mailer programs.
  1050.  
  1051.  
  1052.  ┌─────────────────────────────────────────────────────────────────────┐
  1053.  │ LogStartStyleFormat [string]                                        │
  1054.  └─────────────────────────────────────────────────────────────────────┘
  1055.  Usage : This  is  an  additional   option  you  can use along with  the
  1056.          previous  LogStyleFormat  option.  Some  types  of  log  use  a
  1057.          special  format  where  the  actual  date  is put into an extra
  1058.          record (with- out any  further meaning than logging  the date).
  1059.          RDS can create such a record  for you. RDS will put the  record
  1060.          with the format you supply in LogStartStyleFormat into the  log
  1061.          as the first and only record for THIS run of RDS. If RDS  stops
  1062.          and is started again, a new record of this type is written.   A
  1063.          type of  log with  this format  is found  in the FrontDoor <tm>
  1064.          mailer.
  1065.  
  1066.          The options you  can use in  this logstyle-format are  the same
  1067.          as with the LogStyleFormat option.
  1068.  
  1069.  
  1070.  ┌─────────────────────────────────────────────────────────────────────┐
  1071.  │ LogDateFormat [string]                                              │
  1072.  └─────────────────────────────────────────────────────────────────────┘
  1073.  Usage : LogDateFormat is used  to define the 'date part'  (actually the
  1074.          %D)  in  the  LogStyleFormat  option.  RDS  (in fact some nifty
  1075.          routines from TurboPower, credit  to those who should  have the
  1076.          credits) has  knowledge of  a big  number of  options to define
  1077.          the date.  The [string]  must be  composed of  a number special
  1078.          letters and (optionally) the separators and spaces between  the
  1079.          various parts  of actual  date. In  fact [string]  should be  a
  1080.          picture mask. The  following characters have  a meaning in  the
  1081.          mask:
  1082.  
  1083.          m or M       The  month (upper   case will  create leading    a
  1084.                       leading space as replacement for a zero)
  1085.  
  1086.          d or D       The  day     (upper case  will create  leading   a
  1087.                       leading space as replacement for a zero)
  1088.  
  1089.          y or Y       The  year   (upper  case  will create  leading   a
  1090.                       leading space as replacement for a zero)
  1091.  
  1092.          n or N       The name of the  month (upper case will force   an
  1093.                       upper case name);
  1094.  
  1095.          w or W       The name of the  day   (upper case will  force  an
  1096.                       upper case name);
  1097.  
  1098.          Each  character  must  be  repeated  as  many times as you want
  1099.          digits or letters.  So '90' for  the year 1990  is defined with
  1100.          yy and the full year is defined with yyyy. Some examples:
  1101.  
  1102.          mm/dd/yy         01-31-90
  1103.          MM/dd/yy          1-31-90
  1104.          dd/mm/yyyy       31-01-1990
  1105.          dd/mm/yyyy       31-01-1990
  1106.          dd NNN yyyy      31 JAN 1990
  1107.          dd nnn yy        31 Jan 1990
  1108.          dd n yyyy        31 J 1990
  1109.          www dd nnn yyyy  Sun 31 Jan 1990
  1110.  
  1111.          As you can see, a lot to experiment with.
  1112.  
  1113.  
  1114.  ┌─────────────────────────────────────────────────────────────────────┐
  1115.  │ LogTimeFormat [string]                                              │
  1116.  └─────────────────────────────────────────────────────────────────────┘
  1117.  Usage : LogTimeFormat is used  to define the 'time part'  (actually the
  1118.          %T)  in  the  LogStyleFormat  option.  RDS  (in fact some nifty
  1119.          routines from TurboPower, credit  to those who should  have the
  1120.          credits) has  knowledge of  a big  number of  options to define
  1121.          the time.  The [string]  must be  composed of  a number special
  1122.          letters and (optionally) the separators and spaces between  the
  1123.          various parts  of actual  date. In  fact [string]  should be  a
  1124.          picture mask. The  following characters have  a meaning in  the
  1125.          mask:
  1126.  
  1127.          h or H       The  hour (upper  case  will  create leading     a
  1128.                       leading space as replacement for a zero)
  1129.  
  1130.          m or M       The  minute   (upper case will  create leading   a
  1131.                       leading space as replacement for a zero)
  1132.  
  1133.          s or S       The seconds  (upper case will  create leading    a
  1134.                       leading space as replacement for a zero)
  1135.  
  1136.          t or T       'p'/'P' (in PM) or 'a'/'A' (in AM)
  1137.  
  1138.          e or E       'm'/'M' (in PM or AM)
  1139.  
  1140.          Each  character  must  be  repeated  as  many times as you want
  1141.          digits or letters.  For h/H/m/M/s/S this  should be two  digits
  1142.          to be useful. Some examples:
  1143.  
  1144.          hh:mm            14:00
  1145.          hh:mmt           02:00p
  1146.          HH:mmte           2:00pm
  1147.          HH:mm:ss         14:00:45
  1148.          hh:mm:ss         14:00:45
  1149.  
  1150.          Again, as you can see, a lot to experiment with.
  1151.  
  1152.  
  1153.  ┌─────────────────────────────────────────────────────────────────────┐
  1154.  │ USER [name of the user as it appears in EXITINFO.BBS]               │
  1155.  └─────────────────────────────────────────────────────────────────────┘
  1156.  Usage : Now the  difficult part.  The User  option is  the start  of  a
  1157.          block (cluster)  of secondary  commands that  can be  used in a
  1158.          different way for every single user you allow to use RDS.   The
  1159.          cluster MUST start  with the USER  option and the  cluster MUST
  1160.          end with the USEREND option.  Between USER and USEREND you  can
  1161.          place  various  sub-options  that  are  only  valid  inside the
  1162.          cluster (within the bounds of USER and USEREND).  There can  be
  1163.          as many USER/USEREND  clusters as you  like. RDS will  only use
  1164.          (and store)  the information  for the  current users.  The only
  1165.          limits you have are disk-space and time.  Time is an  important
  1166.          thing to consider. RDS must 'struggle' thru every cluster  when
  1167.          the door is started for a  certain user. In a future release  I
  1168.          will also  supply a  default set  to be  used by  all users who
  1169.          have access to the door.
  1170.  
  1171.          The USER option  carries 1 parameter.  This is the  name of the
  1172.          user who  is allowed  to enter  RDS. If  the RDS.CTL  file also
  1173.          contains a USER  ALL option, the  options supplied in  USER ALL
  1174.          are  reset  and  the  options  for  that  specific user is used
  1175.          instead.  The name must be in the same format as it appears  in
  1176.          the  EXITINFO.BBS  (in  my  case  Rob  Van.hoeven,  case is not
  1177.          important) file.
  1178.  
  1179.          As said earlier. If you allow more than one user (lets say  the
  1180.          Sysop and  the CoSysop),  you must  define a  cluster, starting
  1181.          with  USER  and  ending  with  USEREND,  for each user.  In the
  1182.          supplied  RDS.CTL  is  an  example  of  several  users  who are
  1183.          allowed to go into the door.
  1184.  
  1185.          The USER ALL  option is a  special case. If  you want to  allow
  1186.          ALL your users  (with the right  security level) into  RDS with
  1187.          (minimal)  options,  you  can  supply  a  USER ALL cluster. The
  1188.          values inside the  USER ALL cluster  are used when  there is NO
  1189.          specific  cluster  for  the  user  in  question  available   in
  1190.          RDS.CTL.
  1191.  
  1192.  Relate: UserEnd and all sub-options
  1193.  
  1194.  
  1195.  ┌─────────────────────────────────────────────────────────────────────┐
  1196.  │ UserEnd                                                             │
  1197.  └─────────────────────────────────────────────────────────────────────┘
  1198.  Usage : Look into the description  of the User option. A cluster  for a
  1199.          certain user MUST  end with UserEnd.  UserEnd has NO  secondary
  1200.          parameters. UserEnd  must be  preceded with  (at least)  a USER
  1201.          option and (optional) some  secondary options between USER  and
  1202.          USEREND.
  1203.  
  1204.  Relate: User and all sub options
  1205.  
  1206.  
  1207.  ┌───────────────────────────────────────────────────────────┐
  1208.  │ UserPassword [password]                                   │ SUBTYPE
  1209.  └───────────────────────────────────────────────────────────┘
  1210.  Usage : This option  is a sub-option and  must be coded between  a USER
  1211.          and  USEREND  option.  It  can  not  be  used  as a stand-alone
  1212.          option.
  1213.  
  1214.          This option is used as an extra security block for one or  more
  1215.          of your  users. When  you supply  this option  with a  password
  1216.          (length from 1 to  8 bytes), the user  on the USER option  MUST
  1217.          enter  this  password  within  3  tries,  otherwise  access  is
  1218.          denied.
  1219.  
  1220.          This option can  also be used  within the USER  ALL cluster (if
  1221.          you have used that cluster).
  1222.  
  1223.  
  1224.  ┌───────────────────────────────────────────────────────────┐
  1225.  │ UserDirectory [directory]                                 │ SUBTYPE
  1226.  └───────────────────────────────────────────────────────────┘
  1227.  Usage : By default, RDS will start in the CURRENT directory. If you  do
  1228.          not want this,  you can supply  a start-up directory  for every
  1229.          single  user  and/or  in  the  USER  ALL  cluster.  Also  it is
  1230. │        possible to supply a directory  to start in, that will  be used
  1231. │        for ALL users (see the normal StartupDirectory option !).
  1232.  
  1233.          If  you  protect  your  C:-drive  and  the CURRENT directory is
  1234.          somewhere in C:, the user must ALLWAYS change to another  drive
  1235.          or directory before  any access can  be done. If  you supply an
  1236.          accessible directory  as the  default directory,  the user does
  1237.          not have to change to this directory.
  1238.  
  1239.          This option can  also be used  within the USER  ALL cluster (if
  1240.          you have used that cluster).
  1241.  
  1242.  
  1243.  ┌───────────────────────────────────────────────────────────┐
  1244.  │ ExcludeFile [mask]                                        │ SUBTYPE
  1245.  └───────────────────────────────────────────────────────────┘
  1246.  Usage : This option  is a sub-option and  must be coded between  a USER
  1247.          and  USEREND  option.  It  can  not  be  used  as a stand-alone
  1248.          option.
  1249.  
  1250.          This option is only  in effect for the  user that you coded  on
  1251.          the  USER  option  belonging  to  the cluster where this option
  1252.          will appear.
  1253.  
  1254.          The ExcludeFile option  will give you  a method to  deny access
  1255.          to a file or files you  supply in the parameter. [mask] can  be
  1256.          a single filename but also a filename with wildcards.  You  can
  1257.          supply up to 100 ExcludeFile options PER user. An example:
  1258.  
  1259.          User Rob van.hoeven
  1260.               ExcludeFile *.ZIP
  1261.               ExcludeFile *.COM
  1262.                   ..
  1263.                   ..
  1264.          UserEnd
  1265.  
  1266.          In  this  example,  user  'Rob  van.hoeven'  can not access the
  1267.          files with  the extensions  ZIP and  COM. These  files will  be
  1268.          displayed  in  a  DIR  but  all manipulations (DEL, MOVE, COPY,
  1269.          RENAME, TYPE and so on) are denied !
  1270.  
  1271.  
  1272.  ┌───────────────────────────────────────────────────────────┐
  1273.  │ ExcludeDirectory [directory]                              │ SUBTYPE
  1274.  │ ExcludeDirectory [directory*]                             │ SUBTYPE
  1275.  └───────────────────────────────────────────────────────────┘
  1276.  Usage : This option  is a sub-option and  must be coded between  a USER
  1277.          and  USEREND  option.  It  can  not  be  used  as a stand-alone
  1278.          option.
  1279.  
  1280.          This option is only  in effect for the  user that you coded  on
  1281.          the  USER  option  belonging  to  the cluster where this option
  1282.          will appear.
  1283.  
  1284.          The  ExcludeDirectory  option  will  give  you a method to deny
  1285.          access  to   a  directory   you  supply   in  the    parameter.
  1286.          [directory] must be a fully  specified name of a directory  (so
  1287.          you MUST include the drive-letter).   You can supply up to  100
  1288.          ExcludeDirectory options PER user.  An example:
  1289.  
  1290.          User Rob van.hoeven
  1291.               ExcludeDirectory C:\ZIP
  1292.               ExcludeDirectory C:\BBS\RAX
  1293.                   ..
  1294.                   ..
  1295.          UserEnd
  1296.  
  1297.          In  this  example,  user  'Rob  van.hoeven'  can not access the
  1298.          directories  C:\ZIP  and  C:\BBS\RAX.   These  files  will   be
  1299.          displayed in  a DIR  but you  can not  display the  directories
  1300.          (with a DIR) itself, nor can you ChDir to them, remove them  or
  1301.          even make  them (if  they weren't  there at  all).  File access
  1302.          from and to these directories is denied (DEL, REN, MOVE,  COPY,
  1303.          TYPE and so on)  if this was not  already the case (because  of
  1304.          ExcludeFile and/or ExcludeDrive).
  1305.  
  1306.          A  special  extension  to  the  ExcludeDirectory option, is the
  1307.          same option with a wildcard. You can add a '*' to a given  path
  1308.          to force RDS  to allow the  supplied directory but  to deny the
  1309.          access to the directory UNDER this directory. For example,  you
  1310.          would like  to allow  the user  to access  the directory E:\ZIP
  1311.          but disallow the access  to E:\ZIP\DIS and E:\ZIP\PAT  (the two
  1312.          directories  UNDER  the  E:\ZIP  directory).   In this case you
  1313.          supply    'ExcludeDirectory    E:\ZIP\*'.    If    you   supply
  1314.          'ExcludeDirectory E:\ZIP*' you force RDS to deny all access  to
  1315.          both E:\ZIP, E:\ZIPZAP, E:\ZIP\DIS and so on....
  1316.  
  1317.  
  1318.  ┌───────────────────────────────────────────────────────────┐
  1319.  │ ExcludeDrive [drive:]                                     │ SUBTYPE
  1320.  └───────────────────────────────────────────────────────────┘
  1321.  Usage : This option  is a sub-option and  must be coded between  a USER
  1322.          and  USEREND  option.  It  can  not  be  used  as a stand-alone
  1323.          option.
  1324.  
  1325.          This option is only  in effect for the  user that you coded  on
  1326.          the  USER  option  belonging  to  the cluster where this option
  1327.          will appear.
  1328.  
  1329.          The ExcludeDrive option will give  you a method to deny  access
  1330.          to a whole  drive you supply  in the parameter.   [drive:] must
  1331.          be   a   normal   drive-letter   like   A:,   C:   and  so  on.
  1332.          You can  supply up  to 26  ExcludeDrive options  PER user.   An
  1333.          example:
  1334.  
  1335.          User Rob van.hoeven
  1336.               ExcludeDrive C:
  1337.               ExcludeDrive A:
  1338.                   ..
  1339.                   ..
  1340.          UserEnd
  1341.  
  1342.          In  this  example,  user  'Rob  van.hoeven'  can not access the
  1343.          drives A:  and C:.   File access  from and  to these  drives is
  1344.          denied (DEL, DIR, REN, MOVE, COPY, TYPE and so on) if this  was
  1345.          not   already   the   case   (because   of  ExcludeFile  and/or
  1346.          ExcludeDrive).
  1347.  
  1348.  
  1349.  ┌───────────────────────────────────────────────────────────┐
  1350.  │ NoDrive                                                   │ SUBTYPE
  1351.  │ NoCls                                                     │ SUBTYPE
  1352.  │ NoMem                                                     │ SUBTYPE
  1353.  │ NoUserOn                                                  │ SUBTYPE
  1354.  │ NoVer                                                     │ SUBTYPE
  1355.  │ NoDate                                                    │ SUBTYPE
  1356. ││ NoSetDate                                                 │ SUBTYPE
  1357.  │ NoTime                                                    │ SUBTYPE
  1358. ││ NoSetTime                                                 │ SUBTYPE
  1359.  │ NoDir                                                     │ SUBTYPE
  1360.  │ NoCD                                                      │ SUBTYPE
  1361.  │ NoRD                                                      │ SUBTYPE
  1362.  │ NoMD                                                      │ SUBTYPE
  1363.  │ NoDel                                                     │ SUBTYPE
  1364.  │ NoRen                                                     │ SUBTYPE
  1365.  │ NoType                                                    │ SUBTYPE
  1366.  │ NoRType                                                   │ SUBTYPE
  1367.  │ NoCopy                                                    │ SUBTYPE
  1368.  │ NoMove                                                    │ SUBTYPE
  1369.  │ NoKillNice                                                │ SUBTYPE
  1370.  │ NoKillForce                                               │ SUBTYPE
  1371.  │ NoBoot                                                    │ SUBTYPE
  1372.  │ NoViewArc                                                 │ SUBTYPE
  1373.  │ NoUpload                                                  │ SUBTYPE
  1374.  │ NoDownload                                                │ SUBTYPE
  1375.  │ NoChat                                                    │ SUBTYPE
  1376.  │ NoBeep                                                    │ SUBTYPE
  1377.  │ NoLog                                                     │ SUBTYPE
  1378.  │ NoWhere                                                   │ SUBTYPE
  1379.  │ NoExpand                                                  │ SUBTYPE
  1380.  │ NoMacro                                                   │ SUBTYPE
  1381.  │ NoModemSend                                               │ SUBTYPE
  1382.  │ NoModemStat                                               │ SUBTYPE
  1383. ││ NoTree                                                    │ SUBTYPE
  1384. ││ NoCompare                                                 │ SUBTYPE
  1385. ││ NoFree                                                    │ SUBTYPE
  1386. ││ NoLabel                                                   │ SUBTYPE
  1387. ││ NoAlias                                                   │ SUBTYPE
  1388. ││ NoForceDir                                                │ SUBTYPE
  1389.  │ Shell                                                     │ SUBTYPE
  1390. ││ Spawn                                                     │ SUBTYPE
  1391.  └───────────────────────────────────────────────────────────┘
  1392.  Usage : This option  is a sub-option and  must be coded between  a USER
  1393.          and  USEREND  option.  It  can  not  be  used  as a stand-alone
  1394.          option.
  1395.  
  1396.          This option is only  in effect for the  user that you coded  on
  1397.          the  USER  option  belonging  to  the cluster where this option
  1398.          will appear.
  1399.  
  1400.          Each of  these options  will deny  a feature  (or command)  for
  1401.          this user. They have the following meaning:
  1402.  
  1403.          NoDrive     User can not use C:, D: and so on;
  1404.  
  1405.          NoCls       User can not use CLS
  1406.  
  1407.          NoMem       User can not use MEM
  1408.  
  1409.          NoUserOn    User can not use USERON
  1410.  
  1411.          NoVer       User can not use VER
  1412.  
  1413. │        NoDate      User can not use DATE (also no alter)
  1414. │        NoSetDate   User can use DATE (unless  NoDate is specified) but
  1415. │                    can only look at, and not update, the date
  1416. │        NoTime      User can not use TIME
  1417. │        NoSetTime   User can use TIME (unless  NoTime is specified) but
  1418. │                    can only look at, and not update, the time
  1419.  
  1420.          NoDir       User can not use DIR
  1421.  
  1422.          NoCD        User can not use CD or ChDir
  1423.  
  1424.          NoRD        User can not use RD or RmDir
  1425.  
  1426.          NoMD        User can not use MD or MkDir
  1427.  
  1428.          NoDel       User can not use DEL or ERASE
  1429.  
  1430.          NoRen       User can not use REN or RENAME
  1431.  
  1432.          NoType      User can not use TYPE or LIST
  1433.  
  1434.          NoRType     User can not use RTYPE or RLIST
  1435.  
  1436.          NoCopy      User can not use COPY
  1437.  
  1438.          NoMove      User can not use MOVE
  1439.  
  1440. │        NoTree      User can not use TREE
  1441. │        NoCompare   User can not use COMPARE
  1442. │        NoFree      User can not use FREE
  1443. │        NoLabel     User can not use LABEL
  1444.  
  1445.          NoKillNice  User can not use KILLNICE
  1446.  
  1447.          NoKillForce User can not use KILLFORCE
  1448.  
  1449.          NoBoot      User can not use BOOT
  1450.  
  1451.          NoViewArc   User can not use VIEWARC
  1452.  
  1453.          NoUpload    User can not use UPLOAD
  1454.  
  1455.          NoDownload  User can not use DOWNLOAD
  1456.  
  1457.          NoChat      User can not use CHAT (but still receive messages)
  1458.  
  1459.          NoBeep      User can not use BEEP
  1460.  
  1461.          NoLog       User can not use LOG
  1462.  
  1463.          NoWhere     User can not use WHERE
  1464.  
  1465.          NoExpand    User can not use EXPAND
  1466.  
  1467.          NoMacro     User can not use MACRO
  1468.  
  1469.          NoModemSend User can not use MODEMSEND
  1470.  
  1471.          NoModemStat User can not use MODEMSTAT
  1472.  
  1473. │        NoAlias     User can not use ALIAS and/or #[aliasname]
  1474. │        No#name     User can not  use  a call to alias [name] but still
  1475. │                    can use other alias calls (if any) and ALIAS itself
  1476. │        NoForceDir  User can still  access  all other valid directories
  1477. │                    and  drives, even  when  the -D command-line option
  1478. │                    is used
  1479.  
  1480.          Shell       User can use SHELL. The default is NOSHELL !!
  1481.  
  1482. │        Spawn       User can use SPAWN. The default is NOSPAWN !!
  1483.  
  1484.  
  1485.          An example:
  1486.  
  1487.          User Rob van.hoeven
  1488.               NoMEM
  1489.               NoMOVE
  1490.               NoCOPY
  1491.               NoDEL
  1492.               NoSetTime
  1493.               NoSetDate
  1494.               NOREN
  1495.          UserEnd
  1496.  
  1497.          In  this  example,  user  'Rob  van.hoeven'  can not manipulate
  1498.          files because  MOVE, COPY,  DEL and  REN will  not work. Also a
  1499.          display of  memory (MEM)  will not  work. Date  and time can be
  1500.          looked at, but can not be altered.
  1501.  
  1502.  Included in  the package  is a  sample RDS.CTL  with a  number of users
  1503.  (names do not match real persons <grin>) and what they can or can't  do
  1504.  with RDS.
  1505.  
  1506.  
  1507.  3.4 Available commands
  1508.  ────────────────────────────────────────────────────────────────────────
  1509.  Depending on the USER ...  USEREND option for that user,  the following
  1510.  DOS-commands are available:
  1511.  
  1512.  HELP           See below
  1513.  
  1514.  DIR            A full color directory with pause
  1515.  
  1516.  COPY           A copy of a file
  1517.  
  1518.  MOVE           A move of a file
  1519.  
  1520.  TYPE or LIST   A type of a file
  1521.  
  1522.  RTYPE or RLIST A type of a file but from bottom to start (reversed)
  1523.  
  1524.  REN or RENAME  A rename of a file
  1525.  
  1526.  DEL or ERASE   A delete of a file
  1527.  
  1528. │COMPARE        Compare two files
  1529. │TREE           Display a tree
  1530.  
  1531.  CLS            Clear the screen
  1532.  
  1533.  MEM            See below
  1534.  
  1535.  VER            Version of DOS (and 4Dos if present)
  1536.  
  1537. │DATE           Get and (optionally) set system-date
  1538. │TIME           Get and (optionally) set system-time
  1539.  
  1540.  CD or ChDir    Change to  a  directory. This is in  fact a CDD. If you
  1541.                 supply a  drive  along with the path, the drive is also
  1542.                 switched
  1543.  
  1544.  MD or MkDir    Make a directory
  1545.  
  1546.  RD or RmDir    Remove a directory
  1547.  
  1548.  x:             Where 'x' is a drive letter. Switch to this drive
  1549.  
  1550.  EXIT           Terminate RDS
  1551.  
  1552.  USERON         See below
  1553.  
  1554.  KILLNICE       See below
  1555.  
  1556.  KILLFORCE      See below
  1557.  
  1558.  BOOT           See below
  1559.  
  1560.  VIEWARC        See below
  1561.  
  1562.  UPLOAD         See below
  1563.  
  1564.  DOWNLOAD       See below
  1565.  
  1566.  CHAT           See below
  1567.  
  1568.  TIMELEFT       See below
  1569.  
  1570.  BEEP           See below
  1571.  
  1572.  LOG            See below
  1573.  
  1574.  WHERE          See below
  1575.  
  1576. │FREE           See below
  1577. │LABEL          See below
  1578. │MACRO          See chapter on macro's
  1579. │ALIAS          See chapter on aliases
  1580. │#aliasname     See chapter on aliases
  1581.  
  1582.  SHELL          See below
  1583.  
  1584. │SPAWN          See below
  1585.  
  1586.  MODEMSEND      See below
  1587.  
  1588.  MODEMSTAT      See below
  1589.  
  1590.  Most of these  commands are known  to anyone who  ever worked with  DOS
  1591.  directly. There are  a few specific  enhancements to the  normal subset
  1592.  of DOS-commands. These are:
  1593.  
  1594.  ┌───────────────────────┐
  1595.  │ HELP                  │
  1596.  └───────────────────────┘
  1597.  You can use HELP  in two ways. First  you can use HELP  without options
  1598.  and you will get a small list with available commands. Second, you  can
  1599.  use HELP with a command (like HELP  DIR or HELP MOVE) and you will  get
  1600.  a screen  full of  help info  on this  specific command  (only when the
  1601.  Sysop has implemented all *.RDS files).
  1602.  
  1603.  
  1604.  ┌───────────────────────┐
  1605.  │ MEM                   │
  1606.  └───────────────────────┘
  1607.  MEM will  give you  a display  with memory  information. The display is
  1608.  made up with four different parts:
  1609.  
  1610.  - Conventional memory
  1611.    The available and total conventional memory in the PC
  1612.  
  1613.  - Expanded memory
  1614.    The available and total expanded (EMS) memory in the PC (if any)
  1615.  
  1616.  - Extended memory
  1617.    The available and total extended (above the 1024K) memory (if any)
  1618.  
  1619.  - XMS memory
  1620.    The available and total memory that is accessed by the XMS driver;
  1621.  
  1622.  Depending on the  type of machine  and the type  of memory drivers  you
  1623.  have, some or more  values can be ignored.  In some machines with  QEMM
  1624.  (like mine) and extended memory  available, RDS will report that  there
  1625.  is no extended memory available. This memory is shared with the  number
  1626.  of bytes of XMS memory.
  1627.  
  1628.  ┌───────────────────────┐
  1629.  │ USERON                │
  1630.  └───────────────────────┘
  1631. │This command will  only work when  you specified the  BBSType option as
  1632. │being RAxx.  If this  is the  case, USERON  will give  a display of all
  1633.  available RA-lines  and their  status. Displayed  are the  names of the
  1634.  users  being  online,  their  baud-rate  and  if  they have the 'Do not
  1635.  disturb' option ON or OFF.
  1636.  
  1637.  ┌───────────────────────┐
  1638.  │ KILLNICE              │
  1639.  └───────────────────────┘
  1640.  This command will  only work when  you specified the  BBSType option as
  1641.  being RAxx  and if  you supplied  a RADOWNTEXT  option in RDS.CTL. This
  1642.  being the  case, KILLNICE  is able  to terminate  a user  in some line.
  1643.  The  format  you  must  use  is 'KILLNICE [linenumber]'. After entering
  1644.  such a  command (lets  say for  line 3),  RDS will  copy the  file sup-
  1645.  plied in the  RADOWNTEXT option to  NODExx.RA (in this  case NODE03.RA)
  1646.  and will add a 'hangup' sequence  after the file. Once in a  while, the
  1647.  BBS will look  to see if  a NODExx.RA is  present and will  display the
  1648.  text to that user and force the line down. This is not the case when  a
  1649.  user is inside a  door or an external  protocol. You can check  if this
  1650.  is the case by giving USERON after 15-20 seconds. If the user is  still
  1651.  online, you can be  sure she/he is somewhere  in a shell. In  this case
  1652.  you  must  use  stronger  options  (KILLFORCE).   As  you  should  have
  1653.  understood  by  now,  this  command  has  only  meaning in a MULTI-LINE
  1654.  environment where the multiple lines are running on the SAME machine.
  1655.  
  1656.  ┌───────────────────────┐
  1657.  │ KILLFORCE             │
  1658.  └───────────────────────┘
  1659.  This command  will work  in any  type of  BBS. If  you want to remove a
  1660.  user from another line and you can not use KILLNICE or KILLNICE has  no
  1661.  effect  (doors  and  so  on,  see  above),  you can enter the KILLFORCE
  1662.  command. The format  is 'KILLFORCE [comport]'.  This option needs  some
  1663.  knowledge about the system. You must know the COM-port of a given  line
  1664. │and supply it  to KILLFORCE (NOT  !! the FOSSIL-port).   KILLFORCE will
  1665. │lower the DTR and RTS of  the given COM-port. This is done  with ASYNCH
  1666. │communications. It is  impossible to KILLFORCE  your own COM-port  (the
  1667. │one  that  you  are  running  on).  KILLFORCE  will  first  ask  for  a
  1668. │confirmation of the command and will also raise the DTR again, after  a
  1669. │few seconds.
  1670. │As you should have understood by now, this command has only meaning  in
  1671. │a MULTI-LINE environment  where the multiple  lines are running  on the
  1672. │SAME machine, or when you logon to RDS when running locally !
  1673.  
  1674.  ┌───────────────────────┐
  1675.  │ BOOT                  │
  1676.  └───────────────────────┘
  1677.  This is a brutal one. It will reboot the machine (warm). You are  given
  1678.  15 seconds to  make up your  mind. After 15  seconds it is  to late and
  1679.  the PC is  rebooted.  You  MUST stay online  to make the  boot work. If
  1680.  between entering  the command  and the  final countdown  the carrier is
  1681.  lost,  the  boot  will  NOT  take  place.   Also  any key will stop the
  1682.  countdown  and   will  bring   you  back   to  the   RDS-prompt.   Some
  1683.  configurations with DesqView/QEMM  and a 386  will hang with  the boot,
  1684.  so try  it out  locally before  submitting this  command to your remote
  1685.  friends and/or CoSysop(s).
  1686.  
  1687.  ┌───────────────────────┐
  1688.  │ VIEWARC               │
  1689.  └───────────────────────┘
  1690.  When this command is used with a valid (fully specified filename),  the
  1691.  user will get a view of the archive (if it IS an archive) in  question.
  1692.  For ZIP/DWC encryption is also marked  in the list, for ZIP there  is a
  1693.  mark  when  the  file  is  AV'ed.   The  VIEWARC command can be used on
  1694.  archives  with  normal  and  abnormal  extensions  and  also on all SFX
  1695.  (COM/EXE)  self  extracting   archives.   Archive   comments  are   NOT
  1696.  displayed, neither are (absolute  or relative) path entries  inside the
  1697.  archives. The CRC (for what it is worth) is also NOT displayed.
  1698.  
  1699.  ┌───────────────────────┐
  1700.  │ DOWNLOAD              │
  1701.  └───────────────────────┘
  1702. │When  you  supply  DOWNLOAD,  RDS  will  display  a  menu  of installed
  1703. │protocols (look at the DOWNLOAD option (primary) in RDS.CTL). If  there
  1704. │are no  protocols installed  for download  or if  the current time does
  1705. │not  allow  download  (See  DownloadHours  option in RDS.CTL), download
  1706. │will be impossible.
  1707. │After the  selection of  the protocol,  the user  can (depending on the
  1708. │installation in RDS.CTL) supply 1 to 255 files for download (each at  a
  1709. │time, will complete  security checks). After  selecting the last  file,
  1710. │the protocol can be started to actually transfer the files. When  using
  1711. │DOWNLOAD locally, RDS will call the  protocol, so you can check if  the
  1712. │parameters for that protocol ar correct.
  1713.  
  1714.  ┌───────────────────────┐
  1715.  │ UPLOAD                │
  1716.  └───────────────────────┘
  1717. │When you supply UPLOAD, RDS will display a menu of installed  protocols
  1718. │(look  at  the  UPLOAD  option  (primary)  in RDS.CTL). If there are no
  1719. │protocols installed for  upload or if  the current time  does not allow
  1720. │upload (See UploadHours option in RDS.CTL), upload will be impossible.
  1721. │After the  selection of  the protocol,  the user  can supply 1 filename
  1722. │for upload (with complete security check). After the user supplied  the
  1723. │file,  the  protocol  can  be  started  to actually transfer the files.
  1724. │When  using  UPLOAD  locally,  RDS  will  call the protocol, so you can
  1725. │check if the parameters for that protocol ar correct.
  1726.  
  1727.  ┌───────────────────────┐
  1728.  │ CHAT                  │
  1729.  └───────────────────────┘
  1730.  When this command is used, you can chat with any other line (also  with
  1731.  yourself,  makes  fun,  doesn't  it  ?).  This function is only present
  1732.  under Remote Access  and only when  /N is used  in the RDS  call on the
  1733.  menu-entry.
  1734.  
  1735.  ┌───────────────────────┐
  1736.  │ TIMELEFT              │
  1737.  └───────────────────────┘
  1738.  This function  will display  the remaining  time. RDS  will display the
  1739.  time left for this session. This  time is between 1 and 2  minutes less
  1740.  than the actual time because accessing RDS within 2 minutes before  the
  1741.  end of the session-time is impossible.
  1742.  
  1743.  ┌───────────────────────┐
  1744.  │ BEEP                  │
  1745.  └───────────────────────┘
  1746.  This command can  be used to  attract the Sysop's  attention. When BEEP
  1747.  is given on the  command-line, the Sysop will  be bothered with a  nice
  1748.  tune of beeps.  If she/he wants  to chat with  you, she/he can  enter a
  1749.  message  on  your  command-line  (locally)  f.i.  to  exit  RDS  and to
  1750.  continue chat in a normal chat-door.
  1751.  
  1752.  ┌───────────────────────┐
  1753.  │ LOG                   │
  1754.  └───────────────────────┘
  1755.  If you want to send  a message to the Sysop,  you can enter LOG with  a
  1756.  text and  RDS will  send this  message to  the RDS-log.  The Sysop  can
  1757.  check the  log (if  she/he does  so) and  answer you (if needed/wanted)
  1758.  with a message in the BBS.
  1759.  
  1760.  ┌───────────────────────┐
  1761.  │ WHERE                 │
  1762.  └───────────────────────┘
  1763.  With this  command you  can search  the CURRENT  drive for  a file or a
  1764.  number of  files. You  must supply  a valid  DOS-filemask and  RDS will
  1765.  search the CURRENT drive for matching files. They are displayed to  the
  1766.  user, along with the directory they are in.
  1767.  
  1768. │┌───────────────────────┐
  1769. ││ FREE                  │
  1770. │└───────────────────────┘
  1771. │With this command you can display (in graphics and text) the free space
  1772. │for a given drive. If  the drive is not present (A:, B:, unknown drive)
  1773. │RDS will trap the error and return a message.
  1774. │┌───────────────────────┐
  1775. ││ LABEL                 │
  1776. │└───────────────────────┘
  1777. │This is a,  somewhat simple, type of label. For security reasons, it is
  1778. │impossible to remove  an  existing label, nor can the user create a new
  1779. │label. LABEL can only be  used  to CHANGE the existing label into a new
  1780. │value.
  1781.  
  1782.  ┌───────────────────────┐
  1783.  │ MACRO                 │
  1784.  └───────────────────────┘
  1785.  See the chapter on macro's, expansion and command stacking.
  1786.  
  1787. │┌───────────────────────┐
  1788. ││ ALIAS and #aliasname  │
  1789. │└───────────────────────┘
  1790. │See the chapter on aliases.
  1791.  
  1792.  ┌───────────────────────┐
  1793.  │ EXPAND                │
  1794.  └───────────────────────┘
  1795.  See the chapter on macro's, expansion and command stacking.
  1796.  
  1797.  ┌───────────────────────┐
  1798.  │ MODEMSEND             │
  1799.  └───────────────────────┘
  1800. │With  this  command  you  will  enter  a complete terminal package. The
  1801. │routines used to communicate with the modem are asynchronous  routines.
  1802. │You can only MODEMSEND  on another modem than  the one you are  running
  1803. │on.
  1804. │The MODEMSEND command is meant  to send commands to the  selected modem
  1805. │but it CAN even be used to call the 'outside world' on the modem.  With
  1806. │some tricks you  could even call  a BBS and  download some files.  This
  1807. │must also be a very secured  command. It could happen that one  of your
  1808. │hacking users will use MODEMSEND to get files in a cheap way. How ?  By
  1809. │calling you local (on 2400 baud), using your MODEMSEND command to  call
  1810. │a foreign country (hopefully with  your 38400 quadruplex modem) and  to
  1811. │obtain some files  over there which  can be downloaded  by him at  2400
  1812. │baud (on local costs) !
  1813. │If you want to initialize the modem on COM2 f.i., you can supply:
  1814. │MODEMSEND 2     (2 is the com-port)
  1815. │and then give AT Z (wait for the answer).
  1816. │You can  quit by  sending RDS#QUIT  to the  terminal. In  that case the
  1817. │terminal will  stop and  you are  back on  the RDS  prompt ! Before the
  1818. │MODEMSEND command is executed, RDS  will first lower and raise  the DTR
  1819. │of  that  modem.   Also,  the  baudrate   at  which  to   perform   the
  1820. │communication will  be asked  if the  SysOp has  not included a MAXBAUD
  1821. │option (primary) inside his/her RDS.CTL !
  1822.  
  1823.  ┌───────────────────────┐
  1824.  │ MODEMSTAT             │
  1825.  └───────────────────────┘
  1826.  With this command you  can request the status  of a modem. You  will be
  1827.  returned the  status of  the CTS,  DSR, DTR,  CD, RI(NG)  and RTS.  The
  1828. │command will wait for a few  seconds to see if the RI(ING)  register is
  1829. │changing (DELTA-RING is not used).
  1830.  
  1831.  ┌───────────────────────┐
  1832.  │ SHELL                 │
  1833.  └───────────────────────┘
  1834.  This is a VERY DANGEROUS command  and should only be supplied to  users
  1835.  you trust (CoSysop, yourself (?)).  SHELL will execute the program  you
  1836.  supply as first parameter (you can include drive and path if you  want)
  1837.  and  uses  the  parameter(s)  (if  any)  following  the program-name as
  1838. │calling parameters for this program. The program is called with a  call
  1839. │to GETENV(COMSPEC) +  '/C' (so SHELL  PKZIP.EXE under DOS,  will result
  1840. │in  a  call  to  C:\COMMAND.COM  /C  PKZIP.EXE).  There  are some major
  1841. │drawbacks when using the SHELL command:
  1842.  
  1843.  -1) The called program  can not access any  input, so the program  must
  1844.      be able  to execute  without user-input.  Even a  program as  PKZIP
  1845.      uses  input  if  you  call  it  with invalid parameters or needs to
  1846.      overwrite files.  If RDS  calls such  a program,  the session  will
  1847.      hang  forever  because  you  can  never  enter  the  input  for the
  1848.      program. For this  reason, RDS will  set the FOSSIL-watchdog  to ON
  1849.      if a  program is  called. If  the carrier  is lost  (after the user
  1850.      will hangup  the line),  the FOSSIL  wil reboot  the system (please
  1851.      run a test !!!).  RDS  tries to overcome some minor errors  made by
  1852.      the user.  If the  user enters  SHELL PKZIP  -A$^&*&(()&^ TEST D*.*
  1853.      (some garbage on the line), PKZIP will display it's info and  waits
  1854.      for a  CRLF to  terminate. Before  RDS calls  the program, 15 times
  1855.      [RETURN] is  stuffed into  the local  keyboard, so  PKZIP will  (in
  1856.      THIS case) terminate. This will not fix problems like 'Over-  write
  1857.      file [y/n]' !.  The key-stuffing will  NOT be performed  when using
  1858.      SHELL on the local side !
  1859.  
  1860.  -2) The  called  program  should  not  access  non-bios  (e.g.  direct)
  1861.      output. If the program does use direct screen control, the  program
  1862.      can be  executed, but  the results  can not  be viewed  inside RDS.
  1863.      If  the  programs  uses  normal  standard devices, RDS will display
  1864.      (after  termination)  the  output  to  the local and remote screen.
  1865.      RDS  will  route  the  output  of  the  program to a temporary file
  1866.      (>RDS$$$$$.CAL) and will display  this file after the  execution is
  1867. │    completed. When running locally,  the rerouting of the  output will
  1868. │    NOT be performed and the output will be displayed directly !
  1869.  
  1870.  There are several programs that could  be very useful to execute.   The
  1871.  archivers (watch  out for  prompts !!),  the fossil  driver (XU or some
  1872.  other  program),  tossing,  scanning   (these  utilities  should   work
  1873.  unattended, shouldn't they ??) and so on;
  1874.  
  1875.  RDS will always return in the  directory it was started from after  the
  1876.  user enters EXIT, unless a  UserDirectory is active. In this  case, RDS
  1877.  will return to the directory that was current when RDS was CALLED !
  1878.  
  1879. │RDS will perform  a memory-swap (swaps  itself from memory)  before the
  1880. │command  is  called  under  DOS  (leaving  around  4K of RDS inside the
  1881. │conventional memory).
  1882.  
  1883.  
  1884. │┌───────────────────────┐
  1885. ││ SPAWN                 │
  1886. │└───────────────────────┘
  1887. │This is a VERY DANGEROUS command  and should only be supplied to  users
  1888. │you trust (CoSysop, yourself (?)).  SPAWN will execute the program  you
  1889. │supply as first parameter (you can include drive and path if you  want)
  1890. │and  uses  the  parameter(s)  (if  any)  following  the program-name as
  1891. │calling  parameters  for  this  program.  The  program is called with a
  1892. │DIRECT call  (so supply  the full  path to  the program).  This is  the
  1893. │major  difference  between  SHELL  and  SPAWN  !  There  are some major
  1894. │drawbacks  when  using  the  SPAWN  command.  They are the same as with
  1895. │SHELL !
  1896. │RDS will always return in the  directory it was started from after  the
  1897. │user enters EXIT, unless a  UserDirectory is active. In this  case, RDS
  1898. │will return to the directory that was current when RDS was CALLED !
  1899. │RDS will perform  a memory-swap (swaps  itself from memory)  before the
  1900. │command  is  called  under  DOS  (leaving  around  4K of RDS inside the
  1901. │conventional memory).
  1902.  
  1903.  
  1904.  3.5 Security
  1905.  ────────────────────────────────────────────────────────────────────────
  1906.  As you have  understand by now,  RDS is capable  of securing the  shell
  1907.  for each and every single user.
  1908.  
  1909.  A few hints to  concern about when setting  up the security inside  the
  1910.  USER-USEREND clusters:
  1911.  
  1912.  - If you want to know everything about what users (or yourself, or  the
  1913.    CoSysop)  have  done,  than  consider  to  secure the LOG-file with a
  1914.    ExcludeFile [the log  file] option, otherwise  these users can  cover
  1915.    their deeds by deleting the log or replacing it with a 'dummy' log;
  1916.  
  1917.  - If you want  real security, then you  must protect the RDS.CTL  also.
  1918.    There is nothing  more simple than  a user (having  the COPY feature)
  1919.    to upload  a 'customized'  RDS.CTL of  their own  and to  replace the
  1920.    original one with the one of their own. So be warned !!!!
  1921.  
  1922.  - It is a good practice to also secure the RDS.EXE program itself  from
  1923.    any ill-behavior. Old chinese wisdom will say:  'If there is a  leak,
  1924.    a BBS-user will use  it' and also Murphy  told us some stories  about
  1925.    'When you are able to accidently delete the RDS.EXE file, it will  be
  1926.    deleted'.
  1927.  
  1928.  - Protect  personal things  unless your  CoSysop (or  someone else  you
  1929.    give RDS features) knows as much about you as you know yourself;
  1930.  
  1931.  - Don't allow  your shrink to  use RDS. He  will find out  that the way
  1932.    you set up your directories has something to do with Freud;
  1933.  
  1934.  - If you  allow many users  directly after you  have installed RDS,  be
  1935.    sure to  have a  backup-copy available.  Work with  a small  group of
  1936.    people (at least  in the beginning)  or use the  USER ALL with  mini-
  1937.    mal options.
  1938.  
  1939.  - Study the  LOG once in  a while, and  set it to  ON in the beginning.
  1940.    In this way you can learn from your friendly CoSysop what to  include
  1941.    and what to exclude <grin>.
  1942.  
  1943.  - It is good  practice to secure your  'power users' (like those  nasty
  1944.    CoSysop's and such people)  with a RDS-password. If  someone snatches
  1945.    your  USERS.BBS  (sometimes  your  USERS.BBS  is wide open, check out
  1946.    your bi-directional  protocols and  such programs)  and does  a logon
  1947.    under  your  name  or  the  CoSysop's  name,  you  can  be  sure that
  1948.    everything is  lost EVEN  when there  is no  FORMAT statement  in RDS
  1949.    (MOVE, DELETE, RENAME and COPY will do the job just fine);
  1950.  
  1951.  - DON'T give away  the SHELL feature. A  nice option, but only  for the
  1952.    trusted user (SHELL FORMAT  C: /U to name  one) ! NoShell is  default
  1953.    so you  must include  SHELL for  you and  your CoSysop  in the  USER-
  1954.    USEREND cluster !!!
  1955.  
  1956. │- The same goes for SPAWN and ALIAS functions that need local input for
  1957. │  the called programs;
  1958.  
  1959.  
  1960.  3.6 Macro's, expansion and command-stacking
  1961.  ────────────────────────────────────────────────────────────────────────
  1962.  Why not implement wildcard support  on those commands that can  use it.
  1963.  This question  has to  do with  security. To  keep the memory resources
  1964.  tight, there  are generalized  security routines  implemented that work
  1965.  on single  files. Also,  in a  BBS environment,  wildcards can be handy
  1966.  but not used  much. Can you  see a CoSysop  deleting all your  files in
  1967.  one of your directories without having to think about it ? That is  one
  1968.  of the several reasons that only single-file commands are  implemented.
  1969.  The security structure  is based on  this algorithm, so  are the memory
  1970.  requirements.  Implementing  wildcards  on  any  command causes a large
  1971.  algorithm to  be triggered  to test  if every  request is  valid or not
  1972.  (imagine something  like COPY  *.* E:\ZIP\*.ZIP).  Besides the problems
  1973.  with  the  rename  (that  part  will  be  implemented in the next major
  1974.  command) on  these 'global'  commands like  COPY, RENAME  and MOVE, RDS
  1975.  has to check every source and every  target to see if this is what  the
  1976.  user is allowed to do.
  1977.  
  1978.  To support  wildcards and  to implement  macros (as  available in  this
  1979.  version) in some sort of way, RDS now has a command-stack. Some  basics
  1980.  on this command-stack.
  1981.  
  1982.  Before RDS checks for the next  command to be entered by the  user, RDS
  1983.  will  check  a  buffer  to  see  if  there  is  a command (a normal RDS
  1984.  command) available in  this buffer. If  it is, RDS  wil skip (for  now)
  1985.  the next user-input and starts  with this command. When the  command is
  1986.  ready,  RDS  will  delete  it  from  the  top  of  buffer and shift the
  1987.  remainder  of  the  buffer  one  place back (FIFO-buffer). This routine
  1988.  stays active  until there  are no  commands left  in the  buffer (empty
  1989.  buffer). If  this is  the case  RDS will,  as normal,  ask the user for
  1990.  input.   Two RDS  commands can  fill the  buffer. These  are EXPAND and
  1991.  MACRO.  Each of the commands  will add commands to the buffer  from the
  1992.  top.   This  will   always  be  done   with  the  following   algorithm
  1993.  (IMPORTANT, be-  cause this  will give  you knowledge  of how MACRO and
  1994.  EXPAND wil act when they are nested:
  1995.  
  1996.  In case of buffer-empty:
  1997.  
  1998.  - EXPAND  or  MACRO  knows  how  many  commands are to be added to  the
  1999.    buffer and will add them from top to bottom;
  2000.  
  2001.  In case of buffer-active (commands in the buffer):
  2002.  
  2003.  - The first thing  to know is that  the MACRO or EXPAND  was already on
  2004.    the buffer as a command. The user can not enter into the buffer  when
  2005.    there are commands in the buffer, so the MACRO or EXPAND was  already
  2006.    on the buffer;
  2007.  
  2008.  - EXPAND or MACRO know how many  lines to add to the buffer, BUT  these
  2009.    commands  are,  again,  inserted  at  the  TOP  of the buffer. So the
  2010.    buffer acts as  a LIFO (last  in, first out)  when a MACRO  or EXPAND
  2011.    command is taken from the buffer;
  2012.  
  2013.  - All remaining commands in the  buffer (if any) will shift to  the end
  2014.    of the inserted lines.
  2015.  
  2016.  RDS will check if there is  enough room to add commands to  the buffer,
  2017.  but RDS will not take into  account if the room is occupied  with other
  2018.  commands. In plain language. If your  buffer is 10 lines and there  are
  2019.  5 lines (EXPAND, COPY, COPY,  DEL, RENAME for example) and  the EXPAND,
  2020.  that is  executed first,  will generate  12 new  commands, EXPAND  will
  2021.  fail.  If  EXPAND  generates  4  lines,  they  are inserted at the top,
  2022.  resulting in  the RENAME,  DEL and  last COPY  to be  shifted from  the
  2023.  buffer. This last situation is NOT  detected by RDS (yet). I will  give
  2024.  an example at the end of this chapter.
  2025.  
  2026.  Now you  know that  RDS has  a command-stack,  explaining MACRO is very
  2027.  simple. You create  one (or more)  macro-files or the  user uses UPLOAD
  2028.  to upload a macro. The macro-file  is a plain ASCII file, containing  a
  2029.  RDS command on each of the lines in the file. An example:
  2030.  
  2031.  COPY TURBO.EXE E:\ZIP
  2032.  RENAME TURBO.EXE TURBO.BAK
  2033.  MOVE E:\ZIP\MACRO.EXE
  2034.  
  2035.  This macro  contains 3  RDS statements  in three  different lines.  The
  2036.  macro-file can  be as  big (but  NOT bigger)  than the  total number of
  2037.  lines in  the buffer  (as set  with the  MacroExpandBuffer option). The
  2038.  file is called  MACRO1.DAT for example.  So when you  enter the command
  2039.  MACRO C:\TUP\MACRO1.DAT  (or MACRO  MACRO1.DAT if  the macro  is in the
  2040.  current  directory),  RDS  will  read  MACRO1.DAT  and then execute the
  2041.  three commands (COPY, RENAME  and MOVE) in the  order they were in  the
  2042.  macro-file. You  CAN nest  macro-files as  long as  you remember not to
  2043.  overflow the buffer (see example at the end).
  2044.  
  2045.  EXPAND has nothing  to do with  macro's but act  the same. EXPAND  also
  2046.  uses the command-stack  in RDS. EXPAND  can be used  to implement wild-
  2047.  cards  in  certain  commands.  These  commands  are DEL, TYPE, VIEWARC,
  2048.  RTYPE, DOWNLOAD, COPY, MOVE and their alias (ERASE, LIST, RLIST).   How
  2049.  EXPAND works  can be  showed best  with an  example. You  would like to
  2050.  delete ALL  files with  *.BAK in  the directory  E:\ZIP. Normally,  you
  2051.  should use DIR *.BAK and delete every single file. With EXPAND you  use
  2052.  'EXPAND  DIR  *.BAK'  (without  quotes).  Now the following things will
  2053.  happen:
  2054.  
  2055.  - EXPAND will check for all files with that mask in that directory;
  2056.  
  2057.  - EXPAND will create a command  'DEL filename' for every found file  in
  2058.    that directory on the command-stack;
  2059.  
  2060.  - EXPAND  will terminate  and the  command-stack now  contains commands
  2061.    that will be executed at once.
  2062.  
  2063.  RDS will, as normal, check  every single 'DEL' command for  valid data.
  2064.  So if the  files TURBO.BAK, RA.BAK  and QB.BAK are  found (and commands
  2065.  are generated) and the user is  NOT allowed to access files with  QB.*,
  2066.  the 'DEL  QB.BAK' will  fail and  the others  will work.  RDS will keep
  2067.  full security on each of the generated commands.
  2068.  
  2069.  There are a few drawbacks in EXPAND:
  2070.  
  2071.  - When used with COPY and  MOVE, EXPAND will only work when  the target
  2072.    is  a  directory  (so  no  renaming  while COPY/MOVE). So the command
  2073.    'EXPAND COPY *.* E:\ZIP\' is  valid but 'EXPAND COPY *.BAK  *.OLD' is
  2074.    invalid (*.OLD is no directory).  This drawback will be fixed  in one
  2075.    of the next majors;
  2076.  
  2077.  - When  used  with  DOWNLOAD,  EXPAND  will  create  separate  DOWNLOAD
  2078.    commands,  causing  ill-behavior  of  the  command  because after the
  2079.    trans- mission of a single file, DOWNLOAD is terminated and the  next
  2080.    is started. This will also be fixed in the next major;
  2081.  
  2082.  EXPAND is a  powerful command and  MACRO can also  be very useful.  The
  2083.  combination of both  is valid in  case of EXPAND  commands inserted in-
  2084.  side a  macro file,  but not  valid in  case of  MACRO in  EXPAND (like
  2085.  'EXPAND MACRO *.MAC'.
  2086.  
  2087.  Now  an  example.  There  are  two  macro-files (the statements are all
  2088.  humbug) MACRO1.MAC and MACRO2.MAC:
  2089.  
  2090.  MACRO1.MAC              COPY A.A B.B
  2091.                          MACRO MACRO2.MAC
  2092.                          TYPE B.B
  2093.  
  2094.  MACRO2.MAC              TYPE A.A
  2095.                          EXPAND COPY *.* E:\ZIP
  2096.  
  2097.  The execution  is as  follows when  MACRO MACRO1.MAC  is entered at the
  2098.  RDS command-line:
  2099.  
  2100.  - COPY A.A B.B
  2101.  - MACRO MACRO2.MAC       (the macro2.mac is INSERTED in the stack)
  2102.  - TYPE A.A
  2103.  - EXPAND COPY *.* E:\ZIP (this command generates 2 statements    )
  2104.  - COPY A.A E:\ZIP\A.A    (generated by EXPAND                    )
  2105.  - COPY B.B E:\ZIP\B.B    (generated by EXPAND                    )
  2106.  - TYPE B.B
  2107.  
  2108.  Play around with EXPAND and  MACRO. The next majors will  enhance their
  2109.  functions again. Last but not least,  you can deny the usage of  EXPAND
  2110.  and/or MACRO, just like with all other commands.
  2111.  
  2112.  
  2113.  
  2114. │3.7 ALIAS's
  2115. │────────────────────────────────────────────────────────────────────────
  2116. │With RDS  release 2.01  and higher,  you can  make usage  of the  ALIAS
  2117. │mode.  If you have one or several tedious tasks that you would like  to
  2118. │perform  with  one  command  under  RDS,  you  can  create  a so called
  2119. │alias-file. You should examine  the ALIAS command (primary  command) in
  2120. │RDS.CTL for  a description  of the  format. The  alias-file itself  can
  2121. │contain an  unlimited number  of lines.  Each line  must contain either
  2122. │REM, SPAWN or SHELL at the begin  of the line and the rest of  the line
  2123. │will be  used as  the command  to perform.  In general,  you use  alias
  2124. │files when you  are LOCALLY under  RDS because all  commands inside the
  2125. │alias-file will  be performed  without questions  asked. In  this case,
  2126. │all  security  is  overruled.  Also,  all  programs that you call could
  2127. │generate  questions  which  can  NOT  be  answered  when running remote
  2128. │(again, RDS  is not  a doorway-alike  program). When  you only  want to
  2129. │perform RDS-commands, you can better use macros !
  2130. │An example of an ALIAS command in RDS.CTL:
  2131. │ALIAS CLEAN D:\BBS\RDS\CLEAN.RDA
  2132. │And the actual CLEAN.RDA file:
  2133. │This alias will delete all *.BAK files and call RFC
  2134. │SHELL DEL *.BAK /Y
  2135. │SHELL CD D:\OLDFILES
  2136. │SHELL DEL *.BAK /Y
  2137. │SPAWN D:\BBS\RFW\RFC.EXE
  2138. │The SHELL and  SPAWN commands work  the same as  when they are  entered
  2139. │under RDS (but without  security). The other statement is used to get a
  2140. │description of the ALIAS when you enter the command  ALIAS  inside RDS.
  2141. │That given line MUST be the first line inside the ALIAS-file.
  2142. │You can execute this alias by entering #CLEAN on the RDS  command-line.
  2143. │Users can  be denied  of the  usage of  this alias  when you  enter the
  2144. │NO#CLEAN option in their USER/USEREND subset.
  2145. │As a general  rule, you should  include a NOALIAS  sub-command in every
  2146. │USER/USEREND block (except your  own) or exclude the  dangerous aliases
  2147. │for all users.
  2148.  
  2149.  
  2150.  3.8 Help file format
  2151.  ────────────────────────────────────────────────────────────────────────
  2152.  Up from release  1.20, RDS makes  use of only  one help file  (previous
  2153.  versions used  a help-file  per command).  You can  alter the  supplied
  2154.  example of  the RDS.HLP  file to  your own  needs. To  do so,  you must
  2155.  understand the  basic formats  that are  used by  RDS when reading this
  2156.  help-file:
  2157.  
  2158.  - RDS read the RDS.HLP file sequential. For speed gain, you should  put
  2159.    the help-information that is  accessed most (e.g. NOT  COPY,DEL,MOVE)
  2160.    at the start of the file;
  2161.  
  2162.  - RDS  read each  line and  compares the  first 10  bytes (trimmed with
  2163.    trailing spaces)  with the  command you  would like  to have help on.
  2164.    RDS translates some commands. LIST  and RLIST are translated to  TYPE
  2165.    and RTYPE, ERASE is translated to  DEL, REN to rename and such  (look
  2166.    into the  original RDS.HLP  example-file. It  contains all  the valid
  2167.    commands);
  2168.  
  2169.  - The  next 78  bytes are  written to  the screen.  If you  use shorter
  2170.    lines, RDS  will fill  them to  78 bytes,  longer lines are truncated
  2171.    between the 78th and 79th position;
  2172.  
  2173.  - Lines containing 'ALL        '  in the first 10 positions  are always
  2174.    displayed (you can use them for headers and such);
  2175.  
  2176.  - Characters in the first 10 positions must be in uppercase;
  2177.  
  2178.  - Help-screens are displayed without  pause, so keep the length  of the
  2179.    help-text  inside  a  logical  screen  (19 lines) otherwise scrolling
  2180.    will be the case;
  2181.  
  2182.  The  current  help  features  are  extended  in the next major release.
  2183.  This release will probably contain overlays and swapping techniques  to
  2184.  gain memory  (for shell,  and more  new features/commands  on RDS)  and
  2185.  some of the  memory gain will  be used to  make the HELP  function more
  2186.  intelligent both to the user and the SysOp.
  2187.  
  2188.  ┌───────┬─────────────────────────────────────────────────────────────┐
  2189.  │   4   │ Runtime information                                         │
  2190.  └───────┴─────────────────────────────────────────────────────────────┘
  2191.  
  2192.  4.1 While inside the RDS shell
  2193.  ────────────────────────────────────────────────────────────────────────
  2194.  RDS  works  just  like  a  normal  DOS-prompt  ($P$G)  in a regular DOS
  2195.  environment. All commands can be entered just like you do while  inside
  2196.  the normal  DOS-shell. RDS  expands the  entered items  (paths, drives,
  2197.  file) to full path-names.  The only thing you  can't work with (at  the
  2198.  moment) is with  wildcards, so all  actions you enter  must be done  on
  2199.  single files !
  2200.  
  2201.  To help you with  tedious keyboard access when  you must copy, move  or
  2202.  delete multiple  files in  long paths,  RDS contains  a special  buffer
  2203.  with the last 100 (!) commands you entered.
  2204.  
  2205.  Locally you can recall these commands by pressing the UP-key until  you
  2206.  find a command that suits your  needs. Remote the UP-key does not  work
  2207.  but there you have  three other options to  recall the commands in  the
  2208.  buffer:
  2209.  
  2210.  - By pressing REC or RECALL
  2211.    When you enter REC (or RECALL) you get the previous command (if  any)
  2212.    on the command-line. To scroll  thru the buffer you must  (after each
  2213.    command) clear the line and enter REC again. REC is only useful  when
  2214.    you want to recall the LAST command;
  2215.  
  2216.  - By pressing CTRL-E
  2217.    Most users  of full-screen  message editors  will know  this command.
  2218.    When you send  a CTRL-E from  the remote computer,  RDS will act  the
  2219.    same as with the UP-key on the local computer. Even when the  command
  2220.    line is not empty, pressing CTRL-E will scroll back one command at  a
  2221.    time  until  no  more  commands  (up  to  100)  are left. This is the
  2222.    preferred method when scrolling back multiple commands;
  2223.  
  2224.  If you don't know anymore which commands can be used with RDS then  you
  2225.  should enter ? or  HELP to get a  display with all available  commands.
  2226.  When you enter an  empty line, RDS will  also remember you to  use ? or
  2227.  HELP to obtain all commands on the screen.
  2228.  
  2229.  
  2230. │4.2 Keyboard commands at the local side
  2231. │────────────────────────────────────────────────────────────────────────
  2232. │When RDS is active (either remote  or locally), you (as the Sysop)  can
  2233. │enter some (common) keyboard commands. They are:
  2234. │ALT-H   To hangup the user (without showing why)
  2235. │ALT-C   Execute a chat-program, but only active when you have  included
  2236. │        the CHATCALL option (primary) in RDS.CTL;
  2237. │ALT-J   Jump to DOS. The  jump will be shown to the user  (his keyboard
  2238. │        will be  locked and  he gets  a message).  RDS will swap before
  2239. │        the shell is actually called !
  2240. │In a later version I will  include a status-bar at the local  side. For
  2241. │now you  have to  remember these  keys but  they are  common to  almost
  2242. │every BBS program.
  2243.  
  2244.  
  2245.  4.3 LOG file
  2246.  ────────────────────────────────────────────────────────────────────────
  2247.  RDS makes a  log of almost  everything (unless you  do not specify  the
  2248.  LogPath option  in the  RDS.CTL). You  can always  browse thru  the log
  2249.  with a normal file-browse utility like Mr. Buerg's LIST.
  2250.  
  2251.  The log-style  can be  adjusted to  the users  need with four different
  2252.  options (see the description of RDS.CTL). Also you can combine the  log
  2253.  with an  existing log-file  like the  log your  mailer produces  or the
  2254.  BBS-log. In  a multitasking  environment (when  you loaded  SHARE), RDS
  2255.  will serialize the LOG  when it has to  write to it. This  is needed to
  2256.  overcome the problem of trashed log-files or lost clusters when two  or
  2257.  more tasks try to write to the same log.
  2258.  
  2259.  Depending on the  users actions, the  RDS.LOG file can  get very large.
  2260.  If you  delete your  current log-file,  RDS will  create a  new one the
  2261.  next time it is started and finds that there is no log-file anymore.
  2262.  
  2263.  If you allow your  users to use the  LOG command, it should  be advised
  2264.  to make the  RDS-logging active, otherwise  the users messages  will be
  2265.  send into the Twilight Zone.
  2266.  
  2267.  
  2268.  4.4 Errors
  2269.  ────────────────────────────────────────────────────────────────────────
  2270.  Every time RDS  is started, it  will check the  options in RDS.CTL.  If
  2271.  one or more of the options is invalid, RDS will terminate with a  local
  2272.  display (and if  the log-file is  already known to  RDS, by putting  an
  2273.  entry in the log-file).
  2274.  
  2275.  RDS will also terminate if a user is not allowed to enter the door  (no
  2276.  USER-USEREND combination for  that user) and  when the carrier  is lost
  2277.  while RDS is active. RDS will  NOT use any watchdog that is  present in
  2278.  your FOSSIL.
  2279.  
  2280.  
  2281.  4.5 Specialized command-line options
  2282.  ────────────────────────────────────────────────────────────────────────
  2283.  RDS  understands  some  command-line  parameters  that can (or must) be
  2284.  entered on the call to RDS (inside the menu-entry or a batch file).
  2285.  
  2286.  ┌───────────────────────┐
  2287. ││ -CTL[path_to_ctl]     │
  2288.  └───────────────────────┘
  2289.  You can use an alternate configuration  file. In this case you can  add
  2290. │the -CTL command-line option with the path (and name) of the  alternate
  2291.  configuration file.
  2292.  
  2293. │┌───────────────────────┐
  2294. ││ -B[baudrate]          │
  2295. │└───────────────────────┘
  2296. │If  you  want  to  overrule  the  baudrate  that normally is taken from
  2297. │EXITINFO.BBS or  DORINFO1.DEF (the  latter for  MAXIMUS and  OPUS), you
  2298. │can supply  -B with  the baudrate  (like -B2400  for 2400  baud).  This
  2299. │command-line parameter  is normally  not needed  unless the information
  2300. │from either EXITINFO.BBS or DORINFO1.DEF is incorrect.
  2301. │┌───────────────────────┐
  2302. ││ -C[com-port]          │
  2303. │└───────────────────────┘
  2304. │If  you  want  to  overrule  the  COM-port  that normally is taken from
  2305. │EXITINFO.BBS or  DORINFO1.DEF (the  latter for  MAXIMUS and  OPUS), you
  2306. │can supply -C with the COM-port (like -C1 for COM1). This  command-line
  2307. │parameter is  normally not  needed unless  the information  from either
  2308. │EXITINFO.BBS or DORINFO1.DEF is incorrect.
  2309. │┌───────────────────────┐
  2310. ││ -F[fossil-port]       │
  2311. │└───────────────────────┘
  2312. │If you  want to  overrule the  FOSSIL-port that  normally is taken from
  2313. │EXITINFO.BBS or DORINFO1.DEF (the latter for MAXIMUS and OPUS), and  is
  2314. │calculated as COM-port minus 1, you can supply -F with the  FOSSIl-port
  2315. │(like -F0 for FOSSIL-port  0). This command-line parameter  is normally
  2316. │not  needed  unless  the   information  from  either  EXITINFO.BBS   or
  2317. │DORINFO1.DEF is incorrect.
  2318.  
  2319.  ┌───────────────────────┐
  2320. ││ -N[line]              │
  2321.  └───────────────────────┘
  2322. │You must specify  -N*N on a  RA menu entry  to enable the  CHAT option.
  2323.  RA  will  substitute  the  numeric  line-number  at the location of *N.
  2324. │Under a different BBS, the usage of -N has no meaning.
  2325.  
  2326. │┌───────────────────────┐
  2327. ││ -D[directory]         │
  2328. │└───────────────────────┘
  2329. │This option can be  used when you want  to force the RDS-user  into one
  2330. │(and only one) directory. The user can only work inside this  directory
  2331. │and only files in this directory  can be accessed ! Use this  parameter
  2332. │if you want to setup RDS as  an alternative for a bunch of other  doors
  2333. │that  rule  a  given  BBS-area.  Most  BBS's  have  and  option  in the
  2334. │menu-file that can pass the directory of the current files-area to  RDS
  2335. │(or  any  other  door).  Try  it  out  and you see the strength of this
  2336. │option !
  2337.  
  2338.  ┌───────────────────────┐
  2339. ││ -LOC                  │
  2340.  └───────────────────────┘
  2341.  You  can  run  RDS  locally  (from  the  DOS-prompt)  without the files
  2342. │EXITINFO.BBS  and  DORINFO1.DEF  present  when  you  supply -LOC on the
  2343.  command-line.
  2344.  
  2345.  ┌───────┬─────────────────────────────────────────────────────────────┐
  2346.  │   5   │ Version information and credits                             │
  2347.  └───────┴─────────────────────────────────────────────────────────────┘
  2348.  
  2349.  5.1 The BETA-team
  2350.  ───────────────────────────────────────────────────────────────────────
  2351.  Look into  the file  SUPPORT.RDS for  a full  list of  all beta-testers
  2352.  and support nodes.
  2353.  
  2354.  
  2355.  
  2356.  5.2 Credits
  2357.  ───────────────────────────────────────────────────────────────────────
  2358.  Thanks  to  the  following  people  (besides  my eternal thanks for the
  2359.  BETA team):
  2360.  
  2361.  - All   paying, registered   users. You   made it   possible to enhance
  2362.    RDS with nice features;
  2363.  
  2364.  - All users who did write me bug reports, suggestions and so on;
  2365.  
  2366. │- This version (2.01) with a special thanks for Dirk Astrath who kicked
  2367. │  some life back into RDS;
  2368.  
  2369.  
  2370.  5.3 Version history
  2371.  ───────────────────────────────────────────────────────────────────────
  2372.  
  2373.  ┌───────┬────────────────────────────┐
  2374.  │ 1.01  │ First public release       │
  2375.  └───────┴────────────────────────────┘
  2376.   ■ New release
  2377.  
  2378.  ┌───────┬────────────────────────────┐
  2379.  │ 1.02  │ Minor release              │
  2380.  └───────┴────────────────────────────┘
  2381.   ■ Fixed  problem with  special keys.  Users were  not allowed to enter
  2382.     key-values in the  range 129-255. This  is a major  drawback for our
  2383.     (amongst  others)  German  and  Scandinavian users. The combinations
  2384.     must be send  to RDS as  the key-value, ALT-key-key-key  combination
  2385.     as  found  on  the  DOS-prompt   and  some  editors  is  not   (yet)
  2386.     implemented.
  2387.  
  2388.   ■ Users who  tried to TYPE/LIST  the RDS.LOG were  in for a  surprise.
  2389.     RDS would keep  the LOG open  while TYPE was  executed. This is  now
  2390.     fixed.
  2391.  
  2392.   ■ The usage of standard devices  AUX, CON, NUL, PRN, LPTx and  COMx is
  2393.     now forbidden.  This was  a big  hole in  the file  access and could
  2394.     cause hangups.
  2395.  
  2396.   ■ When  displaying HELP,  the user  got ALL  options, also  those that
  2397.     were  disabled.  This  is  fixed.  Users  now  only  get help on the
  2398.     available commands.
  2399.  
  2400.   ■ The LogPath option is enhanced so multiline users can use  different
  2401.     logs per logical line.
  2402.  
  2403.   ■ There was an error in  the (undocumented) usage of the RDS  environ-
  2404.     ment variable. Both documentation and program are fixed.
  2405.  
  2406.   ■ RDS can now be called  with an alternative CTL-file as an  option on
  2407.     the command-line.
  2408.  
  2409.   ■ Even if you  protect RDS with a  security level or when  you disable
  2410.     options for special users, you  can still secure these users  with a
  2411.     special RDS-password. User must (in that case) enter the pass-  word
  2412.     within 3 tries otherwise entering RDS is not allowed. Look into  the
  2413.     documentation about the USER option.
  2414.  
  2415.   ■ Users who are  tired entering new users  to RDS.CTL will be  pleased
  2416.     with the ALL enhancement. Check out the USER option.
  2417.  
  2418.   ■ RDS is now  more or less aware  of the new RA  1.00 USERON.BBS file.
  2419.     Until this info is official, this will stay 'more or less'.
  2420.  
  2421.   ■ Added a new command VIEWARC  to view the contents of ZIP,  ARC, PAK,
  2422.     PKPAK, LHarc, Larc, MD, DWC, ZOO, LBR archives.
  2423.  
  2424.  ┌───────┬────────────────────────────┐
  2425.  │ 1.05  │ Minor release              │
  2426.  └───────┴────────────────────────────┘
  2427.   ■ Fixed  some problems  with EXITINFO.BBS  and DORINFO1.DEF  files and
  2428.     created a local mode (/LOC);
  2429.  
  2430.   ■ Fixed a bug in MOVE (with /D);
  2431.  
  2432.   ■ Removed some duplicate coding;
  2433.  
  2434.   ■ Enhanced the HELP function with a context HELP function;
  2435.  
  2436.   ■ There was no  way to create a  file (batch-file or something  of the
  2437.     kind) inside  RDS. The  COPY CON  [tofile] is  now implemented.  The
  2438.     user can input characters and/or  lines and these are echoed  to the
  2439.     [tofile] file. Editing must  be terminated with CTRL-Z  (both remote
  2440.     and local);
  2441.  
  2442.   ■ Added specific support  for only RA and  QBBS and/or BBS types  that
  2443.     use EXITINFO.BBS and DORINFO1.DEF;
  2444.  
  2445.   ■ Added /N[line] option to support CHAT under Remote Access;
  2446.  
  2447.   ■ Added the RTYPE/RLIST option to read a file reversed;
  2448.  
  2449.   ■ Added  the  CHAT  function  to  send  messages to other lines  under
  2450.     Remote Access.  Also messages  send to  your own  line (don't forget
  2451.     /N*N in the  menu-call) are echoed  to the RDS-screen,  so internode
  2452.     chat is available while in RDS;
  2453.  
  2454.   ■ Added  the UPLOAD  and DOWNLOAD  functions so  you can upload and/or
  2455.     download a file while inside  RDS. This option needs DSZ  to perform
  2456.     the  transfer.   Added  the  DSZ  and  DSZParm options in RDS.CTL to
  2457.     support these functions;
  2458.  
  2459.   ■ Added  a time-out  test in  RDS. When  the user  does not  input any
  2460.     character within 5 minutes,  RDS terminates. Also carrier  is tested
  2461.     everywhere, so the WATCHDOG function  is disabled in RDS.   RDS will
  2462.     not reboot when the user drops the carrier;
  2463.  
  2464.   ■ Added  a test  on the  remaining time.  RDS will  terminate 1 minute
  2465.     before the BBS-session  will end. Also  access to RDS  is impossible
  2466.     within  2  minutes  before  the  session  ends;
  2467.  
  2468.   ■ Added the TIMELEFT command to display the remaining session time.
  2469.  
  2470.  ┌───────┬────────────────────────────┐
  2471.  │ 1.06  │ Minor release              │
  2472.  └───────┴────────────────────────────┘
  2473.   ■ Fixed an error in the RA (1.xx and up) USERON command. Both  message
  2474.     and ul/dl would display as ul/dl.
  2475.  
  2476.   ■ Added  the  SHELL  option  and  SHELL  command  in the  USER-USEREND
  2477.     clusters. Users can  now shell a  program such as  the archivers and
  2478.     other utilities but under certain conditions;
  2479.  
  2480.   ■ Added  the  HelpDirectory  option  for  those  users who are low  in
  2481.     environment space and who can  not add the directory containing  the
  2482.     *.RDS files to the DOS-path;
  2483.  
  2484.  ┌───────┬────────────────────────────┐
  2485.  │ 1.10  │ Minor release              │
  2486.  └───────┴────────────────────────────┘
  2487.   ■ Fixed  an error  in the  UserPassword option.  In some  cases a user
  2488.     could be  prompted for  a password  while this  was not  set in  the
  2489.     RDS.CTL.  In  that  case  a  previous  USER  ALL cluster contained a
  2490.     UserPassword option.
  2491.  
  2492.   ■ Added ARJ  and HYPER to  the VIEWARC options.  Files inside archives
  2493.     of this kind will also be displayed.
  2494.  
  2495.   ■ Added DefaultDirectory option so a user can land in a different
  2496.     directory than the current right from the start;
  2497.  
  2498.   ■ Added  LOG  option  to  let  the  user  write a message to the  log;
  2499.  
  2500.   ■ Added BEEP option to let the user beep the Sysop (if available);
  2501.  
  2502.   ■ Added WHERE option to search files on the current drive;
  2503.  
  2504.   ■ Added /W  to the DIR  option to display  a condensed listing  of the
  2505.     files in a directory.
  2506.  
  2507.  ┌───────┬────────────────────────────┐
  2508.  │ 1.20  │ Minor release              │
  2509.  └───────┴────────────────────────────┘
  2510.   ■ Fixed a bug  in the MEM command.  MEM did not show  the memory usage
  2511.     of  RDS  itself.  This  is  fixed.  MEM  will now give the REMAINING
  2512.     conventional memory.
  2513.  
  2514.   ■ Changed registration;
  2515.  
  2516.   ■ Changed  the *.RDS  help-files to  one new  RDS.HLP file, containing
  2517.     all help;
  2518.  
  2519.   ■ Added EXPAND command;
  2520.  
  2521.   ■ Added MACRO command;
  2522.  
  2523.  ┌───────┬────────────────────────────┐
  2524.  │ 1.30  │ Minor release              │
  2525.  └───────┴────────────────────────────┘
  2526.   ■ Fixed a bug in the key-support;
  2527.  
  2528.   ■ Fixed  a bug  in the  HelpDirectory command.  This command would not
  2529.     allow anything but a directory (so no filename);
  2530.  
  2531.   ■ Fixed a problem in the  HELP. HELP would scroll off the  screen. Now
  2532.     a MORE prompt will ask if this is allowed;
  2533.  
  2534.   ■ Fixed a bug in EXPAND.  When no files were found, EXPAND  would wait
  2535.     a while to return.  What the user could  not see was, that  the full
  2536.     internal RDS command-stack was trashed and some variables along  the
  2537.     way. This is fixed;
  2538.  
  2539.   ■ Added ModemSend  (NoModemSend) and ModemStat  (NoModemStat) commands
  2540.     (sub-types);
  2541.  
  2542.   ■ Added support  for a single  wildcard ('*') in  the ExcludeDirectory
  2543.     option in RDS.CTL;
  2544.  
  2545.   ■ Added coding for ARJ 1.xx and LZH 2.xx;
  2546.  
  2547.  ┌───────┬────────────────────────────┐
  2548.  │ 1.31  │ Minor release              │
  2549.  └───────┴────────────────────────────┘
  2550.   ■ Added coding for ARJ 2.10 (and up);
  2551.  
  2552.   ■ Fixed coding for LHA 2.xx;
  2553.  
  2554.   ■ Added faster routines for string-handling;
  2555.  
  2556.   ■ Fixed  a bug  in EXPAND  where RDS  could hang  for an  EXPAND on an
  2557.     invalid drive (A:, B:);
  2558.  
  2559.  ┌───────┬────────────────────────────┐
  2560.  │ 2.01  │ Major release              │
  2561.  └───────┴────────────────────────────┘
  2562.   ■ Removed the DSZ and DSZParm options;
  2563.  
  2564.   ■ Changed command-line options from / to - (so -N*N and not /N*N);
  2565.  
  2566.   ■ RDS could  trash the log-file  when it grow  above 64K. This  is now
  2567.     fixed;
  2568.  
  2569.   ■ RDS  would only  display a  non-destructive backspace  at the remote
  2570.     side. This is fixed;
  2571.  
  2572.   ■ Some newer types of  archives would not be reported  inside VIEWARC.
  2573.     This is fixed;
  2574.  
  2575.   ■ KILLFORCE did lower the DTR but did not raise it again. This is  now
  2576.     fixed;
  2577.  
  2578.   ■ MODEMSEND did cause hangups and  did not work as expected. The  BIOS
  2579.     calls are replaced by ASYNCH routines and the problem is fixed;
  2580.  
  2581.   ■ MODEMSTAT  only showed  the RING  status of  THAT moment.  MODEMSTAT
  2582.     will now  monitor the  modem-registers for  a few  seconds to see if
  2583.     there is a RING;
  2584.  
  2585.   ■ Fixed the USERON coding to work with newer types of Remote Access;
  2586.  
  2587.   ■ When using  DOWNLOAD/UPLOAD locally, the  protocol was not  actually
  2588.     called (only the command-line  was displayed). This is  changed. The
  2589.     protocol is now  called so the  SysOp can test  if the command-lines
  2590.     are ok;
  2591.  
  2592.   ■ UPLOAD  files were  not logged  inside the  RDS log-file.  This hase
  2593.     been fixed;
  2594.  
  2595.   ■ SHELL  did reroute  the output  even when  running locally. Also the
  2596.     keyboard was stuffed with CRLF  combinations. This is now only  done
  2597.     when RDS runs for a remote user;
  2598.  
  2599.   ■ A  single  RDS.CTL  can  now  be  coded  for  several  lines.  Added
  2600.     line-rule in RDS.CTL ala FileDoor <tm> style;
  2601.  
  2602.   ■ Added coding for 3 types  of RA, 2 types of QuickBBS,  Maximus, Opus
  2603.     and   SuperBBS   (RA00/RA10/RA11/QBBS/QNEW/SBBS/MAXI/OPUS   on   the
  2604.     BBSType option);
  2605.  
  2606.   ■ Added coding  to KILLFORCE to  ask if you  are sure to  perform this
  2607.     task;
  2608.  
  2609.   ■ Added coding  to MODEMSEND to  make it a  complete (ASYNCH) terminal
  2610.     when entered;
  2611.  
  2612.   ■ DATE and  TIME could only  be used in  combination with setting  the
  2613.     time and date. Added the NoSetTime and NoSetDate subtype options  so
  2614.     users can now  look at the  date and/or time  without the option  to
  2615.     alter;
  2616.  
  2617.   ■ UPLOAD and DOWNLOAD are rewritten.  You can now freely use up  to 10
  2618.     protocols for  UPLOAD and  10 (different)  for DOWNLOAD.  Also it is
  2619.     now possible  to supply  more than  one file  for DOWNLOAD  when the
  2620.     protocol can work with a file-list (@filelist.ext);
  2621.  
  2622.   ■ Added BEEPHours,  UPLOADHours and DOWNLOADHours  to limit the  BEEP,
  2623.     UPLOAD and DOWNLOAD commands inside specific periods;
  2624.  
  2625.   ■ Added  StartUpDirectory to  set the  default starting  directory for
  2626.     ALL users;
  2627.  
  2628.   ■ Added ChatCall  option to make  it possible to  start a normal  CHAT
  2629.     program while inside RDS;
  2630.  
  2631.   ■ Added  ALT-H (hangup),  ALT-J (swapped  DOS-shell) and  ALT-C (Chat)
  2632.     for the Sysop;
  2633.  
  2634.   ■ Added  SPAWN  routine.  Where  SHELL used COMMAND.COM (4DOS.COM)  to
  2635.     execute the program, SPAWN will directly call the given program;
  2636.  
  2637.   ■ Added ALIAS options. User  can not execute a series  of uncontrolled
  2638.     SPAWN/SHELL commands under one name to do some tedious tasks;
  2639.  
  2640.   ■ Added  -B,  -C,  and  -F  command-line  options  to  overrule    the
  2641.     baud-rate, COM-port and/or FOSSIL-port;
  2642.  
  2643.   ■ Added  -D command-line  option to  force the  user in  ONE (and only
  2644.     ONE) directory when he/she enters RDS;
  2645.  
  2646.   ■ Added NoForceDir sub-option  to overrule the -D  command-line option
  2647.     for some given users;
  2648.  
  2649.   ■ Added swapping to all shells (download, upload, shell and spawn);
  2650.  
  2651.   ■ RDS is now overlayed. This will cause a maximum of free memory;
  2652.  
  2653.   ■ Added NOEMS and NOXMS options to deny the usage of EMS and/or XMS
  2654.     for program-swap;
  2655.  
  2656.   ■ RDS can  now work without  EXITINFO.BBS (Maximus and  OPUS) and will
  2657.     obtain the information from DORINFO1.DEF;
  2658.  
  2659.   ■ Added the TREE command (and the NoTree subtype option). TREE  can be
  2660.     performed when TREE.COM or TREE.EXE is somewhere in the DOS path;
  2661.  
  2662.   ■ Added the FREE command (and the NoFree subtype option). FREE  can be
  2663.     used to display the free space on a given disk(ette);
  2664.  
  2665.   ■ Added the LABEL command (and the NoLabel subtype option). LABEL  can
  2666.     be used to change (not add or remove) labels on disk(ette);
  2667.  
  2668.   ■ Added  the  COMPARE  command (and the NoCompare subtype option). The
  2669.     compare will be executed when 2 files are of the same length;
  2670.  
  2671.  RDS is tested  with several releases  of MS/DOS and  with Remote Access
  2672.  version 1.11. It is also tested with 4Dos <tm> version 4.01 rev. B.
  2673.  
  2674.  
  2675.  5.4 Copyright, Trademarks
  2676.  ───────────────────────────────────────────────────────────────────────
  2677.  MS/DOS        is a trademark of Microsoft
  2678.  PC/DOS        is a trademark of International Business Machines
  2679.  4Dos          is a trademark of J.P. Software / R.C. Conn and T. Rawson
  2680.  QuickBBS      is a trademark of Pegasus Software
  2681.  SuperBBS      is a trademark of Risto Virkkala and Aki Antman
  2682.  Maximus       is a trademark of Scott J. Dudley
  2683.  OPUS          is a trademark of The OPUS group inc.
  2684.  FileDoor      is a trademark of Robert W. van Hoeven & DISP
  2685.  MTA           is a trademark of Robert W. van Hoeven & DISP
  2686.  FrontDoor     is a trademark of Joachim Homrichhausen
  2687.  Remote Access is a trademark of Continental Software
  2688.  
  2689.  RDS is written  in Turbo Pascal  6.0, with help  of the Turbo  Debugger
  2690. │2.5 and  makes extensive  use of  Object Professional  1.14 and OPCFI V
  2691. │15.01.    Some  routines   are  obtained   from  TurboPower's    Asynch
  2692. │Professional  1.04.   Both  STRG  and  SYS  (6.1  and  6.0a, commercial
  2693. │version) are included. Sources are edited with BRIEF 3.1;
  2694.  
  2695.  Turbo Pascal        is a trademark  of Borland International
  2696.  Turbo Debugger      is a trademark  of Borland International
  2697.  Object Professional is a trademark  of TurboPower Inc.
  2698.  Asynch Professional is a trademark  of TurboPower Inc.
  2699.  OPCFI               is a trademark  of Robert W. van Hoeven
  2700.  STRG and SYS        are  trademarks of Eagle Performance Software
  2701.  BRIEF               is a trademark  SolutionSystem
  2702.  
  2703.  ========================= END OF DOCUMENT =============================
  2704.