Listing of file='SORT402A' on disk='vmedia/701-2425A.wvd.zip'
# Sector 80, program filename = 'SORT402A' 0010 REM SORT402A,08/24/77,COPYRIGHT WANG LABS.1976 0200 COM X0$(30)1,X1$(30)1,X0$10 : DIM B$(32)2,X$(32)2 0520 N4,A,C=0 : FOR X=1TO 5 : O(X),C(X+10)=0 : NEXT X : X0$=HEX(A000A01020304050A0A0) : INIT(00)X0$(),X1$() : IF P8$="T"THEN 750 : IF C$="W"THEN 690 : IF P8$="K"THEN 720 : IF P8$=" "THEN 810 : IF P8$="R"THEN 840 : E=31 : GOTO 7020 0690 E=30 : GOTO 7020 0720 E=20 : IF D$="D"THEN 7020 0750 P0=0 : N2=4 : N5=N1+4 : GOTO 1220 0810 IF D$<>"D"THEN 840 : P8$="R" 0840 P0=1 : N2=0 : M6=0 : N9=210 : FOR G=1TO L : IF X6$(G)>HEX(F0)THEN 1090 : IF X6$(G)=HEX(01)THEN 1090 : IF X3$(G)=HEX(01)THEN 960 : N2=N2+VAL(X4$(G))*VAL(X5$(G)) : GOTO 1090 0960 X5=VAL(X5$(G)) : N4=N4+9*X5 : X=3+2*SGN(X5-1)+SGN(B-1) : IF SGN(X5-1)*SGN(B-1)=0THEN 1030 : X=10*X5 1030 IF N9+X<211THEN 1070 : C(11)=C(11)+1 : N9=0 : N4=N4+3 1070 N9=N9+X : M6=M6+X 1090 NEXT G : N5=N1+N2+N4+N6+M7 : E=32 : IF N5-N1>256THEN 5670 : IF P8$="R"THEN 1220 : IF M0=3THEN 1220 : IF (N1/N5)*B*(1-N6/N5)<.4THEN 5670 1220 N3=1 : X=N5 : O(1)=N1 : IF P0=1THEN 1320 : IF N1>60THEN 1400 : GOTO 1470 1320 IF N5>64THEN 1370 : IF M7>0THEN 1400 : GOTO 1470 1370 IF INT((N5-1)/64)=INT((N5-N1-1)/64)+1THEN 1400 : O(1)=64 1400 X=X-O(1) 1410 N3=N3+1 : IF X<65THEN 1470 : O(N3)=64 : X=X-64 : GOTO 1410 1470 O(N3)=X : P5=1 : BIN(X0$(1))=132 : N=0 : O=3 : D$(1)=HEX(8200) : X2=J(1) : N9=0 : FOR H=1TO K : G=VAL(STR(X6$,H)) : X6=VAL(X6$(G)) : P=SGN(VAL(X5$(G))-1) : Q=SGN(VAL(X7$(G))-1) : X0=SGN(VAL(STR(X7$,H))) : N=N+1 : X$(N)=HEX(A0) : STR(X$(N),2)=STR(X8$,H) : B$(N)=X$(N) : IF X6>2THEN 1790 : X=4+5*P+3*Q+6*X0 : IF P0*X6<>1THEN 1820 1760 C=C+4+3*Q+(10+3*Q)*VAL(STR(X9$,H)) : GOTO 1850 1790 X=7 : A=A+X0*(3+5*P+3*Q) 1820 BIN(B$(N))=0 1850 A=A+X : N9=N9+X : NEXT H : IF P0=1THEN 2000 : N=N+1 : X$(N)=HEX(A004) : A=A+3 : GOTO 2540 2000 IF M7=0THEN 2090 : N=N+1 : X$(N)=HEX(A0) : BIN(STR(X$(N),2))=M7 : B$(N)=X$(N) : N9=N9+4 : A=A+4 : C=C+4 2090 A=A+M6 : C=C+M6 : G=0 2130 G=G+1 : IF G>LTHEN 2540 : X3=VAL(X3$(G)) : X6=VAL(X6$(G)) : IF X6>250THEN 2130 : IF X6=1THEN 2130 : IF X3=1THEN 2130 : X5=VAL(X5$(G)) : P=SGN(X5-1) : Q=SGN(VAL(X7$(G))-1) : X=4+2*P+3*Q+(11*X5-9)*P*Q : A=A+X : C=C+X : H=1+P*Q*(X5-1) 2300 IF N+H>32THEN 2460 : N9=N9+X : IF N9>210THEN 2460 : FOR Z=1TO H : N=N+1 : X$(N)=STR(X0$,X3+1) : STR(X$(N),2)=X4$(G) : IF P5>1THEN 2410 : B$(N)=X$(N) 2410 NEXT Z : GOTO 2130 2460 E=32 : IF N=0THEN 5670 : GOSUB 3320 : N9=0 : C(11)=C(11)+1 : BIN(X0$(P5))=131+P5 : GOTO 2300 2540 GOSUB 3320 : C(11)=C(11)+1+SGN(N4)*P0 : FOR G=1TO L : X3=VAL(X3$(G)) : X6=VAL(X6$(G)) : X4=VAL(X4$(G)) : X5=VAL(X5$(G)) : H=VAL(X7$(G)) : IF X3>1THEN 2910 : IF X6<250THEN 3120 : Z=0 : IF X6+2*P0=255THEN 3120 : Z=1 : GOSUB 3220 : IF M7*P0=0THEN 3120 : N=N+1 : X$(N)=HEX(A0) : BIN(STR(X$(N),2))=M7 : GOTO 3120 2910 IF Z=0THEN 3590 : IF P0+X6>0THEN 2980 : IF N=0THEN 3590 : X7=X7+X4*X5*H : GOTO 3590 2980 IF X7>255THEN 3000 : IF N+SGN(X7)<32THEN 3010 3000 GOSUB 3220 3010 N=N+1 : IF X7=0THEN 3090 : INIT(00)X$(N) : BIN(STR(X$(N),2))=X7 : X7=0 : N=N+1 3090 X$(N)=STR(X0$,X3+1) : BIN(STR(X$(N),2))=X4 3120 IF X6=3THEN 3560 : Q=SGN(H-1) : P=SGN(X5-1) : X=16+5*P+5*Q+4*SGN(P+Q)+X4*X5*H : A=A+X : C=C+X*P0 : GOTO 3590 3220 GOSUB 3320 : BIN(X0$(P5))=G : IF X5*H>1THEN 3280 : X1$(P5)=HEX(80) 3280 C(12)=C(12)+1 : X7=0 : RETURN 3320 IF N=0THEN 3470 : N=N*2 : IF N+O<256THEN 3380 : GOSUB 3490 : O=3 3380 BIN(J$(1))=N : OR (J$(1),80) : MAT COPY J$()TO D$()<O,1> : MAT COPY X$()TO D$()<O+1,N> : O=O+N+1 : BIN(Y$)=N : ADD(X1$(P5),Y$) : P5=P5+1 : N=0 3470 RETURN 3490 ADD(STR(D$(1),2,1),01) : J$(1)=HEX(FD) : MAT COPY J$()TO D$()<O,1> : DATA SAVE BA T$#F(3),(X2,X2)D$() : RETURN 3560 A=A+50+16*B : C=C+P0*(8+12*SGN(B-1)+8*B) 3590 NEXT G : GOSUB 3320 : IF N3=1THEN 3710 : BIN(X0$(P5))=131 : INIT(A0)X$() : FOR G=1TO N3 : N=N+1 : BIN(STR(X$(N),2))=O(G) : NEXT G : GOSUB 3320 3710 P3=P5-1 : IF P0=0THEN 3830 : MAT COPY B$()TO X$() : N=VAL(X1$(1))*.5 : X0$(P5)=X0$(1) : GOSUB 3320 : GOTO 3990 3830 IF F$<>"A"THEN 3990 : IF P8$<>"K"THEN 3990 : BIN(X0$(P5))=61 : FOR G=2TO L : IF G<>34THEN 3930 : GOSUB 3320 : BIN(X0$(P5))=94 3930 N=N+1 : X$(N)=STR(X0$,VAL(X3$(G))+1) : STR(X$(N),2)=X4$(G) : NEXT G : GOSUB 3320 3990 P5=P5-1 : STR(D$(1),1,1)=HEX(81) : GOSUB 3490 : IF F<>1THEN 4070 : A=A+24 4070 M7$,O$=HEX(A002) : X=SGN(M7)*(16+15*M7) : IF F<>2THEN 4170 : A=A+23 : IF F$<>"P"THEN 4170 : X=X+22 4170 C(13)=SGN(X) : A=A+X : BIN(STR(M7$,2))=M7+1 : FOR G=1TO N3 : H=G*2+1 : STR(O$,H)=HEX(A0) : BIN(STR(O$,H+1))=O(G) : NEXT G : FOR G=1TO P3 : P=0 : Q=VAL(X1$(G)) : IF Q<128THEN 4360 : Q=Q-128 : P=7 4360 X=15+P+Q : A=A+X : C=C+X*P0 : NEXT G : C=C+4*P0 : X=30*(C(11)+C(12)) : A=A+X : C=C+P0*X : IF F$>"P"THEN 4480 : X=28 : IF F$="P"THEN 4476 : X=27*(K+1) : IF F$="A"THEN 4476 : X=16*(K+1) 4476 C=C+(X+26)*P0*SGN(B-1) 4480 A=A+162+118*N3+26*SGN(N3-1)+N5+12*M7+23*C(2)+3*C(4)+2*C(9)+17*C(5)+39*SGN (C(2))+(1-P0)*(25+28*SGN(INT(N0/257)))+54*P0*SGN(M7) : C=C+151+2*N5+113*N3+(N5+7*N3+27)*SGN(N3-1)+(1-P0)*(328+15*N3+(11+2*N3)*SG N(N3-1))+44*P0+P0*SGN(M7)*(86+47*M7) : IF F$<>"T"THEN 4590 : A=A+8 4530 C=C+32*P0 4590 M1=INT(M*1024)-698 : IF M0<3THEN 4640 : M1=M1-2521 4640 M2=M1 : M1=M1-A-M4-SGN(J)*764-2750 : IF P8$="K"THEN 4790 : M2=M2-C-3520 : GOTO 4820 4790 M2=M2-(73+113*N3)-3200 4820 P6=7 4830 P6=P6-1 : E=33 : IF P6<4THEN 5670 : P2=INT((M2-P6*10)/((2+P6)*N5)) : IF P2<200THEN 4920 : P2=200 4920 C=1 : IF M0=3THEN 4960 : C=5 4960 H=INT((P2*N5+1)/248)+1 : G=INT((248*H-250)/N5) : IF P2/(P2-G)<C+HTHEN 5050 : P2=G : H=H-1 5050 IF P2<5THEN 4830 : IF H<2THEN 4830 : IF (P2*N5)/(248*H)<.75THEN 4830 : P6=INT((M2-2*P2*N5)/(10+P2*N5)) : P4=1 : X=M1+91+45*N3 : P9=INT(((X-2*P2*N5)/(N5+2))/P2)*P2 : IF P9<252THEN 5240 : P9=P2 : P4=INT((M1-P2*(3*N5+2))/(P2*N5+3)) 5240 IF M0=3THEN 5320 : X=INT(4095/P2) : IF P4<XTHEN 5280 : P4=X 5280 IF P6<XTHEN 5320 : P6=X 5320 Z=I(3)/M8 : E=7 : IF D>ZTHEN 7020 : Z=Z-D+1 : IF Z>M3THEN 5380 : M3=Z 5380 E=8 : IF M3<>INT(M3)THEN 7020 : IF P8>0THEN 5430 : P8=M3*B 5430 IF P7>0THEN 5520 : IF P8$="T"THEN 5480 : P7=I(2) : GOTO 5520 5480 P7=INT(P8/50)+3 5520 Y=INT((P8-1)/(P9*P4))+1 : Z=INT((Y-1)/36)+1 : N9=INT((P8-1)/P2+2)*H : N=25+Z : IF C$<>"W"THEN 5620 : IF P7<NTHEN 5620 : N=P7 5620 IF N+N9<J(3)THEN 5720 : E=16 5670 IF P8$<>" "THEN 7020 : P8$="K" : GOTO 520 5720 IF P8$>" "THEN 5750 : P8$="R" 5750 GOSUB '43(J(1)) : M0$=X1$ : GOSUB '43(X2) : N7$=X1$ : GOSUB '43(J(1)+25) : M1$=X1$ : GOSUB '43(J(1)+N) : M2$=X1$ : GOSUB '43(J(2)) : M5$=X1$ : GOSUB '43(65536-P2) : P1$=HEX(FF) : STR(P1$,2)=X1$ : GOSUB '43(H) : M3$=X1$ : X=I(4)+(D-1)*M8 : GOSUB '43(X) : P2$=X1$ : GOSUB '43(P2) : N9$=STR(X1$,2) : IF C$="W"THEN 6160 : IF V$(F(4)+1)=HEX(06)THEN 7035 5990 X3=0 : IF D$="D"THEN 6090 : IF C$="Y"THEN 6060 : DATA SAVE DC OPEN T$#F(4),P7,N$(4) : DATA SAVE DC CLOSE#F(4) 6060 LIMITS T#F(4),N$(4),X2,X3,X : IF P7>X3-X2+1THEN 6130 6090 X3=X3-2 : IF P8$="T"THEN 7005 : X3=X3-M8+1 : GOTO 7005 6130 E=19 : GOTO 7020 6160 E=20 : IF D$="D"THEN 7020 : N$(4)=N$(3) : F$(4)=F$(3) : F(4)=F(3) : P4$=P$(3) : X2=J(1) : X3=J(1)+N-3 7005 LOAD DC T#F(5),"SORT403A" 7018 DEFFN'31 : E=28 7020 LOAD DC T#F(5),"SORT490A" 7035 LOAD DC T#F(5),"SORT402B" 7055 DEFFN'43(X) : Y=INT(X/256) : BIN(X1$)=Y : BIN(STR(X1$,2))=X-256*Y : RETURN