IDENTIFICATION DIVISION.
       PROGRAM-ID.  PROGRAM2.
       AUTHOR.  GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       SELECT VSAM-FILE
           ASSIGN TO "C:\PCOBWIN\VSAMPROJ\VSAMPROJ.DAT"
           ORGANIZATION IS INDEXED
           ACCESS IS SEQUENTIAL
           RECORD KEY IS VSAM-STUDENT-ID
           ALTERNATE RECORD KEY IS
               VSAM-STUDENT-NAME WITH DUPLICATES.
       SELECT PRINT-FILE ASSIGN TO PRINTER.
      * COMMENTS:
      * This program read the records in an indexed file sequentially
      * using the existing organization which would be by the prime
      * key.  Instead of starting at the beginning of the file, this
      * program allows the user to enter a start point and starts the
      * processing of records at this point. Unlike my sample, the
      * user would have to rerun this program to start at a different
      * point and print a different group of records.
      * The key structure described in the program must be the same
      * as the key structure that exists on the file.  So, even though
      * I am not using any of the keys, I must describe them in the
      * SELECT statement.
       DATA DIVISION.
       FILE SECTION.
       FD  VSAM-FILE
           DATA RECORD IS VSAM-REC.
       01  VSAM-REC.
           05  VSAM-STUDENT-ID          PIC XXXX.
           05  VSAM-STUDENT-NAME        PIC X(20).
           05  VSAM-STUDENT-MAJOR       PIC XXX.
           05  VSAM-STUDENT-SEM-ENTER   PIC X.
           05  VSAM-STUDENT-YR-ENTER    PIC 9999.
       FD  PRINT-FILE
           DATA RECORD IS PRINTZ.
       01  PRINTZ.
           05  FILLER                      PIC X.
           05  VSAM-STUDENT-ID-PR          PIC X(4).
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-NAME-PR        PIC X(20).
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-MAJOR-PR       PIC XXX.
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-SEM-ENTER-PR   PIC X.
           05  FILLER                      PIC X(2).
           05  VSAM-STUDENT-YR-ENTER-PR    PIC 9999.
           05  FILLER                      PIC X(2).
           05  PROCESSING-MSG-PR           PIC X(20).
           05  FILLER                      PIC X(18).
       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  EOF-IND          PIC XXX          VALUE "NO ".
       01  HOLD-AREAS.
           05  START-VSAM-ID    PIC XXXX         VALUE SPACES.
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM A-100-INITIALIZE.
           PERFORM B-100-PROCESS.
           PERFORM C-100-TERMINATE.
           STOP RUN.
       A-100-INITIALIZE.
           OPEN INPUT VSAM-FILE
                OUTPUT PRINT-FILE.
       B-100-PROCESS.
           DISPLAY "ENTER STUDENT ID YOU WISH TO START WITH".
           ACCEPT START-VSAM-ID.
           START VSAM-FILE
               KEY = VSAM-STUDENT-ID
               INVALID KEY
                   DISPLAY "RECORD DOES NOT EXIST  " VSAM-STUDENT-ID
               NOT INVALID KEY
                   READ VSAM-FILE
                       AT END
                          MOVE "YES" TO EOF-IND.
                   PERFORM B-200-LOOP
                      UNTIL EOF-IND = "YES"
           END-START.
       B-200-LOOP.
           MOVE SPACES TO PRINTZ.
           MOVE VSAM-STUDENT-ID TO VSAM-STUDENT-ID-PR.
           MOVE VSAM-STUDENT-NAME TO VSAM-STUDENT-NAME-PR.
           MOVE VSAM-STUDENT-MAJOR TO VSAM-STUDENT-MAJOR-PR.
           MOVE VSAM-STUDENT-SEM-ENTER TO VSAM-STUDENT-SEM-ENTER-PR.
           MOVE VSAM-STUDENT-YR-ENTER TO VSAM-STUDENT-YR-ENTER-PR.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
           READ VSAM-FILE
               AT END
                  MOVE "YES" TO EOF-IND.
       C-100-TERMINATE.
           CLOSE VSAM-FILE
                 PRINT-FILE.