           Ŀ
           
           Ŀ
                      T       P       X             
           Ĵ
                         Version 1.2                
                                                    
             User note's for TPX, a Turbo Pascal    
             cross reference.                       
                                                    
                                                    
           
             Copyright 1987 by Darren K. Henderson
           Ŀ
           


I have tried quite a few public domain cross reference generators 
for Turbo Pascal. Most of them had some nice features but a good 
many of them were also unreliable or out-dated. The most common 
problem I had was a limitation on the size and complexity of the 
source code. After a certain point they could no longer generate 
a cross reference.

TPX makes extensive use of dynamic memory and data structures; it 
is capable of handling very large programs. It produces a 
compressed listing consisting of the line number, level number, 
and source code reference line. This program was written for use 
with an Okidata 92 Plug 'n Play - it may not be compatible with 
some other printers. 


                         -METHOD-

Each line of the source file is read and then parsed. When a 
reference word is found, (a word not reserved by Turbo Pascal), 
it is inserted in a binary tree. Each node of the tree contains a 
reference word and a pointer to a linked list. The linked list 
contains a node for each line on which the referenced word is 
found. When the file has been completely read and parsed an in-order
transversal of the binary tree is performed  and the cross 
reference is listed. 


                          -USAGE-

The command structure is as follows:

                   TPX file-name [L|X]

                          or

                   TPX ?

                   Where:

                    file-name = source file

                            X = produce only the cross reference

                            L = produce only a source listing

                            ? = display an information screen

The program also checks for the following command strings (these 
must begin in column 1):

                            {%P} = force a new page

                            {%H} = stop processing until the
                                   {%H} is found
                                  
                    {%C "string"} = set comment string. This 
                                   string is printed in the 
                                   header following the 
                                   file name. The string is
                                   specified between the 
                                   quotation marks.


                          -License-

You are free to distribute this program and documentation as a 
whole. You may not sell this package or any portion there in for 
profit. No guarantees are made as to the suitability, utility, or 
operation of this software. I will not be held responsible for 
any damages caused by the use of this software. 


If you find this program useful please drop me a post card, 
(something with a picture on it people - regular postal cards are 
so boring!), it would be appreciated and would indicate to me whether 
further development of this program is warranted. 


                     Darren K. Henderson
                     PO Box 207
                     Madison, Maine 04950


