home *** CD-ROM | disk | FTP | other *** search
- 100 REM INTRODUC Program.
- 110 REM Documentation. Introduction.
- 120 REM Copyright (c) 1983 - 1987 by: Melvin O. Duke.
- ' Ported to the Amiga in March 1988 by Nathan Barber
- ' Adaptions for Amiga graphics (c) 1988 by Nathan Barber
- 130 DATA Genealogy
- 140 DATA User's Manual
- 150 DATA -5
- 160 DATA 1
- 170 INDENT = 0
- 180 REM Printer Definitions
- 190 FORM.FEED$ = CHR$(12)
- 200 COMPR.OFF$ = CHR$(18) : COMPR.ON$ = CHR$(15)
- 210 BOLD.OFF$ = CHR$(27)+"F" : BOLD.ON$ = CHR$(27)+"E"
- 220 EXPAND.OFF$ = CHR$(18) : EXPAND.ON$ = CHR$(14)
- 230 DASHES$ = "+"+STRING$(54,45)+"+"
- 240 TRIM.LINE$ = "(Trim-line)"
- 300 REM Program begins here
- 310 READ TITLE$, DOC.NAME$, PAGE.NO, LINE.NO
- 320 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 330 GOSUB 920 :REM'For trim line and heading space
- 340 FOR I = 1 TO 6 : LPRINT : NEXT I
- 350 LPRINT BOLD.ON$; :REM'Set Emphasized mode
- 360 LPRINT EXPAND.ON$; :REM'Set Expanded Print
- 370 LPRINT TAB(TAB.POS-1);TITLE$
- 380 LPRINT EXPAND.OFF$; :REM'Return to normal
- 390 LPRINT BOLD.OFF$; :REM'Return to normal
- 400 FOR I = 1 TO 3 : LPRINT : NEXT I
- 410 LPRINT BOLD.ON$; :REM'Set Emphasized mode
- 420 LPRINT TAB(TAB.POS+12);"ON DISPLAY"
- 430 LPRINT BOLD.OFF$; :REM'Return to normal
- 440 LPRINT : LPRINT : LPRINT
- 450 LPRINT TAB(TAB.POS+11);"Version 5.0"
- 460 FOR I = 1 TO 11 : LPRINT : NEXT I
- 470 LPRINT TAB(TAB.POS+10); DOC.NAME$
- 480 LINE.NO = LINE.NO + 27
- 490 :REM'
- 500 READ REPLY$
- 510 REM First, change tildes to quotes
- 520 FOR Q = 1 TO LEN(REPLY$)
- 530 IF MID$(REPLY$,Q,1)="~"THEN MID$(REPLY$,Q,1)=CHR$(34)
- 540 NEXT Q
- 550 IF LEFT$(REPLY$,1) = "." THEN GOSUB 1270: GOTO 500
- 560 IF LINE.NO > 44 THEN GOSUB 1030
- 570 REM Print the line if not a command
- 580 LPRINT TAB(TAB.POS);REPLY$
- 590 LINE.NO = LINE.NO + 1
- 600 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 610 GOTO 500
- 620 REM Data for the Copyright Page
- 630 DATA ".pa"
- 640 DATA " "
- 750 DATA ".vt 12"
- 760 DATA "Users are encouraged to copy and share"
- 770 DATA "the programs with others."
- 780 DATA ".vt 5"
- 790 DATA "If you are using these programs, you are"
- 800 DATA "expected to become a Registered User,"
- 810 DATA "by making a contribution to the author"
- 815 DATA "of the programs ($45.00 suggested)."
- 820 DATA ".sp"
- 830 DATA "Melvin O. Duke"
- 840 DATA "P. O. Box 20836"
- 850 DATA "San Jose, CA 95160"
- 860 DATA ".vt 4"
- 870 DATA "Copyright (c) 1983 through 1987, by:"
- 880 DATA "Melvin O. Duke."
- 890 DATA ".sp"
- 900 DATA "All rights reserved."
- 910 :REM'
- 920 REM Top of each page routine
- 930 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 940 LPRINT
- 950 LPRINT TAB(30); TRIM.LINE$
- 960 LPRINT DASHES$ :REM'Dashes
- 970 FOR I = 1 TO 6
- 980 LPRINT
- 990 NEXT I
- 1000 LINE.NO = LINE.NO + 6
- 1010 RETURN
- 1020 :REM'
- 1030 REM Bottom of each page Routine
- 1040 IF PAGE.NO < 1 THEN LPRINT : LPRINT : LPRINT : GOTO 1160
- 1050 LPRINT TAB(TAB.POS); STRING$(40,45) :REM'on line 46
- 1060 LPRINT TAB(TAB.POS+3); TITLE$+" ON DISPLAY. Version 5.0" :REM'on line 47
- 1070 IF PAGE.NO MOD 2 = 1 THEN 1110
- 1080 LPRINT TAB(TAB.POS);"Page";PAGE.NO;
- 1090 LPRINT TAB(TAB.POS+27);"User's Manual"
- 1100 GOTO 1160
- 1110 LPRINT TAB(TAB.POS); "User's Manual";
- 1120 IF PAGE.NO < 10 THEN DELTA = 34
- 1130 IF PAGE.NO > 9 THEN DELTA = 33
- 1140 IF PAGE.NO > 99 THEN DELTA = 32
- 1150 LPRINT TAB(TAB.POS+DELTA); "Page"; PAGE.NO :REM'on line 48
- 1160 LPRINT : LPRINT : LPRINT
- 1170 LPRINT DASHES$ :REM'dashes after 51
- 1180 LPRINT TAB(30); TRIM.LINE$
- 1190 LPRINT FORM.FEED$;
- 1200 PAGE.NO = PAGE.NO + 1
- 1210 LINE.NO = 1
- 1220 IF REPLY$ = ".eof" THEN 1240 :REM'Bypass after last page
- 1230 GOSUB 920 :REM'For top of next page
- 1240 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 1250 RETURN
- 1260 :REM'
- 1270 REM Command Processor
- 1280 IF LEFT$(REPLY$,3) = ".h1" THEN 1390
- 1290 IF LEFT$(REPLY$,3) = ".h2" THEN 1550
- 1300 IF LEFT$(REPLY$,3) = ".h3" THEN 1660
- 1310 IF LEFT$(REPLY$,3) = ".sp" THEN 1770
- 1320 IF LEFT$(REPLY$,4) = ".eof" THEN 1820
- 1330 IF LEFT$(REPLY$,3) = ".pa" THEN 1860
- 1340 IF LEFT$(REPLY$,3) = ".pn" THEN PAGE.NO = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3)) : RETURN
- 1350 IF LEFT$(REPLY$,3) = ".vt" THEN 1930
- 1360 IF LEFT$(REPLY$,3) = ".pk" THEN 2040
- 1370 IF LEFT$(REPLY$,3) = ".in" THEN 2170
- 1380 STOP
- 1390 REM Head 1 Processor
- 1400 FOR I = LINE.NO TO 44
- 1410 LPRINT
- 1420 NEXT I
- 1430 GOSUB 1030 :REM'Bottom of page Routine
- 1440 IF PAGE.NO MOD 2 = 0 THEN GOSUB 1860 :REM'For h1 on Odd pages
- 1450 LPRINT BOLD.ON$; :REM'Set emphasized print
- 1460 LPRINT EXPAND.ON$; :REM'Set expanded print
- 1470 IF PAGE.NO MOD 2 = 0 THEN ADJUST = -2 :ELSE ADJUST = -5
- 1480 LPRINT TAB(TAB.POS+ADJUST); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1490 LPRINT EXPAND.OFF$; :REM'Return to normal
- 1500 LPRINT BOLD.OFF$; :REM'Return to non-bold
- 1510 LINE.NO = LINE.NO+1
- 1520 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 1530 RETURN
- 1540 :REM'
- 1550 REM Head 2 Processor
- 1560 IF LINE.NO = 7 THEN 1580 :REM'skip spacing if at top of page
- 1570 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1580 LPRINT BOLD.ON$; :REM'Set emphasized print
- 1590 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1600 LPRINT BOLD.OFF$; :REM'Return to normal
- 1610 LPRINT
- 1620 LINE.NO = LINE.NO + 2
- 1630 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 1640 RETURN
- 1650 :REM'
- 1660 REM Head 3 Processor
- 1670 IF LINE.NO = 7 THEN 1690 :REM'skip spacing if at top of page
- 1680 IF LINE.NO > 43 THEN GOSUB 1860 :ELSE LPRINT:LPRINT:LINE.NO = LINE.NO+2
- 1690 LPRINT BOLD.ON$; :REM'Set emphasized print
- 1700 LPRINT TAB(TAB.POS+1); RIGHT$(REPLY$,LEN(REPLY$)-4)
- 1710 LPRINT BOLD.OFF$; :REM'Return to normal
- 1720 LPRINT
- 1730 LINE.NO = LINE.NO + 2
- 1740 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 1750 RETURN
- 1760 :REM'
- 1770 REM Single Space Processor
- 1780 IF LINE.NO = 7 THEN 1800
- 1790 IF LINE.NO > 44 THEN GOSUB 1860 :ELSE LPRINT : LINE.NO = LINE.NO + 1
- 1800 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 1810 RETURN
- 1820 REM End of File Processor
- 1830 GOSUB 1860 :REM'Bottom of Page
- 1850 GOTO 4920
- 1860 REM Page Eject Processor
- 1870 FOR I = LINE.NO TO 44
- 1880 LPRINT
- 1890 LINE.NO = LINE.NO + 1
- 1900 NEXT I
- 1910 GOSUB 1030 :REM'Bottom of Page Processing
- 1920 RETURN
- 1930 REM Vertical Tab Processor
- 1940 IF LINE.NO = 7 THEN 2030
- 1950 IF LINE.NO > 44 THEN GOSUB 1030 :REM'End of page
- 1960 QTY = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 1970 FOR I = 1 TO QTY
- 1980 LPRINT
- 1990 LINE.NO = LINE.NO + 1
- 2000 IF LINE.NO > 44 THEN I = QTY
- 2010 NEXT I
- 2020 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 2030 RETURN
- 2040 REM Pack Processor
- 2050 IF LINE.NO > 44 THEN GOSUB 1030
- 2060 IF TAB.POS = 8 THEN ADJUST = 4
- 2070 IF TAB.POS = 13 THEN ADJUST = 7
- 2080 TAB.POS = TAB.POS + ADJUST + INDENT
- 2090 WIDTH "lpt1:", 132 :REM'set condensed width
- 2100 LPRINT COMPR.ON$; :REM'Packed printing
- 2110 LPRINT TAB(TAB.POS); RIGHT$(REPLY$,LEN(REPLY$)-3)
- 2120 LPRINT COMPR.OFF$; :REM'Return to normal
- 2130 WIDTH "lpt1:", 80 :REM'return to normal
- 2140 LINE.NO = LINE.NO + 1
- 2150 IF PAGE.NO MOD 2 = 0 THEN TAB.POS = 8 :ELSE TAB.POS = 13
- 2160 RETURN
- 2170 REM Indent Processor
- 2180 INDENT = VAL(RIGHT$(REPLY$,LEN(REPLY$)-3))
- 2190 RETURN
- 3000 DATA ".h1 INTRODUCTION"
- 3010 DATA ".pn 1"
- 3020 DATA ".h2 OVERVIEW"
- 3030 DATA "The Genealogy ON DISPLAY programs pro-"
- 3040 DATA "vide the user with the capability to"
- 3050 DATA "create and maintain data files which"
- 3060 DATA "contain information about his or her"
- 3070 DATA "ancestors and relatives, to interro-"
- 3080 DATA "gate the contents of the files, and to"
- 3090 DATA "obtain printouts of pedigree charts,"
- 3100 DATA "family group sheets, and descendents"
- 3110 DATA "charts in standard formats, using the"
- 3120 DATA "information from those files."
- 3130 DATA ".sp"
- 3140 DATA "Other than the total size of the files,"
- 3150 DATA "there is no practical limit to the"
- 3160 DATA "number of generations contained in the"
- 3170 DATA "files, or capable of being displayed or"
- 3180 DATA "printed."
- 3190 DATA ".h2 CAPABILITIES"
- 3200 DATA "Following are the capabilities of the"
- 3210 DATA "the group of programs known as the"
- 3220 DATA "Genealogy ON DISPLAY programs."
- 3230 DATA ".pa"
- 3240 DATA ".h3 Display the Genealogy."
- 3250 DATA "The program 'display' is one of the"
- 3260 DATA "four principal programs in the Genealogy"
- 3270 DATA "ON DISPLAY set of programs. (Note: All"
- 3280 DATA "of the other programs supplement these"
- 3290 DATA "four principal programs.)"
- 3300 DATA ".sp"
- 3310 DATA "By using the 'display' program, a user"
- 3320 DATA "may display personal information, pedi-"
- 3330 DATA "grees, and family group information for"
- 3340 DATA "any person whose records are in the data"
- 3350 DATA "files."
- 3360 DATA ".h2 Print Pedigree Charts (Family Trees)"
- 3370 DATA "The program 'pedigree' is the second of"
- 3380 DATA "the four principal programs in the"
- 3390 DATA "Genealogy ON DISPLAY set of programs."
- 3400 DATA ".sp"
- 3410 DATA "By using this program, a user may obtain"
- 3420 DATA "a printout of a pedigree chart (family"
- 3430 DATA "tree) for any person whose records are"
- 3440 DATA "in the data files."
- 3450 DATA ".pa"
- 3460 DATA ".h2 Print Family Group Sheets"
- 3470 DATA "The program 'family' is the third of the"
- 3480 DATA "four principal programs in the Genealogy"
- 3490 DATA "ON DISPLAY set of programs."
- 3500 DATA ".sp
- 3510 DATA "By using this program, a user may obtain"
- 3520 DATA "a printout of a family group sheet for"
- 3530 DATA "any person whose records are in the data"
- 3540 DATA "files."
- 3550 DATA ".h2 Produce Descendents Charts"
- 3560 DATA "The program 'descend' is the fourth of"
- 3570 DATA "the four principal programs in the"
- 3580 DATA "Genealogy ON DISPLAY set of programs."
- 3590 DATA ".sp
- 3600 DATA "By using this program, a user may dis-"
- 3610 DATA "play (and optionally obtain a printout)"
- 3620 DATA "of the descendants of any person whose"
- 3630 DATA "records are in the data files."
- 3640 DATA ".h3 Format the Data Files."
- 3650 DATA "Three programs, the 'creatper', the"
- 3660 DATA "'creatmar', and the 'creatord' programs,"
- 3670 DATA "provide formatting of the records in the"
- 3680 DATA "'persfile', the 'marrfile', and the"
- 3690 DATA "'ordfile' respectively."
- 3700 DATA ".pa"
- 3710 DATA ".h3 Update the Data Files."
- 3720 DATA "Three programs, the 'updatper', the"
- 3730 DATA "'updatmar', and the 'updatord' programs,"
- 3740 DATA "permit update of the records in the"
- 3750 DATA "'persfile', the 'marrfile', and the"
- 3760 DATA "'ordfile' respectively."
- 3770 DATA ".h3 Prepare the Indexes."
- 3780 DATA "Two programs, the 'indexpc' and the"
- 3790 DATA "'indexmar' programs, prepare the"
- 3800 DATA "indexes 'pcindex' and 'mindex' respec-"
- 3810 DATA "tively."
- 3820 DATA ".sp"
- 3830 DATA "Note: These two indexes are essential"
- 3840 DATA "to the 'display', 'pedigree', 'family',"
- 3850 DATA "and 'descend' programs, as they provide"
- 3860 DATA "all of the linkages between persons,"
- 3870 DATA "ancestors, and families."
- 3880 DATA ".h3 List the Records in the Files."
- 3890 DATA "Two programs, the 'listper' and the"
- 3900 DATA "'listmar' programs, provide listings"
- 3910 DATA "of the records in the 'persfile' and"
- 3920 DATA "'marrfile', respectively. These are"
- 3930 DATA "one-line summary listings of the"
- 3940 DATA "records in the files."
- 3950 DATA ".pa"
- 3960 DATA ".h3 Printing the Contents of the Files."
- 3970 DATA "Two programs, the 'printper', and the"
- 3980 DATA "'printmar' programs, provide for print-"
- 3990 DATA "ing individual records or for complete"
- 4000 DATA "printouts of the files. The 'printper"
- 4010 DATA "program provides a combined printout"
- 4020 DATA "of the 'persfile' and the 'ordfile'."
- 4030 DATA "The 'printmar' program provides a"
- 4040 DATA "printout of the 'marrfile'."
- 4050 DATA ".h3 Alphabetical Lists."
- 4060 DATA "Two programs, the 'alphaper', and the"
- 4070 DATA "'alphamar' programs, provide alphabetical"
- 4080 DATA "listings of the persons in the Persons"
- 4090 DATA "File, and marriages in the Marriages"
- 4100 DATA "File, respectively. Note: These two"
- 4110 DATA "lists are very helpful in permitting the"
- 4120 DATA "user to locate records of persons and of"
- 4130 DATA "marriages."
- 4140 DATA ".h3 Parent/Child Index List"
- 4150 DATA "One program, the 'listpci' program,"
- 4160 DATA "provides a list of all persons who are"
- 4170 DATA "parents, together with the children of"
- 4180 DATA "those persons."
- 4190 DATA ".pa"
- 4200 DATA ".h2 BENEFITS/ADVANTAGES"
- 4210 DATA "The Genealogy ON DISPLAY programs pro-"
- 4220 DATA "vide an organized, cohesive set of"
- 4230 DATA "programs, to permit a user to create and"
- 4240 DATA "maintain that person's genealogical"
- 4250 DATA "information."
- 4260 DATA ".sp"
- 4270 DATA "One major advantage of this technique is"
- 4280 DATA "that the user only enters information a"
- 4290 DATA "single time, in a single place. Hence,"
- 4300 DATA "there is never any discrepancy between"
- 4310 DATA "separate reportings of the data."
- 4320 DATA ".sp"
- 4330 DATA "The programs use the relationships be-"
- 4340 DATA "tween persons for extracting and report-"
- 4350 DATA "ing the data in meaningful formats."
- 4360 DATA ".sp"
- 4370 DATA "Since most genealogical information is"
- 4380 DATA "not complete, whenever new information"
- 4390 DATA "is obtained, the user may readily add"
- 4400 DATA "that new information (or change any"
- 4410 DATA "erroneous old information) as the user"
- 4420 DATA "desires."
- 4430 DATA ".h2 RESULTS"
- 4440 DATA "The final results are a well-organized"
- 4450 DATA "set of data files and indices, which"
- 4460 DATA "permit a user to obtain related infor-"
- 4470 DATA "mation in formats which are meaningful"
- 4480 DATA "to that user."
- 4490 DATA ".pa"
- 4500 DATA "Pedigree Charts, Family Group Sheets and"
- 4510 DATA "Descendents Charts, as well as Personal"
- 4520 DATA "information about each individual are"
- 4530 DATA "are available upon demand, either on the"
- 4540 DATA "printer or on the display."
- 4550 DATA ".h2 REQUIREMENTS"
- 4560 DATA ".h3 Hardware Requirements."
- 4570 DATA ".sp"
- 4580 DATA "IBM PCjr, PC, or PC/XT, with:"
- 4590 DATA ".sp"
- 4600 DATA " One Double-sided Diskette Drive."
- 4610 DATA ".sp"
- 4620 DATA " Either the IBM Graphics Printer, the"
- 4630 DATA " IBM Matrix Printer (or equivalents)."
- 4640 DATA ".sp"
- 4650 DATA " Note: The IBM Graphics Printer"
- 4660 DATA " and the IBM Matrix Printer"
- 4670 DATA " provide for condensed printing"
- 4680 DATA " of Pedigree Charts and Family"
- 4690 DATA " Group Sheets."
- 4700 DATA ".sp"
- 4710 DATA " For full-sized printouts of the"
- 4720 DATA " Pedigree Charts and Family"
- 4730 DATA " Group Sheets, a 132 character"
- 4740 DATA " (10 char/in) printer is required."
- 4750 DATA ".sp"
- 4760 DATA " At least 96K of Memory (128 K is"
- 4770 DATA " recommended)."
- 4780 DATA ".sp"
- 4790 DATA " Either the IBM Color Display,"
- 4800 DATA " the IBM Monochrome Display (or"
- 4810 DATA " equivalents)."
- 4820 DATA ".pa"
- 4830 DATA ".h3 Software Requirements."
- 4840 DATA ".sp"
- 4850 DATA "IBM PC-DOS."
- 4860 DATA " Version 2.1 (or Version 2.0 on"
- 4870 DATA " the IBM PC or the IBM PC/XT).
- 4880 DATA ".sp"
- 4890 DATA "BASIC"
- 4900 DATA " (on Cartridge or Diskette)."
- 4910 DATA ".eof"
- 4920 END
-