10 START ; DIBOL DISK EXERCISER 4-1-75 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,D5 100 CNTM,D5 110 INC1,D5 120 INC2,D5 130 MXSZ,D5,00100 140 MXRC,D5 150 SKP,D3 155 CR,A1 160 ; 170 ; 180 ERCHN,D1 190 RECORD MESSAG 200 ,A6,'PASS ' 210 NPX,D4 220 ,A6,' OF ' 230 NPXX,D4 240 ; 250 RECORD ERMSG 260 ,A15,'RECORD # READ ' 270 RCNR,D5 280 ,A23,' RECORD # EXPECTED ' 290 RCNX,D5 300 ; 310 RECORD OSCR 320 IDXO,D5,00001 330 ALP,505A1 340 ; 350 RECORD ISCR 360 IDXI,D5 370 ,505A1 380 ; 390 PROC 1 400 INIT(5,TTY) 410 XMIT(5," ') 420 XMIT(5," ') 430 XMIT(5,"****** DIBOL DISK EXERCISER ******') 440 XMIT(5," ') 450 STRT2, XMIT(5,"ENTER DISK # ') 460 ACCEPT(DVAR,DKNBR) 465 ACCEPT(DVAR,CR) 470 XMIT(5," ') 480 DKN=DKNBR 490 IF(DKN.GT.7)GO TO STRT2 500 INCR DKN 510 MXRC=MXSZ 520 IF(DKN.EQ.1)GO TO STRT3 530 MXRC=600 540 STRT3, XMIT(5,"ENTER # OF PASSES ') 550 ACCEPT(DVAR,NPA) 560 XMIT(5," ') 570 NPASS=NPA 580 IF(NPASS.LE.0)GO TO STRT3 590 INC1=MXRC/2 600 NPXX=NPASS 610 XMIT(5,"# RECORDS TO SKIP ?') 620 ACCEPT(DVAR,NPA) 630 XMIT(5," ') 640 SKP=NPA 650 INCR SKP 660 ERCHN=5 670 XMIT(5,"OUTPUT ERRORS TO PRINTER,Y OR N?') 680 ACCEPT(DVAR,OPT) 690 XMIT(5," ') 700 IF(OPT.NE.'Y')GO TO STRT4 710 ERCHN=6 720 INIT(ERCHN,LPT) 730 ; 740 ; SET UP BUFFER - 2525 PATTERN 750 ; 760 STRT4, NPX=1 770 INIT(1,O,'IOBUF',DKN) 780 OPT='4' 790 CNTM= 800 LPX, INCR CNTM 810 ALP(CNTM)=OPT 820 IF(CNTM.LT.505)GO TO LPX 830 ; 840 ; WRITE ALL OF DISK 850 ; 860 CNTM=1 870 IDXO=1 880 CREX, XMIT(1,OSCR) 890 INCR CNTM 900 INCR IDXO 910 IF(CNTM.LE.MXRC)GO TO CREX 920 FINI(1) 930 ; 940 ; READ ALL OF DISK 950 ; 960 INIT(1,U,'IOBUF',DKN) 970 CNTM= 1 - SKP 980 CRXX, CNTM=CNTM + SKP 990 IF(CNTM.GT.MXRC)GO TO BG1 1000 READ(1,ISCR,CNTM) 1010 IF(IDXI.EQ.CNTM)GO TO CRXX 1020 XMIT (ERCHN," ') 1030 XMIT(ERCHN,"DISK ACCESS ERROR') 1040 RCNR=IDXI 1050 RCNX=CNTM 1060 XMIT(ERCHN,ERMSG) 1070 GO TO CRXX 1080 ; 1090 ; RE-WRITE BUFFER - 5252 PATTERN 1100 ; 1110 BG1, CNTM= 1120 OPT='I' 1130 BGG, INCR CNTM 1140 ALP(CNTM)=OPT 1150 IF(CNTM.LT.505)GO TO BGG 1160 ; 1170 ; BEGIN TEST SEQUENCE 1180 ; 1190 TSTX0, CNTM=1 1200 CNTP=MXRC 1210 TSTX, IDXO=CNTM 1220 READ(1,ISCR,CNTP) 1230 WRITE(1,OSCR,CNTM) 1240 IF(IDXI.EQ.CNTP)GO TO ERP1 1250 XMIT(ERCHN," ') 1260 XMIT(ERCHN,"DISK ACCESS ERROR') 1270 RCNR=IDXI 1280 RCNX=CNTM 1290 XMIT(ERCHN,ERMSG) 1300 ERP1, IDXO=CNTP 1310 READ(1,ISCR,CNTM) 1320 WRITE(1,OSCR,CNTP) 1330 IF(IDXI.EQ.CNTM)GO TO TSTX1 1340 XMIT(ERCHN," ') 1350 XMIT(ERCHN,"DISK ACCESS ERROR') 1360 RCNR=IDXI 1370 RCNX=CNTP 1380 XMIT(ERCHN,ERMSG) 1390 TSTX1, CNTM= CNTM + SKP 1400 CNTP= CNTP - SKP 1410 IF(CNTM.LE.INC1)GO TO TSTX 1420 XMIT(5,MESSAG) 1430 XMIT(5," ') 1440 INCR NPX 1450 IF(NPX.LE.NPASS)GO TO TSTX0 1460 ; 1470 XMIT(5,"**** EXERCISER COMPLETED ****') 1480 FINI(1) 1490 FINI(5) 1500 STOP 1510 END