home *** CD-ROM | disk | FTP | other *** search
/ Shareware 1 2 the Maxx / sw_1.zip / sw_1 / GENEFILE / CHART.ZIP / CHART.DOC < prev    next >
Text File  |  1989-08-02  |  9KB  |  188 lines

  1.  
  2.                    CHART
  3.                    -----
  4.  
  5.     "Shareware" fee of $5.00                 Written by Ian Rutherford
  6.     DONATION to GUM.                         Using Turbo C 2.0
  7.                          February 14, 1989
  8.                          Contact: Most Melbourne BBS's
  9.                               or G.U.M.
  10.  
  11.                                              Updated: May 1, 1989
  12.  
  13.     Purpose
  14.     -------
  15.     The purpose of CHART is to print an 11 generation  pedigree  chart  for
  16.     use in genealogical studies.
  17.  
  18.     Requirements
  19.     ------------
  20.     Firstly,  CHART  requires  an  IBM  PC  or  compatible  and  at least 2
  21.     diskettes (since the output file can be upto 340k).  Also  required  is
  22.     an  EPSON  compatible  printer  capable  of printing in subscript mode,
  23.     setting print width to condensed and line spacing to 1/216".  For  easy
  24.     use,  the  ROOTS  III  package  is  desirable  in order to generate the
  25.     required data file, but it's format is  described  below  and  is  very
  26.     simple so other packages could generate the file.
  27.  
  28.     Use
  29.     ---
  30.     Type  CHART  and you will be asked for the data file which contains the
  31.     specially formatted list of people, this entire file is then read  into
  32.     memory  -  a full 11 generations can take some time, especially if read
  33.     from a floppy disk.  Next enter the record number of the  person  whose
  34.     11  generation  pedigree chart is to be printed.  The chart is built in
  35.     memory and you are prompted to  select  Disk  or  Printer  output  -  I
  36.     usually  go  for  Disk  so  I  can  "spool"  the print file and work on
  37.     something else, the Printer option will tie up the PC.  If  you  select
  38.     Disk,  then enter a valid DOS filename for the output, later type PRINT
  39.     <filename> to spool to the printer.
  40.  
  41.     Hints:  Although  CHART  allows you to generate one big file containing
  42.         your entire ROOTS database, this can be very big, and I suppose
  43.         given the limits of ROOTS would actually exceed the  limits  of
  44.         this  program.   I quite easily manage about 1100 records but I
  45.         think the limit is around 3000.  For faster processing  I  turn
  46.         on  the GROUPING option in ROOTS and limit the datafile to only
  47.         those in the tree, this makes reading in the file  much  faster
  48.         and will benefit those without hard disks.
  49.  
  50.         Due to the nature of the print modes used (subscript  does  two
  51.         passes  at  1/216 spacing for each character), printing is VERY
  52.         slow.  At a line spacing of 1/216 inch there are 2376 lines  on
  53.         a page and in condensed subscript mode this adds up to SLOOOW.
  54.         I thoroughly recommend the print to disk and spool option!
  55.  
  56.     Printer
  57.     -------
  58.     Although  this  program  has only been tested on an EPSON FX compatible
  59.     printer (Brother M1509) any  printer  which  supports  subscript  mode,
  60.     condensed  mode  and allows line spacing to be set in 216ths of an inch
  61.     should work.  I have provided a program called SETUP which can be  used
  62.     to  created  a  customized  version  of  SETUP.PRN,  a  file containing
  63.     sequences for the above printer functions.  For the Brother, I have set
  64.     it up as follows:
  65.  
  66.  
  67.     Function        No. of Codes       Sequence
  68.     --------        ------------       --------
  69.     RESET PRINTER        2             27 @
  70.     CONDENSED MODE       1             15
  71.     SUBSCRIPT            3             27 S 1
  72.     1/216 SPACING        3             27 51 1
  73.     10/216 SPACING       3             27 51 10
  74.     CANCEL SUBSCRIPT     2             27 T
  75.  
  76.     Your  version  of this will be based on your printer manual.  If you do
  77.     try to reconfigure make a COPY of SETUP.PRN first!
  78.  
  79.     Generating the List
  80.     -------------------
  81.     Before you begin, make sure the Roots Install program has set
  82.     the Disk/Null report width to 132 (wide).
  83.  
  84.     Start Roots III and select - Printed Reports
  85.                                - Individual List
  86.                                - tab to the Destination field and
  87.                                  press F6 until a blank appears then
  88.                                  enter the output filename
  89.                                - cursor to the following fields and select
  90.                                  them for reporting:
  91.  
  92.                                  Record Num.
  93.                                  Father    - press enter then choose Record No.
  94.                                  Mother    -  "      "    "      "     "    "
  95.                                  Name      - choose Full name
  96.                                  Birth/Chr - choose date 4, place 24
  97.                                  Died/Buried-choose date 4, place 6
  98.                                  Soundex
  99.                                  DONE
  100.  
  101.                                  Begin
  102.  
  103.     Roots will produce a disk file containing the above information for all
  104.     persons  in your database.  The grouping option can be set to eliminate
  105.     unwanted records.
  106.  
  107.     Note: Not all of the above data is actually reproduced in  the  current
  108.     version  of CHART, however the layout of the file is critical so DO NOT
  109.     leave out or change anything!
  110.  
  111.     There  is  a  Public  Domain program called SLASHBAR, which came out in
  112.     Australian Personal Computer awhile back.  It allows  a  popup  'Lotus'
  113.     like  menu  and  can emulate key stokes - a bit like the Keyboard Macro
  114.     programs such as SUPERKEY and NEWKEY.  I have created a 'script'  using
  115.     SLASHBAR  which I popup under ROOTS to enter the keystrokes required to
  116.     generate the datafile.  I copy of the program and my script is on  this
  117.     disk - read the .DOC file for it's use.
  118.  
  119.  
  120.     General Comments
  121.     ----------------
  122.     The  key  to the whole printing process is the line spacing, without it
  123.     the printout would be over 31 pages.  If my idea  of  compressed  is  a
  124.     little  too  much for you, or if you want to make it even smaller, then
  125.     you can change the 1/216 and 10/216 codes in the Setup file.
  126.  
  127.     To spread things out a little more (vertically),  the  code  for  1/216
  128.     could  be replaced by 2/216.  The way the printing works is that once a
  129.     line containing 6 generations of more is printed the printer goes  from
  130.     "1/216"  to  "10/216"  spacing  -  10/216  is  about  the height of the
  131.     subscript character.  When a line with less than 6  generations  prints
  132.     it  goes  back  to  1/216.   Either of these codes could be replaced to
  133.     alter the vertical spacing.
  134.  
  135.     On normal 80 column paper you may lose a little of generation 11 if you
  136.     have  long  names and or birth places.  I avoid this by printing on 132
  137.     column paper.  This may seem annoying but the  intention  is  to  do  a
  138.     create  a  version  which  will  do  15 or 16 generations on A3 so I've
  139.     accepted the problem.  I hope your printer is 132 columns or your names
  140.     are short!
  141.  
  142.     In  a  similar vein, if you do have a 132 column printer and would like
  143.     bigger print, then replace the condensed  mode  code  with  your  reset
  144.     condensed more sequence and the result will be full width subscript - a
  145.     little easier to read.
  146.  
  147.     Copyrite etc.
  148.     -------------
  149.     CHART  is available for a nominal fee of $5.00 to be payed to Victorian
  150.     GUM for the purposes of furthering genealogical computing.  If you like
  151.     and use CHART send them a donation.
  152.  
  153.  
  154.  
  155.  
  156.     Technical Details
  157.     -----------------
  158.     For those interested in how things work, here's a brief outline.
  159.  
  160.     For  portablility,  the  printer sequences are kept in an external file
  161.     call SETUP.PRN which can be customized by  SETUP  and  is  read  in  by
  162.     CHART when it starts up.
  163.  
  164.     The  datafile  is  read  into  memory and a little checking removes the
  165.     blanks lines, headings and other crud which are not needed.   In  order
  166.     to  store  such a potentially large amount of data (2047 records at 131
  167.     bytes = 262kb) I keep each record in a structure and declare  an  array
  168.     of  2048  pointers,  one  for  each record.  This allocates data on the
  169.     HEAP rather than the data segment which would limit you to 64kb.
  170.  
  171.     Once the data is in memory a fairly simple  recursive  function  traces
  172.     out  all  the  branches  from  the  starting  record  and inserts their
  173.     respective record  numbers  into  an  array  representing  the  printed
  174.     page.   A  code  for  the  vertical line is inserted into the positions
  175.     between the parents.
  176.  
  177.     Printing reads through this preformed page and  substitutes  the  names
  178.     and  birth details for the record number and prints them.  Probably the
  179.     really niftly part of the printing is that the program toggles the line
  180.     spacing between 1/216 for generations 1 - 6 and 10/216 for  generations
  181.     7  -  11.   This  has  the effect of compressing the overall length and
  182.     bringing the parents in the early generations closer  together,  whilst
  183.     spacing  out  the  later  ones.   Incidently,  to print this chart with
  184.     normal line spacing leaving  one  line  between  parents  in  the  11th
  185.     generation,  would  result  in  2048  lines or over 31 pages.  My chart
  186.     prints in just over 2 pages (I think Granny  is  going  to  make  tough
  187.     going of reading it though) !
  188.