Trailing-Edge
-
PDP-10 Archives
-
bb-x130a-sb
-
ii.ctl
There are 5 other files named ii.ctl in the archive. Click here to see a list.
;II.CTL %007.2 CREATE, COMPILE, AND EXECUTE II.CBL TO TEST COBOL
;DISK I/O SEQUENTIAL AND RANDOM, SIXBIT AND ASCII
!;;FOR 601/507 MONITOR
;TO RUN II.CTL TYPE
; .QUE INP:=II/OUT:2/TIME:1000,/DIS:DEL
;II IS USUALLY RUN BY MONTST.CTL IN WEEKLY MONITOR TEST
;6 MARCH 73 P WHITE MODIFIED 3 JUL 74 SM LIBMAN
;
.GOTO SKIP
IICBL::
IDENTIFICATION DIVISION.
PROGRAM-ID. IITEST.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
OBJECT-COMPUTER. PDP-10.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT 1SEG-BLOCK-SEQ-SIX-FILE ASSIGN TO DSK.
SELECT 2SEG-BLOCK-SEQ-SIX-FILE ASSIGN TO DSK.
SELECT UNBLOCKED-SEQ-SIX-FILE ASSIGN TO DEV1.
SELECT 1SEG-BLOCK-SEQ-ASC-FILE ASSIGN TO DSK.
SELECT 2SEG-BLOCK-SEQ-ASC-FILE ASSIGN TO DSK.
SELECT UNBLOCKED-SEQ-ASC-FILE ASSIGN TO DEV2.
SELECT 1SEG-BLOCK1-SEQ-ASC-FILE ASSIGN TO DSK.
SELECT 2SEG-BLOCK1-SEQ-ASC-FILE ASSIGN TO DSK.
SELECT 1SEG-BLOCK-RAN-SIX-FILE ASSIGN TO DSK;
ACCESS MODE IS RANDOM;
ACTUAL KEY IS I; FILE-LIMIT IS 99.
SELECT 2SEG-BLOCK-RAN-SIX-FILE ASSIGN TO DSK;
ACCESS MODE IS RANDOM;
ACTUAL KEY IS I; FILE-LIMIT IS 99.
SELECT 1SEG-RAN-ASC-FILE ASSIGN TO DSK;
ACCESS MODE IS RANDOM;
ACTUAL KEY IS I; FILE-LIMIT IS 99.
SELECT 2SEG-RAN-ASC-FILE ASSIGN TO DSK;
ACCESS MODE IS RANDOM;
ACTUAL KEY IS I; FILE-LIMIT IS 99.
DATA DIVISION.
FILE SECTION.
FD 1SEG-BLOCK-SEQ-ASC-FILE
BLOCK CONTAINS 8 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "1BA TMP"
DATA RECORD IS 1BSA-REC.
01 1BSA-REC DISPLAY-7.
02 1BSA-COUNT PICTURE S9(6).
02 1BSA-FILLER PICTURE X(72).
FD 2SEG-BLOCK-SEQ-ASC-FILE
BLOCK CONTAINS 16 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "2BA TMP"
DATA RECORD IS 2BSA-REC.
01 2BSA-REC DISPLAY-7.
02 2BSA-COUNT PICTURE S9(6).
02 2BSA-FILLER PICTURE X(72).
FD UNBLOCKED-SEQ-ASC-FILE
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "UBA TMP"
DATA RECORD IS UBSA-REC.
01 UBSA-REC DISPLAY-7.
02 UBSA-COUNT PICTURE S9(6).
02 UBSA-FILLER PICTURE X(72).
FD 1SEG-BLOCK-SEQ-SIX-FILE
BLOCK CONTAINS 8 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "1BS TMP"
DATA RECORD IS 1BSS-REC.
01 1BSS-REC DISPLAY-6.
02 1BSS-COUNT PICTURE S9(6).
02 1BSS-FILLER PICTURE X(72).
FD 2SEG-BLOCK-SEQ-SIX-FILE
BLOCK CONTAINS 16 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "2BS TMP"
DATA RECORD IS 2BSS-REC.
01 2BSS-REC DISPLAY-6.
02 2BSS-COUNT PICTURE S9(6).
02 2BSS-FILLER PICTURE X(72).
FD UNBLOCKED-SEQ-SIX-FILE
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "UBS TMP"
DATA RECORD IS UBSS-REC.
01 UBSS-REC DISPLAY-6.
02 UBSS-COUNT PICTURE S9(6).
02 UBSS-FILLER PICTURE X(72).
FD 1SEG-BLOCK-RAN-SIX-FILE
BLOCK CONTAINS 8 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "1BS TMP"
DATA RECORD IS 1BRS-REC.
01 1BRS-REC.
02 1BRS-COUNT PICTURE S9(6).
02 1BRS-COUNT-1 PICTURE S9(6).
02 FILLER PICTURE X(66).
FD 2SEG-BLOCK-RAN-SIX-FILE
BLOCK CONTAINS 16 RECORDS
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "2BS TMP"
DATA RECORD IS 2BRS-REC.
01 2BRS-REC.
02 2BRS-COUNT PICTURE S9(6).
02 2BRS-COUNT-1 PICTURE S9(6).
02 FILLER PICTURE X(66).
FD 1SEG-BLOCK1-SEQ-ASC-FILE
BLOCK CONTAINS 1 RECORD
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "1BA TMP"
DATA RECORD IS 1B1SA-REC.
01 1B1SA-REC PIC X(78) DISPLAY-7.
FD 2SEG-BLOCK1-SEQ-ASC-FILE
BLOCK CONTAINS 1 RECORD
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "2BA TMP"
DATA RECORD IS 2B1SA-REC.
01 2B1SA-REC PIC X(700); DISPLAY-7.
FD 1SEG-RAN-ASC-FILE
BLOCK CONTAINS 1 RECORD
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "1BA TMP"
DATA RECORD IS 1BRA-REC.
01 1BRA-REC; DISPLAY-7.
02 1BRA-COUNT PICTURE S9(6).
02 1BRA-COUNT-1 PICTURE S9(6).
02 FILLER PICTURE X(66).
FD 2SEG-RAN-ASC-FILE
BLOCK CONTAINS 1 RECORD
LABEL RECORDS ARE STANDARD
VALUE OF IDENTIFICATION IS "2BA TMP"
DATA RECORD IS 2BRA-REC.
01 2BRA-REC; DISPLAY-7.
02 2BRA-COUNT PICTURE S9(6).
02 2BRA-COUNT-1 PICTURE S9(6).
02 FILLER PICTURE X(688).
WORKING-STORAGE SECTION.
77 COUNTER PICTURE S9(6) COMPUTATIONAL.
77 HOLD-COUNT PIC S9(6) COMP.
77 CONSTANT PIC S9(5) COMP; VALUE 32771.
77 RANDOM-NUM PIC S9(10) COMP.
77 TEMP PIC S9(10) COMP.
77 I PIC S9(10) COMP.
01 MESSAGE-1 DISPLAY-7.
02 FILLER PIC X(27) VALUE "?SOME AT END, NOT OTHERS...".
02 FILLER PIC X VALUE QUOTE.
02 END-FLAGS.
03 1BSS-FLAG PIC X.
03 2BSS-FLAG PIC X.
03 UBSS-FLAG PIC X.
03 1BSA-FLAG PIC X.
03 2BSA-FLAG PIC X.
03 UBSA-FLAG PIC X.
02 FILLER PIC X VALUE QUOTE.
02 FILLER PIC X(11) VALUE " AT RECORD ".
01 RECORD-DATA.
02 RECORD-COUNT PIC S9(6).
02 DUMMY-COUNT PIC S9(6); VALUE ZERO.
02 FILLER PIC X(66); VALUE SPACES.
01 RW-TABLE.
02 SEG-TYPE OCCURS 2 TIMES.
03 RW-ENTRY OCCURS 99 TIMES; PICTURE S9(6); COMP.
PROCEDURE DIVISION.
OPEN-OUT-1.
OPEN OUTPUT 1SEG-BLOCK-SEQ-SIX-FILE,
2SEG-BLOCK-SEQ-SIX-FILE,
UNBLOCKED-SEQ-SIX-FILE,
1SEG-BLOCK-SEQ-ASC-FILE,
2SEG-BLOCK-SEQ-ASC-FILE,
UNBLOCKED-SEQ-ASC-FILE.
DISPLAY "SEQ FILES OPENED FOR OUTPUT".
PERFORM WRITE-1 VARYING COUNTER FROM 1 BY 1
UNTIL COUNTER IS > 99.
DISPLAY "SEQ FILES WRITTEN".
CLOSE 1SEG-BLOCK-SEQ-SIX-FILE,
2SEG-BLOCK-SEQ-SIX-FILE,
UNBLOCKED-SEQ-SIX-FILE,
1SEG-BLOCK-SEQ-ASC-FILE,
2SEG-BLOCK-SEQ-ASC-FILE,
UNBLOCKED-SEQ-ASC-FILE.
DISPLAY "SEQ FILES CLOSED".
OPEN-INPUT-1.
OPEN INPUT 1SEG-BLOCK-SEQ-SIX-FILE,
2SEG-BLOCK-SEQ-SIX-FILE,
UNBLOCKED-SEQ-SIX-FILE,
1SEG-BLOCK-SEQ-ASC-FILE,
2SEG-BLOCK-SEQ-ASC-FILE,
UNBLOCKED-SEQ-ASC-FILE.
DISPLAY "SEQ FILES OPENED FOR INPUT".
MOVE SPACES TO END-FLAGS.
PERFORM READ-1 THRU READ1-EXIT VARYING COUNTER FROM 1 BY 1
UNTIL COUNTER IS > 100.
IF END-FLAGS NOT = "XXXXXX"
DISPLAY "?NONE REACHED AT END"; STOP RUN.
DISPLAY "SEQ FILES READ".
CLOSE 1SEG-BLOCK-SEQ-SIX-FILE,
2SEG-BLOCK-SEQ-SIX-FILE,
UNBLOCKED-SEQ-SIX-FILE,
1SEG-BLOCK-SEQ-ASC-FILE,
2SEG-BLOCK-SEQ-ASC-FILE,
UNBLOCKED-SEQ-ASC-FILE.
DISPLAY "SEQ FILES CLOSED".
DISPLAY SPACE.
FIND-NUMBER.
DISPLAY "HOW MANY RANDOM READ-WRITES?"; ACCEPT COUNTER.
IF COUNTER IS GREATER THAN 999999 OR COUNTER NEGATIVE GO TO FIND-NUMBER.
IF COUNTER IS NOT POSITIVE STOP RUN.
MOVE COUNTER TO HOLD-COUNT.
OPEN INPUT-OUTPUT 1SEG-BLOCK-RAN-SIX-FILE, 2SEG-BLOCK-RAN-SIX-FILE.
DISPLAY "SIXBIT RAN FILES OPENED FOR INPUT-OUTPUT".
MOVE 1 TO RANDOM-NUM; MOVE LOW-VALUES TO RW-TABLE.
PERFORM READ-2 THRU READ2-EXIT VARYING I FROM 1 BY 1 UNTIL I > 99.
RANDOM-1.
MULTIPLY CONSTANT BY RANDOM-NUM.
DIVIDE RANDOM-NUM BY 99 GIVING TEMP; REMAINDER I.
SET I UP BY 1.
PERFORM READ-2 THRU READ2-EXIT.
SET COUNTER DOWN BY 1.
IF COUNTER IS GREATER THAN ZERO GO TO RANDOM-1.
DISPLAY "SIXBIT RANDOM READS AND WRITES DONE".
CLOSE 1SEG-BLOCK-RAN-SIX-FILE, 2SEG-BLOCK-RAN-SIX-FILE.
DISPLAY "ALL SIXBIT FILES CLOSED".
RANDOM-2.
OPEN OUTPUT 1SEG-BLOCK1-SEQ-ASC-FILE, 2SEG-BLOCK1-SEQ-ASC-FILE.
PERFORM WRITE-2 VARYING COUNTER FROM 1 BY 1 UNTIL COUNTER > 99.
CLOSE 1SEG-BLOCK1-SEQ-ASC-FILE, 2SEG-BLOCK1-SEQ-ASC-FILE.
DISPLAY "RANDOM ASCII FILES CREATED".
OPEN INPUT-OUTPUT 1SEG-RAN-ASC-FILE, 2SEG-RAN-ASC-FILE.
MOVE LOW-VALUES TO RW-TABLE; MOVE HOLD-COUNT TO COUNTER.
PERFORM READ-3 THRU READ3-EXIT VARYING I FROM 1 BY 1 UNTIL I > 99.
RANDOM-2A.
MULTIPLY CONSTANT BY RANDOM-NUM.
DIVIDE RANDOM-NUM BY 99 GIVING TEMP; REMAINDER I.
SET I UP BY 1.
PERFORM READ-3 THRU READ3-EXIT.
SET COUNTER DOWN BY 1.
IF COUNTER IS POSITIVE GO TO RANDOM-2A.
CLOSE 1SEG-RAN-ASC-FILE, 2SEG-RAN-ASC-FILE.
DISPLAY "ASCII RANDOM READS AND WRITES DONE".
STOP RUN.
* NOTE WRITE OUT RECORDS FOR SEQUENTIAL TESTS.
WRITE-1. MOVE COUNTER TO RECORD-COUNT.
WRITE 1BSA-REC FROM RECORD-DATA.
WRITE 2BSA-REC FROM RECORD-DATA.
WRITE UBSA-REC FROM RECORD-DATA.
WRITE 1BSS-REC FROM RECORD-DATA.
WRITE 2BSS-REC FROM RECORD-DATA.
WRITE UBSS-REC FROM RECORD-DATA.
*NOTE WRITE OUT RECORDS FOR ASCII RANDOM TESTS.
WRITE-2.
MOVE COUNTER TO RECORD-COUNT.
WRITE 1B1SA-REC FROM RECORD-DATA.
WRITE 2B1SA-REC FROM RECORD-DATA.
* NOTE READ AND CHECK RECORDS FOR SEQUENTIAL FILES.
READ-1.
READ 1SEG-BLOCK-SEQ-SIX-FILE; AT END MOVE "X" TO 1BSS-FLAG.
READ 2SEG-BLOCK-SEQ-SIX-FILE; AT END MOVE "X" TO 2BSS-FLAG.
READ UNBLOCKED-SEQ-SIX-FILE; AT END MOVE "X" TO UBSS-FLAG.
READ 1SEG-BLOCK-SEQ-ASC-FILE; AT END MOVE "X" TO 1BSA-FLAG.
READ 2SEG-BLOCK-SEQ-ASC-FILE; AT END MOVE "X" TO 2BSA-FLAG.
READ UNBLOCKED-SEQ-ASC-FILE; AT END MOVE "X" TO UBSA-FLAG.
IF END-FLAGS = ALL "X" AND COUNTER NOT = 100
DISPLAY "?ALL AT END AT RECORD NUMBER ", COUNTER; GO TO READ1-A.
IF END-FLAGS = ALL "X" GO TO READ1-EXIT.
IF END-FLAGS NOT = SPACES
DISPLAY MESSAGE-1, COUNTER;
", FLAGS = ", QUOTE, END-FLAGS, QUOTE;
GO TO READ1-A.
IF 1BSS-COUNT NOT = COUNTER DISPLAY "?1BSS-COUNT = ", 1BSS-COUNT,
", SHOULD BE ", COUNTER.
IF 2BSS-COUNT NOT = COUNTER DISPLAY "?2BSS-COUNT = ", 2BSS-COUNT,
", SHOULD BE ", COUNTER.
IF UBSS-COUNT NOT = COUNTER DISPLAY "?UBSS-COUNT = ", UBSS-COUNT,
", SHOULD BE ", COUNTER.
IF 1BSA-COUNT NOT = COUNTER DISPLAY "?1BSA-COUNT = ", 1BSA-COUNT,
", SHOULD BE ", COUNTER.
IF 2BSA-COUNT NOT = COUNTER DISPLAY "?2BSA-COUNT = ", 2BSA-COUNT,
", SHOULD BE ", COUNTER.
IF UBSA-COUNT NOT = COUNTER DISPLAY "?UBSA-COUNT = ", UBSA-COUNT,
", SHOULD BE ", COUNTER.
GO TO READ1-EXIT.
READ1-A. MOVE 100 TO COUNTER; MOVE ALL "X" TO END-FLAGS.
READ1-EXIT. EXIT.
READ-2.
READ 1SEG-BLOCK-RAN-SIX-FILE; INVALID KEY
DISPLAY "?INVALID KEY ON INPUT 1BRS = ", I; GO TO READ2-B.
IF 1BRS-COUNT NOT = I
DISPLAY "?RECORD NUMBER ", 1BRS-COUNT, ",SHOULD BE ",
I; GO TO READ2-B.
IF 1BRS-COUNT-1 NOT = RW-ENTRY (1, I)
DISPLAY "?1BRS R/W COUNT IS ", 1BRS-COUNT-1, ",SHOULD BE ",
RW-ENTRY (1, I).
ADD 1, RW-ENTRY (1, I) GIVING RW-ENTRY (1, I), 1BRS-COUNT-1.
WRITE 1BRS-REC; INVALID KEY
DISPLAY "?INVALID KEY ON OUTPUT 1BRS = ", I.
READ2-B.
READ 2SEG-BLOCK-RAN-SIX-FILE; INVALID KEY
DISPLAY "?INVALID KEY ON INPUT 2BRS = ", I; GO TO READ2-EXIT.
IF 2BRS-COUNT NOT = I
DISPLAY "?RECORD NUMBER ", 2BRS-COUNT, ",SHOULD BE ",
I; GO TO READ2-EXIT.
IF 2BRS-COUNT-1 NOT = RW-ENTRY (2, I)
DISPLAY "?2BRS R/W COUNT IS ", 2BRS-COUNT-1, ",SHOULD BE ",
RW-ENTRY (2, I).
ADD 1, RW-ENTRY (2, I) GIVING RW-ENTRY (2, I), 2BRS-COUNT-1.
WRITE 2BRS-REC; INVALID KEY
DISPLAY "?INVALID KEY ON OUTPUT 2BRS = ", I.
READ2-EXIT. EXIT.
READ-3.
READ 1SEG-RAN-ASC-FILE; INVALID KEY
DISPLAY "?INVALID KEY ON INPUT 1BRA = ", I; GO TO READ3-B.
IF 1BRA-COUNT NOT = I
DISPLAY "?RECORD NUMBER ", 1BRA-COUNT, ",SHOULD BE ",
I; GO TO READ3-B.
IF 1BRA-COUNT-1 NOT = RW-ENTRY (1, I)
DISPLAY "?1BRA R/W COUNT IS ", 1BRA-COUNT-1, ",SHOULD BE ",
RW-ENTRY (1, I).
ADD 1, RW-ENTRY (1, I) GIVING RW-ENTRY (1, I), 1BRA-COUNT-1.
WRITE 1BRA-REC; INVALID KEY
DISPLAY "?INVALID KEY ON OUTPUT 1BRA = ", I.
READ3-B.
READ 2SEG-RAN-ASC-FILE; INVALID KEY
DISPLAY "?INVALID KEY ON INPUT 2BRA = ", I; GO TO READ3-EXIT.
IF 2BRA-COUNT NOT = I
DISPLAY "?RECORD NUMBER ", 2BRA-COUNT, ",SHOULD BE ",
I; GO TO READ3-EXIT.
IF 2BRA-COUNT-1 NOT = RW-ENTRY (2, I)
DISPLAY "?2BRA R/W COUNT IS ", 2BRA-COUNT-1, ",SHOULD BE ",
RW-ENTRY (2, I).
ADD 1, RW-ENTRY (2, I) GIVING RW-ENTRY (2, I), 2BRA-COUNT-1.
WRITE 2BRA-REC; INVALID KEY
DISPLAY "?INVALID KEY ON OUTPUT 2BRA = ", I.
READ3-EXIT. EXIT.
SKIP::
.SET WATCH VERSION
;TRY TO RUN IN VM
.R SETVM
.IF (ERROR) ;IGNORE
.R TECO
=ERII.CTL
*_IICBL::
=0,.K
=EWII.CBL
=NSKIP::0L
=.,ZKPWEF
.ASSIGN DSK DEV1
.ASSIGN DSK DEV2
.EXECUTE II.CBL
.IF (ERROR) .GOTO B
*2000
.IF (ERROR) .GOTO B
.PLEASE II SUCCESSFUL
.DELETE II.LST
.GOTO A
B::
.PLEASE ERROR RUNNING II.CBL
.QUEUE II.LST/DISPOSE:DELETE
A::
%FIN:
.NOERROR
.DELETE *.TMP
.DELETE II.CBL,II.REL
.QUEUE INP:SHRH1=/MODIFY/DEPEND:-1
.QUEUE INP:SHRH2=/MODIFY/DEPEND:-1