image of READY prompt

Wang2200.org

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

# Sector 47, program filename = 'SORT4'
0010 REM SORT4,08/09/77,COPYRIGHT WANG LABS.1976
0180 COM S8,S9,M$8,V$(7)1,P4$16,O9$(4)1,F$(6)3,V0,V0$2,S2
   : COM N$(4)8,M1$2,M2$2,P4,M0$2,P7,N7$2,D$1,C$1,P$3
   : COM M5,M6,P5,E,M3$2,M5$2,N9$1,P5$2,P6$3,M7$2
   : COM N9,P1$3,P8$1,A,Y,O$12,X1$2,L,O(5),P6
   : COM P2,X2$2,P0,F,H,X3,X2,P9
   : COM Z,F(6),N,B,I
0189 COM G$8,M6$2,T0,V7,T2$(8)2,T4,T$8,J$(1)2,M3
   : COM E$30,M4$2,T5,V4$4,V1,P2$2
   : COM J,K,M4,P3,P$(4)16,M0,M8,N6,F$1,P8,B$1,I(4),J(3),Z$8,Y$1
   : COM X5$10,X6$10,X7$10,X8$10,X9$10,M7,N1,D,M,D$(4)64
   : COM A$30,X3$(1)2,Q$1,I$8,K(10),B(10),N(10),A$(4)62,L$8,M0$(1)21
   : GOTO 3100
3100 MAT SORTM0$()TO X3$(),J$()
   : M0=3-VAL(J$(1))
3150 M=16-8*VAL(J$(1))
3160 M=S+(1-SGN(S))*M-.2*SGN(S)
   : E=33
   : IF M<7THEN 7020
   : J=0
   : P7,P8,M7,N6,S9=0
   : B,D=1
   : L$="ALL"
   : M3=9E9
   : FOR X=1TO 10
   : K(X),N(X),B(X)=0
   : NEXT X
   : INIT(20)A$(),F$(),V$(),P$(),G$,M$,P8$,D$,O9$(),B$,I$
   : INIT(FF)E$
   : C$="Y"
   : INIT(00)X9$,A$
3280 M0$(1)="310320330350B10B20B30"
   : SELECT DISK 310,#1320,#2330,#3350,#4B10,#5B20,#6B30
3730 PRINT HEX(030A0A0A0A)
   : PRINT "SORT-4 START"
   : PRINT HEX(0A)
   : GOSUB '35(3)
   : IF C$="W"THEN 3830
   : GOSUB '35(4)
3830 GOSUB '35(5)
   : Z$=G$
   : OR (Z$,I$)
   : OR (Z$,M$)
   : IF Z$=" "THEN 3955
   : GOSUB '35(6)
   : IF I$=" "THEN 3955
   : LIMITS T#F(6),I$,X,Y,Z
   : DATA LOAD DA T#F(6),(X,X)A$()
   : D$(1)=HEX(50015001A008A003A003A008A0085002)
   : $UNPACK(F=D$(1))A$()TO F,J,Z$,P$,P6$,T$,X5$,B
   : IF N$(1)<>" "THEN 3910
   : N$(1)=Z$
3910 IF F$(1)<>" "THEN 3920
   : F$(1)=P$
3920 IF P$(1)<>" "THEN 3930
   : P$(1)=T$
3930 IF F$(2)<>" "THEN 3955
   : F$(2)=P6$
3955 GOSUB '35(1)
   : IF J=0THEN 3980
   : GOSUB '35(2)
3980 IF F=4THEN 3995
   : Y$=HEX(06)
   : MAT SEARCHV$(),=Y$TO J$()
   : IF J$(1)=HEX(0000)THEN 4015
3995 O9$(2)="X"
4000 LOAD DC T#F(5),"SORT400C"4000,4000
4015 Z$=N$(1)
   : IF F<>1THEN 4030
   : Z$="SCRATCH"
4030 IF V$(F(1)+1)<>HEX(06)THEN 4065
   : GOSUB '217(Z$,F(1),S2,0,2,P$(1),F$(1),0)
   : E=39
   : IF Q$="A"THEN 7020
   : E=3
   : IF Q$<>" "THEN 7020
   : O9$(1)="O"
4065 PRINT "INPUT FILE  ";N$(1);TAB(26);"DEVICE  ";F$(1);TAB(45);"FORMAT  ";F
   : LIMITS T#F(1),Z$,I(1),X,I(3)
   : I(2)=X-I(1)+1
   : GOSUB '43(I(1))
   : M4$=X1$
   : I(4)=I(1)
   : I(3)=I(3)-2
   : E=1
   : IF I(3)<1THEN 7020
   : PRINT "RECORDS PER BLOCK  ";B
   : E=4
   : IF B<1THEN 7020
   : IF B>255THEN 7020
   : IF B<>INT(B)THEN 7020
   : ON F+1GOTO 4910,4205,4205,4270,4270,4270
4135 E=2
   : GOTO 7020
4205 I(3)=I(3)-2
   : E=1
   : IF I(3)<1THEN 7020
   : DATA LOAD BA T#F(1),(I(4),I(4))D$()
   : IF STR(D$(1),4,3)<>"HDR"THEN 4230
   : IF STR(D$(1),8,8)=N$(1)THEN 4910
4230 E=12
   : GOTO 7020
4270 LOAD DC T#F(5),"SORT400B"2020,3099
4910 PRINT "STARTING BLOCK # TO BE SORTED  ";D
   : E=5
   : IF D<1THEN 7020
   : IF D<>INT(D)THEN 7020
   : PRINT "NUMBER OF BLOCKS TO BE SORTED  ";L$
   : IF L$="ALL"THEN 5710
   : E=6
   : IF NUM(L$)=0THEN 7020
   : CONVERT STR(L$,1,NUM(L$))TO M3
   : IF M3<1THEN 7020
   : IF M3<>INT(M3)THEN 7020
5710 PRINT "WORK FILE  ";N$(3);TAB(26);"DEVICE  ";F$(3)
   : IF V$(F(3)+1)<>HEX(06)THEN 5740
   : GOSUB '217(N$(3),F(3),S2,0,4,P$(3),F$(3),0)
   : E=40
   : IF Q$="A"THEN 7020
   : E=15
   : IF Q$<>" "THEN 7020
   : O9$(3)="O"
5740 LIMITS T#F(3),N$(3),J(1),J(2),X
   : J(3)=J(2)-J(1)+1
   : E=16
   : IF J(3)<25THEN 7020
   : E=21
   : FOR X=1TO 10
   : Y=K(X)
   : IF Y<>INT(Y)THEN 7020
   : IF Y>0THEN 5805
   : IF X<=KTHEN 7020
   : IF Y<0THEN 7020
5805 IF Y>255THEN 7020
   : BIN(STR(X6$,X))=Y
   : Y=B(X)
   : IF Y<>INT(Y)THEN 7020
   : IF Y<0THEN 7020
   : IF Y>128THEN 7020
   : BIN(STR(X7$,X))=Y
   : Y=N(X)
   : IF Y<>INT(Y)THEN 7020
   : IF Y<0THEN 7020
   : IF Y>128THEN 7020
   : IF Y+B(X)>129THEN 7020
   : BIN(STR(X8$,X))=Y
   : NEXT X
   : X=POS(X9$>01)
   : IF X>0THEN 7020
   : DATA SAVE DA T#F(3),(J(1),X)A$(),I$
   : COM CLEAR A$
   : LOAD DC T#F(5),"SORT401A"
7018 DEFFN'31
   : E=28
7020 LOAD DC T#F(5),"SORT490A"
7040 DEFFN'35(Z)
   : E=10
   : Z$=F$(Z)
   : IF Z$=" "THEN 7020
   : Y=VAL(STR(Z$,2))
   : BIN(STR(Z$,2))=Y-8*SGN(INT(Y/56))-7*SGN(INT(Y/65))
   : BIN(Y$)=5+SGN(INT(Y/56))
   : MAT SEARCHM0$(),=STR(Z$,1,3)TO J$()STEP 3
   : Y=VAL(STR(J$(1),2))
   : IF Y=0THEN 7020
   : X,F(Z)=(Y-1)/3
   : IF V$(X+1)=" "THEN 7140
   : IF V$(X+1)=Y$THEN 7140
   : E=9
   : GOTO 7020
7140 V$(X+1)=Y$
   : IF Y$=HEX(05)THEN 7180
   : IF S2>0THEN 7180
   : E=29
   : GOTO 7020
7180 F$(Z)=Z$
   : RETURN
7250 DEFFN'43(X)
   : Y=INT(X/256)
   : BIN(X1$)=Y
   : BIN(STR(X1$,2))=X-256*Y
   : RETURN