220 FOR X = 1 TO NC:B1 = CL(X -1): PRINT D$"READ"N$",R"0",B"B1: CALL 783:H$(X) = MID$ (TE$,1): NEXT : PRINT D$"CLOSE": FOR X = 1 TO NC:CL%(X) = CL(X) -CL(X -1) -1: NEXT : GOSUB 50
240 PRINT CHR$(7);: GOTO 8000
340 PRINT : PRINT OF$LL",D"D1: FOR I = 1 TO RC:B1 = CL(C -1): PRINT RF$I",B"B1: CALL 783:S$(I) = MID$ (TE$,1): NEXT : PRINT CL$: RETURN
8080 EN = Y -1: PRINT "FOR EXISTING FILE-CONSTRUCT FROM": PRINT "RECORD # (1-"RC") ";: INPUT A: IF A <1 OR A >RC THEN PRINT CHR$(7);: GOSUB 390: GOTO 8080
8090 PRINT : PRINT "TO RECORD # ("A"-"RC") ";: INPUT B: IF B <A OR B >RC THEN PRINT CHR$(7);: GOSUB 390: GOTO 8090
8095 PRINT : PRINT :EM = EN
8102 PRINT : INPUT "ADD HOW MANY FIELDS (0-10): ";N3: IF N3 <0 OR N3 >10 THEN PRINT CHR$(7);: GOSUB 380: GOTO 8102
8103 IF N3 = 0 THEN 8108
8104 FOR X = 1 TO N3: PRINT : PRINT "ENTER LENGTH FOR FIELD # "X" (1-239) ";: INPUT L: IF L <1 OR L >239 THEN PRINT CHR$(7);: GOSUB 380: GOTO 8104
8105 S2(X +EN) = X +EN:SL(X +EN) = SL(X +EN -1) +L +1:EM = EM +1
8107 NEXT X: PRINT : HTAB 14: PRINT "< WORKING >": FOR X2 = 1 TO 40: FOR Y2 = (1 +EN) TO (EN +N3):B$(X2,Y2) = "": NEXT Y2: NEXT X2
8108 HOME : FOR X = 1 TO EN: PRINT TAB( 4)X;"- ("CL%(S1(X))") ";: HTAB 14: PRINT H$(S1(X)): NEXT
8110 IF N3 >0 THEN FOR X = 1 TO N3: PRINT TAB( 4)X +EN"- ("(SL(X +EN) -SL(X -1 +EN) -1)") ";: HTAB 14: PRINT A$(X +EN): NEXT
8113 PRINT : INPUT "ENTER THE LENGTH OF THE LONGEST FIELD YOU WILL SORT OR SEARCH (>9) ? ";N2: IF N2 <10 THEN PRINT CHR$(7): GOTO 8108
8115 N2 = N2 +12:RR = INT(28700/N2):L1% = INT(252960/(N2 -12)): IF L1% <RR THEN RR = L1%
8117 LB = (SL(EM) +EM): PRINT : PRINT "APPEND FROM FILE NAME (END/FILE NAME) ?":L = 28: GOSUB 800:N1$ = B$: IF N1$ = "" THEN GOSUB 380: PRINT CHR$(7);: GOTO 8117
8120 IF N1$ = "END" THEN PRINT :N2$ = N$: GOTO 8250
8125 ONERR GOTO 8850
8130 PRINT : HOME : PRINT CHR$(7): VTAB 11: PRINT "PLACE <DISKETTE C> 'APPEND FROM'": PRINT "INTO DRIVE #1 AND PRESS 'RTN' ";: GET Z$: PRINT : PRINT D$"OPEN"N1$".V,D1": PRINT D$"READ"N1$".V": INPUT A1,A2,A3: FOR X = 1 TO A1: INPUT CM(X): NEXT : PRINT CL$:LA = (CM(A1) +A1): PRINT : POKE 216,0
8140 PRINT D$"OPEN"N1$",L"LA: FOR X3 = 1 TO A1:B1 = CM(X3 -1): PRINT D$"READ"N1$",R"0",B"B1: CALL 783:S$(X3) = MID$ (TE$,1): NEXT : PRINT D$"CLOSE": DIM CM%(A1): FOR X3 = 1 TO A1:CM%(X3) = CM(X3) -CM(X3 -1) -1: NEXT
8150 HOME : PRINT "FLD#";: HTAB 6: PRINT "LENGTH";: HTAB 13: PRINT "NAME": GOSUB 410: FOR X3 = 1 TO A1: PRINT TAB( 2)X3;: HTAB 7: PRINT "("CM%(X3)")";: HTAB 13: PRINT S$(X3): NEXT : PRINT
8190 Z = Z +1
8200 PRINT "SELECT FIELD # ('RTN'=SAME/1-"A1") ";: INPUT S1$:S2(Z) = VAL(S1$): IF S2(Z) >A1 THEN PRINT CHR$(7);: GOSUB 380: GOTO 8200
8205 IF S1$ = "" THEN FOR Z = 1 TO EN:S2(Z) = S1(Z): NEXT : GOTO 8230
8210 IF Z = EN THEN PRINT : GOTO 8230
8220 GOTO 8190
8230 PRINT : PRINT "CONSTRUCT FROM RECORD # (1-"A2") ";: INPUT C: IF C <1 OR C >A2 THEN PRINT CHR$(7);: GOSUB 390: GOTO 8230
8240 PRINT : PRINT "TO RECORD # (1-"A2") ";: INPUT D: IF D <1 OR D >A2 THEN PRINT CHR$(7);: GOSUB 390: GOTO 8240
8245 PRINT
8250 PRINT "CALL NEW FILE WHAT NAME (28) ? ":L = 28: GOSUB 800:N2$ = B$: IF N2$ = "" OR (N2$ = N$ AND D1 = 1) THEN GOSUB 390: PRINT CHR$(7);: GOTO 8250
8260 PRINT : IF (B -A) +(D -C) +2 >RR THEN PRINT CHR$(7): HOME : VTAB 12: PRINT TAB( 7)"=APPENDING TO MANY RECORDS=": FOR TI = 1 TO 3000: NEXT : GOTO 8000
8265 R8 = INT(15000/LL): IF R8 >40 THEN R8 = 40
8270 HOME : VTAB 12: PRINT CHR$(7);: PRINT "LOAD <DISKETTE B> AN INITIALIZED 'NEW FILE' DISKETTE INTO DRIVE #1 AND": PRINT "PRESS'RTN' ";: GET Z$: HOME : VTAB 10: PRINT TAB( 11)"< WRITING PART 1 >"
8600 IF D1 = 2 THEN HOME : VTAB 12: PRINT "LOAD <DISKETTE C> 'APPEND FROM FILE'": PRINT "INTO DRIVE #2 AND PRESS 'RTN' ";: FOR TI = 1 TO 15: PRINT CHR$(7);: NEXT : GET Z$
8610 HOME : HTAB 8: PRINT "< APPENDING DATA PART 2 >": GOSUB 410:R2 = 0:R7 = (D -C) +1:R4 = C:R5 = 0:R3 = R7: VTAB 5: HTAB 5: PRINT "WE WILL BE MOVING";: HTAB 23: PRINT R7;: HTAB 28: PRINT "RECORDS"
8640 IF D1 = 1 THEN PRINT CHR$(7);: VTAB 20: INPUT "LOAD <DISKETTE C> 'APPEND FROM FILE' ANDPRESS 'RTN'";Z$: GOSUB 390
8650 R6 = 0: IF R3 >R8 THEN R1 = R8: GOTO 8665
8660 R1 = R3
8665 ONERR GOTO 9000
8670 VTAB 9: HTAB 11: PRINT "MOVING";: HTAB 18: PRINT R1" ";: HTAB 21: PRINT "RECORDS": PRINT D$"OPEN"N1$",L"LA",D"D1:R5 = R5 +(R1 +(C -1)):C = 1: FOR X2 = R4 TO R5:R6 = R6 +1: FOR X = 1 TO EN:B1 = CM(S2(X) -1)
8680 PRINT D$"READ"N1$",R"X2",B"B1: CALL 783:B$(R6,X) = MID$ (TE$,1,CL%(S1(X))): NEXT : NEXT : PRINT CL$: POKE 216,0