$ SET SOURCEFORMAT"FREE" IDENTIFICATION DIVISION. PROGRAM-ID. SETUPAUTHORS. AUTHOR. MICHAEL COUGHLAN. *Originally written for VAX COBOL 1991 *Converted to Microfocus NetExpress 2002 ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT AUTHOR-OUT ASSIGN TO "AUTHOR.DAT" ORGANIZATION IS INDEXED FILE STATUS IS WA-AUTHOR-ERROR-STATUS ACCESS MODE IS DYNAMIC RECORD KEY IS FB-AUTHOR-NUMBER ALTERNATE RECORD KEY IS FB-AGENT-NAME WITH DUPLICATES. SELECT AUTHOR-IN ASSIGN TO "AUTHORIN.DAT" ORGANIZATION IS LINE SEQUENTIAL. DATA DIVISION. FILE SECTION. FD AUTHOR-IN. 01 FA-AUTHOR-FILE-RECORD. 02 FA-AUTHOR-NUMBER PIC 9(7). 02 FA-AUTHOR-NAME PIC X(25). 02 FA-AGENT-NAME PIC X(25). FD AUTHOR-OUT. 01 FB-AUTHOR-FILE-RECORD. 02 FB-AUTHOR-NUMBER PIC 9(7). 02 FB-AUTHOR-NAME PIC X(25). 02 FB-AGENT-NAME PIC X(25). 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 INPUT AUTHOR-IN. OPEN OUTPUT AUTHOR-OUT. DISPLAY "STARTING". READ AUTHOR-IN AT END SET END-OF-FILE TO TRUE END-READ. PERFORM UNTIL END-OF-FILE MOVE FA-AUTHOR-FILE-RECORD TO FB-AUTHOR-FILE-RECORD DISPLAY FB-AUTHOR-FILE-RECORD WRITE FB-AUTHOR-FILE-RECORD INVALID KEY DISPLAY "WRITE FAILED ON REC --> " WITH NO ADVANCING DISPLAY FB-AUTHOR-FILE-RECORD DISPLAY "FILE STATUS --> " WITH NO ADVANCING DISPLAY WA-AUTHOR-ERROR-STATUS END-WRITE READ AUTHOR-IN AT END SET END-OF-FILE TO TRUE END-READ END-PERFORM. DISPLAY "FINISHED". CLOSE AUTHOR-IN. CLOSE AUTHOR-OUT. STOP RUN.