IDENTIFICATION DIVISION.
       PROGRAM-ID.  SEQREAD.
       AUTHOR.  GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       SELECT MASTER-FILE
           ASSIGN TO "C:\PCOBWIN\VSAM\VSAMALT.DAT"
           ORGANIZATION IS INDEXED
           ACCESS IS SEQUENTIAL
           RECORD KEY IS MID
           ALTERNATE RECORD KEY IS MITEM-NAME WITH DUPLICATES.
       SELECT PRINT-FILE ASSIGN TO PRINTER.
      * COMMENTS:
      * This program read the records in an indexed file sequentially
      * using the alternate key.  To do this, the START verb is used
      * to position the starting point.
      * In this program a LOW-VALUES is moved to the alternate
      * record key and the program is started with the first record
      * that has a name greater LOW-VALUES which is all binary 0s.
      * This assures that the program will start with the lowest
      * name on the file and process all records in order by item name.
      * Since the file is being read sequentially, the READ...AT END
      * is used.
       DATA DIVISION.
       FILE SECTION.
       FD  MASTER-FILE
           DATA RECORD IS MASTER-REC.
       01  MASTER-REC.
           05  MID              PIC 9(3).
           05  MITEM-NAME       PIC X(20).
           05  MNUM-HAND        PIC 999.
           05  MNUM-ORDER       PIC 999.
           05  MREORD-PT        PIC 999.
           05  MCOST            PIC 999V99.
           05  MPRICE           PIC 999V99.
       FD  PRINT-FILE
           LABEL RECORDS ARE OMITTED
           DATA RECORD IS PRINTZ.
       01  PRINTZ.
           05  FILLER           PIC X.
           05  PID              PIC X(3).
           05  FILLER           PIC X(2).
           05  PITEM-NAME       PIC X(20).
           05  FILLER           PIC X(2).
           05  PNUM-HAND        PIC ZZ9.
           05  FILLER           PIC X(2).
           05  PNUM-ORDER       PIC ZZ9.
           05  FILLER           PIC X(2).
           05  PREORD-PT        PIC ZZ9.
           05  FILLER           PIC X(2).
           05  PCOST            PIC ZZ9.99.
           05  FILLER           PIC X(2).
           05  PPRICE           PIC ZZ9.99.
           05  FILLER           PIC X(2).
           05  PMSG             PIC X(20).
           05  FILLER           PIC X.
       WORKING-STORAGE SECTION.
       01  INDICATORS.
           05  EOF-IND          PIC XXX          VALUE "NO ".
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM A-100-INITIALIZE.
           PERFORM B-100-PROCESS.
           PERFORM C-100-TERMINATE.
           STOP RUN.
       A-100-INITIALIZE.
           OPEN INPUT MASTER-FILE
                OUTPUT PRINT-FILE.
       B-100-PROCESS.
           MOVE LOW-VALUES TO MITEM-NAME.
           START MASTER-FILE
               KEY GREATER THAN MITEM-NAME
               INVALID KEY
                   DISPLAY "RECORD NOT FOUND"
                   MOVE "YES" TO EOF-IND.
           IF EOF-IND = "NO"
               READ MASTER-FILE
                   AT END
                      MOVE "YES" TO EOF-IND
               END-READ
               PERFORM B-200-LOOP
                   UNTIL EOF-IND = "YES".
       B-200-LOOP.
           MOVE SPACES TO PRINTZ.
           MOVE MID TO PID.
           MOVE MITEM-NAME TO PITEM-NAME.
           MOVE MNUM-HAND TO PNUM-HAND.
           MOVE MNUM-ORDER TO PNUM-ORDER.
           MOVE MREORD-PT TO PREORD-PT.
           MOVE MCOST TO PCOST.
           MOVE MPRICE TO PPRICE.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.
           READ MASTER-FILE
               AT END
                  MOVE "YES" TO EOF-IND.
       C-100-TERMINATE.
           CLOSE MASTER-FILE
                 PRINT-FILE.