IDENTIFICATION DIVISION.
       PROGRAM-ID. YOURFILL.
       AUTHOR.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT STUDENT-FILE
               ASSIGN TO "C:\PCOBWIN\TABLES\STUUOUR.DAT".
           SELECT PRINT-FILE
               ASSIGN TO PRINTER.
       DATA DIVISION.
       FILE SECTION.
       FD  STUDENT-FILE
           DATA RECORDS ARE STUDENT-REC.
       01  STUDENT-REC.
           05  STUDENT-ID        PIC 9999.
           05  STUDENT-NAME      PIC X(20).
           05  STUDENT-MAJOR     PIC XX.
           05  STUDENT-ADVISOR   PIC 99.
           05  STUDENT-NUM-CRS   PIC 99.
           05  STUDENT-GPA       PIC 9V999.
       FD  PRINT-FILE
           DATA RECORD IS PRINTZ.
       01  PRINTZ                PIC X(80).
       WORKING-STORAGE SECTION.
       01  RESPONSES.
           05  RESPONSE-DEPT-WS        PIC X       VALUE SPACES.
           05  RESPONSE-ADV-WS         PIC X       VALUE SPACES.
       01  INDICATORZ.
           05  MORE-RECS               PIC XXX     VALUE "YES".
           05  MATCH-IND-DEPT          PIC XXX     VALUE "NO ".
           05  MATCH-IND-ADV           PIC XXX     VALUE "NO ".
       01  SUBSCRIPTS.
           05  SUB-SCR                 PIC 99      VALUE 1.
           05  SUB-DEPT                PIC 99      VALUE 1.
           05  SUB-ADV                 PIC 99      VALUE 1.
       01  DEPARTMENT-TABLE.
           05  DEPT-ENTRIES.
               10  DEPT-CODE-TBL     PIC XX.
               10  DEPT-NAME-TBL     PIC X(30).
       01  ADVISOR-TABLE.
           05  AVD-ENTRIES.
               10  ADV-CODE-TBL      PIC 99.
               10  ADV-NAME-TBL      PIC X(15).
               10  ADV-EXT-TBL       PIC 9999.
       01  PAGE-CONTROL.
           05  PAGE-NO         PIC 99    VALUE 1.
           05  LINE-CT         PIC 99    VALUE 0.
       01  DATE-WS.
           05  YR-WS           PIC 99    VALUE 0.
           05  MO-WS           PIC 99    VALUE 0.
           05  DA-WS           PIC 99    VALUE 0.
       01  PRINT-LINE-1.
           05  FILLER                  PIC X.
           05  STUDENT-ID-PR           PIC 9999.
           05  FILLER                  PIC X(5).
           05  STUDENT-NAME            PIC X(20).
           05  FILLER                  PIC X(5).
           05  STUDENT-MAJOR-PR        PIC XX.
           05  FILLER                  PIC X(5).
           05  DEPARTMENT-NAME-PR      PIC X(30).
           05  FILLER                  PIC X(8).
       01  PRINT-LINE-2.
           05  FILLER                  PIC X(35).
           05  ADVISOR-NAME-PR         PIC X(15).
           05  FILLER                  PIC X(5).
           05  ADVISOR-OFFICE-PR       PIC X(5).
           05  FILLER                  PIC X(5).
           05  ADVISOR-EXT-PR          PIC 9999.
           05  FILLER                  PIC X(11).
       01  PAGE-HDR.
           05  FILLER          PIC XX    VALUE SPACES.
           05  DATE-HDR.
               10  MO-HDR      PIC 99.
               10  FILLER      PIC X     VALUE "/".
               10  DA-HDR      PIC 99.
               10  FILLER      PIC X     VALUE "/".
               10  YR-HDR      PIC 99.
           05  FILLER          PIC X(22) VALUE SPACES.
           05  FILLER          PIC X(14) VALUE "STUDENT REPORT".
           05  FILLER          PIC X(22) VALUE SPACES.
           05  FILLER          PIC X(5)  VALUE "PAGE ".
           05  PAGE-NO-HDR     PIC Z9.
           05  FILLER          PIC X(5)  VALUE SPACES.
       01  COLUMN-HDR-1.
           05  FILLER          PIC X     VALUE SPACES.
           05  FILLER          PIC X(4)  VALUE "ID #".
           05  FILLER          PIC X(28)
                               VALUE "     NAME                   ".
           05  FILLER          PIC X(9)  VALUE "MAJOR    ".
           05  FILLER          PIC X(10) VALUE "DEPARTMENT".
           05  FILLER          PIC X(28) VALUE SPACES.
       01  COLUMN-HDR-2.
           05  FILLER          PIC X(35) VALUE SPACES.
           05  FILLER          PIC X(20) VALUE "ADVISOR NAME        ".
           05  FILLER          PIC X(10) VALUE "OFFICE    ".
           05  FILLER          PIC X(15) VALUE "EXT.".
       SCREEN SECTION.
       01  DEPARTMENT-DATA-SCREEN.
           05  VALUE "DEPARTMENT DATA ENTRY SCREEN"
                                                 BLANK SCREEN
                                                 LINE 01 COL 30.
           05  VALUE "DEPARTMENT CODE: "         LINE 05 COL 05.
           05  DEPT-CODE-FOR-TABLE               LINE 05 COL 30
                     PIC XX       TO DEPT-CODE-TBL.
           05  VALUE "DEPT NAME: "               LINE 07 COL 05.
           05  DEPT-NAME-FOR-TABLE               LINE 07 COL 20
                     PIC X(15)    TO DEPT-NAME-TBL.
           05  VALUE "ENTER P TO PROCESS"        LINE 10 COL 05.
           05  VALUE "ENTER C TO CANCEL"         LINE 12 COL 05.
           05  VALUE "ENTER CHOICE"              LINE 14 COL 10.
           05  TABLE-RESPONSE                    LINE 14 COL 27
                     PIC X        TO RESPONSE-DEPT-WS.
       01  ADVISOR-DATA-SCREEN.
           05  VALUE "ADVISOR DATA ENTRY SCREEN" BLANK SCREEN
                                                 LINE 01 COL 30.
           05  VALUE "AVDISOR CODE: "            LINE 05 COL 05.
           05  ADV-CODE-FOR-TABLE                LINE 05 COL 20
                     PIC 99       TO ADV-CODE-TBL.
           05  VALUE "ADVISOR NAME: "            LINE 06 COL 05.
           05  ADV-NAME-FOR-TABLE                LINE 06 COL 20
                     PIC X(15)    TO ADV-NAME-TBL.
           05  VALUE "ADVISOR OFFICE:"           LINE 07 COL 05.
           05  ADV-OFF-FOR-TABLE                 LINE 07 COL 20
                     PIC XXXXX    TO ADV-OFFICE-TBL.
           05  VALUE "ADVISOR EXT.:"             LINE 08 COL 05.
           05  ADV-EXT-FOR-TABLE                 LINE 08 COL 20
                     PIC 9999     TO ADV-EXT-TBL.
           05  VALUE "ENTER P TO PROCESS"        LINE 10 COL 05.
           05  VALUE "ENTER C TO CANCEL"         LINE 12 COL 05.
           05  VALUE "ENTER CHOICE"              LINE 14 COL 10.
           05  TABLE-RESPONSE                    LINE 14 COL 27
                     PIC X        TO RESPONSE-ADV-WS.
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM A-100-INITIALIZE.
           PERFORM B-100-PROCESS.
           PERFORM C-100-WRAPUP.
           STOP RUN.
       A-100-INITIALIZE.
           OPEN INPUT STUDENT-FILE
                OUTPUT PRINT-FILE.
           PERFORM U-000-DATE-ROUT.
           MOVE 1 TO SUB-SCR.
           PERFORM U-100-FILL-FIRST-TABLE
               UNTIL SUB-SCR > 3.
           MOVE 1 TO SUB-SCR.
           PERFORM U-110-FILL-SECOND-TABLE
               UNTIL SUB-SCR > 5.
      *
      *NOTE: The MOVE and PERFORM above can be coded here or they
      *could have been coded as the first two commands in the
      *B-100-PROCESS paragraph.  It depends on whether you consider
      *filling the table part of the initializing or setting up of the
      *program or the first part of the processing.
      *
       B-100-PROCESS.
           READ STUDENT-FILE
               AT END
                   MOVE "NO " TO MORE-RECS.
           PERFORM B-200-LOOP
               UNTIL MORE-RECS = "NO ".
       B-200-LOOP.
           IF LINE-CT > 55 OR PAGE-NO = 1
               PERFORM B-310-HDR-ROUT.
           MOVE SPACES TO PRINTZ.
           MOVE STUDENT-ID TO STUDENT-ID-PR.
           MOVE STUDENT-NAME TO STUDENT-NAME-PR.
           MOVE STUDENT-MAJOR TO STUDENT-MAJOR-PR.
           MOVE 1 TO SUB-DEPT.
           MOVE "NO " TO MATCH-IND-DEPT.
           PERFORM B-300-SEARCH-DEPT
               UNTIL SUB-DEPT > 3 OR MATCH-IND-DEPT = "YES".
           IF MATCH-IND-DEPT = "YES"
               MOVE DEPT-NAME-TBL (SUB-DEPT) TO DEPARTMENT-NAME-PR
           ELSE
               MOVE "*** INVALID ***" TO DEPARTMENT-NAME-PR.
           WRITE PRINTZ FROM PRINT-LINE-1
               AFTER ADVANCING 1 LINES.
           MOVE SPACES TO PRINTZ.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
           ADD 3 TO LINE-CT.
           READ STUDENT-FILE
               AT END
                  MOVE "NO " TO MORE-RECS.
       B-300-SEARCH-DEPT.
       B-310-SEARCH-ADV.
           IF STUDENT-ADVISOR = ADV-CODE-TBL (SUB-ADV)
               MOVE "YES" TO MATCH-IND-ADV
           ELSE
               ADD 1 TO SUB-ADV.

       B-310-HDR-ROUT.
           MOVE PAGE-NO TO PAGE-NO-HDR.
           WRITE PRINTZ FROM PAGE-HDR
               AFTER ADVANCING PAGE.
           WRITE PRINTZ FROM COLUMN-HDR-1
               AFTER ADVANCING 2 LINES.
           WRITE PRINTZ FROM COLUMN-HDR-2
               AFTER ADVANCING 1 LINES.
           MOVE SPACES TO PRINTZ.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
           ADD 1 TO PAGE-NO.
           MOVE 5 TO LINE-CT.
       C-100-WRAPUP.
           CLOSE STUDENT-FILE
                 PRINT-FILE.
       U-000-DATE-ROUT.
           ACCEPT DATE-WS FROM DATE.
           MOVE MO-WS TO MO-HDR.
           MOVE DA-WS TO DA-HDR.
           MOVE YR-WS TO YR-HDR.