Listing of file='BSORT3' on disk='vmedia/mvp-diag-3.5.wvd.zip'
# Sector 978, program filename = 'BSORT3' 0020 PRINT AT(3,00);"MATMOVE........ <-- TESTING", 0030 S=SPACE 0090 DIM A$(3)5,B$(6)3,X$(256)1,Y$(256)1,L3$(3)2,L6$(6)2,N1$(1)8,N$8,M$(1)10,Q $(2,3)4,R$(4,2)3 0095 DIM X(4),Y(6),X1(1),Y1(1),A(2,4),B(4,2) 0110 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$() : IF B$()<>"ABCFGHKLM........."THEN 8990 0120 B$()="ABCDEFGHIJKLMNO" : A$()=ALL(".") : MAT MOVE B$()TO A$() : IF A$()<>"ABC DEF GHI"THEN 8990 0130 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$(3) : IF B$()<>"......ABCFGHKLM..."THEN 8990 0140 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$(3) : IF B$()<>"......ABCFGHKLM..."THEN 8990 0150 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$(3)(2) : IF B$()<>".......AB.FG.KL..."THEN 8990 0160 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$(3)(2,1) : IF B$()<>".......A..F..K...."THEN 8990 0170 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()TO B$()(2,2) : IF B$()<>".AB.FG.KL........."THEN 8990 0180 FOR I=1TO 256 : X$(I)=BIN(I-1) : NEXT I 0190 FOR I=0TO 256STEP 16 : N=I : Y$()=" " : MAT MOVE X$(),NTO Y$() : IF I>0THEN 195 : IF Y$()<>" "OR N<>ITHEN 8990 : NEXT I 0195 IF Y$()<>STR(X$(),1,I)OR N<>ITHEN 8990 : NEXT I 0200 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : N1=10 : MAT MOVE A$(),N1TO B$() : IF B$()<>"ABCFGHKLM........."OR N1<>3THEN 8990 0210 B$()="ABCDEFGHIJKLMNO" : A$()=ALL(".") : N=10 : MAT MOVE B$(),NTO A$() : IF A$()<>"ABC DEF GHI"OR N<>3THEN 8990 0220 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()(3)TO B$() : IF B$()<>"CDEHIJMNO........."THEN 8990 0230 A$()="ABCDEFGHIJKLMNO" : B$()=ALL(".") : MAT MOVE A$()(3,1+1)TO B$() : IF B$()<>"CD HI MN ........."THEN 8990 0240 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L3$()=HEX(000600030005) : MAT MOVE B$(),L3$()TO A$() : IF A$()<>"PQR GHI MNO"THEN 8990 0250 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L3$()=HEX(000600020000) : MAT MOVE B$(),L3$()TO A$() : IF A$()<>"PQR DEF ....."THEN 8990 0260 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L3$()=HEX(000000010002) : MAT MOVE B$(),L3$()TO A$() : IF A$()<>"..............."THEN 8990 0270 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L6$()=HEX(000600050004000300020001) : MAT MOVE B$(),L6$()TO A$() : IF A$()<>"PQR MNO JKL "THEN 8990 0280 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L6$()=HEX(000600050004000300020001) : MAT MOVE B$(),L6$(3)TO A$() : IF A$()<>"JKL GHI DEF "THEN 8990 0290 B$()="ABCDEFGHIJKLMNOPQR" : A$()=ALL(".") : L6$()=HEX(000600050004000300000001) : MAT MOVE B$(),L6$(3)TO A$() : IF A$()<>"JKL GHI ....."THEN 8990 0300 B$()="ABCDEFGHIJKLMNOPQR" : N=2 : A$()=ALL(".") : L6$()=HEX(000600050004000300020001) : MAT MOVE B$(),L6$(3),NTO A$() : IF A$()<>"JKL GHI ....."THEN 8990 0310 B$()="ABCDEFGHIJKLMNOPQR" : N=3 : A$()=ALL(".") : L6$()=HEX(000600050004000300020001) : MAT MOVE B$()(2,1),L6$(3),NTO A$()(3,1) : IF A$()<>"..K....H....E.."THEN 8990 0400 Q$()="ABCDEFGHIJKLMNOPQRSTUVWX" : R$()=ALL(".") : MAT MOVE Q$()TO R$() : IF R$()<>"ABCEFGIJKMNOQRSUVW......"THEN 8990 0410 R$()="ABCDEFGHIJKLMNOPQRSTUVWX" : Q$()=ALL(".") : MAT MOVE R$()TO Q$() : IF Q$()<>"ABC DEF GHI JKL MNO PQR "THEN 8990 0420 Q$()="ABCDEFGHIJKLMNOPQRSTUVWX" : R$()=ALL(".") : L6$()=HEX(0203010202010103020201010000) : MAT MOVE Q$(),L6$()TO R$() : IF R$()<>"UVWEFGMNOIJKQRSABC......"THEN 8990 0430 R$()="ABCDEFGHIJKLMNOPQRSTUVWX" : Q$()=ALL(".") : L6$()=HEX(040204010302030102020201010201010000) : MAT MOVE R$(),L6$(2)TO Q$() : IF Q$()<>"STU PQR MNO JKL GHI ...."THEN 8990 0440 R$()="ABCDEFGHIJKLMNOPQRSTUVWX" : Q$()=ALL(".") : L6$()=HEX(0000) : MAT MOVE R$(),L6$()TO Q$() : IF Q$()<>"........................"THEN 8990 0450 B$()="ABCDEFGHIJKLMNOPQR" : R$()=ALL(".") : MAT MOVE B$()TO R$() : IF R$()<>"ABCDEFGHIJKLMNOPQR......"THEN 8990 0460 R$()="ABCDEFGHIJKLMNOPQRSTUVWX" : B$()=ALL(".") : L6$()=HEX(040204010302030102020201010201010000) : MAT MOVE R$(),L6$(2)TO B$() : IF B$()<>"STUPQRMNOJKLGHI..."THEN 8990 1010 MAT Y=CON : X(1)=0 : X(2)=1.234567890123E+45 : X(3)=.0123 : X(4)=-.000567 : MAT MOVE X()TO Y() : IF Y(1)<>0OR Y(2)<>1.234567890123E+45OR Y(3)<>.0123OR Y(4)<>-.000567OR Y( 5)<>1OR Y(6)<>1THEN 8990 1020 READ N : FOR I=1TO N : READ X1(1) : Y1(1)=0 : MAT MOVE X1()TO Y1() : IF Y1(1)<>X1(1)THEN 8990 : NEXT I : DATA 5 : DATA 0,1234567890123,-9876543210123,.00123,-.9876 1030 FOR I=1TO 4 : X(I)=I : NEXT I 1040 MAT Y=ZER : MAT MOVE X()TO Y(2) : FOR I=1TO 4 : IF Y(I+1)<>ITHEN 8990 : NEXT I : IF Y(1)<>0OR Y(6)<>0THEN 8990 1050 MAT Y=ZER : MAT MOVE X()TO Y(4) : FOR I=4TO 6 : IF Y(I)<>I-3THEN 8990 : NEXT I : FOR I=1TO 3 : IF Y(I)<>0THEN 8990 : NEXT I 1060 MAT Y=ZER : FOR N=1TO 4 : M=N : MAT MOVE X(),NTO Y() : IF N<>MTHEN 8990 : FOR I=1TO N : IF Y(I)<>ITHEN 8990 : NEXT I : FOR I=N+1TO 6 : IF Y(I)<>0THEN 8990 : NEXT I : NEXT N 1070 MAT Y=ZER : L3$()=HEX(000200040003) : MAT MOVE X(),L3$()TO Y() : IF Y(1)<>2OR Y(2)<>4OR Y(3)<>3OR Y(4)<>0OR Y(5)<>0OR Y(6)<>0THEN 8990 1100 K=1 : FOR I=1TO 2 : FOR J=1TO 4 : A(I,J)=K : K=K+1 : NEXT J,I : MAT B=ZER : MAT MOVE A()TO B() : K=1 : FOR I=1TO 4 : FOR J=1TO 2 : IF B(I,J)<>KTHEN 8990 : K=K+1 : NEXT J,I 2010 RESTORE LINE2020 : READ N : FOR I=1TO N : READ X,N$ : X1(1)=X : Y1(1)=9 : N1$=" " : MAT MOVE X1()TO N1$() : MAT MOVE N1$()TO Y1() : IF X1(1)<>XOR Y1(1)<>XOR N1$(1)<>N$THEN 8990 : NEXT I 2020 DATA 9 : DATA 0,HEX(8000000000000000),1,HEX(9001000000000000),-2,HEX(0997999999999 999),.3,HEX(8983000000000000),-.04,HEX(1025999999999999),1.234567890123E+ 45,HEX(9451234567890123),-1.234567890123E+45,HEX(0548765432109876) 2030 DATA 1.234567890123E-45,HEX(8541234567890123),-1.234567890123E-45,HEX(145 8765432109876) 2040 X1(1)=1.234567890123E+45 : Y1(1)=0 : M$(1)=ALL(FF) : MAT MOVE X1()TO M$(1) : MAT MOVE M$()TO Y1(1) : IF M$(1)<>HEX(94512345678901232020)OR Y1(1)<>X1(1)THEN 8990 2050 X1(1)=1234567890123 : M$=HEX(9121234567890123) : FOR I=2TO 8 : M$()=ALL(FF) : Y1(1)=0 : MAT MOVE X1()TO M$()(1,I) : MAT MOVE M$()(1,I)TO Y1() : IF STR(M$(),1,I)<>STR(M$,1,I)OR POS(STR(M$(),I+1)<>HEX(FF))<>0OR Y1(1)<>F IX(X1(1)/10^(16-2*I))*10^(16-2*I)THEN 8990 : NEXT I 2060 FOR I=1TO 6 : Y(I)=I : NEXT I : L6$()=HEX(000600050004000300020001) : MAT MOVE Y(),L6$()TO B$() : MAT Y=ZER : MAT MOVE B$()TO Y() : FOR I=1TO 6 : IF Y(I)<>7-ITHEN 8990 : NEXT I : MAT Y=ZER : MAT MOVE B$(),L6$()TO Y() : FOR I=1TO 6 : IF Y(I)<>ITHEN 8990 : NEXT I 8980 X=SPACE : IF S=XTHEN 9000 8990 E(3)=E(3)+1 9000 PRINT AT(3,16,16); : IF E(3)=0THEN PRINT "OK" : ELSE PRINT E(3);"ERRORS" 9010 LOAD DC T"BSORT4"