image of READY prompt

Wang2200.org

Listing of file='SORT402A' on disk='vmedia/701-2425A.wvd.zip'

# Sector 80, program filename = 'SORT402A'
0010 REM SORT402A,08/24/77,COPYRIGHT WANG LABS.1976
0200 COM X0$(30)1,X1$(30)1,X0$10
   : DIM B$(32)2,X$(32)2
0520 N4,A,C=0
   : FOR X=1TO 5
   : O(X),C(X+10)=0
   : NEXT X
   : X0$=HEX(A000A01020304050A0A0)
   : INIT(00)X0$(),X1$()
   : IF P8$="T"THEN 750
   : IF C$="W"THEN 690
   : IF P8$="K"THEN 720
   : IF P8$=" "THEN 810
   : IF P8$="R"THEN 840
   : E=31
   : GOTO 7020
0690 E=30
   : GOTO 7020
0720 E=20
   : IF D$="D"THEN 7020
0750 P0=0
   : N2=4
   : N5=N1+4
   : GOTO 1220
0810 IF D$<>"D"THEN 840
   : P8$="R"
0840 P0=1
   : N2=0
   : M6=0
   : N9=210
   : FOR G=1TO L
   : IF X6$(G)>HEX(F0)THEN 1090
   : IF X6$(G)=HEX(01)THEN 1090
   : IF X3$(G)=HEX(01)THEN 960
   : N2=N2+VAL(X4$(G))*VAL(X5$(G))
   : GOTO 1090
0960 X5=VAL(X5$(G))
   : N4=N4+9*X5
   : X=3+2*SGN(X5-1)+SGN(B-1)
   : IF SGN(X5-1)*SGN(B-1)=0THEN 1030
   : X=10*X5
1030 IF N9+X<211THEN 1070
   : C(11)=C(11)+1
   : N9=0
   : N4=N4+3
1070 N9=N9+X
   : M6=M6+X
1090 NEXT G
   : N5=N1+N2+N4+N6+M7
   : E=32
   : IF N5-N1>256THEN 5670
   : IF P8$="R"THEN 1220
   : IF M0=3THEN 1220
   : IF (N1/N5)*B*(1-N6/N5)<.4THEN 5670
1220 N3=1
   : X=N5
   : O(1)=N1
   : IF P0=1THEN 1320
   : IF N1>60THEN 1400
   : GOTO 1470
1320 IF N5>64THEN 1370
   : IF M7>0THEN 1400
   : GOTO 1470
1370 IF INT((N5-1)/64)=INT((N5-N1-1)/64)+1THEN 1400
   : O(1)=64
1400 X=X-O(1)
1410 N3=N3+1
   : IF X<65THEN 1470
   : O(N3)=64
   : X=X-64
   : GOTO 1410
1470 O(N3)=X
   : P5=1
   : BIN(X0$(1))=132
   : N=0
   : O=3
   : D$(1)=HEX(8200)
   : X2=J(1)
   : N9=0
   : FOR H=1TO K
   : G=VAL(STR(X6$,H))
   : X6=VAL(X6$(G))
   : P=SGN(VAL(X5$(G))-1)
   : Q=SGN(VAL(X7$(G))-1)
   : X0=SGN(VAL(STR(X7$,H)))
   : N=N+1
   : X$(N)=HEX(A0)
   : STR(X$(N),2)=STR(X8$,H)
   : B$(N)=X$(N)
   : IF X6>2THEN 1790
   : X=4+5*P+3*Q+6*X0
   : IF P0*X6<>1THEN 1820
1760 C=C+4+3*Q+(10+3*Q)*VAL(STR(X9$,H))
   : GOTO 1850
1790 X=7
   : A=A+X0*(3+5*P+3*Q)
1820 BIN(B$(N))=0
1850 A=A+X
   : N9=N9+X
   : NEXT H
   : IF P0=1THEN 2000
   : N=N+1
   : X$(N)=HEX(A004)
   : A=A+3
   : GOTO 2540
2000 IF M7=0THEN 2090
   : N=N+1
   : X$(N)=HEX(A0)
   : BIN(STR(X$(N),2))=M7
   : B$(N)=X$(N)
   : N9=N9+4
   : A=A+4
   : C=C+4
2090 A=A+M6
   : C=C+M6
   : G=0
2130 G=G+1
   : IF G>LTHEN 2540
   : X3=VAL(X3$(G))
   : X6=VAL(X6$(G))
   : IF X6>250THEN 2130
   : IF X6=1THEN 2130
   : IF X3=1THEN 2130
   : X5=VAL(X5$(G))
   : P=SGN(X5-1)
   : Q=SGN(VAL(X7$(G))-1)
   : X=4+2*P+3*Q+(11*X5-9)*P*Q
   : A=A+X
   : C=C+X
   : H=1+P*Q*(X5-1)
2300 IF N+H>32THEN 2460
   : N9=N9+X
   : IF N9>210THEN 2460
   : FOR Z=1TO H
   : N=N+1
   : X$(N)=STR(X0$,X3+1)
   : STR(X$(N),2)=X4$(G)
   : IF P5>1THEN 2410
   : B$(N)=X$(N)
2410 NEXT Z
   : GOTO 2130
2460 E=32
   : IF N=0THEN 5670
   : GOSUB 3320
   : N9=0
   : C(11)=C(11)+1
   : BIN(X0$(P5))=131+P5
   : GOTO 2300
2540 GOSUB 3320
   : C(11)=C(11)+1+SGN(N4)*P0
   : FOR G=1TO L
   : X3=VAL(X3$(G))
   : X6=VAL(X6$(G))
   : X4=VAL(X4$(G))
   : X5=VAL(X5$(G))
   : H=VAL(X7$(G))
   : IF X3>1THEN 2910
   : IF X6<250THEN 3120
   : Z=0
   : IF X6+2*P0=255THEN 3120
   : Z=1
   : GOSUB 3220
   : IF M7*P0=0THEN 3120
   : N=N+1
   : X$(N)=HEX(A0)
   : BIN(STR(X$(N),2))=M7
   : GOTO 3120
2910 IF Z=0THEN 3590
   : IF P0+X6>0THEN 2980
   : IF N=0THEN 3590
   : X7=X7+X4*X5*H
   : GOTO 3590
2980 IF X7>255THEN 3000
   : IF N+SGN(X7)<32THEN 3010
3000 GOSUB 3220
3010 N=N+1
   : IF X7=0THEN 3090
   : INIT(00)X$(N)
   : BIN(STR(X$(N),2))=X7
   : X7=0
   : N=N+1
3090 X$(N)=STR(X0$,X3+1)
   : BIN(STR(X$(N),2))=X4
3120 IF X6=3THEN 3560
   : Q=SGN(H-1)
   : P=SGN(X5-1)
   : X=16+5*P+5*Q+4*SGN(P+Q)+X4*X5*H
   : A=A+X
   : C=C+X*P0
   : GOTO 3590
3220 GOSUB 3320
   : BIN(X0$(P5))=G
   : IF X5*H>1THEN 3280
   : X1$(P5)=HEX(80)
3280 C(12)=C(12)+1
   : X7=0
   : RETURN
3320 IF N=0THEN 3470
   : N=N*2
   : IF N+O<256THEN 3380
   : GOSUB 3490
   : O=3
3380 BIN(J$(1))=N
   : OR (J$(1),80)
   : MAT COPY J$()TO D$()<O,1>
   : MAT COPY X$()TO D$()<O+1,N>
   : O=O+N+1
   : BIN(Y$)=N
   : ADD(X1$(P5),Y$)
   : P5=P5+1
   : N=0
3470 RETURN
3490 ADD(STR(D$(1),2,1),01)
   : J$(1)=HEX(FD)
   : MAT COPY J$()TO D$()<O,1>
   : DATA SAVE BA T$#F(3),(X2,X2)D$()
   : RETURN
3560 A=A+50+16*B
   : C=C+P0*(8+12*SGN(B-1)+8*B)
3590 NEXT G
   : GOSUB 3320
   : IF N3=1THEN 3710
   : BIN(X0$(P5))=131
   : INIT(A0)X$()
   : FOR G=1TO N3
   : N=N+1
   : BIN(STR(X$(N),2))=O(G)
   : NEXT G
   : GOSUB 3320
3710 P3=P5-1
   : IF P0=0THEN 3830
   : MAT COPY B$()TO X$()
   : N=VAL(X1$(1))*.5
   : X0$(P5)=X0$(1)
   : GOSUB 3320
   : GOTO 3990
3830 IF F$<>"A"THEN 3990
   : IF P8$<>"K"THEN 3990
   : BIN(X0$(P5))=61
   : FOR G=2TO L
   : IF G<>34THEN 3930
   : GOSUB 3320
   : BIN(X0$(P5))=94
3930 N=N+1
   : X$(N)=STR(X0$,VAL(X3$(G))+1)
   : STR(X$(N),2)=X4$(G)
   : NEXT G
   : GOSUB 3320
3990 P5=P5-1
   : STR(D$(1),1,1)=HEX(81)
   : GOSUB 3490
   : IF F<>1THEN 4070
   : A=A+24
4070 M7$,O$=HEX(A002)
   : X=SGN(M7)*(16+15*M7)
   : IF F<>2THEN 4170
   : A=A+23
   : IF F$<>"P"THEN 4170
   : X=X+22
4170 C(13)=SGN(X)
   : A=A+X
   : BIN(STR(M7$,2))=M7+1
   : FOR G=1TO N3
   : H=G*2+1
   : STR(O$,H)=HEX(A0)
   : BIN(STR(O$,H+1))=O(G)
   : NEXT G
   : FOR G=1TO P3
   : P=0
   : Q=VAL(X1$(G))
   : IF Q<128THEN 4360
   : Q=Q-128
   : P=7
4360 X=15+P+Q
   : A=A+X
   : C=C+X*P0
   : NEXT G
   : C=C+4*P0
   : X=30*(C(11)+C(12))
   : A=A+X
   : C=C+P0*X
   : IF F$>"P"THEN 4480
   : X=28
   : IF F$="P"THEN 4476
   : X=27*(K+1)
   : IF F$="A"THEN 4476
   : X=16*(K+1)
4476 C=C+(X+26)*P0*SGN(B-1)
4480 A=A+162+118*N3+26*SGN(N3-1)+N5+12*M7+23*C(2)+3*C(4)+2*C(9)+17*C(5)+39*SGN
     (C(2))+(1-P0)*(25+28*SGN(INT(N0/257)))+54*P0*SGN(M7)
   : C=C+151+2*N5+113*N3+(N5+7*N3+27)*SGN(N3-1)+(1-P0)*(328+15*N3+(11+2*N3)*SG
     N(N3-1))+44*P0+P0*SGN(M7)*(86+47*M7)
   : IF F$<>"T"THEN 4590
   : A=A+8
4530 C=C+32*P0
4590 M1=INT(M*1024)-698
   : IF M0<3THEN 4640
   : M1=M1-2521
4640 M2=M1
   : M1=M1-A-M4-SGN(J)*764-2750
   : IF P8$="K"THEN 4790
   : M2=M2-C-3520
   : GOTO 4820
4790 M2=M2-(73+113*N3)-3200
4820 P6=7
4830 P6=P6-1
   : E=33
   : IF P6<4THEN 5670
   : P2=INT((M2-P6*10)/((2+P6)*N5))
   : IF P2<200THEN 4920
   : P2=200
4920 C=1
   : IF M0=3THEN 4960
   : C=5
4960 H=INT((P2*N5+1)/248)+1
   : G=INT((248*H-250)/N5)
   : IF P2/(P2-G)<C+HTHEN 5050
   : P2=G
   : H=H-1
5050 IF P2<5THEN 4830
   : IF H<2THEN 4830
   : IF (P2*N5)/(248*H)<.75THEN 4830
   : P6=INT((M2-2*P2*N5)/(10+P2*N5))
   : P4=1
   : X=M1+91+45*N3
   : P9=INT(((X-2*P2*N5)/(N5+2))/P2)*P2
   : IF P9<252THEN 5240
   : P9=P2
   : P4=INT((M1-P2*(3*N5+2))/(P2*N5+3))
5240 IF M0=3THEN 5320
   : X=INT(4095/P2)
   : IF P4<XTHEN 5280
   : P4=X
5280 IF P6<XTHEN 5320
   : P6=X
5320 Z=I(3)/M8
   : E=7
   : IF D>ZTHEN 7020
   : Z=Z-D+1
   : IF Z>M3THEN 5380
   : M3=Z
5380 E=8
   : IF M3<>INT(M3)THEN 7020
   : IF P8>0THEN 5430
   : P8=M3*B
5430 IF P7>0THEN 5520
   : IF P8$="T"THEN 5480
   : P7=I(2)
   : GOTO 5520
5480 P7=INT(P8/50)+3
5520 Y=INT((P8-1)/(P9*P4))+1
   : Z=INT((Y-1)/36)+1
   : N9=INT((P8-1)/P2+2)*H
   : N=25+Z
   : IF C$<>"W"THEN 5620
   : IF P7<NTHEN 5620
   : N=P7
5620 IF N+N9<J(3)THEN 5720
   : E=16
5670 IF P8$<>" "THEN 7020
   : P8$="K"
   : GOTO 520
5720 IF P8$>" "THEN 5750
   : P8$="R"
5750 GOSUB '43(J(1))
   : M0$=X1$
   : GOSUB '43(X2)
   : N7$=X1$
   : GOSUB '43(J(1)+25)
   : M1$=X1$
   : GOSUB '43(J(1)+N)
   : M2$=X1$
   : GOSUB '43(J(2))
   : M5$=X1$
   : GOSUB '43(65536-P2)
   : P1$=HEX(FF)
   : STR(P1$,2)=X1$
   : GOSUB '43(H)
   : M3$=X1$
   : X=I(4)+(D-1)*M8
   : GOSUB '43(X)
   : P2$=X1$
   : GOSUB '43(P2)
   : N9$=STR(X1$,2)
   : IF C$="W"THEN 6160
   : IF V$(F(4)+1)=HEX(06)THEN 7035
5990 X3=0
   : IF D$="D"THEN 6090
   : IF C$="Y"THEN 6060
   : DATA SAVE DC OPEN T$#F(4),P7,N$(4)
   : DATA SAVE DC CLOSE#F(4)
6060 LIMITS T#F(4),N$(4),X2,X3,X
   : IF P7>X3-X2+1THEN 6130
6090 X3=X3-2
   : IF P8$="T"THEN 7005
   : X3=X3-M8+1
   : GOTO 7005
6130 E=19
   : GOTO 7020
6160 E=20
   : IF D$="D"THEN 7020
   : N$(4)=N$(3)
   : F$(4)=F$(3)
   : F(4)=F(3)
   : P4$=P$(3)
   : X2=J(1)
   : X3=J(1)+N-3
7005 LOAD DC T#F(5),"SORT403A"
7018 DEFFN'31
   : E=28
7020 LOAD DC T#F(5),"SORT490A"
7035 LOAD DC T#F(5),"SORT402B"
7055 DEFFN'43(X)
   : Y=INT(X/256)
   : BIN(X1$)=Y
   : BIN(STR(X1$,2))=X-256*Y
   : RETURN