Listing of file='2282' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'
# Sector 3588, program filename = '2282' 0010 REM % Revised 4/84 by Paul J. Hossfeld to work under BASIC II and improve operation 0020 SELECT PRINT 005(80) : SELECT D 0030 SELECT PLOT 415 0040 DIM E$64,E(4),C$64,C$(8)64,C0$1,C0$(2)2,C1$(1)64,D$(3)1,A(2),B(2),Z$1,R$4 0,J8$11,J9$13 0050 J8$="2282" : J9$="4441" : PRINT HEX(030A0A);TAB(17);"2282 GRAPHIC CRT EXERCISER Rev. ";J9$ 0060 PRINT HEX(0A);TAB(25);"EXERCISER OPTIONS" 0070 PRINT HEX(0A);"SF' 1 POWER-ON (E5)"; 0080 PRINT TAB(37);"SF' 2 CLEAR CRT (03)" 0090 PRINT "SF' 3 PEN 1 (E1)"; 0100 PRINT TAB(37);"SF' 4 PEN 3 (E3)" 0110 PRINT "SF' 5 PEN 2 (E2)"; 0120 PRINT TAB(37);"SF' 6 SET HOME (E4)" 0130 PRINT "SF' 7 SHORT PLOT (E6)"; 0140 PRINT TAB(37);"SF' 8 SELECT PRINTER (04)" 0150 PRINT "SF' 9 CHARACTER SET"; 0160 PRINT TAB(37);"SF'10 CHARACTER SIZE & SPACING (0A,0D)" 0170 PRINT "SF'11 PEN UP (0E)"; 0180 PRINT TAB(37);"SF'12 ENCLOSED SPIRAL" 0190 PRINT "SF'13 PRINTER COPY (E7)"; 0200 PRINT TAB(37);"SF'14 ALL TESTS (2-13,17)" 0210 PRINT "SF'15 REPEAT CHARACTER"; 0220 PRINT TAB(37);"SF'17 PRINTER SELECT SWITCH" 0230 PRINT : PRINT TAB(22);"SF'31 RETURN TO SYSTEM MENU" 0240 STOP "((DEPRESS DESIRED SPECIAL FUNCTION KEY))" 0250 DEFFN'1 : GOSUB '200("POWER ON TEST") 0260 GOSUB '101 : GOTO 50 0270 DEFFN'2 : GOSUB '200("CLEAR CRT (03) TEST") 0280 GOSUB '102 : GOTO 280 0290 DEFFN'3 : GOSUB '200("PEN 1 (E1) TEST") 0300 GOSUB '103 : GOTO 300 0310 DEFFN'4 : GOSUB '200("PEN 3 (E3) TEST") 0320 GOSUB '104 : GOTO 320 0330 DEFFN'5 : GOSUB '200("PEN 2 (E2) TEST") 0340 GOSUB '105 : GOTO 340 0350 DEFFN'6 : GOSUB '200("SET HOME (E4) TEST") 0360 GOSUB '106 : GOTO 360 0370 DEFFN'7 : GOSUB '200("SHORT PLOT (E6) TEST") 0380 GOSUB '107 : GOTO 380 0390 DEFFN'8 : GOSUB '200("SELECT PRINTER (04) TEST") 0400 GOSUB '108 : GOTO 400 0410 DEFFN'9 : GOSUB '200("CHARACTER SET TEST") 0420 GOSUB '109 : GOTO 420 0430 DEFFN'10 : GOSUB '200("CHARACTER SIZE & SPACING TEST") 0440 GOSUB '110 : GOTO 440 0450 DEFFN'11 : GOSUB '200("PEN UP (0E) TEST") 0460 GOSUB '111 : GOTO 460 0470 DEFFN'12 : GOSUB '200("ENCLOSED SPIRAL") 0480 GOSUB '112 : GOTO 480 0490 DEFFN'13 : GOSUB '200("PRINTER COPY (E7) TEST") 0500 GOSUB '113 : GOTO 500 0510 DEFFN'14 : GOSUB '200("RUN ALL TESTS") 0520 INPUT "DO YOU HAVE A 2231W-3 PRINTER (Y OR N)",I$ : IF I$="N"THEN 530 : IF I$="Y"THEN 530 : PRINT HEX(0C0D) : GOTO 520 0530 GOSUB '200("CLEAR CRT (03) TEST") : GOSUB '102 : GOSUB '200("PEN 1 (E1) TEST") : GOSUB '103 : GOSUB '200("PEN 3 (E3) TEST") : GOSUB '104 : GOSUB '200("PEN 2 (E2) TEST") : GOSUB '105 0540 GOSUB '200("SET HOME (E4) TEST") : GOSUB '106 : GOSUB '200("SHORT PLOT (E6) TEST") : GOSUB '107 0550 IF I$="N"THEN 560 : GOSUB '200("SELECT PRINTER (04) TEST") : GOSUB '108 0560 GOSUB '200("CHARACTER SET TEST") : GOSUB '109 : GOSUB '200("CHARACTER SIZE & SPACING TEST") : GOSUB '110 0570 GOSUB '200("PEN UP (0E) TEST") : GOSUB '111 : GOSUB '200("ENCLOSED SPIRAL") : GOSUB '112 0580 IF I$="N"THEN 530 0590 GOSUB '200("PRINTER COPY (E7) TEST") : GOSUB '113 : GOSUB '117 : GOTO 530 0600 DEFFN'17 : GOSUB '117 : GOTO 600 0610 DEFFN'31 : LOAD T"@MENU" 0620 STOP 0630 DEFFN'15 : GOSUB '200("REPEAT CHARACTER TEST") 0640 GOSUB '115 0650 DEFFN'16 : KEYIN P$,50,50 : FOR I=1 TO 3000 : NEXT I : RETURN 0660 DEFFN'200(R$) 0670 PRINT HEX(030A0A0A0A0A) 0680 PRINT TAB(10);"* * * * * * * * * * * * * * * * * * * * * * * *" 0690 PRINT TAB(10);"* *" 0700 PRINT TAB(10);"*";TAB(35-INT(LEN(R$)/2));R$;TAB(56);"*" 0710 PRINT TAB(10);"* *" 0720 PRINT TAB(10);"* TEST IN PROGRESS *" 0730 PRINT TAB(10);"* *" 0740 PRINT TAB(10);"* * * * * * * * * * * * * * * * * * * * * * * *" 0750 PRINT HEX(0A) 0760 PRINT TAB(10);"KEY ANY KEY TO RETURN TO MENU " 0770 PRINT HEX(0D) 0780 RETURN 0790 DEFFN'101 0800 PLOT <,,HEX(E503FA06E0000A000A0F545454)> 0810 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 1"> 0820 GOSUB '16 : RETURN 0830 DEFFN'102 0840 PLOT <,,HEX(E503E003200200FA06E0000A000A)> 0850 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 2"> 0860 GOSUB '16 0870 PLOT <,,HEX(03E0000A0190E403)> 0880 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 2"> 0890 GOSUB '16 : RETURN 0900 DEFFN'103 0910 PLOT <,,HEX(E50306E10FE003200200E5E0000A000A)> 0920 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 3"> 0930 GOSUB '16 : RETURN 0940 DEFFN'104 0950 PLOT <,,HEX(E50306E30FE003200200E5E0000A000A)> 0960 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 4"> 0970 GOSUB '16 : RETURN 0980 DEFFN'105 0990 PLOT <,,HEX(03E506)>,<5,255,>,<10,,S>,<1,,C> 1000 PLOT <,,"ATBECSDTE5F">,<,,R>,<5,255,>,<,,HEX(E2)>,<20,,S>,<,,"ABCDEF"> 1010 GOSUB '16 : RETURN 1020 DEFFN'106 1030 PLOT <,,HEX(E503060FE003200200E5E003200000)> 1040 PLOT <,,HEX(0FE0FCE00200FAE001900100E4FA)> 1050 PLOT <,,HEX(0FE00000FF00)> 1060 PLOT <,,HEX(FA0EE0000A00000A)> 1070 PLOT <,,"TEST 6"> 1080 GOSUB '16 : RETURN 1090 DEFFN'107 1100 PLOT <,,HEX(E503060FE67F7FE5E0000A000A)> 1110 PLOT <,,HEX(E0000A00000A)>,<,,"TEST 7"> 1120 GOSUB '16 : RETURN 1130 DEFFN'108 1140 PLOT <,,HEX(E50306E0000A000AE0000A00000A)> 1150 PLOT <,,"TEST 8"> 1160 DIM X2$33 1170 X2$="THIS SHOULD NOT APPEAR ON THE CRT" 1180 $GIO/215(4004A000400D,P$)X2$ : SELECT PRINT 215 : PRINT HEX(06); : SELECT PRINT 005(64) 1190 GOSUB '16 : RETURN 1200 DEFFN'109 1210 PLOT <,,HEX(E50306E0000A000AE0000A00000A)> 1220 PLOT <,,"TEST 9"> 1230 GOSUB '16 1240 DIM W$40,U$40 1250 INIT(10)W$ : INIT(11)U$ 1260 FOR Q1=1TO 2 1270 PLOT <,,HEX(E50306)> 1280 PLOT <5,501,> 1290 FOR Q=1TO 25 1300 PLOT <,,HEX(E40E)> 1310 PLOT <10,,S> 1320 PLOT <,,W$>,<,,U$>,<,,R> 1330 PLOT <,-20,> 1340 ADD(W$,02) : ADD(U$,02) 1350 NEXT Q 1360 GOSUB '16 1370 NEXT Q1 1380 PLOT <,,HEX(E50306)> 1390 PLOT <5,501,> 1400 FOR Q=1TO 6 1410 PLOT <,,HEX(E40E)> 1420 PLOT <10,,S> 1430 PLOT <,,W$>,<,,U$>,<,,R> 1440 PLOT <,-20,> 1450 ADD(W$,02) : ADD(U$,02) 1460 NEXT Q 1470 PLOT <,,W$> 1480 PLOT <,,HEX(E506E0000A000AE0000A00000A)> 1490 PLOT <,,"TEST 9"> 1500 GOSUB '16 : RETURN 1510 DEFFN'110 1520 PLOT <,,HEX(E50306E0000A000AE0000A00000A)> 1530 PLOT <1,,C>,<10,,S>,<,,"TEST 10"> 1540 GOSUB '16 1550 R=5 : Z=10 1560 FOR Q=1TO 13 1570 PLOT <,,HEX(E50306)> 1580 PLOT <R,400,>,<Z,,S>,<Q,,C> 1590 PLOT <,,"SIZE"> 1600 CONVERT QTO V$,(##) 1610 PLOT <,,V$> 1620 R=R+5 : Z=Z+10 1630 GOSUB '16 1640 NEXT Q 1650 PLOT <,,HEX(E50306)>,<R,400,>,<Z,,S> 1660 Q=Q+1 : PLOT <Q,,C>,<,,"SIZE"> 1670 CONVERT QTO V$,(##) 1680 PLOT <,,R>,<100,150,>,<,,V$>,<1,,C>,<10,,S> 1690 GOSUB '16 : IF Q<>15 THEN 1650 : RETURN 1700 DEFFN'111 1710 PLOT <,,HEX(E50306E0000A000AE0000A00000A)> 1720 PLOT <,,"TEST 11">,<,,HEX(FA0EE003200200)> 1730 GOSUB '16 : RETURN 1740 DEFFN'113 1750 GOSUB '112 : PLOT <,,HEX(E5E2E0000A000AE0000A00000A)>,<,," 2">,<-10,,>,<,,HEX(E1) >,<,,"3"> 1760 PLOT <,,HEX(E7)> : FOR I=1TO 8 : GOSUB '16 : NEXT I : SELECT PRINT 215 : PRINT HEX(040C06); : SELECT PRINT 005(64) : RETURN 1770 DEFFN'112 : PLOT <,,HEX(03E506E0000A000AE0000A00000A)>,<,,"TEST 12"> 1780 GOSUB '19(0,0,800,512,1) 1790 M=51 : L1=145 : L2=0 1800 N,J,K=0 1810 H=1 1820 G1=L1+5*M 1830 G2=L2+5*M 1840 J1=4*M 1850 N,L=N+1 1860 K=K+10 1870 IF K=190THEN 1970 1880 IF H<0THEN 1910 1890 GOSUB '25(G1+J1*COS(J),G2+J1*SIN(J),G1+J1*COS(J+K),G2+J1*SIN(J+K),0,3) 1900 GOTO 1920 1910 GOSUB '25(G1+J1*COS(J+K),G2+J1*SIN(J+K),G1+J1*COS(J),G2+J1*SIN(J),0,3) 1920 H=-H 1930 IF L=1THEN 1850 1940 L=L-1 1950 J=J+10 1960 GOTO 1880 1970 PLOT <,,R>,<799,0,D>,<0,511,D>,<-799,0,D>,<0,-511,D> 1980 GOSUB '16 : RETURN 1990 DEFFN'29(A,B,D) : IF INT(D/2)=D/2THEN 2000 : A=A(1)+A : B=B(1)+B 2000 A(2)=A : B(2)=B : D=INT((D+1)/2) : ON D+1GOTO 2110,2100,2020,2010,2020 : STOP "ERROR - INVALID PLOT OPTION" 2010 IF SGN(A(2)-A9)+SGN(A8-A(2))=0THEN 2100 : IF SGN(B(2)-B9)+SGN(B8-B(2))=0THEN 2100 : GOSUB '30(A(2),B(2),2) : GOTO 2100 2020 BIN(D$(2))=15-8*SGN(SGN(B9-B(2))+1)-4*SGN(SGN(B(2)-B8)+1)-2*SGN(SGN(A9-A( 2))+1)-SGN(SGN(A(2)-A8)+1) : BIN(D$(1))=15-8*SGN(SGN(B9-B(1))+1)-4*SGN(SGN(B(1)-B8)+1)-2*SGN(SGN(A9-A( 1))+1)-SGN(SGN(A(1)-A8)+1) : IF VAL(D$(1))+VAL(D$(2))=0THEN 2080 2030 D$(3)=D$(1) : AND (D$(3),D$(2)) : IF D$(3)<>HEX(00)THEN 2100 : D1=1 : D2=2 : IF D$(1)<>HEX(00)THEN 2040 : D1=2 : D2=1 2040 IF A(D1)>=A8THEN 2050 : B(D1)=B(D1)+(B(D2)-B(D1))*(A8-A(D1))/(A(D2)-A(D1)) : A(D1)=A8 : GOTO 2020 2050 IF A(D1)<=A9THEN 2060 : B(D1)=B(D1)+(B(D2)-B(D1))*(A9-A(D1))/(A(D2)-A(D1)) : A(D1)=A9 : GOTO 2020 2060 IF B(D1)>=B8THEN 2070 : A(D1)=A(D1)+(A(D2)-A(D1))*(B8-B(D1))/(B(D2)-B(D1)) : B(D1)=B8 : GOTO 2020 2070 IF B(D1)<=B9THEN 2020 : A(D1)=A(D1)+(A(D2)-A(D1))*(B9-B(D1))/(B(D2)-B(D1)) : B(D1)=B9 : GOTO 2020 2080 IF D=2THEN 2090 : GOSUB '30(A(1),B(1),0) 2090 GOSUB '30(A(2),B(2),1*SGN(D-2)) 2100 A(1)=A : B(1)=B : RETURN 2110 GOSUB '30(0,0,3) : A0,B0,A(1),B(1)=0 : RETURN 2120 DEFFN'30(A1,B1,D4) : IF D4>2THEN 2150 : A2=INT(A1-A0) : B2=INT(B1-B0) : IF ABS(A2)+ABS(B2)=0THEN 2160 : BIN(STR(B$,3,1))=ABS(A2/256) : BIN(STR(B$,4,1))=ABS(A2)-256*VAL(STR(B$,3,1)) : IF A2>=0THEN 2130 : BOOL3(STR(B$,3,2),00) : ADDC(STR(B$,3,2),01) 2130 BIN(STR(B$,5,1))=ABS(B2/256) : BIN(STR(B$,6,1))=ABS(B2)-256*VAL(STR(B$,5,1)) : IF B2>=0THEN 2140 : BOOL3(STR(B$,5,2),00) : ADDC(STR(B$,5,2),01) 2140 BIN(STR(B$,1,1))=15-ABS(D4-1) : STR(B$,2,1)=HEX(E0) : STR(B$,7,1)=HEX(00) : PLOT <,,B$> : A0=A0+A2 : B0=B0+B2 2150 ON D4-1GOTO 2170,2180 2160 RETURN 2170 PLOT <,,D>,<,,> : RETURN 2180 PLOT <,,R> : RETURN 2190 DEFFN'25(C,C0,C1,C2,C3,C4) : GOSUB '29(C,C0,6-4*ABS(SGN(C4-1))) : IF C4=3THEN 2240 : C=C1-C : C0=C2-C0 : C5=INT(SQR(C*C+C0*C0)/C3) : C5=C5+1-SGN(C5-INT(C5/2)*2) : C=C/C5 : C0=C0/C5 : FOR C5=INT(C5/2)TO 1STEP -1 : GOSUB '29(C,C0,5+2*ABS(SGN(C4-1))) 2200 ON C4GOTO 2210,2220 : GOSUB '29(C,C0,1) : GOTO 2230 2210 GOSUB '29(C,C0,5) : GOTO 2230 2220 GOSUB '29(C/2,C0/2,5) : GOSUB '29(C/2,C0/2,1) 2230 NEXT C5 2240 GOSUB '29(C1,C2,6+2*ABS(SGN(C4-1))) : RETURN 2250 DEFFN'19(A8,B8,A9,B9,D4) : ON D4GOTO 2260,2270 : RETURN 2260 GOSUB '29(0,0,0) 2270 GOSUB '29(A8,B8,4) : RETURN 2280 DEFFN'115 : DIM S$1 2290 INPUT "TYPE THE CHARACTER YOU WANT TO SEND",S$ 2300 PLOT <,,HEX(03E5E0000A000A)>,<1,,C>,<10,,S> 2310 FOR Y=1TO 80 2320 PLOT <,,S$> 2330 NEXT Y : GOSUB '16 2340 GOTO 2300 2350 DEFFN'117 : PLOT <,,HEX(E503E0000A000A)> 2360 GOSUB '200("PRINTER SELECT TEST") : PRINT HEX(0D0A);"TURN ON - GRAPHIC CRT PRINTER SELECT SWITCH - THEN DEPRE SS ANY ALPHANUMERIC KEY TO CONTINUE" 2370 KEYIN Z$,2380,2380 : GOTO 2370 2380 SELECT PRINT 215 : PRINT "THIS IS A TEST OF THE PRINTER SELECT SWITCH.";HEX(0D0A06); : SELECT PRINT 005(80) : RETURN