home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / RMDOOR30.ZIP / RMDOOR.DOC < prev    next >
Encoding:
Text File  |  1992-08-18  |  18.4 KB  |  991 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                                      RMDoor
  34.                                    Version 3.0
  35.              Copyright (c) 1991-1992 By Mark Goodwin and Randy Hunt
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.      RMDoor                                                               i
  77.  
  78.                                 COPYRIGHT NOTICE
  79.                                 ----------------
  80.  
  81.      RMDoor is a copyrighted program  being distributed under the shareware
  82.      concept.  As such you  may use RMDoor for a period of  30 days without
  83.      registering the  software.   After the 30  day evaluation  period, you
  84.      must register  your copy  of RMDoor  or you  will be  in violation  of
  85.      United States and International copyright laws.
  86.  
  87.      As a  shareware program,  RMDoor may be  freely distributed  through a
  88.      BBS.  Shareware  distributors may distribute copies of  RMDoor on disk
  89.      for a modest disk duplication charge not to exceed $6 per disk.
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.      RMDoor                                                              ii
  145.  
  146.                                     WARRANTY
  147.                                     --------
  148.  
  149.      RMDoor is distributed without warranty.  In no event will Mark Goodwin
  150.      or Randy  Hunt be  liable to you  for damages,  including any  loss of
  151.      profits,  lost savings, or  other incidental or  consequential damages
  152.      arising  out of your use  of or inability to  use the program, even if
  153.      Mark Goodwin,  Randy Hunt,  or an  authorized representative  has been
  154.      advised of the possibility  of such damages.   Mark Goodwin and  Randy
  155.      Hunt will not be liable for any such claim by any other party.
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.      RMDoor                                                             iii
  213.  
  214.                                 TABLE OF CONTENTS
  215.                                 -----------------
  216.  
  217.  
  218.      INTRODUCTION  . . . . . . . . . . . . . . . . . . . . . . . . . .    1
  219.  
  220.      USING RMDOOR  . . . . . . . . . . . . . . . . . . . . . . . . . .    2
  221.  
  222.      RUNNING AN RMDOOR DOOR  . . . . . . . . . . . . . . . . . . . . .    3
  223.  
  224.      SPECIAL KEYS  . . . . . . . . . . . . . . . . . . . . . . . . . .    4
  225.  
  226.      THE RMDOOR VARIABLES  . . . . . . . . . . . . . . . . . . . . . .    5
  227.           ansicolor  . . . . . . . . . . . . . . . . . . . . . . . . .    5
  228.           baudrate . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  229.           bbsname  . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  230.           callingfrom  . . . . . . . . . . . . . . . . . . . . . . . .    5
  231.           doorname . . . . . . . . . . . . . . . . . . . . . . . . . .    5
  232.           lockedrate . . . . . . . . . . . . . . . . . . . . . . . . .    5
  233.           minutesleft  . . . . . . . . . . . . . . . . . . . . . . . .    5
  234.           phonenumber  . . . . . . . . . . . . . . . . . . . . . . . .    6
  235.           seclevel . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  236.           sysopname  . . . . . . . . . . . . . . . . . . . . . . . . .    6
  237.           userfirstname  . . . . . . . . . . . . . . . . . . . . . . .    6
  238.           username . . . . . . . . . . . . . . . . . . . . . . . . . .    6
  239.  
  240.      THE RMDOOR PROCEDURES AND FUNCTIONS . . . . . . . . . . . . . . .    7
  241.           rmclrscr . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  242.           rmdisplayfile  . . . . . . . . . . . . . . . . . . . . . . .    7
  243.           rmgetbackground  . . . . . . . . . . . . . . . . . . . . . .    7
  244.           rmgetforeground  . . . . . . . . . . . . . . . . . . . . . .    7
  245.           rmgotoxy . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  246.           rmreadi  . . . . . . . . . . . . . . . . . . . . . . . . . .    7
  247.           rmreadkey  . . . . . . . . . . . . . . . . . . . . . . . . .    7
  248.           rmreadl  . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  249.           rmreads  . . . . . . . . . . . . . . . . . . . . . . . . . .    8
  250.           rmsetcolor . . . . . . . . . . . . . . . . . . . . . . . . .    8
  251.           rmtimeleft . . . . . . . . . . . . . . . . . . . . . . . . .    9
  252.           rmtimeon . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  253.           rmwrite  . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  254.           rmwritei . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  255.           rmwritel . . . . . . . . . . . . . . . . . . . . . . . . . .    9
  256.           rmwriteln  . . . . . . . . . . . . . . . . . . . . . . . . .    9
  257.           rmwritelni . . . . . . . . . . . . . . . . . . . . . . . . .    9
  258.           rmwritelnl . . . . . . . . . . . . . . . . . . . . . . . . .   10
  259.  
  260.      SUPPORT . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   11
  261.  
  262.      REGISTRATION  . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.      RMDoor                                                               1
  281.  
  282.                                   INTRODUCTION
  283.                                   ------------
  284.  
  285.      RMDoor is  a comprehensive  set of Turbo  Pascal routines  designed to
  286.      enable programmers to easily write doors for BBSes.  The following are
  287.      some of RMDoor's many features:
  288.  
  289.           Assembly language  serial input/output routines  for maximum
  290.           speed.
  291.  
  292.           Fully supports high  speed modems: 16550 FIFO  buffering and
  293.           locked serial ports.
  294.  
  295.           Built in ANSI  terminal emulator.  No need  to have ANSI.SYS
  296.           loaded in memory.
  297.  
  298.           Supports all  of the  most popular  door data  file formats:
  299.           TriBBS, PCBoard, GAP  (DOOR.SYS), Spitfire, WildCat!,  RBBS,
  300.           and WWIV.   Thus, a  door built around RMDoor  is compatible
  301.           with a wide range of BBS software.
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.      RMDoor                                                               2
  349.  
  350.                                   USING RMDOOR
  351.                                   ------------
  352.  
  353.      Because RMDoor  comes  supplied  is a  Turbo  Pascal unit  it  can  be
  354.      seamlessly integrated with your door  program by simply including  the
  355.      following two lines in your door program:
  356.  
  357.      {$M $4000,0,0}
  358.      uses rmdoor;
  359.  
  360.      The first line is a {$M} compiler directive and is necessary to enable
  361.      RMDoor's  Drop to DOS function.  If  you omit this line from your door
  362.      program, RMDoor will not be  able to drop to  DOS and will display  an
  363.      appropriate  error message  to the  sysop.   NOTE:  The {$M}  compiler
  364.      directive  also affects your program's  heap space.   Be sure that the
  365.      final  two values  are  set accordingly  if  you dynamically  allocate
  366.      memory.
  367.  
  368.      The  second line  is a  "uses"  statement and  simply instructs  Turbo
  369.      Pascal to include the RMDOOR.TPU unit in your compiled door program.
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.      RMDoor                                                               3
  417.  
  418.                              RUNNING AN RMDOOR DOOR
  419.                              ----------------------
  420.  
  421.      An RMDoor-based door program  is run by entering a  command similar to
  422.      the following:
  423.       
  424.      door config
  425.  
  426.      In the  above command line, "door" is the name of your door's EXE file
  427.      and the  "config" parameter  is the name  of the  door's configuration
  428.      file.  The configuration file can have any name the sysop chooses, but
  429.      it must reside in  the same directory as the door.   The configuration
  430.      file is an ASCII text file with the following format:
  431.  
  432.      Line 1:   Door data file type.
  433.      Line 2:   Path to the door data file(s).
  434.      Line 3:   BBS name.
  435.      Line 4:   Sysop's name.
  436.      Line 5:   Locked baud rate.
  437.  
  438.      As illustrated above, the door's data file type is specified in line 1
  439.      and can be PCB for PCBoard,  GAP for GAP (DOOR.SYS), SF for  Spitfire,
  440.      RBBS for  RBBS, WC for WildCat!, TRIBBS for  TriBBS, or WWIV for WWIV.
  441.      The  locked baud rate  is specified in  line 5.   If the sysop doesn't
  442.      lock  his serial  port, he must  specify 0  for the locked  baud rate.
  443.      NOTE: Although  many door formats do pass the  locked baud rate in the
  444.      door  data  files,  some older  formats  such  as RBBS  do  not.   For
  445.      conformity, RMDoor requires  that you specify the locked  baud rate in
  446.      line 5 and ignores any value passed in the door data files.
  447.  
  448.      The following is a sample door configuration file:
  449.  
  450.      PCB
  451.      C:\tribbs\
  452.      The Lobster Buoy
  453.      Mark Goodwin
  454.      38400
  455.  
  456.      RMDoor can be  run locally  without a  door data file  (handy for  the
  457.      sysop to  use the door  without logging on  to the BBS)  by specifying
  458.      LOCAL after the configuration file  parameter in the DOS command line.
  459.      RMDoor will  request the  user to enter  his name  before running  the
  460.      door.
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.      RMDoor                                                               4
  485.  
  486.                                   SPECIAL KEYS
  487.                                   ------------
  488.  
  489.      While a door is running, the  sysop can press certain special keys  to
  490.      perform  a variety  of functions.    The following  is a  list  of the
  491.      functions that the RMDoor special keys perform:
  492.  
  493.      Key(s)              Function
  494.  
  495.      HOME                Toggles  between the user status window and a help
  496.                          display that lists the RMDoor special keys.
  497.  
  498.      F6                  Takes 5 minutes away from the caller.
  499.                          NOTE:  This will NOT be returned to BBS.
  500.  
  501.      F7                  Gives 5 minutes to the caller.
  502.                          NOTE:  This will NOT be returned to the BBS.
  503.  
  504.      F9                  Quit the door and return the caller to the BBS.
  505.  
  506.      F10                 Enter  chat mode.  Pressing  the ESC key exits the
  507.                          chat mode.
  508.  
  509.      Alt+D               Drop to DOS.
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.      RMDoor                                                               5
  553.  
  554.                               THE RMDOOR VARIABLES
  555.                               --------------------
  556.  
  557.      The following  are the global  variables that RMDoor supplies  for the
  558.      door author's convenience:
  559.  
  560.  
  561.      ansicolor : boolean;
  562.  
  563.      The ansicolor variable  is set to True  for a caller using  ANSI color
  564.      graphics or to False for a monochrome caller.
  565.  
  566.  
  567.      baudrate : longint;
  568.  
  569.      The baudrate  variable holds  the caller's  baud rate.    This is  the
  570.      callers actual  connection rate and not  the locked baud rate.   NOTE:
  571.      RMDoor will set baudrate to 0 for local calls.
  572.  
  573.  
  574.      bbsname : string;
  575.  
  576.      The bbsname variable holds the BBS's name.
  577.  
  578.  
  579.      callingfrom : string;
  580.  
  581.      The callingfrom  variable holds the user's  city and state.   This may
  582.      not be supported by all door formats  and will be set to a null string
  583.      if not.
  584.  
  585.  
  586.      doorname : string;
  587.  
  588.      The doorname variable holds the door's name.  The door's name  will be
  589.      displayed in the  user status window.   NOTE: It is the  door author's
  590.      responsibility to assign a value to this variable.
  591.  
  592.  
  593.      lockedrate : longint;
  594.  
  595.      The lockedrate variable  holds the serial port's locked  baud rate, if
  596.      any.
  597.  
  598.  
  599.      minutesleft : integer;
  600.  
  601.      The minutesleft  variable holds the  number of minutes the  caller had
  602.      remaining when he entered the door.
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.      RMDoor                                                               6
  621.  
  622.  
  623.      phonenumber : string;
  624.  
  625.      The  phonenumber variable holds the user's phone number.  This may not
  626.      be supported by all door  formats and will be set to a  null string if
  627.      not.
  628.  
  629.  
  630.      seclevel : integer;
  631.  
  632.      The seclevel variable holds the caller's security level.
  633.  
  634.  
  635.      sysopname : string;
  636.  
  637.      The sysopname variable holds the sysop's name.
  638.  
  639.  
  640.      userfirstname : string;
  641.  
  642.      The userfirstname variable holds the user's first name.
  643.  
  644.  
  645.      username : string;
  646.  
  647.      The username variable holds the user's name.
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.      RMDoor                                                               7
  689.  
  690.                        THE RMDOOR PROCEDURES AND FUNCTIONS
  691.                        -----------------------------------
  692.  
  693.      The following is a explanation of procedures and functions that RMDoor
  694.      provides:
  695.  
  696.  
  697.      procedure rmclrscr;
  698.  
  699.      The rmclrscr procedure clears both the local and remote displays.
  700.  
  701.  
  702.      procedure rmdisplayfile(filename : string; pause : boolean);
  703.  
  704.      The  rmdisplayfile procedure displays a file to both the local and the
  705.      remote displays.  The file to be displayed is specified by "filename".
  706.      The "pause"  parameter specifies whether or  not the display is  to be
  707.      paused every 24 lines.
  708.  
  709.  
  710.      function rmgetbackground : integer;
  711.  
  712.      The rmgetbackground function returns the current background color.
  713.  
  714.  
  715.      function rmgetforeground : integer;
  716.  
  717.      The rmgetforeground function returns the current foreground color.
  718.  
  719.  
  720.      procedure rmgotoxy(x, y : integer);
  721.  
  722.      The rmgotoxy  procedure positions  the cursor for  both the  local and
  723.      remote displays.  The cursor's new column position is specified by the
  724.      "x" parameter  and  its new  row  position  is specified  by  the  "y"
  725.      parameter.  NOTE:  This will only  work if the  user has ANSI  enabled
  726.      (RMDoor  will ignore this statement  if called when  the user does not
  727.      have ANSI enabled).
  728.  
  729.  
  730.      function rmreadi : integer;
  731.  
  732.      The rmreadi function returns the  value of an integer that  is entered
  733.      either locally or remotely.
  734.  
  735.  
  736.      function rmreadkey : char;
  737.  
  738.      The rmreadkey  function waits  for either  a key  to be  pressed or  a
  739.      character to come in through the serial port.  As soon as  a character
  740.      is available, its value will be returned by rmreadkey.
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.      RMDoor                                                               8
  757.  
  758.      function rmreadl : longint;
  759.  
  760.      The rmreadl function  returns the value  of a longint that  is entered
  761.      either locally or remotely.
  762.  
  763.  
  764.      function rmreads : string;
  765.  
  766.      The  rmreads function returns  the value of  a string that  is entered
  767.      either locally or remotely.
  768.  
  769.  
  770.      procedure rmsetcolor(f, b : integer);
  771.  
  772.      The rmsetcolor procedure sets the foreground color (the "f" parameter)
  773.      and the background  color (the "b" parameter)  for both the  local and
  774.      remote displays.   NOTE: The colors will only be set if the caller has
  775.      ANSI color graphics enabled.  The foreground colors are as follows:
  776.  
  777.            0 - Black
  778.            1 - Blue
  779.            2 - Green
  780.            3 - Cyan
  781.            4 - Red
  782.            5 - Magenta
  783.            6 - Brown
  784.            7 - White
  785.            8 - Dark grey
  786.            9 - Light blue
  787.           10 - Light green
  788.           11 - Light cyan
  789.           12 - Light red
  790.           13 - Light magenta
  791.           14 - Yellow
  792.           15 - Bright white
  793.  
  794.      The background colors are as follows:
  795.  
  796.            0 - Black
  797.            1 - Blue
  798.            2 - Green
  799.            3 - Cyan
  800.            4 - Red
  801.            5 - Magenta
  802.            6 - Brown
  803.            7 - White
  804.            8 - Black with blinking foreground
  805.            9 - Blue with blinking foreground
  806.           10 - Green with blinking foreground
  807.           11 - Cyan with blinking foreground
  808.           12 - Red with blinking foreground
  809.           13 - Magenta with blinking foreground
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.      RMDoor                                                               9
  825.  
  826.           14 - Yellow with blinking foreground
  827.           15 - White with blinking foreground
  828.  
  829.  
  830.      function rmtimeleft : integer;
  831.  
  832.      The rmtimeleft function  returns the number of minutes  the caller has
  833.      remaining.
  834.  
  835.  
  836.      function rmtimeon : integer;
  837.  
  838.      The rmtimeon  function returns the  number of minutes that  the caller
  839.      has been in the door.
  840.  
  841.  
  842.      procedure rmwrite(s:string);
  843.  
  844.      The rmwrite procedure displays a string both locally and remotely.
  845.  
  846.  
  847.      procedure rmwritei(i : integer);
  848.  
  849.      The rmwritei procedure displays an integer both locally and remotely.
  850.  
  851.  
  852.      procedure rmwritel(l : longint);
  853.  
  854.      The rmwritel procedure displays a longint both locally and remotely.
  855.  
  856.  
  857.      procedure rmwriteln(s:string);
  858.  
  859.      The rmwriteln procedure displays  a string both locally and  remotely.
  860.      After  displaying the string,  RMDoor will  send a  CR/LF pair  to the
  861.      local and remote displays.
  862.  
  863.  
  864.      procedure rmwritelni(i : integer);
  865.  
  866.      The   rmwritelni  procedure  displays  an  integer  both  locally  and
  867.      remotely.  After displaying the integer, RMDoor will send a CR/LF pair
  868.      to the local and remote displays.
  869.  
  870.  
  871.      procedure rmwritelnl(l : longint);
  872.  
  873.      The rmwritelnl procedure displays a longint both locally and remotely.
  874.      After displaying  the longint,  RMDoor will send  a CR/LF pair  to the
  875.      local and remote displays.
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.      RMDoor                                                              10
  893.  
  894.                                      SUPPORT
  895.                                      -------
  896.  
  897.      You may  obtain assistance  with a RMDoor  related problem  by calling
  898.      either The Lobster Buoy at 207-941-0805.
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.      RMDoor                                                              11
  961.  
  962.                                   REGISTRATION
  963.                                   ------------
  964.  
  965.      Registration of  RMDoor is only  $25.00.  Please  use the form  in the
  966.      file  REGISTER.TXT.   When you  register  RMDoor, you  will receive  a
  967.      letter  of verification  and  a note  on how  to  turn your  shareware
  968.      version of RMDoor into a registered version.
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.