Listing of file='T09A030A' on disk='vmedia/mvp-diag-2.6.2.wvd.zip'
# Sector 1924, program filename = 'T09A030A'
2000 REM T09A030A-01 10/04/78
2010 DIM B2$(16)20,B2$20,E1$1,E$(255)1,D0$1,B3$(2)1,B4$20,A$(69)60,C1$(69)60,B
9$(16)1,B0$1,B1$1,Z1$2,Z2$1,D$64,Z$64,Z9$16,V$20
: C9=69
2020 GOSUB '104
: IF A9$="N"THEN 2020
: GOTO 400
2030 DEFFN'104
: INIT(09)Z$
: Z1$=HEX(0001)
: Z2$=" "
: INIT(0A)Z9$
: STR(Z9$,1,1)=HEX(01)
: GOTO 2730
2040 DEFFN0(I)=INT(2042*(1+SIN(1.2*I)))+12
2050 DEFFN1(I)=256*VAL(STR(B$,9))+VAL(STR(B$,10))
2060 DEFFN'25
: GOSUB '202("WGAP")
: Z9=INT(25*RND(-1))
: FOR I=1TO Z9
: $GIO#1(J5$,B$)
: A$=HEX(0D)
: GOSUB '201
: NEXT I
: RETURN
2070 IF G$="N"THEN 2080
: STOP "ERROR"
2080 I1=I1+1
: X=FN0(E)
: $PACKC1$()FROMX
: BIN(C1$(1))=E
: V=VAL(STR(D$,I1))-64
: IF V*(13-V)<1THEN 2190
: INIT(00)B$,B3$(),E1$
: ON VGOSUB 2280,2310,2330,2380,2410,2430,2270,2270,2440,2450,2460,2270
: IF B4$=B2$THEN 2110
2090 FOR I=2TO 10
: IF STR(B4$,2*I-1,2)=HEX(0000)THEN 2100
: PRINT STR(Z9$,1,I-3);STR(Z$,1,2);
: HEXPRINT STR(B4$,2*I-1,2);
: PRINT " ";B2$(I)
2100 NEXT I
2101 IF A7$="N" THEN 2110
: IF V$=B4$THEN 2110
2102 GOSUB '255(" ")
: SELECT PRINT 215
: FOR I=2TO 10
: IF STR(B4$,2*I-1,2)=HEX(0000)THEN 2103
: IF STR(B4$,2*I-1,2)=STR(V$,2*I-1,2)THEN 2103
: HEXPRINT STR(B4$,2*I-1,2);
: PRINT " ";B2$(I)
2103 NEXT I
: V$=B4$
: SELECT PRINT 005(64)
2110 E=E1
: D0$=STR(D$,I1)
: IF E1$<>"E"THEN 2120
: B$=" "
: IF G$="Y"THEN 2070
2120 GOTO 2080
2130 N=FN1(E)
: IF X=NTHEN 2140
: I=9
: GOSUB 2180
2140 J=1
: I=10
: IF N<=60*C9THEN 2150
: N=60*C9
2150 IF N<60THEN 2160
: IF A$(J)<>C1$(J)THEN 2180
: J=J+1
: N=N-60
: GOTO 2150
2160 IF N>0THEN 2170
: RETURN
2170 IF STR(A$(J),1,N)<>STR(C1$(J),1,N)THEN 2180
: RETURN
2180 ADDC(STR(B4$,2*I-1,2),Z1$)
: PRINT STR(Z9$,1,I-3);">"
: E1$="E"
: RETURN
2190 IF (V+16)*(V+7)>0THEN 2220
: IF D0<>0THEN 2480
: D0=V+16
: D2=0
2200 I1=I1+1
: V=VAL(STR(D$,I1))-48
: IF V*(9-V)<0THEN 2210
: D0=10*D0+V
: GOTO 2200
2210 IF V<>-8THEN 2480
: IF POS(STR(D$,I1+1)=")")=0THEN 2480
: D1=I1
: GOTO 2080
2220 IF V<>-23THEN 2230
: IF D0<=0THEN 2480
: D0=D0-1
: IF D0=0THEN 2080
: I1=D1
: GOTO 2080
2230 IF V<>-18THEN 2240
: RETURN
2240 IF V<>-32THEN 2250
: READ D$
: PRINT HEX(010A0A);STR(D$,1)
: D0=0
: I1=1
: IF STR(D$,1,1)="-"THEN 2080
: STOP "ILLEGAL CONTINUE"
2250 IF V<>-4THEN 2260
: IF D0=0THEN 2480
: IF D2<>0THEN 2480
: D2=D0
: D3=I1
: GOTO 2080
2260 IF V<>-2THEN 2270
: IF D2<=0THEN 2480
: D2=D2-1
: IF D2=0THEN 2080
: I1=D3
: GOTO 2080
2270 STOP "ILLEGAL ATOM"
2280 GOSUB '202("BSR")
: E1=E-1
: IF E1>0THEN 2290
: E1=1
: GOSUB 2500
2290 IF E$(E1)="R"THEN 2300
: GOSUB 2490
2300 $GIO#1(J3$,B$)
: A$=HEX(1B)
: GOSUB '201
: GOTO 2530
2310 GOSUB '202("FSR")
: IF E$(E)=" "THEN 2480
: E1=E+1
: IF E$(E)="R"THEN 2320
: GOSUB 2490
2320 $GIO#1(J4$,B$)
: A$=HEX(0F)
: GOSUB '201
: GOTO 2530
2330 GOSUB '202("BSF")
: E1=1
: IF E=1THEN 2350
: FOR I=1TO E-1
: IF E$(I)<>"F"THEN 2340
: E1=I+1
2340 NEXT I
2350 IF E1>1THEN 2360
: GOSUB 2500
: GOTO 2370
2360 GOSUB 2490
2370 $GIO#1(J7$,B$)
: A$=HEX(1B)
: GOSUB '201
: B0$=STR(B$,7,1)
: AND (B0$,20)
: IF B0$=" "THEN 2530
: $GIO#1(J4$,B$)
: GOTO 2530
2380 GOSUB '202("FSF")
: I=E
2390 IF E$(I)="F"THEN 2400
: I=I+1
: IF I<256THEN 2390
: GOTO 2480
2400 E1=I+1
: GOSUB 2490
: $GIO#1(J8$,B$)
: A$=HEX(0F)
: GOSUB '201
: GOTO 2530
2410 GOSUB '202("REWIND")
: E1=1
: IF E>1THEN 2420
: GOSUB 2500
2420 $GIO#1(J2$,B$)
: A$=HEX(19)
: GOSUB '201
: B3$(1)="B"
: GOTO 2530
2430 GOSUB '202("WGAP")
: GOSUB 2510
: $GIO#1(J5$,B$)
: A$=HEX(0D)
: GOSUB '201
: GOTO 2530
2440 GOSUB '202("WEOF")
: GOSUB 2510
: E$(E)="F"
: E1=E+1
: $GIO#1(J6$,B$)
: A$=HEX(0F)
: GOSUB '201
: B3$(2)="E"
: GOTO 2530
2450 GOSUB '202("WRITE")
: GOSUB 2510
: E1=E+1
: E$(E)="R"
: $GIO#1(J$,B$)C1$()<1,X>
: A$=HEX(EF)
: Z=X
: GOSUB '201
: GOTO 2530
2460 GOSUB '202("READ")
: E1=E+1
: IF E$(E)=" "THEN 2480
: IF E$(E)="R"THEN 2470
: GOSUB 2490
2470 $GIO#1(J1$,B$)A$()
: A$=HEX(6F)
: GOSUB '201
: GOTO 2530
2480 STOP "IMPROPER SEQUENCE"
2490 B3$(2)="E"
: RETURN
2500 B3$(1)="E"
: RETURN
2510 $TRAN(E$()<E1>,Z2$)00
: IF V=12THEN 2520
2520 RETURN
2530 B0$=STR(B$,7)
: INIT(00)B9$()
: FOR I=1TO 8
: B1$=B0$
: AND (B1$,01)
: ROTATE(B0$,7)
: B9$(I)=B1$
: NEXT I
: B0$=STR(B$,8)
: FOR I=9TO 16
: B1$=B0$
: AND (B1$,01)
: ROTATE(B0$,7)
: B9$(I)=B1$
: NEXT I
: B0$=STR(B$,7)
: AND (B0$,09)
: IF B0$=HEX(00)THEN 2550
2540 I=1
: GOSUB 2180
: GOTO 2780
2550 B1$,B0$=STR(B$,8)
: AND (B0$,F9)
: IF B0$>HEX(00)THEN 2540
: B1$=B0$
: AND (B1$,04)
: IF B1$=HEX(00)THEN 2560
: PRINT "ECHO VERIFY ERROR"
: GOSUB '255("ECHO VERIFY ERROR")
: IF STR(B$,7,2)=HEX(0004)THEN 2780
: GOTO 2540
2560 IF B9$(10)=HEX(00)THEN 2570
: I=2
: GOSUB 2180
2570 IF B9$(2)<>HEX(00)THEN 2580
: IF B9$(5)=HEX(00)THEN 2590
2580 STOP "TAPE PROTECTED OR NOT READY"
2590 IF B9$(7)=HEX(00)THEN 2600
: I=3
: GOSUB 2180
2600 IF B9$(8)=HEX(00)THEN 2610
: I=4
: GOSUB 2180
2610 IF B9$(6)=HEX(00)THEN 2620
: IF B3$(1)>HEX(00)THEN 2630
: I=5
: GOSUB 2180
2620 IF B3$(1)=HEX(00)THEN 2630
: I=6
: GOSUB 2180
2630 IF B9$(3)=HEX(00)THEN 2640
: IF B3$(2)>HEX(00)THEN 2650
: I=7
: GOSUB 2180
2640 IF B3$(2)=HEX(00)THEN 2650
: I=8
: GOSUB 2180
2650 IF B9$(3)=HEX(00)THEN 2660
: RETURN
2660 IF STR(D$,I1,1)="H"THEN 2130
: IF STR(D$,I1,1)="K"THEN 2130
: RETURN
2670 X0=1
: INIT(00)B4$,V$
2680 I=X1-17*INT(X1/17)
: IF I=16THEN 2690
: BIN(C1$(1))=I+I*16
: BIN(STR(C1$(1),2))=255-I-I*16
: STR(C1$(1),3)=STR(C1$(1),1)
: FOR I=2TO C9
: C1$(I)=C1$(1)
: NEXT I
: GOTO 2700
2690 INIT(00)C1$()
2700 IF X0*(D9-X0+1)>0THEN 2710
: STOP "ILLEGAL VALUE"
2710 RESTORE X0+1
: READ I
: RESTORE I+D9+1
: READ D$
: E1,E=1
: D0,I1=0
: INIT(" ")E$(),D0$
: GOSUB '200("MIXED COMMANDS")
: GOSUB '202("REWIND")
: $GIO#1(J2$,B$)
: A$=HEX(19)
: GOSUB '201
: GOSUB '25
: GOSUB 2080
: X1=X1+1
: X0=X0+1
: IF X0<=D9THEN 2680
: RETURN
2720 RETURN
2730 B2$(1)="UNCORRECTABLE"
: B2$(4)="DATA ERROR"
: B2$(5)="BOT"
: B2$(6)="MISSING BOT"
: B2$(7)="FILE MARK"
: B2$(8)="MISSING FILE MARK"
2740 B2$(9)="COUNT ERROR"
: B2$(10)="DATA NOT EQUAL"
: INIT(00)B4$,B2$
: RESTORE
: READ D9
: GOTO 2670
2750 DATA 12
: DATA 1,2,3,4,5,6,7,8,9,10,11,12
: DATA "I2(<JFFJFJI><AC>DACKKKBAIJJFJI)."
: DATA "I2(<JFFFFFFJFFJFFJI><AC>KKKKKAI)."
: DATA "I3(<JJJFFFJI>)2(<ACACAC><KKKBB>)."
2760 DATA "I2(<JFFFFJFFJFJI><AAAAKKKC>BBBDA)."
: DATA "I2(<JFJFJFFJI><AC><KKKKB>AI)."
: DATA "I2(<JJFFFJI><AAAA><BBKK><AC>DA)."
: DATA "50(J)IAC50(K)."
: DATA "3(<JFFJJ>IF)3(AC)2(D<KKK>)."
2770 DATA "2(<JJFIAJAAAKKKA>A<JFJJFJFIACKKKKKA>)."
: DATA "2(<JJ>IFAC<KK>A)."
: DATA "I10(JJJJJI)10(AC)50(K)."
: DATA "I2(JJI)2(AC)KKKKKK."
2780 STOP "UNRECOVERABLE ERROR"
9000 PRINT HEX(03);"2200 HARDWARE DIAGNOSTICS - 2227 -------------------------
-------"
: PRINT HEX(0A0A0A0A0A0A0A0A0A0A0A0A0A0A);"DIAGNOSTIC MENU ; KEY 'RESET' AN
D SF'31";HEX(01)
: RETURN
9010 DEFFN'31
: SELECT PRINT 005(64)
: LOAD DC T"START"