^C^1BASIC Cross-Reference Utilities
^Cby George Leritte


Computer programs are often a little like Swiss watches.  Where delicate 
timepieces have meshed gears and sensitive springs, programs have hundreds of 
commands and variables working together.  Because of this, programmers, 
whether beginners or experts, face the same problems as watchmakers do; 
monkeying around with one component is likely to throw the whole delicate 
balance off kilter.  "Debugging" (the act of making changes that cause the 
program to run correctly) can be the most challenging -- and frustrating -- 
part of programming.

George Leritte's BASIC Cross-Reference Utilities can make debugging much easier
by showing you how the components of a program are put together.  For example, 
if you suspect one variable has somehow been changed in the program, you can 
run a utility that shows all of the variables and their positions in the 
program.  Another utility cross-references on the basis of line numbers.  Do 
you suspect that a subroutine is causing problems?  Another utility displays a 
flow chart-like listing complete with branchings and their target line numbers.

And, if you haven't guessed already, in addition to debugging chores, you can 
use the Cross-Reference Utilities to explore and understand how other people's 
programs work.


The Utilities
--- ---------
Before you cross-reference a file, remember that these utilities work only 
with tokenized (binary) files created from an interpreter, such as IBM's BASIC 
or BASICA, or Microsoft's GW-BASIC.  They will not work with files in ASCII 
format -- if a file isn't in binary format, the program will tell you.  Of 
course, in order for you to read the cross-referenced listings, they need to 
be in ASCII format.  The first utility you can choose from the menu converts 
the binary form of the chosen program to an ASCII file.

This utility will handle up to 500 variables in a single program.  Due to 
memory considerations, if either a printed ASCII file or a printed line 
reference list is requested, the utility first sends the lists to files, so 
that selecting either printout will automatically select a file output.  

A word of explanation about the format of the listings is in order.  The
variable cross reference is in alphabetical order. Each variable is followed
by the numbers of the lines in which the variable appears.  If the line number
has an asterisk `*' before it then the variable is dimensioned in that
statement.  If the line number has one or more single quotes after it, then
the variable occurs that many more times in that statement.  The line number
cross reference is similar except that there are no dimensioning indicators.

The line listing indicates only program branches and targets of program
branches.  The types of branches are shown in the listing, whether an if..then 
statement, an on..goto or a straight goto or gosub.  Targets of branches are 
indicated by "-" immediately after the line numbers.  All statements with 
"RETURN" in them are included to indicate the end of subroutines. 

There are no BASIC program files on Big Blue Disk.  You must supply your own. 

DISK FILES THIS PROGRAM USES:
^FXREF.EXE
^FBRUN20.EXE
^FRETURN.EXE
