90 WIDTH "scrn:",80 95 SCREEN 0,1,0,0 100 TITLE$ = "MENU of Programs in Genealogy" 105 TITLE$ = TITLE$ + " ON DISPLAY" 110 VERSION$ = "Version 2.0" 115 COPY1$ = "Copyright (c) 1983, 1984, by:" 120 COPY2$ = "Melvin O. Duke" 125 PRICE$ = "$35" 130 ADDR1$ = "Melvin O. Duke" 135 ADDR2$ = "P. O. Box 20836" 140 ADDR3$ = "San Jose, CA 95160" 145 REM Dimension Statements go here 170 REM Produce the first screen 175 KEY OFF : CLS 180 REM Draw the outer double box 185 R1 = 1 : C1 = 1 : R2 = 24 : C2 = 79 : GOSUB 400 190 REM Find the title location 195 TITLE.POS = 40 - INT(LEN(TITLE$)/2) 200 REM Draw the title box 205 R1=3:C1=TITLE.POS-2:R2=6:C2=TITLE.POS+LEN(TITLE$)+1:GOSUB 600 210 REM Print the title 215 LOCATE 4,TITLE.POS : PRINT TITLE$ 220 LOCATE 5,40-INT(LEN(VERSION$)/2) : PRINT VERSION$; 225 REM Draw the Contribution box 230 R1 = 8 : C1 = 19 : R2 = 17 : C2 = 62 : GOSUB 400 235 REM Request the Contribution 240 LOCATE 9,23 : PRINT "If you are using these programs, and" 245 LOCATE 10,21 : PRINT "finding them of value, your contribution" 250 LOCATE 11,23 : PRINT "("+PRICE$+" suggested) will be anticipated." 255 REM Draw the Mailing Label 260 R1 = 12 : C1 = 28 : R2 = 16 : C2 = 52 : GOSUB 600 265 REM Print the Name and Address 270 LOCATE 13,40-INT(LEN(ADDR1$)/2) : PRINT ADDR1$; 275 LOCATE 14,40-INT(LEN(ADDR2$)/2) : PRINT ADDR2$; 280 LOCATE 15,40-INT(LEN(ADDR3$)/2) : PRINT ADDR3$; 285 REM Draw the Copyright box 290 R1 = 19 : C1 = 24 : R2 = 22 : C2 = 56 : GOSUB 400 295 REM Print the Copyright 300 LOCATE 20,40-INT(LEN(COPY1$)/2) : PRINT COPY1$; 305 LOCATE 21,40-INT(LEN(COPY2$)/2) : PRINT COPY2$; 310 GOTO 740 400 REM subroutine to print a double box 410 FOR I = R1 + 1 TO R2 - 1 420 LOCATE I, C1 : PRINT CHR$(186); 430 LOCATE I, C2 : PRINT CHR$(186); 440 NEXT I 450 FOR J = C1 + 1 TO C2 - 1 460 LOCATE R1, J : PRINT CHR$(205); 470 LOCATE R2, J : PRINT CHR$(205); 480 NEXT J 490 LOCATE R1, C1 : PRINT CHR$(201); 500 LOCATE R1, C2 : PRINT CHR$(187); 510 LOCATE R2, C1 : PRINT CHR$(200); 520 LOCATE R2, C2 : PRINT CHR$(188); 530 RETURN 600 REM subroutine to print a single box 610 FOR I = R1 + 1 TO R2 - 1 620 LOCATE I, C1 : PRINT CHR$(179); 630 LOCATE I, C2 : PRINT CHR$(179); 640 NEXT I 650 FOR J = C1 + 1 TO C2 - 1 660 LOCATE R1, J : PRINT CHR$(196); 670 LOCATE R2, J : PRINT CHR$(196); 680 NEXT J 690 LOCATE R1, C1 : PRINT CHR$(218); 700 LOCATE R1, C2 : PRINT CHR$(191); 710 LOCATE R2, C1 : PRINT CHR$(192); 720 LOCATE R2, C2 : PRINT CHR$(217); 730 RETURN 740 REM ask user to press a key to continue 750 LOCATE 25,1 760 PRINT "Have Program Diskette in place, then press any key to continue."; 770 K$ = INKEY$ : IF K$ = "" THEN 770 780 CLS 1000 REM Menu of the available Genealogy Programs. 1010 REM By: Melvin O. Duke. Last Updated: 02 December 1983. 1020 REM Draw the Menu itself. 1030 REM Draw the Outer Double Box. 1040 R1 = 1 : C1 = 1 : R2 = 23 : C2 = 79 : GOSUB 400 1050 REM Draw the Heading Separator. 1060 R1 = 3 : C1 = 1 : R2 = 3 : C2 = 79 : GOSUB 2690 1070 REM Draw the Vertical Separators. 1080 R1 = 1 : C1 = 6 : R2 = 23 : C2 = 6 : GOSUB 2830 1090 R1 = 1 : C1 =17 : R2 = 23 : C2 =17 : GOSUB 2830 1100 REM Attach the intersections 1110 LOCATE 3, 6 : PRINT CHR$(197); 1120 LOCATE 3,17 : PRINT CHR$(197); 1130 REM Print the content of the menu. 1140 COLOR 0,7 1150 LOCATE 2,3 : PRINT "No"; 1160 LOCATE 2,8 : PRINT "Name" 1170 LOCATE 2,19 : PRINT "Function of the Program" 1180 COLOR 7,0 1190 COLOR 0,7 : LOCATE 4,3 : PRINT " 1"; : COLOR 7,0 1200 LOCATE 4, 8 : PRINT "CREATPER"; 1210 LOCATE 4, 19 : PRINT "Creates a Persons File. (Re-running destroys old file.)"; 1220 COLOR 0,7 : LOCATE 5,3 : PRINT " 2"; : COLOR 7,0 1230 LOCATE 5, 8 : PRINT "CREATMAR"; 1240 LOCATE 5, 19 : PRINT "Creates a Marriages File. (Re-running destroys old file.)"; 1250 COLOR 0,7 : LOCATE 6,3 : PRINT " 3"; : COLOR 7,0 1260 LOCATE 6, 8 : PRINT "CREATORD"; 1270 LOCATE 6, 19 : PRINT "Creates an Ordinances File. (Re-running destroys old file.)"; 1280 COLOR 0,7 : LOCATE 7,3 : PRINT " 4"; : COLOR 7,0 1290 LOCATE 7, 8 : PRINT "UPDATPER"; 1300 LOCATE 7, 19 : PRINT "Updates Information in the Persons File." 1310 COLOR 0,7 : LOCATE 8,3 : PRINT " 5"; : COLOR 7,0 1320 LOCATE 8, 8 : PRINT "UPDATMAR"; 1330 LOCATE 8, 19 : PRINT "Updates Information in the Marriages File." 1340 COLOR 0,7 : LOCATE 9,3 : PRINT " 6"; : COLOR 7,0 1350 LOCATE 9, 8 : PRINT "UPDATORD"; 1360 LOCATE 9, 19 : PRINT "Updates Information in the Ordinances File." 1370 COLOR 0,7 : LOCATE 10,3 : PRINT " 7"; : COLOR 7,0 1380 LOCATE 10, 8 : PRINT "INDEXPC "; 1390 LOCATE 10, 19 : PRINT "Creates a Parent/Child Index. (For 13, 16 and 18.)"; 1400 COLOR 0,7 : LOCATE 11,3 : PRINT " 8"; : COLOR 7,0 1410 LOCATE 11, 8 : PRINT "INDEXMAR"; 1420 LOCATE 11, 19 : PRINT "Creates a Marriages Index. (For 15, 16, 17 and 18.)"; 1430 COLOR 0,7 : LOCATE 12,3 : PRINT " 9"; : COLOR 7,0 1440 LOCATE 12, 8 : PRINT "PRINTPER"; 1450 LOCATE 12, 19 : PRINT "Prints Information about Persons."; 1460 COLOR 0,7 : LOCATE 13,3 : PRINT "10"; : COLOR 7,0 1470 LOCATE 13, 8 : PRINT "PRINTMAR"; 1480 LOCATE 13, 19 : PRINT "Prints Information about Marriages." 1490 COLOR 0,7 : LOCATE 14,3 : PRINT "11"; : COLOR 7,0 1500 LOCATE 14, 8 : PRINT "LISTPER "; 1510 LOCATE 14, 19 : PRINT "Prints a List of the Persons in the Persons File." 1520 COLOR 0,7 : LOCATE 15,3 : PRINT "12"; : COLOR 7,0 1530 LOCATE 15, 8 : PRINT "LISTMAR "; 1540 LOCATE 15, 19 : PRINT "Prints a List of the Marriages in the Marriages File." 1550 COLOR 0,7 : LOCATE 16,3 : PRINT "13"; : COLOR 7,0 1560 LOCATE 16, 8 : PRINT "LISTPCI "; 1570 LOCATE 16, 19 : PRINT "Prints a List of the Parent/Child Index."; 1580 COLOR 0,7 : LOCATE 17,3 : PRINT "14"; : COLOR 7,0 1590 LOCATE 17, 8 : PRINT "ALPHAPER"; 1600 LOCATE 17, 19 : PRINT "Prints an Alphabetical List of Persons." 1610 COLOR 0,7 : LOCATE 18,3 : PRINT "15"; : COLOR 7,0 1620 LOCATE 18, 8 : PRINT "ALPHAMAR"; 1630 LOCATE 18, 19 : PRINT "Prints an Alphabetical List of Marriages." 1640 COLOR 0,7 : LOCATE 19,3 : PRINT "16"; : COLOR 7,0 1650 LOCATE 19, 8 : PRINT "DISPLAY "; 1660 LOCATE 19, 19 : PRINT "Displays Genealogical Information on the Screen." 1670 COLOR 0,7 : LOCATE 20,3 : PRINT "17"; : COLOR 7,0 1680 LOCATE 20, 8 : PRINT "PEDIGREE"; 1690 LOCATE 20, 19 : PRINT "Prints Pedigree Charts (Family Trees)." 1700 COLOR 0,7 : LOCATE 21,3 : PRINT "18"; : COLOR 7,0 1710 LOCATE 21, 8 : PRINT "FAMILY "; 1720 LOCATE 21, 19 : PRINT "Prints Family Group Sheets." 1722 COLOR 0,7 : LOCATE 22,3 : PRINT "19"; : COLOR 7,0 1724 LOCATE 22, 8 : PRINT "MENU"; 1726 LOCATE 22, 19 : PRINT "Menu of Programs in Genealogy ON DISPLAY. (This program.)" 1730 REM Now obtain User Response 1740 LOCATE 24,1 : INPUT "Enter a Program Number (0 to quit), and press RETURN."; REPLY 1750 IF REPLY = 0 THEN 2900 1760 IF REPLY < 0 OR REPLY > 19 THEN 780 1790 IF REPLY = 1 THEN RUN "a:creatper" 1800 IF REPLY = 2 THEN RUN "a:creatmar" 1810 IF REPLY = 3 THEN RUN "a:creatord" 1820 IF REPLY = 4 THEN RUN "a:updatper" 1830 IF REPLY = 5 THEN RUN "a:updatmar" 1840 IF REPLY = 6 THEN RUN "a:updatord" 1850 IF REPLY = 7 THEN RUN "a:indexpc" 1860 IF REPLY = 8 THEN RUN "a:indexmar" 1870 IF REPLY = 9 THEN RUN "a:printper" 1880 IF REPLY = 10 THEN RUN "a:printmar" 1890 IF REPLY = 11 THEN RUN "a:listper" 1900 IF REPLY = 12 THEN RUN "a:listmar" 1910 IF REPLY = 13 THEN RUN "a:listpci" 1920 IF REPLY = 14 THEN RUN "a:alphaper" 1930 IF REPLY = 15 THEN RUN "a:alphamar" 1940 IF REPLY = 16 THEN RUN "a:display" 1950 IF REPLY = 17 THEN RUN "a:pedigree" 1960 IF REPLY = 18 THEN RUN "a:family" 1970 IF REPLY = 19 THEN RUN "a:menu" 2590 STOP 2600 REM Shouldn't get to here, but if you do, quit. 2610 GOTO 2900 2620 REM Subroutine to draw a double horizontal line. Attach to double. 2630 FOR J = C1 + 1 TO C2 - 1 2640 LOCATE R1,J : PRINT CHR$(205); 2650 NEXT J 2660 LOCATE R1,C1 : PRINT CHR$(204); 2670 LOCATE R1,C2 : PRINT CHR$(185); 2680 RETURN 2690 REM Subroutine to draw a single horizontal line. Attach to double. 2700 FOR J = C1 + 1 TO C2 - 1 2710 LOCATE R1,J : PRINT CHR$(196); 2720 NEXT J 2730 LOCATE R1,C1 : PRINT CHR$(199); 2740 LOCATE R1,C2 : PRINT CHR$(182); 2750 RETURN 2760 REM Subroutine to draw a double vertical line. Attach to double. 2770 FOR I = R1 + 1 TO R2 - 1 2780 LOCATE I,C1 : PRINT CHR$(186); 2790 NEXT I 2800 LOCATE R1,C1 : PRINT CHR$(203); 2810 LOCATE R2,C1 : PRINT CHR$(202); 2820 RETURN 2830 REM Subroutine to draw a single vertical line. Attach to double. 2840 FOR I = R1 + 1 TO R2 - 1 2850 LOCATE I,C1 : PRINT CHR$(179); 2860 NEXT I 2870 LOCATE R1,C1 : PRINT CHR$(209); 2880 LOCATE R2,C1 : PRINT CHR$(207); 2890 RETURN 2900 CLS : LOCATE 21,1 2910 PRINT "End of Program" 2920 END