IDENTIFICATION DIVISION. PROGRAM-ID. CWAGE. AUTHOR. ALVIN LADDARAN. ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT EMPFILE ASSIGN TO "ACLIN1" ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS EMPStat. SELECT PAYLIST ASSIGN TO "PAYLIST" ORGANIZATION IS LINE SEQUENTIAL FILE STATUS IS PAYStat. DATA DIVISION. FILE SECTION. FD EMPFILE. 01 EMPREC. 10 EMP-NUM PIC X(20). 10 HRS-WORK PIC 99. 10 HRLY-RATE PIC 999V99. 10 FILLER PIC X(8) VALUE SPACES. FD PAYLIST. 01 PAYREC. 10 PAY-EMP-NUM PIC X(20). 10 PAY-WKLY-WAGE PIC 9(7)V99. 10 FILLER PIC X(11) VALUE SPACES. WORKING-STORAGE SECTION. 01 WORK-AREA. 10 WS-HRS-WORK PIC 99. 10 WS-HRLY-RATE PIC 999V99. 10 EndOfFile PIC XXX. 10 EMPStat PIC XX. 10 PAYStat PIC XX. PROCEDURE DIVISION. 000-ProgramBegin. PERFORM 100-INIT. PERFORM 200-PROCESS. PERFORM 900-ENDBLOCK. 000-EXIT. 200-PROCESS. PERFORM WITH TEST AFTER UNTIL EndOfFile = "SET" IF HRS-WORK IS NUMERIC AND HRLY-RATE IS NUMERIC MOVE EMP-NUM TO PAY-EMP-NUM MOVE HRS-WORK TO WS-HRS-WORK MOVE HRLY-RATE TO WS-HRLY-RATE COMPUTE PAY-WKLY-WAGE = WS-HRS-WORK * WS-HRLY-RATE WRITE PAYREC END-IF PERFORM 800-PAYChecking READ EMPFILE AT END PERFORM 900-EOFPerform END-READ END-PERFORM. 200-EXIT. 800-EMPChecking. IF EMPStat = "00" THEN CONTINUE ELSE PERFORM 850-ERROR-DISPLAY DISPLAY "the input file.)" PERFORM 900-ENDBLOCK END-IF. 800-EMPChecking-EXIT. 800-PAYChecking. IF PAYStat = "00" THEN CONTINUE ELSE PERFORM 850-ERROR-DISPLAY DISPLAY "the output file.)" PERFORM 900-ENDBLOCK END-IF. 800-PAYChecking-EXIT. 800-EMPTY-INPUT. MOVE "SET" TO EndOfFile. DISPLAY " The input file was empty.". DISPLAY "The program will terminate now.". PERFORM 900-ENDBLOCK. 800-EMPTY-INPUT-END. 850-ERROR-DISPLAY. DISPLAY "An error has occurred.". DISPLAY "Please check your disk and input files". DISPLAY "for possible problems.". DISPLAY "(Hint: the error was triggered by ". 850-EXIT. 100-INIT. MOVE "OFF" TO EndOfFile. OPEN INPUT EMPFILE. PERFORM 800-EMPChecking. OPEN OUTPUT PAYLIST. PERFORM 800-PAYChecking. READ EMPFILE PERFORM 800-EMPChecking AT END PERFORM 800-EMPTY-INPUT END-READ. 100-EXIT. 900-EOFPerform. MOVE "SET" TO EndOfFile. DISPLAY "The program has finished executing.". 900-EOF-EXIT. 900-ENDBLOCK. CLOSE EMPFILE, PAYLIST. STOP RUN. 900-ENDBLOCK-EXIT.