$ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. SETUPBOOK. AUTHOR. MICHAEL COUGHLAN. *Originally written for VAX COBOL 1991 *Converted to Microfocus NetExpress 2002 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT BOOK-FILE-OUT ASSIGN TO "BOOKS.DAT" ORGANIZATION IS INDEXED FILE STATUS IS WA-BOOK-ERROR-STATUS ACCESS MODE IS DYNAMIC RECORD KEY IS FA-BOOK-NUMBER ALTERNATE RECORD KEY IS FA-AUTHOR-NUMBER WITH DUPLICATES. SELECT BOOK-FILE-IN ASSIGN TO "BOOKSIN.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD BOOK-FILE-OUT. 01 FA-BOOK-FILE-RECORD. 02 FA-BOOK-NUMBER PIC 9(7). 02 FA-BOOK-NAME PIC X(25). 02 FA-AUTHOR-NUMBER PIC 9(7). 02 FA-ROYALTY-RATE PIC 9V99. 02 FA-QUARTER-BORROWINGS PIC 9(3). FD BOOK-FILE-IN. 01 FB-BOOK-FILE-RECORD. 02 FB-BOOK-NUMBER PIC 9(7). 02 FB-BOOK-NAME PIC X(25). 02 FB-AUTHOR-NUMBER PIC 9(7). 02 FB-ROYALTY-RATE PIC 9V99. 02 FB-QUARTER-BORROWINGS PIC 9(3). WORKING-STORAGE SECTION. 01 WA-ERROR-STATUS. 02 WA-BOOK-ERROR-STATUS PIC X(2). 88 RECORD-ALREADY-EXISTS VALUE "22". 88 RECORD-DOES-NOT-EXIST VALUE "23". 02 WA-AUTHOR-ERROR-STATUS PIC X(2). 88 RECORD-ALREADY-EXISTS VALUE "22". 88 RECORD-DOES-NOT-EXIST VALUE "23". 01 WB-INTERMEDIATE-VARIABLES. 02 WB-BOOK-ROYALTY PIC 9(3)V99. 02 WB-QUARTER-AUTHOR-BORROWINGS PIC 9(4). 02 WB-TOTAL-AUTHOR-BORROWINGS PIC 9(6). 02 WB-AUTHOR-ROYALTIES PIC 9(4)V99. 02 WB-AGENT-ROYALTIES PIC 9(6)V99. 01 WC-FLAGS. 02 IS-IT-END-OF-FILE PIC X(3) VALUE "NO". 88 END-OF-FILE VALUE "YES". 02 IS-THERE-AN-ERROR PIC X(3) VALUE "NO". 88 NO-ERROR-FOUND VALUE "NO". PROCEDURE DIVISION. 10-START. OPEN OUTPUT BOOK-FILE-OUT. OPEN INPUT BOOK-FILE-IN DISPLAY "STARTING". READ BOOK-FILE-IN AT END SET END-OF-FILE TO TRUE END-READ PERFORM UNTIL END-OF-FILE MOVE FB-BOOK-FILE-RECORD TO FA-BOOK-FILE-RECORD DISPLAY FA-BOOK-FILE-RECORD WRITE FA-BOOK-FILE-RECORD INVALID KEY DISPLAY "WRITE ERROR --> " WITH NO ADVANCING DISPLAY FA-BOOK-FILE-RECORD DISPLAY "STATUS --> " WITH NO ADVANCING DISPLAY WA-BOOK-ERROR-STATUS END-WRITE READ BOOK-FILE-IN AT END SET END-OF-FILE TO TRUE END-READ END-PERFORM. DISPLAY "FINISHED". CLOSE BOOK-FILE-OUT. CLOSE BOOK-FILE-IN. STOP RUN.