1 ON ERROR GOTO 15100
2 'This program is adapted from Diane Dieterle's book
3 'Basic Programming for Genealogists by David Haldeman
4 'of the Cincinnati Osborne Group. It is designed to 
5 'print on the C. Itoh or NEC 8510 dot matrix printer
6 '  Adaptations may be made to print on MX-80 or other 
7 'printers, but they may not be able to print exactly
8 'on the Everton Publishers Fanily Group Sheet which is
9 'available through the Genealogical Helper.
10 '---FAMILY GROUP SHEET PRINTING-----
20 '-------GENEALOGY PROGRAM-----------
25 DIM A$(49)
30 PRINT CHR$(26)
40 FOR G=1 TO 52
50	PRINT CHR$(127);
60 NEXT G
65 PRINT
70 PRINT TAB(0)CHR$(127);TAB(18)"GENEALOGY  PROGRAM";TAB(52)CHR$(127)
80 PRINT TAB(0)CHR$(127);TAB(18)"FAMILY GROUP SHEET";TAB(52)CHR$(127)
90 PRINT TAB(0)CHR$(127);TAB(22)"PRINTER";TAB(52)CHR$(127)
100 FOR G=1 TO 52:PRINT CHR$(127);:NEXT G:
110 PRINT
120 PRINT
130 PRINT
1000 PRINT"PRINTING A FAMILY GROUP SHEET"
1010 PRINT
1020 PRINT
1030 PRINT
1040 PRINT"THIS PROGRAM WILL ASK FOR THE HUSBAND,"
1050 PRINT"WIFE AND CHILDREN ON A FAMILY GROUP SHEET,"
1060 PRINT"AND WILL THEN PRINT IT OUT FOR YOU."
1070 PRINT
1080 PRINT"IT WILL ALLOW YOU TO PRINT SEVERAL COPIES"
1090 PRINT"OF THE SAME FAMILY GROUP SHEET OR YOU MAY"
1100 PRINT"MAKE CHANGES IN THE ORIGINAL AS NEEDED."
1110 PRINT
1120 INPUT"PRESS RETURN TO CONTINUE";CR
1130 PRINT CHR$(26)
1140 PRINT"DO YOU WISH TO:"
1150 PRINT
1160 PRINT"   Write a new family group sheet.............1
1170 PRINT"   Update an old family group sheet...........2
1180 PRINT"   See a list of all families on this disk....3
1190 PRINT"   Print a file...............................4"
1195 PRINT
1200 INPUT"Enter a number a press RETURN.....";N
1210 ON N GOTO 2000,17000,20000,3015
2000 PRINT CHR$(26)
2010 PRINT"ENTER THE INFORMATION FOR THE"
2020 PRINT"FAMILY GROUP SHEET"
2030 PRINT:PRINT"PLEASE USE NO COMMAS OR SEMICOLONS WHEN"
2031 PRINT"ENTERING INFORMATION - THANKS!":PRINT
2040 INPUT"HUSBAND'S LAST NAME ";A$(0)
2045 INPUT"HUSBAND'S 1ST AND MIDDLE NAMES ";A$(1)
2050 PRINT
2060 PRINT"ENTER ALL DATES LIKE THIS:"
2070 PRINT
2080 PRINT"DAY MONTH YEAR"
2090 PRINT"26  JAN   1945"
2100 PRINT"             DA MON YEAR"
2110 INPUT"BIRTH DATE ";A$(2)
2120 INPUT"BIRTH PLACE ";A$(3)
2130 INPUT"MARRIAGE DATE ";A$(4)
2140 INPUT"MARRIAGE PLACE ";A$(5)
2150 INPUT"DEATH DATE ";A$(6)
2160 INPUT"DEATH PLACE ";A$(7)
2170 PRINT"BURIAL PLACE (LIST THE CEMETERY,"
2180 INPUT"THEN CITY,COUNTY,STATE) ";A$(8)
2185 INPUT"PLACES OF RESIDENCE (BE BRIEF)";A$(9)
2186 INPUT"PRINCIPAL OCCUPATION";A$(10)
2187 INPUT"CHURCH AFFILIATION";A$(11)
2188 INPUT"MILITARY RECORD (BRANCH)";A$(12)
2190 INPUT"NAME OF FATHER ";A$(14)
2200 INPUT"NAME OF MOTHER ";A$(15)
2202 IF LEN(A$(15))>17 THEN 2203 ELSE 2210
2203 PRINT CHR$(7):PRINT"NAME TOO LONG-SHORTEN TO 17 CHARACTERS OR LESS"
2204 PRINT:GOTO 2200
2210 INPUT"OTHER WIVES (DATE OF MARRIAGE,NAME) ";A$(13)
2220 PRINT"
2230 INPUT "WIFE'S LAST NAME (MAIDEN)";A$(17)
2235 INPUT "WIFE'S 1ST AND MIDDLE NAMES ";A$(18)
2240 INPUT "BIRTH DATE ";A$(19)
2250 INPUT "BIRTH PLACE ";A$(20)
2260 INPUT "DEATH DATE ";A$(21)
2270 INPUT "DEATH PLACE ";A$(22)
2280 PRINT "BURIAL PLACE (CEMETERY, THEN CITY,"      
2290 INPUT "COUNTY,STATE) ";A$(23)
2295 INPUT"PLACES OF RESIDENCE (BE BRIEF)";A$(24)
2296 INPUT"OCCUPATION IF OTHER THAN HOUSEWIFE";A$(25)
2297 INPUT"CHURCH AFFILIATION";A$(26)
2300 INPUT "FATHER'S NAME ";A$(28)
2310 INPUT "MOTHER'S NAME ";A$(29)
2312 IF LEN(A$(29))>18 THEN 2313 ELSE 2320
2313 PRINT CHR$(7):PRINT"NAME TOO LONG-SHORTEN TO 18 CHARACTERS OR LESS"
2314 PRINT:GOTO 2310
2320 INPUT "OTHER HUSBANDS(DATE OF MARRIAGE,NAME) ";A$(27)
2330 PRINT
2340 INPUT "HOW MANY CHILDREN";T
2350 FOR J=1 TO T
2360	INPUT "FULL NAME OF CHILD ";C$(J)
2370	INPUT "SEX ";D$(J)
2380	INPUT "BIRTH DATE ";E$(J)
2390	INPUT "BIRTH PLACE ";F$(J)
2400	INPUT "MARRIAGE DATE ";G$(J)
2410	INPUT "MARRIAGE PLACE ";H$(J)
2420	INPUT "NAME OF SPOUSE ";I$(J)
2430	INPUT "DEATH DATE ";J$(J)
2440	INPUT "DEATH PLACE ";K$(J)
2445	INPUT "BURIAL PLACE ";L$(J)
2450 PRINT:NEXT J
2460 PRINT
2470 PRINT
2475 PRINT"FOR THE FOLLOWING ENTRIES,"
2480 PRINT"PLEASE LIMIT LINE LENGTH TO 33 CHARACTERS"
2481 PRINT
2489 PRINT"                                1         2         3  3"
2490 PRINT"                       123456789012345678901234567890123"
2500 PRINT
2505 PRINT
2506 PRINT"TYPE END WHEN FINISHED"
2520 FOR X=30 TO 45
2530 INPUT"SOURCE OF INFORMATION";A$(X)
2540 IF A$(X)="END" GOTO 2551
2550 NEXT X
2551 PRINT "COMPILER'S NAME WILL BE LISTED:"
2552 PRINT:A$(46)="DAVID J. HALDEMAN":PRINT A$(46)
2553 A$(47)="6404 COFFEY STREET":PRINT A$(47)
2554 A$(48)="CINCINNATI OHIO 45230":PRINT A$(48)
2555 PRINT:INPUT"PRESS RETURN IF OK OR NO IF YOU WANT TO CHANGE...";CR$
2556 IF CR$="NO" GOTO 2560 ELSE 2600
2560 INPUT"YOUR NAME";A$(46)
2570 INPUT"ADDRESS (STREET - LESS THAN 25 CHARACTERS)";A$(47)
2580 INPUT"CITY STATE ZIP";A$(48)
2590 INPUT"TODAY'S DATE";DAT$
2600 GOSUB 10000  '---CREATE FILE FOR THIS SHEET-----
2610 PRINT
2620 PRINT"FILE SUCESSFULLY RECORDED"
2630 PRINT
3000 PRINT"DO YOU WISH TO:"
3002 PRINT
3004 PRINT"   Print this family group sheet........1"
3006 PRINT"   Return to menu.......................2"
3008 PRINT"   Print another family group sheet.....3"
3009 PRINT
3010 INPUT"Enter number and press RETURN...";NUM
3012 ON NUM GOTO 3020,1130,3015
3015 GOSUB 15000
3020 PRINT"ADJUST PRINTER TO TOP OF THE FORM"
3030 INPUT "PRESS ENTER TO CONTINUE...";CR
3040 PRINT CHR$(26)
3050 PRINT"PRINTING FAMILY GROUP SHEET FOR........"
3060 PRINT
3070 PRINT TAB(15)A$(1)+" "+A$(0)
3080 PRINT TAB(22)"AND"
3090 PRINT TAB(15)A$(18)+" "+A$(17)
3095 PRINT
3100 LPRINT CHR$(27);"Q"
3110 LPRINT CHR$(27);"r"
3120 LPRINT:LPRINT
3130 LPRINT CHR$(27);"f"
3150 FOR X=30 TO 45
3160	IF A$(X)="END" THEN 3180
3165	LPRINT TAB(10)A$(X)
3170 NEXT X
3180 LPRINT CHR$(27);"r"
3190 FOR L=1 TO X-30
3200  	LPRINT
3210 NEXT L
3220 LPRINT CHR$(27);"N"
3230 LPRINT TAB(49)A$(0);TAB(LEN(A$(0))+50);","+A$(1)
3240 LPRINT CHR$(27);"f":LPRINT
3250 LPRINT CHR$(27);"Q"
3260 LPRINT TAB(53)A$(2);TAB(71)A$(3)
3270 LPRINT
3280 LPRINT TAB(53)A$(4);TAB(71)A$(5)
3290 LPRINT TAB(53)A$(6);TAB(71)A$(7)
3300 LPRINT TAB(71)A$(8)
3310 LPRINT TAB(66)A$(9)
3320 LPRINT TAB(56)A$(10);TAB(91)A$(11);TAB(121)A$(12)
3330 LPRINT TAB(71)A$(13)
3340 LPRINT TAB(56)A$(14);TAB(110)A$(15)
3360 LPRINT CHR$(27);"N"
3370 LPRINT TAB(53)A$(18);TAB(LEN(A$(18))+54);","+A$(17)
3380 LPRINT CHR$(27);"Q"
3400 LPRINT TAB(53)A$(19);TAB(71)A$(20)
3410 LPRINT 
3420 LPRINT TAB(53)A$(21);TAB(71)A$(22)
3430 LPRINT TAB(71)A$(23)
3440 LPRINT TAB(20)A$(46);TAB(66)A$(24)
3450 LPRINT TAB(19)A$(47);TAB(78)A$(25);TAB(111)A$(26)
3460 LPRINT TAB(22)A$(48);TAB(73)A$(27)
3470 LPRINT TAB(17)DAT$;TAB(57)A$(28);
3480 LPRINT TAB(111)A$(29)
3500 LPRINT CHR$(27);"T12":LPRINT CHR$(27);"T24"
3510 FOR J=1 TO T
3520	LPRINT TAB(12)C$(J);TAB(53)E$(J);TAB(71)F$(J)
3530	LPRINT TAB(6)D$(J);TAB(53)G$(J);TAB(71)H$(J) 
3540	LPRINT TAB(53)J$(J);TAB(71)K$(J)
3550	LPRINT TAB(12)I$(J);TAB(71)L$(J)
3560 NEXT J
3570 PRINT"FAMILY GROUP SHEET NOW PRINTED"
3580 GOTO 1110
10000 PRINT:'-------CREATE FILE IN FOR THIS SHEET---------
10001 PRINT"THE NAME OF A FILE SHOULD CONTAIN UP TO 8 LETTERS"
10002 PRINT"FOLLOWED BY A PERIOD AND UP TO 3 MORE LETTERS FOR"
10003 PRINT"FIRST INITIALS. A SUGGESTED FORMAT WOULD BE"
10004 PRINT
10005 PRINT"       IF NAME IS WARREN G. HARDING"
10006 PRINT"                  ENTER
10007 PRINT"                HARDING.WG
10008 PRINT:PRINT:INPUT"FILE NAME YOU WISH";F$
10009 INPUT"FILE NUMBER (UP TO 15)";F:PRINT
10010 OPEN "O",F,F$
10020 FOR X=0 TO 49
10030	PRINT #F,A$(X)
10040 NEXT X
10050 PRINT #F,T;",";DAT$
10110 FOR J=1 TO T
10120	PRINT #F,C$(J);",";D$(J);",";E$(J);",";F$(J);",";G$(J);",";H$(J);",";I$(J);",";J$(J);",";K$(J);",";L$(J)
10130 NEXT J
10175 CLOSE F
10180 RETURN
10190 '-----------------------------------------------
10199 '----GET INFO FROM FILE SPECIFIED AT 15000------
11000 '
11010 FOR X=0 TO 49
11020	INPUT #F,A$(X)
11030 NEXT X
11040 INPUT #F,T,DAT$
11100 FOR J=1 TO T
11110	INPUT #F,C$(J),D$(J),E$(J),F$(J),G$(J),H$(J),I$(J),J$(J),K$(J),L$(J)
11120 NEXT J
11180 CLOSE F
11190 RETURN
15000 '-----ROUTINE TO RETRIEVE A CERTAIN FILE NAME-----
15010 INPUT"NAME OF FILE";F$
15030 INPUT "FILE NUMBER";F
15040 OPEN "I",F,F$
15050 GOSUB 11000
15060 RETURN
15099 '--------ERROR TRAPS---------------
15100 IF ERR=53 AND ERL=15040 THEN 15105 ELSE 15150
15105 PRINT"NO FILE BY THAT NAME ON THIS DISC."
15110 PRINT"CHECK INDEX OR OTHER DISCS..."
15120 INPUT"PRESS 1 TO RE-ENTER OR 2 TO RETURN TO MENU";CR
15130 ON CR GOTO 15000,1130
15140 STOP
15150 IF ERR=1 AND ERL=17560 THEN 17460 ELSE 15160
15160 PRINT"ERROR- CLOSING FILES AND RETURNING TO MENU"
15180 CLOSE: GOTO 1140
15190 '--------END OF ERROR TRAPS---------------
17000 '------------UPDATING AN OLD FILE------------------
17020 '
17030 '
17040 '
17050 '
17060 '
17070 '
17080 '
17090 '
17100 PRINT"UPDATING AN OLD FILE"
17110 PRINT:CLOSE F
17120 GOSUB 15010 '---RETRIEVE NAME---
17130 PRINT:GOSUB 25000     '-----CREATE DUMMY FILE---
17140 PRINT"0. HUSBANDS LAST NAME ";A$(0)
17150 PRINT"1.HUSBANDS FIRST AND MIDDLE NAMES: ";A$(1)
17160 PRINT"2.HUSBANDS BIRTH DATE: ";A$(2)
17170 PRINT"3.BIRTHPLACE: ";A$(3)
17180 PRINT"4.MARRIAGE DATE: ";A$(4)
17190 PRINT"5.MARRIAGE PLACE: ";A$(5)
17200 PRINT"6.DEATH DATE: ";A$(6)
17210 PRINT"7.DEATH PLACE: ";A$(7)
17220 PRINT"8.BURIAL PLACE: ";A$(8)
17230 PRINT"9.PLACES OF RESIDENCE: ";A$(9)
17240 PRINT"10.OCCUPATION: ";A$(10)
17250 PRINT"11.CHURCH AFFILIATION: ";A$(11)
17260 PRINT"12.MILITARY RECORD: ";A$(12)
17270 PRINT"13.OTHER WIVES: ";A$(13)
17280 PRINT"14.HUSBANDS FATHER: ";A$(14)
17290 PRINT"15.HUSBAND'S MOTHER: ";A$(15)
17300 PRINT:GOTO 17570
17310 PRINT"17.WIFES LAST NAME (MAIDEN): ";A$(17)
17320 PRINT"18.WIFES FIRST AND MIDDLE NAMES: ";A$(18)
17330 PRINT"19.WIFES BIRTH DATE: ";A$(19)
17340 PRINT"20.BIRTHPLACE: ";A$(20)
17350 PRINT"21.DEATH DATE: ";A$(21)
17360 PRINT"22.DEATH PLACE: ";A$(22)
17370 PRINT"23.BURIAL PLACE: ";A$(23)
17380 PRINT"24.PLACES OF RESIDENCE: ";A$(24)
17390 PRINT"25.OCCUPATION IF OTHER THAN HOUSEWIFE: ";A$(25)
17400 PRINT"26.CHURCH AFFILIATION: ";A$(26)
17410 PRINT"27.OTHER HUSBANDS: ";A$(27)
17420 PRINT"28.HER FATHER: ";A$(28)
17430 PRINT"29.HER MOTHER: ";A$(29)
17440 PRINT:GOTO 17570
17450 PRINT"50. NUMBER OF CHILDREN: ";T
17460 GOTO 26000
17470	PRINT"51."J". CHILD'S NAME: ";C$(J)
17475   PRINT"52."J". SEX: ";D$(J)
17480	PRINT"53."J". BIRTHDATE: ";E$(J)
17490	PRINT"54."J". BIRTHPLACE: ";F$(J)
17500   PRINT"55."J". MARRIAGE DATE: ";G$(J)
17510	PRINT"56."J". MARRIAGE PLACE: ";H$(J)
17515   PRINT"37."J". NAME OF SPOUSE: ";I$(J)
17520	PRINT"58."J". DEATH DATE: ";J$(J)
17530	PRINT"59."J". DEATH PLACE: ";K$(J)
17540	PRINT"60."J". BURIAL PLACE: ";L$(J)
17545	GOTO 17570
17550 PRINT
17561 FOR X=30 TO 45
17562	PRINT X;". ";A$(X)
17563 NEXT X
17564 PRINT"YOUR NAME: ";A$(46)
17565 PRINT"ADDRESS: ";A$(47)
17566 PRINT"CITY STATE ZIP: ";A$(48)
17570 PRINT
17580 PRINT"WHICH LINE NUMBER DO YOU WISH TO CHANGE?"
17581 INPUT"(ENTER 99 IF NONE OF THESE): ";N 
17590 GOTO 18000
17600 PRINT"LINE NOW READS:";A$(N)
17610 PRINT
17620 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
17630 INPUT A$(N)
17690 PRINT
17710 PRINT
17740 PRINT"DO YOU WISH TO:"
17750 PRINT"   CHANGE ANOTHER LINE"
17751 PRINT"      HUSBAND info..........1"
17752 PRINT"      WIFE info.............2"
17753 PRINT"      CHILD'S info..........3"
17755 PRINT"      COMPILER info.........4"
17756 PRINT"      NUMBER OF CHILDREN....5"
17760 PRINT"   RETURN TO MAIN MENU......6"
17770 INPUT CHOICE
17780 ON CHOICE GOTO 17140,17310,26060,17561,17450,25070
18000 '----------TESTS FOR LINE INPUT----------------
18010 IF N=50 GOTO 26000
18020 IF N=99 GOTO 17740
18025 L=INT(N)
18026 R=(N-L)*10
18030 FOR J=1 TO T
18040	IF L=51 GOTO 30010
18050	IF L=52 GOTO 30100
18060	IF L=53 GOTO 30200
18070	IF L=54 GOTO 30300
18080	IF L=55 GOTO 30400
18090	IF L=56 GOTO 30500
18100	IF L=57 GOTO 30600
18110	IF L=58 GOTO 30700
18120	IF L=59 GOTO 30800
18130	IF L=60 GOTO 30900
18140 NEXT J
18150 GOTO 17600
19999 STOP
20000 PRINT:PRINT
20005 PRINT
20010 FILES "*.*"
20020 PRINT:PRINT:PRINT"USE CTRL AND ARROW KEYS TO SEE ALL FILES":PRINT
20030 GOTO 1200
25000 '-------CREATE DUMMY FILE TO UPDATE-------
25005 CLOSE 2
25010 OPEN "O",2,"DUMMY.DAT"
25020 OPEN "I",F,F$
25030 GOSUB 11000
25040 KILL F$
25050 RETURN
25060 '------------------------------------------
25070 '-------RENAME DUMMY FILE TO OLD NAME------
25075 OPEN "O",F,"DUMMY.DAT":GOSUB 10020
25080 NAME "DUMMY.DAT" AS F$
25090 GOTO 1130
25100 '------------------------------------------
26000 '--------ROUTINE TO CHANGE NUMBER OF CHILDREN------
26010 PRINT:PRINT"LINE 50 NOW READS:"
26020 PRINT"NUMBER OF CHILDREN? ";T
26030 PRINT:PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
26040 INPUT T
26050 GOTO 17690
26060 '-------SELECT CHILD TO EDIT----------
26070  INPUT"CHILD NUMBER: ";J
26080 GOTO 17470
26100 '--------ROUTINE TO CHANGE CHILDREN'S DATA----
26110 'NEED TO WRITE THIS-----
26120 PRINT"CAN'T CHANGE CHILDREN'S DATA YET..."
26130 INPUT"PRESS RETURN TO CONTINUE";CR
26140 GOTO 17580
30000 '-----ROUTINE TO UPDATE CHILDREN'S INFORMATION-----
30010 J=R:PRINT"LINE NOW READS: ";C$(J)
30020 PRINT"WNAT WOULD YOU LIKE TO CHANGE IT TO?"
30030 INPUT C$(J)
30040 GOTO 17740
30100 J=R:PRINT"LINE NOW READS: ";D$(J)
30110 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30120 INPUT D$(J)
30130 GOTO 17740
30200 J=R
30210 PRINT"LINE NOW READS: ";E$(J)
30220 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30230 INPUT E$(J)
30240 GOTO 17740
30300 J=R:PRINT"LINE NOW READS: ";F$(J)
30310 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30320 INPUT F$(J)
30330 GOTO 17740
30400 J=R
30420 PRINT"LINE NOW READS: ";G$(J)
30440 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30460 INPUT G$(J)
30480 GOTO 17740
30500 J=R
30520 PRINT"LINE NOW READS: ";H$(J)
30540 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30560 INPUT H$(J)
30580 GOTO 17740
30600 J=R
30620 PRINT"LINE NOW READS: ";I$(J)
30640 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30660 INPUT I$(J)
30680 GOTO 17740
30700 J=R
30720 PRINT"LINE NOW READS: ";J$(J)
30740 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30760 INPUT J$(J)
30780 GOTO 17740
30800 J=R
30820 PRINT"LINE NOW READS: ";K$(J)
30840 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30860 INPUT K$(J)
30880 GOTO 17740
30900 J=R
30920 PRINT"LINE NOW READS: ";L$(J)
30940 PRINT"WHAT WOULD YOU LIKE TO CHANGE IT TO?"
30960 INPUT L$(J)
30980 GOTO 17740
31000 '--------------END CHILDRENS EDIT--------------
 WOULD YOU LIKE TO CHANGE IT TO?"
30960 INPUT L$(J)
30980 GOTO 17740
31000 '-----------