Listing of file='PKEX1' on disk='vmedia/701-2720C.wvd.zip'
# Sector 151, program filename = 'PKEX1' 0015 COM F1$(F7)2 0025 COM L0$(7)20 : COM L3,L5,L6,G3,G5,G6 : COM G3$(G3)G6,G4$(G3)5 : COM L3$(L3)L6,L4$(L3)1 : COM G3 : DIM A$1,F0$G6,F1$5,Z$22 : DIM H1$(3)100,H2$(3)100,H3$(3)100,G1$3,G2$3 : DIM C1$(10)3,C2(10),C3(10),C4$(10)8,C5(10),C6(10),B1$(1008)1 : LOAD T"PKBUFMAN"2700,2999BEG 5010 5010 DIM Z$22 : X=0 : FOR I=1TO G5 : IF STR(G3$(I),FNS(8),FNL(8))<>"NO "THEN 5020 : Y=VAL(STR(G3$(I),FNS(6),FNL(6))) : IF X>=YTHEN 5020 : X=Y 5020 NEXT I : FOR I=1TO G5 : FOR J=1TO G5-1 : IF STR(G3$(J),FNS(6),FNL(6)+FNL(7))<STR(G3$(J+1),FNS(6),FNL(6)+FNL(7))THE N 5027 : F0$=G3$(J) : F1$=G4$(J) : G3$(J)=G3$(J+1) : G4$(J)=G4$(J+1) : G3$(J+1)=F0$ : G4$(J+1)=F1$ 5027 NEXT J : NEXT I : GOSUB '241(1,L0$(7),"I") : IF S1<>0THEN STOP "PKEX1"# : W=0 5029 GOSUB '243(1,S1) : IF S1<>0THEN 5030 : W=W+1 : GOTO 5029 5030 GOSUB '242(1) : GOSUB '241(1,L0$(7),"U") : IF S1<>0THEN STOP "PKEX1"# : FOR H1=1TO W : GOSUB '245(1,H1,S1) : IF S1<>0THEN 5170 : FOR I=1TO G5 : S=VAL(STR(G3$(I),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(I),FNS(4),FNL(4)),2) : IF STR(G3$(I),FNS(8),FNL(8))="NO "THEN 5130 : IF STR(G3$(I),FNS(8),FNL(8))="???"THEN 5122 : IF STR(G3$(I),FNS(8),FNL(8))="Ent"THEN 5130 5120 STR(B1$(),S,L)="NULL " : GOTO 5130 5122 STR(B1$(),S,L)="????????????" 5130 NEXT I : GOSUB '246(1,H1,S1) : IF S1<>0THEN STOP "PKEX1"# : NEXT H1 : H1=W 5170 IF H1<=1THEN 5370 : PRINT AT(23,0);HEX(0E);"Sorting Records ";HEX(0F);" "; : FOR I=1TO H1 : G=0 : FOR J=1TO H1-1 : GOSUB '245(1,J,S1) : IF S1<>0THEN STOP "PKEX1"# : H1$()=B1$() : GOSUB '245(1,J+1,S1) : IF S1<>0THEN STOP "PKEX1"# : H2$()=B1$() : FOR K=1TO G5 5240 IF STR(G3$(K),FNS(8),FNL(8))<>"NO"THEN 5290 : IF VAL(STR(G3$(K),FNS(6),FNL(6)))>=XTHEN 5300 : S=VAL(STR(G3$(K),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(K),FNS(4),FNL(4)),2) : IF STR(H1$(),S,L)<STR(H2$(),S,L)THEN 5350 : IF STR(H1$(),S,L)>STR(H2$(),S,L)THEN 5310 5290 NEXT K 5300 GOTO 5350 5310 B1$()=H2$() : G=1 : GOSUB '246(1,J,S1) : IF S1<>0THEN STOP "PKEX1"# : B1$()=H1$() : GOSUB '246(1,J+1,S1) : IF S1<>0THEN STOP "PKEX1"# 5350 NEXT J : IF G=0THEN 5370 : NEXT I 5370 PRINT AT(23,0);HEX(0E);"Deriving Fields ";HEX(0F); : N3=0 : FOR I=1TO G5 : G1$=STR(G3$(I),FNS(8),FNL(8)) : V=VAL(STR(G3$(I),FNS(6),FNL(6))) : IF V>N3THEN N3=V : IF G1$="Tot"OR G1$="Max"OR G1$="Min"OR G1$="Avg"OR G1$="Cnt"THEN 5450 : GOTO 5530 5450 N1=N1+1 : C1$(N1)="YES" : C2(N1)=0 : IF STR(G3$(I),FNS(8),FNL(8))="Min"THEN C2(N1)=9999999999999 : C3(N1)=0 : C4$(N1)=STR(G3$(I),FNS(1),FNL(1)) : C5(N1)=VAL(STR(G3$(I),FNS(6),FNL(6))) : C6(N1)=1 5530 NEXT I 5550 G2$="NO" : H1$()=ALL(" ") : FOR I=1TO H1 : H2$()=H1$() : GOSUB '245(1,I,S1) : IF S1<>0THEN STOP "PKEX1"# : H1$()=B1$() : FOR J=1TO N3 : IF J=N3THEN 6060 : FOR K=1TO G5 : X=VAL(STR(G3$(K),FNS(6),FNL(6))) : IF X<JTHEN 6030 : IF X>JTHEN 6040 : IF STR(G3$(K),FNS(8),FNL(8))<>"NO"THEN 6030 : IF I=1THEN 5940 : S=VAL(STR(G3$(K),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(K),FNS(4),FNL(4)),2) 5710 IF STR(H1$(),S,L)=STR(H2$(),S,L)THEN 6030 5730 IF N1=0THEN 5920 : FOR M=1TO N1 : IF C5(M)<JTHEN 5910 : IF C1$(M)="NO"THEN 5790 : IF I<=H1THEN G2$="YES" : GOTO 5910 5790 FOR P=1TO G5 : IF STR(G3$(P),FNS(1),FNL(1))=C4$(M)THEN 5820 : NEXT P 5820 S=VAL(STR(G3$(P),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(P),FNS(4),FNL(4)),2) : IF C3(M)<>0THEN C2(M)=C2(M)/C3(M) : FOR N=C6(M)TO I-1 : GOSUB '245(1,N,S1) : IF S1<>0THEN STOP "PKEX1"# : GOSUB '100(C2(M)) : STR(B1$(),S,12)=STR(G3$,1,12) : GOSUB '246(1,N,S1) : IF S1<>0THEN STOP "PKEX1"# : NEXT N 5910 NEXT M 5920 IF I>H1THEN 7140 5940 FOR M=1TO N1 : IF C5(M)<JTHEN 6020 : C3(M)=0 : C2(M)=0 : FOR N=1TO G5 : IF STR(G3$(N),FNS(1),FNL(1))=C4$(M)THEN 6000 : NEXT N : STOP "ERROR:PKEX1"# 6000 IF STR(G3$(N),FNS(8),FNL(8))="Min"THEN C2(M)=9999999999999 : C6(M)=I 6020 NEXT M 6030 NEXT K 6040 NEXT J 6060 FOR J=1TO G5 : IF STR(G3$(J),FNS(8),FNL(8))="Tot"THEN 6150 : IF STR(G3$(J),FNS(8),FNL(8))="Max"THEN 6150 : IF STR(G3$(J),FNS(8),FNL(8))="Min"THEN 6150 : IF STR(G3$(J),FNS(8),FNL(8))="Avg"THEN 6150 : IF STR(G3$(J),FNS(8),FNL(8))="Cnt"THEN 6130 : GOTO 6480 6130 X1=0 : GOTO 6250 6150 FOR K=1TO G5 : IF STR(G3$(J),FNS(10),FNL(10))=STR(G3$(K),FNS(1),FNL(1))THEN 6190 : NEXT K : STOP "ERROR: PKEX1-"# 6190 S=VAL(STR(G3$(K),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(K),FNS(4),FNL(4)),2) : IF STR(H1$(),S,L)<>"NULL "THEN 6240 : G2$="YES" : GOTO 6480 6240 CONVERT STR(H1$(),S,L)TO X1 : ERRORX1=0 6250 FOR L=1TO N1 : IF C4$(L)=STR(G3$(J),FNS(1),FNL(1))THEN 6290 : NEXT L : STOP "ERROR:PKEX1"# 6290 IF STR(G3$(J),FNS(8),FNL(8))<>"Tot"THEN 6330 : C2(L)=C2(L)+X1 : C1$(L)="NO" : GOTO 6480 6330 IF STR(G3$(J),FNS(8),FNL(8))<>"Max"THEN 6370 : IF C2(L)<X1THEN C2(L)=X1 : C1$(L)="NO" : GOTO 6480 6370 IF STR(G3$(J),FNS(8),FNL(8))<>"Min"THEN 6410 : IF X1<C2(L)THEN C2(L)=X1 : C1$(L)="NO" : GOTO 6480 6410 IF STR(G3$(J),FNS(8),FNL(8))<>"Avg"THEN 6460 : C2(L)=C2(L)+X1 : C3(L)=C3(L)+1 : C1$(L)="NO" : GOTO 6480 6460 C1$(L)="NO" : C2(L)=C2(L)+1 6480 NEXT J : NEXT I : FOR I=1TO H1 : GOSUB '245(1,I,S1) : IF S1<>0THEN STOP "PKEX1"# : H1$()=B1$() : FOR J=1TO G5 : IF STR(G3$(J),FNS(8),FNL(8))="+"THEN 6610 : IF STR(G3$(J),FNS(8),FNL(8))="-"THEN 6610 : IF STR(G3$(J),FNS(8),FNL(8))="x"THEN 6610 : IF STR(G3$(J),FNS(8),FNL(8))="/"THEN 6610 : GOTO 7060 6610 IF STR(G3$(J),FNS(9),FNL(9))<>"C"THEN 6640 : GOSUB '96(STR(G3$(J),FNS(10),FNL(10))) : O1=Z1 : GOTO 6750 6640 FOR K=1TO G5 : IF STR(G3$(K),FNS(1),FNL(1))=STR(G3$(J),FNS(10),FNL(10))THEN 6680 : NEXT K : STOP "ERROR:PKEX1"# 6680 S=VAL(STR(G3$(K),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(K),FNS(4),FNL(4)),2) : IF STR(H1$(),S,L)<>"NULL"THEN 6730 : G2$="YES" : GOTO 7060 6730 CONVERT STR(H1$(),S,L)TO O1 : ERRORO1=0 6750 IF STR(G3$(J),FNS(11),FNL(11))<>"C"THEN 6780 : GOSUB '96(STR(G3$(J),FNS(12),FNL(12))) : O2=Z1 : GOTO 6890 6780 FOR K=1TO G5 : IF STR(G3$(K),FNS(1),FNL(1))=STR(G3$(J),FNS(12),FNL(12))THEN 6820 : NEXT K : STOP "ERROR:PKEX1"# 6820 S=VAL(STR(G3$(K),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(K),FNS(4),FNL(4)),2) : IF STR(H1$(),S,L)<>"NULL"THEN 6870 : G2$="YES" : GOTO 7060 6870 CONVERT STR(H1$(),S,L)TO O2 : ERRORO2=0 6890 IF STR(G3$(J),FNS(8),FNL(8))<>"+"THEN 6920 : O3=O1+O2 : GOTO 7030 6920 IF STR(G3$(J),FNS(8),FNL(8))<>"-"THEN 6950 : O3=O1-O2 : GOTO 7030 6950 IF STR(G3$(J),FNS(8),FNL(8))<>"x"THEN 6980 : O3=O1*O2 : GOTO 7030 6980 IF O2<>0THEN 7010 : O3=0 : GOTO 7030 7010 O3=O1/O2 7030 S=VAL(STR(G3$(J),FNS(3),FNL(3)),2) : L=VAL(STR(G3$(J),FNS(4),FNL(4)),2) : Z$="-####################" : Z2=0 7042 Z$=STR(Z$,1,12) : CONVERT O3TO STR(H1$(),S,12),(Z$) : CONVERT STR(H1$(),S,L)TO Z1 : ERRORZ1=0 7052 IF ABS(Z1-O3)<.0001THEN 7060 : Z2=Z2+1 : IF 12=Z2THEN 7060 : Z$="-####################" : STR(Z$,12-Z2,1)="." : GOTO 7042 7060 NEXT J : B1$()=H1$() : GOSUB '246(1,I,S1) : IF S1<>0THEN STOP "PKEX1"# : NEXT I : I=H1+1 : J=0 : GOTO 5730 7140 IF G2$="YES"THEN 5550 : GOSUB '242(1) : LOAD T"PKEX2" 9001 DEFFN'100(G1) : STR(G$,1,12)="-###########" : CONVERT G1TO STR(G3$,1,12),(G$) : CONVERT STR(G3$,1,12)TO G2 : ERRORG2=0 9005 IF G2=G1THEN RETURN : FOR H3=11TO 2STEP -1 : STR(G$,H3,1)="." : CONVERT G1TO STR(G3$,1,12),(G$) : CONVERT STR(G3$,1,12)TO G2 : ERRORG2=0 9010 IF G2=G1THEN RETURN : STR(G$,H3,1)="#" : NEXT H3 : STOP "PKEX1"# 9201 DEFFN'95(Z1) : $PACKZ1$FROMZ1 : Z1$=STR(Z1$,4,8)&ALL(00) : RETURN 9206 DEFFN'96(Z1$) : Z2$=HEX(800108)&STR(Z1$,1,8)&HEX(80) : $UNPACKZ2$TO Z1 : RETURN 9701 DEFFNS(Q)=VAL(STR(F1$(Q),1,1)) 9702 DEFFNL(Q)=VAL(STR(F1$(Q),2,1)) 9999 % SCRATCH T "PKEX1": SAVE T ()"PKEX1"