10  COM X$[7],Y$[7],G$[7],S,U1
12  REM
13  REM       FINDIT:  FILE INFORMATION DIALOGUE TECHNIQUE
14  REM       UPDATE:  PART 3 OF 8
15  REM 36250C, 6/74
16  REM
20  DIM E[99],I[121],J[121],R[16],I$[72],O$[72]
30  DIM A$[72],B$[72],C$[52],D$[10],E$[72],F$[72],H$[72]
40  C$="etoanirshdlcwumfygpbvkxqjzETOANIRSHDLCWUMFYGPBVKXQJZ"
50  D$="0123456789"
60  FILES *,*,*,*
70  ASSIGN X$,1,X
80  ASSIGN X$,3,X
90  ASSIGN Y$,2,X
100  MAT  READ #1,1;R
110  A3=L2=0
120  PRINT "OPERATION? ";
130  K=L1=N1=U=0
140  GOSUB 1480
150  GOTO A1 OF 120,190,120,120
160  IF A$[1,2]="MO" THEN 210
170  IF A$[1,2]="AD" THEN 3050
180  IF A$[1,2]="DE" THEN 4180
190  PRINT "**TYPE 'MODIFY', 'ADD', OR 'DELETE'."
200  GOTO 120
210  REM--**MODIFY ROUTINE**
220  U=1
230  PRINT "  SAME ELEMENTS? ";
240  A3=B1=K=L1=N1=0
250  GOSUB 1480
260  GOTO A1 OF 120,230,230,120,230,210,3050,4180
270  IF A$[1,1]="N" THEN 590
280  IF A$[1,1]="Y" THEN 310
290  PRINT "**TYPE 'YES' OR 'NO'."
300  GOTO 230
310  B1=1
330  PRINT TAB(2+2*B1),"ELEMENTS:"
335  E0=R[16]
340  MAT E=ZER
350  B4=K=N1=0
360  PRINT "?";TAB(2+2*B1);
370  GOSUB 1480
380  GOTO A1+1 OF 410,390,360,340,360,580,210,3050,4180
390  IF K THEN 330
400  GOTO B1+1 OF 590,230
410  GOSUB 2420
420  IF A1=2 THEN 360
430  IF Y#E0 THEN 510
435  READ #1,3
440  GOSUB 6400
450  PRINT "**THE ELEMENT '"B$"' MAY NOT BE MODIFIED DIRECTLY."
460  PRINT "  CONSULT FINDIT MANUAL FOR INSTRUCTIONS."
470  PRINT 
480  GOTO 330
510  K=K+1
520  E[K]=Y
530  IF E[K]=R[3] THEN 580
540  IF K=1 THEN 360
550  IF E[K]>E[K-1] THEN 360
560  PRINT "**LAST ELEMENT OUT OF SEQUENCE - BEGIN AGAIN.";LIN(1)
570  GOTO 330
580  IF  NOT B1 THEN 720
590  PRINT LIN(1),"ID#? ";
600  B2=K=N1=R=S2=0
610  U=1
620  REM--LOCATE RECORD
630  GOSUB 1480
640  GOTO A1+1 OF 660,650,590,650,590,590,210,3050,4180
650  GOTO B1+1 OF 230,330
660  F$=A$
670  GOSUB 4640
675  A5=B0
680  IF A1=2 THEN 590
690  R4=R
700  IF  NOT B1 THEN 330
720  N1=K=U=1
730  N2=2
740  A2=B4=L2=L4=S2=0
750  READ #1,R;Z3,Z4
760  PRINT #2,S;Z3,Z4
770  READ #3,3
780  FOR I=1 TO R[3]
790  IF K<R[3] THEN 810
800  K=R[3]
810  READ #N1;I$
820  IF S2 THEN 1180
822  IF I=E[K] THEN 830
824  A$=I$
826  GOTO 1160
830  IF L1 THEN 920
840  IF K>1 THEN 870
850  E=E[K]
860  GOTO 880
870  E=E[K]-E[K-1]
880  FOR I4=1 TO E
890  READ #3;E$
900  NEXT I4
910  PRINT E$": ";
920  PRINT I$;SPA(2);"?";
930  GOSUB 1480
940  GOTO A1+1 OF 990,960,910,720,950,980,210,3050,4180
950  GOTO L1+1 OF 910,920
960  IF K>1 THEN 720
970  GOTO B1+1 OF 330,590
980  A$=I$
990  IF E[K]#1 OR A1=5 THEN 1130
1000  H$=A$
1010  F$=I$
1020  B4=1
1030  U=2
1040  GOSUB 4640
1050  IF A1=2 THEN 590
1060  A4=B0
1130  K=K+1
1140  I$=A$
1160  GOSUB 2980
1170  IF A2=1 THEN 720
1180  PRINT #N2;I$
1190  NEXT I
1200  IF S2 THEN 1360
1210  IF  NOT B4 THEN 1290
1220  U=2
1225  A$=H$
1230  I0=A4
1235  GOSUB 4650
1240  IF A1 THEN 1460
1245  GOSUB 5680
1250  A$=F$
1260  U=3
1270  I0=A5
1275  GOSUB 4650
1280  GOSUB A1=0 OF 5680
1290  READ #2,S;Z3,Z4
1300  GOSUB 2780
1310  R=R4
1320  PRINT #1,R;Z3,Z4
1330  N1=2
1340  N2=S2=1
1350  GOTO 780
1360  K=1
1370  S2=0
1460  GOSUB 2950
1470  GOTO 590
1480  REM--INPUT ROUTINE
1490  A1=0
1500  T1=255
1510  ENTER T1,Y,A$
1520  PRINT 
1530  IF Y#-256 THEN 1575
1540  IF T1=15 THEN 9990
1550  PRINT '7'7'7"**ARE YOU STILL THERE?";
1560  T1=15
1570  GOTO 1510
1575  IF T1=15 THEN 2020
1580  IF A$="" THEN 2380
1610  FOR Z=1 TO LEN(A$)
1620  IF A$[Z,Z]>" " THEN 1700
1630  IF Z#1 THEN 1655
1640  A$=A$[2]
1650  GOTO 1610
1655  IF A$[Z,Z]<" " THEN 1670
1660  IF A$[Z+1,Z+1]>" " THEN 1700
1670  IF Z>LEN(A$) THEN 1700
1680  A$[Z]=A$[Z+1]
1690  GOTO 1620
1700  IF A$[Z,Z] <= "^" THEN 1760
1710  FOR Z1=1 TO 26
1720  IF A$[Z,Z]#C$[Z1,Z1] THEN 1750
1730  A$[Z,Z]=C$[Z1+26,Z1+26]
1740  GOTO 1760
1750  NEXT Z1
1760  NEXT Z
1765  IF LEN(A$)=0 THEN 2400
1770  IF A$[LEN(A$),LEN(A$)]>" " THEN 1820
1780  A$=A$[1,LEN(A$)-1]
1820  IF A$[1,2]="//" THEN 1830
1825  RETURN 
1830  IF A$[3,4]#"ER" THEN 1900
1840  IF K>N1 THEN 1870
1850  A1=1
1860  RETURN 
1870  PRINT "**BEGIN AGAIN.",LIN(1)
1880  A1=3
1890  RETURN 
1900  IF A$[3,4]="ST" THEN 9990
1910  IF A$[3,4]#"HE" THEN 2040
1920  IF  NOT U THEN 1950
1930  GOSUB 6460
1940  GOTO 2020
1950  PRINT "**YOU MUST FIRST SELECT AN OPERATION TO RECEIVE INSTRUCTIONS."
1960  GOTO 2020
1970  PRINT 
1980  IF A3 THEN 2010
1990  GOSUB 6460
2000  GOSUB 2020
2010  GOSUB A3 OF 6550,6800
2020  A1=2
2030  RETURN 
2040  IF A$[3,4]#"EL" THEN 2090
2050  L2=1
2060  PRINT 
2070  GOSUB 2630
2080  GOTO 2020
2090  IF A$[3,4]#"PR" THEN 2130
2100  L1=0
2110  A1=4
2120  RETURN 
2130  IF A$[3,4]#"NO" THEN 2210
2140  L1=1
2150  IF  NOT K THEN 2020
2160  A1=4
2170  PRINT "INPUT THE VALUE FOR '"E$"' AND CONTINUE."
2180  RETURN 
2210  IF A$[3,4]#"DU" THEN 2330
2220  IF U=2 OR R=0 THEN 2330
2230  PRINT 
2240  READ #1,R;Z,Z,B$
2250  PRINT "#";B$;SPA(3);
2260  FOR J1=1 TO R[3]-1
2270  READ #1;B$
2280  PRINT B$;SPA(3);
2290  NEXT J1
2300  PRINT LIN(1)
2310  IF U=3 THEN 2020
2320  GOTO N1+1 OF 1940,1870
2330  IF A$[3,4]#"MO" THEN 2340
2332  A1=6
2334  RETURN 
2340  IF A$[3,4]#"AD" THEN 2350
2342  A1=7
2344  RETURN 
2350  IF A$[3,4]#"DE" THEN 2354
2351  A1=8
2352  RETURN 
2354  IF A$[3,4]="SE" THEN 2360
2355  PRINT "**INVALID COMMAND."
2356  GOTO 2020
2360  PRINT LIN(2)
2370  CHAIN "SEARCH"
2380  A1=5
2390  IF U#2 THEN 2410
2400  PRINT "**SUPPLY A VALUE."
2405  A1=2
2410  RETURN 
2420  REM--ELEMENT NUMBER INPUT TO NUMERIC CONVERSION
2430  Y=0
2440  IF A$[1,2]="//" THEN 2620
2450  IF A$[1,1]>"9" THEN 2620
2460  IF LEN(A$)>2 THEN 2580
2470  FOR I2=1 TO LEN(A$)
2480  FOR J2=1 TO 10
2490  IF A$[1,1]="0" THEN 2580
2500  IF A$[I2,I2]>"9" THEN 2580
2510  IF A$[I2,I2]<"0" THEN 2580
2520  IF A$[I2,I2]#D$[J2,J2] THEN 2540
2530  Y=10*Y+J2-1
2540  NEXT J2
2550  NEXT I2
2560  IF Y <= R[3] THEN 2620
2580  I=R[3]
2582  GOSUB 7200
2584  PRINT "**USE AN ELEMENT NUMBER OF 1 TO "A$"."
2590  A1=2
2600  RETURN 
2620  IF Y THEN 2850
2630  READ #1,3
2640  FOR Y=1 TO R[3]
2650  READ #1;B$
2660  IF  NOT L2 THEN 2690
2670  PRINT Y;B$
2680  GOTO 2700
2690  IF A$=B$ THEN 2850
2700  NEXT Y
2710  IF  NOT L2 THEN 2750
2720  L2=0
2730  PRINT 
2740  RETURN 
2750  PRINT "**BAD ELEMENT NAME."
2760  GOTO 2590
2780  ASSIGN G$,4,X
2800  IF X THEN 2860
2810  READ #4,1
2820  IF TYP(-4)<3 THEN 2900
2830  PRINT #4,1;S
2840  READ #4,2
2850  RETURN 
2860  ASSIGN Y$,4,X
2870  ENTER 2,Z,Z
2890  GOTO 2780
2900  READ #4;Z
2910  PRINT "**PORT #"Z"USED THE BREAK KEY DURING UPDATE. SEE YOUR FILE MANAGER."
2920  STOP 
2930  RETURN 
2950  PRINT #4,1; END 
2960  ASSIGN Y$,4,X
2970  RETURN 
2980  L3=LEN(A$)
2990  L4=L4+(1+INT((L3+1)/2))
3000  IF L4 <= 252 THEN 3040
3010  PRINT "**YOUR LAST INPUT OVERFLOWS THE RECORD. BEGIN AGAIN AND"
3020  PRINT "  ABBREVIATE WHERE POSSIBLE.";LIN(1)
3030  A2=1
3040  RETURN 
3050  REM--**ADD ROUTINE**
3060  A3=R=0
3070  PRINT TAB(2),"INPUT THE VALUES:";LIN(1)
3080  MAT  READ #1,1;R
3082  U=0
3084  K=R[4]-R[1]
3086  IF K >= 0 THEN 3120
3088  GOSUB 6060
3090  IF (I2+K) >= 0 THEN 3120
3100  PRINT '7'7'7"NO MORE FILE SPACE. SEE FILE MANAGER.";LIN(-2)
3110  GOTO 9990
3120  U=2
3130  K=S2=1
3140  N1=0
3150  PRINT #2,S
3160  READ #3,3
3170  A2=L2=L4=0
3180  FOR I=1 TO R[3]
3190  IF I=1 THEN 3210
3200  K=2
3210  READ #3;E$
3220  IF L1 THEN 3250
3230  PRINT E$": ";
3240  GOTO 3260
3250  PRINT "?";
3260  GOSUB 1480
3270  GOTO A1+1 OF 3290,120,3220,3150,3280,3220,210,3050,4180
3280  GOTO L1+1 OF 3230,3250
3290  GOSUB 2980
3300  IF A2 THEN 3070
3310  IF I#1 THEN 3380
3320  IF A$<"0" THEN 3340
3330  IF A$[1,1]<":" THEN 3360
3340  PRINT "**ILLEGAL ID NUMBER."
3350  GOTO 3220
3360  GOSUB 4640
3370  IF A1=2 THEN 3120
3375  I$=A$
3380  IF I#R[16] THEN 3400
3390  O$=A$
3400  PRINT #2;A$
3410  NEXT I
3415  GOSUB 2780
3416  MAT  READ #1,1;R
3418  K=R[4]-R[1]
3420  GOSUB 6060
3422  IF  NOT A1 THEN 3430
3424  GOSUB 2950
3426  GOTO 3100
3430  R=F2
3450  IF R[5] THEN 3600
3460  Z1=Z2=0
3470  R1=R
3480  READ #2,S
3490  GOSUB 4040
3500  PRINT #1,7;0,R
3510  PRINT #1,9;0,R
3520  R[5]=1
3530  MAT  PRINT #1,1;R
3540  GOTO 3950
3600  I0=B0
3605  A$=I$
3610  GOSUB 4650
3615  IF A1 THEN 3950
3620  GOSUB 5680
3630  A$=O$
3640  GOSUB 4670
3670  READ #2,S
3680  IF K3 OR B>9 THEN 3740
3690  F5=0
3700  MAT  READ #1,1;R
3710  R[2]=R
3720  MAT  PRINT #1,1;R
3730  GOTO 3780
3740  F5=I[K3]
3750  IF K3<K5 OR F THEN 3780
3760  F4=0
3770  GOTO 3790
3780  IF K3<K5 THEN 3784
3782  READ #1,F;Z,I[K3+1]
3784  F4=I[K3+1]
3790  PRINT #1,R;F4,F5
3800  GOSUB 4110
3805  GOSUB 5680
3820  IF F5 THEN 3850
3830  R1=I[K3+1]
3840  GOTO 3920
3850  R1=I[K3]
3860  GOSUB 3980
3870  R2=Z1
3880  Z1=R
3890  GOSUB 4010
3900  R1=R2
3910  IF  NOT F4 THEN 3950
3920  GOSUB 3980
3930  Z2=R
3940  GOSUB 4010
3950  GOSUB 2950
3955  IF A1 THEN 3120
3960  PRINT LIN(-1);"**NEXT RECORD**",LIN(-1)
3970  GOTO 3080
3980  REM--SETS POINTERS
3990  READ #1,R1;Z1,Z2
4000  RETURN 
4010  PRINT #2,S;Z1,Z2
4020  GOSUB 4080
4030  READ #2,S;Z1,Z2
4040  PRINT #1,R1;Z1,Z2
4050  GOSUB 4110
4060  RETURN 
4080  N1=1
4090  N2=2
4100  GOTO 4130
4110  N2=1
4120  N1=2
4130  FOR I=1 TO R[3]
4140  READ #N1;A$
4150  PRINT #N2;A$
4160  NEXT I
4170  RETURN 
4180  REM--**DELETE ROUTINE**
4190  U=3
4200  A3=N1=K=R=0
4210  S2=1
4220  PRINT LIN(1),"ID#? ";
4230  GOSUB 1480
4240  GOTO A1 OF 120,4220,4220,4220,4220,210,3050,4180
4250  GOSUB 4640
4280  IF A1=2 THEN 4220
4285  E0=R[16]
4290  READ #1,R;Z3,Z4
4291  GOSUB 6400
4292  I$=E$
4293  O$=B$
4294  IF L1 THEN 4300
4295  READ #3,3
4296  FOR J0=1 TO E0
4297  READ #3;H$
4298  NEXT J0
4299  PRINT H$"= ";
4300  PRINT O$"? ";
4310  GOSUB 1480
4315  IF A1=2 THEN 4299
4320  IF A$[1,1]="Y" THEN 4340
4325  PRINT '7"NOT DELETED."
4326  GOTO A1-5 OF 210,3050,4180
4328  GOTO 4180
4340  GOSUB 2780
4342  I0=B0
4344  A$=I$
4346  GOSUB 4650
4348  IF A1 THEN 4600
4350  IF Z4 THEN 4410
4360  Z2=0
4370  MAT  READ #1,1;R
4372  IF Z3 THEN 4385
4374  PRINT #1,7;0
4376  PRINT #1,9;0
4378  R[5]=0
4380  GOTO 4390
4385  R[2]=Z3
4390  MAT  PRINT #1,1;R
4400  GOTO (Z3>0)+1 OF 4580,4460
4410  R1=Z4
4420  GOSUB 3980
4430  Z1=Z3
4440  GOSUB 4010
4450  IF  NOT Z3 THEN 4520
4460  R1=Z3
4470  GOSUB 3980
4480  Z2=Z4
4490  GOSUB 4010
4520  GOSUB 5680
4530  A$=O$
4540  GOSUB 4670
4550  IF B THEN 4570
4560  B=I0
4570  GOSUB 5680
4580  PRINT #1,R
4590  GOSUB 6060
4600  GOSUB 2950
4605  IF A1 THEN 4325
4610  PRINT "**DELETED**"
4620  GOTO 4180
4640  B0=I0=7
4650  E0=1
4660  GOTO 4710
4670  B0=I0=9
4680  E0=R[16]
4710  B=K1=K4=K5=K6=K7=S1=0
4720  K2=K3=121
4730  A=LEN(A$)
4735  MAT I=ZER
4740  K7=(U=3 AND E0#1)
4760  READ #1,I0;F
4770  IF TYP(-1)#4 THEN 4830
4780  IF F THEN 5020
4790  IF U#2 THEN 5040
4800  K3=1
4810  I[1]=K5=0
4820  RETURN 
4830  READ #1;F3
4840  READ #1,F3;Z,Z
4850  GOSUB 6400
4890  GOSUB 5560
4900  GOTO S1 OF 5040,5000
4910  GOTO U OF 4970,4920,4930
4920  IF E0=1 THEN 5500
4930  IF K7 THEN 5210
4935  B=I0
4940  K3=1
4950  GOTO 5080
4970  R=F3
4980  B2=1
4990  RETURN 
5000  B=B0=I0
5010  IF F=0 THEN 5040
5020  I0=F
5030  GOTO 4760
5040  IF K7 THEN 5210
5045  IF B THEN 5080
5050  B=I0
5060  IF U#2 THEN 5310
5070  K3=0
5080  GOSUB 5085
5082  GOTO 5150
5085  READ #1,B;F
5090  FOR K2=1 TO 121
5100  K5=K2
5110  READ #1;I[K2]
5112  IF  NOT K7 THEN 5120
5114  IF I[K2]#R THEN 5120
5116  K6=K2
5120  IF TYP(-1)=4 THEN 5140
5130  NEXT K2
5140  K2=K2+1
5145  RETURN 
5150  IF  NOT K3 THEN 5550
5160  K3=INT((K2-K1)/2)+K1
5180  IF (K3-K4)#0 THEN 5330
5190  GOTO U OF 5310,5550
5200  IF E0=1 THEN 5310
5210  B=B+9* NOT B
5220  GOSUB 5085
5230  IF K6 THEN 5260
5240  B=F
5250  GOTO (B#0)+1 OF 5520,5220
5260  K3=K6
5270  RETURN 
5310  PRINT "**NO SUCH ID NUMBER."
5320  GOTO 5520
5330  READ #1,I[K3];Z3,Z4
5340  GOSUB 6400
5390  GOSUB 5560
5410  GOTO S1+1 OF 5480,5430,5450
5430  K2=K3
5440  GOTO 5460
5450  K1=K3
5460  K4=K3
5470  GOTO 5160
5480  IF U#2 THEN 5540
5490  IF E0#1 THEN 5550
5500  PRINT "**DUPLICATE ID."
5510  PRINT 
5520  A1=2
5530  RETURN 
5540  R=I[K3]
5550  RETURN 
5560  D=D1=0
5562  IF A$[1,1]>"9" THEN 5590
5564  IF A$="-" THEN 5590
5566  IF A$[1,1]#"-" THEN 5570
5568  D=1
5570  IF B$[1,1]#"-" THEN 5574
5572  D1=1
5574  D2=LEN(A$)-D
5576  D3=LEN(B$)-D1
5578  IF D2<D3 THEN 5630
5580  IF D2>D3 THEN 5650
5590  IF A$<B$ THEN 5630
5600  IF A$>B$ THEN 5650
5610  S1=0
5620  RETURN 
5630  S1=1+D1
5640  RETURN 
5650  S1=2-D
5660  RETURN 
5680  Y2=0
5690  IF B THEN 5720
5700  M0=I0
5710  GOTO 5730
5720  M0=B
5730  IF U=3 THEN 5800
5740  Y2=K5>119
5800  IF Y2 THEN 5830
5810  READ #1,M0;F2
5820  GOTO 5890
5830  GOSUB 6060
5890  PRINT #1,M0;F2
5900  FOR I1=1 TO K5
5910  IF U=3 AND I1=K3 THEN 6010
5920  IF K3 OR I1>1 THEN 5940
5930  PRINT #1;R
5940  PRINT #1;I[I1]
5950  IF  NOT Y2 OR I1#60 THEN 5990
5960  PRINT #1,F2;F
5980  Y2=0
5990  IF U=3 OR I1#K3 THEN 6010
6000  PRINT #1;R
6010  NEXT I1
6012  IF K5>1 OR U#3 THEN 6034
6014  B=B0
6016  GOSUB 5085
6018  PRINT #1,M0
6020  MAT  READ #1,B;I[K2]
6022  I[1]=F2
6024  MAT  PRINT #1,B;I
6026  R0=R
6028  R=M0
6030  GOSUB 6060
6032  R=R0
6034  RETURN 
6060  M1=8
6070  READ #1,M1;F2
6080  IF  NOT F2 THEN 6102
6082  IF U THEN 6090
6084  I2=2
6086  RETURN 
6090  B1=M1
6095  M1=F2
6100  GOTO 6070
6102  GOSUB 6110
6104  GOTO 6150
6110  FOR I2=1 TO 121
6120  IF TYP(-1)=4 THEN 6142
6130  READ #1;J[I2]
6140  NEXT I2
6142  I2=I2-1
6145  RETURN 
6146  FOR I3=1 TO I2
6147  PRINT #1;J[I3]
6148  NEXT I3
6149  RETURN 
6150  IF  NOT U THEN 6176
6152  IF U=2 THEN 6200
6160  IF I2<120 THEN 6180
6162  PRINT #1,R[1];0,R
6164  PRINT #1,M1;R[1]
6168  GOSUB 6146
6170  R[1]=R[1]+1
6175  MAT  PRINT #1,1;R
6176  RETURN 
6180  PRINT #1;R
6190  RETURN 
6200  IF  NOT I2 THEN 6262
6220  PRINT #1,M1;F2
6225  F2=J[I2]
6230  I2=I2-1
6240  GOSUB 6146
6250  I2=I3
6260  GOTO 6330
6262  IF M1=8 THEN 6280
6264  F2=M1
6265  READ #1,B1;Z
6266  GOSUB 6110
6267  PRINT #1,B1;0
6270  GOSUB 6146
6280  IF K<0 THEN 6330
6290  F2=R[1]
6300  R[1]=R[1]+1
6310  MAT  PRINT #1,1;R
6330  I=K+I2
6335  IF I>100 THEN 6360
6340  IF I>10 AND I/10#INT(I/10) THEN 6360
6345  GOTO I+2 OF 5520,6360
6350  GOSUB 7200
6352  PRINT LIN(-1);"WARNING - ONLY "A$" RECORD";
6354  IF A$="1" THEN 6358
6356  PRINT "S";
6358  PRINT " LEFT."
6360  RETURN 
6400  IF E0=1 THEN 6442
6405  READ #1;E$
6410  FOR J0=2 TO E0
6420  READ #1;B$
6430  NEXT J0
6440  RETURN 
6442  READ #1;B$
6444  RETURN 
6460  PRINT 
6470  IF A3 THEN 6800
6480  A3=1
6490  GOTO U-1 OF 6520,6540
6500  A$="MODIFY"
6510  GOTO 6550
6520  A$="ADD"
6530  GOTO 6550
6540  A$="DELETE"
6550  PRINT "THE FOLLOWING COMMANDS MAY BE USED DURING '"A$"' OPERATIONS"
6555  PRINT "(YOU MAY ABBREVIATE TO TWO LETTERS):";LIN(1)
6560  PRINT "'//MODIFY', '//ADD', OR '//DELETE' TRANSFERS DIRECTLY TO THE"
6570  PRINT "   NAMED OPERATION."
6575  PRINT "'//SEARCH' TRANSFERS DIRECTLY TO THE FILE SEARCH PROGRAM."
6580  PRINT "'//HELP' BRINGS FURTHER INSTRUCTIONS."
6590  PRINT "'//STOP' IMMEDIATELY ENDS THE PROGRAM."
6600  PRINT "'//ERROR' RETURNS TO THE PREVIOUS QUERY."
6610  IF U=3 THEN 6700
6620  PRINT "'//ELEMENTS' PRINTS A LIST OF ELEMENT NAMES."
6630  PRINT "'//NO PROMPT' SUPPRESSES PRINTOUT OF ELEMENT NAMES DURING"
6640  PRINT "   INPUT OPERATIONS."
6650  PRINT "'//PROMPT' RESTORES PRINTOUT OF ELEMENT NAMES."
6660  IF U=2 THEN 6710
6670  PRINT "A 'RETURN' ONLY (NO INPUT) IS USED AFTER THE LAST OF A SERIES"
6680  PRINT "   OF INPUTS HAS BEEN ENTERED (ELEMENT NAMES, FOR EXAMPLE). IT IS"
6690  PRINT "   ALSO USED TO INDICATE THAT THE CURRENT VALUE IS CORRECT"
6695  PRINT "   (AS WHEN MODIFYING A RECORD)."
6700  PRINT "'//DUMP' PRINTS THE ENTIRE CONTENTS OF A RECORD."
6710  PRINT 
6720  PRINT "DO YOU NEED FURTHER INSTRUCTIONS (YES/NO)?";
6730  ENTER 255,Y,A$
6740  PRINT 
6750  IF Y=-256 THEN 7120
6760  IF A$[1,1]="N" THEN 7120
6770  IF A$[1,1]#"Y" THEN 6720
6780  PRINT 
6790  A3=2
6800  GOTO U OF 6900,7010
6810  PRINT "A RECORD IS DELETED BY FIRST TYPING THE RECORD ID NUMBER."
6820  READ #3,3;A$,A$,A$
6830  PRINT "THE VALUE FOR THE ELEMENT '"A$"' IS THEN PRINTED. IF THIS VALUE"
6840  PRINT "   AGREES WITH THE EXPECTED VALUE, TYPE 'YES' IN RESPONSE."
6850  PRINT "THE MESSAGE '**DELETED**' WILL THEN VERIFY DELETION OF THAT RECORD."
6860  PRINT "IF THE VALUE FOR '"A$"' DOES NOT AGREE, TYPE 'NO'."
6870  PRINT "ANY COMMAND MAY ALSO BE TYPED (INCLUDING '//DUMP', TO EXAMINE"
6880  PRINT "   THE CONTENT OF THE RECORD BEFORE TAKING FURTHER ACTION)."
6890  GOTO 7120
6900  PRINT "ANY NUMBER OF ELEMENTS IN A RECORD MAY BE SPECIFIED FOR MODIFYING."
6910  PRINT "THEY MUST BE ENTERED IN INCREASING ORDER."
6920  PRINT "YOU MAY MODIFY THE SAME ELEMENTS FOR A SERIES OF RECORDS"
6930  PRINT "   (THEREBY SPECIFYING THE ELEMENTS ONLY ONCE), OR DIFFERENT"
6940  PRINT "   ELEMENTS MAY BE MODIFIED FOR EACH RECORD (YOU MUST THEN"
6950  PRINT "   RESPECIFY THE ELEMENTS FOR EACH RECORD)."
6960  PRINT "TO CHANGE FROM ONE OF THESE MODES TO THE OTHER, TYPE '//MODIFY'"
6970  PRINT "   TO A QUERY AND START AGAIN."
6980  PRINT "USE '//ERROR' TO CORRECT A MISTAKE MADE DURING A SERIES OF INPUTS,"
6990  PRINT "   AS WHEN INPUTTING ELEMENTS OR VALUES."
7000  GOTO 7120
7010  PRINT "YOU MUST ASSIGN AN ID NUMBER TO EACH NEW RECORD. EACH ID MUST BE"
7015  PRINT "   UNIQUE AND MUST BEGIN WITH A DIGIT."
7020  PRINT "YOU MAY THEN INPUT THE VALUES FOR EACH ELEMENT. IF NO VALUE,"
7030  PRINT "   USE A '-' (DASH)."
7040  PRINT "USE SPECIAL CARE TO AVOID ERRORS AND FOLLOW THE DATA FORM"
7050  PRINT "   REQUIREMENTS (IF ANY) PRESCRIBED FOR EACH ELEMENT,"
7060  PRINT "   ESPECIALLY IN THE USE OF BLANKS, COMMAS, AND DECIMALS."
7070  PRINT "USE '//ERROR' TO BEGIN THE INPUT LIST AGAIN."
7080  PRINT "TYPE A 'CTRL X' TO DELETE A LINE BEING TYPED,"
7090  PRINT "   OR USE THE 'SHIFT O' KEY TO ERASE CHARACTERS."
7100  PRINT "USE '//NO PROMPT' IF YOU DO NOT WISH THE ELEMENT NAMES"
7110  PRINT "   TO BE PRINTED."
7120  PRINT 
7130  A1=2
7140  RETURN 
7200  REM--NUM-STR
7210  A$=""
7220  J=I/10
7230  I=INT(J)
7235  J=10*(J-I)
7240  A$[1,1]=D$[J+1,J+1]
7250  A$[2]=A$
7260  IF I THEN 7220
7270  A$=A$[2]
7280  RETURN 
9990  CHAIN "FINDIT",9999
9999  END 
