10  COM B$[7],G$[7],D$[7],S,K1
12  REM
13  REM       FINDIT:  FILE INFORMATION DIALOGUE TECHNIQUE
14  REM       FINDIT:  PART 2 OF 8
15  REM 36250C, 6/74
16  REM
20  DIM A$[72],C$[52],E$[7],F$[6],H$[6]
30  C$="etoanirshdlcwumfygpbvkxqjzETOANIRSHDLCWUMFYGPBVKXQJZ"
40  FILES *,*
50  PRINT "FILE: ";
60  K0=K1=K2=0
70  ENTER #S,255,X,A$
80  GOSUB 490
90  IF A1 THEN 50
100  S=S+1
110  ASSIGN A$,1,X
120  IF X<3 THEN 160
130  PRINT 
140  PRINT "**NO SUCH FILE."
150  GOTO 50
160  GOSUB 790
162  IF LEN(A$)<7 THEN 170
164  IF LEN(A$)>7 THEN 168
165  IF A$[1,1]="$" THEN 170
166  IF A$[1,1]="*" THEN 170
168  PRINT "**INVALID NAME."
169  GOTO 50
170  B$=A$
180  READ #1,2
182  IF TYP(-1)=2 THEN 188
184  PRINT "**YOU MUST RUN THE 'CREATE' PROGRAM TO INITIALIZE THE FILE."
186  GOTO 9999
188  READ #1;G$,D$,E$,F$,H$
189  GOTO 2000
190  PRINT "PASSWORD: ";
200  K1=1
210  GOSUB 460
215  GOSUB 790
220  GOTO A1+1 OF 250,230,50
230  PRINT 
240  GOTO 190
250  IF A$=F$ THEN 360
260  IF A$=H$ THEN 360
280  IF A$=E$ THEN 340
300  PRINT "**INVALID PASSWORD."
310  K0=K0+1
320  GOTO (K0>5)+1 OF 190,9999
340  A$="SEARCH"
350  GOTO 820
360  PRINT "COMMAND? ";
370  K1=0
390  GOSUB 460
400  GOTO A1 OF 360,50
410  IF A$[1,2]#"SE" THEN 430
415  A$="SEARCH"
416  READ #1,1;R
417  IF R>10 THEN 820
418  PRINT "**FILE '"B$"' IS EMPTY. TYPE 'UPDATE' TO ADD DATA."
420  GOTO 360
430  IF A$[1,2]#"UP" THEN 440
432  A$="UPDATE"
434  GOTO 820
440  PRINT "**TYPE 'SEARCH' OR 'UPDATE'."
450  GOTO 360
460  ENTER 255,X,A$
470  IF K1 THEN 490
480  PRINT 
490  IF X=-256 THEN 9999
500  A1=0
505  IF A$="" THEN 780
510  FOR Z=1 TO LEN(A$)
520  IF A$[Z,Z]#" " THEN 600
530  IF Z#1 THEN 560
540  A$=A$[2]
550  GOTO 510
560  IF A$[Z+1,Z+1]#" " THEN 600
570  IF Z>LEN(A$) THEN 600
580  A$[Z]=A$[Z+1]
590  GOTO 520
600  IF A$[Z,Z] <= "^" THEN 660
610  FOR Z1=1 TO 26
620  IF A$[Z,Z]#C$[Z1,Z1] THEN 650
630  A$[Z,Z]=C$[Z1+26,Z1+26]
640  GOTO 660
650  NEXT Z1
660  NEXT Z
670  IF A$[LEN(A$),LEN(A$)]#" " THEN 720
680  A$=A$[1,LEN(A$)-1]
720  IF A$[1,2]#"//" THEN 780
730  IF A$[1,4]="//ST" THEN 9999
732  IF A$[1,4]#"//ER" THEN 740
734  A1=2
736  PRINT 
738  RETURN 
740  IF K2 THEN 760
750  PRINT 
760  PRINT "**'//STOP' AND '//ERROR' ARE THE ONLY LEGAL COMMANDS HERE."
770  A1=1
780  RETURN 
790  K2=6+K1*4
800  PRINT TAB(K2);"HHHHHH"'13;TAB(K2);"XXXXXX"
810  RETURN 
820  E$="$"
830  E$[2]=A$
840  CHAIN E$
2000  ASSIGN D$,2,Z2
2010  IF Z2 THEN 2040
2020  READ #2,1
2030  IF TYP(2)#3 THEN 2100
2040  ASSIGN G$,2,Z2
2060  GOTO 190
2100  READ #2;X1
2110  PRINT "**THE BREAK KEY AT PORT ";
2120  PRINT  USING "#,DDX";X1
2130  PRINT "WAS USED DURING A FILE UPDATE."
2140  PRINT "  THE FILE MANAGER SHOULD BE NOTIFIED IMMEDIATELY, AND THE"
2150  PRINT "  FILES '"A$"' AND '"D$"' RELOADED FROM THE BACKUP MAG TAPE."
9999  END 
