In order to read the BK version 5 data files, you will need to purchase a
program called Btrieve (developed by Novell.)  Btrieve for DOS costs about 
$479 from a company called Programmer's Paradise.  Phone (800) 445-7899.  
Btrieve handles the database management and compresses the data files.  You do 
not need to buy Btrieve to use Brother's Keeper, you only need to buy it if 
you want to write your own programs.  The other option is to convert to a 
Gedcom file or to set the output to a disk file (press F9 at menu) and output 
a custom report (which will create a fixed length ASCII file.)  It will take 
a while to get familiar with programming with Btrieve calls, but people who 
program for the Novell networks may have some experience with it.  The new
version 5.2 of Brother's Keeper has the ability to create a comma delimited
file using custom reports.


        BKPERSON.DT5     compressed with BTRIEVE
  
   4 AS FCODENUM              index 1 
  10 AS FALPHA                index 2
  40 AS FANAME                index 3
  40 AS FANAME2
  15 AS FSMALL                index 4
   4 AS FLOC(1)-FLOC(5)                     20    ' pointers to location file
   4 AS FSOURCE(1)-FSOURCE(6)               24    ' pointers to source file
  20 AS FTAG(1)-FTAG(6)       18 page  1 quality   1 extra    120
  15 AS FBORN
  15 AS FBAPT
  15 AS FDIED
  15 AS FBURR
  15 AS FXDATE                                    348 so far
  25 AS FOCC
   1 AS FSEX
   4 AS FPARENT
   4 AS FS(1)-FS(8)                         32     ' pointers to spouses
  78 AS FMESS(1)-FMESS(7)                  546     ' message lines
  11 AS FDATECHANGE
   1 AS FOTHERX            not used
   4 AS XDS1               not used
   4 AS XDS2               not used
   4 AS FADDRESS
   4 AS FPARENT2
   1 AS FPAR1IS
   1 AS FPAR2IS
   5 AS JRS3               not used
   1 AS ASTER


   marriage file   BKMARR.DT5

   4 AS FMARRCODE         ' marriage record number
   4 AS FHUSCODE
   4 AS FWIFECODE
  15 AS FMARR
  15 AS FODATE
   4 AS FMLOC(1)          ' pointers to locations
   4 AS FMLOC(2)
  20 AS FMTAG(1)
  20 AS FMTAG(2)
  20 AS FMTAG(3)
   4 AS FMSOURCE(1)       ' pointers to source
   4 AS FMSOURCE(2)
   4 AS FMSOURCE(3)
   1 AS FWEREMARRIED
   1 AS FDIVORCE
   4 AS FDIVORCEYEAR
   4 AS FWSL             ' not used
   1 AS FMXX             ' not used
  96 AS FK(1)-FK(24)  4 each          ' pointers to children
   8 AS FMDATECHANGE
   1 AS ASTER2


 ' BKLOCATE.DT5
 FIELD #4, 4 AS FLRECORD, 40 AS FLPLACE, 2 AS FLEXTRA, 1 AS FLASTER
 '
 ' BKSOURCE.DT5
 FIELD #5, 4 AS FSRECORD, 234 AS FSRCE, 2 AS FSEXTRA, 1 AS FSASTER
 '
 ' BKMAIL.DT5
 FIELD #6, 4 AS FMAILRECORD, 10 AS FMAILZIP, 40 AS FMAIL(1), 40 AS FMAIL(2), 40 AS FMAIL(3), 40 AS FMAIL(4), 40 AS FMAIL(5), 40 AS FMAIL(6), 10 AS FMAILEXTRA, 1 AS FMAILASTER

    
    
    '  to convert a 4 character pointer or record number to a number
17920
    T4 = MID$(BCODE, 4, 1) + MID$(BCODE, 3, 1) + MID$(BCODE, 2, 1) + MID$(BCODE, 1, 1)
    NCODE& = CVL(T4)
    RETURN

    '  to convert a number to a 4 character pointer or record number
17960
    T4 = MKL$(NCODE&)
    BCODE = MID$(T4, 4, 1) + MID$(T4, 3, 1) + MID$(T4, 2, 1) + MID$(T4, 1, 1)
    RETURN



