01 IDENTIFICATION DIVISION. 02 PROGRAM-ID. SAMPLE. * program is Y2K compliant - no date procedures in it ** 03 ENVIRONMENT DIVISION. 04 INPUT-OUTPUT SECTION. 05 FILE-CONTROL. SELECT EMPLOYEE-DATA ASSIGN TO EMP-DAT. 06 SELECT PAYROLL-LISTING ASSIGN TO PRINTER. 07 DATA DIVISION. 08 FILE SECTION. 09 FD EMPLOYEE-DATA LABEL RECORDS ARE STANDARD. 10 01 EMPLOYEE-RECORD. 11 05 EMPLOYEE-NAME-IN PICTURE X(20). 12 05 HOURS-WORKED-IN PICTURE 9(2). 13 05 HOURLY-RATE-IN PICTURE 9V99. 14 FD PAYROLL-LISTING LABEL RECORDS ARE OMITTED. 15 01 PRINT-REC. 16 05 PICTURE X(20). 17 05 NAME-OUT PICTURE X(20). 18 05 PICTURE X(10). 19 05 HOURS-OUT PICTURE 9(2). 20 05 PICTURE X(8). 21 05 RATE-OUT PICTURE 9.99. 22 05 PICTURE X(6). 23 05 WEEKLY-WAGES-OUT PICTURE 999.99. 24 WORKING-STORAGE SECTION. 25 01 ARE-THERE-MORE-RECORDS PICTURE XXX VALUE 'YES'. 26 PROCEDURE DIVISION. 27 100-MAIN-MODULE. 28 OPEN INPUT EMPLOYEE-DATA 29 OUTPUT PAYROLL-LISTING 30 PERFORM UNTIL ARE-THERE-MORE-RECORDS = 'NO ' 31 READ EMPLOYEE-DATA 32 AT END 33 MOVE 'NO ' TO ARE-THERE-MORE-RECORDS 34 NOT AT END 35 PERFORM 200-WAGE-ROUTINE 36 END-READ 37 END-PERFORM 38 CLOSE EMPLOYEE-DATA 39 PAYROLL-LISTING 40 STOP RUN. 41 200-WAGE-ROUTINE. 42 MOVE SPACES TO PRINT-REC 43 MOVE EMPLOYEE-NAME-IN TO NAME-OUT 44 MOVE HOURS-WORKED-IN TO HOURS-OUT 45 MOVE HOURLY-RATE-IN TO RATE-OUT 46 MULTIPLY HOURS-WORKED-IN BY HOURLY-RATE-IN 47 GIVING WEEKLY-WAGES-OUT 48 WRITE PRINT-REC.