10 START ; DIBOL DISK EXERCISER 8-28-73 20 BLOCK ; WORK AREA 30 NPA,A4 40 OPT,A1 50 DVAR,D2,13 60 DKNBR,A1 70 DKN,D1 80 NPASS,D4 90 CNTP,D4 100 CNTM,D4 110 MXSZ,D4,6000 120 MXRC,D4 130 INC1,D4 140 INC2,D4 150 ; 160 RECORD TSTMSG 170 TSTN,D4 180 ,A20,' RECORDS PROCESSED' 190 ; 200 RECORD MESSAG 210 ,A6,'PASS ' 220 NPX,D4 230 ,A6,' OF ' 240 NPXX,D4 250 ; 260 RECORD ERMSG 270 ,A15,'RECORD # READ ' 280 RCNR,D4 290 ,A23,' RECORD # EXPECTED ' 300 RCNX,D4 310 ; 320 RECORD OSCR 330 IDXO,D4,0001 340 ALP,506A1 350 ; 360 RECORD ISCR 370 IDXI,D4 380 ,506A1 390 ; 400 PROC 7 410 INIT(5,TTY) 420 STRT1, XMIT(5," ') 430 XMIT(5,"EXERCISE DISK ? ') 440 ACCEPT(DVAR,OPT) 450 XMIT(5," ') 460 IF(OPT.NE.'Y')GO TO ENDTL 470 STRT2, XMIT(5,"ENTER DISK # ') 480 ACCEPT(DVAR,DKNBR) 490 XMIT(5," ') 500 DKN=DKNBR 510 IF(DKN.GT.3)GO TO STRT2 520 INCR DKN 530 MXRC=MXSZ 540 IF(DKN.EQ.1)GO TO STRT3 550 MXRC=6400 560 STRT3, XMIT(5,"ENTER # OF PASSES ') 570 ACCEPT(DVAR,NPA) 580 XMIT(5," ') 590 NPASS=NPA 600 IF(NPASS.LE.0)GO TO STRT3 610 INC1=MXRC/2 620 NPXX=NPASS 630 ; 640 ; SET UP BUFFER - 2525 PATTERN 650 ; 660 NPX= 670 LPXX, INCR NPX 680 IF(NPX.LE.NPASS)GO TO LPX1 690 DISPLAY(0,0,25) 700 GO TO STRT1 710 LPX1, INIT(1,O,'IOBUF',DKN) 720 OPT='4' 730 CNTM= 740 LPX, INCR CNTM 750 ALP(CNTM)=OPT 760 IF(CNTM.LT.506)GO TO LPX 770 ; 780 ; WRITE ALL OF DISK 790 ; 800 CNTM=1 810 IDXO=1 820 CREX, XMIT(1,OSCR) 830 INCR CNTM 840 INCR IDXO 850 IF(CNTM.LE.MXRC)GO TO CREX 860 FINI(1) 870 ; 880 ; READ ALL OF DISK 890 ; 900 INIT(1,U,'IOBUF',DKN) 910 CNTM= 920 CRXX, INCR CNTM 930 IF(CNTM.GT.MXRC)GO TO BG1 940 READ(1,ISCR,CNTM) 950 IF(IDXI.EQ.CNTM)GO TO CRXX 960 XMIT(5," ') 970 XMIT(5,"DISK ACCESS ERROR') 980 RCNR=IDXI 990 RCNX=CNTM 1000 XMIT(5,ERMSG) 1010 GO TO CRXX 1020 ; 1030 ; RE-WRITE BUFFER - 5252 PATTERN 1040 ; 1050 BG1, CNTM= 1060 OPT='I' 1070 BGG, INCR CNTM 1080 ALP(CNTM)=OPT 1090 IF(CNTM.LT.506)GO TO BGG 1100 ; 1110 ; BEGIN TEST SEQUENCE 1120 ; 1130 CNTM=1 1140 CNTP=MXRC 1150 INC2= 1160 TSTN= 1170 TSTX, IDXO=CNTM 1180 WRITE(1,OSCR,CNTM) 1190 READ(1,ISCR,CNTM) 1200 IF(IDXI.EQ.CNTM)GO TO ERP1 1210 XMIT(5," ') 1220 XMIT(5,"DISK ACCESS ERROR') 1230 RCNR=IDXI 1240 RCNX=CNTM 1250 XMIT(5,ERMSG) 1260 ERP1, IDXO=CNTP 1270 WRITE(1,OSCR,CNTP) 1280 READ(1,ISCR,CNTP) 1290 IF(IDXI.EQ.CNTP)GO TO ERP2 1300 XMIT(5," ') 1310 XMIT(5,"DISK ACCESS ERROR') 1320 RCNR=IDXI 1330 RCNX=CNTP 1340 XMIT(5,ERMSG) 1350 ERP2, INCR INC2 1360 IF(INC2.LT.250)GO TO TSTX1 1370 TSTN=TSTN+INC2+INC2 1380 INC2= 1390 XMIT(5,TSTMSG) ; DISPLAY # RECORDS PROCESSED 1400 TSTX1, INCR CNTM 1410 CNTP=CNTP-1 1420 IF(CNTM.LE.INC1)GO TO TSTX 1430 FINI(1) 1440 XMIT(5,MESSAG) 1450 XMIT(5," ') 1460 GO TO LPXX 1470 ; 1480 ENDTL, FINI(5) 1490 STOP 1500 END