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