image of READY prompt

Wang2200.org

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

# Sector 119, program filename = 'SORT401A'
0010 REM SORT401A,RELEASE 4-1,11/08/78,COPYRIGHT WANG LABS.
0200 COM N0,N2,N3,N4,N5,N7,C(15)
   : COM X7$(60)1,X4$(60)1,X5$(60)1,X6$(60)1,X3$(60)1
   : DIM X$64,X0$(60)1,X1$(60)1,X2$(60)2,Y1$1,A$(4)62,I$8
   : DIM M0$(1)19,X0$10
   : DATA LOAD DA T#F(3),(J(1),X)A$(),I$
   : INIT(20)X0$()
   : INIT(00)X6$(),X2$()
   : INIT(01)X7$()
   : PRINT "NUMBER OF KEY FIELDS  ";K
0560 E=26
   : IF K<>INT(K)THEN 7020
   : IF K<1THEN 7020
   : IF K>10THEN 7020
   : FOR X=1TO 15
   : C(X)=0
   : NEXT X
   : IF I$=" "THEN 850
   : X$=HEX(A001A00150025001500350035003500250025002A001A001A001)
   : $UNPACK(F=X$)A$()<49>TO B$,F$,M8,M7,I,N6,N0,N7,L,X,X3$(),X4$(),X5$()
   : X=0
0730 X=X+1
   : P=INT(VAL(X3$(X))/16)
   : BIN(X3$(X))=P
   : IF X=LTHEN 4320
   : IF P>0THEN 730
   : IF X3$(X+1)<HEX(20)THEN 730
   : X6$(X)=HEX(FF)
   : GOTO 730
0850 IF B$<>"B"THEN 950
   : IF F$=" "THEN 3690
   : N8=1
   : M8=1
   : X0$(1)=HEX(00)
   : X1$(1)=HEX(40)
   : X2$(1)=HEX(0004)
   : GOTO 1370
0950 X=I(4)
   : Y1$=HEX(FD)
   : N8=0
   : M8=0
   : E=13
1010 DATA LOAD BA T#F(1),(X,X)D$()
   : M8=M8+1
   : IF M8<>VAL(STR(D$(1),2))THEN 7020
   : Y=3
1060 MAT COPY D$()<Y,1>TO J$()
   : Y$=J$(1)
   : IF Y$=HEX(FD)THEN 1310
   : IF N8=0THEN 1120
   : IF Y$=Y1$THEN 1210
1120 N8=N8+1
   : IF N8>60THEN 3720
   : Y1$=Y$
   : BIN(X0$(N8))=1
   : IF Y$=HEX(08)THEN 1230
   : BIN(X0$(N8))=0
   : IF Y$<HEX(81)THEN 7020
   : IF Y$>HEX(FC)THEN 7020
1210 AND (Y$,7F)
1230 X1$(N8)=Y$
   : ADDC(X2$(N8),01)
   : Y=Y+1+VAL(Y$)
   : IF Y<257THEN 1060
   : GOTO 7020
1310 Y$=D$(1)
   : IF Y$=HEX(81)THEN 1370
   : IF Y$=HEX(82)THEN 1010
   : GOTO 7020
1370 N7=0
   : Y$=" "
   : MAT SEARCHA$(),<>Y$TO J$()
   : IF F$=" "THEN 1500
   : IF J$(1)=HEX(0000)THEN 3690
   : IF F$="A"THEN 2140
   : IF F$="P"THEN 2140
   : IF F$="T"THEN 2140
   : IF F$="V"THEN 2140
   : E=24
   : GOTO 7020
1500 I=1
   : X=0
1520 X=X+1
   : IF X>N8THEN 1640
   : Y=VAL(X2$(X))*256+VAL(STR(X2$(X),2))
   : Z=Y/B
   : E=4
   : IF Z<>INT(Z)THEN 7020
   : IF Z>255THEN 3720
   : INIT(00)X2$(X)
   : BIN(STR(X2$(X),2))=Z
   : GOTO 1520
1640 IF J$(1)>HEX(0000)THEN 2230
   : L=0
   : H=0
   : FOR P=1TO N8
   : X3=VAL(X0$(P))
   : X4=VAL(X1$(P))
   : X5=VAL(STR(X2$(P),2))
   : N=N7+X5
1760 IF H>NTHEN 2010
   : IF H>N7THEN 1890
   : X=9E9
   : FOR G=1TO K
   : C=VAL(STR(X6$,G))
   : IF C>XTHEN 1850
   : IF C<=HTHEN 1850
   : X=C
1850 NEXT G
   : H=X
   : GOTO 1760
1890 IF X5=1THEN 2010
   : X=H-N7
   : IF X=1THEN 1950
   : GOSUB '49(X-1)
1950 GOSUB '49(1)
   : N7=N7+X
   : X5=X5-X
   : IF X5=0THEN 2030
   : GOTO 1760
2010 GOSUB '49(X5)
   : N7=N
2030 NEXT P
   : GOTO 4320
2060 DEFFN'49(Y)
   : L=L+1
   : BIN(X3$(L))=X3
   : BIN(X4$(L))=X4
   : BIN(X5$(L))=Y
   : RETURN
2140 IF N8>1THEN 3690
   : IF X0$(1)>HEX(00)THEN 3690
   : E=38
   : IF X2$(1)<HEX(0002)THEN 7020
   : IF X2$(1)>HEX(00FF)THEN 3720
2230 G=0
   : L=0
   : GOSUB 3510
   : M0$(1)="#AFIDUPSW0123456789"
   : X0$=HEX(7C087C100E0D0D070707)
   : IF M0=3THEN 2610
   : STR(X0$,1,3)=HEX(400840)
2610 FOR P=1TO 4
   : X$=A$(P)
2640 X=POS(X$=20)
   : Y=POS(STR(X$,X)>20)
   : IF Y=0THEN 2700
   : STR(X$,X)=STR(X$,X+Y-1)
   : GOTO 2640
2700 IF X$=" "THEN 4270
   : L=L+1
   : IF L>60THEN 3720
   : IF G=0THEN 3690
   : MAT SEARCHM0$(),=STR(X$,1,1)TO J$()
   : X3=VAL(STR(J$(1),2))
   : IF X3=0THEN 3660
   : IF X3=1THEN 2840
   : IF X3<10THEN 2880
   : X3=0
   : GOTO 2900
2840 A=1
   : X4=8
   : GOTO 2980
2880 X$=STR(X$,2)
2900 A=NUM(STR(X$,1,LEN(X$)))
   : IF A=0THEN 3660
   : CONVERT STR(X$,1,A)TO X4
   : X4=INT(X4)
   : IF X4<1THEN 3660
   : X=VAL(STR(X0$,X3+1))
   : IF X4>XTHEN 3660
2980 Y$=STR(X$,A+1)
   : X$=STR(X$,A+2)
   : X5=1
   : IF Y$<>"("THEN 3150
   : A=NUM(STR(X$,1,LEN(X$)))
   : IF A=0THEN 3660
   : CONVERT STR(X$,1,A)TO X5
   : IF X5<>INT(X5)THEN 3660
   : IF X5<1THEN 3660
   : IF X5>255THEN 3660
   : IF STR(X$,A+1,1)<>")"THEN 3660
   : Y$=STR(X$,A+2)
   : X$=STR(X$,A+3)
3150 N7=N7+X5
   : X6=1
   : IF Y$=","THEN 3250
   : X6=2
   : IF Y$=" "THEN 3250
   : IF Y$=":"THEN 3250
   : IF Y$<>";"THEN 3660
3250 IF X3>1THEN 3780
   : IF X6=1THEN 3660
   : IF L<>H+1THEN 3660
   : IF X0<>X3THEN 3690
   : IF X1<>X4THEN 3690
   : IF F$>" "THEN 3690
   : C=X2-X5
   : IF C<0THEN 3690
   : IF C=0THEN 3470
   : BIN(X5$(H))=X5
   : BIN(X5$(L))=C
   : X3$(L)=X3$(H)
   : X4$(L)=X4$(H)
   : H=L
   : GOTO 2700
3470 L=L-1
   : GOSUB 3510
   : GOTO 2700
3510 C=0
   : G=G+1
   : IF G<=N8THEN 3560
   : G=0
   : RETURN
3560 H,L=L+1
   : IF L>60THEN 3720
   : X0=VAL(X0$(G))
   : BIN(X3$(H))=X0
   : X1=VAL(X1$(G))
   : BIN(X4$(H))=X1
   : X2=VAL(STR(X2$(G),2))
   : BIN(X5$(H))=X2
   : RETURN
3660 E=23
   : GOTO 7020
3690 E=22
   : GOTO 7020
3720 E=14
   : GOTO 7020
3750 E=25
   : GOTO 7020
3780 IF X0>0THEN 3690
   : X6$(H)=HEX(FF)
   : BIN(X3$(L))=X3
   : BIN(X5$(L))=X5
   : BIN(X4$(L))=X4
   : C=C+X4*X5
   : IF X6=1THEN 2700
   : IF F$>" "THEN 4050
   : IF C<>X1THEN 3690
   : IF X2=1THEN 4020
   : X2=X2-1
   : BIN(X5$(H))=1
   : IF L>59THEN 3720
   : BIN(X5$(L+1))=X2
   : X3$(L+1)=X3$(H)
   : X4$(L+1)=X4$(H)
   : H,L=L+1
   : C=0
   : GOTO 2700
4020 GOSUB 3510
   : GOTO 2700
4050 IF Y$<>" "THEN 3660
   : I=C
   : N0=X1*X2
   : G=0
   : IF F$>"P"THEN 4170
   : IF I*B>N0THEN 3750
   : IF F$="P"THEN 2700
   : I=1
   : GOTO 2700
4170 IF N6<0THEN 3660
   : IF N6<>INT(N6)THEN 3660
   : M7=1+SGN(INT(N0/257))
   : IF I+N6+2*M7>N0THEN 3750
   : B=INT((N0-M7)/(I+M7))
   : GOTO 2700
4270 NEXT P
   : IF G>0THEN 3690
4320 IF N7>255THEN 3720
   : M9=SGN(VAL(F$)-32)
   : BIN(B$)=189+SGN(VAL(B$)-32)
   : IF F$>"A"THEN 4560
   : E=37
   : IF M9*B=1THEN 7020
   : IF B=1THEN 4560
   : FOR P=1TO L
   : C=SGN(INT(VAL(X3$(P))/2))
   : IF C+M9=1THEN 4530
   : BIN(X7$(P))=B
4530 NEXT P
4560 N1=0
   : E=21
   : FOR G=1TO K
   : Y=VAL(STR(X6$,G))
   : C,H=0
4720 H=H+1
   : IF H>LTHEN 7020
   : IF X6$(H)=HEX(FF)THEN 4720
   : X5=VAL(X5$(H))
   : IF C+X5>=YTHEN 4800
   : C=C+X5
   : GOTO 4720
4800 BIN(STR(X5$,G))=Y-C
   : BIN(STR(X6$,G))=H
   : IF G>1THEN 4890
   : PRINTUSING 4870,Y;
   : GOTO 4900
4870 %KEY FIELDS ###
4880 %,###
4890 PRINTUSING 4880,Y;
4900 X3=VAL(X3$(H))
   : X4=VAL(X4$(H))
   : X6=VAL(X6$(H))
   : X7=VAL(STR(X7$,G))
   : X8=VAL(STR(X8$,G))
   : X0=X7+X8
   : ON X3+1GOTO 5000,5450,5000,5310,5340,5370,5370,5280,5250,5120
   : GOTO 7020
5000 IF X0=0THEN 5140
   : IF X7>0THEN 5040
   : X7=1
5040 IF X8>0THEN 5060
   : X8=X4-X7+1
5060 IF X7+X8-1>X4THEN 7020
   : C(7)=C(7)+1
   : IF X5>1THEN 5170
   : X6=2
   : GOTO 5580
5120 IF X0>0THEN 7020
5140 X8=X4
   : IF X5=1THEN 5210
5170 C(8)=C(8)+1
   : X6=2
   : GOTO 5580
5210 IF X6=2THEN 5580
   : X6=1
   : GOTO 5580
5250 C(4)=C(4)+1
   : C(9)=C(9)+X4
5280 X8=X4+1
   : GOTO 5390
5310 X8=8
   : GOTO 5390
5340 X8=INT(1.5+X4/2)
   : GOTO 5390
5370 X8=INT(2+X4/2)
5390 IF X5>1THEN 5500
   : IF X3=8THEN 5520
   : IF F$="A"THEN 5460
   : GOTO 5520
5450 X8=8
5460 X7=0
   : X6=3
   : IF X5=1THEN 5550
5500 C(3)=C(3)+1
5520 X7,C(2)=C(2)+1
   : X6=4
5550 C(1)=C(1)+1
   : IF X0>0THEN 7020
5580 N1=N1+X8
   : IF VAL(STR(X9$,G))=0THEN 5660
   : C(5)=C(5)+1
   : PRINT "D";
   : IF X6<>1THEN 5660
   : C(6)=C(6)+1
5660 BIN(X6$(H))=X6
   : BIN(STR(X7$,G))=X7
   : BIN(STR(X8$,G))=X8
   : NEXT G
   : PRINT " "
   : E=27
   : IF N1>64THEN 7020
   : IF F$<>"A"THEN 5840
   : IF INT(F/2+.5)<>1THEN 5840
   : IF X6$(2)>HEX(00)THEN 5840
   : BIN(X6$(2))=2
5840 FOR G=1TO L
   : IF X6$(G)<HEX(F0)THEN 5880
   : H=G
   : GOTO 5930
5880 IF X3$(G)<HEX(02)THEN 5930
   : IF X6$(G)=HEX(00)THEN 5930
   : X6$(H)=HEX(FE)
5930 NEXT G
   : LOAD DC T#F(5),"SORT402A"
7018 DEFFN'31
   : E=28
7020 LOAD DC T#F(5),"SORT490A"