Listing of file='DSM202BA' on disk='vmedia/701-2048D.wvd.zip'
# Sector 771, program filename = 'DSM202BA' 0010 REM DSM202BA,00-00(02/18/76),12003A - COPYRIGHT WANG LABS. INC., 1976 0300 COM A,B,B1,C,E,J3,Y : COM X,L,I,H : DIM F2$(36)2,L2$(36)3 : DIM N1$2,N0$2,P1$3,C1$3 : DIM A3$2,P$3,X1$2 0500 PRINT HEX(030A0A0A0A) : PRINT "PASS 2 - MERGE" : LOAD DA T#2,(D2$,D2$)500,599 0570 DIM E3$(02)2,D3$(03)1 : DIM S0$(005)20,S$(02,005)20,S1$(005)20 : DIM A3$(02)2,P3$(02)3,C3$(04)2 0600 GOTO 5000 0700 IF G>255THEN 1250 : IF B3$(G)=HEX(0000)THEN 1250 : P=VAL(B3$(G)) : Q=VAL(STR(B3$(G),2)) 0820 IF S$<S0$THEN 2680 : S0$=S$ : GOSUB 900 : O1=O1+1 : ADDC(L3$,C1$) : IF L3$=HEX(000000)THEN 2700 : G=G+1 : GOTO 700 0900 O=O+1 : IF O<=R0THEN 970 0960 O=1 0970 RETURN 1000 MAT MERGES$()TO D3$(),E3$(),B3$() : IF B3$(1)=HEX(0000)THEN 5400 : H=0 : IF D3$(D6+1)=HEX(00)THEN 1050 : GOSUB '40(VAL(D3$(D6+1))) 1050 G=1 : IF L=1THEN 700 1070 X=0 1110 O=O+F : IF O<=D2THEN 1200 : M2$=C3$(1) : A3$=C3$(2) : MAT COPY C3$()<3,C3>TO C3$() : I=I-1 1180 O=1 1200 G=G+F : IF G>255THEN 1250 : IF B3$(G)=HEX(0000)THEN 1250 : GOTO 1070 1250 GOSUB 1300 : GOTO 1000 1300 IF H=0THEN 1330 1330 RETURN 2000 DEFFN'40(X) : P$=P3$(X) : A3$=A3$(X) : IF P$=HEX(000000)THEN 2140 : IF L=1THEN 2060 : C3$(I)=A3$ : I=I+1 2060 X=0 2070 H=1 : D3$(X)=HEX(01) : A3$(X)=A3$ : ADDC(P$,K2$) : IF P$<P3$(X)THEN 2130 : INIT(00)P$ 2130 P3$(X)=P$ 2140 RETURN 2680 STOP "SEQUENCE ERROR" 2700 IF O=1THEN 2770 2740 GOSUB 900 : GOTO 2700 2770 DATA SAVE DC $#3,END : DATA SAVE DC CLOSE#3 : COM CLEAR I2 : LOAD DC T#0,"START055" 2790 STOP "END OF SORT" 5000 L=0 : O1=0 : B1=9E9 : INIT(00)S0$ : IF S9>D6THEN 5020 : GOSUB 6400 : C=S9 : GOTO 5080 5020 C=D6 : X=INT((S9-1)/(D6-1)) : X=S9-1-(D6-1)*X : IF X=0THEN 5080 : C=X+1 5080 I=1 : INIT(FF)D3$() : INIT(00)P1$ : FOR Y=1TO C 5130 B1=B1+1 : IF B1>S9THEN 6000 5150 B=B+1 : IF B>ATHEN 5700 : A3$(Y)=F3$(B) : P3$(Y)=L3$(B) : ADDC(P1$,L3$(B)) : IF L3$(B)=HEX(000000)THEN 5230 : H=0 : GOSUB '40(Y) : GOSUB 1300 5230 NEXT Y : L3$=P1$ : F3$=C3$(1) : O=1 : GOTO 1000 5400 E=E+1 : K1=K1+1 : IF K1<=36THEN 5460 : GOSUB 5900 : K1=1 5460 IF L=1THEN 2700 : IF S9+E-B1>D6THEN 5470 : GOSUB 6400 5470 L2$(K1)=L3$ : F2$(K1)=F3$ : C=D6 : GOTO 5080 5700 GOSUB 5800 : J3=J3-36 : A=36 : IF J3>=0THEN 5150 : A=J3+36 : GOTO 5150 5800 DATA LOAD DA T#2,(N0$,N0$)F3$(),L3$() : B=0 : RETURN 5900 DATA SAVE DA T$#2,(N1$,N1$)F2$(),L2$() : K1=0 : RETURN 6000 IF B1>9E9THEN 6300 : IF E>36THEN 6070 : MAT COPY F2$()TO F3$() : MAT COPY L2$()TO L3$() : GOTO 6110 6070 GOSUB 5900 : N0$,N1$=M0$ : GOSUB 5800 6110 S9=E 6120 E=0 : J3=S9-36 : K1=0 : B=0 : B1=0 : A=36 : IF J3>=0THEN 5130 : A=J3+36 : GOTO 5130 6300 N0$,N1$=M0$ : GOSUB 5800 : L3$(1)=L3$ : F3$(1)=F3$ : GOTO 6120 6400 L=1 : INIT(FF)C1$ : SCRATCH T#3,O$ : DATA SAVE DC OPEN T$#3,O$,O$ : RETURN