Listing of file='PKSORT' on disk='vmedia/701-2720C.wvd.zip'
# Sector 358, program filename = 'PKSORT' 0010 REM % C O M M O N V A R I A B L E S 0020 COM G3$(G3)G6,L3$(L3)L6,L3,L5,L6,G3,G5,G6,H7$7,G4$(G3)5,L3$(L3)L6,F7,F1$( F7)2 : COM M3,F5,C9,R9,C8,C6,D5,D6 : GOTO 3025 0050 DEFFNS(Q)=VAL(STR(F1$(Q),1,1)) 0060 DEFFNL(Q)=VAL(STR(F1$(Q),2,1)) 0070 DEFFNR(D4)=17+D4-((INT((D4-1)/D6))*D6) 0080 DEFFNC(D4)=INT((D4-1)/D6)*D5 3025 LOAD T"PKMAIN"3000,9999BEG 3025 4010 P2=0 : FOR A2=1TO G5 : STR(G4$(A2),FNS(14),FNL(14))="N" : NEXT A2 : PRINT AT(16,0,80);AT(16,10);HEX(0E);"Sort/Group on What ?";HEX(0F); : PRINT AT(20,50,30);AT(21,50,30);AT(22,50);"EXEC/RUN - Finish selection " ;AT(23,50);HEX(0E);"CANCEL/EDIT - Cancel ";HEX(0F); : A2=1 : P1=100 4061 GOSUB '99(1) : IF Z1=1THEN 4410 4070 R9=VAL(STR(G4$(A2),FNS(15),FNL(15))) : R9=R9-W1(1,1)+W1(1,5) : C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2) : C9=C9-W1(1,2)+W1(1,6) : T2$=STR(G3$(A2),FNS(8),FNL(8)) : T4$=STR(G3$(A2),FNS(13),FNL(13)) : IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1( 1,3)-1AND T2$="NO"AND T4$="Y"THEN 4110 4081 A2=A2+1 : IF A2>G5THEN A2=1 : GOTO 4070 4110 PRINT AT(R9+1,C9);HEX(02050F); : KEYIN A$,,4320 : IF STR(G4$(A2),FNS(14),FNL(14))="Y"THEN PRINT AT(R9+1,C9);HEX(0202020F960 202000E); : ELSE PRINT AT(R9+1,C9);"."; : IF A$<>" "THEN 4180 4160 A2=A2+1 : IF A2>G5THEN A2=1 : R9=VAL(STR(G4$(A2),FNS(15),FNL(15))) : C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2) : R9=R9-W1(1,1)+W1(1,5) : C9=C9-W1(1,2)+W1(1,6) : T2$=STR(G3$(A2),FNS(8),FNL(8)) : T4$=STR(G3$(A2),FNS(13),FNL(13)) 4170 IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1( 1,3)-1AND T2$="NO"AND T4$="Y"THEN 4110 : GOTO 4160 4180 IF A$<>HEX(08)THEN 4210 4190 A2=A2-1 : IF A2<1THEN A2=G5 : R9=VAL(STR(G4$(A2),FNS(15),FNL(15))) : C9=VAL(STR(G4$(A2),FNS(16),FNL(16)),2) : R9=R9-W1(1,1)+W1(1,5) : C9=C9-W1(1,2)+W1(1,6) : T2$=STR(G3$(A2),FNS(8),FNL(8)) : T4$=STR(G3$(A2),FNS(13),FNL(13)) 4200 IF C9>=W1(1,6)AND C9<=W1(1,6)+W1(1,4)-1AND R9>=W1(1,5)AND R9<=W1(1,5)+W1( 1,3)-1AND T2$="NO"AND T4$="Y"THEN 4110 : GOTO 4190 4210 IF A$<>HEX(0D)THEN 4260 : STR(G4$(A2),FNS(14),FNL(14))="Y" : P1=P1+1 : STR(G3$(A2),FNS(7),FNL(7))=BIN(P1) : PRINT AT(R9+1,C9);HEX(0202020F960202000E0802050F); : GOTO 4160 4260 IF A$<>HEX(82)THEN 4300 : P3=99 : FOR I1=1TO G5 : IF STR(G4$(I1),FNS(14),FNL(14))<>"Y"THEN 4270 : X3=VAL(STR(G3$(I1),FNS(6),FNL(6))) : IF X3<P3THEN P3=X3 4270 NEXT I1 : IF P3<>99THEN 4280 : PRINT HEX(07); : GOTO 4110 4280 FOR I1=1TO G5 : X3=VAL(STR(G3$(I1),FNS(6),FNL(6))) : IF X3>P3THEN STR(G3$(I1),FNS(6),FNL(6))=BIN(X3+1) : IF X3=P3AND STR(G4$(I1),FNS(14),FNL(14))<>"Y"THEN STR(G3$(I1),FNS(6),FNL( 6))=BIN(X3+1) : IF STR(G4$(I1),FNS(14),FNL(14))="Y"THEN STR(G3$(I1),FNS(6),FNL(6))=BIN(P3 ) : NEXT I1 : PRINT AT(16,0,80);AT(16,10);HEX(0E);G0$;HEX(0F);AT(23,50,30);HEX(06); 4292 LOAD T"PKREGEN"3000,9999 4300 PRINT HEX(07); : GOTO 4110 4320 IF A$<>HEX(02)AND A$<>HEX(4C)THEN 4350 : IF C6-C8<=80-C8THEN 4110 : C6=C6-C8 : PRINT AT(R9+1,0,80); : GOSUB '222(1,0,C8) : GOSUB '94 : GOTO 4061 4350 IF A$<>HEX(03)AND A$<>HEX(4D)THEN 4390 : IF C6+C8>F5THEN 4110 : C6=C6+C8 : PRINT AT(R9+1,0,80); : GOSUB '222(1,0,-1*C8) : GOSUB '94 : GOTO 4061 4390 IF A$<>HEX(09)THEN 4400 : STR(G4$(A2),FNS(14),FNL(14))="N" : PRINT AT(R9+1,C9);"."; : GOTO 4110 4400 IF A$<>HEX(F0)AND A$<>HEX(50)THEN 4300 4410 PRINT AT(R9+1,0,80); : R9=1 : C9=11 : FOR A2=1TO G5 : STR(G4$(A2),FNS(14),FNL(14))="N" : NEXT A2 : GOTO 3025 8010 DEFFN'99(M1) 8020 Z1=1 : FOR A3=1TO G5 : C9=VAL(STR(G4$(A3),FNS(16),FNL(16)),2) : R9=VAL(STR(G4$(A3),FNS(15),FNL(15))) : T3$=STR(G3$(A3),FNS(2),FNL(2)) : T2$=STR(G3$(A3),FNS(8),FNL(8)) : T4$=STR(G3$(A3),FNS(13),FNL(13)) : T1=VAL(STR(G3$(A3),FNS(6),FNL(6))) : C9=C9-W1(1,2)+W1(1,6) : R9=R9-W1(1,1)+W1(1,5) 8040 IF C9<W1(1,6)OR C9>W1(1,6)+W1(1,4)-1OR R9<W1(1,5)OR R9>W1(1,5)+W1(1,3)-1T HEN 8100 : IF T4$="N"THEN 8100 : IF T3$<>"N"AND M1=2THEN 8100 : IF T4$="N"THEN 8100 : IF T1=0AND M1=1THEN 8100 : IF T2$<>"NO"AND M1=1THEN 8100 : IF STR(G4$(A3),FNS(14),FNL(14))="Y"THEN PRINT AT(R9+1,C9);HEX(0202020F960 202000E); : ELSE PRINT AT(R9+1,C9);"."; : Z1=0 8100 NEXT A3 : IF Z1=0THEN RETURN 8120 PRINT HEX(06); : KEYIN A$,,8140 8130 PRINT HEX(07); : GOTO 8120 8140 IF A$<>HEX(02)THEN 8170 : IF C6-C8<=80-C8THEN 8130 : C6=C6-C8 : PRINT AT(R9+1,0,80); : GOSUB '222(1,0,C8) : GOSUB '94 : GOTO 8020 8170 IF A$<>HEX(03)THEN 8210 : IF C6+C8>F5THEN 8130 : C6=C6+C8 : PRINT AT(R9+1,0,80); : GOSUB '222(1,0,-1*C8) : GOSUB '94 : GOTO 8020 8210 IF A$<>HEX(F0)AND A$<>HEX(50)THEN 8130 : Z1=1 : R9=1 : C9=13 : RETURN 9010 DEFFN'95 9020 KEYIN A$,9030,9030 : GOTO 9040 9030 PRINT HEX(07); : GOTO 9020 9040 RETURN 9060 DEFFN'94 : IF C6-C8<=80-C8THEN PRINT AT(18,50,30); : ELSE PRINT AT(18,50);"'2 - Look Right"; : IF C6+C8>F5THEN PRINT AT(19,50,30); : ELSE PRINT AT(19,50);"'3 - Look Left"; : RETURN 9100 DEFFNR(D4)=17+D4-((INT((D4-1)/D6))*D6) 9110 DEFFNC(D4)=INT((D4-1)/D6)*D5 9701 DEFFNS(Q)=VAL(STR(F1$(Q),1,1)) 9702 DEFFNL(Q)=VAL(STR(F1$(Q),2,1)) 9900 DEFFN'0"\A0HEX(03);:LISTSD 8240, 9699";HEX(0D) : GOTO 4010 9999 % SCRATCH T "PKSORT":SAVE T ()"PKSORT"