IDENTIFICATION DIVISION.
       PROGRAM-ID.  DYNSTART.
       AUTHOR.  GROCER.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       SELECT MASTER-FILE ASSIGN TO "C:\PCOBWIN\VSAM\VSAM1.DAT"
           ORGANIZATION IS INDEXED
           ACCESS IS DYNAMIC
           RECORD KEY IS MID.
       SELECT PRINT-FILE ASSIGN TO PRINTER.
       DATA DIVISION.
       FD  MASTER-FILE
           LABEL RECORDS ARE STANDARD
           DATA RECORD IS MASTER-REC.
       01  MASTER-REC.
           05  MID              PIC X(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  HOLD-AREAS.
           05  START-PT         PIC X(3).
           05  END-PT           PIC X(3).
       01  INDICATORS.
           05  EOF-MSTR         PIC XXX          VALUE "NO ".
           05  MSTR-FOUND       PIC XXX          VALUE SPACES.
       01 RESPONSES.
             05  TERMINATE-ANS   PIC X        VALUE SPACES.
       SCREEN SECTION.
       01  START-END-POINT-SCREEN.
           05  VALUE "START DATA SCREEN"      BLANK SCREEN
                                              LINE 01 COL 30.
           05  VALUE "ENTER START POINT:  "   LINE 05 COL 05.
           05  START-SCR                      LINE 05 COL 35
                   PIC XXX     TO START-PT.
           05  VALUE "ENTER END POINT NAME: " LINE 07 COL 05.
           05  NAME-SCR                       LINE 07 COL 35
                   PIC XXX     TO END-PT.
           05  VALUE "C - TO CONTINUE"        LINE 16 COL 30.
           05  VALUE "Q - TO QUIT"            LINE 17 COL 30.
           05  VALUE "ENTER CHOICE:"          LINE 19 COL 30.
           05  RESPONSE-SCR                   LINE 19 COL 45
                   PIC X       TO TERMINATE-ANS.
       PROCEDURE DIVISION.
       MAINLINE.
           PERFORM A-100-INITIALIZE.
           PERFORM B-100-PROCESS.
           PERFORM C-100-WRAPUP.
           STOP RUN.
       A-100-INITIALIZE.
           OPEN INPUT MASTER-FILE
                OUTPUT PRINT-FILE.
       B-100-PROCESS.
           PERFORM U-010-START-END-POINT-SCREEN.
           PERFORM B-200-LOOP
               UNTIL TERMINATE-ANS = "Q".
       B-200-LOOP.
           MOVE SPACES TO PRINTZ.
           MOVE START-PT TO MID.
           MOVE "YES" TO MSTR-FOUND.
           READ MASTER-FILE
               INVALID KEY
                   MOVE "NO " TO MSTR-FOUND.
           IF MSTR-FOUND = "YES"
               PERFORM B-300-DETAIL
                   UNTIL MID = END-PT OR MID > END-PT
                      OR EOF-MSTR = "YES"
               IF EOF-MSTR = "YES"
                   MOVE SPACES TO EOF-MSTR
               ELSE
                   NEXT SENTENCE
           ELSE
               PERFORM U-020-PRINT-EXCEPTION-REPORT.
           PERFORM U-010-START-END-POINT-SCREEN.
       B-300-DETAIL.
           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.
           PERFORM U-000-RD-MSTR.
       C-100-WRAPUP.
           CLOSE MASTER-FILE
                 PRINT-FILE.
       U-000-RD-MSTR.
           READ MASTER-FILE NEXT
               AT END
                   MOVE "YES" TO EOF-MSTR
                   CLOSE MASTER-FILE
                   OPEN INPUT MASTER-FILE.
       U-010-START-END-POINT-SCREEN.
           DISPLAY START-END-POINT-SCREEN.
           ACCEPT START-END-POINT-SCREEN.
       U-020-PRINT-EXCEPTION-REPORT.
           MOVE MID TO PID.
           MOVE "START POINT MISSING " TO PMSG.
           WRITE PRINTZ
               AFTER ADVANCING 1 LINES.