home *** CD-ROM | disk | FTP | other *** search
/ World of Shareware - Software Farm 2 / wosw_2.zip / wosw_2 / QBAS / DWDOOR23.ZIP / DWDOOR.DOC < prev    next >
Text File  |  1993-08-25  |  121KB  |  6,598 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.                           PowerBASIC DW-Door version 2.3
  30.  
  31.                   Door Programmer's Toolkit for PowerBASIC 3.0b
  32.  
  33.            (C) Copyright 1993 by James R. Davis - All Rights Reserved
  34.  
  35.                          Shareware Release Documentation
  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.                          PowerBASIC DWDoor Library v2.3
  68.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  69.  
  70.       About the DWDoor Library:
  71.  
  72.               DWDoor is a group of useful commands for the PowerBASIC
  73.           programmer to allow advanced routines for writing and creating
  74.           BBS door programs that will work with virtually any BBS program
  75.           available today.  With this set of routines there isn't any
  76.           limit to the type of door you can write except your own
  77.           imagination.
  78.  
  79.               DWDoor is a shareware product.  Shareware means that you as
  80.           a user may use it for a trial period at no cost.  If you
  81.           continue to use the routines after that trial period, a
  82.           registration fee of $35 is suggested.  Anyone sending in $75 or
  83.           more will receive the latest version of DWDoor and a printed and
  84.           bound manual
  85.  
  86.               Commercial users must pay the registration fee, and all
  87.           commercial programs must include, either in the documentation,
  88.           or displayed in the program itself, the copyright notice for
  89.           DWDoor.  Note:  Commercial programs are any program that you
  90.           write and receive payment for (including shareware).  All users
  91.           are encouraged to send in a voluntary contribution to help with
  92.           development costs for future versions.
  93.  
  94.       Support:
  95.  
  96.               Support for DWDoor is provided by James R. Davis who may be
  97.           contacted at 3 Williams Blvd - 1C, Lake Grove, NY 11755 or
  98.           through the Programmer's Mega-Source at (516) 737-4637 with your
  99.           1200/2400/9600/14400/V32bis modem at 8 bits, No parity, and 1
  100.           stop bit.  Registered users will also have access to a technical
  101.           support voice number for any questions or comments.
  102.  
  103.       Warranty:
  104.  
  105.               DWDoor is supplied "AS IS", and there is no warranty of any
  106.           kind expressed or implied, including, without limitation. the
  107.           warranties of merchantability and of the fitness for any
  108.           purpose.  The author assumes no liability for any damages,
  109.           direct or consequential, which may result from the use or misuse
  110.           of DWDoor.
  111.  
  112.       Acknowledgments:
  113.  
  114.               I would like to thank Dave Navarro, Jr. for all his
  115.           wonderful help and inspiration, and for introducing me to the
  116.           power of PowerBASIC.  Without his help and support, I probably
  117.           would still be debating on whether or not to upgrade my doors,
  118.           which inspired this library.  I would like to thank Bob Zale for
  119.           creating what I think is the BEST basic compiler available.
  120.           Without it, I'd still be programming and wasting space in QB.  I
  121.           would also like to thank Michael Cleverly for writing his Cat
  122.           Patch routines that got me started in door programming.  Without
  123.           his work and dedication, I would never have had an interest in
  124.           writing doors of any kind.  And most of all YOU for using this
  125.           library!  THANK YOU MOST OF ALL!
  126.  
  127.  
  128.                                      Page 2
  129.  
  130.  
  131.  
  132.  
  133.                          PowerBASIC DWDoor Library v2.3
  134.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  135.  
  136.                                 Table of Contents
  137.  
  138.       About the DWDoor Library ....................................... 2
  139.       Support ........................................................ 2
  140.       Warranty ....................................................... 2
  141.       Acknowledgments ................................................ 2
  142.       How to Use DWDoor in Your Program .............................. 5
  143.       Variable and SUB/FUNCTION List Quick Reference ................. 6
  144.       DWDoor's Routines and Variables
  145.         Ansi% ........................................................ 9
  146.         AnsiColor$() ................................................. 10
  147.         AnsiLocate$() ................................................ 11
  148.         Attr%() ...................................................... 12
  149.         BBS$ ......................................................... 13
  150.         Back% ........................................................ 14
  151.         Baud& ........................................................ 15
  152.         Beeper& ...................................................... 16
  153.         CLR .......................................................... 17
  154.         CR$ .......................................................... 18
  155.         CRLF$ ........................................................ 19
  156.         Carrier%() ................................................... 20
  157.         Center$() .................................................... 21
  158.         CheckTime .................................................... 22
  159.         ComInit$ ..................................................... 23
  160.         ComParity% ................................................... 24
  161.         ComPort% ..................................................... 25
  162.         Comm% ........................................................ 26
  163.         CommKey$ ..................................................... 27
  164.         DCSRLIN% ..................................................... 28
  165.         DPos% ........................................................ 29
  166.         DPrint() ..................................................... 30
  167.         DVGivUp ...................................................... 31
  168.         DVPrint() .................................................... 32
  169.         DataLen%() ................................................... 33
  170.         DoorHelp$ .................................................... 34
  171.         DoorInfo$() .................................................. 35
  172.         DoorInit() ................................................... 36
  173.         DoorName$ .................................................... 37
  174.         ErrorFile$ ................................................... 38
  175.         ErrorLev% .................................................... 39
  176.         Exist%() ..................................................... 40
  177.         ExitDoor() ................................................... 41
  178.         Extra$ ....................................................... 42
  179.         False% ....................................................... 43
  180.         FirstName$ ................................................... 44
  181.         Fore% ........................................................ 45
  182.         GetBaud&() ................................................... 46
  183.         GetExtra$() .................................................. 47
  184.         GetLocalInfo ................................................. 48
  185.         Help() ....................................................... 49
  186.         InComm$() .................................................... 50
  187.         IRQ$ ......................................................... 51
  188.         InText$ ...................................................... 52
  189.         KBLocal% ..................................................... 53
  190.         KBTime& ...................................................... 54
  191.         LBack$ ....................................................... 55
  192.  
  193.  
  194.                                      Page 3
  195.  
  196.  
  197.  
  198.  
  199.                          PowerBASIC DWDoor Library v2.3
  200.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  201.  
  202.         LBackSp$ ..................................................... 56
  203.         LastName$ .................................................... 57
  204.         Line25 ....................................................... 58
  205.         MaxTime& ..................................................... 59
  206.         More% ........................................................ 60
  207.         NormalColor$ ................................................. 61
  208.         Okay% ........................................................ 62
  209.         OutComm() .................................................... 63
  210.         Pause ........................................................ 64
  211.         Parity%() .................................................... 65
  212.         Parm$() ...................................................... 66
  213.         PrintFile() .................................................. 67
  214.         RBack$ ....................................................... 68
  215.         RBackSp$ ..................................................... 69
  216.         Serial$ ...................................................... 70
  217.         Script() ..................................................... 71
  218.         Scrn2Ansi$() ................................................. 72
  219.         StopBits%() .................................................. 73
  220.         SysopF$ ...................................................... 74
  221.         SysopL$ ...................................................... 75
  222.         SysopName$ ................................................... 76
  223.         TestComm ..................................................... 77
  224.         TimeIn& ...................................................... 78
  225.         TimeLeft& .................................................... 79
  226.         Trim$() ...................................................... 80
  227.         True% ........................................................ 81
  228.         UserName$ .................................................... 82
  229.         WriteDoorERR() ............................................... 83
  230.       The CFG File ................................................... 84
  231.       CFG Variable List .............................................. 85
  232.       CFG Variables
  233.         BBSNAME ...................................................... 86
  234.         COMPORT ...................................................... 87
  235.         DOORFILE ..................................................... 88
  236.         EXTRA ........................................................ 89
  237.         IRQ .......................................................... 90
  238.         KBTIME ....................................................... 91
  239.         MAXTIME ...................................................... 92
  240.         SERIAL ....................................................... 93
  241.         SYSOPF ....................................................... 94
  242.         SYSOPL ....................................................... 95
  243.         Making your own CFG Variables ................................ 96
  244.       Author's Notes and Suggestions ................................. 97
  245.       Error Messages ................................................. 99
  246.       Closing ........................................................ 100
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.                                      Page 4
  261.  
  262.  
  263.  
  264.  
  265.                          PowerBASIC DWDoor Library v2.3
  266.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  267.  
  268.       How to Use DWDoor in Your Program:
  269.  
  270.               All of the routines in the DWDoor UNIT files have been
  271.           declared public so you may just include the statement for each
  272.           function or subroutine, or use the variable provided you use the
  273.           proper syntax for each as described in the examples provided in
  274.           the description for each routine.  Note that all numeric
  275.           variables are integers unless otherwise indicated.  This helps
  276.           to speed the operation of the routines and your program.  To
  277.           include all the routines in DWDoor, just place the following
  278.           statement at the top of your program:
  279.  
  280.                               $INCLUDE "DWDOOR.INC"
  281.  
  282.               Make sure that both the DWDOOR.INC and all the UNIT files
  283.           are located in the proper directories as setup by your editor.
  284.           The DWDOOR.CFG file is an ASCII text file that the routines read
  285.           from to set defaulting variables used in your program.  The
  286.           format of this file remains constant for every door file that
  287.           you create.  You can rename this file to whatever you wish.  It
  288.           will be the file called upon during initial execution of your
  289.           door on the command line.
  290.  
  291.               The command line options are ?, which will bring up a help
  292.           file set by you in the DoorHelp$; LOCAL will put the user into
  293.           local mode, this can also be achieved by no command line option;
  294.           or the name of the .CFG to be used (e.g.: DWDOOR DWDOOR.CFG).
  295.  
  296.               I have also included a way to protect your work by setting
  297.           the variable SERIAL=serial-code in the CFG file at any time.
  298.           The information that is stored in the CFG file's SERIAL variable
  299.           can be can be retrieved from the Serial$ (see description) and
  300.           used to test if the door would be registered or not.  You can
  301.           then pass a -1 to the Okay% variable to tell the rest of the
  302.           program that the program is registered.
  303.  
  304.               Here's a small example routine you can write to test your
  305.           serial codes:
  306.  
  307.           CALL SerialCode(Serial$,SysopName$)
  308.  
  309.           SUB SerialCode(Tmp1$,Tmp2$)
  310.             FOR X%=1 TO LEN(Tmp2$)
  311.               INCR A%,ASC(MID$(Tmp2$,1,1)
  312.             NEXT X%
  313.             IF Tmp1$=Trim$(STR$(A%)) THEN Okay%=-1
  314.           END SUB
  315.  
  316.               I suggest you not use this EXACT example, but as you can
  317.           see, the possibilities are endless as to the complexity you wish
  318.           to make your registration test routine.
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.                                      Page 5
  327.  
  328.  
  329.  
  330.  
  331.                          PowerBASIC DWDoor Library v2.3
  332.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  333.  
  334.                  Variable and SUB/FUNCTION List Quick Reference
  335.  
  336.       Name             Type            Description
  337.       ----             ----            -----------
  338.       Ansi%          - Integer       - -1 if ANSI allowed, 0 if not.
  339.       AnsiColor$()   - Function      - Returns an ANSI command for
  340.                                        specified color.
  341.       AnsiLocate$()  - Function      - Returns an ANSI command for
  342.                                        locating the cursor.
  343.       Attr%()        - Function      - Returns an integer representation
  344.                                        of fore/background colors.
  345.       BBS$           - String        - The BBS name.
  346.       Back%          - Integer       - Current background color.
  347.       Baud&          - Long Integer  - The baud rate of ComPort%.
  348.       Beeper&        - Long Integer  - Millisecs before beep for no input.
  349.       CLR            - Subroutine    - Clears the local and remote screens
  350.       CR$            - 1-CHR String  - Carriage return:  CHR$(13).
  351.       CRLF$          - 2-CHR String  - Return + Linefeed:
  352.                                        CHR$(13)+CHR$(10).
  353.       Carrier%()     - Function      - Returns a non-zero number if
  354.                                        carrier is detected on ComPort%.
  355.       Center$()      - Function      - Returns a string centered in
  356.                                        specified amount of spaces.
  357.       CheckTime      - Subroutine    - Checks time limit of user and ends
  358.                                        program if exceeded.
  359.       ComInit$       - String        - String for opening com port.
  360.       ComParity%     - Integer       - The parity of ComPort%.
  361.       ComPort%       - Integer       - The comport number (0-8).
  362.       Comm%          - Integer       - OPENed COM port number, used for
  363.                                        printing text directly to remote.
  364.       CommKey$       - Function      - Gets key from user, same as INKEY$.
  365.       DCSRLIN%       - Function      - Returns DOS current cursor row
  366.                                        position.
  367.       DPos%          - Function      - Returns DOS current cursor column
  368.                                        position.
  369.       DPrint()       - Subroutine    - Prints a string through DOS instead
  370.                                        of directly.
  371.       DVGivUp        - Subroutine    - Gives up time for DesqView
  372.                                        prompting.
  373.       DVPrint()      - Subroutine    - Prints a string directly without
  374.                                        DesqView bleed-through.
  375.       DataLen%()     - Function      - Returns the current Databit length
  376.                                        of ComPort%.
  377.       DoorHelp$      - String        - The filename displayed when ? used
  378.                                        on command line.
  379.       DoorInfo$()    - Function      - Opens BBS door files or get info
  380.                                        directly from comport.
  381.       DoorInit()     - Subroutine    - Initializes all variables.
  382.       DoorName$      - String        - Full name of the door.
  383.       ErrorFile$     - String        - The filename to write errors to.
  384.       ErrorLev%      - Function      - Returns SHELLed ERRORLEVEL.
  385.       Exist%()       - Function      - Returns a non-zero if file exists.
  386.       ExitDoor()     - Subroutine    - Exits back to the BBS with
  387.                                        ERRORLEVEL if supplied.
  388.       Extra$         - String        - Extra string of 70 characters or
  389.                                        less (optional).
  390.  
  391.  
  392.                                      Page 6
  393.  
  394.  
  395.  
  396.  
  397.                          PowerBASIC DWDoor Library v2.3
  398.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  399.  
  400.       False%         - Integer       - Constant 0.
  401.       FirstName$     - String        - User's First name.
  402.       Fore%          - Integer       - Current foreground color.
  403.       GetBaud&()     - Function      - Returns current baud rate ComPort%
  404.                                        (up to 38400 baud).
  405.       GetExtra$()    - Function      - Retrieves extra CFG variable info.
  406.       GetLocalInfo   - Subroutine    - If in local mode, gets local info.
  407.       Help()         - Subroutine    - Displays DoorHelp$ to screen if ?
  408.                                        is used on command line.
  409.       InComm$()      - Function      - Gets input from KB and Remote with
  410.                                        many options.
  411.       InText$        - String        - Extra input from the user.
  412.       IRQ$           - String        - The number of the IRQ for non-
  413.                                        standard comports.
  414.       KBLocal%       - Integer       - -1 if LOCAL, 0 if at REMOTE.
  415.       KBTime&        - Long Integer  - KB time-out limit in seconds.
  416.       LBack$         - 1-CHR String  - Local non-destructive backspace.
  417.       LBackSp$       - 3-CHR String  - Local destructive backspace
  418.       LastName$      - String        - User's Last name.
  419.       Line25         - Subroutine    - Prints info about user and door on
  420.                                        lines 24 and 25.
  421.       MaxTime&       - Long Integer  - Maximum amount of time in door
  422.                                        allowed in secs.
  423.       More%          - Function      - More prompt with Yes, No, and
  424.                                        Continuous.
  425.       NormalColor$   - 4-CHR String  - ANSI color code of White on Black.
  426.       Okay%          - Integer       - -1 if serial code matches, 0 if not
  427.       OutComm()      - Subroutine    - Prints string to screen and remote
  428.                                        with ANSI support.
  429.       Pause          - Subroutine    - Asks user to "Press any key to
  430.                                        continue."
  431.       Parity%()      - Function      - Returns current parity of ComPort%.
  432.       Parm$()        - Function      - Parses strings to any specified
  433.                                        character.
  434.       PrintFile()    - Subroutine    - Prints an entire file out to the
  435.                                        user and the screen.
  436.       RBack$         - 1-CHR String  - Remote non-destructive backspace.
  437.       RBackSp$       - 3-Byte String - Remote destructive backspace.
  438.       Script()       - Subroutine    - Allows you to access all routines
  439.                                        via normal text strings.
  440.       Scrn2Ansi$()   - Function      - Converts a given screen window into
  441.                                        an ANSI string.
  442.       Serial$        - String        - Returned from SERIAL variable in
  443.                                        .CFG file.
  444.       StopBits%()    - Function      - Returns stop-bits of ComPort%.
  445.       SysopF$        - String        - The Sysop's First name.
  446.       SysopL$        - String        - The Sysop's Last name.
  447.       SysopName$     - UCASE String  - The Sysop's full name (Uppercase).
  448.       TestComm       - Subroutine    - Tests the current com port and
  449.                                        exits if carrier is dropped, unless
  450.                                        local.
  451.       TimeIn&        - Long Integer  - Time user started program in
  452.                                        seconds.
  453.       TimeLeft&      - Long Integer  - Total time left in door in seconds.
  454.       Trim$()        - Function      - Trims string of spaces on both ends
  455.       True%          - Integer       - Constant -1.
  456.  
  457.  
  458.                                      Page 7
  459.  
  460.  
  461.  
  462.  
  463.                          PowerBASIC DWDoor Library v2.3
  464.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  465.  
  466.       UserName$      - UCASE String  - User's full name (Uppercase).
  467.       WriteDoorERR() - Subroutine    - Writes and error out to ErrorFile$
  468.                                        and ends with supplied ERRORLEVEL.
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.                                      Page 8
  525.  
  526.  
  527.  
  528.  
  529.                          PowerBASIC DWDoor Library v2.3
  530.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  531.  
  532.       -------------------------------------------------------------------
  533.        Ansi%          Integer       -1 if ANSI allowed, 0 if not.
  534.       -------------------------------------------------------------------
  535.       With this variable you can test to see if the user is able to
  536.       support ANSI graphics on the BBS and whether or not the user has
  537.       ANSI turned on.  This variable can be reassigned to the value you
  538.       wish.
  539.  
  540.       Syntax:
  541.         A% = Ansi%
  542.  
  543.       See Also: True%
  544.  
  545.       Example:
  546.         IF Ansi% = True% THEN
  547.           PRINT "User has ANSI graphics turned on."
  548.         ELSE
  549.           PRINT "User has ANSI graphics turned off."
  550.         END IF
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.                                      Page 9
  591.  
  592.  
  593.  
  594.  
  595.                          PowerBASIC DWDoor Library v2.3
  596.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  597.  
  598.       -------------------------------------------------------------------
  599.        AnsiColor$()   Function      An ANSI color command.
  600.       -------------------------------------------------------------------
  601.       By using this function you can automatically get the ANSI command
  602.       for changing to the color you specify.  If ANSI is not on, this will
  603.       return a null string.
  604.  
  605.       Syntax:
  606.         A$ = AnsiColor$(Attr%(7,0))
  607.  
  608.       See Also:  Ansi%, AnsiLocate$(), Attr%()
  609.  
  610.       Example:
  611.         IF Ansi% = True% THEN
  612.           A$ = AnsiColor$(Attr%(14, 1) + " This is a warning message! "
  613.         ELSE
  614.           A$ = "This is a warning message without color!"
  615.         END IF
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.                                      Page 10
  657.  
  658.  
  659.  
  660.  
  661.                          PowerBASIC DWDoor Library v2.3
  662.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  663.  
  664.       -------------------------------------------------------------------
  665.        AnsiLocate$()  Function      An ANSI cursor locating command.
  666.       -------------------------------------------------------------------
  667.       By using this function you can automatically get the ANSI command
  668.       for locating the cursor.  If ANSI is off, this will return a null
  669.       string.
  670.  
  671.       Syntax:
  672.         A$ = AnsiLocate$(Row%,Col%)
  673.            Where Row% = The line on the screen to position to.
  674.                  Col% = The column on the screen to position to.
  675.  
  676.       See Also:  AnsiColor$()
  677.  
  678.       Example:
  679.         IF Ansi% = True% THEN
  680.           CALL CLR
  681.           A$ = AnsiLocate$(12, 1) + Center$("Hello There!")
  682.           CALL OutComm(Attr%(14, 4), 1, A$)
  683.         ELSE
  684.           CALL OutComm(7, 1, Center$("Hello There!"))
  685.         END IF
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.                                      Page 11
  723.  
  724.  
  725.  
  726.  
  727.                          PowerBASIC DWDoor Library v2.3
  728.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  729.  
  730.       -------------------------------------------------------------------
  731.        Attr%()        Function      Single integer of fore/background.
  732.       -------------------------------------------------------------------
  733.       Calculates a single integer from foreground and background values
  734.       that you specify.  Use this routine to change colors in any
  735.       subroutine or function that requires a single color variable.
  736.  
  737.       Syntax:
  738.         Color% = Attr%(Foreground%,Background%)
  739.                Where Foreground% = Any color of the color table below.
  740.                      Background% = Any color from 0 to 7 of color table.
  741.  
  742.                Color Table:
  743.  
  744.                      0 = Black          8 = Grey
  745.                      1 = Blue           9 = Light Blue
  746.                      2 = Green         10 = Light Green
  747.                      3 = Cyan          11 = Light Cyan
  748.                      4 = Red           12 = Light Red
  749.                      5 = Magenta       13 = Light Magenta
  750.                      6 = Brown         14 = Yellow
  751.                      7 = White         15 = Bright White
  752.  
  753.       See Also:  AnsiColor$(), Back%, Fore%
  754.  
  755.       Example:
  756.         WHILE A$ <> CHR$(27)
  757.           LINE INPUT "Enter a foreground color value: ", Fore$
  758.           LINE INPUT "Enter a background color value: ", Back$
  759.           Fore% = VAL(Fore$)
  760.           Back% = VAL(Back$)
  761.           PRINT
  762.           PRINT "Attribute Value ="; Attr%(Fore%, Back%)
  763.           PRINT
  764.           PRINT "Press any key to do it again, ESC to quit:";
  765.           A$ = INPUT$(1)
  766.         WEND
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.                                      Page 12
  789.  
  790.  
  791.  
  792.  
  793.                          PowerBASIC DWDoor Library v2.3
  794.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  795.  
  796.       -------------------------------------------------------------------
  797.        BBS$           String        The BBS name.
  798.       -------------------------------------------------------------------
  799.       This string will contain the BBS name that the door will be running
  800.       under.  It is taken directly from the .CFG file and is set by the
  801.       BBSNAME variable within it.  This variable can be reassigned.
  802.  
  803.       Syntax:
  804.         A$ = BBS$
  805.  
  806.       See Also:  BBSNAME
  807.  
  808.       Example:
  809.         PRINT "The name of the BBS using this program is: "; BBS$
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.                                      Page 13
  855.  
  856.  
  857.  
  858.  
  859.                          PowerBASIC DWDoor Library v2.3
  860.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  861.  
  862.       -------------------------------------------------------------------
  863.        Back%          Integer       Current background color.
  864.       -------------------------------------------------------------------
  865.       Contains the currently used background color.
  866.  
  867.       Syntax:
  868.         A% = Back%
  869.  
  870.       See Also:  Fore%
  871.  
  872.       Example:
  873.         PRINT "The current background color is"; Back%
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  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.                                      Page 14
  921.  
  922.  
  923.  
  924.  
  925.                          PowerBASIC DWDoor Library v2.3
  926.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  927.  
  928.       -------------------------------------------------------------------
  929.        Baud&          Long Integer  The baud rate of com port.
  930.       -------------------------------------------------------------------
  931.       This variable contains the current baud rate of the com port being
  932.       used.  This variable can be reassigned but won't change the current
  933.       speed of the com port.
  934.  
  935.       Syntax:
  936.         A& = Baud&
  937.  
  938.       See Also:  GetBaud&()
  939.  
  940.       Example:
  941.         PRINT "The current baud rate being used is"; Baud&
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.                                      Page 15
  987.  
  988.  
  989.  
  990.  
  991.                          PowerBASIC DWDoor Library v2.3
  992.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  993.  
  994.       -------------------------------------------------------------------
  995.        Beeper&        Long Integer  Milliseconds before beep for no input.
  996.       -------------------------------------------------------------------
  997.       This variable contains the number of milliseconds before a beep
  998.       sounds on remote for no input.  To determine seconds, use the
  999.       formula [Beeper& = Seconds * 180].  Default value is 30 seconds.
  1000.  
  1001.       Syntax:
  1002.         A& = Beeper&
  1003.  
  1004.       See Also:  KBTime&, MaxTime&
  1005.  
  1006.       Example:
  1007.         LINE INPUT "How many minutes before the beeper sounds?"; A$
  1008.         Bpr% = VAL(A$)
  1009.         Beeper& = (Bpr% * 180) * 60
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.                                      Page 16
  1053.  
  1054.  
  1055.  
  1056.  
  1057.                          PowerBASIC DWDoor Library v2.3
  1058.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1059.  
  1060.       -------------------------------------------------------------------
  1061.        CLR            Subroutine    Clears the local and remote screens
  1062.       -------------------------------------------------------------------
  1063.       Using this subroutine you can clear the screen without destroying
  1064.       the last to lines on the screen.  Avoid using CLS by using this
  1065.       subroutine, unless you wish to clear the status line.
  1066.  
  1067.       Syntax:
  1068.         CALL CLR
  1069.  
  1070.       See Also:  Pause
  1071.  
  1072.       Example:
  1073.         PRINT "Press any key to clear the screen: ";
  1074.         A$ = INPUT$(1)
  1075.         CALL CLR
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.                                      Page 17
  1119.  
  1120.  
  1121.  
  1122.  
  1123.                          PowerBASIC DWDoor Library v2.3
  1124.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1125.  
  1126.       -------------------------------------------------------------------
  1127.        CR$            1-CHR String  Carriage return:  CHR$(13).
  1128.       -------------------------------------------------------------------
  1129.       This is a 1 character string that contains a carriage return.
  1130.  
  1131.       Syntax:
  1132.         A$ = CR$
  1133.  
  1134.       See Also:  CRLF$, LBack$, LBackSp$, RBack$, RBackSp$
  1135.  
  1136.       Example:
  1137.         A$ = "This will print with a carriage return" + CR$
  1138.         B$ = "This will print over the first.."
  1139.         CALL OutComm(7, 0, A$)
  1140.         CALL OutComm(7, 0 ,B$)
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.                                      Page 18
  1185.  
  1186.  
  1187.  
  1188.  
  1189.                          PowerBASIC DWDoor Library v2.3
  1190.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1191.  
  1192.       -------------------------------------------------------------------
  1193.        CRLF$          2-CHR String  Return + Linefeed: CHR$(13)+CHR$(10).
  1194.       -------------------------------------------------------------------
  1195.       This string contains 2 characters.  A carriage return and a
  1196.       linefeed.
  1197.  
  1198.       Syntax:
  1199.         A$ = CRLF$
  1200.  
  1201.       See Also:  CR$, LBack$, LBackSp$, RBack$, RBackSp$
  1202.  
  1203.       Example:
  1204.         A$ = "This will print with a carriage return" + CRLF$
  1205.         B$ = "This will print on the next line.."
  1206.         CALL OutComm(7, 0, A$)
  1207.         CALL OutComm(7, 0 ,B$)
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.                                      Page 19
  1251.  
  1252.  
  1253.  
  1254.  
  1255.                          PowerBASIC DWDoor Library v2.3
  1256.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1257.  
  1258.       -------------------------------------------------------------------
  1259.        Carrier%()     Function      Non-zero if carrier is detected.
  1260.       -------------------------------------------------------------------
  1261.       This function will return a non-zero number if a carrier is detected
  1262.       on a com port number.
  1263.  
  1264.       Syntax:
  1265.         A% = Carrier%(C%)
  1266.            Where C% = The number of the com port to test, a number from 1
  1267.                       to 8.
  1268.  
  1269.       See Also:  GetBaud&(), Parity%()
  1270.  
  1271.       Example:
  1272.         FOR X% = 1 TO 8
  1273.           IF Carrier%(X%) THEN
  1274.             PRINT "A carrier was detected on COM"; LTRIM$(STR$(X%)); ":"
  1275.           ELSE
  1276.             PRINT "No carrier detected on COM"; LTRIM$(STR$(X%)); ":"
  1277.           END IF
  1278.         NEXT X%
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.                                      Page 20
  1317.  
  1318.  
  1319.  
  1320.  
  1321.                          PowerBASIC DWDoor Library v2.3
  1322.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1323.  
  1324.       -------------------------------------------------------------------
  1325.        Center$()      Function      Centers in specified amount of spaces
  1326.       -------------------------------------------------------------------
  1327.       Centers a string within a specified number of spaces.  This now can
  1328.       handle ANSI color sequences, but ANSI location sequences will throw
  1329.       it off!
  1330.  
  1331.       Syntax:
  1332.         A$ = Center$(Text$,Col%)
  1333.            Where Text$ = The text you want to center.
  1334.                  Col%  = The amount of spaces to center Text$ in.
  1335.  
  1336.       See Also:  Trim$()
  1337.  
  1338.       Example:
  1339.         A$ = Center$("This will print centered in Yellow", 79)
  1340.         CALL OutComm$(14, 0, A$)
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.                                      Page 21
  1383.  
  1384.  
  1385.  
  1386.  
  1387.                          PowerBASIC DWDoor Library v2.3
  1388.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1389.  
  1390.       -------------------------------------------------------------------
  1391.        CheckTime      Subroutine    Checks time limit of user and ends.
  1392.       -------------------------------------------------------------------
  1393.       Checks the time remaining within the program and exits the program
  1394.       if the time limit has expired or has exceeded.  If InComm$() is
  1395.       waiting for input from remote, the remote terminal will beep once
  1396.       every Beep& seconds.
  1397.  
  1398.       Syntax:
  1399.         CALL CheckTime
  1400.  
  1401.       See Also:  Beeper&, TestComm
  1402.  
  1403.       Example:
  1404.         WHILE NOT INSTAT
  1405.           CALL CheckTime
  1406.           CALL TestComm
  1407.         WEND
  1408.         A$ = INKEY$
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.                                      Page 22
  1449.  
  1450.  
  1451.  
  1452.  
  1453.                          PowerBASIC DWDoor Library v2.3
  1454.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1455.  
  1456.       -------------------------------------------------------------------
  1457.        ComInit$       String        Complete string for opening com port.
  1458.       -------------------------------------------------------------------
  1459.       ComInit$ is the complete string for opening the com port.  It
  1460.       contains the following information:
  1461.  
  1462.         "COMx:baud,parity,databits,stopbits,CS,DS,CD,PE,DT,ME,FE,IRx"
  1463.  
  1464.       If you wish to use other perimeters than the ones used, simply CLOSE
  1465.       Comm%, get the data you wish from this string, and OPEN ComInit$ AS
  1466.       Comm% again.
  1467.  
  1468.       Syntax:
  1469.         A$ = ComInit$
  1470.  
  1471.       See Also:  Comm%, ComParity%
  1472.  
  1473.       Example:
  1474.         PRINT "The current comport initialization string contains:"
  1475.         WRITE ComInit$
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.                                      Page 23
  1515.  
  1516.  
  1517.  
  1518.  
  1519.                          PowerBASIC DWDoor Library v2.3
  1520.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1521.  
  1522.       -------------------------------------------------------------------
  1523.        ComParity%     Integer       The parity of ComPort%.
  1524.       -------------------------------------------------------------------
  1525.       This variable contains the current user's parity setting in easy
  1526.       integer.  If ComParity% = 8 then the parity setting is 8-N-1, else
  1527.       if ComParity% = 7 then the parity setting is 7-E-1.
  1528.  
  1529.       Syntax:
  1530.         A% = ComParity%
  1531.  
  1532.       See Also:  Baud&, ComInit$
  1533.  
  1534.       Example:
  1535.         PRINT "The connection type of this connection is: ";
  1536.         IF ComParity% = 8 THEN
  1537.           PRINT "8-N-1"
  1538.         ELSE
  1539.           PRINT "7-E-1"
  1540.         END IF
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.                                      Page 24
  1581.  
  1582.  
  1583.  
  1584.  
  1585.                          PowerBASIC DWDoor Library v2.3
  1586.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1587.  
  1588.       -------------------------------------------------------------------
  1589.        ComPort%       Integer       The comport number (0-8).
  1590.       -------------------------------------------------------------------
  1591.       This is the com port number that is being used.  It will be a number
  1592.       from 1 to 8, or 0 if the user is on LOCALLY.  If the user is using a
  1593.       non-standard port address, this will be set to 1.
  1594.  
  1595.       Syntax:
  1596.         A% = ComPort%
  1597.  
  1598.       See Also:  Baud&, Comm%, ComParity%
  1599.  
  1600.       Example:
  1601.         PRINT "The current comport in use is COM"; LTRIM$(STR$(ComPort%))
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.                                      Page 25
  1647.  
  1648.  
  1649.  
  1650.  
  1651.                          PowerBASIC DWDoor Library v2.3
  1652.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1653.  
  1654.       -------------------------------------------------------------------
  1655.        Comm%          Integer       OPENed COM port number used.
  1656.       -------------------------------------------------------------------
  1657.       This is the file handle that all routines use for communications.
  1658.       It is the OPENed com port number.  If you reassign this variable,
  1659.       you better make sure that you have it set for an OPENed com port!
  1660.  
  1661.       Syntax:
  1662.         A% = Comm%
  1663.  
  1664.       See Also:  Baud&, ComParity%, GetBaud&(), Parity%()
  1665.  
  1666.       Example:
  1667.         PRINT "This will be printed on the local screen only!"
  1668.         PRINT Comm%, "This will be printed to the comport only!"
  1669.         CALL OutComm(7, 1, "This will be printed to both")
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.                                      Page 26
  1713.  
  1714.  
  1715.  
  1716.  
  1717.                          PowerBASIC DWDoor Library v2.3
  1718.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1719.  
  1720.       -------------------------------------------------------------------
  1721.        CommKey$       Function      Gets one key from user like INKEY$
  1722.       -------------------------------------------------------------------
  1723.       Use this function to get one character from either the com port or
  1724.       the key board.  This function acts the same way that INKEY$ does
  1725.       only it will test for com port activity and time left in the
  1726.       program.  Note that with this function you can continue to update
  1727.       the display while waiting for the user to press a key!
  1728.  
  1729.       Syntax:
  1730.         A$ = CommKey$
  1731.  
  1732.       See Also:  InComm$()
  1733.  
  1734.       Example:
  1735.         A$ = CommKey$
  1736.         WHILE A$ = ""
  1737.           A$ = CommKey$
  1738.           CALL OutComm(7, 1, "Press any key to stop this display")
  1739.         WEND
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.                                      Page 27
  1779.  
  1780.  
  1781.  
  1782.  
  1783.                          PowerBASIC DWDoor Library v2.3
  1784.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1785.  
  1786.       -------------------------------------------------------------------
  1787.        DCSRLIN%       Function      DOS's current cursor row position.
  1788.       -------------------------------------------------------------------
  1789.       Returns the current location of the DOS cursor position in the same
  1790.       fashion as CSRLIN, only this takes into account ANSI relocation of
  1791.       the cursor as well.
  1792.  
  1793.       Syntax:
  1794.         A% = DCSRLIN%
  1795.  
  1796.       See Also:  DPos%
  1797.  
  1798.       Example:
  1799.         PRINT "The current cursor line is"; DCSRLIN%
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.                                      Page 28
  1845.  
  1846.  
  1847.  
  1848.  
  1849.                          PowerBASIC DWDoor Library v2.3
  1850.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1851.  
  1852.       -------------------------------------------------------------------
  1853.        DPos%          Function      DOS's current cursor column position.
  1854.       -------------------------------------------------------------------
  1855.       Returns the current location of the DOS cursor position in the same
  1856.       fashion as POS(0), only this takes into account ANSI relocation of
  1857.       the cursor as well.
  1858.  
  1859.       Syntax:
  1860.         A% = DPos%
  1861.  
  1862.       See Also:  DCSRLIN%
  1863.  
  1864.       Example:
  1865.         PRINT "The current cursor row is"; DPos%
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.                                      Page 29
  1911.  
  1912.  
  1913.  
  1914.  
  1915.                          PowerBASIC DWDoor Library v2.3
  1916.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1917.  
  1918.       -------------------------------------------------------------------
  1919.        DPrint()       Subroutine    Prints a string through DOS.
  1920.       -------------------------------------------------------------------
  1921.       Prints a string to the screen through DOS allowing for ANSI commands
  1922.       to be displayed correctly.
  1923.  
  1924.       Syntax:
  1925.         CALL DPrint(Text$)
  1926.              Where Text$ = The string to print.
  1927.  
  1928.       See Also:  DVPrint()
  1929.  
  1930.       Example:
  1931.         FOR X% = 1 TO 30
  1932.           CALL DPrint("This should scroll in the user window")
  1933.         NEXT
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.                                      Page 30
  1977.  
  1978.  
  1979.  
  1980.  
  1981.                          PowerBASIC DWDoor Library v2.3
  1982.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  1983.  
  1984.       -------------------------------------------------------------------
  1985.        DVGivUp        Subroutine    Gives up time for DesqView prompting.
  1986.       -------------------------------------------------------------------
  1987.       Gives up a time slice to the window running this program if DesqView
  1988.       or DoubleDOS is installed.
  1989.  
  1990.       Syntax:
  1991.         CALL DVGivUp
  1992.  
  1993.       See Also:  DVPrint()
  1994.  
  1995.       Example:
  1996.         CALL DVGivUp
  1997.         LINE INPUT "Enter any value here, I can wait: "; A$
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004.  
  2005.  
  2006.  
  2007.  
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.                                      Page 31
  2043.  
  2044.  
  2045.  
  2046.  
  2047.                          PowerBASIC DWDoor Library v2.3
  2048.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2049.  
  2050.       -------------------------------------------------------------------
  2051.        DVPrint()      Subroutine    Prints a string directly through DV.
  2052.       -------------------------------------------------------------------
  2053.       Directly prints a string to the screen without window bleed through,
  2054.       if DesqView or DoubleDOS is installed.  Use this instead of the
  2055.       PRINT command.
  2056.  
  2057.       Syntax:
  2058.         CALL DVPrint(Row%,Col%,Text$,Atr%)
  2059.              Where Row%  = The row to locate the cursor.
  2060.                    Col%  = The column to locate the cursor.
  2061.                    Text$ = The string to print at Row%, Col%.
  2062.                    Atr%  = The integer color attribute to print in.
  2063.  
  2064.       See Also:  DVGivUp
  2065.  
  2066.       Example:
  2067.         CALL DVPrint(12, 1, Center$("Warning!", 79), Attr%(14, 4))
  2068.  
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.                                      Page 32
  2109.  
  2110.  
  2111.  
  2112.  
  2113.                          PowerBASIC DWDoor Library v2.3
  2114.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2115.  
  2116.       -------------------------------------------------------------------
  2117.        DataLen%()     Function      The current Databit length of comport.
  2118.       -------------------------------------------------------------------
  2119.       Returns the data length of a com port.  Either 7 or 8.
  2120.  
  2121.       Syntax:
  2122.         A% = DataLen%(C%)
  2123.            Where C% = The com port to get data from, can be a number from
  2124.                       1 to 8.
  2125.  
  2126.       See Also:  ComPort%, GetBaud&(), StopBits%()
  2127.  
  2128.       Example:
  2129.         FOR X% = 1 TO 8
  2130.           IF Carrier%(X%) THEN
  2131.             PRINT "The data length of COM";
  2132.             PRINT LTRIM$(STR$(X%)); ": is"; DataLen%(X%)
  2133.           END IF
  2134.         NEXT
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.                                      Page 33
  2175.  
  2176.  
  2177.  
  2178.  
  2179.                          PowerBASIC DWDoor Library v2.3
  2180.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2181.  
  2182.       -------------------------------------------------------------------
  2183.        DoorHelp$      String        The filename displayed when ? used.
  2184.       -------------------------------------------------------------------
  2185.       Set this variable to equal the name of the help file that will be
  2186.       displayed whenever a user enters a "?" (question mark) alone on the
  2187.       command line.  It will display that file and ask if the user would
  2188.       like to enter the program in local mode.  You can find this variable
  2189.       in the DWDOOR.INC file.
  2190.  
  2191.       Syntax:
  2192.         DoorHelp$ = "DWDOOR.HLP"
  2193.  
  2194.       See Also:  DoorName$, ErrorFile$
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.                                      Page 34
  2241.  
  2242.  
  2243.  
  2244.  
  2245.                          PowerBASIC DWDoor Library v2.3
  2246.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2247.  
  2248.       -------------------------------------------------------------------
  2249.        DoorInfo$()    Function      Opens BBS door files and get info.
  2250.       -------------------------------------------------------------------
  2251.       Will get the information from the supplied filename to retrieve user
  2252.       info.  If the filename passed is "DIRECT" then the input is taken
  2253.       directly from the modem, and the user is asked to enter their full
  2254.       name.  It will return a 73 character string that contains the
  2255.       following information:
  2256.  
  2257.             First 30 characters = The User's full name.
  2258.              Next  1 character  = Y for ANSI allowed, N if not.
  2259.              Next  2 characters = 2 byte integer of time allowed.
  2260.              Next 33 characters = The com port initializing string.
  2261.              Last  7 characters = Reserved for future use.
  2262.  
  2263.       Syntax:
  2264.         A$ = DoorInfo$(File$)
  2265.            Where File$ = the BBS Door type listed below.
  2266.  
  2267.              PCBOARD.SYS  - PCBoard version 12 & 14.x or above.
  2268.              USERS.SYS    - PCBoard 15.0 beta
  2269.              CALLINFO.BBS - Wildcat version 2.0 or above.
  2270.              DOOR.SYS     - GAP any version.
  2271.              DORINFO#.DEF - RBBS and QBBS Systems (# is node).
  2272.              CHAIN.TXT    - WWIV version 2.x or above.
  2273.              DIRECT       - Will attempt to get all info from modem.
  2274.  
  2275.       See Also:  DoorInit()
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287.  
  2288.  
  2289.  
  2290.  
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.                                      Page 35
  2307.  
  2308.  
  2309.  
  2310.  
  2311.                          PowerBASIC DWDoor Library v2.3
  2312.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2313.  
  2314.       -------------------------------------------------------------------
  2315.        DoorInit()     Subroutine    Initializes all variables for DWDoor.
  2316.       -------------------------------------------------------------------
  2317.       This routine will set up all the variables for door operations to
  2318.       proceed normally.  This routine must be called upon FIRST by passing
  2319.       the COMMAND$ to it.  Any other time, you must supply the name of the
  2320.       CFG file.  If you wish to parse the COMMAND$ before it is passed to
  2321.       this routine, you can find the command in the DWDOOR.INC file.
  2322.  
  2323.       Syntax:
  2324.         CALL DoorInit(COMMAND$)
  2325.              Where COMMAND$ = The name of the CFG file to read.
  2326.                             = LOCAL or nothing.
  2327.                             = ? to display DoorHelp$
  2328.  
  2329.       See Also:  DoorInfo$()
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.                                      Page 36
  2373.  
  2374.  
  2375.  
  2376.  
  2377.                          PowerBASIC DWDoor Library v2.3
  2378.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2379.  
  2380.       -------------------------------------------------------------------
  2381.        DoorName$      String        Full name of the door.
  2382.       -------------------------------------------------------------------
  2383.       You set this variable to the name of your program.  It cannot be
  2384.       more the 40 characters so don't get to wild with your program names!
  2385.       You can find this variable in the DWDOOR.INC file.
  2386.  
  2387.       Syntax:
  2388.         DoorName$ = "DEMO Door for DWDoor v2.3"
  2389.  
  2390.       See Also:  DoorHelp$, ErrorFile$
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.                                      Page 37
  2439.  
  2440.  
  2441.  
  2442.  
  2443.                          PowerBASIC DWDoor Library v2.3
  2444.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2445.  
  2446.       -------------------------------------------------------------------
  2447.        ErrorFile$     String        The filename to write errors to.
  2448.       -------------------------------------------------------------------
  2449.       Set this variable to the file name you wish to have the errors
  2450.       printed to.  You can find this variable in the DWDOOR.INC file.
  2451.  
  2452.       Syntax:
  2453.         ErrorFile$ = "DWDOOR.ERR"
  2454.  
  2455.       See Also:  DoorHelp$, DoorName$
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.                                      Page 38
  2505.  
  2506.  
  2507.  
  2508.  
  2509.                          PowerBASIC DWDoor Library v2.3
  2510.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2511.  
  2512.       -------------------------------------------------------------------
  2513.        ErrorLev%      Function      Returns SHELLed ERRORLEVEL occurred.
  2514.       -------------------------------------------------------------------
  2515.       This functions will return the ERRORLEVEL of a program SHELLed to
  2516.       within a program after its execution, if used directly after the
  2517.       SHELL statement.
  2518.  
  2519.       Syntax:
  2520.         A% = ErrorLev%
  2521.  
  2522.       Example:
  2523.         A$ = "WHATEVER.ZIP"
  2524.         SHELL "PKUNZIP " + A$
  2525.         A% = ErrorLev%
  2526.         IF A% THEN
  2527.           PRINT "Error"; A%; "occurred while trying to UNZIP "; A$
  2528.         END IF
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.                                      Page 39
  2571.  
  2572.  
  2573.  
  2574.  
  2575.                          PowerBASIC DWDoor Library v2.3
  2576.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2577.  
  2578.       -------------------------------------------------------------------
  2579.        Exist%()       Function      A non-zero number if file exists.
  2580.       -------------------------------------------------------------------
  2581.       This function returns a non-zero number if the filename passed to it
  2582.       exists.  The filename may contain drive and path.  Use this before
  2583.       opening a file.
  2584.  
  2585.       Syntax:
  2586.         A% = Exist%(File$)
  2587.            Where File$ = The filename you wish to use.
  2588.  
  2589.       Example:
  2590.         IF Exist%("WHATEVER.ZIP") THEN
  2591.           PRINT "WHATEVER.ZIP exists, we can now UNZIP it!"
  2592.         ELSE
  2593.           PRINT "WHATEVER.ZIP can't be found!"
  2594.         END IF
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.                                      Page 40
  2637.  
  2638.  
  2639.  
  2640.  
  2641.                          PowerBASIC DWDoor Library v2.3
  2642.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2643.  
  2644.       -------------------------------------------------------------------
  2645.        ExitDoor()     Subroutine    Exits back to the BBS with ERRORLEVEL
  2646.       -------------------------------------------------------------------
  2647.       Use this function to end your program.  It will close all files and
  2648.       exit the program with an ERRORLEVEL if set to a non-zero number.
  2649.       In UNREGISTERED versions of the DWDoor library, the screen will
  2650.       clear and the DWDoor Copyright notice will be displayed for 5
  2651.       seconds.  Registering DWDoor will disable this function.
  2652.  
  2653.       Syntax:
  2654.         CALL ExitDoor(ErrorTyp%)
  2655.              Where ErrorTyp% = The ERRORLEVEL to set in DOS after ending.
  2656.                                (This must be a positive number.)
  2657.  
  2658.       See Also:  WriteDoorERR()
  2659.  
  2660.       Example:
  2661.         CALL ExitDoor(1)
  2662.  
  2663.         ----------------
  2664.  
  2665.         Batch file:
  2666.  
  2667.         DOORNAME DOORNAME.CFG
  2668.         IF ERRORLEVEL == 0 THEN EndBatch
  2669.  
  2670.         Oops:
  2671.         ECHO An error occurred in the door!
  2672.  
  2673.         EndBatch:
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.                                      Page 41
  2703.  
  2704.  
  2705.  
  2706.  
  2707.                          PowerBASIC DWDoor Library v2.3
  2708.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2709.  
  2710.       -------------------------------------------------------------------
  2711.        Extra$         String        Extra string of 70 characters or less
  2712.       -------------------------------------------------------------------
  2713.       This variable contains a sysop configurable string of 70 characters
  2714.       or less that allows the sysop to personalize the door to the BBS
  2715.       system the door would be running on.  This string is passed through
  2716.       the CFG file's EXTRA variable.
  2717.  
  2718.       Syntax:
  2719.         A$ = Extra$
  2720.  
  2721.       See Also:  EXTRA
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.                                      Page 42
  2769.  
  2770.  
  2771.  
  2772.  
  2773.                          PowerBASIC DWDoor Library v2.3
  2774.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2775.  
  2776.       -------------------------------------------------------------------
  2777.        False%         Integer       Constant 0.
  2778.       -------------------------------------------------------------------
  2779.       This variable will always contain a 0.  Used for testing.
  2780.  
  2781.       Syntax:
  2782.         A% = False%
  2783.  
  2784.       See Also:  True%
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.                                      Page 43
  2835.  
  2836.  
  2837.  
  2838.  
  2839.                          PowerBASIC DWDoor Library v2.3
  2840.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2841.  
  2842.       -------------------------------------------------------------------
  2843.        FirstName$     String        User's First name.
  2844.       -------------------------------------------------------------------
  2845.       This variable will contain the user's first name, in mixed case.
  2846.       First character Upper case, the rest lower case.  (eg: "John")
  2847.  
  2848.       Syntax:
  2849.         A$ = FirstName$
  2850.  
  2851.       See Also:  LastName$
  2852.  
  2853.       Example:
  2854.         PRINT "Hello "; FirstName$; ", welcome to the game!"
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.  
  2873.  
  2874.  
  2875.  
  2876.  
  2877.  
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.                                      Page 44
  2901.  
  2902.  
  2903.  
  2904.  
  2905.                          PowerBASIC DWDoor Library v2.3
  2906.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2907.  
  2908.       -------------------------------------------------------------------
  2909.        Fore%          Integer       Current foreground color.
  2910.       -------------------------------------------------------------------
  2911.       This variable contains the currently used foreground color.
  2912.  
  2913.       Syntax:
  2914.         A% = Fore%
  2915.  
  2916.       See Also:  Back%
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.                                      Page 45
  2967.  
  2968.  
  2969.  
  2970.  
  2971.                          PowerBASIC DWDoor Library v2.3
  2972.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  2973.  
  2974.       -------------------------------------------------------------------
  2975.        GetBaud&()     Function      Returns baud rate of opened com port.
  2976.       -------------------------------------------------------------------
  2977.       This function will return the current baud rate of the opened com
  2978.       port.
  2979.  
  2980.       Syntax:
  2981.         A& = GetBaud&(C%)
  2982.            Where C% = The current handle of the com port to use, it can be
  2983.                       a number from 1 to 8.
  2984.  
  2985.       See Also:  Carrier%(), ComPort%, Parity%(), DataLen%()
  2986.  
  2987.       Example:
  2988.         FOR X% = 1 TO 8
  2989.           IF Carrier%(X%) THEN
  2990.             PRINT "The baud rate of COM";
  2991.             PRINT LTRIM$(STR$(X%)); ": is"; GetBaud&(X%)
  2992.           END IF
  2993.         NEXT
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.                                      Page 46
  3033.  
  3034.  
  3035.  
  3036.  
  3037.                          PowerBASIC DWDoor Library v2.3
  3038.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3039.  
  3040.       -------------------------------------------------------------------
  3041.        GetExtra$()    Function      Gets user CFG variable information.
  3042.       -------------------------------------------------------------------
  3043.       This function will allow the programmer to make their own CFG
  3044.       variables.  Any CFG variable that does not belong in the DWDoor CFG
  3045.       file, is saved in memory with it's information.  To access the
  3046.       information, use this function to return the variable's data.
  3047.  
  3048.       Syntax:
  3049.         A$ = GetExtra$("MINE")
  3050.  
  3051.       See Also:  CFG Information
  3052.  
  3053.       Example:
  3054.         TimesADay%   = VAL(GetExtra$("TIMESADAY"))
  3055.         UserPrompt$  = GetExtra$("USERPROMPT")
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.                                      Page 47
  3099.  
  3100.  
  3101.  
  3102.  
  3103.                          PowerBASIC DWDoor Library v2.3
  3104.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3105.  
  3106.       -------------------------------------------------------------------
  3107.        GetLocalInfo   Subroutine    Gets info for local mode execution.
  3108.       -------------------------------------------------------------------
  3109.       This routine will ask the local user for their first and last name
  3110.       if program was entered using the LOCAL command line switch.
  3111.  
  3112.       Syntax:
  3113.         CALL GetLocalInfo
  3114.  
  3115.       See Also:  DoorInit()
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.                                      Page 48
  3165.  
  3166.  
  3167.  
  3168.  
  3169.                          PowerBASIC DWDoor Library v2.3
  3170.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3171.  
  3172.       -------------------------------------------------------------------
  3173.        Help()         Subroutine    Displays DoorHelp$ if ? is used.
  3174.       -------------------------------------------------------------------
  3175.       This routine will print the file passed to it with a pause every 23
  3176.       lines, and ask if user wishes to enter local mode.  This is called
  3177.       upon if the ? switch is used on the command line.  This file is not
  3178.       displayed to the remote user.
  3179.  
  3180.       Syntax:
  3181.         CALL Help(File$)
  3182.              Where File$ = The file you wish to display, can contain ANSI
  3183.                            escape codes.
  3184.  
  3185.       See Also:  DoorInit()
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.                                      Page 49
  3231.  
  3232.  
  3233.  
  3234.  
  3235.                          PowerBASIC DWDoor Library v2.3
  3236.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3237.  
  3238.       -------------------------------------------------------------------
  3239.        InComm$()      Function      Gets input from KB and Remote with
  3240.       -------------------------------------------------------------------
  3241.       Use this function to get input from the KB and the com port set with
  3242.       Comm% with several options.  See DEMO.BAS for complete examples.
  3243.  
  3244.       Syntax:
  3245.         A$ = InComm$(Atr%,Arglen%,NoRet%,Def$,OutHlt%,Ch$,Prompt$)
  3246.            Where Atr%    = Single integer color to print Prompt$
  3247.                  Arglen% = Length of input to accept, with options.  See
  3248.                            Table below.
  3249.                          = 0 then length is from the end of the prompt to
  3250.                            the end of the screen with word-wrap.
  3251.                          = If positive input is displayed when entered.
  3252.                          = If negative input is not displayed.
  3253.                  NoRet%  = See Table below.
  3254.                  Def$    = Default input is return is pressed alone.
  3255.                  OutHlt% = Single integer color to print text in.
  3256.                  Ch$     = Allowed input, if "" then any valid ASCII
  3257.                            alpha-numeric character is accepted.
  3258.                  Prompt$ = String to print before getting input.
  3259.  
  3260.               ┌─────────╥────────╥───┬───┬───┬───┬───┬───┬───┬───┐
  3261.               │ ArgLen% ║ NoRet% ║ A │ B │ C │ D │ E │ F │ G │ H │
  3262.               ╞═════════╬════════╬═══╪═══╪═══╪═══╪═══╪═══╪═══╪═══╡
  3263.               │   =0    ║   =0   ║ * │   │ * │   │ * │ * │   │   │
  3264.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3265.               │   <0    ║   =0   ║   │ * │   │ * │   │ * │   │ * │
  3266.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3267.               │   <0    ║   <0   ║   │ * │   │   │ * │   │ * │ * │
  3268.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3269.               │   <0    ║   >0   ║   │ * │   │   │ * │ * │   │ * │
  3270.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3271.               │   >0    ║   =0   ║   │   │ * │ * │   │ * │   │   │
  3272.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3273.               │   >0    ║   <0   ║   │   │ * │   │ * │   │ * │   │
  3274.               ├─────────╫────────╫───┼───┼───┼───┼───┼───┼───┼───┤
  3275.               │   >0    ║   >0   ║   │   │ * │   │ * │ * │   │   │
  3276.               └─────────╨────────╨───┴───┴───┴───┴───┴───┴───┴───┘
  3277.  
  3278.       A = Word wrap mode enabled, word wrapping occurs at column 77.
  3279.       B = Input is hidden and not displayed when entering.
  3280.       C = Display input as it is entered.
  3281.       D = A RETURN is required to end input.
  3282.       E = A RETURN is not required to end input, function will end when
  3283.           Arglen% is reached.
  3284.       F = Display a CRLF$ upon exiting routine.
  3285.       G = Do not display a CRLF$ upon exiting routine.
  3286.       H = Def$ = 1 character allowed to be displayed instead of input.
  3287.       * = Above function occurs with this setting.
  3288.  
  3289.       NOTE: Arglen% can be either positive or negative the length of
  3290.             input to allow.  NoRet% is either 0, -1, 1, or if =9876 then
  3291.             C, D, and G are invoked. (Last minute change!)
  3292.  
  3293.       See Also:  Attr%(), OutComm()
  3294.  
  3295.  
  3296.                                      Page 50
  3297.  
  3298.  
  3299.  
  3300.  
  3301.                          PowerBASIC DWDoor Library v2.3
  3302.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3303.  
  3304.       -------------------------------------------------------------------
  3305.        InText$        String        Extra input from the user.
  3306.       -------------------------------------------------------------------
  3307.       This variable contains a list of the commands entered on a single
  3308.       line through InComm$().  If a user separates commands with a semi-
  3309.       colon, they are stacked up in this string and used the next time the
  3310.       InComm$() function is called until this variable is empty, unless
  3311.       display of text is turned off in the next call to InComm$(), then
  3312.       this variable is set to a null string.
  3313.  
  3314.       Syntax:
  3315.         A$ = InText$
  3316.  
  3317.       See Also:  InComm$()
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.  
  3360.  
  3361.  
  3362.                                      Page 51
  3363.  
  3364.  
  3365.  
  3366.  
  3367.                          PowerBASIC DWDoor Library v2.3
  3368.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3369.  
  3370.       -------------------------------------------------------------------
  3371.        IRQ$           Variable      Contains IRQ number if set.
  3372.       -------------------------------------------------------------------
  3373.       This variable will contain the IRQ number if the user requested a
  3374.       non-standard IRQ assignment in the CFG file.
  3375.  
  3376.       Syntax:
  3377.         A$ = IRQ$
  3378.  
  3379.       See Also:  CommInit$
  3380.  
  3381.       Example:
  3382.         IF IRQ$ <> "" THEN PRINT "The IRQ being used is "; IRQ$
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.                                      Page 52
  3429.  
  3430.  
  3431.  
  3432.  
  3433.                          PowerBASIC DWDoor Library v2.3
  3434.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3435.  
  3436.       -------------------------------------------------------------------
  3437.        KBLocal%       Integer       -1 if LOCAL, 0 if at REMOTE.
  3438.       -------------------------------------------------------------------
  3439.       This variable is set to -1 if the user is at the keyboard or 0 if
  3440.       the user is at remote.
  3441.  
  3442.       Syntax:
  3443.         A% = KBLocal%
  3444.  
  3445.       See Also:  False%, True%
  3446.  
  3447.       Example:
  3448.         IF KBLocal% THEN PRINT "This is being run locally!"
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.                                      Page 53
  3495.  
  3496.  
  3497.  
  3498.  
  3499.                          PowerBASIC DWDoor Library v2.3
  3500.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3501.  
  3502.       -------------------------------------------------------------------
  3503.        KBTime&        Long Integer  KB time-out limit in seconds.
  3504.       -------------------------------------------------------------------
  3505.       This variable contains the amount of seconds allowed before KB
  3506.       timeout is detected.  To convert to minutes, simply divide by 60.
  3507.       This variable is set by the KBTIME variable in the CFG file.
  3508.  
  3509.       Syntax:
  3510.         A& = KBTime&
  3511.  
  3512.       See Also:  KBTIME
  3513.  
  3514.       Example:
  3515.         A$    = CommKey$
  3516.         Secs& = TIMER + KBTime&
  3517.         WHILE A$ = ""
  3518.           Tmp$ = Center$("Seconds until timeout:" + STR$(Secs& - TIMER)
  3519.           CALL DVPrint(12, 1, Tmp$, 7)
  3520.           A$ = CommKey$
  3521.         WEND
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.                                      Page 54
  3561.  
  3562.  
  3563.  
  3564.  
  3565.                          PowerBASIC DWDoor Library v2.3
  3566.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3567.  
  3568.       -------------------------------------------------------------------
  3569.        LBack$         1-CHR String  Local non-destructive backspace.
  3570.       -------------------------------------------------------------------
  3571.       This variable contains the 1 character string for a local non-
  3572.       destructive backspace.
  3573.  
  3574.       Syntax:
  3575.         A$ = LBack$
  3576.  
  3577.       See Also:  RBack$
  3578.  
  3579.       Example:
  3580.         A$ = "Press a key"
  3581.         B$ = STRING$(LEN(A$), LBack$)
  3582.         PRINT A$;
  3583.         A$ = INPUT$(1)
  3584.         PRINT B$; "You have just pressed a key!"
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.                                      Page 55
  3627.  
  3628.  
  3629.  
  3630.  
  3631.                          PowerBASIC DWDoor Library v2.3
  3632.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3633.  
  3634.       -------------------------------------------------------------------
  3635.        LBackSp$       3-CHR String  Local destructive backspace.
  3636.       -------------------------------------------------------------------
  3637.       This variable contains a 3 character string for a local destructive
  3638.       backspace.
  3639.  
  3640.       Syntax:
  3641.         A$ = LBackSp$
  3642.  
  3643.       See Also:  RBackSp$
  3644.  
  3645.       Example:
  3646.         A$ = "Press a key"
  3647.         B$ = STRING$(LEN(A$), LBackSp$)
  3648.         PRINT A$;
  3649.         A$ = INPUT$(1)
  3650.         PRINT B$; "You have just pressed a key!"
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.                                      Page 56
  3693.  
  3694.  
  3695.  
  3696.  
  3697.                          PowerBASIC DWDoor Library v2.3
  3698.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3699.  
  3700.       -------------------------------------------------------------------
  3701.        LastName$      String        User's Last name.
  3702.       -------------------------------------------------------------------
  3703.       This variable contains the user's last name in mixed case.  (e.g.:
  3704.       "Doe")
  3705.  
  3706.       Syntax:
  3707.         A$ = LastName$
  3708.  
  3709.       See Also:  FirstName$, SysopF$
  3710.  
  3711.       Example:
  3712.         PRINT "Hello "; FirstName$; " "; LastName$
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735.  
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.                                      Page 57
  3759.  
  3760.  
  3761.  
  3762.  
  3763.                          PowerBASIC DWDoor Library v2.3
  3764.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3765.  
  3766.       -------------------------------------------------------------------
  3767.        Line25         Subroutine    Prints info about user and door.
  3768.       -------------------------------------------------------------------
  3769.       This is used to print info about the user and the door on lines 24
  3770.       and 25.  If you wish to print anything to this area, use DVPrint().
  3771.  
  3772.       Syntax:
  3773.         CALL Line25
  3774.  
  3775.       See Also:  DVPrint()
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.                                      Page 58
  3825.  
  3826.  
  3827.  
  3828.  
  3829.                          PowerBASIC DWDoor Library v2.3
  3830.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3831.  
  3832.       -------------------------------------------------------------------
  3833.        MaxTime&       Long Integer  Maximum time in door allowed in secs.
  3834.       -------------------------------------------------------------------
  3835.       This variable contains the maximum amount of time allowed in the
  3836.       program in seconds.  This is set by MAXTIME variable in the CFG
  3837.       file.
  3838.  
  3839.       Syntax:
  3840.         A& = MaxTime&
  3841.  
  3842.       See Also:  KBTime&
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.                                      Page 59
  3891.  
  3892.  
  3893.  
  3894.  
  3895.                          PowerBASIC DWDoor Library v2.3
  3896.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3897.  
  3898.       -------------------------------------------------------------------
  3899.        More%          Function      More prompt with Yes, No, Continuous.
  3900.       -------------------------------------------------------------------
  3901.       This function will allow you to put a pause for more input from the
  3902.       user in your program.  It will print "More: (Y)es, (N)o, or
  3903.       (C)ontinuous" and wait for a response from the user, then erase
  3904.       itself and the user's input without moving down one line.
  3905.  
  3906.       Syntax:
  3907.         A% = More%
  3908.            Where More% = -1 if Yes
  3909.                        =  0 if No
  3910.                        =  1 if Continuous
  3911.  
  3912.       See Also: Pause
  3913.  
  3914.       Example:
  3915.         FF% = FREEFILE
  3916.         OPEN "TEXTFILE.TXT" FOR INPUT ACCESS SHARED READ WRITE AS #FF%
  3917.         PLine% = 0
  3918.         WHILE NOT EOF(1)
  3919.           LINE INPUT #FF%, PText$
  3920.           INCR PLine%
  3921.           IF NonStop% = True% THEN
  3922.             PLine% = 0
  3923.           END IF
  3924.           IF PLine% < 23 THEN
  3925.             CALL OutComm(7, 1, PText$)
  3926.           ELSEIF PLine% >= 23
  3927.             A% = More%
  3928.             IF A% = False% THEN
  3929.               CLOSE #FF%
  3930.               EXIT LOOP
  3931.             ELSEIF A% = 1 THEN
  3932.               NonStop% = True%
  3933.             END IF
  3934.           END IF
  3935.         WEND
  3936.         CLOSE #FF%
  3937.  
  3938.  
  3939.  
  3940.  
  3941.  
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947.  
  3948.  
  3949.  
  3950.  
  3951.  
  3952.  
  3953.  
  3954.  
  3955.  
  3956.                                      Page 60
  3957.  
  3958.  
  3959.  
  3960.  
  3961.                          PowerBASIC DWDoor Library v2.3
  3962.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  3963.  
  3964.       -------------------------------------------------------------------
  3965.        NormalColor$   4-CHR String  ANSI color code of white on black.
  3966.       -------------------------------------------------------------------
  3967.       By printing this string out to the screen or the user, you will
  3968.       reset the colors to white on black.  Only do this if Ansi% is -1.
  3969.  
  3970.       Syntax:
  3971.         A$ = NormalColor$
  3972.  
  3973.       See Also:  AnsiColor$(), Ansi%
  3974.  
  3975.       Example:
  3976.         A$ = AnsiColor$(Attr%(14, 4)) + "WARNING!" + NormalColor$
  3977.         CALL CLR
  3978.         CALL OutComm(7, 1, A$)
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.                                      Page 61
  4023.  
  4024.  
  4025.  
  4026.  
  4027.                          PowerBASIC DWDoor Library v2.3
  4028.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4029.  
  4030.       -------------------------------------------------------------------
  4031.        Okay%          Integer       -1 if serial code matches, 0 if not.
  4032.       -------------------------------------------------------------------
  4033.       This variable is set by you to show that the program is registered.
  4034.       See the example of a serial code routine on page 5.
  4035.  
  4036.       Syntax:
  4037.         Okay% = -1
  4038.  
  4039.       See Also:  Serial$, SERIAL
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.                                      Page 62
  4089.  
  4090.  
  4091.  
  4092.  
  4093.                          PowerBASIC DWDoor Library v2.3
  4094.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4095.  
  4096.       -------------------------------------------------------------------
  4097.        OutComm()      Subroutine    Prints string to screen and remote
  4098.       -------------------------------------------------------------------
  4099.       This routine will print a string out to the screen and the com port
  4100.       if active and check time left, carrier drop, with various options.
  4101.       Use this routine instead of PRINT #Comm%,Text$
  4102.  
  4103.       Syntax:
  4104.         CALL OutComm(Atr%,LF%,Text$)
  4105.              Where Atr%  = Single integer color attribute to print Text$.
  4106.                    LF%   = -1 if a CR/LF is placed after Text$.
  4107.                          = 0 if no CR/LF is desired.
  4108.                    Text$ = The string to print.
  4109.  
  4110.       See Also:  CRLF$, InComm$()
  4111.  
  4112.       Example:
  4113.         Atr%  = Attr%(14, 4)
  4114.         LF%   = True%
  4115.         Text$ = "This is a test!"
  4116.         CALL OutComm(Atr%, LF%, Text$)
  4117.  
  4118.  
  4119.  
  4120.  
  4121.  
  4122.  
  4123.  
  4124.  
  4125.  
  4126.  
  4127.  
  4128.  
  4129.  
  4130.  
  4131.  
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.                                      Page 63
  4155.  
  4156.  
  4157.  
  4158.  
  4159.                          PowerBASIC DWDoor Library v2.3
  4160.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4161.  
  4162.       -------------------------------------------------------------------
  4163.        Pause          Subroutine    Asks to "Press any key to continue."
  4164.       -------------------------------------------------------------------
  4165.       Asks user to "Press any key to continue: " and allows you to put a
  4166.       pause anywhere you like in your program.  Will erase itself without
  4167.       moving down one line.
  4168.  
  4169.       Syntax:
  4170.         CALL Pause
  4171.  
  4172.       See Also:  More%
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.  
  4217.  
  4218.  
  4219.  
  4220.                                      Page 64
  4221.  
  4222.  
  4223.  
  4224.  
  4225.                          PowerBASIC DWDoor Library v2.3
  4226.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4227.  
  4228.       -------------------------------------------------------------------
  4229.        Parm$()        Function      Parses a string to any specified chrs
  4230.       -------------------------------------------------------------------
  4231.       This function will allow you to parse any string to it's various
  4232.       elements separated by any character within a specified search string
  4233.       which contains the character(s) that separate the main string.
  4234.  
  4235.       Syntax:
  4236.         A$ = Parm$(Main$, Separator$)
  4237.              Where Main$      = The string to parse.
  4238.                    Separator$ = The characters to parse the string at.
  4239.                                 (eg: " :;")
  4240.  
  4241.       Example:
  4242.         Main$ = "One Two,Three;Four:Five"
  4243.         Sep$  = " ,;:"
  4244.         WHILE Main$ <> ""
  4245.           A$ = Parm$(Main$, Sep$)
  4246.           PRINT A$
  4247.         WEND
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.  
  4280.  
  4281.  
  4282.  
  4283.  
  4284.  
  4285.  
  4286.                                      Page 65
  4287.  
  4288.  
  4289.  
  4290.  
  4291.                          PowerBASIC DWDoor Library v2.3
  4292.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4293.  
  4294.       -------------------------------------------------------------------
  4295.        Parity%()      Function      Returns parity of ComPort%.
  4296.       -------------------------------------------------------------------
  4297.       This function will give you the parity of a com port.  Will return 0
  4298.       for NONE, 1 for ODD, and 2 for EVEN parity.
  4299.  
  4300.       Syntax:
  4301.         A% = Parity%(C%)
  4302.              Where C% = The com port to use, and can be from 1 to 8.
  4303.  
  4304.       See Also:  Carrier%(), GetBaud&(), StopBits%()
  4305.  
  4306.       Example:
  4307.         FOR X% = 1 TO 8
  4308.           IF Carrier%(X%) THEN
  4309.             PRINT "The parity for COM"; LTRIM$(STR$(X%)); ": is ";
  4310.             A% = Parity%(X%)
  4311.             SELECT CASE A%
  4312.               CASE 0
  4313.                 PRINT "None"
  4314.               CASE 1
  4315.                 PRINT "Odd"
  4316.               CASE 2
  4317.                 PRINT "Even"
  4318.             END SELECT
  4319.           END IF
  4320.         NEXT X%
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.                                      Page 66
  4353.  
  4354.  
  4355.  
  4356.  
  4357.                          PowerBASIC DWDoor Library v2.3
  4358.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4359.  
  4360.       -------------------------------------------------------------------
  4361.        PrintFile()    Subroutine    Prints entire file to user and screen
  4362.       -------------------------------------------------------------------
  4363.       This routine will print an entire file to the user with More%
  4364.       prompting every 23 lines.  It does support ANSI.
  4365.  
  4366.       Syntax:
  4367.         CALL PrintFile(Clr%, File$)
  4368.              Where Clr%  = -1 if you wish to clear the screen before
  4369.                            displaying the file.
  4370.                          = 0 if you do not wish to clear the screen first.
  4371.                    File$ = The filename you wish to be displayed.  It can
  4372.                            contain ANSI codes.
  4373.  
  4374.       See Also:  More%
  4375.  
  4376.       Example:
  4377.         IF Ansi% = True% THEN
  4378.           CALL PrintFile(-1, "BLTG")
  4379.         ELSE
  4380.           CALL PrintFile(-1, "BLT")
  4381.         END IF
  4382.  
  4383.  
  4384.  
  4385.  
  4386.  
  4387.  
  4388.  
  4389.  
  4390.  
  4391.  
  4392.  
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.                                      Page 67
  4419.  
  4420.  
  4421.  
  4422.  
  4423.                          PowerBASIC DWDoor Library v2.3
  4424.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4425.  
  4426.       -------------------------------------------------------------------
  4427.        RBack$         1-CHR String  Remote non-destructive backspace.
  4428.       -------------------------------------------------------------------
  4429.       This variable contains 1 character for non-destructive backspace for
  4430.       remote.
  4431.  
  4432.       Syntax:
  4433.         A$ = RBack$
  4434.  
  4435.       See Also:  LBack$, LBackSp$, RBackSp$
  4436.  
  4437.  
  4438.  
  4439.  
  4440.  
  4441.  
  4442.  
  4443.  
  4444.  
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.  
  4451.  
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.  
  4484.                                      Page 68
  4485.  
  4486.  
  4487.  
  4488.  
  4489.                          PowerBASIC DWDoor Library v2.3
  4490.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4491.  
  4492.       -------------------------------------------------------------------
  4493.        RBackSp$       3-CHR String  Remote destructive backspace.
  4494.       -------------------------------------------------------------------
  4495.       This variable contains 3 characters that define the remote
  4496.       destructive backspace.
  4497.  
  4498.       Syntax:
  4499.         A$ = RBackSp$
  4500.  
  4501.       See Also:  LBack$, LBackSp$, RBack$
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.  
  4508.  
  4509.  
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.  
  4538.  
  4539.  
  4540.  
  4541.  
  4542.  
  4543.  
  4544.  
  4545.  
  4546.  
  4547.  
  4548.  
  4549.  
  4550.                                      Page 69
  4551.  
  4552.  
  4553.  
  4554.  
  4555.                          PowerBASIC DWDoor Library v2.3
  4556.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4557.  
  4558.       -------------------------------------------------------------------
  4559.        Script()       Subroutine    Enter all commands via text strings!
  4560.       -------------------------------------------------------------------
  4561.       This subroutine will allow you to access all the commands via a
  4562.       simple text string.  Each of the routines in this library is
  4563.       accessible via this command.
  4564.  
  4565.       Syntax:
  4566.         CALL Script(Func$, InStr$, OutStr$)
  4567.              Where Func$   = The name of the command, for example if you
  4568.                              wanted to access the OutComm() command, you
  4569.                              could do so by setting this variable to
  4570.                              "OutComm".  To access the static CFG
  4571.                              variables, you can change them by setting
  4572.                              this value to "VARIABLE".
  4573.                    InStr$  = This is the optional variables (in string
  4574.                              format) for that command.  For example, if
  4575.                              you were using the above OutComm() command,
  4576.                              this variable would contain the values for
  4577.                              this routine, in string format separated by
  4578.                              spaces.  Numeric values are given as regular
  4579.                              numbers, whereas strings should be contained
  4580.                              in a double set of single quotes.  An example
  4581.                              would look like this:  "7 1 ''Hello World''"
  4582.                              (NOTE: Use a double set of single quotes '')
  4583.                              You can reset the value of any of the static
  4584.                              CFG variables, by setting this to the actual
  4585.                              line as it would appear in the CFG file.
  4586.                              (eg: "DOORFILE=PCBOARD.SYS")
  4587.                    OutStr$ = This is the value returned by the routine if
  4588.                              one is given.
  4589.  
  4590.       Example:
  4591.         InStr$ = "''This is a test!'' '' ''"
  4592.         WHILE InStr$ <> ""
  4593.           CALL Script("PARM", InStr$, OutStr$)
  4594.           PRINT OutStr$
  4595.         WEND
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.  
  4609.  
  4610.  
  4611.  
  4612.  
  4613.  
  4614.  
  4615.  
  4616.                                      Page 70
  4617.  
  4618.  
  4619.  
  4620.  
  4621.                          PowerBASIC DWDoor Library v2.3
  4622.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4623.  
  4624.       -------------------------------------------------------------------
  4625.        Scrn2Ansi$()   Function      Returns a specified window in ANSI.
  4626.       -------------------------------------------------------------------
  4627.       This function is a very versatile one in that it will allow you to
  4628.       capture any part of the screen like a window, and convert it into
  4629.       it's ANSI equivalent.  You can draw your boxes on the screen before
  4630.       hand, capture them with this command, and save them in a file for
  4631.       later redisplaying on both the local and remote screens simply by
  4632.       sending it out via OutComm().  Or while a user is playing their
  4633.       game, and you don't want to mess up their display, capture the
  4634.       portion of the screen with this command and display your text on top
  4635.       of it and when they are finished, replace it via OutComm().  As you
  4636.       can see, this function has alot of potential!
  4637.  
  4638.       Syntax:
  4639.         A$ = Scrn2Ansi$(X1%,Y1%, X2%,Y2%)
  4640.              Where X1%,Y1% = The upper left corner coordinates of window.
  4641.                    X2%,Y2% = The lower right corner coordinates of window.
  4642.  
  4643.       See Also:  AnsiLocate$(), OutComm()
  4644.  
  4645.       Example:
  4646.         CALL PrintFile(-1, "SCRN.ANS")
  4647.         OrgScrn$ = Scrn2Ansi$(9, 10, 12, 30)
  4648.         CALL OutComm(14, 1, AnsiLocate$(9,  10) + "This is test line 1!"
  4649.         CALL OutComm(14, 1, AnsiLocate$(10, 10) + "This is test line 2!"
  4650.         CALL OutComm(14, 1, AnsiLocate$(11, 10) + "This is test line 3!"
  4651.         A$ = INPUT$(1)
  4652.         CALL OutComm(7, 0, OrgScrn$)
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669.  
  4670.  
  4671.  
  4672.  
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.  
  4679.  
  4680.  
  4681.  
  4682.                                      Page 71
  4683.  
  4684.  
  4685.  
  4686.  
  4687.                          PowerBASIC DWDoor Library v2.3
  4688.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4689.  
  4690.       -------------------------------------------------------------------
  4691.        Serial$        String        Returned from SERIAL in .CFG file.
  4692.       -------------------------------------------------------------------
  4693.       This variable it retrieved from the CFG files SERIAL variable for
  4694.       use with your own serial code registration routines.  See page 5 for
  4695.       an example of such a routine.
  4696.  
  4697.       Syntax:
  4698.         A$ = Serial$
  4699.  
  4700.       See Also:  Okay%, SERIAL
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.  
  4736.  
  4737.  
  4738.  
  4739.  
  4740.  
  4741.  
  4742.  
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.                                      Page 72
  4749.  
  4750.  
  4751.  
  4752.  
  4753.                          PowerBASIC DWDoor Library v2.3
  4754.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4755.  
  4756.       -------------------------------------------------------------------
  4757.        StopBits%()    Function      Returns stop-bits of ComPort%.
  4758.       -------------------------------------------------------------------
  4759.       This function will return the stop-bits setting from the a com port
  4760.       number passed to it.
  4761.  
  4762.       Syntax:
  4763.         A% = StopBits%(C%)
  4764.              Where C% = The com port number to use, can be a number from 1
  4765.                         to 8.
  4766.  
  4767.       See Also:  Carrier%(), DataLen%(), Parity%()
  4768.  
  4769.       Example:
  4770.         FOR X% = 1 TO 8
  4771.           IF Carrier%(X%) THEN
  4772.             PRINT "The stop bits for COM"; LTRIM$(STR$(X%)); ": is ";
  4773.             PRINT StopBits%(X%)
  4774.           END IF
  4775.         NEXT X%
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.                                      Page 73
  4815.  
  4816.  
  4817.  
  4818.  
  4819.                          PowerBASIC DWDoor Library v2.3
  4820.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4821.  
  4822.       -------------------------------------------------------------------
  4823.        SysopF$        String        The Sysop's First name.
  4824.       -------------------------------------------------------------------
  4825.       This variable contains the Sysop's first name in mixed case.  This
  4826.       is retrieved from the SYSOPF variable set in the CFG file.
  4827.  
  4828.       Syntax:
  4829.         A$ = SysopF$
  4830.  
  4831.       See Also:  FirstName$, LastName$, SysopL$, SYSOPF
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.                                      Page 74
  4881.  
  4882.  
  4883.  
  4884.  
  4885.                          PowerBASIC DWDoor Library v2.3
  4886.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4887.  
  4888.       -------------------------------------------------------------------
  4889.        SysopL$        String        The Sysop's Last name.
  4890.       -------------------------------------------------------------------
  4891.       This variable contains the Sysop's last name in mixed case.  This is
  4892.       retrieved from the SYSOPL variable set in the CFG file.
  4893.  
  4894.       Syntax:
  4895.         A$ = SysopL$
  4896.  
  4897.       See Also:  FirstName$, LastName$, SysopF$, SYSOPL
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.  
  4916.  
  4917.  
  4918.  
  4919.  
  4920.  
  4921.  
  4922.  
  4923.  
  4924.  
  4925.  
  4926.  
  4927.  
  4928.  
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.                                      Page 75
  4947.  
  4948.  
  4949.  
  4950.  
  4951.                          PowerBASIC DWDoor Library v2.3
  4952.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  4953.  
  4954.       -------------------------------------------------------------------
  4955.        SysopName$     UCASE String  The Sysop's full name in Uppercase.
  4956.       -------------------------------------------------------------------
  4957.       This variable contains the Sysop's full name in uppercase.
  4958.  
  4959.       Syntax:
  4960.         A$ = SysopName$
  4961.  
  4962.       See Also:  SysopF$, SysopL$, UserName$
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.  
  4970.  
  4971.  
  4972.  
  4973.  
  4974.  
  4975.  
  4976.  
  4977.  
  4978.  
  4979.  
  4980.  
  4981.  
  4982.  
  4983.  
  4984.  
  4985.  
  4986.  
  4987.  
  4988.  
  4989.  
  4990.  
  4991.  
  4992.  
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.                                      Page 76
  5013.  
  5014.  
  5015.  
  5016.  
  5017.                          PowerBASIC DWDoor Library v2.3
  5018.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5019.  
  5020.       -------------------------------------------------------------------
  5021.        TestComm       Subroutine    Tests com port, exits if carrier lost
  5022.       -------------------------------------------------------------------
  5023.       This routine will test to see if a carrier is present on the current
  5024.       open comm port.  If not, it will exit with an ERRORLEVEL = 7.
  5025.  
  5026.       Syntax:
  5027.         CALL TestComm
  5028.  
  5029.       See Also:  CheckTime
  5030.  
  5031.  
  5032.  
  5033.  
  5034.  
  5035.  
  5036.  
  5037.  
  5038.  
  5039.  
  5040.  
  5041.  
  5042.  
  5043.  
  5044.  
  5045.  
  5046.  
  5047.  
  5048.  
  5049.  
  5050.  
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.  
  5078.                                      Page 77
  5079.  
  5080.  
  5081.  
  5082.  
  5083.                          PowerBASIC DWDoor Library v2.3
  5084.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5085.  
  5086.       -------------------------------------------------------------------
  5087.        TimeIn&        Long Integer  Time user started program in seconds.
  5088.       -------------------------------------------------------------------
  5089.       The time from midnight that the user started the program in seconds.
  5090.       Use this in conjuction with TimeLeft& and TIMER to determine how
  5091.       much time the user has left and divide by 60 to convert to minutes.
  5092.  
  5093.       Syntax:
  5094.         A& = TimeIn&
  5095.  
  5096.       See Also:  TimeLeft&, MaxTime&, KBTime&
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.  
  5135.  
  5136.  
  5137.  
  5138.  
  5139.  
  5140.  
  5141.  
  5142.  
  5143.  
  5144.                                      Page 78
  5145.  
  5146.  
  5147.  
  5148.  
  5149.                          PowerBASIC DWDoor Library v2.3
  5150.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5151.  
  5152.       -------------------------------------------------------------------
  5153.        TimeLeft&      Long Integer  Total time left in door in seconds.
  5154.       -------------------------------------------------------------------
  5155.       The amount of time user has left in program in seconds before
  5156.       program ends.
  5157.  
  5158.       Syntax:
  5159.         A& = TimeLeft&
  5160.  
  5161.       See Also:  TimeIn&, MaxTime&, KBTime&
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.  
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192.  
  5193.  
  5194.  
  5195.  
  5196.  
  5197.  
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.                                      Page 79
  5211.  
  5212.  
  5213.  
  5214.  
  5215.                          PowerBASIC DWDoor Library v2.3
  5216.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5217.  
  5218.       -------------------------------------------------------------------
  5219.        Trim$()        Function      Trims string of spaces on both ends.
  5220.       -------------------------------------------------------------------
  5221.       This function will trim the spaces off of either end of a string.
  5222.  
  5223.       Syntax:
  5224.         A$ = Trim$(Text$)
  5225.              Where Text$ = The string to trim spaces from.
  5226.  
  5227.       Example:
  5228.         A$ = "   This is a test!   "
  5229.         A$ = Trim$(A$)
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245.  
  5246.  
  5247.  
  5248.  
  5249.  
  5250.  
  5251.  
  5252.  
  5253.  
  5254.  
  5255.  
  5256.  
  5257.  
  5258.  
  5259.  
  5260.  
  5261.  
  5262.  
  5263.  
  5264.  
  5265.  
  5266.  
  5267.  
  5268.  
  5269.  
  5270.  
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.                                      Page 80
  5277.  
  5278.  
  5279.  
  5280.  
  5281.                          PowerBASIC DWDoor Library v2.3
  5282.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5283.  
  5284.       -------------------------------------------------------------------
  5285.        True%          Integer       Constant -1.
  5286.       -------------------------------------------------------------------
  5287.       This variable will always remain -1 and is used throughout
  5288.       the library.
  5289.  
  5290.       Syntax:
  5291.         A% = True%
  5292.  
  5293.       See Also:  False%
  5294.  
  5295.  
  5296.  
  5297.  
  5298.  
  5299.  
  5300.  
  5301.  
  5302.  
  5303.  
  5304.  
  5305.  
  5306.  
  5307.  
  5308.  
  5309.  
  5310.  
  5311.  
  5312.  
  5313.  
  5314.  
  5315.  
  5316.  
  5317.  
  5318.  
  5319.  
  5320.  
  5321.  
  5322.  
  5323.  
  5324.  
  5325.  
  5326.  
  5327.  
  5328.  
  5329.  
  5330.  
  5331.  
  5332.  
  5333.  
  5334.  
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341.  
  5342.                                      Page 81
  5343.  
  5344.  
  5345.  
  5346.  
  5347.                          PowerBASIC DWDoor Library v2.3
  5348.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5349.  
  5350.       -------------------------------------------------------------------
  5351.        UserName$      UCASE String  User's full name in Uppercase.
  5352.       -------------------------------------------------------------------
  5353.       This variable contains the full name of the user in uppercase
  5354.       characters.
  5355.  
  5356.       Syntax:
  5357.         A$ = UserName$
  5358.  
  5359.       See Also:  SysopName$
  5360.  
  5361.  
  5362.  
  5363.  
  5364.  
  5365.  
  5366.  
  5367.  
  5368.  
  5369.  
  5370.  
  5371.  
  5372.  
  5373.  
  5374.  
  5375.  
  5376.  
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.  
  5383.  
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.  
  5402.  
  5403.  
  5404.  
  5405.  
  5406.  
  5407.  
  5408.                                      Page 82
  5409.  
  5410.  
  5411.  
  5412.  
  5413.                          PowerBASIC DWDoor Library v2.3
  5414.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5415.  
  5416.       -------------------------------------------------------------------
  5417.        WriteDoorERR() Subroutine    Writes and error out to ErrorFile$.
  5418.       -------------------------------------------------------------------
  5419.       This routine serves to offer some error trapping.  Once called upon
  5420.       it will open the file set in ErrorFile$, and print text out to the
  5421.       file and end the program setting the ERRORLEVEL in Dos to the error
  5422.       type.
  5423.  
  5424.       Syntax:
  5425.         CALL WriteDoorERR(ERRType%, Text$)
  5426.              Where ERRType% = -1 is File sharing error in Text$ routine.
  5427.                             = -2 is File passed to DoorInfo$() not found.
  5428.                             = -3 is User ran out of time.
  5429.                             = -4 is File passed to DoorInit() not found.
  5430.                             = -5 is File passed to Help() not found.
  5431.                             = -6 is DOORFILE variable not declared in CFG.
  5432.                             = -7 is User dropped Carrier
  5433.                             = -8 is File passed to PrintFile() not found.
  5434.                             = -9 is Serial Code did not pass.
  5435.                             = 0  Write Text$ to ErrorFile$ and return.
  5436.                             > 0  Write Text$ to ErrorFile$ and exit
  5437.                                  program with error specified.
  5438.  
  5439.         Suggestion:  By using this function you can keep a log by setting
  5440.                      Text$ to whatever you wish, and calling this routine
  5441.                      with an ERRTyp% of 0.  It will return without exiting
  5442.                      back to DOS.  If you set ErrorFile$ to a different
  5443.                      filename, you could keep multiple log files.
  5444.  
  5445.       Example:
  5446.         OrgErrFile$ = ErrorFile$
  5447.         ErrorFile$  = "HISCORE.DAT"
  5448.         CALL WriteDoorERR(0, UserName$ + "   " + USING$("######", Score&))
  5449.         ErrorFile$  = OrgErrFile$
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.  
  5456.  
  5457.  
  5458.  
  5459.  
  5460.  
  5461.  
  5462.  
  5463.  
  5464.  
  5465.  
  5466.  
  5467.  
  5468.  
  5469.  
  5470.  
  5471.  
  5472.  
  5473.  
  5474.                                      Page 83
  5475.  
  5476.  
  5477.  
  5478.  
  5479.                          PowerBASIC DWDoor Library v2.3
  5480.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5481.  
  5482.       The CFG File:
  5483.  
  5484.               The CFG file is required for EVERY door program you run.
  5485.           The order of the variables is not important, but the variables
  5486.           that do not have defaults are necessary for variable
  5487.           declarations to occur.
  5488.  
  5489.               The CFG file can be named anything you wish it to be named.
  5490.           It is called on the command line for remote operations to
  5491.           commence.  Let's say your write a door named HONKY and you would
  5492.           like the CFG you have be cute, you could name the CFG file to
  5493.           MOFO.INT and use the following command to invoke your program:
  5494.  
  5495.                                  HONKY MOFO.INT
  5496.  
  5497.               The included file DWDOOR.CFG shows you how a CFG file can
  5498.           look.  As long as the variable is the first thing on the line in
  5499.           uppercase, you can put anything else you want in the CFG file
  5500.           and it will be ignored during reading.
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.  
  5510.  
  5511.  
  5512.  
  5513.  
  5514.  
  5515.  
  5516.  
  5517.  
  5518.  
  5519.  
  5520.  
  5521.  
  5522.  
  5523.  
  5524.  
  5525.  
  5526.  
  5527.  
  5528.  
  5529.  
  5530.  
  5531.  
  5532.  
  5533.  
  5534.  
  5535.  
  5536.  
  5537.  
  5538.  
  5539.  
  5540.                                      Page 84
  5541.  
  5542.  
  5543.  
  5544.  
  5545.                          PowerBASIC DWDoor Library v2.3
  5546.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5547.  
  5548.                                 CFG Variable List
  5549.  
  5550.           Name       Description
  5551.           ----       -----------
  5552.           BBSNAME  - The full name of the BBS running the door.
  5553.           COMPORT  - The com port number to operate the door on.
  5554.           DOORFILE - Door file to get user input from (Default=DIRECT).
  5555.           EXTRA    - Extra line that sysop can add to personalize the door
  5556.                      to the BBS system.  (Optional)
  5557.           KBTIME   - Time before exiting for no input from user (Default=5
  5558.                      minutes).
  5559.           MAXTIME  - Maximum time allowed in the door (Default=Time left
  5560.                      on BBS).
  5561.           SERIAL   - Is your personal way of getting the programs serial
  5562.                      code from the sysop.
  5563.           SYSOPF   - The sysop's first name.
  5564.           SYSOPL   - The sysop's last name.
  5565.  
  5566.           All variables in the CFG file are declared by placing them at
  5567.       the beginning of the line and immediately follow them with an equals
  5568.       sign "=" and the text they are to replace.  Example:
  5569.  
  5570.                             EXTRA=This line is extra!
  5571.  
  5572.  
  5573.  
  5574.  
  5575.  
  5576.  
  5577.  
  5578.  
  5579.  
  5580.  
  5581.  
  5582.  
  5583.  
  5584.  
  5585.  
  5586.  
  5587.  
  5588.  
  5589.  
  5590.  
  5591.  
  5592.  
  5593.  
  5594.  
  5595.  
  5596.  
  5597.  
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.                                      Page 85
  5607.  
  5608.  
  5609.  
  5610.  
  5611.                          PowerBASIC DWDoor Library v2.3
  5612.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5613.  
  5614.       -------------------------------------------------------------------
  5615.        BBSNAME        CFG Variable  The full name of the BBS.
  5616.       -------------------------------------------------------------------
  5617.       By setting this variable to your BBS's name you will be able to use
  5618.       the BBS$ variable.  Whatever is contained in the variable, goes into
  5619.       the BBS$.
  5620.  
  5621.       Syntax:
  5622.         BBSNAME=Your BBS Name!
  5623.  
  5624.       See Also:  BBS$
  5625.  
  5626.  
  5627.  
  5628.  
  5629.  
  5630.  
  5631.  
  5632.  
  5633.  
  5634.  
  5635.  
  5636.  
  5637.  
  5638.  
  5639.  
  5640.  
  5641.  
  5642.  
  5643.  
  5644.  
  5645.  
  5646.  
  5647.  
  5648.  
  5649.  
  5650.  
  5651.  
  5652.  
  5653.  
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.  
  5672.                                      Page 86
  5673.  
  5674.  
  5675.  
  5676.  
  5677.                          PowerBASIC DWDoor Library v2.3
  5678.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5679.  
  5680.       -------------------------------------------------------------------
  5681.        COMPORT        CFG Variable  The com port number to use.
  5682.       -------------------------------------------------------------------
  5683.       This variable tells the program which com port number to use for
  5684.       communications.  It can be a number from 1 to 8 and is passed to the
  5685.       ComPort% variable.  If the user has a non-standard com port address,
  5686.       they should put an H in front of the 4 digit hexadecimal value of
  5687.       the port address.  This variable has NO DEFAULT!  This variable
  5688.       should only be used if the user is having trouble and their doorfile
  5689.       is not sending the com port correctly.
  5690.  
  5691.       Syntax:
  5692.         COMPORT=2
  5693.         COMPORT=H03F8
  5694.  
  5695.       See Also:  ComPort%
  5696.  
  5697.  
  5698.  
  5699.  
  5700.  
  5701.  
  5702.  
  5703.  
  5704.  
  5705.  
  5706.  
  5707.  
  5708.  
  5709.  
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.  
  5729.  
  5730.  
  5731.  
  5732.  
  5733.  
  5734.  
  5735.  
  5736.  
  5737.  
  5738.                                      Page 87
  5739.  
  5740.  
  5741.  
  5742.  
  5743.                          PowerBASIC DWDoor Library v2.3
  5744.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5745.  
  5746.       -------------------------------------------------------------------
  5747.        DOORFILE       CFG Variable  BBS Door file to get user data.
  5748.       -------------------------------------------------------------------
  5749.       This variable contains the file and path name of the BBS door filew
  5750.       to find the user information.  If it set to DIRECT then theulti-node
  5751.       information will be retrieved directly from the com port and thea
  5752.       user will be asked for their full name.  This is passed directly to
  5753.       the DoorInfo$() routine.  See DoorInfo$() for version information.me
  5754.       If this variable is not found, DIRECT will be assumed.  You can now
  5755.       add environment variables to this value to make your door multi-node
  5756.       capable without having to use separate CFG files.  Simply place a
  5757.       precentage symbol "%" before and after the environment variable
  5758.       you wish to specify (eg: %PCBDRIVE%%PCBDIR%\PCBOARD.SYS would become
  5759.       C:\PCB\PCBOARD.SYS if PCBDRIVE=C: and PCBDIR=\PCB).
  5760.       
  5761.       This variable can contain the following information:
  5762.  
  5763.            PCBOARD.SYS  - For PCBoard systems.
  5764.            USER.SYS     - For PCBoard 15.0 systems.
  5765.            CALLINFO.BBS - For older Wildcat systems.
  5766.            DOOR.SYS     - For GAP and newer Wildcat systems.
  5767.            DORINFOx.DEF - For RBBS and QBBS systems.
  5768.            CHAIN.TXT    - For WWIV systems
  5769.            UBBS.SYS     - For Ultra BBS Systemsget information
  5770.            SFDOORS.DAT  - For SpitFIRE BBS Systems
  5771.            AUNTIE.SYS   - For Auntie BBS Systems
  5772.            TRIBBS.SYS   - For Tri-BBS Systems
  5773.            DIRECT       - To instruct the program to get information directly
  5774.                           from modem if BBS type isn't supported.
  5775.  
  5776.       Syntax:
  5777.         DOORFILE=C:\BBS\PCBOARD.SYS
  5778.  
  5779.       Alternate method:
  5780.         DOORFILE=%ENV1%%ENV2%\PCBOARD.SYS
  5781.                  Where ENV1 = Environment variable #1
  5782.                        ENV2 = Environment variable #2 and so on . . .
  5783.  
  5784.       NOTE: The % symbol must come before and after the enviroment variable
  5785.             name.  Use the SET command in DOS to list environment variables.
  5786.  
  5787.       See Also:  DoorInfo$()
  5788.  
  5789.  
  5790.  
  5791.  
  5792.  
  5793.  
  5794.  
  5795.  
  5796.  
  5797.  
  5798.  
  5799.  
  5800.  
  5801.  
  5802.  
  5803.  
  5804.                                      Page 88
  5805.  
  5806.  
  5807.  
  5808.  
  5809.                          PowerBASIC DWDoor Library v2.3
  5810.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5811.  
  5812.       -------------------------------------------------------------------
  5813.        EXTRA          CFG Variable  Extra line for personalizing.
  5814.       -------------------------------------------------------------------
  5815.       This variable allows the sysop to personalize the program with a
  5816.       string of up to 70 characters that you have access to with the
  5817.       Extra$ variable.
  5818.  
  5819.       Syntax:
  5820.         EXTRA=Support Shareware by supporting this door!
  5821.  
  5822.       See Also:  Extra$
  5823.  
  5824.  
  5825.  
  5826.  
  5827.  
  5828.  
  5829.  
  5830.  
  5831.  
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.  
  5841.  
  5842.  
  5843.  
  5844.  
  5845.  
  5846.  
  5847.  
  5848.  
  5849.  
  5850.  
  5851.  
  5852.  
  5853.  
  5854.  
  5855.  
  5856.  
  5857.  
  5858.  
  5859.  
  5860.  
  5861.  
  5862.  
  5863.  
  5864.  
  5865.  
  5866.  
  5867.  
  5868.  
  5869.  
  5870.                                      Page 89
  5871.  
  5872.  
  5873.  
  5874.  
  5875.                          PowerBASIC DWDoor Library v2.3
  5876.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5877.  
  5878.       -------------------------------------------------------------------
  5879.        IRQ            CFG Variable  IRQ number for non-standard comports.
  5880.       -------------------------------------------------------------------
  5881.       This variable tells the program to use an alternate IRQ number for
  5882.       users that are using a non-standard comport.  This number can be a
  5883.       number between 2 and 15.  If the user doesn't need to use this
  5884.       variable, it can be left out.
  5885.  
  5886.       Syntax:
  5887.         IRQ=3
  5888.  
  5889.       See Also:  COMPORT
  5890.  
  5891.  
  5892.  
  5893.  
  5894.  
  5895.  
  5896.  
  5897.  
  5898.  
  5899.  
  5900.  
  5901.  
  5902.  
  5903.  
  5904.  
  5905.  
  5906.  
  5907.  
  5908.  
  5909.  
  5910.  
  5911.  
  5912.  
  5913.  
  5914.  
  5915.  
  5916.  
  5917.  
  5918.  
  5919.  
  5920.  
  5921.  
  5922.  
  5923.  
  5924.  
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.                                      Page 90
  5937.  
  5938.  
  5939.  
  5940.  
  5941.                          PowerBASIC DWDoor Library v2.3
  5942.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  5943.  
  5944.       -------------------------------------------------------------------
  5945.        KBTIME         CFG Variable  Time before exiting for no input.
  5946.       -------------------------------------------------------------------
  5947.       This variable tells the program how long to wait for no input from
  5948.       the user before kicking him out of the door automatically.  This
  5949.       variable is set to the minutes and is multiplied by 60 and stored in
  5950.       the KBTime& variable.  The default for this variable if not found in
  5951.       the CFG is 5 minutes.
  5952.  
  5953.       Syntax:
  5954.         KBTIME=3
  5955.  
  5956.       See Also:  KBTime&
  5957.  
  5958.  
  5959.  
  5960.  
  5961.  
  5962.  
  5963.  
  5964.  
  5965.  
  5966.  
  5967.  
  5968.  
  5969.  
  5970.  
  5971.  
  5972.  
  5973.  
  5974.  
  5975.  
  5976.  
  5977.  
  5978.  
  5979.  
  5980.  
  5981.  
  5982.  
  5983.  
  5984.  
  5985.  
  5986.  
  5987.  
  5988.  
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.  
  5996.  
  5997.  
  5998.  
  5999.  
  6000.  
  6001.  
  6002.                                      Page 91
  6003.  
  6004.  
  6005.  
  6006.  
  6007.                          PowerBASIC DWDoor Library v2.3
  6008.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6009.  
  6010.       -------------------------------------------------------------------
  6011.        MAXTIME        CFG Variable  Maximum time allowed in the door.
  6012.       -------------------------------------------------------------------
  6013.       This variable tells the program how long to allow the user in the
  6014.       program before returning to DOS.  This variable stores the time
  6015.       given in minutes to the MaxTime& in seconds.  If this variable is
  6016.       not found in the CFG the default value is time left on the system.
  6017.       You can also set this to 0 to do the same thing.  If the DOORFILE
  6018.       variable (see page 81) is set to DIRECT then it will default to 30
  6019.       minutes.
  6020.  
  6021.       Syntax:
  6022.         MAXTIME=30
  6023.  
  6024.       See Also:  MaxTime&
  6025.  
  6026.  
  6027.  
  6028.  
  6029.  
  6030.  
  6031.  
  6032.  
  6033.  
  6034.  
  6035.  
  6036.  
  6037.  
  6038.  
  6039.  
  6040.  
  6041.  
  6042.  
  6043.  
  6044.  
  6045.  
  6046.  
  6047.  
  6048.  
  6049.  
  6050.  
  6051.  
  6052.  
  6053.  
  6054.  
  6055.  
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.  
  6065.  
  6066.  
  6067.  
  6068.                                      Page 92
  6069.  
  6070.  
  6071.  
  6072.  
  6073.                          PowerBASIC DWDoor Library v2.3
  6074.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6075.  
  6076.       -------------------------------------------------------------------
  6077.        SERIAL         CFG Variable  The program's serial code.
  6078.       -------------------------------------------------------------------
  6079.       This variable should not be included in your CFG file unless the
  6080.       program is registered.  This variable will store the information in
  6081.       the Serial$ variable.  By using it in conjuction with Okay% you will
  6082.       have a way of retrieving a serial code information directly from the
  6083.       sysop for that particular door.  See page 5 for an example and
  6084.       further discussion on serial code routines.
  6085.  
  6086.       Syntax:
  6087.         SERIAL=12345
  6088.  
  6089.       See Also:  Serial$, Okay%
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102.  
  6103.  
  6104.  
  6105.  
  6106.  
  6107.  
  6108.  
  6109.  
  6110.  
  6111.  
  6112.  
  6113.  
  6114.  
  6115.  
  6116.  
  6117.  
  6118.  
  6119.  
  6120.  
  6121.  
  6122.  
  6123.  
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.                                      Page 93
  6135.  
  6136.  
  6137.  
  6138.  
  6139.                          PowerBASIC DWDoor Library v2.3
  6140.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6141.  
  6142.       -------------------------------------------------------------------
  6143.        SYSOPF         CFG Variable  The sysop's first name.
  6144.       -------------------------------------------------------------------
  6145.       This variable is the sysop's first name.  It will stored the
  6146.       information supplied into the SysopF$ in mixed case.
  6147.  
  6148.       Syntax:
  6149.         SYSOPF=John
  6150.  
  6151.       See Also:  SysopF$
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.  
  6158.  
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.  
  6177.  
  6178.  
  6179.  
  6180.  
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.                                      Page 94
  6201.  
  6202.  
  6203.  
  6204.  
  6205.                          PowerBASIC DWDoor Library v2.3
  6206.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6207.  
  6208.       -------------------------------------------------------------------
  6209.        SYSOPL         CFG Variable  The sysop's last name.
  6210.       -------------------------------------------------------------------
  6211.       This variable will set the SysopL$ variable to the sysop's last name
  6212.       in mixed case.
  6213.  
  6214.       Syntax:
  6215.         SYSOPL=Doe
  6216.  
  6217.       See Also:  SysopL$
  6218.  
  6219.  
  6220.  
  6221.  
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.  
  6232.  
  6233.  
  6234.  
  6235.  
  6236.  
  6237.  
  6238.  
  6239.  
  6240.  
  6241.  
  6242.  
  6243.  
  6244.  
  6245.  
  6246.  
  6247.  
  6248.  
  6249.  
  6250.  
  6251.  
  6252.  
  6253.  
  6254.  
  6255.  
  6256.  
  6257.  
  6258.  
  6259.  
  6260.  
  6261.  
  6262.  
  6263.  
  6264.  
  6265.  
  6266.                                      Page 95
  6267.  
  6268.  
  6269.  
  6270.  
  6271.                          PowerBASIC DWDoor Library v2.3
  6272.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6273.  
  6274.       Making Your Own CFG Variables
  6275.  
  6276.           This is really easy to do.  Let's say you write a door game that
  6277.       requires that the sysop configure it to their own specifications.
  6278.       For example's sake, let say we want to add 2 new variables to the
  6279.       CFG file:  TIMESADAY and USERPROMPT.  Now, TIMESADAY is a numeric
  6280.       variable, that tells the program how many times a day the user of
  6281.       the program can play the game, and USERPROMPT is the text that
  6282.       prompts the user to register this door.  You would simply put in
  6283.       your example CFG file (with your door game) the following lines in
  6284.       ASCII text (NOTE: It may help to let them know ahead of time what
  6285.       that variable is suppose to do!):
  6286.  
  6287.         'How many times a user can play this game in one day
  6288.         TIMESADAY=3
  6289.  
  6290.         'User prompt for telling him to help register
  6291.         '        [---------------------------------------------------]
  6292.         USERPROMPT=Please help register this door with the sysop!
  6293.  
  6294.           The length of the text variables can be as long as you like, but
  6295.       they must end with a CR/LF so it's safe to say that the length of
  6296.       the text can be as long as one line minus the length of the variable
  6297.       name and the equals sign.  Since most text editors allow a line
  6298.       length of about 79 characters, it would be safe to say that a good
  6299.       length to give them to work with would be around 70 characters (that
  6300.       gives you about 8 characters for a variable name.
  6301.  
  6302.           Numeric values are saved as strings, if you wish to use them as
  6303.       numeric, you will have to convert them using the VAL function in PB.
  6304.  
  6305.           Getting the values with the GetExtra$() function is easy, here's
  6306.       how you would handle the above examples in PB:
  6307.  
  6308.         TimesPerDay% = VAL(GetExtra$("TIMESADAY"))
  6309.         UserPrompt$  = GetExtra$("USERPROMPT")
  6310.  
  6311.       or an alternative method:
  6312.  
  6313.         DIM CFG$(2), Values$(2)
  6314.  
  6315.         CFG$(1) = "TIMESADAY"
  6316.         CFG$(2) = "USERPROMPT"
  6317.  
  6318.         FOR X = 1 TO 2
  6319.           Values$(X) = GetExtra$(CFG$(X))
  6320.         NEXT
  6321.  
  6322.           As you can see this can be very useful in making your programs
  6323.       even more configurable than they already are and allow you to
  6324.       maintain a sense of continuity throughout your door without you
  6325.       having to do all the hard work!
  6326.  
  6327.       NOTE: The environment variable method explained in the description of
  6328.             DOORFILE on Page 88 does not work with user CFG variables at this
  6329.             time.
  6330.  
  6331.                                      Page 96
  6332.  
  6333.  
  6334.  
  6335.  
  6336.                          PowerBASIC DWDoor Library v2.3
  6337.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6338.  
  6339.       Author's Notes and Suggestions:
  6340.  
  6341.               Here's a few helpful hints that will help you in your
  6342.           programming.
  6343.  
  6344.               ■ If you want to open a file for reading data for your
  6345.                 program assign FREEFILE to a variable and use the variable
  6346.                 for your file functions.
  6347.  
  6348.                 EXAMPLE:  A% = FREEFILE
  6349.                           OPEN "I", A%, Filename$
  6350.                           LINE INPUT #A%, A$
  6351.                           CLOSE #A%
  6352.  
  6353.               ■ If you wish to make a log, you can use the WriteDoorERR()
  6354.                 routine by setting the text you wish to print to a string
  6355.                 and calling the routine with an ERRTyp% of 0.  The text
  6356.                 will be printed to the file you set in ErrorFile$.
  6357.  
  6358.                 EXAMPLE:  ErrorFile$="USER.LOG"
  6359.                           Text$ = UserName$ + " played " + TIME$ + "."
  6360.                           CALL WriteDoorERR(0,Text$)
  6361.  
  6362.               ■ If you wish to update the display constantly without
  6363.                 having to sit and wait for a key to be pressed, use the
  6364.                 CommKey$ function and test whether or not the user has
  6365.                 pressed anything.  If not, continue with what you were
  6366.                 doing, but if so... act on the result returned.
  6367.  
  6368.               ■ If your users are having difficulty setting up your door
  6369.                 ask them if your error file exists.  If it doesn't then
  6370.                 the error occurred from something they did or did not do.
  6371.                 Ask if they are using the correct path and file name in
  6372.                 the DOORFILE variable of the CFG.  If they are, suggest
  6373.                 they try using the DIRECT command.  They do not need to
  6374.                 use the COMPORT variable when using a valid DOORFILE
  6375.                 value.  If they are still having trouble, and you don't
  6376.                 know what's wrong... you can contact me on the PMS BBS at
  6377.                 (516) 737-4637.  Those of you who register this door
  6378.                 library will have access to the Technical Support Voice
  6379.                 Line for problems of a more immediate nature.
  6380.  
  6381.               ■ Read the comments included in the enclosed DWDOOR.CFG demo
  6382.                 of what a CFG file should look like.  It will give you a
  6383.                 better understanding of how the file can appear.
  6384.  
  6385.               ■ Look at the included source for the demo door program.
  6386.                 You will find examples of password protection, word
  6387.                 wrapping, cursor locating, color changing, fixed length
  6388.                 input, selective input, and how to end a program
  6389.                 correctly.  I would have included a bunch more but thought
  6390.                 that the examples given were enough to get you started.
  6391.  
  6392.  
  6393.  
  6394.  
  6395.  
  6396.  
  6397.                                      Page 97
  6398.  
  6399.  
  6400.  
  6401.  
  6402.                          PowerBASIC DWDoor Library v2.3
  6403.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6404.  
  6405.               ■ The new Scrn2Ansi$() function will come in handy quite a
  6406.                 bit for ANSI intensive doors.  You can just grab the
  6407.                 portion of the screen you want to display text over and
  6408.                 display the text over that area.  Then when they are done,
  6409.                 send the captured screen portion back out to the modem to
  6410.                 replace what ever you destroyed.  It's alot of fun!
  6411.  
  6412.  
  6413.  
  6414.  
  6415.  
  6416.  
  6417.  
  6418.  
  6419.  
  6420.  
  6421.  
  6422.  
  6423.  
  6424.  
  6425.  
  6426.  
  6427.  
  6428.  
  6429.  
  6430.  
  6431.  
  6432.  
  6433.  
  6434.  
  6435.  
  6436.  
  6437.  
  6438.  
  6439.  
  6440.  
  6441.  
  6442.  
  6443.  
  6444.  
  6445.  
  6446.  
  6447.  
  6448.  
  6449.  
  6450.  
  6451.  
  6452.  
  6453.  
  6454.  
  6455.  
  6456.  
  6457.  
  6458.  
  6459.  
  6460.  
  6461.  
  6462.  
  6463.                                      Page 98
  6464.  
  6465.  
  6466.  
  6467.  
  6468.                          PowerBASIC DWDoor Library v2.3
  6469.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6470.  
  6471.       Error Messages:
  6472.  
  6473.               You'll find that most users who are having programs will
  6474.           report them to you and give you an error number and a prg-ctr
  6475.           number.  Most of the error numbers that I have received are as
  6476.           follows:
  6477.  
  6478.             25  DEVICE FAULT: [run-time error]
  6479.               A hardware error has occurred, for example, with the printer
  6480.               interface or a communications adapter.  This occurs due to a
  6481.               user fault, he probably specified the wrong port address or
  6482.               an invalid com port number.
  6483.  
  6484.             53  FILE NOT FOUND: [run-time error]
  6485.               The file name specified could not be found on the indicated
  6486.               drive.  This is occurs probably due to a path not specified
  6487.               correctly by the user or a drive letter that should be there
  6488.               but was left out.
  6489.  
  6490.             57  DEVICE I/O ERROR: [run-time error]
  6491.               A serious hardware problem occurred when trying to carry out
  6492.               some command.  This can occur if they are trying to use a
  6493.               faster modem speed than what they actually have.  Have them
  6494.               change it.
  6495.  
  6496.             61  DISK FULL: [run-time error]
  6497.               There isn't enough free space on the indicated or default
  6498.               disk to carry out a file operation.  Have them create some
  6499.               more free disk space and retry your program.
  6500.  
  6501.             67  TOO MANY FILES: [run-time error]
  6502.               This error can be caused either by trying to create too many
  6503.               files in a drive's root directory, or by an invalid file
  6504.               name that affects the performance of the DOS Create File
  6505.               system call.  Have them increase their FILES= in CONFIG.SYS.
  6506.  
  6507.             68  DEVICE UNAVAILABLE: [run-time error]
  6508.               You tried to OPEN a device file on a machine without that
  6509.               device; for example, COM1 on a system without a serial
  6510.               adapter or modem.  Have them check their com port number in
  6511.               their drop file, if not have them set the COMPORT variable
  6512.               in the CFG file.
  6513.  
  6514.             75  PATH/FILE ACCESS ERROR: [run-time error]
  6515.               During a command capable of specifying a path name (OPEN,
  6516.               RENAME, or MKDIR, for example), you used a path
  6517.               inappropriately; trying to OPEN a subdirectory or to delete
  6518.               a directory in-use, for example.  See Error 76 .
  6519.  
  6520.             76  PATH NOT FOUND: [run-time error]
  6521.               The path you specified during a CHDIR, MKDIR, OPEN, etc.,
  6522.               can't be found.  Have them check all their drive/path
  6523.               information (sometimes they use the wrong drive letter or
  6524.               forget to put a / at the end, etc.)
  6525.  
  6526.  
  6527.  
  6528.  
  6529.                                      Page 99
  6530.  
  6531.  
  6532.  
  6533.  
  6534.                          PowerBASIC DWDoor Library v2.3
  6535.             (C) Copyright 1993 - James R. Davis - All Rights Reserved
  6536.  
  6537.               The prg-ctr number is cool because it tells you exactly
  6538.           where the problem occured and PowerBASIC will take you to the
  6539.           exact line number where the problem occured.  This is a great
  6540.           feature of PowerBASIC over QB.  To go to the line that is giving
  6541.           you the problem, when you first bring up the program in the PB
  6542.           IDE, press ALT-C,F and type the number returned by the prg-ctr.
  6543.           The program will recompile and the cursor will sit on the line
  6544.           where the error occured.  If you get a message saying that the
  6545.           line cannot be displayed because the source cannot be found then
  6546.           the problem occured within the library.  But go through the
  6547.           errors above and check them out before reporting it to me.  More
  6548.           than likely, it will be due to user error in drive/path or
  6549.           comport number not specified correctly.  If after all else has
  6550.           failed, report the error number and prg-ctr number (along with
  6551.           your source code for recompilation) and a description of when
  6552.           the error occurred and the events that lead up to the error and
  6553.           I will attempt to fix it.  Call the PMS BBS at (516) 737-4637 to
  6554.           do so.
  6555.  
  6556.  
  6557.       Closing:
  6558.  
  6559.               That about does it for these docs.  I hope that you are able
  6560.           to understand them pretty well.  Even though my editor has given
  6561.           me these stats;
  6562.  
  6563.                 Flesch Reading Ease: 72  (0=Hardest,100=Easiest)
  6564.                 Gunning's Fog Index: Grade Level 9 (8 to 10 best)
  6565.                 Flesch-Kincaid     : Grade Level 6
  6566.  
  6567.           I still have premonitions of those reading this and saying,
  6568.           "HUH?"  I hope that I covered everything and explained as much
  6569.           as possible without overloading my editor (I'm up to 94% memory
  6570.           used! ARGH!).
  6571.  
  6572.               Have fun programming and I hope to see many new ideas coming
  6573.           in the future!  I would appreciate any suggestions you may have
  6574.           on making this a better library for all your door programming
  6575.           needs.  You can contact me through the PowerBASIC conference of
  6576.           the Intelec network as James Davis, or you can call the Home Of
  6577.           DavisWARE - The Programmer's Mega-Source at (516) 737-4637!
  6578.           Until next time buckroos...
  6579.  
  6580.                         -=> James "The Garf!" Davis! <=-
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.                                     Page 100
  6596.  
  6597.  
  6598.