image of READY prompt

Wang2200.org

Listing of file='36dekbd' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'

# Sector 3453, program filename = '36dekbd'
0010 A1=#PART
   : A$="T#  DIAG"
   : CONVERT A1TO STR(A$,3,2),(##)
   : DEFFN@PARTA$
0020 DIM A,A$,A1,A1$1,B,B$1,C,C$1,D,D$5,D$(5)5,F,F1,F$29,F$(200)2,I,I$1,I1,I2,
     J,J$1,J1,J2,K$7,K$(12,16)7,M$20,P,Q,R,T1$32,T2$64,U
0040 PRINT HEX(03020402000E);AT(1,33);"KEYBOARD TESTS"
   : $PSTAT="KBD-MENU"
0050 PRINT AT(5,0);"Which test would you like (1-7)";HEX(0F);AT(8,25);" 1) CAS
     E/MODE ";AT(10,25);" 2) SF'/PROGRAMMING KEYS";AT(12,25);" 3) NUMBER PAD";
     AT(14,25);" 4) UPPER CASE";AT(16,25);" 5) LOWER CASE";AT(18,25);" 6) ALL
     (FULL) TESTS";AT(20,25);" 7) MAIN MENU"
0060 KEYIN C$
   : C=NUM(C$)
   : IF C<>1THEN 60
   : CONVERT C$TO C
   : ON CGOSUB 610,630,650,670,690,710,7000
   : GOTO 40
0150 PRINT HEX(0306)
0170 RESTORE
   : T1$=HEX(01F0027E03FF040805E50684070D088109A10A820B20027F)
0190 T2$="1!2@3#4$5%6^7&8*9(0)<>][;:/?"
   : STR(T2$,29,34)=HEX(00100111021203130414051506160717081809190A1A0B1B0C1C0D
     1D0E1E0F1F2722)
0220 FOR F=1TO 18
   : READ F$(F)
   : NEXT F
0230 DATA HEX(7E32),"Q1","11",HEX(0032),HEX(7F32),HEX(7F32),HEX(7F32),"Q1","!1
     ",HEX(1032)
0240 DATA HEX(7E32),"q1","11",HEX(0032),HEX(7F32),"Q1","!1",HEX(1032)
0260 F$=HEX(1032)
   : FOR F=19TO 34
   : F$(F)=F$
   : STR(F$,1,1)=ADDHEX(01)
   : NEXT F
0270 FOR F=35TO 104
   : READ F$(F)
   : NEXT F
0280 DATA HEX(F032),",3","/3","-3","73","83","93","63","53","43","13","23","33
     ",".3","03",HEX(0D33)
0290 DATA HEX(8431),HEX(E531),HEX(8131),HEX(A131),HEX(8231),HEX(2031),"Z1","X1
     ","C1","V1","B1","N1","M1",",1",".1","?1"
0300 DATA HEX(0D31),HEX(2231),":1","L1","K1","J1","H1","G1","F1","D1","S1","A1
     ",HEX(7F32),"Q1","W1","E1"
0310 DATA "R1","T1","Y1","U1","I1","O1","P1",">1","[1",HEX(0831),"+1",HEX(FF31
     ),")1","(1","*1","&1"
0320 DATA "^1","%1","$1","#1","@1","!1"
0340 F$=HEX(0032)
   : FOR F=105TO 120
   : F$(F)=F$
   : STR(F$,1,1)=ADDHEX(01)
   : NEXT F
0350 FOR F=121TO 194
   : READ F$(F)
   : NEXT F
0360 DATA HEX(F032),",3","/3","-3","73","83","93","63","53","43","13","23","33
     ",".3","03",HEX(0D33)
0370 DATA HEX(8431),HEX(E531),HEX(8131),HEX(A131),HEX(8231),HEX(2031),"z1","x1
     ","c1","v1","b1","n1","m1",",1",".1","/1"
0380 DATA HEX(0D31),"'1",";1","l1","k1","j1","h1","g1","f1","d1","s1","a1",HEX
     (7E32),"q1","w1","e1"
0390 DATA "r1","t1","y1","u1","i1","o1","p1","<1","]1",HEX(0831),"=1","-1","01
     ","91","81","71"
0400 DATA "61","51","41","31","21","11"
0410 DATA HEX(7E32),"Q1","11",HEX(0032)
0430 D$(1)=HEX(020400020E)
   : D$(2)=HEX(020404020E)
   : D$(3)=HEX(020400000E)
   : D$(4)=HEX(020402020E)
   : D$(5)=HEX(020402000E)
0450 FOR I=1TO 12
   : FOR J=1TO 16
   : READ K$(I,J)
   : NEXT J
   : NEXT I
0460 DATA "0706'0 ","0710'1","0714'2","0718'3","0724'4","0728'5","0732'6","073
     6'7","0742'8","0746'9","0750'10","0754'11","0760'12","0764'13","0768'14",
     "0772'15"
0470 DATA "0706'16","0710'17","0714'18","0718'19","0724'20","0728'21","0732'22
     ","0736'23","0742'24","0746'25","0750'26","0754'27","0760'28","0764'29","
     0768'30","0772'31"
0480 DATA "1910  ","1104 !",HEX(313534362022),"1112 #","1116 $","1120 %","1128
      &","1546 '","1136 (","1140 )","1132 *","1148 +","1736 ,","1144 -","1740
     .","1744 /"
0490 DATA "1140 0","1104 1","1108 2","1112 3","1116 4","1120 5","1124 6","1128
      7","1132 8","1136 9","1542 :","1542 ;","1345 <","1148 =","1345 >","1744
     ?"
0500 DATA "1108 @","1506 A","1724 B","1716 C","1514 D","1313 E","1518 F","1522
      G","1526 H","1333 I","1530 J","1534 K","1538 L","1732 M","1728 N","1337
     O"
0510 DATA "1341 P","1305 Q","1317 R","1510 S","1321 T","1329 U","1720 V","1309
      W","1712 X","1325 Y","1708 Z","1349 [","1910","1349 ]","1124 ^","1910"
0520 DATA "1910","1506 a","1724 b","1716 c","1514 d","1313 e","1518 f","1522 g
     ","1526 h","1333 i","1530 j","1534 k","1538 l","1732 m","1728 n","1337 o"
0530 DATA "1341 p","1305 q","1317 r","1510 s","1321 t","1329 u","1720 v","1309
      w","1712 x","1325 y","1708 z","1910","1910","1910","0701RST","1164HLT"
0540 DATA "1971 0","1769 1","1773 2","1777 3","1569 4","1573 5","1577 6","1369
      7","1373 8","1377 9","1910","1910","1177 ,","1169 -","1977 .","1173 /"
0550 DATA "1910","0777EDT","1100","1200","1301","1300TAB","1144 -","1152 BS","
     1157ERA","1910","1364CNT","1502CK","1500LOC","1552ET","1550 RE","1557CLR"
     ,"1910"
0560 DATA "1700 SH","1703IFT","1704FT","1748 SH","1750HIF","1752FT","1757LD","
     1552ET","1550 RE","1764 R","1864 E","1964 T","1957RUN","1910","1910","191
     0"
0570 DATA "1910","1913","1916","1919SPA","1922CE","1925","1928BAR","1931","193
     4","1937","1940","1942","1910","1910","1910"
   : RETURN
0610 $PSTAT="KBD-MODE"
   : M$="CASE/MODE"
   : A=0
   : F1=18
   : GOSUB 730
   : RETURN
0630 $PSTAT="KBD-SF'"
   : M$="SF' KEYS"
   : A=104
   : F1=122
   : GOSUB 730
   : A=18
   : F1=36
   : GOSUB 740
   : A=49
   : F1=56
   : GOSUB 740
   : RETURN
0650 $PSTAT="KBD-#PAD"
   : M$="NUMBER PAD"
   : A=35
   : F1=50
   : GOSUB 730
   : RETURN
0670 $PSTAT="KBD-U.C."
   : M$="UPPER CASE"
   : A=55
   : F1=105
   : GOSUB 730
   : RETURN
0690 $PSTAT="KBD-L.C."
   : M$="LOWER CASE"
   : A=141
   : F1=191
   : GOSUB 730
   : RETURN
0710 $PSTAT="KBD-ALL"
   : M$="FULL TEST"
   : A=0
   : F1=195
   : GOSUB 730
   : RETURN
0730 GOSUB 170
   : PRINT HEX(0603)
   : GOSUB '160
   : R=0
   : GOSUB '45
0740 F=A
   : IF F=55THEN GOSUB 870
   : IF F=141THEN GOSUB 860
0750 F=F+1
   : IF F=F1THEN RETURN
   : ON FGOSUB 790,880,880,880,800,810,820,880,880,880,830,880,880,880,840,880
     ,880,880,870
   : IF F=105THEN GOSUB 860
   : IF F=191THEN GOSUB 790
   : IF F=195THEN RETURN
0770 GOSUB '93
   : B=0
   : GOSUB '145
   : GOSUB '93
   : B=0
   : GOSUB '145
   : GOSUB '92
   : GOTO 750
0790 GOSUB 1780
   : R=1
   : M$="A/A"
   : GOSUB '45
   : RETURN
0800 D$=D$(4)
   : GOSUB 1650
   : R=1
   : M$="A/A, Right Shift"
   : GOSUB '45
   : RETURN
0810 D$=D$(1)
   : GOSUB 1650
   : D$=D$(4)
   : GOSUB 1630
   : R=1
   : M$="A/A, Left Shift"
   : GOSUB '45
   : RETURN
0820 D$=D$(1)
   : GOSUB 1630
   : D$=D$(4)
   : GOSUB 1610
   : R=1
   : M$="A/A, Lock"
   : GOSUB '45
   : RETURN
0830 GOSUB 1800
   : D$=D$(1)
   : GOSUB 1610
   : R=1
   : M$="A/a"
   : GOSUB '45
   : RETURN
0840 D$=D$(4)
   : GOSUB 1610
   : R=1
   : M$="A/a, Lock"
   : GOSUB '45
   : RETURN
0860 GOSUB 1800
   : D$=D$(1)
   : GOSUB 1610
   : PRINT D$(4);AT(22,9);"Set A/a, Unshift & key each key as indicated twice.
     ";HEX(07)
   : RETURN
0870 GOSUB 1800
   : D$=D$(4)
   : GOSUB 1610
   : PRINT D$(4);AT(22,9);"Set A/a, Set shift lock & key each indicated key tw
     ice.";HEX(07)
   : RETURN
0880 RETURN
0910 DEFFN'145
   : KEYIN A1$,930,930
   : Q=0
   : GOTO 940
0920 U=0
0930 KEYIN A1$,920,920
0940 KEYIN A1$,950,980
   : GOTO 940
0950 P=1
   : GOTO 1010
0970 U=0
   : IF B$=HEX(FF)THEN RETURN
   : IF A1$=HEX(BD)OR B$=HEX(F0)THEN 1070
   : IF B$<HEX(20)OR B$>HEX(7A)THEN RETURN
   : IF A1$<HEX(80)THEN RETURN
   : A1$=SUBHEX(80)
   : P=1
   : U=0
   : RETURN
0980 P=2
   : IF U=1THEN GOSUB 970
1010 GOSUB 1090
   : IF B>0THEN 1020
   : D$=D$(2)
   : GOSUB '135
   : GOSUB '91
   : GOSUB '92
   : GOTO 910
1020 P=0
   : RETURN
1040 U=0
   : IF B$=HEX(FF)THEN RETURN
   : IF A1$=HEX(FF)THEN 1050
   : IF A1$=HEX(BD)OR B$=HEX(F0)THEN 1070
   : IF B$<HEX(20)OR B$>HEX(7A)THEN RETURN
   : B$=ADDHEX(80)
   : U=2
   : RETURN
1050 KEYIN A1$,1050,1050
   : IF A1$<>HEX(08)THEN RETURN
   : U=0
   : RETURN
1070 A1$=HEX(F0)
   : U=0
   : RETURN
1090 PRINT D$(3);AT(22,0,80)
   : P=P+3
   : IF A1$=HEX(FF)THEN GOSUB 1110
   : IF A1$<>B$THEN 1140
   : B=B+1
1100 RETURN
1110 KEYIN C$,,1120
   : RETURN
1120 U=1
   : RETURN
1140 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
1160 DEFFN'135
   : ON PGOSUB 1180,1290
   : RETURN
1180 IF A1$<HEX(21)THEN 1310
   : IF A1$>HEX(7F)THEN 1310
1210 GOSUB '60
   : I1=I
   : IF Q=2THEN 1220
   : GOSUB 1260
   : IF Q=1THEN 1230
1220 IF A1$>HEX(2B)AND A1$<HEX(3A)THEN GOSUB 1240
   : I=I1
   : RETURN
1230 I=I1
   : RETURN
1240 IF A1$<HEX(30)THEN 1250
   : I=I+5
   : GOTO 1260
1250 I=I+6
1260 K$=K$(I,J)
   : GOSUB '50
   : GOSUB '90
   : RETURN
1290 IF A1$>HEX(1F)THEN GOTO 1310
   : GOSUB '60
   : K$=K$(I,J)
   : GOSUB '50
   : GOSUB '90
   : RETURN
1310 C$=A1$
   : $TRAN(C$,T1$)R
   : ON C$GOTO 1330,1350,1370,1390,1410,1430,1450,1490,1510,1530,1550
   : RETURN
1330 I1=10
   : I2=I1
   : J1=2
   : J2=2
   : GOSUB '155
   : RETURN
1350 I1=10
   : I2=I1
   : J1=3
   : J2=6
   : GOSUB '155
   : RETURN
1370 I1=10
   : I2=I1
   : J1=7
   : J2=J1
   : GOSUB '155
   : RETURN
1390 I1=10
   : I2=I1
   : J1=8
   : J2=8
   : GOSUB '155
   : RETURN
1410 I1=10
   : I2=I1
   : J1=9
   : J2=J1
   : GOSUB '155
   : RETURN
1430 I1=10
   : I2=I1
   : J1=11
   : J2=J1
   : GOSUB '155
   : RETURN
1450 I1=11
   : I2=I1
   : IF Q=2THEN 1460
   : 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
1460 IF Q=1THEN 1470
   : I1=11
   : I2=I1
   : J1=11
   : J2=13
   : GOSUB '155
1470 RETURN
1490 I1=10
   : I2=I1
   : J1=16
   : J2=J1
   : GOSUB '155
   : RETURN
1510 I1=11
   : I2=I1
   : J1=8
   : J2=J1
   : GOSUB '155
   : RETURN
1530 I1=11
   : I2=I1
   : J1=14
   : J2=J1
   : GOSUB '155
   : RETURN
1550 I1=12
   : I2=I1
   : J1=1
   : J2=14
   : GOSUB '155
   : RETURN
1590 GOSUB 1610
   : GOSUB 1630
   : GOSUB 1650
   : RETURN
1610 I1=10
   : I2=I1
   : J1=12
   : J2=13
   : GOSUB '155
   : RETURN
1630 I1=11
   : I2=I1
   : J1=2
   : J2=4
   : GOSUB '155
   : RETURN
1650 I1=11
   : I2=I1
   : J1=5
   : J2=7
   : GOSUB '155
   : RETURN
1670 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
1690 DEFFN'50
   : CONVERT STR(K$,1,2)TO R
   : CONVERT STR(K$,3,2)TO C
   : RETURN
1710 DEFFN'90
   : PRINT D$;AT(R,C);STR(K$,5,3)
   : RETURN
1730 DEFFN'91
   : FOR D=1TO 5000
   : NEXT D
   : RETURN
1750 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
1780 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
1800 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
1810 PRINT HEX(0307);AT(11,37);"TEST IS DONE"
1830 DEFFN'92
1840 IF A1$<"a"OR A1$>"z"THEN 1850
   : A1$=AND HEX(DF)
   : GOTO 1870
1850 $TRAN(A1$,T2$)R
1870 IF B=1THEN 1890
   : D$=D$(1)
   : ON PGOSUB 1180,1290
   : GOSUB '93
   : RETURN
1890 C$=A1$
   : GOSUB '94
   : A1$=C$
   : D$=D$(1)
   : GOSUB '135
   : P=0
   : RETURN
1910 DEFFN'93
   : GOSUB '94
   : D$=D$(4)
   : GOSUB '135
   : P=0
   : RETURN
1930 DEFFN'94
   : F$=F$(F)
   : A1$=STR(F$,1,1)
   : B$=A1$
   : CONVERT STR(F$,2,1)TO D
   : ON DGOTO 1940,1950,1960,1970
   : RETURN
1940 P=1
   : Q=1
   : RETURN
1950 P=2
   : Q=1
   : RETURN
1960 P=1
   : Q=2
   : RETURN
1970 P=2
   : Q=2
   : RETURN
1990 DEFFN'160
   : GOSUB 1780
   : D$=D$(1)
   : I1=1
   : I2=1
   : J1=1
   : J2=16
   : GOSUB '155
   : I1=9
   : I2=12
   : GOSUB '155
   : D$=D$(3)
   : I1=8
   : I2=I1
   : J1=15
   : J2=16
   : GOSUB '155
2000 PRINT AT(7,0);BOX(1,4);AT(11,63);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
2010 INIT(20)K$
   : PRINT AT(13,53);STR(K$,1,2)
   : PRINT AT(14,53);STR(K$,1,2)
   : RETURN
2030 DEFFN'45
   : C=40-LEN(M$)/2
   : PRINT D$(5);AT(R,20,40);AT(R,C);M$;HEX(07)
   : RETURN
7000 LOAD T"TERMINAL"