Softdisk Family Tree

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Family Tree 1)
(Family Tree 1)
Line 53: Line 53:
  
 
(Same-sex marrages were unheard-of in those days.)
 
(Same-sex marrages were unheard-of in those days.)
 +
 +
The .FIX (index) file contained two numbers, stored in the internal format of Turbo/Borland Pascal integers: the first had the number of persons in the file, and the second had the number of marriages.
 +
 +
The .FCM (comments) had a series of comment lines (up to 80 characters) stored in a text file; I believe they were stored in the same order as the person records they were associated with so they could be matched up, since the pointer stored in the structure wouldn't be portable given that it's associated with a particular memory location. I think there was only one comment line per person, and if there were no comments the pointer was NIL and no comment line was saved in the comments file (this was created in an era when memory and disk space was rather scarce).
  
 
== Family Tree 2 (Enhanced Family Tree) ==
 
== Family Tree 2 (Enhanced Family Tree) ==

Revision as of 08:17, 9 November 2012

File Formats > Electronic File Formats > Genealogical data > Softdisk Family Tree

The Family Tree program from Softdisk Publishing (some versions were called "Enhanced Family Tree") appeared in three major versions, and a number of minor revisions. Some were published on issues of the diskmagazine Big Blue Disk / On Disk Monthly / Softdisk PC (for PC/MS-DOS), while other versions were released as standalone programs in various places such as an online download store. Later versions could import and export GEDCOM files, but the native data storage was in a binary format specific to the program. Like the program itself, the file format had three major versions (later program versions could import the data formats of the earlier ones).

Contents

Family Tree 1

A "file" was actually stored in four files, with extensions .FPD, .FMD, .FIX, and .FCM, for person data, marriage data, index data, and comment data respectively. The filename before the extension was the same for all the files connected to a particular data set.

The .FPD (person) file was a set of binary records, stored directly from the Turbo/Borland Pascal structure:

   PersonData = RECORD
                   sex: SexType;
                   name, BirthPlace, DeathPlace: NameLine;
                   BirthDate, DeathDate: date;
                   mom, dad: integer;
                   marriages: MarriageList;
                   kids: ChildList;
                   comments: ^TextLine;
                END;

with these data type definitions:

   SexType = (male, female, neuter, hermaphrodite);
   TextLine = STRING[80];
   NameLine = STRING[30];
   Date = RECORD
             status : StatusType;
             month  : 0..12;
             day    : 0..31;
             year   : INTEGER
          END;
   StatusType = (NullDate, Inapplicable, Unknown, Approximate, Known);

Alas, the "neuter" and "hermaphrodite" types were dropped from later versions. Strings are of the Pascal variety, with the first byte indicating the length, followed by the bytes of the string themselves (no character encoding specified, but presumed to be in the MS-DOS code page in use by the program's user). Dates are presumably in the Gregorian calendar, with no way to specify anything else.

The .FMD (marriage) file was a binary dump of the structure:

   MarriageData = RECORD
                        husband, wife: integer;
                        MarriageDate, EndingDate: date
                  END;

(Same-sex marrages were unheard-of in those days.)

The .FIX (index) file contained two numbers, stored in the internal format of Turbo/Borland Pascal integers: the first had the number of persons in the file, and the second had the number of marriages.

The .FCM (comments) had a series of comment lines (up to 80 characters) stored in a text file; I believe they were stored in the same order as the person records they were associated with so they could be matched up, since the pointer stored in the structure wouldn't be portable given that it's associated with a particular memory location. I think there was only one comment line per person, and if there were no comments the pointer was NIL and no comment line was saved in the comments file (this was created in an era when memory and disk space was rather scarce).

Family Tree 2 (Enhanced Family Tree)

A "file" was actually stored in four files, with extensions .FTD, .FTM, .FTI, and .FTP, for person data, marriage data, index data, and place name data respectively.

Family Tree 3

A "file" was actually stored in two files, with extensions .F3D and .F3M, for person and marriage data respectively.

Sample data

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox