home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / basic / tools / qbx400g / qbx.doc next >
Text File  |  1988-10-09  |  9KB  |  295 lines

  1.  
  2.   QBX - Quick Basic Cross Referencer              Version  4.00g
  3.   (c) Copyright Vernon D. Buerg 1986-88           October 9,1988
  4.   ALL RIGHTS RESERVED.
  5.  
  6.  
  7.  
  8.   Purpose
  9.   -------
  10.  
  11.     Determines cross references to alphanumeric labels and symbols
  12.     within a BASIC source program.
  13.  
  14.   Syntax
  15.   ------
  16.  
  17.     QBX [filename[.BAS]]  [/D]        [/Lnn]  [/Cnnn]  [/R]
  18.                   [/P]
  19.                   [/F[(filename)]]
  20.                   [/N]
  21.  
  22.   Remarks
  23.   -------
  24.  
  25.     If no filename is supplied, you are prompted to enter the
  26.     file name of the BASIC source file. The source file must
  27.     have been saved in ASCII (,A) format. The program may contain
  28.     any valid combination of numeric and alphameric labels. The
  29.     syntax is dictated by the Microsoft Quick Basic Compiler manual
  30.     and the IBM BASIC, Version 3.1, manual.
  31.  
  32.     The source file may contain TAB characters but their use
  33.     may cause the listing to be mis-aligned.
  34.  
  35.     The output consists of a program listing and a cross-reference
  36.     listing. The destination for the listing may be specified in
  37.     the command as:
  38.  
  39.         /D  display listings on the console display
  40.         /P  print the listings on the LPT1: printer
  41.         /F  write the listings to a file; may be supplied as (filename)
  42.         /N  suppress all listings
  43.  
  44.     For example, /F(MYPROG.LST) sets a destination of a file with
  45.     the name MYPROG.LST. If no extension is supplied, .LST is used
  46.     for the program listing and .REF is used for the cross-reference
  47.     listing.
  48.  
  49.     If no destination parameter is supplied, you will be asked to supply
  50.     it.
  51.  
  52.     The number of lines per page may be suppied by the /L parameter,
  53.     for example /L66 sets a default of 66 lines per page.
  54.  
  55.     The number of columns per line may be supplied by the /C parameter,
  56.     for example /C132 sets a default of 133 columns per line.
  57.  
  58.     Actual file record (line) numbers may be used instead of statement
  59.     numbers by supplying the /R option.
  60.  
  61.  
  62.   Meta Commands
  63.   -------------
  64.  
  65.     The source file may contain the meta commands described in
  66.     the Quick Basic (versions 1 or 2) manuals. These meta commands
  67.     are currently recognized:
  68.  
  69.         $INCLUDE  - cause QBX to include the named file with
  70.                 the current source program, and may be nested
  71.                 to approximately 15 levels;
  72.         $LINESIZE - sets the number of characters per page;
  73.         $PAGESIZE - sets the number of program lines per page;
  74.  
  75.         $PAGE      - forces a new listing page
  76.         $SKIP      - inserts one blank line into the listing
  77.         $SKIP:n   - inserts "n" blank lines into the listing
  78.         $SUBTITLE - adds a subtitle to each listing page second line
  79.         $TITLE      - adds a title to each listing page; if none
  80.                 are supplied, the title is "QBX"
  81.  
  82.   Operation
  83.   ---------
  84.  
  85.     There are two parts to the operation of QBX. The first phase
  86.     produces a program listing and builds the internal tables
  87.     representing the program's labels and symbols. The second
  88.     phase produces a label and a symbol cross reference.
  89.  
  90.     The output from each phase may be directed to the screen,
  91.     a printer (LPT1), a file, or nowhere. You are prompted for
  92.     the destination.
  93.  
  94.     The format of the listings is governed by two values: the
  95.     number of lines per page, and the number of columns per line.
  96.     You supply  both values. The defaults are 66 lines per page
  97.     and 80 columns. You may over-ride these values by using the
  98.     meta commands $PAGESIZE and $LINESIZE in the program. If the
  99.     console is used for output, the values are always set to 24
  100.     lines and 80 columns with an option at the end of each page
  101.     to pause or continue.
  102.  
  103.     You must set your printer to the appropriate lines and columns
  104.     values before running QBX. It does not send any printer codes.
  105.  
  106.     The internal tables contain the labels, symbols, and cross
  107.     reference information. The current limits are 2500 labels and
  108.     symbols, and approximately 16000 cross references (depends
  109.     upon the amount of memory available. There is also a limit
  110.     off 200 fields per statement. A field is a symbol, label,
  111.     delimiter, or operator. These values are summarized at the
  112.     end of program execution.
  113.  
  114.     You may terminate processing by pressing the ESCape key.
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.   Version history
  123.   ---------------
  124.  
  125.     1.01-1.08, 1/17/86, the hack begins
  126.     1.09, 1/19/86
  127.      - fix Error6 in line 3440
  128.      - correct listing of long program lines
  129.      - add missing 30 keywords (oops)
  130.  
  131.     1.10, 1/19/86 - speed up analysis phase
  132.     1.11, 1/22/86 - correction for comments
  133.     1.12,1.13; 1/22/86 - revise symbol table lookup
  134.     1.14, 1/24/86 - implement meta commands
  135.     1.15, 1/27/86 - correct FIELD as labels
  136.     1.16,1.17, 1/28/86 - improve analysis routines
  137.  
  138.     1.18, 2/1/86
  139.      - externalize XREFS table to improve housekeeping time
  140.      - requires LINK QBX+XREF; followed by EXEPATCH to set x1800 max paras
  141.     1.19, 2/3/86
  142.      - optimize xref listing and external xref subroutines
  143.     1.20, 2/4/86
  144.      - add external UPC subroutine
  145.     1.21-1.23, 2/7/86
  146.      - add hash table for symbol look-up
  147.      - use binary search for keyword look-up
  148.     1.24-1.26, 2/8/86
  149.      - correct Error 6 at line 3900
  150.     1.27-1.28, 2/13/86
  151.      - remove UPC due to fouling meta commands
  152.      - clean up headings and titles
  153.  
  154.     1.29, 3/9/86 - correct EXEPATCH problem
  155.     1.30, 3/11/86 - correct Print function
  156.     1.31, 4/02/86 - print after parsing record
  157.     1.32, 4/08.86 - correct label case, correct tabs
  158.     1.33, 4/22/86 - correct page title positioning
  159.     1.34, 6/23/86 - increase maximum FIELDS to 200
  160.  
  161.     2.00, 7/18/86 - add QB 2.00 keywords
  162.  
  163.     2.01, 9/27/86 - correct not finding labels with leading blanks
  164.  
  165.     2.02, 11/12/86
  166.       - Correct problem with $INCLUDE
  167.       - Correct error 52 at 3350 if don't want xref output
  168.       - expand label tables from 2000 to 2500
  169.       - supply documentation
  170.  
  171.     2.03, 11/17/86
  172.       - correct handling of continued lines (using underscore) which
  173.         are followed by comments
  174.       - correct handling of $TITLE; default title is now program name
  175.       - correct handling of lower case meta commands
  176.       - show name(s) of included files during first phase
  177.  
  178.  
  179.  
  180.  
  181.  
  182.   Version history (cont'd)
  183.   ---------------
  184.  
  185.  
  186.     2.05, 11/28/86
  187.       - add command line options for destination, lines per page,
  188.         and columns per line
  189.       - improve detection of label versus symbol references for numbers
  190.       - note assignment to symbols by an asterisk in cross reference
  191.  
  192.     2.06, 12/06/86
  193.       - fix incorrect statment numbers in xref after labels
  194.       - remove duplicate references
  195.  
  196.     2.07, 3/3/87 by David W. Campbell
  197.       - acknowledge missing trailing double quotes
  198.       - don't number blank or null lines
  199.       - don't print page eject or blank line at top of first page
  200.       - correct meta pagesize
  201.       - correct default pagesize
  202.  
  203.     2.07b, 3/4/87 by David W. Campbell
  204.       - add distinction between dimensioned and undimensioned variables
  205.  
  206.     3.00a, 6/21/87
  207.       - added keywords for QB version 3
  208.       - more work needs to be done.
  209.  
  210.  
  211.     4.00a, 4/03/88
  212.       - add QB 4 keywords
  213.  
  214.     4.00b, 4/03/88
  215.       - expand maximum fields to 600
  216.       - expand symbol table to include symbol type
  217.       - expand xref table to include reference type
  218.  
  219.     4.00c, 5/28/88
  220.       - correct Goosen's problem with open (double quote) comments
  221.       - change default filename for xref from .REF to .LST
  222.  
  223.     4.00d-f, 7/15/88
  224.       - increase capacity, allow up to 2500 symbols
  225.       - add cross reference of SUBs and DEF FN routines
  226.       - add /R option to use record (line) instead of statement numbers
  227.       - correct missing numeric labels in label listing
  228.  
  229. |    4.00g, 10/09/88
  230. |      - correct overwrite of output file if /f(filename) is used
  231. |      - correct "ERROR: Include file 'filename' is missing" message
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.   Notes
  243.   -----
  244.  
  245.     Copyright Vernon D. Buerg 1986-88.  All rights reserved.
  246.  
  247.     QBX was written using the Microsoft Quick Basic Compiler,
  248.     Version 3.00, and one assembler subroutine. At least 128K
  249.     of memory is required, but 192K or more is recommended. The
  250.     additional memory is used to increase the limits of the numbers
  251.     of labels, symbols and cross references that QBX can process.
  252.  
  253.  
  254.     QBX is    supplied  for  personal,  private  use. Feel free to
  255.     distribute QBX given these restrictions:
  256.  
  257.       o  the program  shall be supplied in its original,  unmodified
  258.          form, which includes this documentation;
  259.  
  260.       o  no fee is charged;
  261.  
  262.       o  "commmercial" use without a license is prohibited;
  263.  
  264.       o  the program may not be included -    or bundled - with  other
  265.          goods or services.  Exceptions may be granted upon  written
  266.          request only.  This also applies to clubs and distributors.
  267.  
  268.  
  269.     If you find QBX of value, your gift of $15, or any amount, would
  270.     be greatly appreciated.
  271.  
  272.     Please direct your inquiries, complaints, suggestions, etc., to:
  273.  
  274.             Vernon D. Buerg
  275.             139 White Oak Circle
  276.             Petaluma, CA  94952
  277.  
  278.             Data:         (707) 778-8944,  24 hour BBS
  279.                    -or-  (707) 778-8841
  280.             Compuserve:  70007,1212
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.