Listing of file='SORT4' on disk='vmedia/701-2425A.wvd.zip'
# Sector 47, program filename = 'SORT4' 0010 REM SORT4,08/09/77,COPYRIGHT WANG LABS.1976 0180 COM S8,S9,M$8,V$(7)1,P4$16,O9$(4)1,F$(6)3,V0,V0$2,S2 : COM N$(4)8,M1$2,M2$2,P4,M0$2,P7,N7$2,D$1,C$1,P$3 : COM M5,M6,P5,E,M3$2,M5$2,N9$1,P5$2,P6$3,M7$2 : COM N9,P1$3,P8$1,A,Y,O$12,X1$2,L,O(5),P6 : COM P2,X2$2,P0,F,H,X3,X2,P9 : COM Z,F(6),N,B,I 0189 COM G$8,M6$2,T0,V7,T2$(8)2,T4,T$8,J$(1)2,M3 : COM E$30,M4$2,T5,V4$4,V1,P2$2 : COM J,K,M4,P3,P$(4)16,M0,M8,N6,F$1,P8,B$1,I(4),J(3),Z$8,Y$1 : COM X5$10,X6$10,X7$10,X8$10,X9$10,M7,N1,D,M,D$(4)64 : COM A$30,X3$(1)2,Q$1,I$8,K(10),B(10),N(10),A$(4)62,L$8,M0$(1)21 : GOTO 3100 3100 MAT SORTM0$()TO X3$(),J$() : M0=3-VAL(J$(1)) 3150 M=16-8*VAL(J$(1)) 3160 M=S+(1-SGN(S))*M-.2*SGN(S) : E=33 : IF M<7THEN 7020 : J=0 : P7,P8,M7,N6,S9=0 : B,D=1 : L$="ALL" : M3=9E9 : FOR X=1TO 10 : K(X),N(X),B(X)=0 : NEXT X : INIT(20)A$(),F$(),V$(),P$(),G$,M$,P8$,D$,O9$(),B$,I$ : INIT(FF)E$ : C$="Y" : INIT(00)X9$,A$ 3280 M0$(1)="310320330350B10B20B30" : SELECT DISK 310,#1320,#2330,#3350,#4B10,#5B20,#6B30 3730 PRINT HEX(030A0A0A0A) : PRINT "SORT-4 START" : PRINT HEX(0A) : GOSUB '35(3) : IF C$="W"THEN 3830 : GOSUB '35(4) 3830 GOSUB '35(5) : Z$=G$ : OR (Z$,I$) : OR (Z$,M$) : IF Z$=" "THEN 3955 : GOSUB '35(6) : IF I$=" "THEN 3955 : LIMITS T#F(6),I$,X,Y,Z : DATA LOAD DA T#F(6),(X,X)A$() : D$(1)=HEX(50015001A008A003A003A008A0085002) : $UNPACK(F=D$(1))A$()TO F,J,Z$,P$,P6$,T$,X5$,B : IF N$(1)<>" "THEN 3910 : N$(1)=Z$ 3910 IF F$(1)<>" "THEN 3920 : F$(1)=P$ 3920 IF P$(1)<>" "THEN 3930 : P$(1)=T$ 3930 IF F$(2)<>" "THEN 3955 : F$(2)=P6$ 3955 GOSUB '35(1) : IF J=0THEN 3980 : GOSUB '35(2) 3980 IF F=4THEN 3995 : Y$=HEX(06) : MAT SEARCHV$(),=Y$TO J$() : IF J$(1)=HEX(0000)THEN 4015 3995 O9$(2)="X" 4000 LOAD DC T#F(5),"SORT400C"4000,4000 4015 Z$=N$(1) : IF F<>1THEN 4030 : Z$="SCRATCH" 4030 IF V$(F(1)+1)<>HEX(06)THEN 4065 : GOSUB '217(Z$,F(1),S2,0,2,P$(1),F$(1),0) : E=39 : IF Q$="A"THEN 7020 : E=3 : IF Q$<>" "THEN 7020 : O9$(1)="O" 4065 PRINT "INPUT FILE ";N$(1);TAB(26);"DEVICE ";F$(1);TAB(45);"FORMAT ";F : LIMITS T#F(1),Z$,I(1),X,I(3) : I(2)=X-I(1)+1 : GOSUB '43(I(1)) : M4$=X1$ : I(4)=I(1) : I(3)=I(3)-2 : E=1 : IF I(3)<1THEN 7020 : PRINT "RECORDS PER BLOCK ";B : E=4 : IF B<1THEN 7020 : IF B>255THEN 7020 : IF B<>INT(B)THEN 7020 : ON F+1GOTO 4910,4205,4205,4270,4270,4270 4135 E=2 : GOTO 7020 4205 I(3)=I(3)-2 : E=1 : IF I(3)<1THEN 7020 : DATA LOAD BA T#F(1),(I(4),I(4))D$() : IF STR(D$(1),4,3)<>"HDR"THEN 4230 : IF STR(D$(1),8,8)=N$(1)THEN 4910 4230 E=12 : GOTO 7020 4270 LOAD DC T#F(5),"SORT400B"2020,3099 4910 PRINT "STARTING BLOCK # TO BE SORTED ";D : E=5 : IF D<1THEN 7020 : IF D<>INT(D)THEN 7020 : PRINT "NUMBER OF BLOCKS TO BE SORTED ";L$ : IF L$="ALL"THEN 5710 : E=6 : IF NUM(L$)=0THEN 7020 : CONVERT STR(L$,1,NUM(L$))TO M3 : IF M3<1THEN 7020 : IF M3<>INT(M3)THEN 7020 5710 PRINT "WORK FILE ";N$(3);TAB(26);"DEVICE ";F$(3) : IF V$(F(3)+1)<>HEX(06)THEN 5740 : GOSUB '217(N$(3),F(3),S2,0,4,P$(3),F$(3),0) : E=40 : IF Q$="A"THEN 7020 : E=15 : IF Q$<>" "THEN 7020 : O9$(3)="O" 5740 LIMITS T#F(3),N$(3),J(1),J(2),X : J(3)=J(2)-J(1)+1 : E=16 : IF J(3)<25THEN 7020 : E=21 : FOR X=1TO 10 : Y=K(X) : IF Y<>INT(Y)THEN 7020 : IF Y>0THEN 5805 : IF X<=KTHEN 7020 : IF Y<0THEN 7020 5805 IF Y>255THEN 7020 : BIN(STR(X6$,X))=Y : Y=B(X) : IF Y<>INT(Y)THEN 7020 : IF Y<0THEN 7020 : IF Y>128THEN 7020 : BIN(STR(X7$,X))=Y : Y=N(X) : IF Y<>INT(Y)THEN 7020 : IF Y<0THEN 7020 : IF Y>128THEN 7020 : IF Y+B(X)>129THEN 7020 : BIN(STR(X8$,X))=Y : NEXT X : X=POS(X9$>01) : IF X>0THEN 7020 : DATA SAVE DA T#F(3),(J(1),X)A$(),I$ : COM CLEAR A$ : LOAD DC T#F(5),"SORT401A" 7018 DEFFN'31 : E=28 7020 LOAD DC T#F(5),"SORT490A" 7040 DEFFN'35(Z) : E=10 : Z$=F$(Z) : IF Z$=" "THEN 7020 : Y=VAL(STR(Z$,2)) : BIN(STR(Z$,2))=Y-8*SGN(INT(Y/56))-7*SGN(INT(Y/65)) : BIN(Y$)=5+SGN(INT(Y/56)) : MAT SEARCHM0$(),=STR(Z$,1,3)TO J$()STEP 3 : Y=VAL(STR(J$(1),2)) : IF Y=0THEN 7020 : X,F(Z)=(Y-1)/3 : IF V$(X+1)=" "THEN 7140 : IF V$(X+1)=Y$THEN 7140 : E=9 : GOTO 7020 7140 V$(X+1)=Y$ : IF Y$=HEX(05)THEN 7180 : IF S2>0THEN 7180 : E=29 : GOTO 7020 7180 F$(Z)=Z$ : RETURN 7250 DEFFN'43(X) : Y=INT(X/256) : BIN(X1$)=Y : BIN(STR(X1$,2))=X-256*Y : RETURN