Listing of file='36chratb' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'
# Sector 3668, program filename = '36chratb' 0080 SELECT PRINT 005(80) : PRINT HEX(0306) : A1=#PART : A$="T# DIAG" : CONVERT A1TO STR(A$,3,2),(##) : DEFFN@PARTA$ 0090 DIM A,A$,A1,A1$1,B$1,C,C$1,C$(81)1,D,I,J,L,M$20,R,T1$32,X 0110 PRINT HEX(03020402000E);AT(1,23);"CHARACTER/ATTRIBUTES TESTS" : $PSTAT="C/A-MENU" 0120 PRINT AT(5,0);"Which test would you like (1-5)";HEX(0F);AT(10,25);" 1) DI SPLAY CHARACTER SET";AT(12,25);" 2) FLOOD W/SELECTED CHARACTER";AT(14,25) ;" 3) ATTRIBUTE FUNCTION TEST";AT(16,25);" 4) ATTRIBUTE BIT TEST";AT(18,2 5);" 5) MAIN MENU" 0130 KEYIN C$ : C=NUM(C$) : IF C<>1THEN 130 : CONVERT C$TO C : ON CGOSUB 220,670,150,920,1470 : GOTO 110 0150 $PSTAT="ATB-FUNC" 0160 PRINT HEX(0306);AT(23,27);"KEY 'RETURN' TO CANCEL";AT(0,0);BOX(24,79) : PRINT AT(5,0);HEX(020402000E);BOX(1,21);" THIS IS A LITTLE BOX";AT(5,22); HEX(020404000E0202020F);HEX(F7FBF7FBF7FBF7FB);AT(0,30);BOX(11,41);AT(1,41 );HEX(020400020E);" THIS IS REVERSE VIDEO " 0170 PRINT AT(3,37);HEX(020402000E);"THIS IS HIGH INTENSITY VIDEO";AT(5,35);HE X(020404020E);" THIS IS BLINKING REVERSE VIDEO ";AT(7,41);HEX(0F);"THIS I S NORMAL VIDEO";AT(9,32);HEX(020402020E);" THIS IS HIGH INTENSITY REVERSE VIDEO " 0180 FOR X=6TO 13 : PRINT AT(X,10);HEX(020404000E0202020F);HEX(C6C9) : NEXT X : PRINT HEX(0F);AT(13,10);HEX(020402000E0202020F); : FOR X=1TO 12 : PRINT HEX(F7FB); : NEXT X : PRINT HEX(F7);AT(13,41); : FOR X=1TO 5 : PRINT HEX(F7FB); : NEXT X : PRINT AT(13,10);HEX(020404000E0202020F); : FOR X=1TO 2 : PRINT AT(10+X,49);HEX(C6C9) : NEXT X 0190 PRINT AT(13,32);BOX(2,8);HEX(020404000E);" Graphic";AT(14,33);"Symbols";A T(16,7);BOX(7,65) : C$=HEX(BF) : PRINT HEX(020402000E0202020F);AT(15,28);BOX(1,17);" COMPLEMENT PAIRS" : A1$=HEX(C0) : B$=HEX(FF) : R=16 : GOSUB 200 : A1$=HEX(D0) : B$=HEX(EF) : R=19 : GOSUB 200 : KEYIN C$ : RETURN 0200 FOR I=2TO 17 : J=I*4 : PRINT AT(R+1,J);BOX(1,2);AT(R+1,J+1);A1$ : PRINT AT(R+2,J);BOX(1,2);AT(R+2,J+1);B$ : A1$=ADDHEX(01) : B$=SUBHEX(01) : NEXT I : RETURN 0220 $PSTAT="CHAR-TBL" : B$=HEX(00) : PRINT HEX(0202000F0306) : R=0 : A1=7 0230 PRINT AT(0,32);"CHARACTER TABLES";AT(1,23);"KEY 'RETURN' TO STEP THROUGH TABLE" 0240 FOR A=1TO A1 0250 R=R+3 : B$=ADDHEX(10) : A1$=B$ 0260 GOSUB '101 0270 NEXT A 0280 KEYIN A1$,290,280 : GOTO 280 0290 IF A1$<>HEX(0D)THEN 280 0300 IF B$>HEX(80)THEN 310 : B$=HEX(70) : A1=8 : R=-3 : PRINT HEX(03) : GOTO 240 0310 PRINT HEX(0306);AT(0,29);BOX(1,22);" SPECIAL CHARACTER SET";AT(1,31);"\D3 \D0\C5\C3\C9\C1\CC\A0\C3\C8\C1\D2\C1\C3\D4\C5\D2\D3";AT(9,34);"\C7\D2\C1\ D0\C8\C9\C3\D3\A0\D3\C5\D4";AT(10,7);"LOWER CHARACTER IN BLOCK IS THE COM PLEMENT OF THE UPPER CHARACTER";HEX(0202020F) 0320 A1$=HEX(80) : R=3 : GOSUB '101 0330 A1$=HEX(90) : R=6 : GOSUB '101 0340 A1$=HEX(C0) : B$=HEX(FF) : R=12 : GOSUB '100 0350 A1$=HEX(D0) : B$=HEX(EF) : R=17 : GOSUB '100 0360 PRINT HEX(0202000F);AT(22,30);"KEY 'RETURN' FOR MENU" 0370 KEYIN A1$,380,370 : GOTO 370 0380 IF A1$<>HEX(0D)THEN 370 : RETURN 0390 DEFFN'100 0400 FOR I=2TO 17 0410 J=I*4 0420 PRINT AT(R,J+1);HEXOF(A1$) 0430 PRINT AT(R+1,J);BOX(1,2);AT(R+1,J+1);A1$ 0440 PRINT AT(R+3,J+1);HEXOF(B$);HEX(0202020F) 0450 PRINT AT(R+2,J);BOX(1,2);AT(R+2,J+1);B$ 0460 A1$=ADDHEX(01) : B$=SUBHEX(01) 0470 NEXT I 0480 RETURN 0490 B$=HEX(00) : PRINT HEX(0202000F) : R=-3 0500 PRINT HEX(03) : R=-3 0510 FOR A=1TO 8 0520 R=R+3 : B$=ADDHEX(10) : A1$=B$ 0530 GOSUB '101 0540 NEXT A 0550 KEYIN A1$,560,550 : GOTO 550 0560 IF A1$<>HEX(0D)THEN 550 0570 B$=HEX(70) : GOTO 500 0580 DEFFN'101 0590 FOR I=2TO 17 0600 J=I*4 0610 PRINT AT(R,J+1);HEXOF(A1$) 0620 PRINT AT(R+1,J);BOX(1,2);AT(R+1,J+1);A1$ 0630 A1$=ADDHEX(01) 0640 NEXT I 0650 RETURN 0670 $PSTAT="CHARFLOD" 0680 PRINT HEX(03);AT(1,33);"FLOOD SCREEN";AT(5,0);"Which form do you wish to enter";AT(10,25);"1) CHARACTER";AT(12,25);"2) HEX CODE OF CHARACTER";AT(1 4,25);"3) SPECIAL CHARACTER - Graphic";AT(22,30);"KEY 'RETURN' TO CANCEL" : A$=HEX(020400000E0202000F) 0690 KEYIN A1$,700,690 : GOTO 690 0700 PRINT AT(5,0,40);AT(10,20,40);AT(12,20,40);AT(14,20,40) 0710 IF A1$="1"THEN 820 : IF A1$="2"THEN 730 : IF A1$="3"THEN 720 : IF A1$=HEX(0D)THEN RETURN : GOTO 670 0720 PRINT AT(10,35);"SPECIAL CHARACTER" : A$=HEX(0202020F) 0730 PRINT AT(12,30,20);"ENTER HEX(\A0" 0735 KEYIN A1$,740,735 : GOTO 735 0740 T1$=HEX(00300131023203330434053506360737083809390A410B420C430D440E450F46) 0750 $TRAN(A1$,T1$)R : IF A1$>HEX(0F)THEN 730 0760 ROTATE(A1$,4) : C$=A1$ : PRINT AT(12,40);HEXOF(A1$);AT(12,41);HEX(A0) 0770 KEYIN A1$,800,770 : GOTO 770 0780 T1$=HEX(310132023303340435053606370738083909410A420B430C440D450E460F) 0790 $TRAN(A1$,T1$)R : IF A1$>HEX(0F)THEN 730 0800 PRINT AT(12,41);A1$;")" : $TRAN(A1$,T1$)R : IF A1$>HEX(0F)THEN 730 0810 A1$=ADDC$ : GOTO 840 0820 PRINT AT(12,30);"ENTER FLOOD CHARACTER" 0830 KEYIN A1$,840,830 : GOTO 830 0840 IF A1$<HEX(10)THEN 670 : C$()=ALL(A1$) : L=0 : GOSUB '108 0850 KEYIN A1$,860,850 : GOTO 850 0860 IF A1$=HEX(0D)THEN 670 : GOTO 850 0900 PRINT HEX(0202020F0306) : A1$=HEX(FF) 0920 PRINT HEX(0202020F03);AT(1,30);"ATTRIBIUTE BIT CHECK";AT(3,10);"CHARACTER ATTRIBUTE BITS ARE CHECKED BY ENABLING AND DISPLAYING" 0930 PRINT AT(4,8);"THE ATTRIBUTE AT EVERY SCREEN LOCATION AND OBSERVING THE R ESULTS.";AT(5,10);"THE ATTRIBUTE(S) ENABLED FOR EACH SCREEN IS NOTED IN T HE CENTER";AT(6,8);"OF THE DISPLAY FOR THAT SCREEN." 0940 PRINT AT(10,10);"KEY 1 FOR MANUAL STEPPING (KEY RETURN FOR NEXT SCREEN)" 0950 PRINT AT(12,10);"KEY 2 FOR AUTOMATIC STEPPING" 0960 PRINT AT(14,10);"KEY 3 FOR BURN-IN" 0970 PRINT AT(16,10);"KEY 9 TO RETURN TO MENU" 0980 PRINT AT(22,15);"KEY 'RETURN' (TWICE IN MANUAL) TO CANCEL TEST" 1000 KEYIN A1$,1010,1000 : GOTO 1000 1010 IF A1$=HEX(0D)THEN RETURN : IF A1$<HEX(30)OR A1$>HEX(39)THEN 1000 : CONVERT A1$TO A : ON AGOSUB 1050,1070,1090 : IF D=2THEN 1030 : IF A=9THEN RETURN : GOTO 900 1030 A1$="3" : GOTO 1010 1050 $PSTAT="A-BIT-MS" : D=0 : GOTO 1120 1070 $PSTAT="A-BIT-AS" : D=1 : GOTO 1120 1090 $PSTAT="A-BIT-BI" : D=2 : GOTO 1120 1120 PRINT HEX(0202020F0306) 1130 A$=HEX(020400000E) : M$="*NORMAL*" : L=8 : GOSUB '105 : GOSUB '109 : IF D=5THEN RETURN 1140 A$=HEX(020402000E) : M$="*BRIGHT*" : L=8 : GOSUB '105 : GOSUB '109 : IF D=5THEN RETURN 1150 A$=HEX(020404000E) : M$="*BLINK*" : L=7 : GOSUB '105 : GOSUB '109 : IF D=5THEN RETURN 1170 PRINT HEX(0202000F) 1180 A$=HEX(020400020E) : M$="*REVERSE*VIDEO*" : L=15 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1190 A$=HEX(020400040E) : M$="*UNDERSCORE*" : L=12 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1200 A$=HEX(0204000B0E) : M$="*REVERSE/UNDERSCORE*" : L=20 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1210 A$=HEX(020402020E) : M$="*BRIGHT/REVERSE*" : L=16 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1220 A$=HEX(020404020E) : M$="*BLINK/REVERSE*" : L=15 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1230 A$=HEX(020404040E) : M$="*BLINK/UNDERSCORE*" : L=18 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1240 A$=HEX(0204020B0E) : M$="*BRIGHT/R.V./U.S.*" : L=18 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1250 A$=HEX(0204040B0E) : M$="*BLINK/R.V./U.S.*" : L=17 : GOSUB '106 : GOSUB '109 : IF D=5THEN RETURN 1260 PRINT HEX(03) : A$=HEX(020400000E06) : C$()=ALL(" ") : FOR I=2TO 79STEP 2 : C$(I)="!" : NEXT I : M$=" B O X E V E N " : L=20 : GOSUB '108 : FOR I=0TO 77STEP 4 : PRINT AT(0,I);BOX(24,2); : NEXT I : FOR I=0TO 23STEP 2 : PRINT AT(I,0);BOX(1,78); : NEXT I : PRINT AT(23,0);BOX(1,78) : GOSUB '109 : IF D=5THEN RETURN 1270 SELECT PRINT 205(81) : PRINT HEX(03) : A$=HEX(020400000E06) : C$()=ALL(" ") : FOR I=3TO 79STEP 2 : C$(I)="!" : NEXT I : M$=" B O X O D D " : L=18 : GOSUB '108 : FOR I=1TO 78STEP 4 : PRINT AT(0,I);BOX(24,2); : NEXT I : FOR I=0TO 23STEP 2 : PRINT AT(I,1);BOX(1,78); : NEXT I : PRINT AT(23,1);BOX(1,78) : GOSUB '109 : SELECT PRINT 005(80) 1290 PRINT HEX(03) : RETURN 1310 DEFFN'104 : PRINT AT(12,40-L/2);STR(M$,1,L) : RETURN 1330 DEFFN'105 : INIT(FF)C$() : GOSUB '108 : RETURN 1350 DEFFN'106 : INIT(21)C$() : GOSUB '108 : RETURN 1370 DEFFN'108 : C$(81)=HEX(00) : FOR I=0TO 22 : PRINT A$;AT(I,0); : $GIO/005(A0004001)C$() : NEXT I : C$(81)=HEX(01) : PRINT AT(23,0); : $GIO/005(A0004001)C$() : IF L>0THEN GOSUB '104 : RETURN 1390 DEFFN'109 : KEYIN A1$,1400,1390 : GOTO 1410 1400 IF A1$=HEX(0D)THEN 1460 1410 IF D=4THEN RETURN : IF D>0THEN 1450 1420 KEYIN A1$,1430,1420 : GOTO 1420 1430 RETURN 1450 FOR I=1TO 8000 : NEXT I : RETURN 1460 PRINT HEX(020400000E0202000F) : D=5 : RETURN 1470 LOAD T"TERMINAL"