image of READY prompt

Wang2200.org

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,"