Listing of file='WDKD020A' on disk='vmedia/701-2046C.wvd.zip'
# Sector 244, program filename = 'WDKD020A'
0010 REM .WDKD020A
0100 DIM D$(4)64,D1$(4)64,D2$(4)64,D3$(4)64,W$8,W1$1,L$(1)2,B$(153),D1$3,C$(4)
64,P2$1,E1$2,E2$4
: GOTO 1030
0120 L=L+1
0130 O=INT(RND(1)*9)+1
0140 A=INT(RND(1)*A1)
: IF A<A0THEN 140
: P=INT(RND(1)*9)+1
: IF O<=3THEN 580
0180 DATA LOAD BA T#1,(A,L$)D$()
: P=VAL(STR(D$(4),64))
: A2=VAL(STR(D$(4),62))*256+VAL(STR(D$(4),63))
: IF A<>A2THEN 1890
: L$(1)=HEX(FFFF)
: MAT SEARCHD$()<1,252>,<>STR(P$,P,1)TO L$()
: IF L$(1)>HEX(0000)THEN 1910
: U0=INT(A/128)
: U1=A-U0*128
0270 U2=INT(U1/8)
: U3=U1-U2*8
: W1$=STR(W$,U3+1,1)
: XOR (W1$,STR(B$(U0+1),U2+1,1))
: AND (W1$,STR(W$,U3+1,1))
: IF W1$>HEX(00)THEN 420
: PRINT HEX(010A0A0A0A0A0A);
: PRINTUSING 1850,L
: PRINTUSING 1860,(L/A6)*100
: PRINTUSING 1870,A
: PRINT "PATTERN = ";
: HEXPRINT STR(P$,P,1)
0390 XOR (STR(B$(U0+1),U2+1,1),STR(W$,U3+1,1))
: IF L<A6THEN 120
: RETURN
0420 L$(1)=HEX(FFFF)
: MAT SEARCHB$(),<>P2$TO L$()
: V=VAL(STR(L$(1),1,1))*256+VAL(STR(L$(1),2,1))-1
: B=INT(V/16)
: B1=V-16*B
: FOR I=1TO 8
: W1$=STR(W$,I,1)
: AND (W1$,STR(B$(B+1),B1+1,1))
: IF W1$=HEX(00)THEN 540
: T=I-1
: I=8
: GOTO 550
0540 T=7
0550 NEXT I
: A=V*8+T
: GOTO 180
0580 A9=INT(A/256)
: A8=A-A9*256
: INIT(STR(P$,P,1))C$()
: BIN(STR(C$(4),62))=A9
: BIN(STR(C$(4),63))=A8
: BIN(STR(C$(4),64))=P
: DATA SAVE BA T#1,(A,L$)C$()
: PRINT HEX(010A0A0A0A0A0A);
: FOR I=1TO 4
: PRINT HEX(09090909090909090909);
: NEXT I
: PRINTUSING 1880,A
: FOR I=1TO 4
0710 PRINT HEX(09090909090909090909);
: NEXT I
: PRINT "PATTERN = ";
: HEXPRINT STR(P$,P,1)
: GOTO 130
0760 P=INT(RND(1)*29)+1
: INIT(STR(P$,P,1))D$()
: A9=INT(A5/256)
: A8=A5-A9*256
: BIN(STR(D$(4),62))=A9
: BIN(STR(D$(4),63))=A8
: BIN(STR(D$(4),64))=P
: RETURN
0840 A5=A0
: GOSUB 760
: MAT COPY D$()TO D1$()
: A5=A0+1
: GOSUB 760
: MAT COPY D$()TO D2$()
: A5=A0+2
: GOSUB 760
: MAT COPY D$()TO D3$()
: A5=A0+3
: GOSUB 760
: PRINT "WRITE DATA ON SECTORS ";A0;" - ";A0+3
: PRINT HEX(0C);
: DATA SAVE BA T$#1,(A0,A0)D1$()
0980 DATA SAVE BA T$#1,(A0,A0)D2$()
: DATA SAVE BA T$#1,(A0,A0)D3$()
: DATA SAVE BA T$#1,(A0,A0)D$()
: IF A0<A1THEN 840
: RETURN
1030 SELECT PRINT 005
: PRINT HEX(03)
: PRINT "MOUNT SCRATCH DISKS IN ALL TEST DRIVES"
: PRINT "KEY (EXEC) TO RESUME";
: INPUT Z
: P9=P9+1
1100 A0=0
: W$=HEX(0102040810204080)
: P2$=HEX(00)
: ON O1GOTO 1150,1180,1210,1240
: GOTO 1370
1150 A1=2399
: GOTO 1260
1180 A1=4799
: GOTO 1260
1210 A1=9791
: GOTO 1260
1240 A1=19583
1260 A6=A1-A0+1
: IF Z1(1)<4THEN 1264
: B3=Z1(1)-3
: GOTO 1270
1264 B3=Z1(1)
1270 IF Z1=2THEN 1290
: IF Z1(1)>2THEN 1340
1290 GOSUB 1960
: GOSUB 1680
: IF Z1=1THEN 1370
1340 GOSUB 2010
: GOSUB 1680
1370 A0=0
: A1=1023
: A6=1024
: B3=Z2(1)
1490 IF T1=0THEN 1530
: GOSUB 1960
: GOSUB 1680
1530 IF T2=0THEN 1570
: GOSUB 2010
: GOSUB 1680
1570 IF T3=0THEN 1610
: GOSUB 2060
: GOSUB 1680
1610 SELECT PRINT 005(64)
: PRINT HEX(01);"MOUNT THE PROGRAM DISK, KEY (EXEC) TO RESUME"
: INPUT Z
1620 COM CLEAR Z1
: LOAD DC T#6,"S/START"
1640 ON ERRORE1$,E2$GOTO 1650
1650 E9$(P9)="NG"
: PRINT HEX(0A0A);"ERROR #";E1$,"AT STMT #";E2$
: GOTO 1610
1680 L,A0=0
: A6=A1-A0+1
: GOSUB 1820
: PRINT HEX(0A0A)
: GOSUB 840
: INIT(FF)B$()
: A0,L=0
: IF LEN(D$)>6THEN 1790
: IF O1=0THEN 1790
: IF O3=2THEN 1790
: A6=500
1790 GOSUB 1820
: GOSUB 120
: RETURN
1820 PRINT HEX(03);"2200 HARDWARE DIAGNOSTIC - DISK ";D1$
: PRINT HEX(0A);
: RETURN
1850 % SECTOR READ = #####
1860 % PERCENT = ##.## %
1870 % READ SECTOR #####
1880 %WRITE ON SECTOR #####
1890 PRINT "ERROR ON SECTOR # ";A
: GOTO 1650
1910 PRINT "DATA ERROR ON SECTOR # ";A
: GOTO 1650
1930 DEFFN'15
: COM CLEAR
: LOAD DC T#6,"START"
1960 ON B3GOTO 1970,1990
1970 SELECT #1310
: D1$="310"
: RETURN
1990 SELECT #1320
: D1$="320"
: RETURN
2010 ON B3GOTO 2020,2040
2020 SELECT #1B10
: D1$="B10"
: RETURN
2040 SELECT #1B20
: D1$="B20"
: RETURN
2060 ON B3GOTO 2070,2090
2070 SELECT #1350
: D1$="350"
: RETURN
2090 SELECT #1360
: D1$="360"
: RETURN