Listing of file='SORT302A' on disk='vmedia/701-2047D.wvd.zip'
# Sector 297, program filename = 'SORT302A' 0010 REM SORT302A,00-00(02/18/76),12003A - COPYRIGHT WANG LABS. INC., 1976 0180 COM A,B,R4,C,E,P5,Y,X,L,I,H 0400 DIM P7$(36)2,P8$(36)3 : DIM S7$(36)2,S8$(36)3,S4$(255)2 : DIM N1$2,N0$2,P1$3 : DIM S3$2,P$3,X1$2 0500 PRINT HEX(030A0A0A0A) : PRINT "PASS 2 - MERGE" : LOAD DA T#2,(S2$,S2$)500,599 0570 DIM S6$(02)2,S5$(03)1 : DIM R0$(005)3,R$(02,005)3,R1$(005)3 : DIM S0$(005)20,S$(02,005)20,S1$(005)20 : DIM S3$(02)2,P3$(02)3,S9$(04)2 0600 GOTO 5000 1000 MAT MERGES$()TO S5$(),S6$(),S4$() : IF S4$(1)=HEX(0000)THEN 5400 : H=0 : IF S5$(P6+1)=HEX(00)THEN 1050 : GOSUB '40(VAL(S5$(P6+1))) 1050 G=1 1055 R=P2 : MAT MOVE S$(),S4$(G),RTO S1$(O) : MAT MOVE R$(),S4$(G),RTO R1$(O) : O=O+R : IF O<=P2THEN 1200 : M2$=S9$(1) : S3$=S9$(2) : MAT COPY S9$()<3,P3>TO S9$() : I=I-1 : DATA SAVE DA T$#2,(M2$,M2$)S3$,S1$(),R1$() : O=1 1200 G=G+R : IF G>255THEN 1250 : IF S4$(G)=HEX(0000)THEN 1250 : GOTO 1055 1250 GOSUB 1300 : GOTO 1000 1300 IF H=0THEN 1330 : MAT COPY S0$()TO S$()<(X-1)*S3+1,S3> : MAT COPY R0$()TO R$()<(X-1)*R3+1,R3> 1330 RETURN 2000 DEFFN'40(X) : P$=P3$(X) : S3$=S3$(X) : IF P$=HEX(000000)THEN 2140 : S9$(I)=S3$ : I=I+1 : DATA LOAD DA T#2,(S3$,X1$)S3$,S0$(),R0$() : H=1 : S5$(X)=HEX(01) : S3$(X)=S3$ : ADDC(P$,P3$) : IF P$<P3$(X)THEN 2130 : INIT(00)P$ 2130 P3$(X)=P$ 2140 RETURN 5000 IF S9=1THEN 5600 : R4=9E9 : C=P6 : X=INT((S9-1)/(P6-1)) : X=S9-1-(P6-1)*X : IF X=0THEN 5080 : C=X+1 5080 I=1 : INIT(FF)S5$() : INIT(00)P1$ : FOR Y=1TO C 5130 R4=R4+1 : IF R4>S9THEN 6000 5150 B=B+1 : IF B>ATHEN 5700 : S3$(Y)=S7$(B) : P3$(Y)=S8$(B) : ADDC(P1$,S8$(B)) : IF S8$(B)=HEX(000000)THEN 5230 : H=0 : GOSUB '40(Y) : GOSUB 1300 5230 NEXT Y : S8$=P1$ : S7$=S9$(1) : O=1 : GOTO 1000 5400 E=E+1 : S4=S4+1 : IF S4<=36THEN 5460 : GOSUB 5900 : S4=1 5460 IF S9+E-R4=1THEN 5600 : P8$(S4)=S8$ : P7$(S4)=S7$ : C=P6 : GOTO 5080 5600 IF H$=" "THEN 5640 : LOAD DC T#6,H$ 5640 LOAD DC T#0,"SORT303A" 5700 GOSUB 5800 : P5=P5-36 : A=36 : IF P5>=0THEN 5150 : A=P5+36 : GOTO 5150 5800 DATA LOAD DA T#2,(N0$,N0$)S7$(),S8$() : B=0 : RETURN 5900 DATA SAVE DA T$#2,(N1$,N1$)P7$(),P8$() : S4=0 : RETURN 6000 IF R4>9E9THEN 6300 : IF E>36THEN 6070 : MAT COPY P7$()TO S7$() : MAT COPY P8$()TO S8$() : GOTO 6110 6070 GOSUB 5900 : N0$,N1$=M0$ : GOSUB 5800 6110 S9=E 6120 E=0 : P5=S9-36 : S4=0 : B=0 : R4=0 : A=36 : IF P5>=0THEN 5130 : A=P5+36 : GOTO 5130 6300 N0$,N1$=M0$ : GOSUB 5800 : S8$(1)=S8$ : S7$(1)=S7$ : GOTO 6120