home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / vrac / easydr26.zip / EASYDR26.DOC < prev    next >
Text File  |  1994-09-08  |  53KB  |  1,508 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                                 The Easy-Door Library
  16.  
  17.                                     Version 2.60
  18.  
  19.  
  20.  
  21.                              for QuickBasic 4.5, PDS 7.1
  22.                               and Visual Basic DOS V1.0
  23.  
  24.  
  25.  
  26.  
  27.                     (c) Copyright 1990-94, All rights reserved by
  28.  
  29.                                    Martin Bouchard
  30.                                     1207 du Golf
  31.                                     Cap-Rouge, QC
  32.                                        CANADA
  33.                                        G1Y 2T4
  34.  
  35.  
  36.  
  37.  
  38.  
  39.                                FidoNet Node: 1:240/291
  40.  
  41.  
  42.                                     Support BBS:
  43.  
  44.                           Node 1: (418) 658-6769 (V.32 bis)
  45.                           Node 2: (418) 659-6120 (V.32 bis)
  46.  
  47.  
  48.  
  49.           The Easy-Door Library V2.60                                    /2
  50.  
  51.  
  52.  
  53.  
  54.                                   Table of contents
  55.  
  56.                                   -----------------
  57.  
  58.  
  59.           Introduction....................................................3
  60.  
  61.           Features of the Easy-Door library...............................3
  62.  
  63.           Requirements....................................................3
  64.  
  65.           Copying and Distribution........................................4
  66.  
  67.           Description of files............................................4
  68.  
  69.           Disclaimer......................................................4
  70.  
  71.           Description of a door...........................................5
  72.  
  73.           Fossil driver...................................................5
  74.  
  75.           Registration....................................................5
  76.  
  77.           How to use the Easy-Door library routines?......................6
  78.  
  79.           Technical information about Easy-Door...........................6
  80.  
  81.           Description of .BI file.........................................7
  82.  
  83.           Structure of an Easy-Door door program..........................7
  84.  
  85.           Configurable parameters.........................................8
  86.  
  87.           EASYANSI.BI Module..............................................9
  88.  
  89.           AUTOBBS.BI Module..............................................10
  90.  
  91.           Easy-Door function keys........................................10
  92.  
  93.           Easy-Door SUB and FUNCTION.....................................11
  94.  
  95.           Note from the author...........................................30
  96.  
  97.           Special thanks.................................................30
  98.  
  99.           How to contact us?.............................................30
  100.  
  101.  
  102.  
  103.           The Easy-Door Library V2.60                                    /3
  104.  
  105.  
  106.           Introduction
  107.  
  108.           ------------
  109.  
  110.           Easy-Door is a library that provides a convenient and easy way to
  111.           program your own doors with QuickBASIC, PDS and Visual Basic  for
  112.           DOS.
  113.  
  114.           Doors programmed with the Easy-Door library are compatibles with
  115.           the following BBS systems:
  116.  
  117.           QuickBBS, Remote  Access, RBBS,  SuperBBS, Telegard,  WildCat  3,
  118.           Force!, PcBoard (latest), GAP, WildCat, Genesis, Spitfire,  WWIV,
  119.           Osiris and others BBS software that uses a compatible format with
  120.           one mentioned above.
  121.  
  122.  
  123.           Features of the Easy-Door library
  124.           ----------------------------------
  125.  
  126.                 - ANSI and Avatar/0+ support
  127.                 - RIP (Remote Imaging Protocol) support
  128.                 - Fossil driver or built-in communication routines
  129.                 - Multitaskers aware (DV, WIN, OS/2, etc.)
  130.                 - Fast and reliable modem input/output
  131.                 - Supports all communication ports
  132.                 - Automatic time left verification
  133.                 - Automatic carrier detection
  134.                 - Automatic status bar
  135.                 - Automatic inactivity time-out verification
  136.                 - Simultaneous modem and keyboard control
  137.                 - All text & messages are fully customizable
  138.                 - Menu routines with hot keys
  139.                 - Sysop DOS shell function
  140.                 - Built-in chat mode
  141.                 - Text file sender
  142.                 - And lot more...
  143.  
  144.  
  145.           Requirements
  146.           ------------
  147.  
  148.                 - IBM compatibles Computer running DOS 3.0 and more
  149.                 - QuickBasic 4.5 / PDS 7.1 / Visual Basic for DOS
  150.                 - The Easy-Door library
  151.  
  152.  
  153.  
  154.           The Easy-Door Library V2.60                                    /4
  155.  
  156.  
  157.           Copying and Distribution
  158.           ------------------------
  159.  
  160.           Easy-Door may be copied and distributed freely. If you distribute
  161.           The Easy-Door Library on communication systems such  as a BBS or
  162.           CompuServe,  The  Source,  Genie,  etc.,  you  must  include  the
  163.           following files as  a set (using  ARC, ARJ, ZIP,  LZH, PAK,  SQZ,
  164.           etc.). No fee other than a disk and handling charge (of up to 5$)
  165.           may be charged. The Easy-Door library is copyrighted material and
  166.           no modification may be made to the library.
  167.  
  168.  
  169.           Description of files
  170.           --------------------
  171.  
  172.             - VB_EDR.LIB    Easy-Door library for Visual Basic 1.0
  173.             - QB_EDR.LIB    Easy-Door library for QuickBasic 4.5
  174.             - BC_EDR.LIB    Easy-Door library for PDS 7.1
  175.  
  176.             - VB_EDR.QLB    Easy-Door QuickLibrary for Visual Basic 1.0
  177.             - QB_EDR.QLB    Easy-Door QuickLibrary for QuickBasic 4.5
  178.             - BC_EDR.QLB    Easy-Door QuickLibrary for PDS 7.1
  179.  
  180.             - EASYDOOR.BI   Easy-Door SUB/FUNCTION declaration
  181.             - EASYANSI.BI   Include file for ANSI color code declaration
  182.             - EASYPARA.BI   Include file for configurable parameters
  183.             - AUTOBBS.BI    Module for semi-automatic BBS detection
  184.  
  185.             - EASYDR26.DOC  Easy-Door documentation
  186.             - REGISTER.DOC  Registration form
  187.             - UPGRADE.TXT   A note to previously registered users
  188.             - EASYDOOR.REV  Easy-Door's revision history
  189.  
  190.             - EDRDEMO.EXE   Easy-Door demo. A door made with the library
  191.             - EDRDEMO.BAS   BASIC Source code for the EDRDEMO.EXE program
  192.             - SHUTTLE2.ANS  ANSI file used by EDRDEMO
  193.             - SHUTTLE2.AVT  AVATAR/0+ file used by EDRDEMO
  194.  
  195.             - TESTDOOR.BAS  Simple door frame for getting started
  196.  
  197.  
  198.           Disclaimer
  199.           ----------
  200.  
  201.           These routines have not  caused us any problems,  and seem to  be
  202.           fully debugged.  However,  we will  not  be responsible  for  any
  203.           damages caused by use, misuse or inability to use Easy-Door.
  204.  
  205.  
  206.  
  207.           The Easy-Door Library V2.60                                    /5
  208.  
  209.  
  210.           Description of a door
  211.           ---------------------
  212.  
  213.           A door is an external program that works in conjunction with  a  
  214.           Bulletin Board  System  (BBS).  Doors are  difficult  to  program
  215.           because they have  to use modem  input/output commands, ANSI  and
  216.           Avatar/0+ display, carrier  detection, inactivity  time out,  hot
  217.           keys, status bar, etc.  This is where Easy-Door can be used.  It
  218.           makes the usually tedious task of programming doors much  easier,
  219.           and hence cuts the time of program development.
  220.  
  221.  
  222.           Fossil driver
  223.           -------------
  224.  
  225.           A fossil driver is a resident program that takes control of modem
  226.           operations. Two well-known fossil drivers are X00 and BNU. Fossil
  227.           drivers gives reliability, speed, compatibility with non-standard
  228.           communication ports.
  229.  
  230.           This  version  of  Easy-Door  introduce  a  very  handy  feature:
  231.           Easy-Door has  now  the  capabilities of  using  built-in commu-
  232.           nication routines if a fossil driver is not installed. That means
  233.           that doors made  with the  Easy-Door library can  run on  a wide
  234.           variety of BBS systems without modification.
  235.  
  236.  
  237.           Registration
  238.           ------------
  239.  
  240.           The Easy-Door library is NOT public domain, it's SHAREWARE. This
  241.           means that you have to  pay a registration fee  of $25 US if  you
  242.           decide to  use  the  Easy-Door library  in  your  programs.  The
  243.           registration cost is minimal and will  allow the author to  write
  244.           new and improved versions of  the Easy-Door library. Please note
  245.           that the  unregistered  version is  the  same as  the  registered
  246.           version except that  a special  credit screen  is displayed  each
  247.           time an Easy-Door program is executed.
  248.  
  249.           The  registered  version  of  Easy-Door  does  not  display  any
  250.           advertising  message.  Registered  users  will  receive  a   disk
  251.           containing the latest  version of  the Easy-Door library  with a
  252.           unique  encrypted  user  identification   code  plus  their   own
  253.           Easy-Door serial number. Upgrades are allways FREE and  available
  254.           on our support BBS. See the section "How to contact us?" for  the
  255.           phone number of our BBS.
  256.  
  257.  
  258.  
  259.           The Easy-Door Library V2.60                                    /6
  260.  
  261.  
  262.           How to use the Easy-Door library routines?
  263.           ------------------------------------------
  264.  
  265.           To use  the  Easy-Door library,  you  must tell  the  programming
  266.           environment that you're using Easy-Door:
  267.  
  268.              QuickBasic users:  QB /l QB_EDR
  269.                     PDS users:  QBX /l BC_EDR
  270.            Visual Basic users:  VBDOS /l VB_EDR
  271.  
  272.           Each routine is used like it was built in the BASIC language:
  273.  
  274.           E.g.: K$ = GetChar$
  275.                 SendCR "This line is sent to modem and screen"
  276.  
  277.           All Easy-Door parameters are strings or integers. So, it's a good
  278.           idea to   put a  DEFINT A-Z statement at  the beginning  of your
  279.           programs. Refer to your BASIC manual for more help on data type.
  280.  
  281.  
  282.           Technical information about Easy-Door
  283.           -------------------------------------
  284.  
  285.           Easy-Door provides  an  easy  alternative for  writing  your  own
  286.           doors. For  example,  you do  not  have to  pay  attention  about
  287.           opening the  communication  port.  Easy-Door will  automatically
  288.           determine which serial port is in use by the BBS.
  289.  
  290.           To  access  the  communication  port,  Easy-Door  uses  fast  and
  291.           reliable communication routines. Consequently, you can access the
  292.           communication port at a high speed  rate. There is no need for  a
  293.           special driver to  use ANSI or  AVATAR/0+ control sequence.  They
  294.           are completely integrated in Easy-Door.
  295.  
  296.           Each time an Easy-Door command is called, Easy-Door checks if the
  297.           user has  disconnected. Also,  Easy-Door checks  the  daily  time
  298.           limit of  the user.  After  a configurable  inactivity  time-out,
  299.           Easy-Door will  hang  up  and will  return  control  to  the  BBS
  300.           automatically.
  301.  
  302.           A very useful option of Easy-Door is hot keys. Hot keys are keys
  303.           that the user  can press  during the  transmission of  a menu  so
  304.           there is no need to wait for the end of the transmission to press
  305.           a key. Hot keys are difficult to program, but with the  Easy-Door
  306.           library it's a pleasure to use.
  307.  
  308.  
  309.  
  310.           The Easy-Door Library V2.60                                    /7
  311.  
  312.  
  313.           User information is read in a file that each BBS program produces
  314.           every time a door is run. This file is different for each type of
  315.           BBS. Easy-Door supports lot of  them. But if you  do not run the
  316.           door from a  BBS, Easy-Door will automatically  put the  door in
  317.           local mode.
  318.  
  319.           Please look  at  the  "AUTOBBS.BI" section  for  a  list  of  BBS
  320.           compatibles with Easy-Door.
  321.  
  322.  
  323.           Description of .BI file
  324.           -----------------------
  325.  
  326.           Files that have  the .BI  extension (Basic  Include) are  modules
  327.           that you include in your programs.  Those files are necessary  to
  328.           use  Easy-Door  because  they  contain  initialization  code  and
  329.           procedure. Read those files for more information on each one.  To
  330.           include a  .BI file  in your  program type  you have  to use  the
  331.           $INCLUDE  metacommand.  Refer  to  your  BASIC  manual  for  more
  332.           information on how to include files in your source code.
  333.  
  334.           E.g.: ' $INCLUDE: 'EasyDoor.BI'
  335.  
  336.  
  337.           Structure of an Easy-Door door program
  338.           --------------------------------------
  339.  
  340.           DEFINT A-Z                       Sets all variable has integer
  341.                                            by default.
  342.  
  343.           '$INCLUDE:'EasyDoor.BI'          Easy-Door SUB/FUNCTION
  344.                                            declarations.
  345.  
  346.           '$INCLUDE:'AutoBBS.BI'           Module for BBS detection and
  347.                                            drop file handler.
  348.  
  349.           '$INCLUDE:'EasyPara.BI'          Configurable Easy-Door
  350.                                            parameters.
  351.  
  352.           Init Para$(), NPara(), 0, 0, 0   Easy-Door initialization
  353.                                            routine.
  354.  
  355.           Your own door code.
  356.  
  357.           ReturnBBS                        The exit routine.
  358.  
  359.  
  360.           Please check the file EASYDEMO.BAS for a practical example of the
  361.           structure of an Easy-Door program.
  362.  
  363.  
  364.  
  365.           The Easy-Door Library V2.60                                    /8
  366.  
  367.  
  368.           Configurable parameters
  369.           -----------------------
  370.  
  371.           Easy-Door  is  completely  configurable.  For  example,  you  can
  372.           translate all messages to another language easily. The file  that
  373.           contains all parameters is EASYPARA.BI. It contains two sections:
  374.           string parameters and numeric parameters.
  375.  
  376.  
  377.           String configurable parameters:
  378.           -------------------------------
  379.  
  380.                 Parameter    Description/Value
  381.                 ---------    -----------------
  382.  
  383.                 Para$(1)     "Chat mode entered"
  384.                 Para$(2)     "ESC to end chat mode"
  385.                 Para$(3)     "Hello this is the Sysop."
  386.                 Para$(4)     (Sysop chat text color)
  387.                 Para$(5)     (User chat text color)
  388.                 Para$(6)     "Sysop chat mode ended"
  389.                 Para$(7)     "Warning - User inactivity time-out in 30
  390.                              seconds"
  391.                 Para$(8)     "User inactivity time-out, Hanging Up..."
  392.                 Para$(9)     "ERROR: " (Displayed when there's an error)
  393.                 Para$(10)    "Press S to stop or P to pause"
  394.                 Para$(11)    "Press P to pause"
  395.                 Para$(12)    "P" (Pause key)
  396.                 Para$(13)    "S" (Stop key)
  397.                 Para$(14)    "Hanging Up..."
  398.                 Para$(15)    "No Carrier, Communication Lost"
  399.                 Para$(16)    "Data file not found."
  400.                 Para$(17)    "Returning to BBS..."
  401.                 Para$(18)    "Exceeded"
  402.                 Para$(19)    "Time Limit Exceeded. Call Back Tomorrow"
  403.                 Para$(20)    "More Y/N?"
  404.                 Para$(21)    "Y" (Yes key for more)
  405.                 Para$(22)    "N" (No key for more)
  406.                 Para$(23)    (Message displayed after a more prompt)
  407.                 Para$(24)    (Message to appear on status bar)
  408.                 Para$(25)    "Paused" (When PauseClock is activated)
  409.                 Para$(26)    "The Sysop has shelled to DOS..."
  410.                 Para$(27)    "DOS Shell: Type <EXIT> to Return to DOOR"
  411.                 Para$(28)    "The Sysop has returned from DOS"
  412.                 Para$(29)    "Warning: Less than 2 min. remaining this
  413.                              call"
  414.                 Para$(30)    FullName$       |
  415.                 Para$(31)    Location$       |
  416.                 Para$(32)    Baud$           | Information that were
  417.                 Para$(33)    Com$            | read in the AUTOBBS.BI
  418.                 Para$(34)    AnsiFlag$       | module.
  419.  
  420.  
  421.  
  422.           The Easy-Door Library V2.60                                    /9
  423.  
  424.  
  425.                 Para$(35)    TimeRemaining$  |
  426.                 Para$(36)    "Local Mode" (Message when in local mode)
  427.                 Para$(37)    "min." (On status bar)
  428.  
  429.  
  430.           Numeric configurable parameters:
  431.           --------------------------------
  432.  
  433.                 Parameter     Description
  434.                 ---------     -----------
  435.                 NPara(1)     Delay to lower DTR when hanging up in
  436.                              18th/sec
  437.                 NPara(2)     Pause delay when 'P' hit sec.
  438.                 NPara(3)     User Inactivity Time-out in sec.
  439.                 NPara(4)     Delay after a no carrier in 18th/sec
  440.                 NPara(5)     Delay when DATA FILE NOT FOUND in 18th/sec
  441.                 NPara(6)     NB of line in user's window
  442.                 NPara(7)     Carrier Detect On/Off)
  443.                 NPara(8)     Status bar color number. (Back * 16 + Fore)
  444.                 NPara(9)     Enables time counter
  445.                 Npara(10)    Used internally for storing time
  446.                 NPara(11)    Row where to put cursor when shelling to DOS
  447.                 NPara(12)    Enables ALT-X or ALT-R to force exit
  448.                 NPara(13)    Enables warning before daily time-out,
  449.                              0= Off, or number of sec. for On)
  450.                 NPara(14)    Enables keys to change time
  451.                 Npara(15)    Used internally by inactivity checker)
  452.                 NPara(16)    Disables chat mode (0=Turn off, 1=Turn on
  453.                 NPara(17)    Enable Status Bar
  454.                 NPara(18)    Column where BAUD/LOCALLY is displayed on
  455.                              status bar
  456.  
  457.  
  458.           EASYANSI.BI Module
  459.           ------------------
  460.  
  461.           The file EASYANSI.BI  is now obsolete  and is only  included   to
  462.           keep compatibility with version 2.0 of Easy-Door. Instead, to use
  463.           colors, you  should use  the SmartColor  routine (which  is  more
  464.           efficient and supports Avatar/0+ color code).
  465.  
  466.  
  467.  
  468.           The Easy-Door Library V2.60                                   /10
  469.  
  470.  
  471.           AUTOBBS.BI Module
  472.           -----------------
  473.  
  474.           AutoBBS.BI is a module that reads the command line, interprets it
  475.           and calls the BBS drop file reader module that correspond to  the
  476.           BBS program used. The command line  must contain the name of  the
  477.           door definition file used. For example, if DORINFO1.DEF is passed
  478.           on the  command line,  the   QBBS/RA/RBBS module  will be  called
  479.           automatically. If  the  command  line is  empty,  the  door  will
  480.           automatically be executed in local  mode. Advanced users may  add
  481.           new type of BBS to Easy-Door by adding drop file reader module.
  482.  
  483.  
  484.           Easy-Door function keys
  485.           -----------------------
  486.  
  487.           Different function keys can be used in an Easy-Door program. The
  488.           table bellows list them.
  489.  
  490.                 Alt H : Hangs Up
  491.                 Alt X : Returns to the BBS without hanging up
  492.                 Alt C : Enters Chat Mode
  493.                 Alt J : Jumps to DOS (DOS Shell)
  494.                 Alt - : Adds one minute to time remaining
  495.                 Alt - : Subtracts one minute to time remaining
  496.  
  497.  
  498.  
  499.           The Easy-Door Library V2.60                                   /11
  500.  
  501.  
  502.           Easy-Door SUB and FUNCTION
  503.           --------------------------
  504.  
  505.           AddSlash$ (FilePath$)
  506.           ---------------------
  507.           Type: FUNCTION
  508.  
  509.           Adds a backslash  to the filename  if there is  not one  already.
  510.           Very useful for processing configuration file.
  511.  
  512.           E.g.: C:\QBBS       ------>   C:\QBBS\
  513.                 C:\QBASIC\    ------>   C:\QBASIC\
  514.  
  515.  
  516.           AnsiBox X1%, Y1%, X2%, Y2%, Frame%, Shadow%
  517.           -------------------------------------------
  518.           Type: SUB
  519.  
  520.           This routine is used to make a box on the screen. X1% and Y1%  is
  521.           the the upper left corner and X2%, Y2% is the bottom right corner
  522.           of the box.  Frame% is  used to select  the type  of border.  The
  523.           Shadow% parameter is either one or zero. A value of one will  add
  524.           a 3D look to the box by adding a simple shadow. You must be  sure
  525.           that the user has ANSI or AVATAR when using this routine.
  526.  
  527.                 Frame%   Horiz.    Vert.
  528.                 value    border    border
  529.                 ------   ------    ------
  530.                   1      Single    Single
  531.                   2      Double    Single
  532.                   3      Single    Double
  533.                   4      Double    Double
  534.  
  535.  
  536.  
  537.           AnsiLocate Y%, X%
  538.           -----------------
  539.           Type: SUB
  540.  
  541.           This routine is  used to move  the cursor at  a specified  screen
  542.           position. The Y% parameter  is the row number  (1-24) and the  X%
  543.           parameter is the column number (1-80). This routine only works if
  544.           the user has ANSI or AVATAR/0+ capabilities.
  545.  
  546.  
  547.  
  548.           The Easy-Door Library V2.60                                   /12
  549.  
  550.  
  551.           AnsiPrint Text$
  552.           ---------------
  553.           Type: SUB
  554.  
  555.           Prints a string on screen only.  It prints at the current  cursor
  556.           position and scrolls  the screen automatically  to not  overwrite
  557.           the status bar. ANSI and Avatar/0+ sequences are supported.
  558.  
  559.           E.g.: AnsiPrint "This line is not sent to remote screen."
  560.  
  561.  
  562.           BackSpace Number%
  563.           -----------------
  564.           Type: SUB
  565.  
  566.           Sends a specified  number of destructive  backspace to modem  and
  567.           screen.
  568.  
  569.           E.g.: BackSpace 6 ' Sends 6 backspace
  570.  
  571.  
  572.           Bell State%
  573.           -----------
  574.           Type: SUB
  575.  
  576.           Turns the SendBell routine on or  off (on=1, off=0). When  turned
  577.           off, no bell signal is sent to the remote computer.
  578.  
  579.           E.g.: Bell 1 ' Turns on bell signal
  580.  
  581.  
  582.           Carrier State%
  583.           --------------
  584.           Type: SUB
  585.  
  586.           Turns the automatic carrier detection on or off. (on=1, off=0)
  587.  
  588.           E.g.: Carrier 0 ' Carrier detection is now Off
  589.  
  590.  
  591.           CarrierLost%
  592.           ------------
  593.           Type: FUNCTION
  594.  
  595.           Returns a non-zero value if the carrier is lost.
  596.  
  597.  
  598.  
  599.           The Easy-Door Library V2.60                                   /13
  600.  
  601.  
  602.           Cap$ (Text$)
  603.           -----------
  604.           Type: FUNCTION
  605.  
  606.           Capitalizes a string. Very handy for processing names. It adds  a
  607.           professional touch to your doors.
  608.  
  609.           E.g.: User$= "JOHN-OLIVER SMITH"
  610.                 User$= Cap$(User$)
  611.  
  612.                 'The new content of Users$ will be "John-Oliver Smith"
  613.  
  614.  
  615.           CC$(Foreground%, Background%)
  616.           -----------------------------
  617.           Type: FUNCTION
  618.  
  619.           This function acts like  the SmartColor routine.  But it is  more
  620.           convenient to use  this routine than  SmartColor for  readability
  621.           purpose.
  622.  
  623.           Eg.:  SendCR CC$(15,0) + "Welcome to " + CC$(14,1) + "Easy-Door"
  624.  
  625.  
  626.           Center$ (Text$)
  627.           --------------
  628.           Type: FUNCTION
  629.  
  630.           Centers a string on the screen.  This function does not  actually
  631.           send something on  output. You must  use it  in conjunction  with
  632.           output routines like SendCR.
  633.  
  634.           E.g.: SendCR Center$("Returning to BBS.")
  635.  
  636.  
  637.           ChangeDTR State%
  638.           ----------------
  639.           Type: SUB
  640.  
  641.           Changes the Data Terminal Ready (DTR) status on the active serial
  642.           port. A value of  1 will raise the  DTR, and a  0 will lower  it.
  643.           Lowering the DTR for a small period of time will force the  modem
  644.           to hang-up.
  645.  
  646.           E.g.: ChangeDTR 0 ' Puts the DTR low
  647.                 ChangeDTR 1 ' Puts the DTR high
  648.  
  649.  
  650.  
  651.           The Easy-Door Library V2.60                                   /14
  652.  
  653.  
  654.           ChangeNPara Num%, Value%
  655.           ------------------------
  656.           Type: SUB
  657.  
  658.           Changes a numeric  configuration parameter to  a specified  value
  659.           when the door is running. Num% is the number of the parameter  to
  660.           change. See  the "Numeric  configurable parameters"  section  for
  661.           more information about numeric parameters.
  662.  
  663.           E.g.: ChangeNPara 3, 60 ' Inactivity time-out is now 60 sec.
  664.  
  665.  
  666.           ChangePara Num%, Value$
  667.           -----------------------
  668.           Type: SUB
  669.  
  670.           Changes a  string configuration  parameter to  a specified  value
  671.           when the door is running. Num% is the number of the parameter  to
  672.           change. See the "String configurable parameters" section for more
  673.           information about string parameters.
  674.  
  675.           E.g.: ChangePara 25, "Stopped" ' Pause clock message
  676.  
  677.  
  678.           ChangeTime NewTime%
  679.           -------------------
  680.           Type: SUB
  681.  
  682.           Changes the time that  the user has  left. NewTime% must  contain
  683.           the new desired time  in minutes. This  routine only changes  the
  684.           time available in the  door. You should not  use this routine  if
  685.           you do not know what problems this routine can cause.
  686.  
  687.           E.g.: ChangeTime 60 ' The user has now 60 minutes left
  688.  
  689.  
  690.           ChatMode
  691.           --------
  692.           Type: SUB
  693.  
  694.           Activates the chat mode. Each  line is automatically wrapped  and
  695.           if the  user  has  ANSI  or Avatar/0+  the  chat  mode  will  use
  696.           different color for Sysop and user  text. To exit chat mode,  the
  697.           Sysop must press the Escape key.
  698.  
  699.           E.g.: ChatMode ' Chat mode is now activated
  700.  
  701.  
  702.  
  703.           The Easy-Door Library V2.60                                   /15
  704.  
  705.  
  706.           CheapSend Text$
  707.           ---------------
  708.           Type: SUB
  709.  
  710.           Sends a string without  checking the carrier,  the time limit  or
  711.           other special things. Used internally by Easy-Door.
  712.  
  713.  
  714.           CheckCD
  715.           -------
  716.           Type: SUB
  717.  
  718.           Forces Easy-Door to check if  there is a lost  of carrier on the
  719.           current serial port. If there is no carrier, the program will  be
  720.           terminated and will return to the BBS or to DOS. This routine  is
  721.           not usually used because Easy-Door performs an automatic carrier
  722.           detection each time input/output is made.  But it can be used  if
  723.           modem routine are not used for a  long period of time (in a  loop
  724.           for example).
  725.  
  726.           E.g.: CheckCD ' Forces Easy-Door to check for carrier
  727.  
  728.  
  729.           CheckIB%
  730.           --------
  731.           Type: FUNCTION
  732.  
  733.           Checks the input  buffer. This  function will  return a  non-zero
  734.           value if there are characters in the input buffer.
  735.  
  736.           E.g.: IF CheckIB% = 0 THEN
  737.                    SendCR "Input buffer empty"
  738.                 ELSE
  739.                    SendCR "Input buffer contains characters"
  740.                 END IF
  741.  
  742.  
  743.           CheckInac
  744.           ---------
  745.           Type: SUB
  746.  
  747.           Loops until there is a character in the buffer and checks for  an
  748.           inactivity  time-out.  This  routine  will  return  control  when
  749.           characters are  present  into  modem  or  keyboard  buffer.  Used
  750.           internally by Easy-Door.
  751.  
  752.  
  753.  
  754.           The Easy-Door Library V2.60                                   /16
  755.  
  756.  
  757.           CheckOB%
  758.           --------
  759.           Type: FUNCTION
  760.  
  761.           Checks if  the modem  output buffer  is full.  The function  will
  762.           return a non-zero value if full.
  763.  
  764.           E.g.: CheckOB State% ' 0= Empty, others= Full
  765.  
  766.  
  767.           EasyMenu Title$, Choices$(), NbChoice%, Selection%, TextColor%
  768.           BorderColor%, Background%, StartingLine%, Frame%, Shadow%
  769.           -----------------------------------------------------------------
  770.           Type: SUB
  771.  
  772.           This routine draws a menu on  the screen and let the user  choose
  773.           from a list of choices using the arrows keys. Title$ is the title
  774.           of the menu. Choice$()  is the array  that contains the  possible
  775.           choices. Selection% is the variable that will hold the number  of
  776.           the selection.  TextColor%  is  the foreground  color  for  text.
  777.           BorderColor% is  the  color  of the  frame.  Background%  is  the
  778.           background color  of  the menu.  Starting  line is  the  starting
  779.           position of the menu. Frame% is the type of the border (see table
  780.           below). Finally, if Shadow%  is equal to 1  there will be a  drop
  781.           shadow added to the menu.
  782.  
  783.  
  784.                 Frame%   Horiz.    Vert.
  785.                 value    border    border
  786.                 ------   ------    ------
  787.                   1      Single    Single
  788.                   2      Double    Single
  789.                   3      Single    Double
  790.                   4      Double    Double
  791.  
  792.  
  793.           EndError (ErrorMessage$)
  794.           ------------------------
  795.           Type: SUB
  796.  
  797.           Terminates a door properly by printing a specified error message.
  798.           You should never  terminate your  doors with  the END  statement.
  799.           Using END may lockup the computer.  Instead, use the EndError  or
  800.           the ReturnBBS routine.
  801.  
  802.           E.g.: EndError "No configuration file was found"
  803.  
  804.  
  805.  
  806.           The Easy-Door Library V2.60                                   /17
  807.  
  808.  
  809.           EraseStatusBar
  810.           --------------
  811.           Type: SUB
  812.  
  813.           Updates the status bar. Used internally by Easy-Door.
  814.  
  815.  
  816.           ExePath$
  817.           --------
  818.           Type: FUNCTION
  819.  
  820.           Returns the  full  path of  the  program. In  other  words,  this
  821.           function gives the  exact location  of the  .EXE files  currently
  822.           running. It is very useful for processing configuration files.
  823.  
  824.  
  825.           GetChar$
  826.           --------
  827.           Type: FUNCTION
  828.  
  829.           Returns either  a string  containing a  character read  from  the
  830.           modem/keyboard buffer or an empty string ("") if no character  is
  831.           pending.  This  routine  is  similar  to  the  QuickBasic  INKEY$
  832.           statement but  reads  characters  from keyboard  and  modem.  The
  833.           special keys Home, End,  Down, Left and  Right are supported  and
  834.           will return the following values (the same has QuickBasic):
  835.  
  836.                 Key           Value returned
  837.                 ---           --------------
  838.                 Home          CHR$(0) + CHR$(71)
  839.                 End           CHR$(0) + CHR$(79)
  840.                 Up            CHR$(0) + CHR$(72)
  841.                 Down          CHR$(0) + CHR$(80)
  842.                 Right         CHR$(0) + CHR$(77)
  843.                 Left          CHR$(0) + CHR$(75)
  844.  
  845.           E.g.: K$ = GetChar$
  846.                 IF K$ = CHR$(0) + CHR$(72) THEN
  847.                    SendCR "You pressed the UP key!"
  848.                 END IF
  849.  
  850.  
  851.           GetString$ (Length%)
  852.           --------------------
  853.           Type: FUNCTION
  854.  
  855.           Returns either a string containing a specified number of
  856.           characters read from the modem/keyboard buffer or an empty string
  857.           ("") if no character is pending. This is an advanced function
  858.           very usefull in graphical terminal or others interactive
  859.           protocol.
  860.  
  861.  
  862.  
  863.           The Easy-Door Library V2.60                                   /18
  864.  
  865.  
  866.           GetUserGraphType%
  867.           -----------------
  868.           Type: FUNCTION
  869.  
  870.           Returns the graphic capabilities of the user.
  871.  
  872.                 Value    Description
  873.                 -----    ------------
  874.                   0      User has only ASCII capabilities
  875.                   1      User has ANSI capabilities
  876.                   2      User has AVATAR/O+ capabilties
  877.  
  878.           E.g.: GraphType = GetUserGraphType%
  879.                 IF GraphType < 1 THEN
  880.                     SendCR "Sorry, ASCII doesn't work with this door."
  881.                 END IF
  882.  
  883.  
  884.           Parser (Line$, Elements$(), MaxElements%, Delimitor$)
  885.           ----------------------------------------------------
  886.           Type: SUB
  887.  
  888.           Parses the elements in Line$. Elements$ is the destination  array
  889.           used to store  the parsed elements.  MaxElements% is the  maximum
  890.           number of elements you want. Delimitor$ is the character user  to
  891.           separate each elements.
  892.  
  893.           E.g.: Line$ = "house,dog,cat,school,computer"
  894.                 DIM Elements$(1 TO 5)
  895.                 Parser Line$, Elements$(), 5, ","
  896.  
  897.  
  898.           HangUp
  899.           ------
  900.           Type: SUB
  901.  
  902.           Disconnects the user by hanging up the modem. This will also exit
  903.           to the BBS.
  904.  
  905.           E.g.: HangUp ' Disconnects the user on-line
  906.  
  907.  
  908.           HotKeys State%
  909.           --------------
  910.           Type: SUB
  911.  
  912.           Turns hot  keys  on or  off  (on=1, off=0).  See  the  "Technical
  913.           information about Easy-Door" section for more  information about
  914.           hot keys.
  915.  
  916.           E.g.: HotKeys 0 ' Turns off hot keys
  917.  
  918.  
  919.  
  920.           The Easy-Door Library V2.60                                   /19
  921.  
  922.  
  923.           Init Para$(), NPara%(), DriverType%, HandShake%, IRQ%
  924.           -----------------------------------------------------
  925.           Type: SUB
  926.  
  927.           The Init  routine  is the  most  important of  all.  It  performs
  928.           initialization to  the modem,  sets up  different parameters  and
  929.           more. You must call Init before  any other routines. If you  omit
  930.           this, your program will not work at all. Para$() and NPara%() are
  931.           the two arrays that contain the configurable messages and  values
  932.           (see the file  EasyPara.BI). See table  below for explanation  of
  933.           other parameters.
  934.  
  935.           When built-in modem routines are used, you can optionally specify
  936.           a type of handshaking. Also, you  can select a non-standard port
  937.           IRQ if  you  want.  Please note  that  Easy-Door will  open  the
  938.           communication port at the current baud rate. This is the  easiest
  939.           and safest way and it provides support for high speed modems with
  940.           locked baud rates. Please note that Easy-Door has no maximum baud
  941.           rate value.
  942.  
  943.  
  944.                DriverType%    Description
  945.                -----------    ------------
  946.                    0          Uses a FOSSIL driver if present. If not use
  947.                               built-in communication routines.
  948.  
  949.                    1          Forces the use of built-in communication
  950.                               routines.
  951.  
  952.  
  953.                HandShake%    Description
  954.                ----------    -----------
  955.                    0         No handshaking
  956.                    1         Uses XON/XOFF (software) handshaking
  957.                    2         Uses CTS/RTS (hardware) handshaking
  958.                    3         Uses both XON/XOFF and CTS/RTS handshaking
  959.  
  960.                   IRQ%       Description
  961.                   ----       -----------
  962.                    0         Uses the default IRQ value
  963.                   1-15       Uses a specific IRQ value
  964.  
  965.  
  966.           E.g.: Init Para$(), NPara%(), 0, 2, 0
  967.  
  968.                 This  will   initialize   Easy -Door  in   fossil   driver
  969.                 auto-detection mode with CTS/RTS handshaking enabled.  The
  970.                 default IRQ for this communication port will be used.
  971.  
  972.  
  973.  
  974.           The Easy-Door Library V2.60                                   /20
  975.  
  976.  
  977.           ExitKey State%
  978.           --------------
  979.           Type: SUB
  980.  
  981.           Turns the  quick  exit keys  on  or off  (on=1,  off=0).  Setting
  982.           ExitKey to off will prevent the SYSOP from exiting the door  with
  983.           ALT-X or ALT-R.
  984.  
  985.           E.g.: KeyExit 0 ' ALT-R/X is now off
  986.  
  987.  
  988.           FileExist% (Filename$)
  989.           ----------------------
  990.           Type: FUNCTION
  991.  
  992.           This function is  used to  check the presence  of a  file on  the
  993.           disk. The function will return -1 for a file that exists and 0 if
  994.           the file is not found.
  995.  
  996.           E.g.: IF FileExist("C:\PLAYERS.DAT") THEN
  997.                     SendCR "Okay."
  998.                 ELSE
  999.                     SendCR "The game data file does'nt exist."
  1000.                 END IF
  1001.  
  1002.  
  1003.           LineFeed NumberOfLF%
  1004.           --------------------
  1005.           Type: SUB
  1006.  
  1007.           Sends a specified number of linefeed (a change of line) to screen
  1008.           and modem.
  1009.  
  1010.           E.g.: LineFeed 5 ' We're now five lines down
  1011.  
  1012.  
  1013.  
  1014.           The Easy-Door Library V2.60                                   /21
  1015.  
  1016.  
  1017.           MaskInput Mask$, Answer$
  1018.           ------------------------
  1019.  
  1020.           Inputs a string  from the modem  or the keyboard  using an  input
  1021.           mask. For  example,  MaskInput could  be  use when  asking  phone
  1022.           numbers. Mask$ is the a string  that conatains the desired  input
  1023.           mask.
  1024.  
  1025.              Character        Valid input
  1026.              ---------        -----------
  1027.                  9            0 - 9
  1028.                  a            a - z, A - Z
  1029.                  A            a - z, A - Z (Converted to uppercase)
  1030.                  x            all
  1031.                  X            all (Converted to uppercase)
  1032.  
  1033.  
  1034.           E.g.: MaskInput "(999) 999-9999", Phone$
  1035.                 SendCR "Your phone numnber is " + Phone$
  1036.  
  1037.  
  1038.           ModemInput Message$, Answer$, BoxForeCol%, BoxBackCol%, MaxLen%
  1039.           ---------------------------------------------------------------
  1040.           Type: SUB
  1041.  
  1042.           Inputs a  string from  the modem  or the  keyboard. You  have  to
  1043.           specify the  maximum  length  of the  string.  If  MaxLen%  is  a
  1044.           negative number, the answer will be  in upper case. If you  don't
  1045.           want  a  prompt,   use  an  empty   string  ("")  for   Message$.
  1046.           BoxForeColor% and BoxBackColor%  are the colors  of the box  that
  1047.           will contain the answer.
  1048.  
  1049.           E.g.: ModemInput (Your age: ", 14, 1, Age$, 2)
  1050.  
  1051.  
  1052.           ModemInputChar$
  1053.           --------------
  1054.           Type: FUNCTION
  1055.  
  1056.           Inputs a character from the modem  or the keyboard. This  routine
  1057.           will wait for one  character and returns  control to the  program
  1058.           thereafter.
  1059.  
  1060.           E.g.: K$ = ModemInputChar$
  1061.                 SendCR "You just pressed this key: " + K$
  1062.  
  1063.  
  1064.  
  1065.           The Easy-Door Library V2.60                                   /22
  1066.  
  1067.  
  1068.           ModemOnlySend Text$
  1069.           -------------------
  1070.           Type: SUB
  1071.  
  1072.           Sends a  string of  characters  to the  modem  only, not  to  the
  1073.           screen. No linefeed is added.
  1074.  
  1075.  
  1076.           MulChoice Choice$, Default%, Answer%
  1077.           ------------------------------------
  1078.           Type: SUB
  1079.  
  1080.           This routine is  used to  get an  answer from  a multiple  choice
  1081.           input. The user  can toggle  between available  answers by  using
  1082.           arrow's keys or by pressing space. Default% is the the number  of
  1083.           the  start   up  choice.   Answer%   will  contain   the   number
  1084.           corresponding to the choice made by the user. Choice$ is a string
  1085.           containing all possible choices separated by a semicolon. ANSI or
  1086.           Avatar/0+ is required for this routine.
  1087.  
  1088.           E.g.: Send "Would you like to join this game? "
  1089.                 MulChoice "Yes;No;Quit", 2, Answer%
  1090.  
  1091.  
  1092.           NoCarrier
  1093.           ---------
  1094.           Type: SUB
  1095.  
  1096.           Called internally by Easy-Door when there's no carrier.
  1097.  
  1098.  
  1099.           NotFound
  1100.           --------
  1101.           Type: SUB
  1102.  
  1103.           Displays a message warning the user that a file was not found.
  1104.  
  1105.  
  1106.           NovellDetect%
  1107.           -------------
  1108.           Type: FUNCTON
  1109.  
  1110.           Return -1 if the program is running under Novell Netware.
  1111.  
  1112.  
  1113.  
  1114.           The Easy-Door Library V2.60                                   /23
  1115.  
  1116.  
  1117.           Num2Str$ (IntValue%)
  1118.           -------------------
  1119.           Type: FUNCTION
  1120.  
  1121.           Converts an integer number to a  string like BASIC STR$  function
  1122.           but does  not  add the  spaces  at the  beginning/ending  of  the
  1123.           string. Useful for sending number with SendCR.
  1124.  
  1125.           E.g.: Year% = 1998
  1126.                 SendCR "The year is " + Num2Str$(Year%)
  1127.  
  1128.  
  1129.           PauseClock
  1130.           ----------
  1131.           Type: SUB
  1132.  
  1133.           Pauses the  time  left  clock.  Please  note  that  the  built-in
  1134.           computer's clock is not altered in any way.
  1135.  
  1136.  
  1137.           PurgeInBuffer
  1138.           -------------
  1139.           Type: SUB
  1140.  
  1141.           Clears all the pending characters in the modem and keyboard input
  1142.           buffer.
  1143.  
  1144.           E.g.: PurgeInBuffer
  1145.  
  1146.  
  1147.           PurgeOutBuffer
  1148.           --------------
  1149.           Type: SUB
  1150.  
  1151.           Clears all  the  characters  in the  output  buffer  not  already
  1152.           transmitted.
  1153.  
  1154.           E.g.: PurgeOutBuffer
  1155.  
  1156.  
  1157.           QB2TP$ (String$)
  1158.           ----------------
  1159.           Type: FUNCTION
  1160.  
  1161.           This function will return  a PASCAL string  from a BASIC  string.
  1162.           PASCAL uses  the  first  character  of  a  string  has  a  length
  1163.           indicator. Very  useful  when  processing  BBS  files  made  with
  1164.           PASCAL.
  1165.  
  1166.  
  1167.  
  1168.           The Easy-Door Library V2.60                                   /24
  1169.  
  1170.  
  1171.           ResetColor
  1172.           ----------
  1173.           Type: SUB
  1174.  
  1175.           This routine will set the current  color to the default white  on
  1176.           black. Easy-Door automatically calls this  routine when the door
  1177.           is closed.
  1178.  
  1179.  
  1180.           ResumeClock
  1181.           -----------
  1182.           Type: SUB
  1183.  
  1184.           Restarts the time left clock paused by the PauseClock routine.
  1185.  
  1186.  
  1187.           ReturnBBS
  1188.           ---------
  1189.           Type: SUB
  1190.  
  1191.           You must use this routine  to return to the  BBS. Do not use  the
  1192.           normal END  statement; otherwise  the computer  will crash.  This
  1193.           routine will also display a message on the status bar to announce
  1194.           the return to the BBS.
  1195.  
  1196.           E.g.: ReturnBBS ' Exit the door and return to the BBS
  1197.  
  1198.  
  1199.           RIPDetect%
  1200.           ----------
  1201.           Type: FUNCTION
  1202.  
  1203.           Checks if the remote terminal has RIP capabilities. The  function
  1204.           will return a non-zero value if RIP (Remote Imaging Protocol) is
  1205.           supported. Use the SendRIP  routine to send a  RIP screen to  the
  1206.           remote computer.
  1207.  
  1208.           E.g.: IF RIPDetect% <> 0 THEN
  1209.                     SendCR "RIP available"
  1210.                 ELSE
  1211.                     SendCR "RIP not available"
  1212.                 END IF
  1213.  
  1214.  
  1215.  
  1216.           The Easy-Door Library V2.60                                   /25
  1217.  
  1218.  
  1219.           SafeASC% (Char$)
  1220.           ----------------
  1221.           Type: FUNCTION
  1222.  
  1223.           This function is the same as  the BASIC ASC() function except  it
  1224.           does not produces an error when the string is null. In this case,
  1225.           it will return the value zero.
  1226.  
  1227.  
  1228.           Send Text$
  1229.           ----------
  1230.           Type: SUB
  1231.  
  1232.           Sends a string of characters to  the modem and to the screen.  No
  1233.           linefeed is  added.  This  routine supports  ANSI  and  Avatar/0+
  1234.           control sequence.
  1235.  
  1236.           E.g.: Send "Welcome to this door!"
  1237.  
  1238.  
  1239.           SendBell
  1240.           --------
  1241.           Type: SUB
  1242.  
  1243.           Sends a bell signal if the bell  is turned on. The bell is  heard
  1244.           only on the remote computer, not on the Sysop side.
  1245.  
  1246.           E.g.: SendBell ' This will send a bell signal (ASCII #7)
  1247.  
  1248.  
  1249.           SendCLS
  1250.           -------
  1251.           Type: SUB
  1252.  
  1253.           Clears the screen on  local and remote  screen. Please note  that
  1254.           the status bar is not erased.
  1255.  
  1256.           E.g.: SendCLS ' The screen is now empty
  1257.  
  1258.  
  1259.           SendCR Text$
  1260.           ------------
  1261.           Type: SUB
  1262.  
  1263.           Sends a string of  characters to the modem  and to the screen.  A
  1264.           linefeed is automatically added.  This routine supports ANSI  and
  1265.           Avatar/0+ control sequence.
  1266.  
  1267.           E.g.: SendCR "One moment please..."
  1268.  
  1269.  
  1270.  
  1271.           The Easy-Door Library V2.60                                   /26
  1272.  
  1273.  
  1274.           SendFile FileName$, TypeNumber%
  1275.           -------------------------------
  1276.           Type: SUB
  1277.  
  1278.           Displays a text file. This routine does not make a pause when the
  1279.           screen is  full.  Uses  the SendTXT  routine  if  you  want  that
  1280.           feature.
  1281.  
  1282.                TypeNumber%    Function(s) available
  1283.                -----------    ---------------------
  1284.                    0          Pause and stop
  1285.                    1          Pause only
  1286.  
  1287.           E.g.: SendFile "EasyDoor.DOC", 0 ' Pause & Stop enabled
  1288.  
  1289.  
  1290.           SendLeft Number%
  1291.           ----------------
  1292.           Type: SUB
  1293.  
  1294.           Moves the cursor to  the left a specified  number of times.  Only
  1295.           available if user has ANSI or Avatar/0+.
  1296.  
  1297.  
  1298.           SendMenu FileName$, KeyList$, Key$, TypeNumber%
  1299.           -----------------------------------------------
  1300.           Type: SUB
  1301.  
  1302.           Sends a menu file. During the transmission, the user may press  a
  1303.           key in the  KeyList$. The menu  name must be  a filename with  no
  1304.           extension. Easy-Door will  add .ASC  or .ANS  to  the file  name
  1305.           depending if the user has ASCII  or ANSI capabilities. If a  .ANS
  1306.           file is not available, Easy-Door will use an .ASC file instead.
  1307.  
  1308.  
  1309.                TypeNumber%    Description
  1310.                -----------    ----------
  1311.                    0          Waits for a  key if  none is pressed  during
  1312.                               transmission of the menu. A normal menu.
  1313.  
  1314.                    1          Does not wait for a key if  none are pressed
  1315.                               during transmisson  of the  menu. Not  often
  1316.                               used.
  1317.  
  1318.           E.g.: SendMenu "MainMenu", "DUQ", K$, 0
  1319.                 'This will transmit the file MENU.ASC or MENU.ANS and will
  1320.                 'wait for D, U or Q
  1321.  
  1322.  
  1323.  
  1324.           The Easy-Door Library V2.60                                   /27
  1325.  
  1326.  
  1327.           SendMenuString Text$, KeyList$, Key$, TypeNumber%
  1328.           -------------------------------------------------
  1329.           Type: SUB
  1330.  
  1331.           Sends a string  of characters  and checks  if a  key was  pressed
  1332.           during the transmission.  If there was  no key  pressed when  the
  1333.           string was  sent, Easy-Door will  wait for  one in  the KeyList$
  1334.           (except if TypeNumber% = 2). You may customize the pause and stop
  1335.           keys with the configurable parameters (see EASYPARA.BI).
  1336.  
  1337.                TypeNumber%    Description
  1338.                -----------    -----------
  1339.                    0          Waits for a key if no key was pressed during
  1340.                               transmission of the string.
  1341.  
  1342.                    1          Does not  wait  for  a  key  when  none  are
  1343.                               pressed during transmission of the string.
  1344.  
  1345.                    2          Does not use the KeyList$, but  enables stop
  1346.                               and  pause  when  transmitting  string.  Not
  1347.                               often used.
  1348.  
  1349.           E.g.: S$ = "[R]eturn to main menu, [Q]uit this DOOR"
  1350.                 SendString S$, "RQ", K$, 0
  1351.                 SendCR "The user has pressed: "+ K$
  1352.  
  1353.  
  1354.           SendRight Number%
  1355.           ----------------
  1356.           Type: SUB
  1357.  
  1358.           Moves the cursor to the right  a specified number of times.  Only
  1359.           available if user has ANSI or Avatar/0+.
  1360.  
  1361.  
  1362.           SendRIP FileName$
  1363.           -----------------
  1364.           Type: SUB
  1365.  
  1366.           Send a RIP  file. The RIP  screen is only  visible on the  remote
  1367.           system.
  1368.  
  1369.           E.g.: SendRIP "RIPDEMO.RIP"
  1370.  
  1371.  
  1372.  
  1373.           The Easy-Door Library V2.60                                   /28
  1374.  
  1375.  
  1376.           SendTXT FileName$, TypeNumber%
  1377.           ------------------------------
  1378.           Type: SUB
  1379.  
  1380.           Sends a text file and prompts for more when the screen is full.
  1381.  
  1382.                TypeNumber%    Function(s) available
  1383.                -----------    ---------------------
  1384.                    0          Pause and Stop
  1385.                    1          Pause only
  1386.  
  1387.           E.g.: SendTXT "EasyDoor.DOC", 0
  1388.  
  1389.  
  1390.           SmartColor ForeColor%, BackColor%
  1391.           ---------------------------------
  1392.           Type: SUB
  1393.  
  1394.           This routine changes the active text color. ForeColor% (0-15) is
  1395.           used to specify the  text color and BackColor%  (0-7) is for  the
  1396.           background color. This routine is named SmartColor because of its
  1397.           nature. This routine only send the necessary control sequence  to
  1398.           change  the  color  by   analysing  the  current  active   color.
  1399.           Automatically  uses  ANSI  or  Avatar  depending  of  the  user's
  1400.           configuration.
  1401.  
  1402.           E.g.: SmartColor 15, 1 ' Bright white text on a blue background
  1403.  
  1404.  
  1405.           StatusPrint Text$
  1406.           -----------------
  1407.           Type: SUB
  1408.  
  1409.           Prints a string on  the status bar.  The string is  automatically
  1410.           centered.
  1411.  
  1412.  
  1413.           TimeKeys (State%)
  1414.           -----------------
  1415.           Type: SUB
  1416.  
  1417.           Turns the keys to change time on or off (On=1, Off=0). Those keys
  1418.           are (ALT -) and (ALT =).
  1419.  
  1420.  
  1421.  
  1422.           The Easy-Door Library V2.60                                   /29
  1423.  
  1424.  
  1425.           TimeLeft%
  1426.           ---------
  1427.           Type: FUNCTION
  1428.  
  1429.           Returns the  time left  by the  user. The  value returned  is  in
  1430.           minutes.
  1431.  
  1432.           E.g.: SendCR Num2Str$(TimeLeft%) + " minutes remaining."
  1433.  
  1434.  
  1435.           TimeOut (Minute%)
  1436.           -----------------
  1437.           Type: SUB
  1438.  
  1439.           Changes the inactivity time-out delay (in minute).
  1440.  
  1441.           E.g.:TimeOut 4 ' Sets the inactivity time-out to 4 minutes
  1442.  
  1443.  
  1444.           TP2QB$ (String$)
  1445.           ----------------
  1446.           Type: FUNCTION
  1447.  
  1448.           This function will return  a BASIC string  from a PASCAL  string.
  1449.           PASCAL uses  the  first  character  of  a  string  has  a  length
  1450.           indicator. Very  useful  when  processing  BBS  files  made  with
  1451.           PASCAL.
  1452.  
  1453.  
  1454.           WaitOB
  1455.           ------
  1456.           Type: SUB
  1457.  
  1458.           Loops until the modem output buffer becomes empty.
  1459.  
  1460.  
  1461.  
  1462.           The Easy-Door Library V2.60                                   /30
  1463.  
  1464.  
  1465.           Note from the author
  1466.           --------------------
  1467.  
  1468.           Thank you for using the Easy-Door library. It is to be hoped that
  1469.           Easy-Door will  be  as  useful to  you  as  it is  to  us.  Since
  1470.           Easy-Door is so easy to use and powerful, you might find yourself
  1471.           writing your own  door and putting  it on  the shareware  market.
  1472.           Registration is, therefore, a good idea. Please register today!
  1473.  
  1474.  
  1475.           Special thanks
  1476.           ---------------
  1477.  
  1478.           Andre Morin,  Nicolas Saillant,  Ken Bienvenue,  Mike Welch,  Wig
  1479.           DeMoville,  Eric  Yung,  Gary   Peterson,  Jerry  Aldrich,   Dave
  1480.           Wendling, all registered  users and  everybody who  helped me  in
  1481.           this project.
  1482.  
  1483.  
  1484.           How to contact us?
  1485.           ------------------
  1486.  
  1487.                - Easy-Door support BBS
  1488.  
  1489.                       Node 1: (418) 658-6769 (14.4 kbps, V.32 bis)
  1490.                       Node 2: (418) 659-6120 (14.4 kbps, V.32 bis)
  1491.  
  1492.                       For a fast access, logon with the name "Easy-Door"
  1493.                       with the password "Easy-Door".
  1494.  
  1495.                - by Fidonet at 1:240/291
  1496.  
  1497.                       File Request  (FREQ)  EASYDOOR  to  get  the  latest
  1498.                       shareware version of Easy-Door.
  1499.  
  1500.                - Fidonet QuickBasic and Visual Basic Echo Mail Conference
  1501.  
  1502.                - Regular mail
  1503.  
  1504.                       Martin Bouchard
  1505.                       1207 du Golf
  1506.                       Cap-Rouge, QC
  1507.                       CANADA
  1508.                       G1Y 2T4