10  COM G$[7],T$[7],Z$[7],S1,U1,W2,Z2,R[16]
20  COM A,C0,C1,C2,C3,C4,C5,C6,C9,D0,Y1,Y2,Z4,Z7,Z8,E0,F,I4,K2,L1,L2
30  COM L3,Z3,O,O1,O2,P,Z5,P1,P2,P3,R1,R2,R5,T,T2
40  COM A[30],B[1,30],N[1,30],X[30],Y[30]
50  COM C[15],E[100],F[15],G[15],J[15],K[10]
60  COM A$[72],B$[72],C$[52],D$[14],E$[72],F$[72],H$[72],I$[72]
70  COM J$[72],K$[72],L$[72],M$[72],N$[72],O$[72],P$[72],Q$[72]
80  COM R$[72],S$[72],U$[72],V$[72],W$[72],X$[72],Y$[72]
85  REM FINDIT,36250C, 6/74
90  DIM I[121]
100  DATA 0,1,2,3,4,5,6,7,8,9,10,15
110  READ C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,D0,D5
115  P2=C0
120  FILES *,*,*
200  ASSIGN G$,C1,X
230  MAT  READ #C1,C1;R
240  C$="etoanirshdlcwumfygpbvkxqjzETOANIRSHDLCWUMFYGPBVKXQJZ"
250  D$="0123456789.+-,"
260  ASSIGN G$,C3,X
270  ASSIGN T$,C2,X
290  Z2=Z3=Z8=C0
300  PRINT "SEARCH CONDITIONS:"
310  R1=R[C2]
320  A3=H1=L1=L2=L3=O=O1=O2=C0
330  N=P=P1=S=T=T2=U=W2=C0
340  E=E0=K8=R2=C0
350  MAT C=ZER
370  MAT F=ZER
380  MAT J=ZER
390  MAT G=ZER
395  I$=""
396  O9=C0
400  A4=K0=C1
410  FOR I4=C1 TO D5
420  IF Z2 THEN 440
430  PRINT "? ";
440  GOSUB 3200
450  GOTO A1+C1 OF 480,290,470,3940
460  GOTO (I4>C1)+C1 OF 4045,960
470  GOTO Z3+C1 OF 290,350
480  GOSUB 7620
490  IF A1 THEN 420
500  A$=E$
510  IF W$[C2]#"" THEN 540
520  PRINT "**SUPPLY A VALUE."
530  GOTO 420
540  GOSUB 2950
550  IF A1 THEN 420
560  GOSUB 1590
570  IF A1 THEN 420
580  F[I4]=I
590  A$=W$
600  IF I4=C1 THEN 670
610  IF F[I4] <= F[I4-C1] THEN 640
620  K0=I4
630  E=K8=C0
640  IF F[I4] >= F[I4-C1] THEN 670
650  GOSUB 9130
660  GOTO 300
670  GOSUB 2350
680  IF A1=C2 THEN 420
690  IF LEN(W$)<C3 THEN 730
700  IF W$[LEN(W$)-C1]#"//" THEN 730
710  J[I4]=LEN(W$)-C2
720  W$=W$[C1,LEN(W$)-C2]
730  IF F[C1]#C1 OR G[C1]#C1 THEN 850
740  IF I4=C1 THEN 800
745  IF F[I4]#C1 THEN 850
750  E0=C0
760  R1=R[C2]
770  R2=C1
780  T=C0
790  GOTO 930
800  U=C1
810  GOSUB 8330
820  IF A1#C2 THEN 840
830  GOTO (I4=C1)+C1 OF 420,310
840  T=C1
850  IF F[I4]#R[16] OR G[I4]=C2 THEN 930
860  IF I$="" THEN 900
870  B$=I$
880  GOSUB 8910
890  IF S=C2 THEN 910
900  I$=W$
910  U=(G[I4]#C2)+C1
920  IF A1=C2 THEN 420
922  O9=(G[I4]=C0)
930  GOSUB I4 OF 1750,1770,1790,1810,1830,1850,1870,1890,1910,1930
940  GOSUB I4-D0 OF 1950,1970,1990,2010,2030
950  NEXT I4
960  REM
990  IF T#C1 OR I4#C2 THEN 1010
1000  U=C0
1010  IF U<C2 THEN 4050
1020  A$=B$
1030  U=C2
1035  A$=I$
1040  GOSUB 8360
1050  GOTO 4050
1060  IF P2#C2 THEN 1070
1061  IF  NOT P6 THEN 1065
1062  IF TYP(-C3)=C1 THEN 1065
1063  IF  NOT F1 THEN 9150
1064  READ #C3,F1;F1
1065  READ #C3;R1
1066  READ #C1,R1
1067  IF TYP(-C1)=C4 THEN 1560
1068  READ #C1;Z,Z
1069  GOTO 1072
1070  READ #C1,R1;R2,Z
1072  IF I4<C0 THEN 1440
1075  O2=(O=C0)
1080  K=C1
1090  FOR I1=C1 TO F[I4-C1]
1100  READ #C1;E$
1110  IF I1#F[K] THEN 1530
1120  GOSUB K OF 2050,2070,2090,2110,2130,2150,2170,2190,2210,2230
1130  GOSUB K-D0 OF 2250,2270,2290,2310,2330
1140  A$=E$
1170  IF  NOT J[K] THEN 1190
1180  A$=E$[C1,J[K]]
1190  B$=W$
1200  GOSUB 8910
1202  IF F[K]#R[16] OR G[K]#C3 OR O9 THEN 1210
1203  IF  NOT J[K] THEN 1210
1204  IF B$[C1,C1] <= "9" THEN 1210
1205  IF S=C2 THEN 9150
1210  IF  NOT G[K] AND  NOT S OR G[K]=S+C1 THEN 1425
1380  IF O2 AND K >= O1 OR K=I4-C1 THEN 1560
1390  K=K+C1
1400  IF  NOT G[K-C1] OR C[K-C1] AND F[K]=F[K-C1] THEN 1420
1410  GOTO 1560
1420  GOTO (F[K]>F[K-C1])+C1 OF 1120,1530
1425  O2=O2+ NOT G[K]
1430  IF K<O1 OR  NOT O2 THEN 1480
1440  T=T+C1
1450  IF R5 THEN 5030
1460  GOTO P1-C3 OF 5530,7330
1470  GOTO 6980
1480  K=K+C1
1490  IF  NOT O2 AND K-C1>O THEN 1560
1500  IF F[K]>F[K-C1] THEN 1530
1510  IF K=I4 THEN 1440
1520  GOTO (C[K-C1])+C1 OF 1120,1480
1530  NEXT I1
1540  ASSIGN G$,C1,X
1550  ASSIGN T$,C2,X
1560  IF P2=C2 THEN 1061
1565  IF  NOT R2 THEN 9150
1570  R1=R2
1580  GOTO 1060
1590  IF Y THEN 1680
1600  READ #C1,C3
1610  FOR I=C1 TO R[C3]
1620  READ #1;E$
1630  IF  NOT A1 THEN 1660
1640  PRINT I;E$
1650  GOTO 1700
1660  IF A$#E$ THEN 1700
1670  RETURN 
1680  I=Y
1690  RETURN 
1700  NEXT I
1710  IF A1 THEN 1690
1720  PRINT "**BAD ELEMENT NAME."
1730  GOTO 3800
1750  H$=W$
1760  RETURN 
1770  J$=W$
1780  RETURN 
1790  K$=W$
1800  RETURN 
1810  L$=W$
1820  RETURN 
1830  M$=W$
1840  RETURN 
1850  N$=W$
1860  RETURN 
1870  O$=W$
1880  RETURN 
1890  P$=W$
1900  RETURN 
1910  Q$=W$
1920  RETURN 
1930  R$=W$
1940  RETURN 
1950  S$=W$
1960  RETURN 
1970  U$=W$
1980  RETURN 
1990  V$=W$
2000  RETURN 
2010  X$=W$
2020  RETURN 
2030  Y$=W$
2040  RETURN 
2050  W$=H$
2060  RETURN 
2070  W$=J$
2080  RETURN 
2090  W$=K$
2100  RETURN 
2110  W$=L$
2120  RETURN 
2130  W$=M$
2140  RETURN 
2150  W$=N$
2160  RETURN 
2170  W$=O$
2180  RETURN 
2190  W$=P$
2200  RETURN 
2210  W$=Q$
2220  RETURN 
2230  W$=R$
2240  RETURN 
2250  W$=S$
2260  RETURN 
2270  W$=U$
2280  RETURN 
2290  W$=V$
2300  RETURN 
2310  W$=X$
2320  RETURN 
2330  W$=Y$
2340  RETURN 
2350  C[I4]=G[I4]=C0
2360  IF A$[C1,C1]#":" THEN 2440
2370  IF I4=C1 THEN 2390
2380  IF G[I4-C1] AND F[I4]=F[I4-C1] THEN 2580
2390  C[I4]=C1
2400  E=C2
2410  O=I4
2420  GOSUB 2640
2430  RETURN 
2440  IF A$[C1,C1]#"=" THEN 2500
2450  IF K8=C3 THEN 2580
2460  E=C[I4]=G[I4]=C1
2470  GOSUB 2640
2480  IF K8 THEN 2820
2490  RETURN 
2500  IF A$[C1,C1]#"<" THEN 2560
2510  IF K8=C1 OR K8=C3 THEN 2580
2520  G[I4]=C2
2530  GOSUB 2640
2540  K8=K8+C1
2550  GOTO 2770
2560  IF A$[C1,C1]#">" THEN 2900
2570  IF K8<C2 THEN 2600
2580  PRINT "**NOT ALLOWED."
2590  GOTO 2910
2600  G[I4]=C3
2610  GOSUB 2640
2620  K8=K8+C2
2630  GOTO 2770
2640  FOR K=C2 TO LEN(A$)
2650  IF A$[K,K]#" " THEN 2670
2660  NEXT K
2670  A$=A$[K]
2680  W$=A$
2690  IF G[I4]>C1 AND K8 OR G[I4]<C2 THEN 2720
2700  F$=A$
2710  K0=I4
2720  IF  NOT G[I4] THEN 2760
2750  O1=I4
2760  RETURN 
2770  IF K8#C3 THEN 2830
2780  B$=F$
2790  GOSUB 8910
2800  IF G[I4]+S=C4 THEN 2870
2810  K8=C4
2820  C[K0]=C1
2830  IF I4=C1 THEN 2860
2840  IF F[I4]>F[I4-C1] THEN 2860
2850  C[I4]=C[I4-C1]=C1
2860  RETURN 
2870  IF E=C1 THEN 2580
2880  C[I4]=C[I4-C1]=C0
2890  RETURN 
2900  PRINT "**SUPPLY AN OPERATOR (<,=,>,:)."
2910  C[I4]=C0
2920  K8=K8+C1*(G[I4])-G[I4]
2930  GOTO 3800
2950  Y=C0
2960  IF A$[C1,C2]="//" THEN 3090
2970  IF A$[C1,C1]>"9" THEN 3090
2980  IF LEN(A$)>C2 THEN 3100
2990  FOR I2=C1 TO LEN(A$)
3000  FOR J2=C1 TO D0
3010  IF A$[I2,I2]>"9" THEN 3100
3020  IF A$[I2,I2]<"0" THEN 3100
3030  IF A$[I2,I2]#D$[J2,J2] THEN 3050
3040  Y=D0*Y+J2-C1
3050  NEXT J2
3060  NEXT I2
3070  IF P1=C4 OR Z3 OR  NOT P AND P1=C1 THEN 3090
3080  IF Y>R[C3] THEN 3130
3090  RETURN 
3100  IF P1#C4 THEN 3130
3110  PRINT "**INVALID INPUT."
3120  GOTO 3800
3130  IF  NOT P AND P1=C1 THEN 3160
3140  PRINT "**USE AN ELEMENT NUMBER OF 1 TO"R[C3]
3150  GOTO 3170
3160  PRINT "**A FIELD WIDTH MUST BE 1 TO"W2
3170  Y=C0
3180  GOTO 3800
3200  A1=A2=C0
3210  IF  NOT Z3 THEN 3260
3220  GOSUB 9300
3230  IF Z2 THEN 3250
3240  PRINT A$
3250  RETURN 
3260  T1=255
3270  ENTER T1,Y,A$
3280  PRINT 
3290  IF Y#-256 THEN 3340
3300  IF T1=D5 THEN 9990
3310  PRINT '7'7'7"**STILL THERE? ";
3320  T1=D5
3330  GOTO 3270
3340  IF T1=D5 THEN 3800
3350  IF A$="" THEN 3860
3360  FOR Z=C1 TO LEN(A$)
3370  IF A$[Z,Z]#" " THEN 3450
3380  IF Z#C1 THEN 3410
3390  A$=A$[C2]
3400  GOTO 3360
3410  IF A$[Z+C1,Z+C1]#" " THEN 3450
3420  IF Z>LEN(A$) THEN 3450
3430  A$[Z]=A$[Z+C1]
3440  GOTO 3370
3450  IF A$[Z,Z] <= "^" THEN 3510
3460  FOR Z1=C1 TO 26
3470  IF A$[Z,Z]#C$[Z1,Z1] THEN 3500
3480  A$[Z,Z]=C$[Z1+26,Z1+26]
3490  GOTO 3510
3500  NEXT Z1
3510  NEXT Z
3515  IF LEN(A$)=C0 THEN 3800
3520  IF A$[LEN(A$)]#" " THEN 3550
3530  A$=A$[C1,LEN(A$)-C1]
3550  IF A$[C1,C3]#"DO-" THEN 3590
3560  Z2=Z3=C1
3570  GOSUB 9380
3580  GOTO 3800
3590  IF A$[C1,C2]="//" THEN 3620
3600  IF A3 THEN 3960
3610  RETURN 
3620  A3=C0
3630  IF A$[C1,C4]#"//FO" THEN 3660
3640  PRINT 
3650  CHAIN "CREATE",3560
3660  IF A$[C1,C4]#"//ER" THEN 3690
3670  A1=C1
3680  RETURN 
3690  IF A$[C1,C4]="//ST" THEN 9990
3700  IF A$[C1,C4]#"//HE" THEN 3740
3710  GOSUB A4 OF 9020,9040,9060,9100,9080,9110
3720  PRINT 
3730  GOTO 3800
3740  IF A$[C1,C4]#"//EL" THEN 3820
3760  PRINT 
3770  Y=C0
3775  A1=C2
3780  GOSUB 1590
3790  PRINT 
3800  A1=C2
3810  RETURN 
3820  IF A$[C1,C4]#"//AL" THEN 3880
3830  A1=C3
3840  IF  NOT P1 THEN 3940
3850  RETURN 
3860  A1=C4
3870  RETURN 
3880  IF A$[C1,C4]#"//UP" THEN 3940
3890  IF  NOT U1 THEN 3920
3900  PRINT "**ILLEGAL ACCESS."
3910  GOTO 3800
3920  PRINT 
3930  CHAIN "UPDATE"
3940  PRINT "**INVALID COMMAND."
3950  GOTO 3800
3960  A3=C0
3970  IF A$[C1,C1]#"Y" THEN 4000
3980  A2=C1
3990  RETURN 
4000  IF A$[C1,C1]#"N" THEN 4030
4010  A2=C2
4020  RETURN 
4030  PRINT "**TYPE 'YES' OR 'NO'."
4040  GOTO 3800
4045  I4=-C1
4050  IF Z2 THEN 4080
4060  PRINT "  PRINT OPTION? ";
4070  A4=C2
4080  K2=L1=N3=P=P1=P3=P4=P6=R5=U=W1=C0
4090  W2=72
4100  W$=""
4110  PRINT #C2,S1
4120  GOSUB 3200
4130  GOTO A1 OF 300,4050,4060,4060
4140  IF A$[C1,C2]#"TO" THEN 4170
4150  P1=C5
4160  GOTO 6150
4170  IF A$[C1,C2]="LI" THEN 4200
4180  IF A$[C1,C2]#"RE" THEN 4230
4190  R5=C1
4200  P1=C2
4210  A4=C3
4220  GOTO R5+C1 OF 6150,4610
4230  IF A$[C1,C2]#"EQ" THEN 4260
4240  A4=P1=C3
4250  GOTO 6150
4260  IF A$[C1,C2]#"SP" THEN 4300
4270  A4=C5
4280  P1=C1
4290  GOTO 6150
4300  IF A$[C1,C2]="LA" THEN 4340
4310  PRINT "**INVALID OPTION."
4330  GOTO 4060
4340  K6=K7=L4=L5=L6=W1=C0
4350  L0=-C1
4360  A4=P1=C4
4370  H=R[C6]
4375  IF  NOT R[C9] THEN 4430
4380  IF Z2 THEN 4400
4390  PRINT "    CHANGE FORMAT (YES/NO)? ";
4400  A3=C1
4410  GOSUB 3200
4420  GOTO A1 OF 4060,4390,4390
4430  FOR I=C1 TO C7
4440  E[I]=R[I+C8]
4450  NEXT I
4460  B2=(R[C9]=C1)+C1
4480  K6=R[14+(B2=C2)]>C1
4485  IF  NOT R[C9] THEN 4520
4490  IF A2#C1 OR A1=C4 THEN 5380
4510  IF Z2 THEN 4540
4520  IMAGE #,"    LABEL SPACING (NOW ",DD," LINES)? "
4525  PRINT  USING 4520;H
4530  A4=C6
4540  GOSUB 3200
4550  GOTO A1 OF 4390,4520,4520,4610
4560  GOSUB 2950
4570  IF A1=C2 OR  NOT Y THEN 4520
4580  H=Y
4590  R[C6]=H
4600  MAT  PRINT #C1,C1;R
4610  IF Z2 THEN 4630
4620  PRINT "    ELEMENTS";
4630  IF R5 THEN 4710
4640  PRINT " (NOW USING #";
4650  FOR J=C1 TO C7
4660  IF  NOT E[J] THEN 4690
4670  PRINT  USING "#,DDD";E[J]
4680  NEXT J
4690  PRINT "):"
4700  GOTO 4730
4710  IF Z2 THEN 4730
4720  PRINT ":"
4730  B2=C1
4740  K1=C1
4750  IF Z2 THEN 4770
4760  PRINT "?   ";
4770  GOSUB 3200
4780  GOTO A1+C1 OF 4810,4790,4620,6450,5000
4790  IF K1>C1 THEN 4620
4800  GOTO R5+C1 OF 4520,4060
4810  IF K1>C1 THEN 4830
4820  MAT E=ZER[C8+R5*92]
4830  GOSUB 2950
4840  GOSUB Y>R[C3] OF 3140
4850  IF A1=C2 THEN 4750
4860  GOSUB 1590
4870  IF A1=C2 THEN 4750
4880  IF I#C1 THEN 4910
4890  IF R5 THEN 4740
4900  B2=C2
4910  E[K1]=I
4920  IF R5 THEN 4940
4930  R[K1+C8]=I
4940  IF K1=C1 THEN 4980
4950  IF E[K1]>E[K1-C1] THEN 4980
4960  GOSUB 9130
4970  GOTO 4610
4980  K1=K1+C1
4990  IF R5 OR K1<C6+B2 THEN 4750
5000  IF  NOT R5 THEN 5190
5010  PRINT '10'10
5020  IF E0#C1 THEN 1060
5030  READ #C3,C3
5040  READ #C1,R1;Z,Z
5050  J=C1
5060  FOR I=C1 TO R[C3]
5070  IF  NOT E[J] THEN 5170
5080  READ #C3;I$
5090  READ #C1;A$
5100  IF I#C1 THEN 5130
5110  J=J+(A1=C3)-C1
5120  GOTO 5140
5130  IF I#E[J] THEN 5160
5140  PRINT I$": "A$
5150  J=J+C1
5160  NEXT I
5170  PRINT 
5180  GOTO (E0=C1)+C1 OF 1560,9220
5190  K6=E[C6]>C0
5210  FOR I=C1 TO C7
5220  R[I+C8]=E[I]
5230  NEXT I
5240  K6=E[C5+B2]>C0
5250  PRINT TAB(C6),"COPIES PER LABEL (NOW";
5260  PRINT  USING "#,DD";R[C7]
5270  PRINT ")? ";
5280  GOSUB 3200
5290  GOTO A1 OF 4610,5250,5250,5340
5300  GOSUB 2950
5310  IF A1=C2 OR  NOT Y THEN 5250
5320  R[C7]=Y
5330  MAT  PRINT #C1,C1;R
5340  PRINT TAB(C6),"USING LINE PRINTER (YES/NO)? ";
5350  A3=C1
5360  GOSUB 3200
5370  GOTO A1 OF 5250,5340,5340,5380
5375  R[C8]=A2
5380  A$="TYPE A 'CTRL W', LOAD LABELS AND PUSH 'RETURN'."
5390  IF  NOT R[C9] THEN 4520
5400  PRINT TAB(C6),A$[C1+17*(R[C8]#C1)];
5410  W1=R[13]
5470  Z3=C0
5490  GOSUB 3200
5510  MAT  PRINT #C1,C1;R
5520  GOTO A1+C1 OF 1060,4390,5470,5470,1060
5530  B3=C1
5540  READ #C1,R1;Z,Z
5550  K7=K6
5560  N=C0
5570  FOR I=C1 TO E[B2]
5580  READ #C1;B$
5590  IF B2=C1 OR I#C1 THEN 5630
5600  PRINT B$
5610  H=R[C6]-C1*(W1>C0)
5620  GOTO 5710
5630  IF I#E[B2] THEN 5710
5640  IF  NOT W1 THEN 5720
5650  FOR J=C1 TO LEN(B$)
5660  IF B$[J,J]#"," THEN 5700
5670  IF B$[J+C1,J+C1]#" " THEN 5740
5680  N=C1
5690  GOTO 5740
5700  NEXT J
5710  NEXT I
5720  A$=B$
5730  GOTO 5770
5740  A$=B$[J+C1+N]
5750  A$[LEN(A$)+C1]=" "
5760  A$[LEN(A$)+C1]=B$[C1,J-C1]
5770  PRINT A$
5780  K1=C1+B2
5790  FOR I=E[B2]+C1 TO R[C3]
5800  IF K1>C4+B2+K6 THEN 5970
5810  READ #C1;B$
5820  IF I#E[K1] THEN 5960
5830  IF  NOT K6 OR (K1#C1+B2 AND K1#C2+B2) THEN 5870
5840  IF B$#"-" THEN 5870
5850  K7=C0
5860  GOTO 5950
5870  IF W1 THEN 5900
5880  PRINT B$
5890  GOTO 5950
5900  IF K1>C1+B2+K6 THEN 5940
5910  PRINT B$
5930  GOTO 5950
5940  PRINT B$;SPA(K1-C1-B2);
5950  K1=K1+C1
5960  NEXT I
5970  IF W1 THEN 6000
5980  PRINT LIN(L0*(H-K1))
5990  GOTO 6050
6000  C=H-(C4+K7)
6010  PRINT LIN(L0*(C+C1))
6050  B3=B3+C1
6060  GOTO (B3>R[C7])+C1 OF 5540,1560
6150  P2=C0
6160  FOR I=C2 TO LEN(A$)
6170  IF N3 THEN 6202
6180  IF A$[I,I]#"-" THEN 6270
6190  N3=C1
6200  GOTO 6270
6202  IF A$[I,I]#"F" THEN 6210
6206  P2=C3
6210  IF A$[I,I]#"P" THEN 6222
6220  P3=C1
6222  IF A$[I,I]#"O" THEN 6230
6224  IF P2 THEN 6234
6226  P2=C2
6230  IF A$[I,I]#"C" THEN 6250
6232  IF  NOT P2 THEN 6240
6234  PRINT "**NOT ALLOWED."
6236  GOTO 4060
6240  P2=C1
6250  IF A$[I,I]#"W" THEN 6270
6260  W2=132
6270  NEXT I
6280  IF P1=C5 THEN 6670
6290  IF Z2 THEN 6340
6300  A$="ELEMENTS, FIELD WIDTHS"
6310  PRINT TAB(C4),A$[C1,8+14*(P1=C1)]":"
6340  A=W=W1=C0
6345  PRINT #C2,S1
6350  FOR I3=C1 TO R[C3]
6360  IF Z2 THEN 6380
6370  PRINT "?   ";
6380  GOSUB 3200
6390  GOTO A1+C1 OF 6500,6400,6360,6420,6670
6400  GOTO (I3=C1)+C1 OF 6300,4060
6420  IF P1#C1 THEN 6450
6430  GOSUB 3940
6440  GOTO 6370
6450  FOR J=C1 TO R[C3]
6460  E[J]=J
6470  NEXT J
6480  A=R[C3]
6490  GOTO R5+C1 OF 6670,5010
6500  P=C0
6510  IF P1#C1 THEN 6580
6520  GOSUB 7620
6530  A$=W$
6540  GOSUB 2950
6550  IF A1=C2 THEN 6360
6560  A$=E$
6570  P=C1
6580  GOSUB 2950
6585  IF A1=C2 THEN 6360
6590  GOSUB 1590
6600  IF A1=C2 THEN 6360
6610  GOSUB P1=C1 OF 7830
6620  E[I3]=I
6630  IF A1=C2 THEN 6360
6640  GOSUB P1 OF 6830
6650  A=A+C1
6660  NEXT I3
6670  IF P2#C1 THEN 6720
6680  IF Z2 THEN 6700
6690  PRINT TAB(C6),"CALCULATOR PROGRAM: ";
6700  GOSUB 3200
6710  GOTO A1 OF 6260,6690,6690,6690
6715  F$=A$
6720  GOTO P2+C1 OF 6750,6750,6725,6730
6725  A$="ORDER"
6726  GOTO 6732
6730  A$="DESTINATION"
6732  PRINT TAB(C6),A$" FILENAME: ";
6733  GOSUB 3200
6734  GOTO A1 OF 6260,6720,6720,6720
6735  IF A$=T$ THEN 6743
6736  IF A$=Z$ THEN 6743
6737  ASSIGN A$,C3,X
6738  IF A$#G$ THEN 6742
6739  IF P2=C3 THEN 6743
6740  P6=C1
6741  READ #C3,C7;F1
6742  IF X<C3 THEN 6745
6743  PRINT "      **BAD FILE NAME."
6744  GOTO 6720
6745  IF  END #C3 THEN 9150
6746  IF P2=C2 THEN 6750
6747  IF  END #C3 THEN 9800
6749  P5=C2
6750  GOSUB P1 OF 8000,8150,7570
6760  GOSUB P1-C2 OF 8000
6770  IF P2#C1 THEN 6810
6780  CHAIN F$,100
6790  ASSIGN G$,C1,X
6800  ASSIGN T$,C2,X
6810  IF E0=C1 AND P1#C5 THEN 6980
6820  GOTO 1060
6830  W=C0
6840  FOR I1=C1 TO LEN(W$)
6850  FOR J1=C1 TO D0
6860  IF W$[I1,I1]#D$[J1,J1] THEN 6880
6870  W=D0*W+J1-C1
6880  NEXT J1
6890  NEXT I1
6900  L3=W1+C1
6910  W1=W1+W+C1
6920  IF W1>W2+C1 THEN 6940
6930  RETURN 
6940  PRINT "**THE SUM OF"A+C1"FIELDS CANNOT EXCEED"W2-A"CHARACTERS - BEGIN AGAIN."
6950  PRINT 
6970  GOTO 6340
6980  READ #C2,S1
6990  F=L1=L2=C0
7000  C=C3
7020  IF P2#C3 THEN 7050
7030  PRINT #C3,T
7050  FOR J=C1 TO A
7055  X=C1
7060  READ #C1,R1;Z,Z
7070  FOR I=X TO E[J]
7075  READ #1;A$
7080  IF P1#C2 OR I#C1 OR F THEN 7120
7085  PRINT "ID#"A$;
7086  F=C1
7090  L1=LEN(A$)+C6
7095  GOTO 7230
7120  IF I<E[J] THEN 7230
7122  IF P2#C3 THEN 7130
7124  PRINT #C3;A$
7130  IF P1=C2 THEN 7410
7140  IF J<A THEN 7190
7150  GOSUB 8170
7160  IF L2 THEN 7270
7170  PRINT A$
7180  GOTO 7270
7190  IF P1=C3 AND I#C2 THEN 7210
7200  READ #C2;I$
7210  PRINT  USING I$;A$,SPA(C1)
7220  X=I+C1
7222  IF E[J+C1]<E[J] THEN 7240
7224  J=J+C1
7226  GOTO 7070
7230  NEXT I
7240  NEXT J
7250  IF P1#C2 THEN 7270
7260  PRINT 
7270  IF  NOT P3 THEN 7330
7280  K2=K2+C1
7290  IF K2<57 THEN 7330
7300  PRINT LIN(-C9)
7310  GOSUB P1#C2 OF 8010
7320  K2=C2
7330  IF P2#C1 THEN 7350
7340  CHAIN F$,214
7350  IF E0=C1 THEN 9190
7360  GOTO 1560
7410  IF L1+LEN(A$)<W2+C1 THEN 7450
7420  PRINT 
7430  K2=K2+C1
7440  L1=C3
7450  REM
7490  PRINT SPA(C),A$;
7500  C=C3
7510  L1=L1+LEN(A$)+C3
7520  IF J<A THEN 7220
7522  PRINT 
7524  GOTO 7270
7570  IF  NOT A THEN 7610
7580  W=INT(W2/A)-C1
7590  GOSUB 7880
7600  GOSUB 7830
7610  RETURN 
7620  E1=C1
7625  IF A$[LEN(A$)]="," THEN 3160
7630  FOR I1=C1 TO LEN(A$)
7640  IF A$[I1,I1]#"," THEN 7670
7650  IF P1 THEN 7710
7660  A$[I1]=A$[I1+C1]
7670  IF P1 THEN 7790
7680  IF A$[I1,I1]>">" THEN 7790
7690  IF A$[I1,I1]<":" THEN 7790
7700  IF I1=C1 THEN 1720
7710  IF A$[I1-C1,I1-C1]#" " THEN 7730
7720  E1=C2
7730  E$=A$[C1,I1-E1]
7740  IF  NOT P1 THEN 7770
7750  IF A$[I1+C1,I1+C1]#" " THEN 7770
7760  I1=I1+C1
7770  W$=A$[I1+(P1>C0)]
7780  RETURN 
7790  NEXT I1
7800  IF  NOT P1 THEN 2900
7810  PRINT "**USE A COMMA."
7820  GOTO 3800
7830  I$="#,"
7840  I$[C3]=W$
7850  I$[LEN(I$)+C1]="A"
7860  PRINT #C2;I$
7870  RETURN 
7880  W$=""
7890  FOR J=C1 TO D0
7900  IF W>C9 THEN 7940
7910  IF W#J-C1 THEN 7990
7920  W$[LEN(W$)+C1]=D$[J,J]
7930  RETURN 
7940  K=INT(W/D0)
7950  IF K#J-C1 THEN 7990
7960  W$=D$[J,J]
7970  W=W-D0*K
7980  GOTO 7890
7990  NEXT J
8000  PRINT LIN(-C3)
8010  READ #C2,S1
8020  FOR I=C1 TO A
8030  GOSUB 8280
8040  IF P1=C3 AND I>C1 THEN 8060
8050  READ #C2;I$
8060  IF I<A THEN 8130
8070  A$=E$
8080  GOSUB 8170
8090  IF L2 THEN 8150
8100  PRINT E$
8110  GOTO 8150
8120  READ #C2;I$
8130  PRINT  USING I$;E$,SPA(C1)
8140  NEXT I
8150  PRINT 
8160  RETURN 
8170  IF P1=C1 THEN 8190
8180  L3=(A-C1)*INT(W2/A)+(P1=C3)
8190  IF L3+LEN(A$)>W2 THEN 8220
8200  W=LEN(A$)
8210  GOTO 8230
8220  W=W2-L3+C1
8230  GOSUB 7880
8240  L2=C1
8250  W$[LEN(W$)+C1]="A"
8260  PRINT  USING W$;A$
8270  RETURN 
8280  READ #C1,C3
8290  FOR I5=C1 TO E[I]
8300  READ #C1;E$
8310  NEXT I5
8320  RETURN 
8330  I0=7
8335  B=C0
8340  E0=C1
8350  GOTO 8380
8360  I0=B=C9
8370  E0=R[16]
8380  MAT I=ZER
8390  K1=K4=S=C0
8400  K2=K3=121
8410  READ #C1,I0;F
8420  IF TYP(-C1)#C4 THEN 8460
8430  IF  NOT F THEN 8590
8440  I0=F
8450  GOTO 8410
8460  READ #C1;R
8470  READ #C1,R;Z,Z
8480  GOSUB 9012
8520  GOTO S OF 8590,8550
8525  IF U#C2 THEN 8530
8526  READ #C1,B;F,R
8530  R1=R
8540  RETURN 
8550  B=I0
8560  IF  NOT F THEN 8590
8570  I0=F
8580  GOTO 8410
8590  IF U=C2 THEN 8526
8600  IF  NOT B THEN 8730
8630  READ #C1,B;F
8640  FOR K2=C1 TO 121
8650  IF  NOT K3 AND K2=C1 THEN 8680
8660  IF TYP(-C1)=C4 THEN 8690
8670  READ #C1;I[K2]
8680  NEXT K2
8690  IF K3 THEN 8710
8700  RETURN 
8710  K3=INT((K2-K1)/C2)+K1
8720  IF ABS(K3-K4)#C0 THEN 8770
8730  IF U#C1 THEN 8890
8740  PRINT "**NO SUCH ID NUMBER."
8750  U=C0
8760  GOTO 8880
8770  READ #C1,I[K3];Z,Z
8780  GOSUB 9012
8820  GOTO S+C1 OF 8890,8830,8850
8830  K2=K3
8840  GOTO 8860
8850  K1=K3
8860  K4=K3
8870  GOTO 8710
8880  A1=C2
8890  R1=I[K3]+( NOT I[K3])*R[C2]
8900  RETURN 
8910  N=N1=C0
8912  IF A$[C1,C1]>"9" THEN 8940
8914  IF A$="-" THEN 8940
8920  IF A$[C1,C1]#"-" THEN 8924
8922  N=C1
8924  IF B$[C1,C1]#"-" THEN 8928
8926  N1=C1
8928  B0=LEN(A$)-N
8929  B1=LEN(B$)-N1
8930  IF B0<B1 THEN 8980
8935  IF B0>B1 THEN 9000
8940  IF A$<B$ THEN 8980
8950  IF A$>B$ THEN 9000
8960  S=C0
8970  RETURN 
8980  S=C1+N1
8990  RETURN 
9000  S=C2-N
9010  RETURN 
9012  FOR H1=C1 TO E0
9014  READ #C1;B$
9016  NEXT H1
9018  GOSUB 8910
9019  RETURN 
9020  PRINT "**SUPPLY AN ELEMENT, OPERATOR, AND VALUE."
9030  RETURN 
9040  PRINT "**OPTIONS: LIST, EQUAL, SPECIAL, REPORT, LABEL, TOTAL."
9050  RETURN 
9060  PRINT "**SUPPLY EACH PRINT ELEMENT IN THE DESIRED ORDER."
9070  RETURN 
9080  PRINT "**SUPPLY EACH PRINT ELEMENT AND ITS PRINT FIELD IN THE DESIRED ORDER."
9090  RETURN 
9100  PRINT "**THE CURRENT FORMAT MAY BE DETERMINED BY TYPING 'YES'."
9110  PRINT "**USE 'RETURN' FOR NO CHANGE, ELSE TYPE THE NEW VALUE."
9120  RETURN 
9130  PRINT "**LAST ELEMENT OUT OF SEQUENCE - BEGIN AGAIN."
9140  RETURN 
9150  IF P1=C4 THEN 9990
9160  PRINT LIN(-C1);"TOTAL RECORDS="T
9170  IF P2#C1 THEN 9190
9180  CHAIN F$,506
9190  IF  NOT Z2 AND P2#C1 THEN 9220
9200  GOSUB 9550
9210  IF Z8 <= Z7 THEN 310
9220  PRINT LIN(-C2),"AGAIN? ";
9230  Z2=Z3=C0
9240  A3=C1
9245  D5=15
9250  GOSUB 3200
9260  IF A1=C2 THEN 9220
9270  IF A2=C2 THEN 9990
9280  PRINT LIN(-C2)
9290  GOTO 200
9300  IF TYP(C3)#C2 THEN 9350
9310  READ #C3;A$
9320  IF A$#"" THEN 9340
9330  A1=C4
9340  RETURN 
9350  A1=C2
9360  Z2=Z3=C0
9370  RETURN 
9380  IF LEN(A$)<C4 THEN 3110
9385  B$=A$[C4]
9390  IF B$[LEN(B$)]#"D" THEN 9430
9400  Z2=C0
9410  PRINT 
9420  B$=B$[C1,LEN(B$)-C2]
9430  Z7=C0
9440  FOR I=C1 TO LEN(B$)
9450  A$=B$[I,I]
9460  IF A$<"0" THEN 9540
9470  IF B$[I+C1,I+C1]<"0" THEN 9500
9480  A$=B$[I,I+C1]
9490  I=I+C1
9500  Z7=Z7+C1
9510  IF Z7>D0 THEN 9550
9520  GOSUB 2950
9530  K[Z7]=Y
9540  NEXT I
9550  Z8=Z8+C1
9560  IF Z8>Z7 THEN 9660
9562  A1=C0
9563  D5=15
9564  IF  NOT P2 THEN 9570
9565  ASSIGN G$,C1,X
9566  ASSIGN G$,C3,X
9568  ASSIGN T$,C2,X
9570  READ #C3,C5
9575  PRINT LIN(-C2);"NO."K[Z8];LIN(-C1)
9580  GOTO TYP(C3) OF 9590,9620,9640
9590  READ #C3;A
9600  IF A=K[Z8] THEN 9660
9610  GOTO 9580
9620  READ #C3;A$
9630  GOTO 9580
9640  PRINT LIN(-C1);"**NO SUCH FORMAT";LIN(-C2)
9645  A1=C1
9650  GOTO 9550
9660  RETURN 
9800  PRINT LIN(C1),"DESTINATION FILE TOO SMALL."
9810  GOTO 9160
9990  CHAIN "FINDIT",9999
9999  END 
