Here's one with the priming read, and a little trick for multiple ACCEPTs, 
because ACCEPT doesn't give "end of file".

----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
       ID DIVISION. 
       PROGRAM-ID. CALC1000. 
       DATA DIVISION. 
       FILE SECTION. 
       WORKING-STORAGE SECTION. 
       01  INPUT-DATA. 
           05  FILLER. 
               88  END-OF-INTERACTIVE-SESSION  VALUE HIGH-VALUES 
                                                     ZERO. 
               10  SALES-AMOUNT                PIC 9(5)V99. 
           05  FILLER                          PIC X(73). 
       01  SALES-TAX                           PIC Z,ZZZ.99. 
       PROCEDURE DIVISION. 
           PERFORM                      PRIMING-READ 
           PERFORM                      CALCULATE-ONE-SALES-TAX 
               UNTIL END-OF-INTERACTIVE-SESSION 
           GOBACK 
           . 
       CALCULATE-ONE-SALES-TAX. 
           COMPUTE SALES-TAX ROUNDED    = SALES-AMOUNT 
                                         * 0.0785 
           DISPLAY 
                   SALES-AMOUNT 
                   " SALES TAX = " 
                   SALES-TAX 
           PERFORM                      READ-DATA 
           . 
       PRIMING-READ. 
           PERFORM                      READ-DATA 
           . 
       READ-DATA. 
           MOVE HIGH-VALUES             TO INPUT-DATA 
           ACCEPT INPUT-DATA 
           . 


The trick is through the knowledge that when ACCEPT operates and there is no 
remaining data, the target field (INPUT-DATA) remains unchanged. So set the 
target-field to a known value which cannot exist (logically) in the input, and 
you have an end-of-file test. In this case this is a catch-all for if the 
"user" gets the "I don't want any more" response wrong when using a dataset for 
input.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to