Listing of file='36dwkbd' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'
# Sector 3811, program filename = '36dwkbd' 0010 SELECT PRINT 005(80) : PRINT HEX(0306) : A1=#PART : A$="T# DIAG" : CONVERT A1TO STR(A$,3,2),(##) : DEFFN@PARTA$ 0020 DIM A,A$,A$(1)80,A1,A1$1,B,B$1,B$(1)80,B5$100,C,C$1,C$(81)1,C1,D,D$5,D$(5 )5,E,E$,F,F1,F$29,G$,I,I$1,I1,I2,J,J$1,J1,J2,K$7,L,M$20,P,P$30,P$(16)30,P 2,Q,Q3$(4)64,Q5$(4)64,R,R1,S,S$,U,X 0023 D$(1)=HEX(020400020E) : D$(2)=HEX(020404020E) : D$(3)=HEX(020400000E) : D$(4)=HEX(020402020E) : D$(5)=HEX(020402000E) 0040 PRINT HEX(0306) : D$=D$(5) : R=0 : M$="DW Keyboard Tests" : GOSUB '40 : $PSTAT="KBD-MENU" 0050 PRINT AT(5,0);"Which test would you like (1-7)";HEX(0F);AT(8,30);" 1) Alp ha Keyboard";AT(10,30);" 2) Control/Edit Keys";AT(12,30);" 3) Number pad" ;AT(14,30);" 4) WP/SF' Keys";AT(16,30);" 5) All Above tests";AT(18,30);" 6) Case Mode";AT(20,30);" 7) Main Menu" 0060 KEYIN C$ : C=NUM(C$) : IF C<>1THEN 60 : CONVERT C$TO C : ON CGOSUB 770,790,810,830,850,870,7000,60,60,60 : M$="TEST PASSED" : R=10 : SELECT P9 : PRINT HEX(0306) : GOSUB '40 : SELECT P : GOTO 40 0770 $PSTAT="dwkeyalp" : GOSUB 2010 : R=0 : M$="ALPHA KEY TEST" : D$=D$(5) : GOSUB '40 0772 GOSUB 1770 : R=1 : M$="Set A/a, No Shift" : D$=D$(5) : GOSUB '40 : A=1 : F1=49 : GOSUB 900 0774 GOSUB 1770 : D$=D$(4) : GOSUB 1550 : R=1 : M$="Set A/a, Hold Shift" : D$=D$(5) : GOSUB '40 : A=50 : F1=98 : GOSUB 900 0776 D$=D$(1) : GOSUB 1550 : RETURN 0790 $PSTAT="dwkeyedt" : GOSUB 2010 : R=0 : M$="CONTROL/EDIT KEYS" : D$=D$(5) : GOSUB '40 0792 GOSUB 1770 : R=1 : M$="Set A/a, No Shift" : D$=D$(5) : GOSUB '40 : A=99 : F1=112 : GOSUB 900 0794 GOSUB 1770 : D$=D$(4) : GOSUB 1550 : R=1 : M$="Set A/a, Hold Shift" : D$=D$(5) : GOSUB '40 : A=113 : F1=125 : GOSUB 900 : D$=D$(1) : GOSUB 1550 : R=1 : M$=" " : D$=D$(5) : GOSUB '40 : RETURN 0810 $PSTAT="dwkey#pd" : GOSUB 2010 : R=0 : M$="NUMBER PAD" : D$=D$(5) : GOSUB '40 0812 GOSUB 1750 : M$="A/A, No Shift" : R=1 : GOSUB '40 : PRINT AT(11,62,14);AT(13,62,18);AT(15,62,18);AT(17,58,22);AT(18,62,18);AT (19,62,18);AT(13,71);BOX(-1,-4) : I1=9 : I2=I1 : J1=1 : J2=14 : D$=D$(1) : GOSUB '155 0814 I1=9 : I2=I1 : FOR J1=1TO 13 : J2=J1 : B$=STR(K$(I1,J1),6,1) : D$=D$(4) : GOSUB '155 0815 KEYIN A1$ : IF A1$=B$THEN 816 : GOSUB 1180 : GOTO 815 0816 PRINT D$(5);AT(22,0,80) 0817 KEYIN A1$ : IF A1$=B$THEN 818 : GOSUB 1180 : GOTO 816 0818 PRINT D$(5);AT(22,0,80) : D$=D$(1) : GOSUB '155 : NEXT J1 : RETURN 0819 GOSUB 1770 : R=1 : M$="Set A/a" : D$=D$(5) : GOSUB '40 : A=0 : F1=96 : GOSUB 900 0830 $PSTAT="dwkeysf" : GOSUB 2010 : R=0 : M$="WP/SF' KEY TEST" : D$=D$(5) : GOSUB '40 0832 GOSUB 1770 : R=1 : M$="Set A/a, No Shift" : D$=D$(5) : GOSUB '40 : A=141 : F1=156 : GOSUB 900 0834 D$=D$(4) : GOSUB 1550 : R=1 : M$="Hold Shift" : D$=D$(5) : GOSUB '40 : A=157 : F1=172 : GOSUB 900 0836 RETURN 0850 $PSTAT="dwkeyall" : GOSUB 2010 : M$="TEST ALL KEYS" : D$=D$(5) : R=0 : GOSUB '40 : GOSUB 772 : GOSUB 792 : GOSUB 812 : GOSUB 2010 : GOSUB 832 : RETURN 0870 $PSTAT="dwkeymod" : GOSUB 2010 : R=0 : M$="CASE/MODE TEST" : D$=D$(5) : GOSUB '40 0872 GOSUB 1770 : R=1 : M$="Set A/a, No Shift" : D$=D$(5) : GOSUB '40 : A=175 : F1=178 : GOSUB 900 0874 D$=D$(4) : GOSUB 1550 : R=1 : M$="Set A/a, Hold Shift" : D$=D$(5) : GOSUB '40 : A=179 : F1=182 : GOSUB 900 : D$=D$(1) : GOSUB 1550 0876 GOSUB 1750 : R=1 : M$="Set A/A, NO Shift" : D$=D$(5) : GOSUB '40 : A=183 : F1=186 : GOSUB 900 0878 D$=D$(4) : GOSUB 1550 : R=1 : M$="Set A/A, Hold Shift" : D$=D$(5) : GOSUB '40 : A=187 : F1=190 : GOSUB 900 : D$=D$(1) : GOSUB 1550 0879 D$=D$(4) : GOSUB 1570 : R=1 : M$="Set A/A, Set Lock" : D$=D$(5) : GOSUB '40 : A=191 : F1=194 : GOSUB 900 : RETURN 0900 F=A-1 0910 IF F=F1THEN RETURN : F=F+1 0990 GOSUB '93 : B=0 : GOSUB '145 : GOSUB '93 : B=0 : GOSUB '145 : GOSUB '92 : GOTO 910 1020 DEFFN'145 : KEYIN A1$,1030,1030 : Q=0 : GOTO 1040 1030 KEYIN A1$,1030,1030 1040 KEYIN A1$,1070,1090 : GOTO 1040 1060 A1$=SUBHEX(80) : U=0 1070 P=1 : GOTO 1120 1090 P=2 : IF U=1AND A1$>=HEX(80)THEN 1060 1120 GOSUB 1150 : IF B>0THEN 1130 : D$=D$(2) : GOSUB '135 : GOSUB '91 : GOSUB '92 : GOTO 1020 1130 P=0 : RETURN 1150 PRINT D$(3);AT(22,0,80) : P=P+3 : IF A1$<>B$THEN 1180 : B=B+1 1160 RETURN 1180 P=P-3 : C$=A1$ : C$=XOR B$ : PRINT D$(5);AT(22,15);"EXPECTED - ";HEXOF(B$);" RETURNED - ";HEXOF(A1$); " XOR - ";HEXOF(C$) : FOR C=1TO 4 : PRINT HEX(07) : FOR D=1TO 400 : NEXT D : NEXT C : RETURN 1200 DEFFN'135 : ON PGOSUB 1220,1280 : RETURN 1220 IF A1$<HEX(21)THEN 1350 : IF A1$>HEX(7F)THEN 1350 1250 GOSUB '70 : RETURN 1280 IF A1$>HEX(5F)THEN 1350 : IF A1$<HEX(50)AND A1$>HEX(1F)THEN GOSUB 1300 : IF A1$<HEX(60)AND A1$>HEX(4F)THEN GOSUB 1320 : GOSUB '70 : RETURN 1300 A1$=ADDHEX(50) : RETURN 1320 A1$=ADDHEX(40) : RETURN 1350 C$=A1$ : $TRAN(C$,T1$)R : ON C$GOTO 1410,1510,1390,1490,1460 1370 B$=A1$ : A1$=C$ : GOSUB '70 : A1$=B$ : RETURN 1390 I1=12 : I2=I1 : J1=13 : J2=16 : GOSUB '155 : RETURN 1410 I1=11 : I2=I1 : IF Q=2THEN 1420 : INIT(20)K$ : PRINT AT(13,53);D$;STR(K$,1,2) : PRINT AT(14,53);STR(K$,1,2) : J1=9 : J2=10 : GOSUB '155 1420 IF Q=1THEN 1430 : I1=11 : I2=I1 : J1=11 : J2=13 : GOSUB '155 1430 RETURN 1460 KEYIN A1$,1470,1470 1470 U=1 : A1$="-" : GOTO 1220 1490 I1=09 : I2=I1 : J1=14 : J2=16 : GOSUB '155 : RETURN 1510 I1=12 : I2=I1 : J1=1 : J2=12 : GOSUB '155 : RETURN 1550 GOSUB 1590 : GOSUB 1610 : RETURN 1570 I1=11 : I2=I1 : J1=15 : J2=16 : GOSUB '155 : RETURN 1590 I1=11 : I2=I1 : J1=1 : J2=3 : GOSUB '155 : RETURN 1610 I1=11 : I2=I1 : J1=4 : J2=6 : GOSUB '155 : RETURN 1630 DEFFN'60 : I$=HEX(F0) : J$=HEX(0F) : I$=AND A1$ : ROTATE(I$,4) : J$=AND A1$ : I=VAL(I$) : J=VAL(J$) : I=I+1 : J=J+1 : RETURN 1640 DEFFN'70 : GOSUB '60 : K$=K$(I,J) : GOSUB '50 : GOSUB '90 : RETURN 1660 DEFFN'50 : CONVERT STR(K$,1,2)TO R : CONVERT STR(K$,3,2)TO C : RETURN 1680 DEFFN'90 : PRINT D$;AT(R,C);STR(K$,5,3) : RETURN 1700 DEFFN'91 : FOR D=1TO 5000 : NEXT D : RETURN 1720 DEFFN'155 : FOR I=I1TO I2 : FOR J=J1TO J2 : K$=K$(I,J) : GOSUB '50 : PRINT D$;AT(R,C);STR(K$,5,3) : NEXT J : NEXT I : RETURN 1750 PRINT D$(5);AT(2,1);HEX(0202020FFF0202000F);AT(2,3);"A/A";D$(3);AT(4,0);" A/a";AT(2,0);BOX(2,2);AT(4,0);BOX(-1,-2) : RETURN 1770 PRINT D$(5);AT(4,1);HEX(0202020FFF0202000F);D$(3);AT(2,0);" A/A";D$(5); AT(4,3);"A/a";AT(3,0);BOX(2,2);AT(2,0);BOX(-1,-2) : RETURN 1800 DEFFN'92 1810 IF A1$<"a"OR A1$>"z"THEN 1820 : A1$=AND HEX(DF) : GOTO 1840 1820 $TRAN(A1$,T2$)R 1840 IF B=1THEN 1860 : D$=D$(1) : ON PGOSUB 1220,1280 : GOSUB '93 : RETURN 1860 C$=A1$ : GOSUB '94 : A1$=C$ : D$=D$(1) : GOSUB '135 : P=0 : RETURN 1880 DEFFN'93 : GOSUB '94 : D$=D$(4) : GOSUB '135 : P=0 : RETURN 1900 DEFFN'94 : F$=F$(F) : A1$=STR(F$,1,1) : B$=A1$ : CONVERT STR(F$,2,1)TO D : ON DGOTO 1910,1920,1930,1940 : RETURN 1910 P=1 : Q=1 : RETURN 1920 P=2 : Q=1 : RETURN 1930 P=1 : Q=2 : RETURN 1940 P=2 : Q=2 : RETURN 1960 DEFFN'40 : C=(40-(LEN(M$)/2)) : PRINT D$(3);AT(R,0,80);D$;AT(R,C);M$;HEX(07) : RETURN 2010 PRINT HEX(0306) 2020 GOSUB 1750 : D$=D$(1) : I1=1 : I2=1 : J1=1 : J2=16 : GOSUB '155 : I1=10 : I2=12 : GOSUB '155 : I1=9 : I2=I1 : J1=14 : J2=16 : GOSUB '155 : D$=D$(3) : I1=8 : I2=I1 : J1=15 : J2=16 : GOSUB '155 2030 PRINT AT(7,0);BOX(1,4);AT(13,71);BOX(1,4) : D$=D$(1) : I1=4 : I2=4 : J1=1 : J2=14 : GOSUB '155 : I1=6 : I2=6 : GOSUB '155 : I1=5 : I2=I1 : J1=2 : J2=16 : GOSUB '155 : I1=3 : I2=3 : J1=13 : J2=16 : GOSUB '155 : J1=8 : J2=J1 : GOSUB '155 2040 INIT(20)K$ : PRINT AT(13,53);STR(K$,1,2) : PRINT AT(14,53);STR(K$,1,2) : RETURN 7000 COM CLEAR : LOAD T"TERMINAL" 8000 DEFFN'1"LISTSD200," 8010 DEFFN'2"LISTSD740,"