tinycobol/test_suite/sortio_tests/srtio01.cob

79 lines
1.9 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. SRTIO01.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT GOZOUT ASSIGN TO "./input.dat"
ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD GOZOUT
LABEL RECORD IS STANDARD.
01 GOZOUT-REC.
03 X-IND PIC 9(03).
03 DESCRIPTION PIC X(20).
03 N-KEY2 PIC 9(2).
03 DESC2 PIC X(4).
WORKING-STORAGE SECTION.
01 FS PIC 9(02).
01 WS-COUNTERS.
05 WS-TEST-COUNTER PIC 9(4).
PROCEDURE DIVISION.
0000-PROGRAM-ENTRY.
MOVE 0 TO WS-TEST-COUNTER.
PERFORM B000-INITIALIZE THRU B000-EXIT.
PERFORM C000-MAIN-LOGIC THRU C000-EXIT.
PERFORM D000-CLEANUP THRU D000-EXIT.
PERFORM E000-SUMMARY THRU E000-EXIT.
STOP RUN.
0000-EXIT.
EXIT.
B000-INITIALIZE.
OPEN OUTPUT GOZOUT.
ADD 1 TO WS-TEST-COUNTER.
DISPLAY "SR01:(" FS "):(00):"
"SEQUENTIAL I/O OPEN STATUS".
B000-EXIT.
EXIT.
C000-MAIN-LOGIC.
MOVE SPACES TO GOZOUT-REC.
MOVE ALL "A" TO DESCRIPTION.
MOVE ALL "D" TO DESC2.
MOVE 0 TO X-IND N-KEY2.
PERFORM F000-WRITE-REC 20 TIMES.
C000-EXIT.
EXIT.
D000-CLEANUP.
CLOSE GOZOUT.
DISPLAY "SR03:(" FS "):(00):"
"SEQUENTIAL I/O CLOSE STATUS".
ADD 1 TO WS-TEST-COUNTER.
D000-EXIT.
EXIT.
E000-SUMMARY.
DISPLAY "SR04:(" WS-TEST-COUNTER "):(0022):"
"TEST COUNT VALIDATION".
E000-EXIT.
EXIT.
F000-WRITE-REC.
ADD 1 TO X-IND.
IF X-IND > 10
COMPUTE N-KEY2 = 21 - X-IND
ELSE
COMPUTE N-KEY2 = 11 - X-IND
END-IF
IF N-KEY2 = 7
MOVE 8 TO N-KEY2
END-IF
WRITE GOZOUT-REC.
ADD 1 TO WS-TEST-COUNTER.