Listing of file='2232' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'
# Sector 3403, program filename = '2232'
0010 DIM Q6$64
: SELECT PLOT 413
: GOSUB '14
: STOP #
0110 DEFFN'14
: GOSUB 3000
: GOSUB '248(4,0,0)
: PRINT "-------------------------------------------------"
: PRINT " <2232 FLAT BED PLOTTER MUST BE SET AT 413>"
: PRINT
0130 %## ###########################
0150 PRINTUSING 130,0,"DIAGNOSTIC EXERCISE";
: PRINTUSING 130,1,"RESET"
: PRINTUSING 130,2,"MOVE X,Y";
: PRINTUSING 130,3,"PLOT POINT"
: PRINTUSING 130,4,"CURRENT POSITION";
: PRINTUSING 130,5,"CIRCLE PLOT"
: PRINTUSING 130,6,"RADIAL SQUARE";
0220 PRINTUSING 130,7,"SQUARE WITH HASH MARKS"
0230 PRINTUSING 130,8,"RADIUS FUNCTION";
: PRINTUSING 130,9,"SQUARE/DIAGONAL CALIBRATION"
: GOSUB '248(2,0,0)
: PRINT " KEY FUNCTION KEY NUMBER (0,1,..9,31), TO RESUME"
0262 GOSUB '248(12,0,0)
: RETURN
0270 DEFFN'0
: GOSUB 3000
0272 GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'DIAGNOSTIC EXERCISE'"
: GOSUB '248(4,0,0)
: PRINT ".SETTING SCALE"
: PRINT " X-AXIS"
: FOR I=1TO 10
: PLOT <100,,D>,<,10,D>,<,-10,D>
: NEXT I
: PRINT " DIAGONAL"
: PLOT <-999,999,D>
0340 PRINT " Y-AXIS"
: FOR I=1TO 10
: PLOT <,-100,D>,<10,,D>,<-10,,D>
: NEXT I
0380 PRINT ".PLOTTING DIAGONAL"
: PLOT <999,999,D>
: PRINT ".RETRACING DIAGONAL USING REPETITION"
: PLOT 3<-111,-111,D>,<-10,,D>,<10,,D>,<,-10,D>,<,10,D>
0420 PLOT 3<-111,-111,D>,<,10,D>,<,-10,D>,<10,,D>,<-10,,D>
: PLOT 3<-111,-111,D>
: PRINT ".DRAWING SQUARE"
0450 PLOT <333,333,U>,<333,,D>,<,333,D>,<-333,,D>,<,-333,D>,<-333,-333,D>
: PRINT ".RETRACING DIAGONAL"
: FOR I=0TO 900STEP 100
: PLOT <I,I,U>,<100,100,D>,<-100,-100,U>,<-I,-I,U>
: NEXT I
: L=1
: GOSUB 1060
: GOSUB 538
: GOSUB '14
0515 RETURN
0520 DEFFN'1
: GOSUB 3000
: GOSUB '248(2,5,0)
0528 PRINT "EXECTING THE 'RESET'"
: PLOT <,,R>
: X9,Y9=0
: FOR I=1TO 500
: NEXT I
: GOSUB '14
: RETURN
0530 DEFFN'5
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'CIRCLE PLOT'"
: SELECT R
: GOSUB 540
: GOSUB '14
: RETURN
0538 PRINT ".CIRCLE PLOT"
: SELECT R
0540 D=.05
: R=199
: X0=R+500
: Y0=500
: PLOT <X0,Y0,>
: FOR T=0TO 2*#PI+DSTEP D
: X=500+R*COS(T)
: Y=500+R*SIN(T)
0590 X1=X-X0
: Y1=Y-Y0
: IF X1<>0THEN 610
: IF Y1=0THEN 680
0610 IF X1=0THEN 650
: IF Y1=0THEN 670
: PLOT <(X1*.5/ABS(X1))+X1,(Y1*.5/ABS(Y1))+Y1,D>
: GOTO 680
0650 PLOT <,(Y1*.5/ABS(Y1))+Y1,D>
: GOTO 680
0670 PLOT <(X1*.5/ABS(X1))+X1,,D>
0680 X0=X
: Y0=Y
: NEXT T
: RETURN
0710 DEFFN'2
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING 'MOVE X,Y'"
0718 GOSUB '248(4,0,0)
: X7=17
: PRINT " MAX.X=+-";X7
: Y7=12
: PRINT " MAX.Y=+-";Y7
: L=999
: GOSUB 760
: L=ABS(L)
: GOSUB 840
: FOR I=1TO 800
: NEXT I
: GOSUB '14
: RETURN
0750 PRINT " ILLEGAL MOVE ON X AXIS"
0760 X8=X7-X9
: PRINT " .MOVE X <=";X8;
: X=0
: INPUT X
: X=INT(X)
: IF X=0THEN 820
: X8=X9+X
: IF X8<0THEN 750
: IF X8>X7THEN 750
: X9=X8
: IF X>0THEN 810
: L=-L
0810 X=ABS(X)
: FOR X1=1TO X
: PLOT <L,,U>
: NEXT X1
0820 RETURN
0830 PRINT " ILLEGAL MOVE ON Y AXIS"
0840 Y8=Y7-Y9
: PRINT " .MOVE Y <=";Y8;
: Y=0
: INPUT Y
: Y=INT(Y)
: IF Y=0THEN 900
: Y8=Y9+Y
: IF Y8<0THEN 830
: IF Y8>Y7THEN 830
: Y9=Y8
: IF Y>0THEN 890
: L=-L
0890 Y=ABS(Y)
: FOR Y1=1TO Y
: PLOT <,L,U>
: NEXT Y1
0900 RETURN
0910 DEFFN'3
: GOSUB 3000
: GOSUB '248(2,5,0)
0915 PRINT "EXECUTING THE 'POINT PLOT'"
: GOSUB '248(4,0,0)
: PRINT ".PLOT +";
: PLOT <P/2,,D>,<-P,,D>,<P/2,,D>,<,P/2,D>,<,-P,D>,<,P/2,D>
: FOR I=1TO 400
: NEXT I
: GOSUB '14
: RETURN
0940 PLOT <X,Y,D>,<-X,-Y,D>
: RETURN
0950 DEFFN'4
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'CURRENT POSITION'"
: GOSUB '248(4,0,0)
0954 PRINT ".CURRENT X = ";X9
: PRINT ".CURRENT Y = ";Y9
: FOR I=1TO 800
: NEXT I
: GOSUB '14
: RETURN
0960 DEFFN'6
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'RADIAL SQUARE'"
: GOSUB '248(4,0,0)
: L=999
: INPUT ".LENGTH <999",L
: S=L/5
: Y=-L
: FOR X=-LTO LSTEP S
: GOSUB 940
: NEXT X
: X=L
: FOR Y=-LTO LSTEP S
: GOSUB 940
: NEXT Y
1010 Y=L
: FOR X=LTO -LSTEP -S
: GOSUB 940
: NEXT X
1020 X=-L
: FOR Y=LTO -LSTEP -S
: GOSUB 940
: NEXT Y
: GOSUB '14
: RETURN
1040 DEFFN'7
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'SQUARE-HASH'"
: GOSUB '248(4,0,0)
: L=1
: INPUT ".LENGTH 1 TO 12",L
1060 FOR X=1TO L
: PLOT <,999,D>,<10,,D>,<-10,,D>
: NEXT X
: FOR X=1TO L
: PLOT <999,,D>,<,-10,D>,<,10,D>
: NEXT X
1080 FOR X=1TO L
: PLOT <,-999,D>,<-10,,D>,<10,,D>
: NEXT X
: FOR X=1TO L
: PLOT <-999,,D>,<,10,D>,<,-10,D>
: NEXT X
: GOSUB '14
: RETURN
1110 DEFFN'8
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'RADIUS FUNCTION'"
: GOSUB '248(4,0,0)
: L=999
: INPUT ".LENGTH <999",L
: D=6
: INPUT ".DEGREES",D
: SELECT D
: FOR A=0TO 360STEP D
: X=L*COS(A)
: Y=L*SIN(A)
: GOSUB 940
: NEXT A
1180 GOSUB '14
: RETURN
1190 DEFFN'9
: GOSUB 3000
: GOSUB '248(2,5,0)
: PRINT "EXECUTING THE 'SQUARE/DIAGNONALS'";
: PLOT <,,R>
: PLOT 2<999,999,U>
: PLOT 10<999,,D>
: PLOT <,-999,U>
: PLOT <-999,,U>
: PLOT 10<,999,D>
: PLOT <999,,U>
: PLOT <,-999,U>
: PLOT 10<-999,,D>
1290 PLOT <,999,U>
: PLOT <999,,U>
: PLOT 10<,-999,D>
: PLOT <-999,,U>
: PLOT 10<999,999,D>
1340 PLOT 10<-999,,U>
: PLOT 10<999,-999,D>
: GOSUB '14
: RETURN
1370 GOTO 10
2000 DEFFN'31
: LOAD DC F"START"
3000 PRINT HEX(03);"2200 HARDWARE DIAGNOSTICS - 2232 FLAT BED PLOTTER --------
------"
: PRINT HEX(0A0A0A0A0A0A0A0A0A0A0A0A0A0A);"DIAGNOSTIC MENU ; KEY 'RESET' AN
D SF'31";HEX(01)
: RETURN
9030 Q6=3
: GOTO 9220
9040 DEFFN'254
: GOSUB '243("KEY RETURN(EXEC) TO RESUME",0)
: W4$=Q6$
: GOSUB '248(0,0,4)
: Q6$=W4$
: RETURN
9060 DEFFN'242(W0,Q6$)
: IF W0<=0THEN 9260
: IF W0=1THEN 9070
: STR(Q6$,2)=STR(Q6$,1,W0-1)
9070 PRINT Q6$;
: RETURN
9080 DEFFN'243(Q6$,Q0)
: GOSUB 9170
9090 SELECT CO 205
: Q6$=" "
: INPUT Q6$
: IF Q0=0THEN 9200
: IF LEN(Q6$)<=Q0THEN 9200
: GOSUB 9160
9100 DEFFN'244(Q0)
: GOSUB 9190
: GOSUB 9180
: GOTO 9090
9110 DEFFN'245(Q6$,Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 9170
9120 GOSUB '242(ABS(Q2)+2,HEX(09))
: PRINT "/"
: GOSUB 9190
: SELECT CO 205
: Q9,W0=-1E-99
: INPUT Q9
: IF W0=Q9THEN 9130
: IF Q9>=0THEN 9150
: IF Q2<=0THEN 9150
9130 GOSUB 9160
9140 DEFFN'246(Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 9190
: GOSUB 9180
: GOTO 9120
9150 IF ABS(Q9)>=10^ABS(Q2)THEN 9130
: W0=ABS(Q9*10^Q3)
: IF INT(W0)<>W0THEN 9130
: GOTO 9030
9160 GOSUB 9030
: PRINT "RE-ENTER"
: RETURN
9170 GOSUB 9260
: PRINT HEX(010A);STR(Q6$,1);
9180 GOSUB 9260
: GOSUB '242(Q0+2,"-")
: PRINT TAB(64)
9190 PRINT HEX(010A0A)
: RETURN
9200 PRINT HEX(0A);TAB(64)
: GOTO 9260
9210 Q6=0
9220 Q7=0
: Q8=1
9230 DEFFN'248(Q6,Q7,Q8)
: GOSUB 9260
: IF Q8<1THEN 9240
: GOSUB 9240
: SELECT PRINT 205
: Q6$=" "
: PRINT STR(Q6$,Q7+1)
: IF Q8<2THEN 9240
: FOR W0=2TO Q8
: PRINT HEX(0A);STR(Q6$,1)
: NEXT W0
9240 PRINT HEX(01)
9250 GOSUB '242(Q7,HEX(09))
: GOSUB '242(Q6,HEX(0A))
9260 SELECT PRINT 005(64),CO 005
: RETURN