
The following programs draw a series of nodes with connecting ports
between them. It was written for the Apollo DN300. The graphics is
specific to that, however the tidy_tree() algorithm is general.
Tidy_tree() is expanded from the following 2 papers which only deal
with binary trees. Mine works with multiple parents and children, but
can only have one node at the top.

Tidy Drawing of Trees by C. Wetherell & A. Shannon IEEE Vol. SE-5 #5
    Sept 79 pp. 514-520
Tidier Drawings of Trees by E. Reingold & J. Tilford IEEE Vol. SE-7 #2
    Mar '81 pp. 223-228

I tried to separate out all the Apollo routines into "ifdef APOLLO", 
but I haven't run it on anything else yet, so I'm not sure how well that
goes. I will be getting this up on the Sun eventually. In 'trlib.c', the
library routines, there are many Apollo calls, which I haven't put into
ifdef's. However to run elsewhere, you'll probably need to rewrite these
anyway.

There are 3 input files: 
   acglimits.data has window sizes, labels, spacing of nodes & the name
      of the files containing node and port data
   acgnode.data in this eg. has the node data
   acgport.data in this eg. has the port data

I hope the code is readable & understandable. It works as is. 
To run type: tr
On the Apollo you can scroll using the regular boxed arrow keys & type q to 
quit. If you make any enhancements, please post them or let me know.

acgnode.data format:
   node# . 0 . children node#'s . 0 . name of node . level . nth on that lvl . total # on that lvl . BOX or CIRCLE .

acgport.data format:
   port name . from node# . to node# .

