image of READY prompt

Wang2200.org

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