home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / VISUAL_B / ARQS_ZIP / DFVB10.ZIP / DFRAMEVB.DOC < prev    next >
Encoding:
Text File  |  1992-09-22  |  59.8 KB  |  1,162 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                D O O R F R A M E
  17.                                   Version 1.0
  18.  
  19.                         A BBS Doors Development Library
  20.                        for the Visual Basic DOS compiler
  21.  
  22.                               Copyright (c) 1992
  23.                                 by Ted Freeman
  24.                              All rights reserved.
  25.  
  26.  
  27.                                Support board is:
  28.  
  29.                                MicroNet PCBoard
  30.                            Node1: 615-626-1620 ULTRA
  31.  
  32.  
  33.  
  34. DOORFRAME v1.0 - Users Guide - Page i
  35.  
  36.  
  37.                                 C O N T E N T S
  38.                                =================
  39.  
  40.         Warranty ............................................ ii
  41.         Copyright notice .................................... ii
  42.         Distribution ........................................ ii
  43.         Description ......................................... ii
  44.         BOX.IT .............................................. 1
  45.         BACK.SPACE .......................................... 2
  46.         CLREOL .............................................. 2
  47.         CLRMOL .............................................. 2
  48.         CLRSOL .............................................. 2
  49.         CLRSCRN ............................................. 2
  50.         DE.LAY .............................................. 2
  51.         DETECT.ANSI ......................................... 2
  52.         DIS.PLAY ............................................ 3
  53.         ENTER ............................................... 4
  54.         EXIT.DOOR ........................................... 4
  55.         IN.PUT .............................................. 4
  56.         INITIALIZE .......................................... 5
  57.         LINES ............................................... 5
  58.         MAKE.BLT ............................................ 6
  59.         MAKE.BLT.CURRENT .................................... 6
  60.         MORE ................................................ 6
  61.         MUSIC ............................................... 6
  62.         OUT.PUT ............................................. 6
  63.         SEND ................................................ 7
  64.         SHOW.BLT ............................................ 7
  65.         COLOR TABLE ......................................... 8
  66.         CONFIGURATION FILE FORMAT ........................... 9
  67.         PCBOARD.SYS VARIABLES ............................... 10
  68.         USERS.SYS VARIABLES ................................. 12
  69.         DOOR.SYS VARIABLES .................................. 13
  70.         USERINFO.DAT VARIABLES .............................. 15
  71.         DORINFOx.DEF VARIABLES .............................. 15
  72.         CALLINFO.BBS VARIABLES .............................. 16
  73.         SFDOORS.DAT VARIABLES ............................... 18
  74.         CHAIN.TXT VARIABLES ................................. 20
  75.         MISCELLANEOUS NOTES ................................. 21
  76.  
  77.  
  78. DOORFRAME v1.0 - Users Guide - Page ii
  79.  
  80.  
  81.                                    Warranty
  82.  
  83.     This product is provided "as is" without warranty of any kind. The entire
  84.     risk as to the results and  performance of the program is assumed by you.
  85.     Futhermore, the  author does  not warrant, guarantee, or  make any  other
  86.     representations regarding  the use of,  or the  results of the use of the
  87.     program,  and you  rely on the  program and  results  solely at  your own
  88.     risk.  The author  cannot and  will not accept  responsibility for system
  89.     damage, loss of profit, or any other special, consequential or incidental 
  90.     damages  resulting  from  the  use  or  inability  to  use this  product.
  91.  
  92.                                    Copyright
  93.  
  94.     DOORFRAME Copyright (c) 1990-92 by  Ted Freeman  is being distributed as
  95.     Shareware. Under this concept you may use the  SHAREWARE  (unregistered)
  96.     version for a reasonable period of  time for evaluation  after which you
  97.     must either register your copy or discontinue  usage.
  98.  
  99.  
  100.                                  Distribution
  101.  
  102.     You  are encouraged to distribute DOORFRAME provided that all files
  103.     contained in the archive are distributed in their original and
  104.     unmodified state.
  105.  
  106.                                   Description
  107.     
  108.     DOORFRAME is a subroutine library for developing online BBS Doors for
  109.     systems that are compatible with PCBOARD.SYS, USERS.SYS, DOOR.SYS,
  110.     CALLINFO.BBS, USERINFO.DAT, SFDOORS.DAT, CHAIN.TXT, or DORINFOx.DEF for
  111.     interfacing to the BBS.
  112.     This version of DoorFrame was written for BASCOM (tm) 7.x and is not
  113.     recommended for use with earlier versions of the compiler. DoorFrame also
  114.     utilizes some of the routines contained in Tom Hanlin's PBClone library.
  115.     The COM routines are handled by the QBSerial I/O library.
  116.     NOTE: A version of DoorFrame is also available for Quickbasic 4.x.
  117.  
  118.  
  119. DOORFRAME v1.0 - Users Guide - Page 1
  120.  
  121.  
  122.                               DOORFRAME ROUTINES
  123.                              ====================
  124.  
  125. NOTE: 
  126. Since the subroutines are DECLAREd in DFRAMEX.INC (you DID $INCLUDE: it didn't 
  127. you?) you should not use the CALL statement. Type the name of the subroutine 
  128. and list it's parameters (if any) without the enclosing parentheses.
  129. For example:
  130.  
  131.  DIS.PLAY MSG$, FG%, BG%, BLINK%, BELL%, XPOS%, YPOS%, NL%, CENTER%, CAPS% 
  132. ------------------------------------------------------------------------------
  133.  
  134. SUBROUTINE: 
  135. BOX.IT SROW%,SCOL%,EROW%,ECOL%,BTYPE%,BFG%,BBG%,FFG%,FBG%,FCHAR%,SHADOW%,TITLE$,HFG%,HBG%
  136. PARAMETERS: SROW%    - ROW the box is to start at. Valid numbers are 1 - 22.
  137.                        Accepts an INTEGER number or variable.
  138.             SCOL%    - COLUMN the box is to start at. Valid numbers are 1 - 79.
  139.                        Accepts an INTEGER number or variable.
  140.             EROW%    - ROW the box is to end at. Valid numbers are 2 - 23.
  141.                        Accepts an INTEGER number or variable.
  142.             ECOL%    - COLUMN the box is to end at. Valid numbers are 2 - 80.
  143.                        Accepts an INTEGER number or variable.
  144.             BTYPE%   - Type of border. Accepts an INTEGER number or variable.
  145.                          0 = No border (spaces all the way around).
  146.                          1 = Single line all the way around.
  147.                          2 = Double line all the way around.
  148.                          3 = Double line on sides, single on top and bottom.
  149.                          4 = Single line on sides, double on top and bottom.
  150.             BFG%     - Foreground color of the border. (See color table)
  151.                        Accepts an INTEGER number or variable.
  152.             BBG%     - Background color of the border. (See color table)
  153.                        Accepts an INTEGER number or variable.
  154.             FFG%     - Foreground color of the box fill characters.
  155.                        Accepts an INTEGER number or variable.
  156.             FBG%     - Background color of the box fill characters.
  157.                        Accepts an INTEGER number or variable.
  158.             FCHAR%   - ASCII number of the character to fill box with.
  159.                        EX: 32 = SPACE, 65 = A, 206 = ╬
  160.             SHADOW%  - 1 = Shadow, 0 = no Shadow. This will put a Shadow
  161.                        on the right and bottom edges of the box.
  162.             TITLE$   - Displays a title centered on the top border.
  163.                        Accepts a STRING variable or QUOTED TEXT.
  164.             HFG%     - Foreground color of TITLE$
  165.             HFG%     - Background color of TITLE$
  166.  
  167. DESCRIPTION: Draws a BOX with various style borders. The inside of the
  168.              BOX may be filled with any ASCII character you choose. The
  169.              upper left corner of the screen is ROW 1, COLUMN 1 and the
  170.              bottom right is ROW 23, COLUMN 80.
  171.  
  172.  
  173.  
  174.  
  175. DOORFRAME v1.0 - Users Guide - Page 2
  176.  
  177. SUBROUTINE: BACK.SPACE ROW%, COL%, NUM%
  178. PARAMETERS: ROW%, COL%, NUM%
  179. DESCRIPTION: Backspaces NUM% from the ROW% and COL% specified.
  180.  
  181. SUBROUTINE: CLREOL XPOS%, YPOS%, BGC%
  182. PARAMETERS: XPOS%, YPOS%, BGC%
  183. DESCRIPTION: Clears from the specified row and column to the end of that
  184.              line. The line is cleared in whatever color is specified in
  185.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  186.  
  187. SUBROUTINE: CLRMOL XPOS%, YPOS%, LENGTH%, BGC%
  188. PARAMETERS: XPOS%, YPOS%, LENGTH%, BGC%
  189. DESCRIPTION: Clears from the specified row and column for the number of
  190.              columns given in LENGTH%. The line is cleared in whatever
  191.              color is specified in the BGC% parameter.
  192.              NOTE: Does not work in non-ANSI.
  193.  
  194. SUBROUTINE: CLRSOL XPOS%, YPOS%, BGC%
  195. PARAMETERS: XPOS%, YPOS%, BGC%
  196. DESCRIPTION: Clears from the specified row and column to the start of that
  197.              line. The line is cleared in whatever color is specified in
  198.              the BGC% parameter. NOTE: Does not work in non-ANSI.
  199.  
  200. SUBROUTINE: CLRSCRN
  201. PARAMETERS: BGC%
  202. DESCRIPTION: Clears both the LOCAL (if ON) and REMOTE displays in the back-
  203.              ground color of your choice. Range is 0 - 7. ANSI only.
  204.  
  205.  
  206. SUBROUTINE: DE.LAY SEC%
  207. PARAMETERS: SEC%, 1, 2, Etc.
  208. DESCRIPTION: Pauses your program for the number of seconds in SEC%. Accepts
  209.              INTEGER number or variable.
  210.  
  211. SUBROUTINE: DETECT.ANSI
  212. PARAMETERS: None
  213. DESCRIPTION: This routine will determine if the remote system has ANSI
  214.              capability. If the remote system is ANSI compatible, the
  215.              GRAPHICS% variable will be set equal to -1 otherwise it is
  216.              set to 0. This routine does not control whether COLOR is used
  217.              or not, see the MODE% variable for that.
  218.  
  219.  
  220.  
  221. DOORFRAME v1.0 - Users Guide - Page 3
  222.  
  223. SUBROUTINE: DIS.PLAY MSG$,FG%,BG%,BLINK%,BELL%,XPOS%,YPOS%,NL%,CENTER%,CAPS%
  224. PARAMETERS: MSG$     - Text to be printed in either variable or quoted form.
  225.                        Example: "Print this" or MSG$ = "Print this".
  226.  
  227.             FG%      - Foreground color (0 - 15) Of the text. Can be in
  228.                        INTEGER number or INTEGER variable form. 
  229.                        Example: FG% = 1, 1, BLUE (See Color Table)
  230.  
  231.             BG%      - Background color (0 - 7) of text otherwise same as FG%
  232.  
  233.             BLINK%   - Enter 1 for blinking text or 0 for normal text.
  234.                        Accepts INTEGER number or INTEGER variable.
  235.  
  236.             BELL%    - Enter 1 to sound a beep on the remote or 0 for no
  237.                        beep. Does not beep on the local computer.
  238.                        Accepts INTEGER number or INTEGER variable.
  239.  
  240.             XPOS%    - Row number for cursor positioning. Valid numbers
  241.                        are 0 - 23 (status line is on 24 - 25). Enter 0 to
  242.                        disable. Accepts INTEGER number or variable.
  243.                        NOTE: XPOS% is ignored when GRAPHICS% = 0.
  244.  
  245.             YPOS%    - Column number for cursor positioning. Valid numbers
  246.                        are 0 - 80. Enter 0 to disable. Accepts INTEGER number
  247.                        or INTEGER variable.
  248.                        NOTE: YPOS% is ignored when GRAPHICS% = 0.
  249.  
  250.             NL%      - Enter 1 to send a CR/LF at the end of the line. Enter
  251.                        0 to position the cursor after the last character.
  252.                        Accepts INTEGER number or INTEGER variable.
  253.  
  254.             CENTER%  - Enter 1 to center the line or 0 for no centering.
  255.  
  256.             CAPS%    - Enter 1 to convert text to all uppercase.
  257.                        Enter -1 to convert text to all lowercase.
  258.                        Enter 0 for no case conversion.
  259.                        Accepts INTEGER number or INTEGER variable.
  260. DESCRIPTION: Displays text to both the Local (if on) and Remote screens.
  261.              Accepts the full ASCII charcter set (0 - 255). Supports ANSI
  262.              color and cursor positioning (XPOS%, YPOS%). DoorFrame features
  263.              auto-ANSI detection and will display in graphics mode if it
  264.              senses ANSI capability on the remote end.
  265. ENHANCEMENTS: There are some special symbols available to make text blink
  266.              in the middle of a line in any color you wish. For example:
  267.  
  268.              DIS.PLAY "This will %{Blink Yellow{", LWHITE, BLACK, 0, 0,......
  269.  
  270.              Note the {'s before and after Blink Yellow. They tell the routine
  271.              to display the text in between in yellow and blinks because 
  272.              of the % symbol. Without the % the text is displayed in yellow
  273.              but does not blink. The rest of the line is displayed in white
  274.              on black. The symbols and their corresponding colors are:
  275.                 ~ = Blue,  ` = Green,  @ = Cyan,  ^ = Red,  | = Magenta
  276.                 { = Yellow, and } = White 
  277.              Put a * in front of the first symbol to display in low intensity
  278.              colors. Ex: *}text} displays 'text' in low intensity white. And
  279.              %*}test} displays 'text' in low intensity white and blinks.
  280.  
  281. DOORFRAME v1.0 - Users Guide - Page 4
  282.  
  283.              Please note that you must have called DETECT.ANSI before using
  284.              these symbols and the caller must be ANSI capable. Multiple codes
  285.              are allowed in one Dis.Play statement. See the included
  286.              DFDEMO.BAS file for examples on using this option.
  287.  
  288. SUBROUTINE: ENTER
  289. PARAMETERS: None
  290. DESCRIPTION: Outputs a "Press <ENTER> to Continue" prompt and waits for the
  291.              response. If the caller is in graphics mode, this is centered
  292.              on line 23. In non-graphics mode it is centered 2 lines below
  293.              the last line printed.
  294.  
  295.  
  296. SUBROUTINE: EXIT.DOOR YN$
  297. PARAMETERS: YN$, "Y", "N", "G"
  298. DESCRIPTION: VERY IMPORTANT! Always call this subroutine as the last thing
  299.              your program does. EXIT.DOOR updates the system files with any
  300.              changes that have been made to system variables, closes the
  301.              files, etc.
  302.  
  303.              You can toggle this ON, "Y" or OFF, "N" when you call EXIT.DOOR.
  304.              Accepts a STRING variable YN$ = "Y" or quoted text "Y".
  305.              If you wish to allow the caller to log off from your Door, call
  306.              EXIT.DOOR "G". When you use EXIT.DOOR "G", DoorFrame returns a
  307.              DOS Error Level of 1 for Wildcat! systems and 62 for all others.
  308.  
  309. SUBROUTINE: IN.PUT LENGTH%, WAITTIME&, IFG%, IBG%, AUTOCR%, Text$, X%, Y%, Show%
  310. PARAMETERS: LENGTH%   - Desired length of input. Accepts an INTEGER number
  311.                         or variable. 0 = any length.
  312.             WAITTIME& - Number of seconds to wait for input. If ENTER is not
  313.                         pressed before this times out, control is passed back
  314.                         to the calling routine and RESPONSE$ will contain "-1"
  315.             IFG%      - Foreground color of Text$ and the response (INTEGER).
  316.             IBG%      - Background color of Text$ and the response (INTEGER).
  317.             AUTOCR%   - 1 = Automatic CR, 0 = Wait for ENTER to be pressed.
  318.             Text$     - Text to display (if any). Use "" for no display.
  319.             X%        - X coordinate to display text. 0 = current coordinate.
  320.             Y%        - Y coordinate to display text. 0 = current coordinate.
  321.             Show%     - 0 = Don't display response, 1 = Display response.
  322.  
  323. DESCRIPTION: Gets a response from the caller which is returned in the variable
  324.              RESPONSE$. Passes ASCII characters in the range 32 - 127 and
  325.              ignores all others unless Hi.Ascii% = 1, in which case it accepts
  326.              ASCII 32 - 255. IN.PUT also allows you to use HOT KEYS! If you are
  327.              prompting for a Y/N you could do something like:
  328.              
  329.              IN.PUT 1, 180, 12, 0, 1, "Is everything correct? (y/n) ", 1, 1, 0
  330.              IF UCASE$(RESPONSE$) = "Y" THEN      Etc., Etc.
  331.  
  332.              As soon as the caller hit Y or N, the subroutine terminates
  333.              without his having to hit ENTER (however IN.PUT always returns
  334.              when ENTER is pressed). The response would not be displayed.
  335.              The IN.PUT can also be used as a timed routine. In the example
  336.              above, The routine would wait for 180 seconds. if it does not
  337.              receive a keypress within that time, it returns to the calling
  338.              routine and RESPONSE$ would contain a "-1".
  339.              IN.PUT features word-wrap ability in both forward typing and
  340.              while backspacing.
  341.  
  342.  
  343. DOORFRAME v1.0 - Users Guide - Page 5
  344.  
  345. SUBROUTINE: INITIALIZE
  346. PARAMETERS: None
  347. DESCRIPTION: VERY IMPORTANT! You MUST make a call to INITIALIZE before your
  348.              code does anything. This subroutine opens the system files and
  349.              obtains all the information you will need to run your Door. It
  350.              first reads the configuration file you passed on the command
  351.              line, then it reads the BBS interface file PCBOARD.SYS, etc.
  352.              There are 3 variables that must be populated before the call
  353.              to INITIALIZE. 
  354.                 PROGNAME$ = "Name of your Door"
  355.                 EXENAME$ = "FILENAM"
  356.                 VERSION$ = " v0.0"
  357.                 INITIALIZE
  358.              PROGNAME$ and VERSION$ are displayed on the Status line after
  359.              the callers name. EXENAME$ must be populated if you plan to use
  360.              the high score bulletin generator. EXENAME$ is the filename of
  361.              your program minus the .EXE extension.
  362.          ->  NOTE: EXENAME$ MUST BE NO MORE THAN 7 CHARACTERS!
  363.  
  364.  
  365. SUBROUTINE: LINES SROW%,SCOL%,LEN%,DIR$,ENDS%,MID%,EFG%,EBG%,MFG%,MBG%
  366. PARAMETERS: SROW%    - Row the line starts at. Valid numbers are 1 - 22.
  367.                        Accepts an INTEGER number or variable.
  368.             SCOL%    - Column the line starts at. Valid numbers are 1 - 79.
  369.                        Accepts an INTEGER number or variable.
  370.             LEN%     - Length of the line. Max. of 23 for vertical, 80 horiz.
  371.                        Accepts an INTEGER number or variable.
  372.             DIR$     - "H" = horizontal. "V" = vertical. Accepts a STRING
  373.                        variable or quoted text.
  374.             ENDS%    - If you are placing the line inside a box, you can
  375.                        make the ends of the line match the box border.
  376.                        Accepts an INTEGER number or variable.
  377.                          0 = No ends. (straight line only)
  378.                          1 = Single line.
  379.                          2 = Double line.
  380.             MID%     - Type of line. 1 = Single line. 2 = Double line.
  381.                        Accepts an INTEGER number or variable.
  382.             EFG%     - Foreground color of the ends (see color table).
  383.                        Accepts an INTEGER number or variable.
  384.             EBG%     - Background color of the ends (see color table).
  385.                        Accepts an INTEGER number or variable.
  386.             MFG%     - Foreground color of the line (see color table).
  387.                        Accepts an INTEGER number or variable.
  388.             MBG%     - Background color of the line (see color table).
  389.                        Accepts an INTEGER number or variable.
  390. DESCRIPTION: Draws either a vertical or horizontal line at the specified
  391.              location. 
  392.  
  393.  
  394. DOORFRAME v1.0 - Users Guide - Page 6
  395.  
  396. SUBROUTINE: MAKE.BLT HI.SCORE&
  397. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  398. DESCRIPTION: This routine will write a hi-score bulletin listing the top ten
  399.              scores. The parameter passed must be a LONG INTEGER (&). This
  400.              routine creates a file called FILENAME.BUL (where FILENAME is
  401.              the same as specified in the EXENAME$ variable). The first line
  402.              of this .BUL file indicates the path to the actual BLT file. It
  403.              initially writes FILENAME.BLT. If you wish to have a different
  404.              filename (such as BLT1) you must edit this line. The filename
  405.              for your BLT file should be 7 characters or less because
  406.              DoorFrame also writes a graphics BLT and appends a G to the
  407.              filename. (You should also explain this to your user Sysops!)
  408.  
  409. SUBROUTINE: MAKE.BLT.CURRENT HI.SCORE&
  410. PARAMETERS: HI.SCORE&, 10, 10000, Etc.
  411. DESCRIPTION: Same as MAKE.BLT except it posts CURRENT scores rather than
  412.              highest scores.
  413.  
  414.  
  415. SUBROUTINE: MORE
  416. PARAMETERS: None
  417. DESCRIPTION: Outputs "Press <ENTER> to continue, or <E> to end" and waits
  418.              for a response. Check the variable RESPONSE$ for an "E" and
  419.              terminate the current routine if found. For example:
  420.                 MORE
  421.                 IF UCASE$(RESPONSE$) = "E" THEN
  422.                   Etc.. Etc.
  423.  
  424. SUBROUTINE: MUSIC TUNE$
  425. PARAMETERS: MUSIC CODES
  426. DESCRIPTION: Outputs music to the remote system. The TUNE$ parameter
  427.              contains the same codes you would normally use in the BASIC
  428.              PLAY statement. For example:
  429.               TUNE$ = "t110 l8 ms d4 mn o3 g a b o4 c ... "
  430.               MUSIC TUNE$
  431.              Since not all communications programs can handle music, you
  432.              should ask the user if he has music capabilities. If the
  433.              user can't handle music he will simply see the music codes
  434.              come across his screen (not a pretty sight!).
  435.  
  436.  
  437. SUBROUTINE: OUT.PUT LF%
  438. PARAMETERS: LF%, 1, 2, Etc.
  439. DESCRIPTION: Outputs the specified number of CR/LF. Parameter is an INTEGER
  440.              number or an INTEGER variable. Ex: OUT.PUT 2
  441.  
  442.  
  443.  
  444. DOORFRAME v1.0 - Users Guide - Page 7
  445.  
  446. SUBROUTINE: SEND FILENAME$, YN%, CLR%
  447. PARAMETERS: FILENAME$ - STRING variable or quoted text of file to SEND.
  448.             YN%       - 0 = Do not use the ENTER prompt after last page.
  449.                         1 = Use the ENTER prompt after last page.
  450.             CLR%      - 0 = Home cursor, do not clear screen.
  451.                         1 = Normal clear screen.
  452. DESCRIPTION: Sends the specified filename. This can be either an ASCII file
  453.              or an ANSI file. SEND first checks for the existance of the file
  454.              and either sends the file or reports "File not Found!". This is
  455.              handy for displaying Help files, Welcome screens, etc.
  456.        NOTE: When using The Draw to create ANSI screens, save the screen using
  457.              the block mode (ALT-B) as this seems to produce better results
  458.              than using the regular save function (ALT-S).
  459.  
  460.  
  461. SUBROUTINE: SHOW.BLT YN$
  462. PARAMETERS: YN$, "Y", "N"
  463. DESCRIPTION: Call this routine if your Door features a Hi-score bulletin. Make
  464.              sure you have called MAKE.BLT first! Best place to call this
  465.              is just before you call EXIT.DOOR. For example:
  466.                MAKE.BLT HI.SCORE&
  467.                SHOW.BLT "Y"
  468.                EXIT.DOOR "Y"
  469.              SHOW.BLT "Y" will ask if they want to see the Bulletin.
  470.              SHOW.BLT "N" displays the bulletin without asking.
  471.  
  472.  
  473. DOORFRAME v1.0 - Users Guide - Page 8
  474.  
  475.  
  476.                              C O L O R  T A B L E
  477.                             ======================
  478.  
  479. COLOR # - NAME       INTENSITY       FOREGROUND (FG%)     BACKGROUND (BG%)
  480. ---------------------------------------------------------------------
  481.  0 - BLACK              Low               X                   X
  482.  1 - BLUE                "                X                   X
  483.  2 - GREEN               "                X                   X
  484.  3 - CYAN                "                X                   X
  485.  4 - RED                 "                X                   X
  486.  5 - MAGENTA             "                X                   X
  487.  6 - YELLOW              "                X                   X
  488.  7 - WHITE               "                X                   X
  489.  8 - GRAY               High              X
  490.  9 - LBLUE               "                X
  491. 10 - LGREEN              "                X
  492. 11 - LCYAN               "                X
  493. 12 - LRED                "                X
  494. 13 - LMAGENTA            "                X
  495. 14 - LYELLOW             "                X
  496. 15 - LWHITE              "                X
  497.  
  498. The COLORs are defined as CONSTANT in the DFRAMEX.INC file so you may use
  499. either the actual color number, it's name or an INTEGER variable of your own
  500. choosing when CALLing the DIS.PLAY subroutine.
  501.  
  502.  
  503.  
  504. DOORFRAME v1.0 - Users Guide - Page 9
  505.  
  506.  
  507.                               CONFIGURATION FILE
  508.                               ==================
  509.  
  510. The format of the configuration file used by Doors created with DoorFrame is:
  511.  
  512. C:\PCB\PCBOARD.SYS              <- For PCBoard systems using PCBOARD.SYS only
  513. C|\PCB\USERS.SYS                <- For PCBoard systems using USERS.SYS
  514.                                    DoorFrame also recognizes the PCBoard
  515.                                    %PCBDRIVE% and %PCBDIR% environment var.
  516. C:\BBS\CALLINFO.BBS             <- For Wildcat! systems (prior to v3.0)
  517. C:\BBS\CHAIN.TXT                <- For WWIV systems
  518. C:\BBS\GTUSER.BBS               <- For GT Power systems
  519. C:\BBS\USERINFO.DAT             <- For Wildcat! 3.x+ systems.
  520. C:\BBS\DOOR.SYS                 <- For systems that support DOOR.SYS
  521. C:\BBS\DORINFOx.DEF             <- For QBBS/RBBS/RA. Replace x with Node #.
  522. C:\BBS\SFDOORS.DAT              <- For Spitfire systems.
  523. C:\BBS\TRIBBS.SYS               <- For TriBBS systems.
  524. MicroNet                        <- BBS name
  525. Ted                             <- Sysop's first name
  526. Freeman                         <- Sysop's last name
  527.   .                             <- The Configuration file is left open as #1
  528.   .                                so you may add whatever is necessary.
  529.  
  530. NOTE: DoorFrame supports COM 1-4 on the standard IRQ's - COM1/COM3 = IRQ4 and
  531.       COM2/COM4 = IRQ3. If you wish to use a non-standard IRQ, add the IRQ
  532.       number after the configuration filename. Let's assume your Door is
  533.       called FOOBAR and you want to use COM1 and IRQ5. The command line
  534.       passed to your Door would be:
  535.         FOOBAR FOOBAR.CFG /5
  536.         or  FOOBAR FOOBAR.CFG /%IRQ%  for the environment variable.
  537.       The /5 tells DoorFrame to use IRQ5 rather than the standard IRQ4 that
  538.       is normally used with COM1. No /x parameter is needed for the standard
  539.       IRQ's.
  540.  
  541. NOTE: There are 2 additional lines necessary when using GTUSER.BBS. Since
  542.       this file does not provide the ComPort% and NodeNum% variables, advise
  543.       your Door users to add them to this .CFG file on lines 5 and 6
  544.       respectively. Both variables will default to 1.
  545.  
  546. DOORFRAME v1.0 - Users Guide - Page 10
  547.  
  548.                   VARIABLES AVAILABLE WHEN USING PCBOARD.SYS
  549.                   ==========================================
  550.  
  551.         ALLOWEDBYTES&             Allowed D/L bytes from the PWRD file.
  552.                                   This number is in actual bytes
  553.                                   rather than Kilobytes allowed.
  554.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  555.       * BAUDOPEN$                 Port opening BPS
  556.       * BBSSYS$                   Name of the BBS
  557.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  558.       * CALLERSLOC$               Location of CALLERSx log
  559.         CHATSTATUS$               Chat mode status. "U" or "A"
  560.       * CITY$                     Callers city and state
  561.       * CNAMESLOC$                Location of CNAMES
  562.       * COMPORT%                  COM port number
  563.         CONFREG$                  Conferences registered in
  564.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  565.         DOWNLOADS&                Number of downloads made
  566.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  567.         EXENAME$                  Name of .EXE (Programmer supplied)
  568.         EXPERT$                   Expert mode - "Y" or "N"
  569.         EXPIRE$                   Callers expiration date
  570.       * FIRST$                    Callers first name
  571.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  572.                                   Determines if the caller is ANSI compatible
  573.                                   If your door requires the use of cursor
  574.                                   positioning and GRAPHICS% = 0 then you
  575.                                   should kick him back out of the door.
  576.       * HPHONE$                   Callers home phone number
  577.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  578.         LEVEL&                    Callers security level
  579.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  580.       * LOGONHRS$                 Time caller logged on in HH:MM format
  581.       * LOGONMINS%                Time caller logged on in minutes
  582.         MODE%                     0 = Non-color, -1 = color is on. Default
  583.                                   is the BBS setting. You may force color
  584.                                   by setting this to -1.
  585.       * NAME$                     Callers full name
  586.       * NETWORK%                  1 = BBS is networked, 0 = no network
  587.       * NODENUM%                  Node number
  588.         OWNER$                    Name DoorFrame is registered to (if any).
  589.         PASSWORD$                 Password of caller
  590.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  591.         PAGELEN%                  Callers page length
  592.       * PCBDAT$                   Location of PCBOARD.DAT
  593.       * PCBOARD%                  1 = PCBoard, 0 = non-PCBoard
  594.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  595.         PROGNAME$                 Name of DOOR (Programmer supplied)
  596.         PROTOCOL$                 Caller's default protocol (Z, X, etc.)
  597.         RESPONSE$                 Returned after a CALL to IN.PUT
  598.         SERIAL$                   Your DoorFrame serial #. String variable.
  599.       * SYSLOC$                   Location of system file. This contains the
  600.                                   path/filename of line 1 in the .CFG file.
  601.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  602.       * SYSOPFIRST$               Sysops first name
  603.         SYSOPFLAG$                " ", "N"=Sysop Next, "X"=Exit to DOS
  604.       * SYSOPLAST$                Sysops last name
  605.       * SYSOPNAME$                Sysops first and last names
  606.  
  607.  
  608. DOORFRAME v1.0 - Users Guide - Page 11
  609.  
  610.  
  611.         TIMEADJUST%               Use to adjust the callers remaining time
  612.                                   online. This variable adjusts the ELAPSED
  613.                                   time so if you wish to decrease his time,
  614.                                   give this a positive value.
  615.       * TIMEALWD%                 Minutes caller is allowed
  616.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  617.                                   calculates this so changing it has no effect
  618.       * TIMENOW%                  Current time in minutes (0 - 1440)
  619.       * TIMESON%                  Number of times on system
  620.         TIMEOUT%                  Programmer supplied keyboard timeout.
  621.                                   Defaults to 300 (5 mins) if not specified. 
  622.                                   Has a minimum of 60 seconds. Maximum is 
  623.                                   32,767 since it's an integer.
  624.       * TIMEUSED%                 Time used so far today in minutes
  625.         UPLOADS&                  Number of uploads made
  626.       * USERCOMMENT$              User maintained comment
  627.       * USERSLOC$                 Location of USERS file
  628.       * USERNUM%                  Record number of caller
  629.         VERSION$                  DOOR version # (Programmer supplied)
  630.       * WPHONE$                   Callers work phone number
  631.  
  632. NOTES: Variables marked with '*' are provided for information only.
  633.  
  634.  
  635. DOORFRAME v1.0 - Users Guide - Page 12
  636.  
  637.  
  638.                    VARIABLES AVAILABLE WHEN USING USERS.SYS
  639.                    ========================================
  640.  
  641.         When using USERS.SYS, all variables contained in PCBOARD.SYS may
  642.         be used plus the following additional variables.
  643.  
  644.         DAILYDNLDBYTES&          Bytes downloaded so far today.
  645.         DELETEFLAG%              1 = delete this record, 0 = keep
  646.         EXPIREDLEVEL&            Expired Security level
  647.         LASTCONF%                Conference number last in.
  648.         LASTTIMEON$              Last time caller was on
  649.         MSGS.LEFT%               Number of messages posted
  650.         MSGS.READ%               Number of messages read
  651.         PCB.VERSION%             PCBoard version number (i.e. 1450)
  652.         TOTDNLDBYTES&            Total number of BYTES downloaded
  653.         TOTUPLDBYTES&            Total number of BYTES uploaded
  654.  
  655. NOTES: These variables are all passed back to PCBoard.
  656.  
  657.  
  658. DOORFRAME v1.0 - Users Guide - Page 13
  659.  
  660.                     VARIABLES AVAILABLE WHEN USING DOOR.SYS
  661.                     =======================================
  662.  
  663.     !   ALIAS$                    Callers alias/handle
  664.     ! * ANSISUPPORT$              Caller supports ANSI but in NG mode
  665.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  666.       * BAUDOPEN$                 Port opening BPS
  667.     ! * BBSCOLOR%                 BBS default color code (1-15)
  668.       * BBSSYS$                   Name of the BBS
  669.         BIRTHDATE$                Callers date of birth
  670.         CALLALARM%                Caller alarm status.     -1=ON, 0=OFF
  671.       * CITY$                     Callers city and state
  672.       * COMPORT%                  COM port number (1 - 4).
  673.         CONFREG$                  Conferences registered in
  674.         DAILY.BYTES.ALWD&         Daily download max. K limit
  675.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  676.     !   DOORS.OPENED%             Number of Doors caller has opened
  677.         DOWNLOADS&                Number of downloads made
  678.     ! * ECC%                      Error corrected connect.  1=YES, 0=NO
  679.         EXENAME$                  Name of .EXE (Programmer supplied)
  680.         EXFROM%                   Conference exited to Door from.
  681.         EXPERT$                   Expert mode - "Y" or "N"
  682.         EXPIRE$                   Callers expiration date
  683.     ! * EVENT$                    Event time (hh:mm)
  684.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  685.                                   Determines if the caller is ANSI compatible
  686.                                   If your door requires the use of cursor
  687.                                   positioning and GRAPHICS% = 0 then you
  688.                                   should kick him back out of the door.
  689.       * HPHONE$                   Callers home phone number
  690.       * LASTON$                   Date caller last logged on (MM-DD-YY)
  691.     !   LASTSCAN$                 Date of last directory/new files scan.
  692.         LEVEL&                    Callers security level
  693.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  694.       * LOGONHRS$                 Time caller logged on in HH:MM format
  695.       * LOGONMINS%                Time caller logged on in minutes
  696.     !   MAX.FILES%                Maximum daily files available
  697.     !   MINSCREDIT%               Time credits in minutes
  698.         MODE%                     0 = Non-color, -1 = color is on. Default
  699.                                   is the BBS setting. You may force color
  700.                                   by setting this to -1.
  701.     !   MSGS.LEFT%                Total messages left
  702.       * NAME$                     Callers full name
  703.     ! * NETWORK%                  1 = BBS is networked, 0 = no network
  704.       * NODENUM%                  Node number
  705.         DLTODAY&                  Files downloaded so far today
  706.         OWNER$                    Name DoorFrame is registered to (if any).
  707.         PAGEBELL%                 Page bell status.        -1=ON, 0=OFF
  708.         PAGELEN%                  Callers page length
  709.       * PARITY%                   Parity (word length?) (7 or 8)
  710.         PASSWORD$                 Password of caller
  711.       * PATHGEN$                  Path to the GEN directory
  712.       * PATHMAIN$                 Path to the MAIN directory
  713.         PRINTER%                  Printer status.          -1=ON, 0=OFF
  714.         PROGNAME$                 Name of DOOR (Programmer supplied)
  715.         PROTOCOL$                 Callers default protocol (Z, X, etc)
  716.         RESPONSE$                 Returned after a CALL to IN.PUT
  717.  
  718.  
  719. DOORFRAME v1.0 - Users Guide - Page 14
  720.  
  721.  
  722.         SECREM$                   Number of seconds remaining this call.
  723.         SERIAL$                   Your DoorFrame serial #. String variable.
  724.       * SYSLOC$                   Location of system file. This contains the
  725.                                   path/filename of line 1 in the .CFG file.
  726.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  727.       * SYSOPFIRST$               Sysops first name
  728.       * SYSOPLAST$                Sysops last name
  729.       * SYSOPNAME$                Sysops first and last names
  730.         TIMEADJUST%               Use to adjust the callers remaining time
  731.                                   online. This variable adjusts the ELAPSED
  732.                                   time so if you wish to decrease his time,
  733.                                   give this a positive value.
  734.     ! * TIMELASTCALL$             Time of last call (hh:mm)
  735.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  736.                                   calculates this so changing it has no effect
  737.       * TIMENOW%                  Current time in minutes (0 - 1440)
  738.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  739.                                   not specified. Has a minimum of one min.
  740.                                   No limit on maximum. 
  741.       * TIMESON%                  Number of times on system
  742.       * TIMEUSED%                 Time used so far today in minutes
  743.         TOTAL.BYTES.TODAY&        Daily download K total
  744.     !   TOTAL.KB.DL&              Total K bytes downloaded
  745.     !   TOTAL.KB.UL&              Total K bytes uploaded
  746.         UPLOADS&                  Number of uploads made
  747.       * USERCOMMENT$              User maintained comment
  748.       * USERNUM%                  Record number of caller
  749.         VERSION$                  DOOR version # (Programmer supplied)
  750.       * WPHONE$                   Callers work phone number
  751. NOTES: Variables marked with '*' are provided for information only.
  752.        Varialbes marked with '!' are available only in the 52 line version.
  753.  
  754.  
  755. DOORFRAME v1.0 - Users Guide - Page 15
  756.  
  757.                   VARIABLES AVAILABLE WHEN USING USERINFO.DAT
  758.                   ===========================================
  759.  
  760.       * ACTIVE.MENU%              0=Main, 1=Msg, 2=File, 3=Sysop
  761.         ALIAS$                    Callers alias/handle
  762.       * ANSISUPPORT$              'Y' or 'N' for ANSI enabled.
  763.         BANKED.TIME%              Banked time. (DLT - MaxLogOn)
  764.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  765.       * COMMAND.LINE$             Started with a CommandLine switch. Y or N.
  766.       * DATABITS$                 Databits, 7 or 8.
  767.       * DOOR.LOGOFF$              Y or N. Set to Y if caller logged off from
  768.                                   inside the door.
  769.         DOOR.DL&                  Number of files DL'ed in the door.
  770.         DOOR.KB&                  Downloads in K, add to daily and total bytes
  771.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  772.         LASTSCAN$                 Time/date of last new files scan
  773.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  774.       * NAME$                     Callers full name
  775.         SEC.LEVEL.NAME$           Security level name.
  776. NOTES: Variables marked with '*' are provided for information only.
  777.        All other variables are taken from the DOOR.SYS file.
  778.  
  779.                   VARIABLES AVAILABLE WHEN USING DORINFOx.DEF
  780.                   ===========================================
  781.  
  782.       * BAUDRATE$                 Baud rate and parity of caller.
  783.                                   Ex. 2400 BAUD,N,8,1
  784.                                   NOTE: RBBS adds baud rate of BBS.
  785.       * BBSSYS$                   Name of the BBS
  786.       * CITY$                     Callers city and state
  787.       * COMPORT%                  COM port number (1 - 4).
  788.         DISPLAY%                  Defaults to -1 (ON).
  789.       * DORINFO13TH$              13th line available only on RBBS systems.
  790.         EXENAME$                  Name of .EXE (Programmer supplied)
  791.       * FIRST$                    Callers first name
  792.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  793.                                   Determines if the caller is ANSI compatible
  794.                                   If your door requires the use of cursor
  795.                                   positioning and GRAPHICS% = 0 then you
  796.                                   should kick him back out of the door.
  797.                                   Use DETECT.ANSI to determine this.
  798.       * LAST$                     Callers last name
  799.       * LASTON$                   Default 01-01-80 (not provided in DORINFO)
  800.         LEVEL&                    Callers security level
  801.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  802.         MODE%                     0 = Non-color, -1 = color is on. Default
  803.                                   is the BBS setting. You may force color
  804.                                   by setting this to -1.
  805.       * NAME$                     Callers full name
  806.         NETWORK$                  Network type. DoorFrame reads/writes as is.
  807.       * NODENUM%                  Number of this Node.
  808.         OWNER$                    Name DoorFrame is registered to (if any).
  809.         PROGNAME$                 Name of DOOR (Programmer supplied)
  810.         RESPONSE$                 Returned after a CALL to IN.PUT
  811.         SERIAL$                   Your DoorFrame serial #. String variable.
  812.       * SYSLOC$                   Location of system file. This contains the
  813.                                   path/filename of line 1 in the .CFG file.
  814.  
  815.  
  816. DOORFRAME v1.0 - Users Guide - Page 16
  817.  
  818.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  819.       * SYSOPFIRST$               Sysops first name
  820.       * SYSOPLAST$                Sysops last name
  821.       * SYSOPNAME$                Sysops first and last names
  822.         TIMEADJUST%               Use to adjust the callers remaining time
  823.                                   online. This variable adjusts the ELAPSED
  824.                                   time so if you wish to decrease his time,
  825.                                   give this a positive value.
  826.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  827.                                   calculates this so changing it has no effect
  828.       * TIMENOW%                  Current time in minutes (0 - 1440)
  829.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  830.                                   not specified. Has a minimum of one min.
  831.                                   No limit on maximum. 
  832.       * TIMESON%                  Defaults to 1 (Not provided in DORINFO)
  833.       * TIMEUSED%                 Time used so far today in minutes
  834.  
  835. NOTES: Variables marked with '*' are provided for information only.
  836.  
  837.  
  838.                   VARIABLES AVAILABLE WHEN USING CALLINFO.BBS
  839.                   ===========================================
  840.  
  841.       * ALREADYCONNECTED$         "TRUE" or "FALSE"
  842.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  843.       * BBSSYS$                   Name of the BBS
  844.       * CITY$                     Callers city and state
  845.       * COMPORT%                  COM port number (1 - 4).
  846.         CONFREG$                  Conferences registered in (ABCD etc.)
  847.       * CONSOLE$                  "LOCAL" or "REMOTE"
  848.         DAILY.BYTES.ALWD&         Daily download max. K limit
  849.       * DATABITS$                 7 or 8
  850.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  851.       * DOORNUMBER$               BBS number of this door?
  852.         EXENAME$                  Name of .EXE (Programmer supplied)
  853.       * ENTERDOOR$                Time caller entered door in HH:MM format.
  854.       * FIRST$                    Callers first name
  855.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  856.                                   Determines if the caller is ANSI compatible
  857.                                   If your door requires the use of cursor
  858.                                   positioning and GRAPHICS% = 0 then you
  859.                                   should kick him back out of the door.
  860.                                   Use DETECT.ANSI to determine this.
  861.       * LAST$                     Callers last name
  862.         LASTMSG$                  Last message read
  863.       * LASTONDATE$               Date and time of last call
  864.         LEVEL&                    Callers security level
  865.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  866.       * LOGONTIMEDATE$            Time and date caller logged on to BBS
  867.       * LOGONHRS$                 Time caller logged on in HH:MM format
  868.         MODE%                     0 = Non-color, -1 = color is on. Default
  869.                                   is the BBS setting. You may force color
  870.                                   by setting this to -1.
  871.       * MNP$                      "MNP/ARQ Connection" or "Normal Connection"
  872.       * NAME$                     Callers full name
  873.         DLTODAY&                  Files downloaded so far today
  874.  
  875.  
  876. DOORFRAME v1.0 - Users Guide - Page 17
  877.  
  878.         OWNER$                    Name DoorFrame is registered to (if any).
  879.         PASSWORD$                 Password of caller
  880.         PROGNAME$                 Name of DOOR (Programmer supplied)
  881.         RESPONSE$                 Returned after a CALL to IN.PUT
  882.         SERIAL$                   Your DoorFrame serial #. String variable.
  883.       * SYSLOC$                   Location of system file. This contains the
  884.                                   path/filename of line 1 in the .CFG file.
  885.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  886.       * SYSOPFIRST$               Sysops first name
  887.       * SYSOPLAST$                Sysops last name
  888.       * SYSOPNAME$                Sysops first and last names
  889.         TIMEADJUST%               Use to adjust the callers remaining time
  890.                                   online. This variable adjusts the ELAPSED
  891.                                   time so if you wish to decrease his time,
  892.                                   give this a positive value.
  893.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  894.                                   calculates this so changing it has no effect
  895.       * TIMENOW%                  Current time in minutes (0 - 1440)
  896.       * TIMEOFF$                  Time caller exited from the door.
  897.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  898.                                   not specified. Has a minimum of one min.
  899.                                   No limit on maximum. 
  900.       * TIMEUSED%                 Time used so far today in minutes
  901.       * USERNUM%                  Record number of caller
  902.  
  903. NOTES: Variables marked with '*' are provided for information only.
  904.  
  905.  
  906. DOORFRAME v1.0 - Users Guide - Page 18
  907.  
  908.                   VARIABLES AVAILABLE WHEN USING SFDOORS.DAT
  909.                   ==========================================
  910.  
  911.         ANSION$                   "TRUE" or "FALSE"
  912.       * BAUDCONN$                 Connect rate of caller or "LOCAL"
  913.       * BBSDIR$                   Spitfire's home directory
  914.       * BBSSYS$                   Name of the BBS
  915.       * CITY$                     Callers city and state
  916.       * COMPORT%                  COM port number (1 - 4).
  917.         DAILY.BYTES.ALLOWED&      Maximum download BYTES per day
  918.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  919.         DLPERDAY&                 Number of downloads allowed per day
  920.         DLTODAY&                  Number of downloads made today
  921.         DOWNLOADS&                Number of downloads made
  922.       * ECC%                      Error corrected connect.  1=YES, 0=NO
  923.         EXENAME$                  Name of .EXE (Programmer supplied)
  924.         EXTRATIME&                Number of seconds gained since logon
  925.       * FIRST$                    Callers first name
  926.       * FRONTEND$                 "TRUE" or "FALSE" if booted from a
  927.                                   front end program.
  928.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  929.                                   Determines if the caller is ANSI compatible
  930.                                   If your door requires the use of cursor
  931.                                   positioning and GRAPHICS% = 0 then you
  932.                                   should kick him back out of the door.
  933.                                   Use DETECT.ANSI to determine this.
  934.       * HPHONE$                   Callers home phone number
  935.       * LAST$                     Callers last name
  936.         LASTMCONF$                Last message conference
  937.         LASTFAREA$                Last file area
  938.         LEVEL&                    Callers security level
  939.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  940.       * LOGONHRS$                 Time caller logged on in HH:MM format
  941.       * LOGONSECS&                Number of seconds since midnight
  942.                                   when caller logged on to the BBS.
  943.       * MAXBAUD$                  Maximum baud of the system
  944.         MODE%                     0 = Non-color, -1 = color is on. Default
  945.                                   is the BBS setting. You may force color
  946.                                   by setting this to -1.
  947.       * NAME$                     Callers full name
  948.       * NODENUM%                  Number of this Node.
  949.       * NODTELOCK$                "TRUE" or "FALSE" if configured for
  950.                                   software data flow control.
  951.         OWNER$                    Name DoorFrame is registered to (if any).
  952.         PASSWORD$                 Password of caller
  953.         PROGNAME$                 Name of DOOR (Programmer supplied)
  954.         RESPONSE$                 Returned after a CALL to IN.PUT
  955.       * SECONDS&                  Number of seconds since midnight
  956.                                   when caller entered the door.
  957.         SERIAL$                   Your DoorFrame serial #. String variable.
  958.       * SYSLOC$                   Location of system file. This contains the
  959.                                   path/filename of line 1 in the .CFG file.
  960.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  961.       * SYSOPFIRST$               Sysops first name
  962.  
  963. NOTES: Variables marked with '*' are provided for information only.
  964.  
  965.  
  966. DOORFRAME v1.0 - Users Guide - Page 19
  967.  
  968.       * SYSOPLAST$                Sysops last name
  969.       * SYSOPNAME$                Sysops first and last names
  970.         SYSOPNEXT$                "TRUE" or "FALSE"
  971.         TIMEADJUST%               Use to adjust the callers remaining time
  972.                                   online. This variable adjusts the ELAPSED
  973.                                   time so if you wish to decrease his time,
  974.                                   give this a positive value.
  975.       * TIMEALWD%                 Minutes caller is allowed
  976.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  977.                                   calculates this so changing it has no effect
  978.       * TIMENOW%                  Current time in minutes (0 - 1440)
  979.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  980.                                   not specified. Has a minimum of one min.
  981.                                   No limit on maximum. 
  982.       * TIMEUSED%                 Time used so far today in minutes
  983.  
  984.         TOTAL.BYTES.TODAY&        BYTES downloaded so far today
  985.         TOTAL.KB.DL&              Total K bytes downloaded
  986.         TOTAL.KB.UL&              Total K bytes uploaded
  987.         UPLOADS&                  Number of uploads made
  988.       * USERNUM%                  Record number of caller
  989.  
  990. NOTES: Variables marked with '*' are provided for information only.
  991.  
  992. DOORFRAME v1.0 - Users Guide - Page 20
  993.  
  994.                    VARIABLES AVAILABLE WHEN USING CHAIN.TXT
  995.                    ========================================
  996.         AGE$                      Caller's age
  997.         ALIAS$                    Callers alias/handle
  998.       * BBSSYS$                   Name of the BBS
  999.       * CALLSIGN$                 HAM radio call sign
  1000.         COLUMNS$                  Caller's screen width
  1001.       * COMPORT%                  COM port number (1 - 4).
  1002.         COSYSOP%                  1 if Caller is co-Sysop, 0 if not
  1003.       * DATADIR$                  System DATA directory
  1004.         DISPLAY%                  Local display status.    -1=ON, 0=OFF
  1005.         DOWNLOADS&                Number of downloads made
  1006.         EXENAME$                  Name of .EXE (Programmer supplied)
  1007.       * FIRST$                    Callers first name
  1008.       * GFILESDIR$                System GFILES directory
  1009.         GOLD$                     Caller's gold (?)
  1010.         GRAPHICS%                 Graphics mode status.    -1=ON, 0=OFF
  1011.                                   Determines if the caller is ANSI compatible
  1012.                                   Use DETECT.ANSI to determine this.
  1013.       * LAST$                     Callers last name
  1014.       * LASTON$                   Date caller last logged on (MM/DD/YY)
  1015.         LEVEL&                    Callers security level
  1016.       * LOCALUSR%                 -1 = LOCAL mode, 0 = Online
  1017.       * LOG$                      System LOG of the day
  1018.       * LOGONSECS&                Number of seconds since midnight
  1019.                                   when caller logged on to the BBS.
  1020.         MODE%                     0 = Non-color, -1 = color is on. Line 14
  1021.                                   of CHAIN.TXT determines this setting.
  1022.       * NAME$                     Callers full name
  1023.       * NODENUM%                  Defaults to 1 (not provided in CHAIN.TXT)
  1024.         OWNER$                    Name DoorFrame is registered to (if any).
  1025.         PAGELEN%                  Callers page length
  1026.         PARITY$                   "8N1" etc.
  1027.         PROGNAME$                 Name of DOOR (Programmer supplied)
  1028.         RESPONSE$                 Returned after a CALL to IN.PUT
  1029.         SERIAL$                   Your DoorFrame serial #. String variable.
  1030.         SEX$                      Callers sex
  1031.       * SYSLOC$                   Location of system file. This contains the
  1032.                                   path/filename of line 1 in the .CFG file.
  1033.       * SYSOP%                    1 = SYSOP is using DOOR, 0 otherwise
  1034.       * SYSOPFIRST$               Sysops first name
  1035.       * SYSOPLAST$                Sysops last name
  1036.       * SYSOPNAME$                Sysops first and last names
  1037.         TIMEADJUST%               Use to adjust the callers remaining time
  1038.                                   online. This variable adjusts the ELAPSED
  1039.                                   time so if you wish to decrease his time,
  1040.                                   give this a positive value.
  1041.       * TIMELEFT%                 Time caller has left in minutes. Doorframe
  1042.                                   calculates this so changing it has no effect
  1043.       * TIMENOW%                  Current time in minutes (0 - 1440)
  1044.         TIMEOUT%                  Programmer supplied. Defaults to 5 mins if
  1045.                                   not specified. Minimum 1 min. 
  1046.       * TIMEUSED%                 Time used so far today in minutes
  1047.         TOTAL.KB.DL&              Total K bytes downloaded
  1048.         TOTAL.KB.UL&              Total K bytes uploaded
  1049.         UPLOADS&                  Number of uploads made
  1050.       * USERNUM%                  Record number of caller
  1051. NOTES: Variables marked with '*' are provided for information only.
  1052.  
  1053.  
  1054. DOORFRAME v1.0 - Users Guide - Page 21
  1055.  
  1056.                                 MISCELLANEOUS NOTES
  1057.                                 ===================
  1058.  
  1059. Check DFRAMEX.INC for an explanation of variables not listed above.
  1060.  
  1061. DoorFrame requires DOS 3.x and up since all files are opened in SHARED mode.
  1062.  
  1063. When using PCBOARD.SYS, DoorFrame also accesses the USERS file.
  1064.  
  1065. When using USERS.SYS, DoorFrame also accesses PCBOARD.SYS, PCBOARD.DAT and the 
  1066. USERS file.
  1067.  
  1068. The DOOR.SYS used by DoorFrame is the standard 52 line GAP (tm) file.
  1069.  
  1070. The CALLINFO.BBS used by DoorFrame currently contains 36 lines.
  1071.  
  1072. Trapping errors
  1073. ---------------
  1074.  If you wish to utilize the internal error trapping, insert the following
  1075.  line wherever you wish the trapping to begin. I would suggest putting it
  1076.  right after you call INITIALIZE.
  1077.  
  1078.    ON ERROR GOTO ERR.ROUTINE
  1079.  
  1080.  Then at the very end of your program insert the following:
  1081.  
  1082.    ERR.ROUTINE:
  1083.    ERRORS ERR, ERL
  1084.    END
  1085.  
  1086.  If ANY Basic error is encountered, it will branch to ERR.ROUTINE and call
  1087.  the ERRORS subroutine. The error will be printed to the screen and written
  1088.  to DFRAME.ERR. Your Door will then exit back to the BBS.
  1089. The first few lines of your Door should be:
  1090.  
  1091.    ' $INCLUDE: 'DFRAMEX.INC'
  1092.    PROGNAME$ = "Name of the Door"
  1093.    VERSION$ = " v1.0"
  1094.    EXENAME$ = "FILENAM"           <- NOTE: Max of 7 letters!
  1095.    TIMEOUT% = 240                 <- Numbers of seconds to wait for keyboard
  1096.                                      activity. 240 will wait for 4 minutes
  1097.                                      then send a Keyboard Timeout msg. and
  1098.                                      exit back to the BBS. Defaults to 300.
  1099.    OWNER$ = "Your Name"           <- For registered DoorFrame users only.
  1100.    SERIAL$ = "99999"              <- DoorFrame will display an EVALUATION
  1101.                                      COPY message until registered.
  1102.    INITIALIZE
  1103.    .
  1104.    Your code.......
  1105.    .
  1106.    MAKE.BLT HI.SCORE&            <- If you want one generated.
  1107.    SHOW.BLT "Y"                  <- If you want to show it before door closes.
  1108.    EXIT.DOOR "Y"
  1109. The configuration filename passed on the command line is OPENed as #1. This
  1110. file is left open so you may read additional lines from the .CFG file. 
  1111. Although it is not absolutely necessary, you should CLOSE #1 somewhere near
  1112. the start of your program.
  1113.  
  1114.  
  1115. DOORFRAME v1.0 - Users Guide - Page 22
  1116.  
  1117. Using SysopKeys%
  1118. ----------------
  1119. By setting SysopKeys% = 1 (after calling INITIALIZE), you can utilize the
  1120. arrow keys for remote input. This could be used for moving highlight bars
  1121. etc. (see the DFDEMO for an example).  Using the arrow keys from remote can
  1122. present difficulties because the terminal program the caller is using may
  1123. have redefined the arrow keys. Qmodem is a good example. Normally the up
  1124. arrow in Qmodem activates the scroll back buffer. However, if you switch
  1125. Qmodem into DoorWay mode (ALT =), the arrow keys can be used. I do not know
  1126. if this is possible with other terminals (feedback anyone?).  If you do
  1127. utilize the arrow keys, you would be wise to provide an alternative method
  1128. of input for those callers who cannot use their arrow keys.
  1129.  
  1130. In addition, set Sysopkeys% = 1 only when arrow input is required then
  1131. immediately set SysopKeys% = 0 since capital H, K, M, and P are also
  1132. interpreted as arrow keys when SysopKeys% = 1.
  1133.  
  1134. Turning off the Status lines.
  1135. -----------------------------
  1136. If for some reason you do not want the 2 Status lines at the bottom of the
  1137. screen to show, you may blank those out at any time with the following.
  1138.  
  1139.  No.Status% = 1
  1140.  ClrScrn Black
  1141.  
  1142. To turn the Status lines back on just set No.Status% = 0.
  1143.  
  1144. Returning control to programmer upon carrier loss
  1145. -------------------------------------------------
  1146. There may be instances where the programmer needs to do some clean-up when
  1147. a loss of carrier occurs before returning to the BBS. There are two variables
  1148. that allow you to do this. After calling INITIALIZE, set Auto.Recycle% = 0.
  1149. If carrier is lost, the variable NoCarrier% is set equal to 1. One way to 
  1150. handle this is to check NoCarrier% after each In.Put, Enter, or More 
  1151. statement. If NoCarrier% = 1, your door will NOT stop for user input. For
  1152. example:
  1153.  
  1154.    In.Put 0, 0, 11, 0, 1, "Prompt > ", 10, 1, 1
  1155.    IF NoCarrier% = 1 THEN GOTO HandleIt
  1156.  
  1157. If the door was sitting at the In.Put prompt when carrier loss occurred, it
  1158. would immediately come out of it and process the next statement. You must be
  1159. VERY CAREFUL when using this option. Make sure you TEST IT THOROUGHLY!!!
  1160.  
  1161.  
  1162.