image of READY prompt

Wang2200.org

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