image of READY prompt

Wang2200.org

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