Listing of file='WDMD020C' on disk='vmedia/701-2046C.wvd.zip'
# Sector 714, program filename = 'WDMD020C' 0010 REM . WDMD020C, 00-00 (6/28/75), 12002 0100 DIM C$(16),A$40,Q0$42,W1$1,N$8,N1$8,L$2,L$(1)2,A$(2),A1$(2,2),X(2),X1(2,2 ),H$2,H1$1,Y2$5,Y3$5 : P9=P9+1 : ON ERRORE1$,E2$GOTO 4190 : S9=1023 : Y2=2 : Y2$="DATA2" : Y3$="DATA3" : H1$=HEX(00) 0180 PRINT HEX(03);"MOUNT SCRATCH DISKS IN ALL TEST DRIVES." : PRINT "KEY EXEC TO RESUME" 0200 SELECT P2 : PRINT HEX(010A0A);" (DATA ON SCRATCH DISKS WILL BE DESTROYED)" : KEYIN Z$,250,250 : PRINT HEX(0C);TAB(64); : GOTO 200 0250 SELECT P : GOSUB 3910 : IF O8=1THEN 300 : GOSUB '100 : GOSUB 3910 0300 PRINT "DATA SAVE DA "; : E=0 : GOSUB '44(1,2,100) : GOSUB '44(2,1,200) : GOSUB '44(5,3,1000) : IF E>0THEN 370 : PRINT "OK" 0370 PRINT "DATA LOAD DA "; : E=0 : GOSUB '45(2,2,200) : GOSUB '45(1,3,100) : GOSUB '45(5,1,1000) : IF E>0THEN 440 : PRINT "OK" 0440 PRINT "DATA SAVE BA "; : E=0 : GOSUB '46(4,4,900) : GOSUB '46(5,1,400) : GOSUB '46(1,3,100) : IF E>0THEN 510 : PRINT "OK" 0510 PRINT "DATA LOAD BA "; : E=0 : GOSUB '47(1,2,100) : GOSUB '47(4,1,900) : GOSUB '47(5,3,400) : GOSUB '47(4,4,900) : IF E>0THEN 590 : PRINT "OK" 0590 PRINT "SCRATCH DISK "; : E=0 : SCRATCH DISK T#1,LS=4,END =1000 : GOSUB '40(4,4,1000,0) : GOSUB '53(3) : SCRATCH DISK T#1,LS=24,END =S9 : GOSUB '40(24,24,S9,0) : GOSUB '53(23) : IF E>0THEN 690 : PRINT "OK" 0690 PRINT "MOVE END "; : E=0 : MOVE END T#1,=1000 : GOSUB '40(24,24,1000,0) : MOVE END T#1=INT((S9+1)/12)*12+3 : GOSUB '40(24,24,S9,0) : IF E>0THEN 770 : PRINT "OK" 0770 PRINT "LIMITS "; : DATA SAVE DC OPEN T$#5,100,STR(Y3$,1,5) : DATA SAVE DC OPEN T#Y2,Y2*50,Y2$ : MOVE END T#1,=800 : GOSUB '40(24,224,800,0) : DATA SAVE DC OPEN T$#1,100,"DATA1" : GOSUB '41(1,10) : GOSUB '41(Y2,12) : GOSUB '41(5,10) : E=0 : LIMITS T#Y2,Y2$,L1,L2,X(1) 0890 GOSUB '42(L1,L2,X(1),124,223,26) : LIMITS T#5,STR(Y3$,1,5),X1(1,1),L1,L2 : GOSUB '42(X1(1,1),L1,L2,24,123,22) : IF E>0THEN 940 : PRINT "OK" 0940 PRINT "VERIFY "; : E=0 : VERIFY T#1,(0,Y2*10) : VERIFY T#4,(1000,1023) : IF E>0THEN 1000 : PRINT "OK" 1000 PRINT "SCRATCH "; : E=0 : SCRATCH T#Y2,Y2$ : GOSUB '43(Y2$) : SCRATCH T#1,"DATA1",STR(Y3$,1,5) : GOSUB '43("DATA1") : GOSUB '43(STR(Y3$,1,5)) : IF E>0THEN 1090 : PRINT "OK" 1090 PRINT "DATASAVE DC OPEN "; : E=0 : SCRATCH DISK T#1,END =800 : DATA SAVE DC OPEN T#1,100,"DATA1" : SCRATCH T#1,"DATA1" : DATA SAVE DC OPEN T#1,"DATA1","DATA1" : GOSUB '41(1,5) : DATA SAVE DC OPEN T$#Y2,100,Y2$ : GOSUB '41(Y2,6) : DATA SAVE DC OPEN T#3,100,STR(Y3$,1,5) : GOSUB '41(3,8) 1190 DATA SAVE DC OPEN T$#5,INT(S9/16)+37,"DATA5" : GOSUB '41(5,4) : DATA SAVE DC OPEN T#4,TEMP,801,900 : GOSUB '41(4,6) : GOSUB '48("DATA1",24,123,12) : GOSUB '48(Y2$,124,223,14) : GOSUB '48(STR(Y3$,1,5),224,323,18) : IF E>0THEN 1310 : PRINT "OK" 1310 PRINT "DATASAVE DC CLOSE "; : E=0 : DATA SAVE DC CLOSE#3 : GOSUB '49(3,0,0,0) : DATA SAVE DC CLOSE#Y2 : GOSUB '49(2,0,0,0) : DATA SAVE DC CLOSEALL : GOSUB '49(1,0,0,0) : GOSUB '49(5,0,0,0) : GOSUB '49(4,0,0,0) : IF E>0THEN 1470 : PRINT "OK" : FOR I=1TO 200 : NEXT I : PRINT HEX(03); 1470 PRINT "DATALOAD DC OPEN "; : E=0 : DATA LOAD DC OPEN T#1,"DATA1" : DATA LOAD DC OPEN T#Y2,Y2$ : DATA LOAD DC OPEN T#5,"DATA5" : DATA LOAD DC OPEN T#3,STR(Y3$,1,5) : DATA LOAD DC OPEN T#4,TEMP,801,900 : GOSUB '49(1,24,123,24) : GOSUB '49(2,124,223,124) : GOSUB '49(3,224,323,224) 1580 GOSUB '49(4,801,900,801) : GOSUB '49(5,324,423,324) : IF E>0THEN 1630 : PRINT "OK" 1630 PRINT "DSKIP "; : E=0 : GOSUB '50(1,1,8,32) : GOSUB '50(2,2,3,130) : GOSUB '50(3,3,0,240) : GOSUB '50(4,1,3,804) : GOSUB '50(5,3,0,332) : IF E>0THEN 1730 : PRINT "OK" 1730 PRINT "DBACKSPACE "; : E=0 : GOSUB '51(1,2,2,28) : GOSUB '51(2,1,3,127) : GOSUB '51(3,2,5,230) : GOSUB '51(4,3,0,801) : GOSUB '51(5,1,4,328) : IF E>0THEN 1830 : PRINT "OK" 1830 PRINT "DATALOAD DC "; : E=0 : GOSUB '54(3,7) : GOSUB '54(4,1) : GOSUB '54(1,5) : GOSUB '54(2,5) : GOSUB '54(5,5) : IF E>0THEN 1930 : PRINT "OK" 1930 IF O2>1THEN 1960 : IF E0=0THEN 1960 : E9$(P9)="NG" 1960 SELECT PRINT 005(64) : PRINT HEX(03);"2200 HARDWARE DIAGNOSTIC - DISK INST." : PRINT "MOUNT PROGRAM DISK" : INPUT "KEY EXEC TO RESUME",Z$ : IF E9$(P9)<>"NG"THEN 2010 : GOTO 2030 2010 IF T0=0THEN 2030 : LOAD DC T#6,"WDMD030A" 2030 LOAD DC T#6,"S/START" 2040 DEFFN'40(V1,V2,V3,V4) : DATA LOAD BA T#1,(0,L$)C$() : GOSUB '61(STR(C$(1),1,1)) : IF V1<>VAL(STR(C$(1),2,1))THEN 3860 : GOSUB '61(STR(C$(1),3,2)) : IF V4=0THEN 2110 : AND (STR(C$(1),3,1),7F) 2110 GOSUB '62(STR(C$(1),3,2)) : IF V2<>V0THEN 3860 : IF V4=0THEN 2150 : AND (STR(C$(1),5,1),7F) 2150 GOSUB '62(STR(C$(1),5,2)) : IF V3<>V0-1THEN 3860 : FOR I=1TO 10 : IF STR(C$(1),6+I,1)<>HEX(00)THEN 3860 : NEXT I : RETURN 2210 DEFFN'41(F,V1) : V1=V1*2 : FOR I=1TO V1STEP 2 : IF F<>0THEN 2270 : T=3 : GOTO 2300 2270 T=T+1 : IF T<3THEN 2300 : T=1 2300 ON TGOTO 2320,2350,2380 : GOTO 3900 2320 DATA SAVE DC #F,I,A$(),X(),A1$(),A$,X1(),Q0$,"ABC",I+1,A$(),X(),A1$(),X1( ),Q0$,"ABC",A$ : NEXT I : GOTO 2420 2350 DATA SAVE DC $#F,I,A$(),X(),A1$(),A$,X1(),Q0$,"ABC",I+1,A$(),X(),A1$(),X1 (),Q0$,"ABC",A$ : NEXT I : GOTO 2440 2380 DATA SAVE DC #F,I,A$(),X(),A1$(),X1(),A$,Q0$,"ABC",I+1,A$(),X(),A1$(),X1( ),Q0$,"ABC",A$ : NEXT I : DATA SAVE DC #F,END : RETURN 2420 DATA SAVE DC #F,END : RETURN 2440 DATA SAVE DC $#F,END : RETURN 2460 DEFFN'42(V1,V2,V3,A,B,C) : IF V1<>ATHEN 3860 : IF V2<>BTHEN 3860 : IF V3<>CTHEN 3860 : RETURN 2510 DEFFN'43(N$) : N1$=N$ : XOR (STR(N1$,2),N1$) : W1$=STR(N1$,8,1) : H1$=HEX(0000) : ADDC(H$,W1$) : ADDC(H$,W1$) : ADDC(H$,W1$) : ADD(STR(H$,1,1),STR(H$,2,1)) : H=VAL(H$)-INT(VAL(H$)/24)*24 2610 DATA LOAD BA T#1,(H,L$)C$() : MAT SEARCHC$(),=STR(N$,1,8)TO L$()STEP 8 : IF L$(1)<>HEX(0000)THEN 2680 : H=H-1 : IF H>0THEN 2610 : H=23 : GOTO 2610 2680 GOSUB '62(L$(1)) : V1=INT(V0/16) : V2=V0-V1*16 : IF STR(C$(V1+1),1,1)<>HEX(11)THEN 3860 : RETURN 2730 DEFFN'44(F,T,V1) : GOSUB 2950 : ON TGOTO 2770,2810,2860 : GOTO 3860 2770 DATA SAVE DA T#F,(V1,V0)V1,A$(),X(),A1$(),X1(),"ABC",Q0$ : IF V0<>V1+1THEN 3860 : DATA SAVE DA T#F,(V0,V0)END : RETURN 2810 DATA SAVE DA T$#F,(V1,L$)V1,A$(),X(),A1$(),X1(),"ABC",Q0$ : GOSUB '62(L$) : IF V0<>V1+1THEN 3860 : DATA SAVE DA T$#F,(V0,L$)END : RETURN 2860 DATA SAVE DA T$#1,(L$,L$)V1,A$(),X(),A1$(),X1(),"ABC",Q0$ : GOSUB '62(L$) : IF V0<>V1+1THEN 3860 : DATA SAVE DA T$#1,(L$,L$)END : RETURN 2910 DATA SAVE DA T$#1,(L$,V0)V1,A$(),X(),A1$(),X1(),"ABC",Q0$ : IF V0<>V1+1THEN 3860 : DATA SAVE DA R(L$,V0)END : RETURN 2950 V0=INT(V1/256) : BIN(STR(L$,1,1))=V0 : BIN(STR(L$,2,1))=V1-V0*256 : RETURN 2990 DEFFN'45(F,T,V1) : GOSUB 2950 : ON TGOTO 3030,3060,3090,3110 : GOTO 3900 3030 DATA LOAD DA T#F,(V1,V0)I,A$(),X(),A1$(),X1(),L1$,Q0$ 3040 IF I<>V0-1THEN 3860 : RETURN 3060 DATA LOAD DA T#F,(V1,L$)I,A$(),X(),A1$(),X1(),L1$,Q0$ 3070 GOSUB '62(L$) : GOTO 3040 3090 DATA LOAD DA T#1,(L$,L$)I,A$(),X(),A1$(),X1(),L1$,Q0$ : GOTO 3070 3110 DATA LOAD DA T#1,(L$,V0)I,A$(),X(),A1$(),X1(),L1$,Q0$ : GOTO 3040 3130 DEFFN'46(F,T,V1) : GOSUB 2950 : STR(C$(1),1,2)=L$ : ON TGOTO 3180,3210,3240,3260 : GOTO 3900 3180 DATA SAVE BA T#F,(V1,V0)C$() 3190 IF V0<>V1+1THEN 3860 : RETURN 3210 DATA SAVE BA T$#F,(V1,L$)C$() 3220 GOSUB '62(L$) : GOTO 3190 3240 DATA SAVE BA T$#1,(L$,L$)C$() : GOTO 3220 3260 DATA SAVE BA T#F,(L$,V0)C$() : GOTO 3190 3280 DEFFN'47(F,T,V1) : GOSUB 2950 : ON TGOTO 3320,3360,3400,3420 : GOTO 3900 3320 DATA LOAD BA T#F,(V1,V2)C$() 3330 GOSUB '62(STR(C$(1),1,2)) : IF V2<>V0+1THEN 3860 : RETURN 3360 DATA LOAD BA T#1,(V1,L$)C$() 3370 GOSUB '62(L$) : V2=V0 : GOTO 3330 3400 DATA LOAD BA T#F,(L$,L$)C$() : GOTO 3370 3420 DATA LOAD BA T#F,(L$,V2)C$() : GOTO 3330 3440 DEFFN'48(N$,V1,V2,V3) : LIMITS T#1,N$,A,B,C 3460 GOSUB '42(V1,V2,V3,A,B,C) : RETURN 3480 DEFFN'49(F,V1,V2,V3) : LIMITS T#F,A,B,C : GOTO 3460 3510 DEFFN'50(F,T,V1,M) : ON TGOTO 3540,3560,3580 : GOTO 3900 3540 DSKIP #F,V1S : GOTO 3600 3560 DSKIP #F,V1 : GOTO 3600 3580 DSKIP #F,END : GOTO 3630 3600 LIMITS T#F,A,B,I : IF I<>MTHEN 3860 : RETURN 3630 LIMITS T#F,A,B,C : IF M<>CTHEN 3860 : RETURN 3660 DEFFN'51(F,T,V1,M) : ON TGOTO 3690,3710,3730 : GOTO 3900 3690 DBACKSPACE #F,V1S : GOTO 3600 3710 DBACKSPACE #F,V1 : GOTO 3600 3730 DBACKSPACE #F,BEG : GOTO 3600 3750 DEFFN'61(W1$) : AND (W1$,80) : IF V4=0THEN 3800 : IF W1$<>HEX(80)THEN 3860 : RETURN 3800 IF W1$>HEX(00)THEN 3860 : RETURN 3820 DEFFN'62(L$) : V0=VAL(STR(L$,1,1))*256+VAL(STR(L$,2,1)) : RETURN 3850 IF E>OTHEN 3890 3860 PRINT "ERROR" : E=E+1 : E0=E0+1 3890 RETURN 3900 STOP "SYS ERROR" 3910 PRINT HEX(0A0A); : PRINT HEX(03);"2200 HARDWARE DIAGNOSTIC - DISK INSTRUCTION" : RETURN 3940 DEFFN'53(V1) : X=17 : V0=0 3970 DATA LOAD BA T#1,(V0,V0)C$() : MAT SEARCHC$()<X,256-X+1>,<>H1$TO L$() : X=1 : IF L$(1)>HEX(0000)THEN 3860 : IF V0<=V1THEN 3970 : RETURN 4030 DEFFN'54(F,V1) : DATA LOAD DC #F,I,A$(),X(),A1$() : IF I<>V1THEN 3860 : RETURN 4070 DEFFN'100 : ON O8GOTO 4100,4120,4140 : STOP "SYSTEM ERROR" 4100 SELECT PRINT 005 : RETURN 4120 SELECT PRINT 215 : RETURN 4140 SELECT PRINT 211 : RETURN 4160 DEFFN'15 : COM CLEAR : LOAD DC T#6,"START" 4190 E9$(P9)="NG" : PRINT "ERROR ";E1$;" AT STMT #";E2$ : GOTO 1960