home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / RMDOOR10.ZIP / RMDOOR.DOC < prev    next >
Encoding:
Text File  |  1991-11-09  |  18.1 KB  |  1,057 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 1.0
  35.              Copyright (c) 1991 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
  82.      shareware concept.  As such you may use RMDoor for a period of 30
  83.      days  without  registering  the  software.    After  the  30  day
  84.      evaluation period, you must  register your copy of RMDoor  or you
  85.      will be in violation of United States and International copyright
  86.      laws.
  87.  
  88.      As a shareware program, RMDoor may  be freely distributed through
  89.      a BBS.  Shareware distributors may distribute copies of RMDoor on
  90.      disk for  a modest disk duplication  charge not to exceed  $6 per
  91.      disk.
  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
  150.      Goodwin  or Randy Hunt be  liable to your  for damages, including
  151.      any  loss  of  profits,  lost savings,  or  other  incidental  or
  152.      consequential  damages arising out of your use of or inability to
  153.      use  the program,  even  if  Mark  Goodwin,  Randy  Hunt,  or  an
  154.      authorized representative has been  advised of the possibility of
  155.      such damages.  Mark Goodwin and Randy Hunt will not be liable for
  156.      any such claim by any other party.
  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 FUNCTION  . . . . . . . . . . . . .   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 . . . . . . . . . . . . . . . . . . . . . . .   9
  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
  286.      to  enable  programmers to  easily write  doors  for BBSes.   The
  287.      following are some of RMDoor's many features:
  288.  
  289.           Assembly  language  serial  input/output  routines  for
  290.           maximum speed.
  291.  
  292.           Fully supports  high speed modems: 16550 FIFO buffering
  293.           and locked serial ports.
  294.  
  295.           Built  in  ANSI terminal  emulator.   No  need  to have
  296.           ANSI.SYS loaded in memory.
  297.  
  298.           Supports  all  of  the  most  popular  door  data  file
  299.           formats: PCBoard, GAP  (DOOR.SYS), Spitfire,  WildCat!,
  300.           and  RBBS.    Thus,  a  door  built  around  RMDoor  is
  301.           compatible 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
  355.      the 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
  361.      enable RMDoor's Drop to DOS function.  If you omit this line from
  362.      your  door program, RMDoor  will not be  able to drop  to DOS and
  363.      will  display an appropriate error  message to the  sysop.  NOTE:
  364.      The  {$M} compiler  directive  also effects  your program's  heap
  365.      space.   Be sure that the final two values are set accordingly if
  366.      you dynamically allocate 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
  370.      program.
  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
  422.      to the following:
  423.       
  424.      door config
  425.  
  426.      In the above command line, "door"  is the name of your door's EXE
  427.      file  and  the  "config" parameter  is  the  name  of the  door's
  428.      configuration file.  The configuration file can have any name the
  429.      sysop chooses, but it  must reside in the  same directory as  the
  430.      door.   The configuration  file is  an ASCII  text file  with the
  431.      following format:
  432.  
  433.      Line 1:   Door data file type.
  434.      Line 2:   Path to the door data file(s).
  435.      Line 3:   BBS name.
  436.      Line 4:   Sysop's name.
  437.      Line 5:   Locked baud rate.
  438.  
  439.      As illustrated above, the  door's data file type is  specified in
  440.      line 1 and can be PCB for PCBoard, GAP for GAP (DOOR.SYS), SF for
  441.      Spitfire, RBBS  for RBBS, or  WC for  WildCat!.  The  locked baud
  442.      rate  is specified  in line  5.   If the  sysop doesn't  lock his
  443.      serial  port, he must specify 0 for  the locked baud rate.  NOTE:
  444.      Although  many door formats do  pass the locked  baud rate in the
  445.      door  data files, some  older formats such  as RBBS do  not.  For
  446.      conformity, RMDoor requires that you specify the locked baud rate
  447.      in line 5 and ignores any value passed in the door data files.
  448.  
  449.      The following is a sample door configuration file:
  450.  
  451.      PCB
  452.      C:\tritel\
  453.      The Lobster Buoy
  454.      Mark Goodwin
  455.      38400
  456.  
  457.      RMDoor can be run locally without a door data file (handy for the
  458.      sysop  to  use  the  door  without  logging on  to  the  BBS)  by
  459.      specifying LOCAL  after the  configuration file parameter  in the
  460.      DOS command line.  RMDoor will request the user to enter his name
  461.      before running the door.
  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
  490.      to perform  a variety of functions.   The following is  a list of
  491.      the functions that the RMDoor special keys perform:
  492.  
  493.      Key(s)              Function
  494.  
  495.      HOME                Toggles between the user status  window and a
  496.                          help  display that  lists the  RMDoor special
  497.                          keys.
  498.  
  499.      F6                  Takes 5 minutes away from the caller.
  500.  
  501.      F7                  Gives 5 minutes to the caller.
  502.  
  503.      F9                  Quit the  door and  return the caller  to the
  504.                          BBS.
  505.  
  506.      F10                 Enter chat mode.   Pressing the ESC key exits
  507.                          the 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
  558.      the door author's convenience:
  559.  
  560.  
  561.      ansicolor : boolean;
  562.  
  563.      The  ansicolor variable is  set to True  for a caller  using ANSI
  564.      color 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.
  571.      NOTE: 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
  582.      may not be  supported by all  door formats and  will be set to  a
  583.      null string if not.
  584.  
  585.  
  586.      doorname : string;
  587.  
  588.      The doorname variable  holds the  door's name.   The door's  name
  589.      will be  displayed in the  user status window.   NOTE: It  is the
  590.      door author's 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,
  596.      if any.
  597.  
  598.  
  599.      minutesleft : integer;
  600.  
  601.      The  minutesleft variable holds the number  of minutes the caller
  602.      had 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
  626.      not be supported by  all door formats and  will be set to  a null
  627.      string if 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 FUNCTION
  691.                      ----------------------------------
  692.  
  693.      The following is  a explanation of procedures and  functions that
  694.      RMDoor 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
  705.      the  remote displays.  The  file to be  displayed is specified by
  706.      "filename".   The "pause" parameter specifies whether  or not the
  707.      display is to be paused every 24 lines.
  708.  
  709.  
  710.      function rmgetbackground : integer;
  711.  
  712.      The  rmgetbackground  function  returns  the  current  background
  713.      color.
  714.  
  715.  
  716.      function rmgetforeground : integer;
  717.  
  718.      The  rmgetforeground  function  returns  the  current  foreground
  719.      color.
  720.  
  721.  
  722.      procedure rmgotoxy(x, y : integer);
  723.  
  724.      The rmgotoxy procedure  positions the cursor  for both the  local
  725.      and  remote displays.    The  cursor's  new  column  position  is
  726.      specified  by the  "x"  parameter and  its  new row  position  is
  727.      specified by the "y" parameter.
  728.  
  729.  
  730.      function rmreadi : integer;
  731.  
  732.      The  rmreadi function  returns the  value of  an integer  that is
  733.      entered 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
  740.      character 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
  761.      entered either locally or remotely.
  762.  
  763.  
  764.      function rmreads : string;
  765.  
  766.      The  rmreads function  returns  the value  of  a string  that  is
  767.      entered either locally or remotely.
  768.  
  769.  
  770.      procedure rmsetcolor(f, b : integer);
  771.  
  772.      The  rmsetcolor  procedure sets  the  foreground  color (the  "f"
  773.      parameter) and the background color (the "b"  parameter) for both
  774.      the local and remote displays.  NOTE: The colors will only be set
  775.      if  the caller has ANSI  color graphics enabled.   The foreground
  776.      colors are as follows:
  777.  
  778.            0 - Black
  779.            1 - Blue
  780.            2 - Green
  781.            3 - Cyan
  782.            4 - Red
  783.            5 - Magenta
  784.            6 - Brown
  785.            7 - White
  786.            8 - Dark grey
  787.            9 - Light blue
  788.           10 - Light green
  789.           11 - Light cyan
  790.           12 - Light red
  791.           13 - Light magenta
  792.           14 - Yellow
  793.           15 - Bright white
  794.  
  795.      The background colors are as follows:
  796.  
  797.            0 - Black
  798.            1 - Blue
  799.            2 - Green
  800.            3 - Cyan
  801.            4 - Red
  802.            5 - Magenta
  803.            6 - Brown
  804.            7 - White
  805.            8 - Black with blinking foreground
  806.            9 - Blue with blinking foreground
  807.           10 - Green with blinking foreground
  808.           11 - Cyan with blinking foreground
  809.           12 - Red with blinking foreground
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.      RMDoor                                                          9
  825.  
  826.           13 - Magenta with blinking foreground
  827.           14 - Yellow with blinking foreground
  828.           15 - White with blinking foreground
  829.  
  830.  
  831.      function rmtimeleft : integer;
  832.  
  833.      The rmtimeleft function returns the number of minutes the  caller
  834.      has remaining.
  835.  
  836.  
  837.      function rmtimeon : integer;
  838.  
  839.      The  rmtimeon function  returns the  number of  minutes  that the
  840.      caller has been in the door.
  841.  
  842.  
  843.      procedure rmwrite(s:string);
  844.  
  845.      The  rmwrite  procedure  displays   a  string  both  locally  and
  846.      remotely.
  847.  
  848.  
  849.      procedure rmwritei(i : integer);
  850.  
  851.      The  rmwritei  procedure displays  an  integer  both locally  and
  852.      remotely.
  853.  
  854.  
  855.      procedure rmwritel(l : longint);
  856.  
  857.      The  rmwritel  procedure  displays  a longint  both  locally  and
  858.      remotely.
  859.  
  860.  
  861.      procedure rmwriteln(s:string);
  862.  
  863.      The  rmwriteln  procedure  displays  a string  both  locally  and
  864.      remotely.   After displaying the string, RMDoor will send a CR/LF
  865.      pair to the local and remote displays.
  866.  
  867.  
  868.      procedure rmwritelni(i : integer);
  869.  
  870.      The  rmwritelni procedure  displays an  integer both  locally and
  871.      remotely.  After displaying the integer, RMDoor will send a CR/LF
  872.      pair to the local and remote displays.
  873.  
  874.  
  875.      procedure rmwritelnl(l : longint);
  876.  
  877.      The  rmwritelnl procedure  displays  a longint  both locally  and
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.      RMDoor                                                         10
  893.  
  894.      remotely.  After displaying the longint, RMDoor will send a CR/LF
  895.      pair to the local and remote displays.
  896.  
  897.  
  898.  
  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.                                   SUPPORT
  963.                                   -------
  964.  
  965.      You  may  obtain assistance  with  a  RMDoor  related problem  by
  966.      calling  either  James Bond's  Hideaway  at  207-942-6575 or  The
  967.      Lobster Buoy at 207-941-0805.
  968.  
  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.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.      RMDoor                                                         12
  1029.  
  1030.                                 REGISTRATION
  1031.                                 ------------
  1032.  
  1033.      Registration of RMDoor  is only $25.00.   Please use the  form in
  1034.      the file  REGISTER.TXT.    When you  register  RMDoor,  you  will
  1035.      receive a registered version of the RMDOOR.TPU file on disk.
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.