home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware 1 2 the Maxx
/
sw_1.zip
/
sw_1
/
GENEFILE
/
CHART.ZIP
/
CHART.DOC
< prev
next >
Wrap
Text File
|
1989-08-02
|
9KB
|
188 lines
CHART
-----
"Shareware" fee of $5.00 Written by Ian Rutherford
DONATION to GUM. Using Turbo C 2.0
February 14, 1989
Contact: Most Melbourne BBS's
or G.U.M.
Updated: May 1, 1989
Purpose
-------
The purpose of CHART is to print an 11 generation pedigree chart for
use in genealogical studies.
Requirements
------------
Firstly, CHART requires an IBM PC or compatible and at least 2
diskettes (since the output file can be upto 340k). Also required is
an EPSON compatible printer capable of printing in subscript mode,
setting print width to condensed and line spacing to 1/216". For easy
use, the ROOTS III package is desirable in order to generate the
required data file, but it's format is described below and is very
simple so other packages could generate the file.
Use
---
Type CHART and you will be asked for the data file which contains the
specially formatted list of people, this entire file is then read into
memory - a full 11 generations can take some time, especially if read
from a floppy disk. Next enter the record number of the person whose
11 generation pedigree chart is to be printed. The chart is built in
memory and you are prompted to select Disk or Printer output - I
usually go for Disk so I can "spool" the print file and work on
something else, the Printer option will tie up the PC. If you select
Disk, then enter a valid DOS filename for the output, later type PRINT
<filename> to spool to the printer.
Hints: Although CHART allows you to generate one big file containing
your entire ROOTS database, this can be very big, and I suppose
given the limits of ROOTS would actually exceed the limits of
this program. I quite easily manage about 1100 records but I
think the limit is around 3000. For faster processing I turn
on the GROUPING option in ROOTS and limit the datafile to only
those in the tree, this makes reading in the file much faster
and will benefit those without hard disks.
Due to the nature of the print modes used (subscript does two
passes at 1/216 spacing for each character), printing is VERY
slow. At a line spacing of 1/216 inch there are 2376 lines on
a page and in condensed subscript mode this adds up to SLOOOW.
I thoroughly recommend the print to disk and spool option!
Printer
-------
Although this program has only been tested on an EPSON FX compatible
printer (Brother M1509) any printer which supports subscript mode,
condensed mode and allows line spacing to be set in 216ths of an inch
should work. I have provided a program called SETUP which can be used
to created a customized version of SETUP.PRN, a file containing
sequences for the above printer functions. For the Brother, I have set
it up as follows:
Function No. of Codes Sequence
-------- ------------ --------
RESET PRINTER 2 27 @
CONDENSED MODE 1 15
SUBSCRIPT 3 27 S 1
1/216 SPACING 3 27 51 1
10/216 SPACING 3 27 51 10
CANCEL SUBSCRIPT 2 27 T
Your version of this will be based on your printer manual. If you do
try to reconfigure make a COPY of SETUP.PRN first!
Generating the List
-------------------
Before you begin, make sure the Roots Install program has set
the Disk/Null report width to 132 (wide).
Start Roots III and select - Printed Reports
- Individual List
- tab to the Destination field and
press F6 until a blank appears then
enter the output filename
- cursor to the following fields and select
them for reporting:
Record Num.
Father - press enter then choose Record No.
Mother - " " " " " "
Name - choose Full name
Birth/Chr - choose date 4, place 24
Died/Buried-choose date 4, place 6
Soundex
DONE
Begin
Roots will produce a disk file containing the above information for all
persons in your database. The grouping option can be set to eliminate
unwanted records.
Note: Not all of the above data is actually reproduced in the current
version of CHART, however the layout of the file is critical so DO NOT
leave out or change anything!
There is a Public Domain program called SLASHBAR, which came out in
Australian Personal Computer awhile back. It allows a popup 'Lotus'
like menu and can emulate key stokes - a bit like the Keyboard Macro
programs such as SUPERKEY and NEWKEY. I have created a 'script' using
SLASHBAR which I popup under ROOTS to enter the keystrokes required to
generate the datafile. I copy of the program and my script is on this
disk - read the .DOC file for it's use.
General Comments
----------------
The key to the whole printing process is the line spacing, without it
the printout would be over 31 pages. If my idea of compressed is a
little too much for you, or if you want to make it even smaller, then
you can change the 1/216 and 10/216 codes in the Setup file.
To spread things out a little more (vertically), the code for 1/216
could be replaced by 2/216. The way the printing works is that once a
line containing 6 generations of more is printed the printer goes from
"1/216" to "10/216" spacing - 10/216 is about the height of the
subscript character. When a line with less than 6 generations prints
it goes back to 1/216. Either of these codes could be replaced to
alter the vertical spacing.
On normal 80 column paper you may lose a little of generation 11 if you
have long names and or birth places. I avoid this by printing on 132
column paper. This may seem annoying but the intention is to do a
create a version which will do 15 or 16 generations on A3 so I've
accepted the problem. I hope your printer is 132 columns or your names
are short!
In a similar vein, if you do have a 132 column printer and would like
bigger print, then replace the condensed mode code with your reset
condensed more sequence and the result will be full width subscript - a
little easier to read.
Copyrite etc.
-------------
CHART is available for a nominal fee of $5.00 to be payed to Victorian
GUM for the purposes of furthering genealogical computing. If you like
and use CHART send them a donation.
Technical Details
-----------------
For those interested in how things work, here's a brief outline.
For portablility, the printer sequences are kept in an external file
call SETUP.PRN which can be customized by SETUP and is read in by
CHART when it starts up.
The datafile is read into memory and a little checking removes the
blanks lines, headings and other crud which are not needed. In order
to store such a potentially large amount of data (2047 records at 131
bytes = 262kb) I keep each record in a structure and declare an array
of 2048 pointers, one for each record. This allocates data on the
HEAP rather than the data segment which would limit you to 64kb.
Once the data is in memory a fairly simple recursive function traces
out all the branches from the starting record and inserts their
respective record numbers into an array representing the printed
page. A code for the vertical line is inserted into the positions
between the parents.
Printing reads through this preformed page and substitutes the names
and birth details for the record number and prints them. Probably the
really niftly part of the printing is that the program toggles the line
spacing between 1/216 for generations 1 - 6 and 10/216 for generations
7 - 11. This has the effect of compressing the overall length and
bringing the parents in the early generations closer together, whilst
spacing out the later ones. Incidently, to print this chart with
normal line spacing leaving one line between parents in the 11th
generation, would result in 2048 lines or over 31 pages. My chart
prints in just over 2 pages (I think Granny is going to make tough
going of reading it though) !