10 REM ---ADDNAME--- JOHN J. ARMSTRONG - MOBILE, AL 20 CLEAR 1000 21 INPUT "WHICH FAMILY TREE (3 CHARACTERS)?";TR$ 30 OPEN "R", #1, "FAMILY ."+TR$ 40 OPEN "R",#2,"FAMILY2 ."+TR$ 50 DIM C$(13):BL$=STRING$(24,32) 60 CH$=" CHANGE ":CH$(1)="LAST NAME AT BIRTH":CH$(2)="FIRST NAME(S)" 70 CH$(3)="MARRIED LAST NAME":T$=" TO :" 80 C=0:C1=0:CH=0:GOSUB 730 90 PRINT "(1) ADD A NAME": PRINT "(2) CHANGE A NAME": PRINT "(3) EXIT PROGRAM" 100 INPUT "CHOICE";C: IF C<1 OR C>3 THEN 100 110 ON C GOTO 130, 270, 740 120 REM 130 REM ROUTINE: ADD-A-NAME 140 REM 150 X=LOF(1)+1:GOSUB 680: GET 1,X 160 U=LOF(2)+1: GET #2,U 170 GOSUB 480: GOSUB 510: GOSUB 540: PUT #1,X 180 PUT #2,U 190 GOSUB 580: GET #1,X 200 GOSUB 630: GET #2,U 210 LSET BD$="????????":LSET PB$="?":LSET MD$(1)=BL$:LSET S1$=MKI$(0):LSET MS$(1)="SINGLE":LSET MD$(2)=BL$:LSET S2$=MKI$(0):LSET PM$(2)=BL$:LSET MS$(2)=BL$:LSET DD$="LIVING":LSET PD$="?" 220 PUT #1,X 230 FOR Z=10 TO 13: LSET C$(Z)=MKI$(0):LSET F$=MKI$(0): NEXT Z 240 PUT #2,U 250 GOTO 80 260 REM 270 REM ROUTINE: CHANGE-A-NAME 280 REM 290 INPUT "PERSON'S ID # ";X 300 IF X<1 OR X>LOF(1) THEN PRINT "BETWEEN 1 AND " LOF(1): GOTO 290 310 U=X 320 GOSUB 680: GET #1,X 330 GET #2,U:PRINT CHR$(12);: PRINT NF$;" ";NL$;" "NM$ 340 INPUT "IS THIS THE CORRECT ONE TO CHANGE (Y/N)";YN$ 350 IF LEFT$(YN$,1)="Y" THEN 360 ELSE 80 360 PRINT CHR$(12);:PRINT NF$;" ";NL$;" "NM$ 370 FOR Y=1 TO 3: PRINT CH$;"(";Y;")";CH$(Y): NEXT Y 380 INPUT "HOW MANY CHANGES";CH: IF CH<0 OR CH>3 THEN 380 390 IF CH=0 THEN 80 400 FOR Y=1 TO CH 410 PRINT CH$"ITEM # ";: INPUT C1 420 IF C1<1 OR C1>3 THEN 410 430 CH(Y)=C1:NEXT Y 440 FOR Y=1 TO CH 450 ON CH(Y) GOSUB 480, 510, 540 460 NEXT Y 470 PUT #1,X: PUT #2,U: GOTO 80 480 PRINT CH$(1) 490 IF C=2 THEN PRINT CH$; NL$; T$ 500 INPUT A$:LSET NL$=A$: GOSUB 720: RETURN 510 PRINT CH$(2) 520 IF C=2 THEN PRINT CH$; NF$; T$ 530 INPUT A$: LSET NF$=A$: GOSUB 720: RETURN 540 PRINT CH$(3) 550 IF C=2 THEN PRINT CH$; NM$; T$ 560 INPUT A$: LSET NM$=A$: GOSUB 720: RETURN 570 REM 580 REM SUBROUTINE--FIELD DATA BUFFER TO INITIALIZE DATA 590 REM 600 FIELD #1,8 AS BD$,24 AS PB$,8 AS MD$(1),2 AS S1$,24 AS PM$(1),9 AS MS$(1),8 AS MD$(2),2 AS S2$,24 AS PM$(2),9 AS MS$(2),8 AS DD$ 610 RETURN 620 REM 630 REM SUBROUTINE--FIELD DATA BUFFER TO INITIALIZE DATA 640 REM 650 FIELD #2,24 AS PD$,2 AS CN$,2 AS C$(1),2 AS C$(2),2 AS C$(3),2 AS C$(4),2 AS C$(5),2 AS C$(6),2 AS C$(7),2 AS C$(8),2 AS C$(9),2 AS C$(10),2 AS C$(11),2 AS C$(12),2 AS C$(13),2 AS M$,2 AS F$ 660 RETURN 670 REM 680 REM SUBROUTINE--FIELD DATA BUFFER FOR NAMES 690 REM 700 FIELD #1,126 AS DU$ 710 FIELD #2,56 AS D$,16 AS NL$,24 AS NF$,16 AS NM$: RETURN 720 A$=BL$:RETURN 730 PRINT CHR$(12);:PRINT "THERE ARE "LOF(1)" NAMES ON FILE":RETURN 740 PRINT CHR$(12);:GOSUB 730:CLOSE:PRINT "AND THE FILE HAS BEEN CLOSED.":END