image of READY prompt

Wang2200.org

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

# Sector 292, program filename = 'SORT403A'
0010 REM SORT403A, RELEASE 4-0,(10/16/78)-COPYRIGHT WANG LABS, INC.
0300 COM A$18,P1,K$1,Z$(1)4,X$(1)64,X$64,G,O
0420 PRINT "OUTPUT FILE  ";N$(4);TAB(26);"DEVICE  ";F$(4);TAB(45);"CATALOGUED
      ";C$
   : X$="FULL-RECORD"
   : ON P0GOTO 480
   : X$="KEY"
   : IF P8$="K"THEN 480
   : X$="TAG"
0480 PRINT X$;" SORT"
   : A$=HEX(B240EA3FE225E65ED326DE21DC3BC557)
   : P1=2
   : X2$=N7$
   : GOSUB 8960
   : K$="Q"
   : Y=2
   : GOSUB '82(500)
   : X$="P4$(00)2,P3$(00)1,P0$(00)2,P1$(00)3,P9$(00)2,"
   : CONVERT P6TO X1$,(##)
   : STR(X$,5,2),STR(X$,23,2),STR(X$,32,2)=X1$
   : CONVERT P6+1TO STR(X$,14,2),(##)
   : CONVERT P6+3TO STR(X$,41,2),(##)
   : GOSUB 7570
0650 X$="O$(000)62,"
   : C=INT((P2*N5+1)/62)+1
   : CONVERT CTO STR(X$,4,3),(###)
   : GOSUB 7570
   : CONVERT P2TO P6$,(###)
   : FOR P=N3TO 1STEP -1
   : X$="O0$(000)00,M0$(00,000)00,"
   : CONVERT PTO Y$,(#)
   : STR(X$,2,1),STR(X$,13,1)=Y$
   : STR(X$,5,3),STR(X$,19,3)=P6$
   : STR(X$,16,2)=X1$
   : CONVERT O(P)TO P5$,(##)
   : STR(X$,9,2),STR(X$,23,2)=P5$
   : GOSUB 7570
   : NEXT P
0800 IF P8$<>"K"THEN 830
   : LOAD DC T#F(5),"SORT405A"10,6999
0830 IF P0*M7=0THEN 870
   : X$="M9$0,"
   : CONVERT M7+1TO STR(X$,4,1),(#)
   : GOSUB 7570
0870 IF P0=1THEN 980
   : X$="N1$4,N0$00,A0$(50)4,"
   : CONVERT 2*N3TO STR(X$,9,2),(##)
   : IF N3>1THEN 940
   : STR(X$,6)=STR(X$,12)
0940 GOSUB 7570
   : GOTO 1130
0980 FOR N9=1TO P3
   : X=1
   : GOSUB '86(0)
   : GOSUB 7570
   : NEXT N9
   : FOR P=1TO L
   : X=1
   : GOSUB '81(0,P)
   : IF X<7THEN 1100
   : GOSUB 7570
1100 NEXT P
1130 IF N3=1THEN 1210
   : C=INT((N5-1)/64)+1
   : D=INT((N5-1)/C)+1
   : X$="N0$(0)00,"
   : CONVERT CTO STR(X$,5,1),(#)
   : CONVERT DTO STR(X$,7,2),(##)
   : GOSUB 7570
1210 X$="L$00,K$00,"
   : CONVERT O(1)TO X1$,(##)
   : STR(X$,3,2),STR(X$,8,2)=X1$
   : GOSUB 7570
   : Y=1
   : GOSUB '82(620)
   : IF N3=1THEN 1430
   : X$=HEX(EAE2)
   : STR(X$,3)="(F=N0$)N0$()FROMK$,"
   : Y=0
   : GOSUB 7570
   : FOR P=2TO N3
   : X$="O0$(O),"
   : CONVERT PTO STR(X$,2,1),(#)
   : GOSUB 7570
   : NEXT P
   : GOSUB 8760
   : Y=1
1430 IF P0=1THEN 1520
   : X$="?^(F=N1$)N0$()@A0$(Q):"
   : GOSUB '91(10)
   : GOSUB 7560
   : GOTO 2770
1520 Y=0
   : P=0
   : N=N1
1525 P=P+1
   : IF P>LTHEN 1990
   : IF X3$(P)=HEX(01)THEN 1525
   : X$=HEX(EAE628463D4E3124294E30242829B2)
   : GOSUB '91(10)
   : GOSUB 7570
   : FOR C=1TO K
   : P=VAL(STR(X6$,C))
   : IF X6$(P)<>HEX(01)THEN 1640
   : X=1
   : GOSUB '81(VAL(STR(X5$,C)),P)
   : GOSUB 7570
1640 NEXT C
   : C=C*2
   : N9=1
   : M5=VAL(X1$(1))
   : IF M7=0THEN 1770
   : X$="M9$,"
   : GOSUB 7570
   : C=C+2
   : N=N+M7
1770 FOR P=1TO L
   : X1=VAL(X3$(P))
   : X6=VAL(X6$(P))
   : IF X6>250THEN 1960
   : IF X1=1THEN 1960
   : IF X6=1THEN 1960
   : IF C<M5THEN 1950
   : GOSUB 8760
   : X$="?^(F=NX$)N0$()<000>@"
   : N9=N9+1
   : CONVERT N9TO STR(X$,7,1),(#)
   : CONVERT N+1TO STR(X$,16,3),(###)
   : C=0
   : M5=VAL(X1$(N9))
   : GOSUB '91(10)
   : GOSUB 7560
1950 GOSUB '87(0)
1960 NEXT P
   : GOSUB 8760
1990 IF N4=0THEN 2080
   : C=250
   : FOR P=1TO L
   : IF X3$(P)<>HEX(01)THEN 2040
   : GOSUB '87(1)
2040 NEXT P
   : GOSUB 8760
2080 Y=1
   : FOR C=1TO K
   : P=VAL(STR(X6$,C))
   : IF X6$(P)<>HEX(01)THEN 2180
   : IF STR(X9$,C,1)<>HEX(01)THEN 2180
   : X$=HEX(8C28)
   : X=3
   : GOSUB '81(1,P)
   : STR(X$,X+1)="FF):"
   : GOSUB 7570
2180 NEXT C
   : M6=N
   : IF F$<>"A"THEN 2320
   : GOSUB '82(720)
   : X$=HEX(9AFF09003A)
   : GOSUB 7570
   : GOSUB '82(940)
2320 Y=0
2330 N9=N9+1
   : IF N9>P3THEN 2740
   : Z=VAL(X0$(N9))
   : IF Z>LTHEN 2740
   : P=Z
   : N=0
   : GOSUB 6080
   : IF M7<1THEN 2480
   : X$="M9$,"
   : GOSUB 7570
   : C=C+2
   : N=N+M7
2480 P=P+1
   : IF P>LTHEN 2710
   : IF C<M5THEN 2610
   : IF X3$(P)<HEX(02)THEN 2710
   : GOSUB 8760
   : N9=N9+1
   : IF N9>P3THEN 2680
   : IF VAL(X0$(N9))<>PTHEN 2680
   : GOSUB 6080
2610 X=1
   : GOSUB '81(9E9,P)
   : GOSUB 7570
   : C=C+2
   : N=N+VAL(X4$(P))*VAL(X5$(P))*VAL(X7$(P))
   : GOTO 2480
2680 E=34
   : GOTO 7020
2710 GOSUB 8760
   : GOTO 2330
2740 Y=1
2770 LOAD DC T#F(5),"SORT404A"10,6999
5170 DEFFN'86(Q)
   : GOSUB '80(VAL(X0$(N9)))
   : STR(X$,X)=X1$
   : STR(X$,X+2)="$"
   : X=X+3
   : M5=VAL(X1$(N9))
   : IF M5<128THEN 5320
   : M5=M5-128
   : STR(X$,X)="(1)"
   : IF Q<9E9THEN 5300
   : STR(X$,X)="()"
   : X=X-1
5300 X=X+3
5320 IF Q>0THEN 5350
   : CONVERT M5TO STR(X$,X,2),(##)
   : X=X+2
5350 STR(X$,X)=","
   : RETURN
5480 DEFFN'87(M9)
   : Q,X5=VAL(X5$(P))
   : IF X5=1THEN 5740
   : Q=9E9
   : IF X7$(P)=HEX(01)THEN 5740
   : FOR Q=1TO X5
5580 X=1
   : GOSUB '81(Q,P)
   : IF M9=0THEN 5670
   : C=C+X
   : IF C<211THEN 5690
   : GOSUB 5900
   : GOTO 5580
5670 C=C+2
5690 N=N+VAL(X4$(P))+M9
   : GOSUB 7570
   : NEXT Q
   : RETURN
5740 X=1
   : GOSUB '81(Q,P)
   : IF M9=0THEN 5830
   : C=C+X
   : IF C<211THEN 5850
   : GOSUB 5900
   : GOTO 5740
5830 C=C+2
5850 N=N+(VAL(X4$(P))+M9)*X5
   : GOSUB 7570
   : RETURN
5900 X$="?^N0$()<000>@"
   : CONVERT N+1TO STR(X$,9,3),(###)
   : GOSUB '91(3)
   : GOSUB 7560
   : N=N+3
   : C=0
   : RETURN
6080 X$="?%(F="
   : X=6
   : GOSUB '86(1)
   : STR(X$,X)=")"
   : X=X+1
   : IF M7>0THEN 6390
   : GOSUB '80(Z)
   : STR(X$,X)=X1$
   : STR(X$,X+2)="$"
   : X=X+3
   : IF F$=" "THEN 6430
   : IF X5$(Z)=HEX(01)THEN 6300
   : STR(X$,X)="()"
   : X=X+2
   : IF F$="A"THEN 6480
6300 STR(X$,X)="<Q+00000>"
   : IF N=0THEN 6350
   : CONVERT NTO STR(X$,X+3,5),(#####)
   : X=X+9
   : GOTO 6530
6350 STR(X$,X)="<Q>"
   : X=X+3
   : GOTO 6530
6390 STR(X$,X)="O$()"
   : X=X+4
   : GOTO 6480
6430 IF B=1THEN 6480
   : STR(X$,X)="(Q)"
   : X=X+3
6480 IF N=0THEN 6530
   : STR(X$,X)="<00000>"
   : CONVERT N+1TO STR(X$,X+1,5),(#####)
   : X=X+7
6530 C=0
   : STR(X$,X)="FROM"
   : GOSUB 7560
   : RETURN
6720 DEFFN'91(A)
   : IF N3>1THEN 6760
   : STR(X$,A,2)="K$"
   : STR(X$,A+2)=STR(X$,A+5)
6760 RETURN
7017 DEFFN'31
   : E=28
7020 LOAD DC T#F(5),"SORT490A"
7560 $TRAN(X$,A$)R
7570 X=LEN(X$)
   : IF X+G<254THEN 7820
   : MAT COPY D$()<O,3>TO X$()
   : D=O
   : IF H=OTHEN 7700
   : Z$(1)=HEX(0D0000)
   : MAT COPY Z$()TO D$()<O-1,3>
   : D=O+2
7700 GOSUB 8820
   : D=2
   : IF H=OTHEN 7760
   : GOSUB '85(M+1,2)
7760 MAT COPY X$()TO D$()<O,3>
   : MAT COPY D$()<O,G-O>TO D$()<D,G-O>
   : G=G-O+D
   : H,O=2
7820 X$(1)=X$
   : MAT COPY X$()TO D$()<G,X>
   : G=G+X
   : IF Y=0THEN 7870
   : O=G
7870 RETURN
7910 DEFFN'80(A)
   : D=INT((A-1)/10)
   : BIN(X1$)=65+D
   : BIN(STR(X1$,2))=47+A-D*10
   : RETURN
8080 DEFFN'81(Q,A)
   : X1=VAL(X3$(P))
   : GOSUB '80(A)
   : STR(X$,X)=X1$
   : X=X+2
   : IF STR(X0$,X1+1,1)<HEX(A0)THEN 8180
   : STR(X$,X)="$"
   : X=X+1
8180 Y$="("
   : D=VAL(X5$(P))
   : IF D=1THEN 8320
   : STR(X$,X)="("
   : X=X+1
   : Y$=","
   : IF Q=9E9THEN 8465
   : IF Q=0THEN 8280
   : D=Q
8280 CONVERT DTO STR(X$,X,3),(###)
   : X=X+3
8320 IF X6$(P)=HEX(03)THEN 8350
   : IF X7$(P)=HEX(01)THEN 8465
8350 STR(X$,X)=Y$
   : X=X+1
   : Y$=","
   : IF Q=9E9THEN 8465
   : IF Q=0THEN 8440
   : STR(X$,X)=K$
   : X=X+1
   : GOTO 8465
8440 CONVERT BTO STR(X$,X,3),(###)
   : X=X+3
8465 IF Y$="("THEN 8477
   : STR(X$,X)=")"
   : X=X+1
8477 IF Q>0THEN 8500
   : IF STR(X0$,X1+1,1)<HEX(A0)THEN 8500
   : CONVERT VAL(X4$(P))TO STR(X$,X,3),(###)
   : X=X+3
8500 STR(X$,X)=","
   : RETURN
8540 DEFFN'82(M)
   : IF O=GTHEN 8580
   : GOSUB 8760
8580 IF H=GTHEN 8630
   : Z$(1)=HEX(0D0000)
   : MAT COPY Z$()TO D$()<O-1,3>
   : H,G,O=G+2
8630 IF M=0THEN 8720
   : IF G<240THEN 8700
   : D=G
   : GOSUB 8820
   : H,G,O=2
8700 GOSUB '85(M,G)
   : G=D
8720 RETURN
8760 Z$(1)=HEX(3A)
   : MAT COPY Z$()TO D$()<G-1,1>
   : O=G
   : RETURN
8820 Z$(1)=HEX(FD)
8830 MAT COPY Z$()TO D$()<D,1>
   : DATA SAVE BA T$#F(3),(X2$,X2$)D$()
   : RETURN
8880 DEFFN'85(M,D)
   : Z$(1)=HEX(FF000093)
   : PACK(####)STR(Z$(1),2,2)FROMM
   : MAT COPY Z$()TO D$()<D,4>
   : D=D+3+SGN(INT(Y/2))
   : RETURN
8960 D$(1)=HEX(40)
   : D=10
   : GOSUB 8820
   : D$(1)=HEX(00)
   : H,O,G=2
   : RETURN
9040 GOSUB '82(0)
   : STR(D$(1),1,1)=HEX(20)
   : Z$(1)=HEX(FE)
   : D=G
   : GOSUB 8830
   : RETURN