Listing of file='SORT300B' on disk='vmedia/701-2047D.wvd.zip'
# Sector 228, program filename = 'SORT300B'
0010 REM SORT300B,00-00(02/18/76),12003A - COPYRIGHT WANG LABS. INC., 1976
0180 COM X1$(56)2,X2$56,X3$56,X5$64,X6$64,X8$64,X9$10
: COM U,S8,S2,L3,P1,B,C,N
: COM K0,B$10,N$10,D9$2,K$2,B1$3,B2$3,B3$2,X1$2,Y$1,X4$2
: COM Y1$1,R0$3,X0$1,D$(4)64,U1$2,U2$(2)2,Z$8,X$40
0205 RETURN
3100 DATA LOAD DA T#2,(P0$,X1$)X2$,X3$,X6$,X8$,X9$,U,S8,L3,K0,B$,N$,B3,G2
: IF C$="X"THEN 3370
: PRINT "OUTPUT FILE ";O$;TAB(45);"CATALOGUED ";C$
: P7=(INT((R2-1)/R0)+1)*B3+2
: IF F=0THEN 3200
: IF F=2THEN 3200
: P7=P7+4
3200 IF D$<>"D"THEN 3240
: IF R1$="R"THEN 3370
: STOP "DEFERRED MOUNTING INVALID"
3240 IF C$="N"THEN 3330
: X,Y=0
: LIMITS T#3,O$,X,Y,Z
: IF P7<=Y-X+1THEN 3370
: IF G$<>" "THEN 3370
: IF H$<>" "THEN 3370
: STOP "OUTPUT SPACE TOO SMALL"
3330 DATA SAVE DC OPEN T$#3,P7,O$
: DATA SAVE DC CLOSE#3
3370 CONVERT P2TO B2$,(###)
: CONVERT R0TO R0$,(###)
: U1$="SR"
: CONVERT KTO U2$(1),(##)
: CONVERT L3-KTO U2$(2),(##)
: P3=(P6+1)*2
: S3=K*P2
: R3=(L3-K)*P2
: X4$="A0"
: FOR P=1TO S8
: CONVERT P-1TO X1$,(##)
: AND (X1$,0F)
: ADDC(X1$,X4$)
: X1$(P)=X1$
: NEXT P
3610 FOR S2=1TO K0
: STR(X5$,S2,1)="S"
: NEXT S2
: IF U=1THEN 3790
: IF R1$="K"THEN 3790
: Y1$=HEX(01)
: FOR P=1TO S8
: IF STR(X2$,P,1)=HEX(02)THEN 3760
: S2=S2+1
: STR(X5$,S2,1)="R"
: STR(X6$,S2,1)=Y1$
: ADDC(Y1$,STR(X3$,P,1))
: BIN(STR(X8$,S2,1))=P
3760 NEXT P
3790 P1=1
: D9$=S1$
: GOSUB '5
: Y=3140
: Y$=" "
: GOSUB '4
: X0$=HEX(00)
: GOSUB '15(P9,P4)
: X$="X3$(000)2,"
: STR(X$,5,3)=B1$
: GOSUB '1(10)
: IF R2$="S"THEN 3920
: GOSUB '18(P4)
3920 GOSUB '14
: GOSUB '9
: IF R2$="L"THEN 4010
: GOSUB '10(3310,11)
: X$="P=0:"
: GOSUB '1(4)
: GOSUB '9
4010 IF F=0THEN 4380
: IF F=2THEN 4170
: IF F=3THEN 4322
: GOSUB '10(3450,23)
: X$=HEX(59243DD30000242851292C322C31293A)
: STR(X$,5,2)=X1$(1)
: A=16
: IF R0>1THEN 4090
: STR(X$,8)=STR(X$,11)
: A=13
4090 GOSUB '1(A)
: X$=HEX(9F59243D223322B1FF42803A)
: GOSUB '1(12)
: STR(X$,6,1)="2"
: GOSUB '1(12)
: GOSUB '9
: GOTO 4380
4170 GOSUB '10(3440,30)
: X$=HEX(9F52343D31B1FF34503A9A273233372831293A)
: GOSUB '1(19)
: X$=HEX(9F51243D222022B1FF34503A)
: GOSUB '1(12)
: STR(X$,6,1)="E"
: STR(X$,10,2)=HEX(4280)
: GOSUB '1(12)
4280 X$=HEX(95224B46414D2052454144204552524F52223A)
: GOSUB '1(19)
: GOSUB '9
: GOSUB '10(3450,33)
: X$=HEX(5032243D5434243AE843285032242C4E3424293A9AFF36503A)
: GOSUB '1(25)
: GOSUB '9
: GOTO 4380
4322 GOSUB '10(3450,35)
: Y$=X2$
: IF Y$=HEX(01)THEN 4346
: IF Y$=HEX(03)THEN 4346
: X$=HEX(9FD34130242851292C312C31293DD2464629B1FF42803A)
: X=6
: A=23
: GOTO 4354
4346 X$=HEX(9F41302851293D39453939B1FF42803A)
: X=4
: A=16
4354 IF R0>1THEN 4364
: IF Y$=HEX(03)THEN 4364
: STR(X$,X)=STR(X$,X+3)
: A=A-3
4364 GOSUB '1(A)
: GOSUB '9
4380 GOSUB '10(3560,45)
: IF R1$="R"THEN 4440
: X$=HEX(DED352242C3329293D513A)
: GOSUB '1(11)
4440 FOR R=1TO K0
: X=VAL(STR(X8$,R,1))
: IF STR(X9$,R,1)=HEX(00)THEN 4550
: X$=HEX(8C28D3)
: STR(X$,4)="A0$(Q),00,00),FF):"
: STR(X$,4,2)=X1$(X)
: P=VAL(STR(B$,R))+1
: CONVERT PTO STR(X$,11,2),(##)
: P=VAL(STR(N$,R))
: CONVERT PTO STR(X$,14,2),(##)
: IF R0>1THEN 4540
4500 IF STR(X2$,X,1)=HEX(03)THEN 4540
: STR(X$,7)=STR(X$,10)
: GOSUB '1(18)
: GOTO 4550
4540 GOSUB '1(21)
4550 NEXT R
: FOR R=1TO S2
: X=VAL(STR(X8$,R,1))
: P=VAL(STR(X6$,R,1))
: CONVERT PTO K$,(##)
: IF STR(X2$,X,1)=HEX(03)THEN 5030
: IF STR(X2$,X,1)=HEX(01)THEN 5050
4650 IF P=1THEN 4720
: X$=HEX(D300242C0000293D)
: A=9
: STR(X$,2,1)=STR(X5$,R,1)
: STR(X$,5,2)=K$
: GOTO 4760
4720 X$="A$="
: A=4
: STR(X$,1,1)=STR(X5$,R,1)
4760 Q3=A
: STR(X$,A,2)=X1$(X)
: STR(X$,A+2,1)="$"
: A=A+3
4810 IF STR(X2$,X,1)=HEX(03)THEN 4830
: IF R0=1THEN 4860
4830 STR(X$,A,3)="(Q)"
: A=A+3
4860 IF STR(X2$,X,1)<>HEX(02)THEN 4980
: IF STR(B$,R,1)=HEX(00)THEN 4980
: Z$=STR(X$,Q3)
: STR(X$,Q3+1)=Z$
: STR(X$,Q3,1)=HEX(D3)
: STR(X$,A+1,7)=",00,00)"
: Q2=VAL(STR(B$,R,1))+1
: CONVERT Q2TO STR(X$,A+2,2),(##)
: Q2=VAL(STR(N$,R,1))
: CONVERT Q2TO STR(X$,A+5,2),(##)
4960 A=A+8
4980 STR(X$,A,1)=HEX(3A)
: GOSUB '1(A)
: NEXT R
: GOTO 5180
5030 IF STR(X5$,R,1)="S"THEN 4650
5050 IF STR(X6$,R,1)>HEX(01)THEN 5110
: X$=HEX(00243D2220223A)
: STR(X$,1,1)=STR(X5$,R,1)
: GOSUB '1(7)
5110 X$=HEX(E2282B232E2323232323232323232323235E5E5E5E29D300242C00002946524F4D
0000)
: STR(X$,24,1)=STR(X5$,R,1)
: STR(X$,27,2)=K$
: STR(X$,34,2)=X1$(X)
: A=36
: GOTO 4810
5180 GOSUB '9
: GOSUB '10(3580,15)
: X$="A0$(C)=A$:"
: FOR R=1TO U
: STR(X$,1,1),STR(X$,8,1)=STR(U1$,R,1)
: GOSUB '1(10)
: NEXT R
: GOSUB '9
: Y=3650
: IF R1$="R"THEN 5370
: GOSUB '10(Y,14)
: X$="R$=P2$:"
: GOSUB '1(7)
: GOSUB '9
: Y=3651
5370 X=4
: P=K0
: IF R0=1THEN 5420
: X=6
: P=0
5420 Y1=22+S8*X+P
: GOSUB '10(Y,Y1)
: X$=HEX(97A1BD5423312C285032242C50322429)
: GOSUB '1(16)
: X0$=HEX(00)
: GOSUB '11
: GOSUB '9
: P=0
: FOR R=1TO K0
: X=VAL(STR(X8$,R,1))
: IF STR(X2$,X,1)<>HEX(03)THEN 5610
: IF P=1THEN 5580
: P=1
: GOSUB '10(3670,20)
5580 X$=HEX(A8AE00002829B200002428293A)
: STR(X$,3,2),STR(X$,8,2)=X1$(X)
: GOSUB '1(13)
5610 NEXT R
: IF P=0THEN 5640
: GOSUB '9
5640 IF R2$="L"THEN 5800
: GOSUB '10(3760,12)
: X$=HEX(9CFF38303A)
: GOSUB '1(5)
: GOSUB '9
: GOSUB '10(3800,12)
: X$=HEX(9CFF40503A)
: GOSUB '1(5)
: GOSUB '9
: B1$="S0$"
: GOTO 5876
5800 GOSUB '10(3730,30)
: X$=HEX(A8AD00302428292C533424283129B2002428502C31293A)
: FOR R=1TO U
: STR(X$,3,1),STR(X$,16,1)=STR(U1$,R,1)
: GOSUB '1(23)
: NEXT R
: GOSUB '9
: B1$="S$"
5876 GOSUB '17(3880)
: IF G2=0THEN 5920
: GOSUB '10(3942,45)
: X$=HEX(9F4E32243C3D523724B1FF39503A9522)
: STR(X$,17)="WORK SPACE TOO SMALL"
: STR(X$,37)=HEX(223A)
: GOSUB '1(38)
: GOSUB '9
5920 GOSUB '10(3950,28+6*U)
: X$=HEX(9785BD542423322C284D32242C4D3224294E32242C)
: GOSUB '1(21)
: GOSUB '22("1")
: GOSUB '9
: GOSUB '21
: P1=2
: D9$=S2$
: GOSUB '5
: IF R1$="K"THEN 6090
: LOAD DC T#0,"SORT300C"3100,6999
6090 LOAD DC T#0,"SORT300D"3100,6999
7120 DEFFN'1(X1)
: IF N+X1<252THEN 7240
: Y=Y+1
: N=N-1
: GOSUB '2
: Y$=STR(D$(B),C,1)
: STR(D$(B),C,4)=HEX(0D0000FD)
: GOSUB '3
: GOSUB '4
7240 STR(D$(B),C)=STR(X$,1,X1)
: X2=65-C
: IF X2>=X1THEN 7290
: D$(B+1)=STR(X$,X2+1)
7290 N=N+X1
: GOSUB '2
: RETURN
7330 DEFFN'4
: D$(1)=HEX(00FF)
: PACK(####)STR(D$(1),3,2)FROMY
: N=5
: IF Y$=HEX(3A)THEN 7410
: STR(D$(1),5,1)=HEX(93)
: N=6
7410 GOSUB '2
: RETURN
7440 DEFFN'2
: B=INT((N-1)/64)+1
: C=N-(B-1)*64
: RETURN
7490 DEFFN'3
: DATA SAVE BA T$#2,(D9$,D9$)D$()
: RETURN
7530 DEFFN'5
: D$(1)=HEX(40FFFFFFFFFFFFFFFFFD)
: GOSUB '3
: RETURN
7580 DEFFN'8
: IF R0=1THEN 7630
7600 STR(X$,A,5)="(000)"
: STR(X$,A+1,3)=R0$
: A=A+5
7630 RETURN
7650 DEFFN'9
: N=N-1
: GOSUB '2
: X$=HEX(0D0000)
: IF N>240THEN 7720
: GOSUB '1(3)
: RETURN
7720 STR(D$(B),C,3)=X$
: N=N+3
: GOSUB '2
: RETURN
7800 DEFFN'10(Y,Y1)
: IF N+Y1<250THEN 7870
: STR(D$(B),C,1)=HEX(FD)
: GOSUB '3
: STR(D$(1),1,1)=HEX(00)
: N=2
: GOSUB '2
7870 X$=HEX(FF)
: PACK(####)STR(X$,2,2)FROMY
: GOSUB '1(3)
: RETURN
7920 DEFFN'11
: FOR X=1TO S8
: X$=X1$(X)
: ADD(STR(X$,1,1),X0$)
: A=3
: IF STR(X2$,X,1)=HEX(01)THEN 8030
: IF STR(X2$,X,1)<>HEX(03)THEN 8010
: IF P1=1THEN 8040
: GOTO 8030
8010 STR(X$,3,1)="$"
: A=4
8030 IF R0=1THEN 8060
8040 STR(X$,A,2)=HEX(2829)
: A=A+2
8060 STR(X$,A,1)=HEX(2C)
: GOSUB '1(A)
: NEXT X
: RETURN
8120 DEFFN'14
: FOR X=1TO S8
: X$=X1$(X)
: A=3
: IF STR(X2$,X,1)=HEX(01)THEN 8280
: IF STR(X2$,X,1)<>HEX(03)THEN 8200
: IF P1=1THEN 8290
: GOTO 8280
8200 STR(X$,3,1)="$"
: A=4
: GOSUB '8
: R=VAL(STR(X3$,X,1))
: CONVERT RTO STR(X$,A,2),(##)
: A=A+2
: GOTO 8300
8280 IF R0=1THEN 8400
8290 GOSUB 7600
8300 STR(X$,A,1)=HEX(2C)
: ADD(STR(X$,1,1),X0$)
: GOSUB '1(A)
: IF STR(X2$,X,1)<>HEX(03)THEN 8400
: IF P1>1THEN 8400
: X$="A0$(000)8,"
: STR(X$,1,2)=X1$(X)
: STR(X$,5,3)=R0$
: GOSUB '1(10)
8400 NEXT X
: RETURN
8440 DEFFN'15(P,X)
: CONVERT XTO B3$,(##)
: CONVERT PTO B1$,(###)
: FOR A=UTO 1STEP -1
: X$="A1$(000)00,A0$(000)00,A$00,A$(00,000)00,"
: STR(X$,5,3)=B2$
: STR(X$,16,3)=B1$
: STR(X$,31,2)=B3$
: STR(X$,34,3)=B2$
8530 STR(X$,1,1),STR(X$,12,1),STR(X$,23,1),STR(X$,28,1)=STR(U1$,A,1)
: STR(X$,9,2),STR(X$,20,2),STR(X$,25,2),STR(X$,38,2)=U2$(A)
: IF P1<4THEN 8600
: X$=STR(X$,12)
: GOSUB '1(29)
: GOTO 8660
8600 IF P1>1THEN 8650
: IF R2$="L"THEN 8650
: GOSUB '1(27)
: GOTO 8660
8650 GOSUB '1(40)
8660 NEXT A
: RETURN
8730 DEFFN'17(X)
: GOSUB '10(X,32)
: X$=HEX(A8AD20202028292C5334242847292C52B2003124284F293A)
: STR(X$,3,3)=B1$
: FOR R=1TO U
: STR(X$,3,1),STR(X$,18,1)=STR(U1$,R,1)
: GOSUB '1(24)
: NEXT R
: GOSUB '9
: RETURN
8850 DEFFN'18(X)
: X$="S6$(00)2,S5$(00)1,"
: CONVERT XTO STR(X$,5,2),(##)
: CONVERT X+1TO STR(X$,14,2),(##)
: GOSUB '1(18)
: RETURN
8930 DEFFN'21
: STR(D$(B),C,1)=HEX(FE)
: STR(D$(1),1,1)=HEX(20)
: GOSUB '3
: RETURN
9010 DEFFN'22(B1$)
: X$="S0$(),"
: STR(X$,2,1)=B1$
: FOR R=1TO U
: STR(X$,1,1)=STR(U1$,R,1)
: GOSUB '1(6)
: NEXT R
: RETURN