tinycobol/test.code/t18/test18.cob

84 lines
2.0 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. TEST18.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SPECIAL-NAMES.
DECIMAL-POINT IS COMMA.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ARQ ASSIGN TO "Raw.dat"
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS P-IND
ALTERNATE RECORD KEY IS KEY-1
ALTERNATE RECORD KEY IS KEY-2
FILE STATUS IS FS.
DATA DIVISION.
FILE SECTION.
FD ARQ
LABEL RECORD IS STANDARD.
01 REG-ARQ.
03 P-IND PIC 9(03).
03 DESCRIPTION PIC X(60) VALUE "AAAAAAAAAAAAAAA".
03 KEY-1 PIC 9(04).
03 KEY-2 PIC 9(04).
WORKING-STORAGE SECTION.
01 FS PIC 9(02).
01 W-COUNTER PIC 9(15).
01 REM PIC 9(5).
01 W01-SWITCHES PIC X(03).
88 W01-END VALUE "YES".
88 W01-MORE VALUE "NO".
PROCEDURE DIVISION.
MAIN SECTION.
OPEN OUTPUT ARQ.
MOVE ZERO TO W-COUNTER.
PERFORM WRITE-IT 998 TIMES.
CLOSE ARQ.
OPEN I-O ARQ.
MOVE "NO" TO W01-SWITCHES.
PERFORM READ-IT UNTIL W01-END.
CLOSE ARQ.
STOP RUN.
WRITE-IT.
ADD 1 TO W-COUNTER.
MOVE W-COUNTER TO KEY-1.
ADD 1000 TO KEY-1.
MOVE 1000 TO KEY-2.
SUBTRACT W-COUNTER FROM KEY-2.
MOVE W-COUNTER TO P-IND.
WRITE REG-ARQ.
READ-IT.
DISPLAY "Enter the Record to Start (1-998) 0 to Stop".
ACCEPT W-COUNTER.
MOVE W-COUNTER TO P-IND.
IF W-COUNTER > 0
START ARQ KEY IS LESS THAN P-IND
INVALID KEY
MOVE "YES" TO W01-SWITCHES.
IF W-COUNTER = 0
MOVE "YES" TO W01-SWITCHES.
IF W01-MORE
READ ARQ
AT END MOVE "YES" TO W01-SWITCHES
END-READ
DISPLAY "Record Selected Is: "
IF W01-MORE
DISPLAY REG-ARQ
IF W01-MORE
READ ARQ NEXT
AT END MOVE "YES" TO W01-SWITCHES
END-READ
IF W01-MORE
DISPLAY "The Next Record Is: "
DISPLAY REG-ARQ.